webpackJsonp([5, 6, 7, 8, 9], [function(e, t, n) {
n(793), e.exports = n(555)
}, , function(e, t, n) {
// =========================
// Function_2
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
return "_" + t.charCodeAt(0) + "_"
}
var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
s = n(4),
o = i(s),
l = n(548),
c = i(l),
u = new RegExp("([^a-z0-9])", "g"),
A = function() {
return o.default.i18n.getUILanguage() in c.default ? c.default[o.default.i18n.getUILanguage()] : c.default.en
}(),
d = function(e, t) {
return t ? e.replace(/\$\d/g, function(e) {
if (e = parseInt(e.substr(1)) - 1, t.length > e) return t[e];
throw new Error("Faulty string variables. Requested string " + (e + 1) + " of " + t.length)
}) : e
},
h = function(e, t, n) {
var i = n[0],
r = A(i);
r === !1 ? r = 0 : r === !0 && (r = 1);
var s = o.default.i18n.getMessage(e.replace(u, a) + r, n);
return "" === s ? 1 === i ? d(e, n) : d(t, n) : s
},
m = "_4_",
p = function(e, t) {
var n = o.default.i18n.getMessage(e.replace(u, a) + m + t.replace(u, a) + "0");
return "" === n ? t : n
},
f = function(e, t) {
var n = o.default.i18n.getMessage(e.replace(u, a) + "0", t);
return "" === n ? d(e, t) : n
},
g = function(e, t, n) {
return "object" === ("undefined" == typeof n ? "undefined" : r(n)) && n.length > 0 && "number" == typeof n[0] ? h(e, t, n) : "string" == typeof t ? p(e, t) : f(e, t)
};
e.exports = g
}, function(e, t, n) {
// =========================
// Function_3
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = function() {
function e(e, t) {
var n = [],
i = !0,
a = !1,
r = void 0;
try {
for (var s, o = e[Symbol.iterator](); !(i = (s = o.next()).done) && (n.push(s.value), !t || n.length !== t); i = !0);
} catch (e) {
a = !0, r = e
} finally {
try {
!i && o.return && o.return()
} finally {
if (a) throw r
}
}
return n
}
return function(t, n) {
if (Array.isArray(t)) return t;
if (Symbol.iterator in Object(t)) return e(t, n);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
}
}(),
r = n(4),
s = n(10),
o = n(781),
l = n(753),
c = n(204),
u = c.includes,
A = c.fromPairs,
d = c.map,
h = n(746),
m = n("Win32" === navigator.platform ? 756 : "MacIntel" === navigator.platform ? 754 : 755),
p = function(e) {
return [e.preferenceKey, e.preferenceValue[e.preferenceType]]
},
f = {
fullListeners: {},
listeners: {},
settingsCache: {},
loadPromise: function(e) {
var t = this;
return f.attachListeners(), Promise.all([new Promise(function(e) {
return t.getAll(e)
}).then(function(e) {
return new Promise(function(t) {
var n = !1;
setTimeout(function() {
n || t(e)
}, 1e4), l(f, e).then(function(e) {
n = !0, t(e)
}).catch(function() {
n = !0, t(e)
})
})
}).then(function(e) {
return t.settingsCache = Object.assign(t.settingsCache, e)
}), new Promise(function(e) {
return t.getAllPrefs(function(n) {
t.settingsCache = Object.assign(t.settingsCache, n), e()
})
})]).then(function() {
return t._isLoaded = !0
})
},
_vivaldiSettingsListener: function(e) {
var t = this,
n = Object.keys(e).reduce(function(t, n) {
return t[n] = e[n].newValue, t
}, {});
Object.keys(n).forEach(function(e) {
return t.cacheValues(e, n[e])
}), f.notifyMultiListeners(n), Object.keys(e).forEach(function(t) {
var n = e[t],
i = n.oldValue,
a = n.newValue;
f.notifyListeners(t, i, a)
})
},
_vivaldiPrefsListener: function(e) {
var t = p(e),
n = a(t, 2),
r = n[0],
s = n[1],
o = f.settingsCache[r];
f.notifyMultiListeners([i({}, r, s)]), this.cacheValues(r, s), f.notifyListeners(r, o, s)
},
attachListeners: function() {
r.storage.onChanged.addListener(this._vivaldiSettingsListener), s.settings.onChanged.addListener(this._vivaldiPrefsListener)
},
detachListeners: function() {
r.storage.onChanged.removeListener(this._vivaldiSettingsListener), s.settings.onChanged.removeListener(this._vivaldiPrefsListener)
},
cacheValues: function(e, t) {
this.settingsCache[e] = t
},
set: function(e, t) {
for (var n in e) "true" !== e[n] && "false" !== e[n] || (e[n] = Boolean("true" === e[n]));
r.storage.local.set(e, function() {
"function" == typeof t && (r.runtime.lastError ? t(r.runtime.lastError.message) : t())
})
},
serveFromCache: function(e) {
for (var t = {}, n = [], i = 0; i < e.length; i++) {
var a = e[i];
this.settingsCache.hasOwnProperty(a) ? t[a] = this.settingsCache[a] : n.push(a)
}
return {
found: t,
notFound: n
}
},
get: function(e, t) {
this._isLoaded ? t("string" == typeof e ? this.getSync(e) : this.getKeysSync(e)) : console.error("VivaldiSettings not loaded, fix fetching of", e)
},
remove: function(e, t) {
t && "function" == typeof t || (t = function() {}), r.storage.local.remove(e, function() {
r.runtime.lastError ? t(r.runtime.lastError.message) : t()
})
},
getDefault: function(e) {
return LocaleSettings && LocaleSettings[o()] && void 0 !== LocaleSettings[o()][e] ? LocaleSettings[o()][e] : m && void 0 !== m[e] ? m[e] : h[e]
},
getSync: function(e) {
return this.settingsCache.hasOwnProperty(e) ? this.settingsCache[e] : this.getDefault(e)
},
getKeysSync: function(e) {
var t = this,
n = this.serveFromCache(e),
i = n.notFound.reduce(function(e, n) {
return e[n] = t.getDefault(n), e
}, n.found);
return i
},
getAll: function(e) {
var t = arguments.length >= 2 ? arguments[1] : void 0;
r.storage.local.get(null, function(n) {
e.call(t, n)
})
},
getAllPrefs: function(e) {
s.settings.getAllPreferences(function(t) {
return e(A(d(p, t)))
})
},
addListener: function(e, t) {
return "function" != typeof t ? void console.warn("Can not register anything else than a function as a settings listener") : void(this.listeners[e] ? u(this.listeners[e], t) ? console.warn("Listener already exists.") : this.listeners[e].push(t) : this.listeners[e] = [t])
},
removeListener: function(e, t) {
this.listeners[e] && ("function" == typeof t ? this.listeners[e] = this.listeners[e].filter(function(e) {
return e !== t
}) : this.listeners[e] = void 0)
},
addMultiListener: function(e, t) {
this.fullListeners = e.reduce(function(e, n) {
var i = e[n] || [];
return i.push(t), e[n] = i, e
}, this.fullListeners)
},
removeMultiListener: function(e, t) {
this.fullListeners = e.reduce(function(e, n) {
return e[n] && (e[n] = e[n].filter(function(e) {
return e !== t
})), e
}, this.fullListeners)
},
notifyMultiListeners: function(e) {
var t = this,
n = Object.keys(e).filter(function(e) {
return t.fullListeners[e]
}).reduce(function(n, a) {
return t.fullListeners[a].forEach(function(t) {
n.set(t, Object.assign(n.get(t) || {}, i({}, a, e[a])))
}), n
}, new Map),
r = !0,
s = !1,
o = void 0;
try {
for (var l, c = n.entries()[Symbol.iterator](); !(r = (l = c.next()).done); r = !0) {
var u = a(l.value, 2),
A = u[0],
d = u[1];
A(d)
}
} catch (e) {
s = !0, o = e
} finally {
try {
!r && c.return && c.return()
} finally {
if (s) throw o
}
}
},
notifyListeners: function(e, t, n) {
var i = this.listeners[e];
if (void 0 !== i)
for (var a = 0; a < i.length; a++) {
var r = i[a];
r(t, n, e)
}
}
};
Object.keys(f).filter(function(e) {
return "function" == typeof f[e]
}).forEach(function(e) {
return f[e] = f[e].bind(f)
}), e.exports = window.VivaldiSettings = f
}, function(e, t, n) {
// =========================
// Function_4
// =========================
"use strict";
window.chrome && window.chrome.tabs ? e.exports = window.chrome : e.exports = n(560)
}, , function(e, t, n) {
// =========================
// Function_6
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
var a = n(117),
r = i(a),
s = (0, r.default)({
BACKGROUND_TASKS_SET: null,
BOOKMARKS_LOAD_ALL: null,
BOOKMARKS_SET_BOOKMARK_BAR_FOLDER: null,
BOOKMARKS_SET_CUT_IDS: null,
BOOKMARK_THUMBNAIL_QUEUE_ADD_ITEM: null,
BOOKMARK_THUMBNAIL_QUEUE_REMOVE_ITEM: null,
BOOKMARK_THUMBNAIL_QUEUE_UPDATE_ITEM: null,
BROWSING_DATA_REMOVED: null,
CAPTURE_AREA_TO_DISK: null,
CAPTURE_AREA_TO_CLIPBOARD: null,
CAPTURE_PAGE_TO_DISK: null,
CAPTURE_PAGE_TO_CLIPBOARD: null,
CATEGORY_COMMAND_APPEARANCE: null,
CATEGORY_COMMAND_APPLICATION: null,
CATEGORY_COMMAND_MAIL: null,
CATEGORY_COMMAND_TAB_ACTION: null,
CATEGORY_COMMAND_WEBPAGE_NAVIGATION: null,
CHANGED: null,
CHROME_BOOKMARKS_CHANGED: null,
CHROME_BOOKMARKS_CREATED: null,
CHROME_BOOKMARKS_MOVED: null,
CHROME_BOOKMARKS_REMOVED: null,
CHROME_BOOKMARKS_REORDERED: null,
CHROME_HISTORY_DELETE: null,
CHROME_HISTORY_SEARCH: null,
CHROME_NOTES_CHANGED: null,
CHROME_NOTES_CREATED: null,
CHROME_NOTES_MOVED: null,
CHROME_NOTES_REMOVED: null,
CHROME_SET_SESSION: null,
CHROME_TABS_ACTIVATED: null,
CHROME_TABS_API: null,
CHROME_TABS_ATTACHED: null,
CHROME_TABS_CREATED: null,
CHROME_TABS_DETACHED: null,
CHROME_TABS_INIT: null,
CHROME_TABS_MOVED: null,
CHROME_TABS_REMOVED: null,
CHROME_TABS_REPLACED: null,
CHROME_TABS_UPDATED: null,
CLOSE_FIND_IN_PAGE_ACTION: null,
COMMAND_LOAD_ICONS: null,
COMMAND_SET_CONFIGURATION: null,
COMMAND_UPDATE_SINGLE_COMMAND: null,
CONTACT_ADD_CONTACTS: null,
CONTACT_DELETE_CONTACT: null,
CONTACT_INITIALIZE: null,
CONTACT_SAVE_CONTACT: null,
CONTACT_SELECT_CONTACT: null,
CONTENT_SCRIPT_LOAD: null,
CONTENT_SCRIPT_PAGE_ADD: null,
CONTENT_SCRIPT_PAGE_REMOVE: null,
FAST_FORWARD_COPY_STATE: null,
FAST_FORWARD_SET_FORWARD_URL: null,
FAST_FORWARD_SET_REWIND_INFO: null,
FIND_IN_PAGE_ACTION: null,
FIND_IN_PAGE_FOCUS: null,
FIND_IN_PAGE_RESULT_ACTION: null,
MAIL_ADD_ATTACHMENT: null,
MAIL_ADD_FOLDERS: null,
MAIL_ADD_MESSAGES: null,
MAIL_CHECK_FOR_MAIL: null,
MAIL_CHECK_NEW_DELETED_MODIFIED: null,
MAIL_CLEAR_ACTIVE_COMPOSER: null,
MAIL_CLEAR_IF_ACTIVE: null,
MAIL_CONNECT_IMAP_CLIENTS: null,
MAIL_DELETE_DRAFT: null,
MAIL_DISCONNECT_IMAP_CLIENTS: null,
MAIL_FILTERS_CHANGED: null,
MAIL_FILTERS_INIT: null,
MAIL_INDICATOR_ADD: null,
MAIL_INDICATOR_REMOVE: null,
MAIL_INDICATOR_REMOVE_ALL: null,
MAIL_MARK_SEEN: null,
MAIL_MESSAGES_INIT: null,
MAIL_QUEUE_MESSAGE: null,
MAIL_REGENERATE_MAILING_LISTS: null,
MAIL_REMOVE_MESSAGES: null,
MAIL_REPLACE_FOLDERS: null,
MAIL_RESCAN_UNREAD_FLAGS: null,
MAIL_SEARCH_SET_OPTIONS: null,
MAIL_SELECT_FOLDER: null,
MAIL_SEND_MESSAGE: null,
MAIL_SET_ACTIVE_COMPOSER: null,
MAIL_SET_ACTIVE_MESSAGE: null,
MAIL_SET_CHECK_INTERVAL: null,
MAIL_STORE_DRAFT: null,
MAIL_UPDATE_MESSAGES: null,
MAIN_FULLSCREEN: null,
MAIN_SHOW_CLEAR_BROWSING_DATA_DIALOG: null,
MAIN_SHOW_CONFIRM_OPEN_BOOKMARKS_DIALOG: null,
MAIN_SHOW_EXPORT_DATA: null,
MAIN_SHOW_IMPORT_DATA: null,
MAIN_SHOW_KEYBOARDS_SHORTCUTS: null,
MAIN_SHOW_OPEN_SESSION: null,
MAIN_SHOW_PAGE_INFO: null,
MAIN_SHOW_QUICKCOMMANDS: null,
MAIN_SHOW_SAVE_SESSION: null,
MAIN_SHOW_VISUAL_TAB_SWITCHER: null,
MAIN_TOGGLE_ADDRESS_BAR: null,
MAIN_TOGGLE_TAB_BAR: null,
MAIN_TOGGLE_UI: null,
MAIN_ZOOM_DOUBLE: null,
MAIN_ZOOM_HALF: null,
MAIN_ZOOM_IN: null,
MAIN_ZOOM_OUT: null,
MAIN_ZOOM_RESET: null,
NAVGIATION_TYPED_HISTORY_DELETE: null,
NAVIGATION_ADD_POPUP: null,
NAVIGATION_ADD_TYPED_HISTORY: null,
NAVIGATION_HISTORY_ALL_DELETED: null,
NAVIGATION_REMOVE_POPUP: null,
NAVIGATION_RESET_BLOCKED_CONTENT: null,
NAVIGATION_RESET_PERMISSIONS: null,
NAVIGATION_SET_BLOCKED_CONTENT: null,
NAVIGATION_SET_PERMISSION: null,
NAVIGATION_SET_PROGRESS: null,
NAVIGATION_SET_STATE: null,
NAVIGATION_TYPED_HISTORY_DELETE: null,
NOTES_ADD_ITEM: null,
NOTES_CHANGE_ITEM: null,
NOTES_LOAD_ALL: null,
NOTES_MOVE_ITEM: null,
NOTES_REMOVE_ITEM: null,
PAGE_ACTION_FAST_FORWARD_URL_CHANGED: null,
PAGE_BACK: null,
PAGE_BURY: null,
PAGE_CLEAR: null,
PAGE_CLONE: null,
PAGE_CLOSE: null,
PAGE_CLOSE_OTHER: null,
PAGE_CYCLE_BY_HISTORY: null,
PAGE_CYCLE_BY_ORDER: null,
PAGE_FORWARD: null,
PAGE_GO: null,
PAGE_MINIMIZE: null,
PAGE_OPEN: null,
PAGE_OPEN_URL: null,
PAGE_OVERRIDE_PROPS: null,
PAGE_PREVENT_UNDELETE: null,
PAGE_RELOAD: null,
PAGE_RESUME_UPDATES: null,
PAGE_SELECTION_CLEAR: null,
PAGE_SELECTION_SET: null,
PAGE_SELECTION_TOGGLE_RELATED: null,
PAGE_SET_FAVICON: null,
PAGE_SET_FULLSCREEN: null,
PAGE_SET_IS_RESTORED: null,
PAGE_SET_LOADING: null,
PAGE_SET_MEDIASTATE: null,
PAGE_SET_MEDIA_PERMISSION: null,
PAGE_SET_PROCESSEXITSTATE: null,
PAGE_SET_SSL_STATE: null,
PAGE_SET_TARGET_URL: null,
PAGE_SET_THUMBNAIL: null,
PAGE_SET_TITLE: null,
PAGE_STOP: null,
PAGE_TABSTACK_CLOSE: null,
PAGE_TABSTACK_CREATE: null,
PAGE_TABSTACK_EXPAND: null,
PAGE_TABSTACK_REMOVE_FROM: null,
PAGE_TILE_PAGES: null,
PAGE_TOGGLE_PINNED: null,
PAGE_UPDATE: null,
PAGE_UPDATED: null,
PANEL_RESET_PANELS: null,
PANEL_SET_ACTIVE_WINDOW_ID: null,
PANEL_SET_AVAILABLE: null,
PANEL_SET_CONTENT_VISIBLE: null,
PANEL_SET_FOCUS: null,
PANEL_SET_MAIL_WINDOW_ID: null,
PANEL_SET_PANELS: null,
PANEL_SET_RESIZABLE: null,
PANEL_SET_STATE: null,
PANEL_SET_SWITCHER_VISIBLE: null,
PANEL_SET_WIDTH: null,
PANEL_SHOW_CONTENT: null,
PANEL_SHOW_NEXT: null,
PANEL_TOGGLE_CONTENT: null,
PANEL_TOGGLE_PANEL: null,
READERABLE: null,
SEARCH_FIELD_ADD_TYPED_HISTORY: null,
SEARCH_FIELD_DELETE_TYPED_HISTORY: null,
SEARCH_FIELD_INIT_TYPED_HISTORY: null,
SEARCH_FIELD_SET_STATE: null,
SEARCH_FIELD_TYPED_HISTORY_ENABLED: null,
SEARCH_SUGGEST_RESULT: null,
SHOW_FIND_IN_PAGE_ACTION: null,
SPATNAV_NAVIGATE: null,
STATUS_CLEAR_STATUS: null,
STATUS_SET_STATUS: null,
TAB_CLOSEBUTTON_DISABLED: null,
TAB_CLOSE_ALL_BUT_ACTIVE_TAB: null,
TAB_NEW_BACKGROUND_TAB: null,
TAB_NEW_TAB: null,
TAB_STACK_TILE_GRID: null,
TAB_STACK_TILE_HORIZONTAL: null,
TAB_STACK_TILE_VERTICAL: null,
TAB_STACK_UNTILE: null,
TAB_SWITCH_BACK_HISTORY: null,
TAB_SWITCH_BACK_ORDER: null,
TAB_SWITCH_BACK_SETTING: null,
TAB_SWITCH_FORWARD_HISTORY: null,
TAB_SWITCH_FORWARD_ORDER: null,
TAB_SWITCH_FORWARD_SETTING: null,
TAB_TOGGLE_THUMBNAIL: null,
TAB_UNDO_RECENTLY_CLOSED: null,
TAB_VIEW_PAGE_SOURCE: null,
TOOLTIP_CLEAR: null,
TOOLTIP_HIDE: null,
TOOLTIP_SHOW: null,
URLFIELD_BLUR: null,
URLFIELD_CLEAR_STATE: null,
URLFIELD_SET_STATE: null,
URLFIELD_TYPED_HISTORY_DELETE: null,
URLFIELD_TYPED_HISTORY_ENABLED: null,
URLFIELD_TYPED_HISTORY_HIDE: null,
URLFIELD_TYPED_HISTORY_INIT: null,
URLFIELD_TYPED_HISTORY_SHOW: null,
URLFIELD_HISTORY_DELETE: null,
URL_SET_SSLSTATE: null,
VIVALDI_HISTORY_DISPLAY_MODE_CHANGE: null,
VIVALDI_HISTORY_INIT_FILTER: null,
VIVALDI_HISTORY_LOAD_TODAY: null,
VIVALDI_HISTORY_LOAD_YESTERDAY_AND_OLDER: null,
VIVALDI_HISTORY_REMOVE_AFTER: null,
VIVALDI_TABS_UPDATED: null,
WEBPAGEVIEW_ACTIONS: null,
WEBVIEW_SET_ACTIVE: null
});
e.exports = s
}, , function(e, t, n) {
// =========================
// Function_8
// =========================
"use strict";
var i = n(821).Dispatcher,
a = Object.assign(new i, {
handleViewAction: function(e) {
this.dispatch({
source: "VIEW_ACTION",
action: e
})
},
handleChromeAction: function(e) {
this.dispatch({
source: "CHROME_ACTION",
action: e
})
}
});
e.exports = a
}, , function(e, t, n) {
// =========================
// Function_10
// =========================
"use strict";
window.vivaldi ? e.exports = window.vivaldi : e.exports = n(233)
}, , function(e, t, n) {
// =========================
// Function_12
// =========================
"use strict";
var i = n(1),
a = function e(t, n) {
if ("string" == typeof t) return t.toLowerCase().indexOf(n) !== -1;
if (t && "input" === t.type && "string" == typeof t.props.value) return t.props.value.toLowerCase().indexOf(n) !== -1;
if (t && t.props && t.props.children) {
var a = !1;
return i.Children.forEach(t.props.children, function(t) {
a || (a = e(t, n))
}), a
}
return !1
};
e.exports = function(e, t) {
return t ? a(e, t) ? e : null : e
}
}, function(e, t, n) {
// =========================
// Function_13
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = n(3),
r = {
getInitialState: function() {
return {}
},
componentWillMount: function() {
this.setState(a.getKeysSync(this.vivaldiSettingsKeys))
},
componentDidMount: function() {
var e = this;
this.vivaldiSettingsKeys.forEach(function(t) {
return a.addListener(t, e._vivaldiSettingHandler)
})
},
componentWillUnmount: function() {
var e = this;
this.vivaldiSettingsKeys.forEach(function(t) {
return a.removeListener(t, e._vivaldiSettingHandler)
})
},
_vivaldiSettingHandler: function(e, t, n) {
e !== t && this.state[n] !== t && ("function" == typeof this.vivaldiSettingWillChange && this.vivaldiSettingWillChange(n, t), this.isMounted() && this.setState(i({}, n, t)))
}
};
e.exports = r
}, , function(e, t, n) {
// =========================
// Function_15
// =========================
(function(t) {
"use strict";
var i = n(8),
a = n(6),
r = n(72),
s = n(3),
o = n(17),
l = n(348),
c = n(4),
u = n(89),
A = n(779),
d = n(782),
h = n(10),
m = n(20),
p = m.urls,
f = n(27),
g = f.List,
_ = f.Set,
v = "MacIntel" === navigator.platform,
b = !1,
N = window.vivaldiWindowId,
E = {
onFaviconUpdated: "setFavIcon",
onTabUpdated: "setTabInfo"
},
S = {
newPage: function(e, t, n) {
n && n.url && (e = n.url), S.openURL(e)
},
openURL: function(e, t) {
t = Object.assign({
singleton: !1,
inCurrent: !1,
inSpecific: null,
inBackground: !1,
isTyped: !1,
bookmarkId: 0,
incognito: !1
}, t), e = p.getUrl(e), e && "_blank" !== e || (e = o.getDefaultStartpage());
var n = t.inSpecific ? t.inSpecific : o.getActivePage();
if (t.inNewWindow) return void S.openWindow(e, {
focused: !t.inBackground,
incognito: t.incognito
});
var r = !1;
if (t.singleton) {
if (p.internalKeyFromUrl(e)) {
var s = o.getPages().find(function(t) {
return p.equalUrl(e, t.url)
});
s && (i.handleViewAction({
actionType: a.PAGE_OPEN,
page: s
}), r = !0)
}
} else t.inCurrent && n.url && (t.bookmarkId && l.add(n.id, t.bookmarkId, e), i.handleViewAction({
actionType: a.PAGE_OPEN_URL,
page: n,
url: e,
isTyped: t.isTyped
}), r = !0);
if (!r) {
var u = A(e),
d = {
url: u,
windowId: N,
active: t.inBackground !== !0
};
t.addOpenerTabId === !0 && (d.openerTabId = n.id), c.tabs.create(d, function(n) {
c.runtime.lastError ? console.warn("ERROR while creating new tab. Original message:\n" + c.runtime.lastError.message) : t.bookmarkId && l.add(n.id, t.bookmarkId, e)
})
}
},
setTitle: function(e, t) {
i.handleViewAction({
actionType: a.PAGE_SET_TITLE,
page: e,
title: t
})
},
openWindow: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : o.getDefaultStartpage(),
t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
n = arguments[2],
i = arguments[3],
a = Object.assign({
url: e,
incognito: !1,
focused: void 0,
width: window.innerWidth,
height: window.innerHeight
}, t);
void 0 === i && (i = "normal");
var r = Object.assign({
ext_id: u(),
windowType: i
}, t.extData ? JSON.parse(t.extData) : {});
a.extData = JSON.stringify(r), b && s.set({
OPEN_WINDOW_TIMESTAMP: (new Date).getTime()
}), c.windows.create(a, "function" == typeof n ? n : null)
},
openIncognitoWindow: function(e) {
S.openWindow(e, {
incognito: !0
})
},
openPage: function(e) {
i.handleViewAction({
actionType: a.PAGE_OPEN,
page: e
})
},
openPageN: function(e) {
var t = e - 1,
n = "off" === s.getSync("TAB_STACKING"),
i = o.getTabs(n),
a = i.get(t);
a && S.openPage(a.page)
},
openLastPage: function() {
var e = "off" === s.getSync("TAB_STACKING"),
t = o.getTabs(e),
n = t.last();
n && S.openPage(n.page)
},
minimizePage: function(e) {
i.handleViewAction({
actionType: a.PAGE_MINIMIZE,
page: e
})
},
discardPage: function(e) {
c.tabs.discard(e.id)
},
clonePage: function(e) {
var t = g.isList(e) || Array.isArray(e) ? g(e) : g.of(e);
i.handleViewAction({
actionType: a.PAGE_CLONE,
pages: t
})
},
showHomepage: function(e) {
var t = s.getSync(r.kVivaldiHomepage);
if (t) {
var n = {};
e ? n = e : n.inCurrent = !0, S.openURL(t, n)
}
},
buryPage: function(e) {
i.handleViewAction({
actionType: a.PAGE_BURY,
page: e
})
},
close: function() {
if (o.isSelecting()) {
var e = o.getSelection().map(function(e) {
return o.getPages().find(function(t) {
return t.id === e
})
}).filter(Boolean).toList();
S.closePage(e)
} else {
var t = o.getActivePage();
S.closePage(t)
}
},
closePage: function(e) {
var t = g.isList(e) || Array.isArray(e) ? g(e) : g.of(e);
i.handleViewAction({
actionType: a.PAGE_CLOSE,
pages: t
})
},
reloadPage: function(e) {
var t = g.isList(e) || Array.isArray(e) ? g(e) : g.of(e);
t.forEach(function(e) {
c.tabs.reload(e.id)
})
},
closeToRight: function(e) {
var t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],
n = o.getPages().skipUntil(function(t) {
return t.id === e.id
}).skip(1);
t && o.isGroup(e) && ! function() {
var t = ["extData", "group"];
n = n.filter(function(n) {
return n.getIn(t) !== e.getIn(t)
})
}(), n.count() && S.closePage(n)
},
closeToLeft: function(e) {
var t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],
n = o.getPages().takeUntil(function(t) {
return t.id === e.id
});
t && o.isGroup(e) && ! function() {
var t = ["extData", "group"];
n = n.filter(function(n) {
return n.getIn(t) !== e.getIn(t)
})
}(), n.count() && S.closePage(n)
},
setMuting: function(e, t) {
var n = [];
"active" === e ? n = [o.getActivePage()] : "other" === e ? n = o.getPages().filter(function(e) {
return e.id !== o.getActivePage().id
}) : "all" === e && (n = o.getPages()), "mute" === t || "unmute" === t ? ! function() {
var e = "mute" === t ? "playing" : "muting";
n.forEach(function(n) {
n.mediastate === e && c.tabs.update(n.id, {
muted: "mute" === t
}, function() {
c.runtime.lastError
})
})
}() : "toggle" === t && S.mutePage(n)
},
mutePage: function(e) {
var t = g.isList(e) || Array.isArray(e) ? g(e) : g.of(e);
t.forEach(function(e) {
"playing" === e.mediastate ? c.tabs.update(e.id, {
muted: !0
}, function() {
c.runtime.lastError
}) : "muting" === e.mediastate && c.tabs.update(e.id, {
muted: !1
}, function() {
c.runtime.lastError
})
})
},
movePage: function(e, t) {
var n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2],
i = arguments[3],
a = ["extData", "group"],
r = g.isList(e) || Array.isArray(e) ? g(e) : g.of(e);
n && (r = r.flatMap(function(e) {
return o.isGroup(e.getIn(a)) ? o.getGroup(e.getIn(a)) : g.of(e)
}));
var s = g.isList(t) || Array.isArray(t) ? g(t) : g.of(t);
n && (s = s.flatMap(function(e) {
return o.isGroup(e.getIn(a)) ? o.getGroup(e.getIn(a)) : g.of(e)
}));
var l = r.first().index > s.first().index ? s.first().index : s.last().index;
S.moveToIndex(r, l, i)
},
moveToIndex: function(e, t, n) {
var i = g.isList(e) ? _(e) : _.of(e);
c.tabs.move(i.map(function(e) {
return e.id
}).toArray().sort(function(e, t) {
return e - t
}), {
windowId: N,
index: t
}, function(e) {
c.runtime.lastError && console.warn("Error moving tabs: ", e, c.runtime.lastError.message), "function" == typeof n && n(e)
})
},
moveToWindow: function(e, t) {
var n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2],
i = g.isList(e) || Array.isArray(e) ? g(e) : g.of(e);
return n ? i = i.flatMap(function(e) {
var t = e.getIn(["extData", "group"]);
return o.isGroup(t) ? o.getGroup(t) : g.of(e)
}) : S.removeFromTabStack(i), i.some(function(e) {
return e.incognito
}) ? void console.warn("Not possible to detach incognito tabs") : void c.tabs.move(i.map(function(e) {
return e.id
}).toJS(), {
windowId: t,
index: -1
}, function(e) {
c.runtime.lastError && console.warn("Error moving tabs: ", e, c.runtime.lastError.message), c.windows.update(t, {
focused: !0
}, function() {
var e = i.find(function(e) {
return e.active
}) || i.first();
c.tabs.update(e.id, {
active: !0
})
})
})
},
detachPage: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : void 0,
n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0,
i = g.isList(e) || Array.isArray(e) ? g(e) : g.of(e),
a = i.first(),
r = i.rest();
S.openWindow(null, {
tabId: a.id,
left: t,
top: n,
extData: JSON.stringify({
isDropped: !0
})
}, function(e) {
r.count() && S.moveToWindow(r, e.id, !1)
})
},
createTabStack: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null,
n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null;
i.handleViewAction({
actionType: a.PAGE_TABSTACK_CREATE,
pages: e,
targetIndex: t,
groupName: n
})
},
expandTabStack: function(e) {
i.handleViewAction({
actionType: a.PAGE_TABSTACK_EXPAND,
groupName: e
})
},
closeTabStack: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
if (t && !v) {
var n = o.getPages(),
r = o.getGroup(e.getIn(["extData", "group"]));
n.count() === r.count() && S.openURL()
}
i.handleViewAction({
actionType: a.PAGE_TABSTACK_CLOSE,
page: e,
closeAll: t
})
},
removeFromTabStack: function(e) {
var t = g.isList(e) || Array.isArray(e) ? g(e) : g.of(e);
i.handleViewAction({
actionType: a.PAGE_TABSTACK_REMOVE_FROM,
pages: t
})
},
closeOther: function(e, t) {
var n = g.isList(e) || Array.isArray(e) ? g(e) : g.of(e);
i.handleViewAction({
actionType: a.PAGE_CLOSE_OTHER,
pages: n,
includeGroup: t
})
},
togglePinned: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : o.getActivePage(),
t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
r = g.isList(e) || Array.isArray(e) ? g(e) : g.of(e);
i.handleViewAction({
actionType: a.PAGE_TOGGLE_PINNED,
pages: r,
forcePin: t,
forceUnpin: n
})
},
tilePages: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null,
n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "selection",
r = t || (e.count() < 4 ? "vertically" : "grid");
i.handleViewAction({
actionType: a.PAGE_TILE_PAGES,
pages: e,
type: n,
id: u(),
layout: r
})
},
tileTabStack: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null,
n = o.getGroup(e),
i = t || (n.count() < 4 ? "vertically" : "grid");
S.tilePages(n, i, "group")
},
untilePages: function(e) {
var t = o.getTiles(e);
t && i.handleViewAction({
actionType: a.PAGE_TILE_PAGES,
pages: t,
type: "",
id: "",
layout: ""
})
},
setFullscreen: function(e, t) {
i.handleViewAction({
actionType: a.PAGE_SET_FULLSCREEN,
page: e,
fullscreen: t
})
},
overridePageProps: function(e, t) {
i.handleViewAction({
actionType: a.PAGE_OVERRIDE_PROPS,
page: e,
props: t
})
},
setMediaState: function(e, t) {
i.handleViewAction({
actionType: a.PAGE_SET_MEDIASTATE,
pageId: e,
mediastate: t
})
},
setFavIcon: function(e) {
i.handleViewAction({
actionType: a.PAGE_SET_FAVICON,
pageId: e.tabId,
favIcon: e.favIcon
})
},
setTabInfo: function(e, t) {
i.handleChromeAction({
actionType: a.VIVALDI_TABS_UPDATED,
pageId: e,
tabInfo: t
})
},
setProcessExitState: function(e, t) {
i.handleViewAction({
actionType: a.PAGE_SET_PROCESSEXITSTATE,
pageId: e,
processexitstate: t
})
},
setThumbnail: function(e, t) {
i.handleViewAction({
actionType: a.PAGE_SET_THUMBNAIL,
page: e,
thumbnail: t
})
},
setTargetURL: function(e) {
i.handleViewAction({
actionType: a.PAGE_SET_TARGET_URL,
targetUrl: e
})
},
toggleRelatedSelection: function(e) {
i.handleViewAction({
actionType: a.PAGE_SELECTION_TOGGLE_RELATED,
page: e
})
},
setSelection: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
i.handleViewAction({
actionType: a.PAGE_SELECTION_SET,
page: e,
multiSelect: t,
addGroup: n
})
},
clearSelection: function() {
i.handleViewAction({
actionType: a.PAGE_SELECTION_CLEAR
})
},
cycleByHistory: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {
goBack: !0
};
i.handleViewAction({
actionType: a.PAGE_CYCLE_BY_HISTORY,
maybeEvent: e,
goBack: t.goBack
})
},
cycleByOrder: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {
goBack: !0
};
i.handleViewAction({
actionType: a.PAGE_CYCLE_BY_ORDER,
maybeEvent: e,
goBack: t.goBack
})
},
setIsRestored: function(e, t) {
i.handleViewAction({
actionType: a.PAGE_SET_IS_RESTORED,
page: e,
restored: t
})
},
markPageForUndelete: function(e, t) {
t && t.getPageHistory && t.getPageHistory(function(t, n) {
n && i.handleViewAction({
actionType: a.PAGE_PREVENT_UNDELETE,
pageId: e.id,
preventUndelete: n.every(function(e) {
return p.isInternalUrl(e.url)
}),
historyCount: n.filter(function(e) {
return !p.isInternalUrl(e.url)
}).length
})
})
},
setFindResults: function(e, t) {
i.handleViewAction(Object.assign({
actionType: a.FIND_IN_PAGE_RESULT_ACTION,
page: e,
searchText: t.searchText
}, t))
},
moveDroppedTabs: function(e, t, n) {
var i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null;
1 === e.size && e.first().getIn(["extData", "group"]) && S.removeFromTabStack(e.first()), S.moveToIndex(e, n, function() {
var n = t ? e.find(function(e) {
return e.id === parseInt(t)
}) : e.first();
n && S.openPage(n), setTimeout(function() {
return "function" == typeof i && i()
}, 100), e.some(function(e) {
return e.pinned
}) && S.togglePinned(e.filter(function(e) {
return e.pinned
}).map(function(e) {
return e.set("pinned", !1)
}), !0)
})
},
_attachTabPrivateHandlers: function() {
Object.keys(E).forEach(function(e) {
return h.tabsPrivate[e].addListener(S[E[e]])
})
},
clear: function() {
i.handleViewAction({
actionType: a.PAGE_CLEAR
})
},
_registerChromeTabsEvents: function() {
var e = {
onCreated: a.CHROME_TABS_CREATED,
onRemoved: a.CHROME_TABS_REMOVED,
onUpdated: a.CHROME_TABS_UPDATED,
onMoved: a.CHROME_TABS_MOVED,
onActivated: a.CHROME_TABS_ACTIVATED,
onDetached: a.CHROME_TABS_DETACHED,
onAttached: a.CHROME_TABS_ATTACHED,
onReplaced: a.CHROME_TABS_REPLACED
},
t = function(e, t) {
for (var n = arguments.length, a = Array(n > 2 ? n - 2 : 0), r = 2; r < n; r++) a[r - 2] = arguments[r];
d(e, a) === N && i.handleChromeAction({
actionType: t,
args: a
})
};
Object.keys(e).forEach(function(n) {
return c.tabs[n].addListener(t.bind(null, n, e[n]))
})
},
loadPromise: function() {
return new Promise(function(e, n) {
c.windows.get(N, {
populate: !0
}, function(n) {
return t.nextTick(function() {
var t = {};
if (n && n.extData) try {
t = JSON.parse(n.extData)
} catch (e) {}
var r = n ? n.tabs : [],
o = t.historystack;
i.handleChromeAction({
actionType: a.CHROME_TABS_INIT,
tabs: r,
historystack: o
}), S._registerChromeTabsEvents(), S._attachTabPrivateHandlers(), s.addListener("TAB_SELECTION_INCLUDE_ACTIVE", S.clearSelection), e()
})
})
})
}
};
e.exports = window.PageActions = S
}).call(t, n(16))
}, , function(e, t, n) {
// =========================
// Function_17
// =========================
(function(t) {
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e) {
if (Array.isArray(e)) {
for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t];
return n
}
return Array.from(e)
}
function r(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function s(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function o(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
function l() {
je = (0, Be.List)(), ze = (0, Be.List)(), Ye = !1, Je = (0, Be.Set)(), Qe = "", Ze = (0, Be.Map)()
}
function c(e, t) {
je = je.map(function(n) {
return n.id === e ? n.mergeIn(["extData"], t) : n
}), lt()
}
function u(e, t) {
Ze = Ze.set(e.getIn(["extData", "ext_id"]), t)
}
function A(e) {
return Ze.get(e.getIn(["extData", "ext_id"]))
}
function d(e, t, n) {
c(e, {
preventUndelete: t,
historyCount: n
}), $e.emitChange()
}
function h(e, t, n, i) {
return m(e, t, function(e) {
return e.set(n, i)
})
}
function m(e, t, n) {
return e.map(function(e) {
return e.id === t ? n(e) : e
})
}
function p(e, t) {
var n = e.map(function(e) {
return e.set("active", e.id === t).set("extData", e.id === t ? e.extData.set("read", !0) : e.extData)
});
return lt(), n
}
function f(e) {
if (e && 0 !== e.count()) {
je = je.map(function(e) {
return e.getIn(["extData", "ext_id"]) ? e : e.setIn(["extData", "ext_id"], (0, De.default)())
}), lt();
var t = e.reduce(function(e, t) {
var n = $e.getPages().find(function(e) {
return e.id === t
});
return n && e ? (e.push(n.getIn(["extdata", "ext_id"])), e) : e
}, []);
(0, Te.default)(Ke, {
historystack: t
})
}
}
function g(e, t) {
var n = t.reduce(function(t, n) {
var i = e.find(function(e) {
return e.getIn(["extData", "ext_id"]) === n
});
return i && t ? t.push(i.id) : t
}, (0, Be.List)());
n = e.filter(function(e) {
return !n || !n.includes(e.id)
}).map(function(e) {
return e.id
}).concat(n);
var i = je.find(function(e) {
return e.active
});
return i && (n = (0, He.moveToEnd)(n, i.id)), n
}
function _(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];
arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null;
e && (je = (0, Be.List)(e.map(function(e) {
return de.default.tabToPage(e)
})), e.forEach(ue.syncDetachedTabInformation), je = je.map(function(e) {
return e.hasIn(["extData", "ext_id"]) ? e : e.setIn(["extData", "ext_id"], (0, De.default)())
}), lt(), ze = g(je, t), ie(), $e.emitChange())
}
function v(e, t) {
var n = e.index,
i = Ee.default.getSync("TAB_NEW_PLACEMENT");
if (A(e)) u(e, !1), n = e.index;
else if ("directrightofcurrent" === i) {
var a = $e.getActivePage();
if (a.pinned) {
var r = $e.getPages().find(function(e) {
return !e.pinned
});
n = r ? r.index : n
} else n = a.index + 1
} else if ("rightofcurrent" === i && e.openerTabId) {
var s = $e.getPages().find(function(t) {
return t.id === e.openerTabId
});
if (s && s.pinned) n = e.index;
else {
var o = function(t) {
return t.id !== e.openerTabId && t.openerTabId !== e.openerTabId
},
l = t.skipWhile(o).takeUntil(o).last();
l && (n = l.index + 1)
}
} else if ("alwayslast" === i) {
var c = t.last();
c && (n = c.index + 1)
}
return n
}
function b(e) {
var t = de.default.tabToPage(e),
n = v(t, je),
i = n !== t.index;
i && Oe.default.tabs.move(t.id, {
index: n
});
var a = Ee.default.getSync("TAB_STACKING_OPEN_IN_CURRENT");
if (a && void 0 !== t.openerTabId) {
var r = $e.getPages().find(function(e) {
return e.id === t.openerTabId
}),
s = r && r.getIn(["extData", "group"]);
r && $e.isGroup(s) && (t = t.setIn(["extData", "group"], s), lt())
}
t.getIn(["extData", "ext_id"]) && (t = t.setIn(["extData", "ext_id"], (0, De.default)()), lt()), ze = e.active ? (0, He.moveToEnd)(ze, t.id) : (0, He.moveToStart)(ze, t.id), f(ze), je = je.splice(e.index, 0, t), e.active && (je = p(je, e.id)), ie(), i || $e.emitChange()
}
function N(e) {
je = je.filter(function(t) {
return t.id !== e
}).map(function(e, t) {
return e.set("index", t)
}), ze = ze.filter(function(e) {
return je.some(function(t) {
return t.id === e
})
}), f(ze), ie()
}
function E(e, t, n) {
var i = e.findIndex(function(e) {
return e.id === t.id
});
return n === i ? e : e.delete(i).splice(n, 0, t).map(function(e, t) {
return e.set("index", t)
})
}
function S(e) {
N(e), $e.emitChange()
}
function T(e, t, n) {
var i = je.map(function(i) {
return i.id === e ? de.default.updatePage(i, {
favIconUrl: n.favIconUrl || ""
}, {
url: n.url
}, t) : i
});
(0, Be.is)(i, je) || (je = i, $e.emitChange())
}
function y(e, t) {
var n = je.find(function(t) {
return t.id === e
});
if (n) {
var i = E(je, n, t.toIndex);
ie(), (0, Be.is)(je, i) || (je = i, $e.emitChange())
}
}
function C(e) {
var t = $e.getActivePage();
if (e.tabId !== t.id) {
var n = p(je, e.tabId),
i = ze.last();
(0, Be.is)(n, je) && i === e.tabId || (je = n, ze = (0, He.moveToEnd)(ze, e.tabId), f(ze), ie(), $e.emitChange())
}
}
function I(e) {
var t = je.find(function(t) {
return t.id === e
});
if (t)
if ((0, ue.storeDetachedTabInformation)(e, t.url), N(e), ie(), t.active) {
var n = P(t);
D(n.id)
} else $e.emitChange()
}
function O(e, t) {
var n = t.newPosition,
i = je.find(function(t) {
return t.id === e
});
if (!i) {
var a = new fe.default({
id: e,
index: n,
url: ""
});
je = je.splice(n, 0, a).map(function(e, t) {
return e.set("index", t)
})
}(0, xe.default)(Oe.default.tabs.get)(e).then(function(e) {
return (0, ue.syncDetachedTabInformation)(e), e
}).then(function(e) {
return T(e.id, e, e)
}), ie()
}
function w(e, t) {
var n = m(je, e, function(e) {
return e.merge(t)
});
(0, Be.is)(n, je) || $e.emitChange()
}
function D(e) {
var t = p(je, e);
(0, Be.is)(t, je) || (je = t, ie(), Oe.default.tabs.update(e, {
active: !0
}, function() {
Oe.default.runtime.lastError
}), ze = (0, He.moveToEnd)(ze, e), f(ze), $e.emitChange())
}
function k() {
ct && (0, Be.is)(ut, ze) || (ct = ze, ut = ze), ct = (0, He.rotateList)(ct), D(ct.last()), ut = ze
}
function M(e) {
e.forEach(function(e) {
return Oe.default.tabs.duplicate(e.id, function(t) {
if (t && t.id) {
var n = Ee.default.getSync("TAB_STACKING_OPEN_IN_CURRENT");
n && $e.isGroup(e.getIn(["extData", "group"])) && c(t.id, {
group: e.getIn(["extData", "group"])
});
var i = Ee.default.getSync("TAB_CLONE_PLACEMENT"),
a = "alwayslast" === i ? -1 : t.index;
t.id && Oe.default.tabs.move(t.id, {
index: a
})
}
})
})
}
function L(e) {
var t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],
n = void 0;
if (e.openerTabId) {
var i = function() {
return je.takeUntil(function(t) {
return t.id === e.id
}).filter(function(t) {
return t.openerTabId === e.openerTabId
}).reverse()
},
a = function() {
return je.slice(e.index + 1).filter(function(t) {
return t.openerTabId === e.openerTabId
})
};
n = t ? a().first() || i().first() : i().first() || a().first(), n || (n = je.find(function(t) {
return t.id === e.openerTabId
}))
}
return n || (n = je.skipUntil(function(t) {
return t.id === e.id
}).skip(1).find(function(t) {
return t.openerTabId === e.id
})), n
}
function P(e) {
var t = "TAB_ACTIVATION_PREFER_RELATED",
n = Ee.default.getSync(t),
i = Ee.default.getSync("TAB_CLOSE_ACTIVATION"),
a = void 0;
if (n) {
var r = "left" !== i;
if (a = L(e, r)) return a
}
switch (i) {
case "left":
var s = e.index - 1;
a = s < 0 ? je.find(function(t) {
return t.id !== e.id
}) : je.get(s);
break;
case "right":
a = je.get(e.index + 1), a || (a = je.reverse().find(function(t) {
return t.id !== e.id
}));
break;
case "activation_order":
a = void 0;
break;
default:
a = void 0
}
return a || ! function() {
var t = ze.filter(function(e) {
return je.some(function(t) {
return t.id === e
})
}).filter(function(t) {
return t !== e.id
}).last();
a = je.find(function(e) {
return e.id === t
})
}(), a || (a = je.first()), a
}
function R(e) {
var t = P(e);
t && t.id !== e.id && (D(t.id), ze = (0, He.moveToStart)(ze, e.id), $e.emitChange())
}
function x(e) {
if ($e.canClose()) {
var t = e,
n = Ee.default.getSync("CLOSABLE_PINNED_TABS");
"off" === n ? t = e.filter(function(e) {
return !e.pinned
}) : "bury" === n && (t = e.filter(function(e) {
return !e.pinned
}), ze = e.filter(function(e) {
return e.pinned
}).reduce(function(e, t) {
return (0, He.moveToStart)(e, t.id)
}, ze)), je = je.map(function(e) {
return t.find(function(t) {
return t.id === e.id
}) ? e.set("isRemoved", !0) : e
}), ze = ze.filter(function(e) {
return je.some(function(t) {
return t.id === e
})
});
var i = 0 === je.filter(function(e) {
return !e.isRemoved
}).count();
if (i) {
var a = Ee.default.getSync("TAB_NEVER_CLOSE_LAST");
return void(a && !At ? (At = !0, Oe.default.tabs.create({
url: $e.getDefaultStartpage()
}, function() {
At = !1
})) : $e.emitChange())
}
var r = t.some(function(e) {
return e.active
}),
s = je.find(function(e) {
return e.active
}) || je.first(),
o = "bury" === n && s && s.pinned && e.some(function(e) {
return e.id === s.id
});
if (r) {
var l = P(s);
D(l.id)
} else o ? D(ze.last()) : (ie(), $e.emitChange())
}
}
function B(e, t, n) {
return e.set("target", (0, Be.Map)({
url: t,
isTyped: n
})).set("url", t)
}
function U(e, t, n) {
je = m(je, e.id, function(e) {
return B(e, t, n)
}), $e.emitChange()
}
function F(e, t, n) {
var i, r = function(e) {
return e.pinned
};
if (e.some(r)) return void console.warn("Can't group pinned pages.");
e = e.map(function(e) {
return je.find(function(t) {
return t.id === e.id
}) || e
}).toSet().toList();
var s = e.find(function(e) {
return "group" === e.getIn(["extData", "tiling", "type"])
}),
o = s && s.getIn(["extData", "tiling"]) || "",
l = e.first().getIn(["extData", "tiling", "id"]);
!o && l && e.every(function(e) {
return "selection" === e.getIn(["extData", "tiling", "type"]) && e.getIn(["extData", "tiling", "id"]) === l
}) && (o = e.first().getIn(["extData", "tiling"]).set("type", "group"));
var c = void 0;
if (n) c = n;
else {
var u = e.findIndex(function(e) {
return e.getIn(["extData", "group"])
});
c = u !== -1 ? e.getIn([u, "extData", "group"]) : (0, De.default)()
}
e = e.map(function(e) {
return e.mergeIn(["extData"], {
group: c,
tiling: o
})
});
var A = e.filter(function(e) {
return e.windowId === Ke
}).sortBy(function(e) {
return e.index
}).first(),
d = "number" != typeof t ? A.index : t;
je = (i = je.filterNot(function(t) {
return e.some(function(e) {
return e.id === t.id
})
})).splice.apply(i, [d, 0].concat(a(e))), ie(), lt(), Oe.default.tabs.move(e.map(function(e) {
return e.id
}).toArray(), {
windowId: Ke,
index: d
}), $e.emitChange()
}
function H(e, t) {
var n = void 0;
n = t ? e.flatMap(function(e) {
return $e.isGroup(e.getIn(["extData", "group"])) ? $e.getGroup(e.getIn(["extData", "group"])) : Be.List.of(e)
}) : e;
var i = je.filterNot(function(e) {
return n.some(function(t) {
return t.id === e.id
})
});
x(i)
}
function V(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
t ? je = je.map(function(t) {
return t.set("isRemoved", t.getIn(["extData", "group"]) === e.getIn(["extData", "group"]))
}) : ! function() {
var t = ["extData", "group"],
n = je.filter(function(n) {
return n.getIn(t) === e.getIn(t)
}).map(function(e) {
return e.id
}),
i = ze.reverse().find(function(e) {
return n.contains(e)
});
je = je.map(function(e) {
return e.set("isRemoved", e.id === i)
})
}(), $e.emitChange()
}
function W(e) {
je = je.map(function(t) {
return e.some(function(e) {
return e.id === t.id
}) ? t.mergeIn(["extData"], {
group: "",
tiling: ""
}) : t
}), lt(), $e.emitChange()
}
function G(e) {
je = je.map(function(t) {
return t.getIn(["extData", "group"]) === e ? t.mergeIn(["extData"], {
group: "",
tiling: ""
}) : t
}), $e.emitChange()
}
function K(e, t) {
je = je.map(function(n) {
return e.some(function(e) {
return e.id === n.id
}) ? n.mergeIn(["extData"], {
tiling: t
}) : n
}), $e.emitChange()
}
function j(e, t, n) {
je = je.map(function(i) {
if (e.some(function(e) {
return e.id === i.id
})) {
var a = void 0;
return a = !!t || !n && !i.pinned, Oe.default.tabs.update(i.id, {
pinned: a
}), i.set("pinned", a)
}
return i
}), $e.emitChange()
}
function z(e) {
Qe = e
}
function Y(e, t) {
je = m(je, e.id, function(e) {
return e.merge(t)
}), $e.emitChange()
}
function J(e, t) {
je = h(je, e, "mediastate", t), $e.emitChange()
}
function Q(e, t) {
je = h(je, e, "favIcon", t), $e.emitChange()
}
function Z(e, t) {
je = h(je, e.id, "fullscreen", t), $e.emitChange()
}
function q(e, t) {
je = h(je, e, "processexitstate", t), $e.emitChange()
}
function X(e, t) {
je = h(je, e.id, "title", t), $e.emitChange()
}
function $(e, t) {
je = t ? je.map(function(n) {
return n.id === e.id ? n.mergeIn(["extData"], {
urlForThumbnail: n.url,
thumbnail: t
}) : n
}) : je.map(function(t) {
return t.id === e.id ? t.deleteIn(["extData", "urlForThumbnail"]).deleteIn(["extData", "thumbnail"]) : t
}), $e.emitChange()
}
function ee(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
if (n && $e.isGroup(t.getIn(["extData", "group"]))) {
var i = $e.getGroup(t.getIn(["extData", "group"])).map(function(e) {
return e.id
});
return e.union(i)
}
return e.add(t.id)
}
function te(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
if (n && $e.isGroup(t.getIn(["extData", "group"]))) {
var i = $e.getGroup(t.getIn(["extData", "group"])).map(function(e) {
return e.id
});
return e.subtract(i)
}
return e.remove(t.id)
}
function ne(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
return e.contains(t.id) ? te(e, t, n) : ee(e, t, n)
}
function ie() {
Ye = !1, dt = ht = $e.getActivePage();
var e = Ee.default.getSync("TAB_SELECTION_INCLUDE_ACTIVE");
Je = e && dt ? ee((0, Be.Set)(), ht, !0) : (0, Be.Set)()
}
function ae() {
ie(), $e.emitChange()
}
function re(e) {
Ye || ie(), dt = ht = e;
var t = $e.isGroup(e.getIn(["extData", "group"]));
if (t) Je = ee(Je, e, !0);
else {
var n = $e.getTabs(),
i = (0, Ce.default)(e, n),
a = ce(i, 2),
r = a[1];
Je = r.reduce(function(e, t) {
return e.add(t.id)
}, Je), Ye = !0
}
$e.emitChange()
}
function se(e, t, n) {
Ye || ie(), t ? le(e, n) : oe(e, n)
}
function oe(e, t) {
dt = ht = e, Je = Ye === !1 && e.active ? ee(Je, e, t) : ne(Je, e, t), Ye = !0, $e.emitChange()
}
function le(e, t) {
var n = e;
dt && ht && ! function() {
var e = dt.index,
t = ht.index;
Je = Je.subtract(je.filter(function(n) {
return n.index >= Math.min(e, t) && n.index <= Math.max(e, t)
}).flatMap(function(e) {
var t = e.getIn(["extData", "group"]);
return $e.isGroup(t) ? $e.getGroup(t) : [e]
}).map(function(e) {
return e.id
})).union(je.filter(function(t) {
return t.index >= Math.min(e, n.index) && t.index <= Math.max(e, n.index)
}).flatMap(function(e) {
var t = e.getIn(["extData", "group"]);
return $e.isGroup(t) ? $e.getGroup(t) : [e]
}).map(function(e) {
return e.id
})), ht = n, Ye = !0, $e.emitChange()
}()
}
var ce = function() {
function e(e, t) {
var n = [],
i = !0,
a = !1,
r = void 0;
try {
for (var s, o = e[Symbol.iterator](); !(i = (s = o.next()).done) && (n.push(s.value), !t || n.length !== t); i = !0);
} catch (e) {
a = !0, r = e
} finally {
try {
!i && o.return && o.return()
} finally {
if (a) throw r
}
}
return n
}
return function(t, n) {
if (Array.isArray(t)) return t;
if (Symbol.iterator in Object(t)) return e(t, n);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
}
}(),
ue = n(776),
Ae = n(73),
de = i(Ae),
he = n(18),
me = i(he),
pe = n(114),
fe = i(pe),
ge = n(8),
_e = i(ge),
ve = n(6),
be = i(ve),
Ne = n(3),
Ee = i(Ne),
Se = n(399),
Te = i(Se),
ye = n(401),
Ce = i(ye),
Ie = n(4),
Oe = i(Ie),
we = n(89),
De = i(we),
ke = n(88),
Me = i(ke),
Le = n(212),
Pe = i(Le),
Re = n(402),
xe = i(Re),
Be = n(27),
Ue = n(7),
Fe = n(396),
He = n(789),
Ve = n(20),
We = "change",
Ge = Ve.urls.internals.startpage + "?section=Speed-dials&activeSpeedDialIndex=0",
Ke = window.vivaldiWindowId,
je = (0, Be.List)(),
ze = (0, Be.List)(),
Ye = !1,
Je = (0, Be.Set)(),
Qe = "",
Ze = (0, Be.Map)(),
qe = function(e) {
function t() {
return r(this, t), s(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments))
}
return o(t, e), t
}((0, Be.Record)({
type: "tab",
id: "",
page: new fe.default
})),
Xe = function(e) {
function t() {
return r(this, t), s(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments))
}
return o(t, e), t
}((0, Be.Record)({
type: "group",
id: "",
page: new fe.default,
pages: (0, Be.List)()
})),
$e = Object.assign({}, me.default.prototype, {
getPages: function() {
return je
},
getTabs: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : je;
return et(e, t)
},
getPageHistory: function() {
return ze
},
getActivePage: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : je;
return tt(e)
},
isIncognito: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : je;
return tt(e).incognito
},
isActivePage: function(e) {
return this.getActivePage().get("id") === e
},
getGroup: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : je;
return nt(t, e)
},
isGroup: function(e) {
return it(je, e)
},
getGroupHighlightId: function(e) {
return at(je, e)
},
getTiles: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : je;
return rt(t, e)
},
isSelecting: function() {
return Ye
},
getSelection: function() {
return Je
},
getTargetUrl: function() {
return Qe
},
getDiscardablePages: function() {
return st(je)
},
canClose: function() {
var e = Ee.default.getSync("TAB_NEVER_CLOSE_LAST");
return !(e && $e.isLastPage() && $e.getPages().first().url === $e.getDefaultStartpage())
},
isLastPage: function() {
return ot(je)
},
getDefaultStartpage: function() {
var e = Ee.default.getSync("DEFAULT_TAB_PAGE");
return e || Ge
},
emitChange: function() {
$e.delayedEmitChange()
},
delayedEmitChange: (0, Ue.debounce)(function() {
return $e.emit(We)
}, 50, {
leading: !0
}),
nextTickHandler: !1,
emitChangeInNextTick: function() {
$e.nextTickHandler === !1 && ($e.nextTickHandler === !0, t.nextTick(function() {
$e.nextTickHandler = !1, $e.emit(We)
}))
},
addChangeListener: function(e) {
this.on(We, e)
},
removeChangeListener: function(e) {
this.removeListener(We, e)
}
}),
et = (0, Pe.default)(1)(function(e, t) {
var n = t.filter(function(e) {
return !e.isRemoved
});
return e ? n.map(function(e) {
return new qe({
page: e,
id: e.id
})
}) : n.groupBy(function(e) {
return e.getIn(["extData", "group"]) || e.id
}).map(function(e, n, i) {
return e.count() >= 2 ? new Xe({
id: n,
pages: e,
page: t.find(function(e) {
return e.id === at(t, n)
})
}) : new qe({
page: e.first(),
id: e.first().id
})
}).toList()
}),
tt = (0, Pe.default)(1)(function(e) {
return e.find(function(e) {
return e.active
}) || new fe.default
}),
nt = (0, Pe.default)(10)(function(e, t) {
return t ? e.filter(function(e) {
return !e.isRemoved
}).filter(function(e) {
return e.getIn(["extData", "group"]) === t
}) : (0, Be.List)()
}),
it = (0, Pe.default)(10)(function(e, t) {
return !!t && e.filter(function(e) {
return !e.isRemoved
}).filter(function(e) {
return e.getIn(["extData", "group"]) === t
}).count() > 1
}),
at = (0, Pe.default)(10)(function(e, t) {
var n = nt(e, t).map(function(e) {
return e.id
}),
i = ze.reverse().find(function(e) {
return n.contains(e)
});
return i || n.first()
}),
rt = (0, Pe.default)(10)(function(e, t) {
return t ? e.filter(function(e) {
return !e.isRemoved
}).filter(function(e) {
return e.getIn(["extData", "tiling", "id"]) === t
}) : (0, Be.List)()
}),
st = (0, Pe.default)(1)(function(e) {
return e.filter(function(e) {
return !e.isRemoved
}).filter(function(e) {
return !e.discarded && !e.active && e.url !== $e.getDefaultStartpage()
})
}),
ot = (0, Pe.default)(1)(function(e) {
return e.filter(function(e) {
return !e.isRemoved
}).count() < 2
}),
lt = (0, Ue.debounce)(function() {
return Oe.default.tabs.query({
windowId: window.vivaldiWindowId
}, function(e) {
return e.forEach(function(e) {
var t = $e.getPages().find(function(t) {
return t.id === e.id
});
if (t) {
var n = void 0;
try {
n = JSON.parse(e.extData || "{}")
} catch (e) {
n = {}
}
var i = (0, Be.Map)(n);
(0, Be.is)(i, t.extData) || Oe.default.tabs.update(t.id, {
extData: JSON.stringify(t.extData.toJS())
})
}
})
})
}, 50),
ct = null,
ut = null,
At = !1,
dt = null,
ht = null,
mt = function() {
var e = void 0,
t = void 0;
return function(n) {
var i = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];
(0, Me.default)(n) ? (e ? e = (0, He.combineLists)(ze, e) : (e = ze, t = ze.last()), e = (0, He.rotateList)(e, i === !1), D(e.last()), (0, Fe.modifierUpListener)(n, function() {
var n = t,
i = e && e.last();
e && n && i && (ze = e.filter(function(e) {
return e !== n && e !== i
}).push(n), n !== i && (ze = ze.push(i))), f(ze), e = t = null
})) : (ze = (0, He.rotateList)(ze, i === !1), f(ze), D(ze.last()))
}
}(),
pt = function() {
var e = void 0,
t = void 0;
return function(n) {
var i = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],
a = $e.getPages(),
r = a.findIndex(function(e) {
return e.active
});
e ? e = (0, He.combineLists)(ze, e) : (e = ze, t = a.getIn([r, "id"]));
var s = ((r + (i ? 1 : -1)) % a.size + a.size) % a.size,
o = a.getIn([s, "id"]);
o && D(o), (0, Fe.modifierUpListener)(n, function() {
var n = t,
i = a.getIn([s, "id"]);
e && n && i && (ze = (0, He.combineLists)(ze, e.filter(function(e) {
return e !== n && e !== i
}).push(n).push(i))), f(ze), e = t = null
})
}
}();
_e.default.register(function(e) {
var t = e.action;
switch (t.actionType) {
case be.default.PAGE_CLEAR:
l();
break;
case be.default.CHROME_TABS_INIT:
_(t.tabs, t.historystack, t.expectingTabs);
break;
case be.default.CHROME_TABS_CREATED:
var n = ce(t.args, 1),
i = n[0];
b(i);
break;
case be.default.CHROME_TABS_REMOVED:
var a = ce(t.args, 1),
r = a[0];
S(r);
break;
case be.default.CHROME_TABS_UPDATED:
var s = ce(t.args, 3),
o = s[0],
c = s[1],
A = s[2];
T(o, c, A);
break;
case be.default.CHROME_TABS_MOVED:
var h = ce(t.args, 2),
m = h[0],
p = h[1];
y(m, p);
break;
case be.default.CHROME_TABS_ACTIVATED:
var f = ce(t.args, 1),
g = f[0];
C(g);
break;
case be.default.CHROME_TABS_DETACHED:
var v = ce(t.args, 1),
N = v[0];
I(N);
break;
case be.default.CHROME_TABS_ATTACHED:
var E = ce(t.args, 2),
L = E[0],
P = E[1];
O(L, P);
break;
case be.default.CHROME_TABS_REPLACED:
break;
case be.default.PAGE_BURY:
R(t.page);
break;
case be.default.PAGE_CLOSE:
x(t.pages);
break;
case be.default.PAGE_OPEN_URL:
U(t.page, t.url, t.isTyped);
break;
case be.default.PAGE_OPEN:
D(t.page.id);
break;
case be.default.PAGE_MINIMIZE:
k();
break;
case be.default.PAGE_CLONE:
M(t.pages);
break;
case be.default.PAGE_SET_IS_RESTORED:
u(t.page, t.restored);
break;
case be.default.PAGE_TABSTACK_CREATE:
F(t.pages, t.targetIndex, t.groupName);
break;
case be.default.PAGE_CLOSE_OTHER:
H(t.pages, t.includeGroup);
break;
case be.default.PAGE_TABSTACK_CLOSE:
V(t.page, t.closeAll);
break;
case be.default.PAGE_TABSTACK_REMOVE_FROM:
W(t.pages);
break;
case be.default.PAGE_TABSTACK_EXPAND:
G(t.groupName);
break;
case be.default.PAGE_TILE_PAGES:
K(t.pages, {
type: t.type,
id: t.id,
layout: t.layout
});
break;
case be.default.PAGE_TOGGLE_PINNED:
j(t.pages, t.forcePin, t.forceUnpin);
break;
case be.default.PAGE_SET_TARGET_URL:
z(t.targetUrl);
break;
case be.default.PAGE_OVERRIDE_PROPS:
Y(t.page, t.props);
break;
case be.default.PAGE_SET_MEDIASTATE:
J(t.pageId, t.mediastate);
break;
case be.default.PAGE_SET_PROCESSEXITSTATE:
q(t.pageId, t.processexitstate);
break;
case be.default.PAGE_SET_THUMBNAIL:
$(t.page, t.thumbnail);
break;
case be.default.PAGE_SET_TITLE:
X(t.page, t.title);
break;
case be.default.PAGE_SET_FAVICON:
Q(t.pageId, t.favIcon);
break;
case be.default.PAGE_SET_FULLSCREEN:
Z(t.page, t.fullscreen);
break;
case be.default.VIVALDI_TABS_UPDATED:
w(t.pageId, t.tabInfo);
break;
case be.default.PAGE_SELECTION_SET:
se(t.page, t.multiSelect, t.addGroup);
break;
case be.default.PAGE_SELECTION_TOGGLE_RELATED:
re(t.page);
break;
case be.default.PAGE_SELECTION_CLEAR:
ae();
break;
case be.default.PAGE_PREVENT_UNDELETE:
d(t.pageId, t.preventUndelete, t.historyCount);
break;
case be.default.PAGE_CYCLE_BY_HISTORY:
mt(t.maybeEvent, t.goBack);
break;
case be.default.PAGE_CYCLE_BY_ORDER:
pt(t.maybeEvent, t.goBack);
break;
default:
return !0
}
}), e.exports = window.PageStore = $e
}).call(t, n(16))
}, , , function(e, t, n) {
// =========================
// Function_20
// =========================
"use strict";
var i = n(3),
a = n(159),
r = n(2),
s = "chrome-extension://mpognobbkildjkofajifpdfhcoklimli",
o = ["vivaldi://accessibility", "vivaldi://appcache-internals", "vivaldi://apps", "vivaldi://blob-internals", "vivaldi://bookmarks", "vivaldi://cache", "vivaldi://chrome", "vivaldi://components", "vivaldi://copresence", "vivaldi://crashes", "vivaldi://credits", "vivaldi://device-log", "vivaldi://devices", "vivaldi://dns", "vivaldi://downloads", "vivaldi://extensions", "vivaldi://flags", "vivaldi://flash", "vivaldi://gcm-internals", "vivaldi://gpu", "vivaldi://help", "vivaldi://histograms", "vivaldi://history", "vivaldi://indexeddb-internals", "vivaldi://inspect", "vivaldi://invalidations", "vivaldi://linux-proxy-config", "vivaldi://local-state", "vivaldi://media-internals", "vivaldi://net-internals", "vivaldi://network-error", "vivaldi://network-errors", "vivaldi://newtab", "vivaldi://omnibox", "vivaldi://password-manager-internals", "vivaldi://plugins", "vivaldi://policy", "vivaldi://predictors", "vivaldi://print", "vivaldi://profiler", "vivaldi://quota-internals", "vivaldi://sandbox", "vivaldi://serviceworker-internals", "vivaldi://settings", "vivaldi://signin-internals", "vivaldi://suggestions", "vivaldi://supervised-user-internals", "vivaldi://sync-internals", "vivaldi://system", "vivaldi://terms", "vivaldi://thumbnails", "vivaldi://tracing", "vivaldi://translate-internals", "vivaldi://user-actions", "vivaldi://version", "vivaldi://view-http-cache", "vivaldi://vivaldi-urls", "vivaldi://webrtc-internals", "vivaldi://webrtc-logs", "vivaldi://startpage", "vivaldi://mail", "vivaldi://welcome", "vivaldi://experiments", "vivaldi://actionlog"],
l = function() {
var e = this;
this.internals = {
settings: s + "/components/settings/settings.html",
startpage: s + "/components/startpage/startpage.html",
mailpage: s + "/components/mail/mail.html",
welcome: s + "/components/welcome/welcome.html",
experiments: s + "/components/experiments/experiments.html",
actionlog: s + "/components/actionlog/actionlog.html",
aboutpage: "chrome://version",
vivaldiurls: "chrome://chrome-urls",
plugins: "chrome://plugins",
extensions: "chrome://chrome/extensions",
bookmarks: "chrome://bookmarks",
history: "chrome://history",
blankpage: "about:blank"
}, this._internal_values = Object.keys(this.internals).map(function(t) {
return e.internals[t]
}), this.mappings = [{
displayUrl: "vivaldi://settings",
url: this.internals.settings,
copyParams: !0
}, {
displayUrl: "vivaldi:settings",
url: this.internals.settings,
copyParams: !0
}, {
displayUrl: "",
url: this.internals.startpage,
copyParams: !1
}, {
displayUrl: "vivaldi://startpage",
url: this.internals.startpage,
copyParams: !1
}, {
displayUrl: "vivaldi:startpage",
url: this.internals.startpage,
copyParams: !1
}, {
displayUrl: "",
url: this.internals.blankpage,
copyParams: !1
}, {
displayUrl: "vivaldi://mail",
url: this.internals.mailpage,
copyParams: !0
}, {
displayUrl: "vivaldi://about",
url: this.internals.aboutpage,
copyParams: !0
}, {
displayUrl: "vivaldi://help",
url: this.internals.aboutpage,
copyParams: !0
}, {
displayUrl: "vivaldi://vivaldi-urls",
url: this.internals.vivaldiurls,
copyParams: !0
}, {
displayUrl: "vivaldi://history",
url: this.internals.history,
copyParams: !0
}, {
displayUrl: "vivaldi://extensions",
url: this.internals.extensions,
copyParams: !0
}, {
displayUrl: "vivaldi://bookmarks",
url: this.internals.bookmarks,
copyParams: !0
}, {
displayUrl: "vivaldi://welcome",
url: this.internals.welcome,
copyParams: !0
}, {
displayUrl: "vivaldi://experiments",
url: this.internals.experiments,
copyParams: !0
}, {
displayUrl: "vivaldi://actionlog",
url: this.internals.actionlog,
copyParams: !0
}, {
displayUrl: "vivaldi:about",
url: this.internals.aboutpage,
copyParams: !1
}, {
displayUrl: "about:about",
url: this.internals.aboutpage,
copyParams: !1
}, {
displayUrl: "vivaldi://",
url: "chrome://",
copyParams: !0,
mapDisplayUrlToUrl: function(t, n) {
return "vivaldi://" === t ? e.internals.aboutpage : e._copyAllMapDisplayUrlToUrl(t, n)
},
mapUrlToDisplayUrl: function(t, n) {
return e._copyAllMapUrlToDisplayUrl(t, n)
}
}], this.categoryTitleMap = {
"": r("Startup"),
startup: r("Startup"),
appearance: r("Appearance"),
themes: r("Themes"),
"start-page": r("title", "Start Page"),
tabs: r("Tabs"),
panel: r("Panel"),
addressbar: r("Address Bar"),
qc: r("Quick Commands"),
keyboard: r("Keyboard"),
mouse: r("Mouse"),
search: r("noun", "Search"),
privacy: r("Privacy"),
sync: r("Sync"),
webpages: r("Webpages"),
network: r("Network"),
downloads: r("Downloads"),
history: r("History"),
mail: r("Mail"),
calendar: r("Calendar"),
contacts: r("Contacts"),
bookmarks: r("Bookmarks"),
all: r("Display All")
}, this.setInternalUrl = function(e, t) {
var n = this;
this.internals[e] = t, this._internal_values = Object.keys(this.internals).map(function(e) {
return n.internals[e]
})
}, this.setMapping = function(e, t, n) {
this.mappings.push({
displayUrl: e,
url: t,
copyParams: !!n
})
}, this.getDisplayUrl = function(e) {
if (!e) return "";
for (var t = e.split("?"), n = 0; n < this.mappings.length; n++) {
var i = this.mappings[n];
if (i.url && this.matchUrl(i.url, t[0])) {
e = i.mapUrlToDisplayUrl ? i.mapUrlToDisplayUrl(e, i) : this._defaultMapUrlToDisplayUrl(e, i);
break
}
}
return e
}, this.getDisplayTitle = function(e) {
if (!e || !e.get) return "";
var t = e.get("title"),
n = e.get("url");
return n && (n.startsWith("chrome://bookmarks/") ? t = r("Bookmarks") : this.isStartPage(n) ? t = r("title", "Start Page") : n === this.internals.experiments ? t = r("Experimental Features") : n === this.internals.actionlog ? t = r("Action Log") : n === this.internals.welcome ? t = r("Welcome") : n === this.internals.blankpage ? t = r("Blank Page") : n.startsWith(this.internals.settings) && (t = r("$1 Settings", [this.categoryTitleMap[this.getUrlParams(n).path || ""]])), t === n && (t = this.removeTrailingSlashWhenNoPath(this.getDisplayUrl(n)))), t
}, this.removeTrailingSlashWhenNoPath = function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
return e = e.replace(/\s/g, ""), "" === e ? e : i.getSync("ADDRESS_BAR_SHOW_FULL_URL") ? e : e.replace(/^([a-z]+?:\/?\/?[^\/]*)\/*?(\/[\?#].*)?$/, "$1$2")
}, this.getUrl = function(e) {
e = e ? e.trim() : e;
var t = e;
e = e ? e.toLowerCase() : e;
for (var n = 0; n < this.mappings.length; n++) {
var i = this.mappings[n];
if (i.displayUrl.length > 0 && this.matchUrl(i.displayUrl, e)) {
t = i.mapDisplayUrlToUrl ? i.mapDisplayUrlToUrl(e, i) : this._defaultMapDisplayUrlToUrl(e, i);
break
}
}
return t
}, this.isMailPage = function(e) {
return "string" == typeof e && 0 === e.indexOf(this.internals.mailpage)
}, this.isStartPage = function(e) {
return "string" == typeof e && 0 === e.indexOf(this.internals.startpage)
}, this.isInternalUrl = function(e) {
for (var t = 0; t < this._internal_values.length; t++)
if (e && 0 === e.indexOf(this._internal_values[t])) return !0;
return !1
}, this.isInExtension = function(e) {
return e.substring(0, s.length) === s
}, this.isInternalPage = function(e) {
return e && this.isInternalUrl(e.get("url"))
}, this.isNavigatablePage = function(e) {
return !this.isInternalPage(e) || this.matchUrl(this.internals.settings, e.get("url"))
}, this.isNavigatableUrl = function(e) {
return !this.isInternalUrl(e) || this.matchUrl(this.internals.settings, e)
}, this.isBookmarkablePage = function(e) {
return !this.isInternalPage(e)
}, this.matchInternal = function(e, t) {
return this.matchUrl(this.internals[e], t)
}, this.matchUrl = function(e, t) {
return t && 0 === t.indexOf(e)
}, this.equalUrl = function(e, t, n) {
return n ? e && t && this._stripParams(e) === this._stripParams(t) : e && t && this._trimSlash(e) === this._trimSlash(t)
}, this.getUrlParams = function(e) {
var t = e ? e.split("?") : [];
return t.length > 1 ? a.parse(t[1]) : {}
}, this.internalUrl = function(e, t, n, i) {
return this.internals[e] + "?path=" + this._trimSlash(t) + (n ? "&title=" + n : "") + (i ? "&query=" + i : "")
}, this.internalKeyFromUrl = function(e) {
for (var t in this.internals)
if (this.matchInternal(t, e)) return t;
return null
}, this._stripParams = function(e) {
return this._trimSlash(e).split("?")[0].split("#")[0]
}, this._parseUrlPath = function(e) {
return this._trimSlash(e).split("/").slice(2)
}, this._trimSlash = function(e) {
return e.replace(/^\/+|\/+$/gm, "")
}, this._defaultMapUrlToDisplayUrl = function(e, t, n) {
var i = e.split("?"),
r = e;
if (t.displayUrl) {
var s = i.length > 1 ? a.parse(i[1]) : {};
r = t.displayUrl + (t.copyParams && s.path ? "/" + s.path + "/" : "/")
} else r = "";
return r
}, this._defaultMapDisplayUrlToUrl = function(e, t, n) {
var i = t.copyParams && e.length > t.displayUrl.length ? "path=" + this._trimSlash(e.slice(t.displayUrl.length)) : "";
return t.url + (i || n ? "?" : "") + i + (i ? "&" : "") + (n ? n : "")
}, this._copyAllMapUrlToDisplayUrl = function(e, t, n) {
var i = t.copyParams && e.length > t.url.length ? this._trimSlash(e.slice(t.url.length)) : "";
return t.displayUrl + i
}, this._copyAllMapDisplayUrlToUrl = function(e, t, n) {
var i = t.copyParams && e.length > t.displayUrl.length ? this._trimSlash(e.slice(t.displayUrl.length)) : "";
return t.url + i
}
};
e.exports = {
urls: new l,
vivaldiUrls: o
}
}, , , , , function(e, t, n) {
// =========================
// Function_25
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
r = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/InsertVivaldiSettings.jsx",
s = n(1),
o = n(9),
l = n(3),
c = function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [],
n = (arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [], arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "vivaldiSettings");
return s.createClass({
mixins: [o],
displayName: "VivaldiSettingsWrapper",
getInitialState: function() {
return {
settings: {}
}
},
componentWillMount: function() {
t.length && this.setState({
settings: l.getKeysSync(t)
})
},
componentDidMount: function() {
var e = this;
t.forEach(function(t) {
return l.addListener(t, e.settingsChangeHandler)
})
},
componentWillUnmount: function() {
var e = this;
t.forEach(function(t) {
return l.removeListener(t, e.settingsChangeHandler)
})
},
settingsChangeHandler: function(e, t, n) {
this.state.settings[n] !== t && this.setState({
settings: Object.assign({}, this.state.settings, i({}, n, t))
})
},
render: function() {
var t = i({}, n, this.state.settings);
return s.createElement(e, a({
ref: "component",
key: "vs",
vivaldiSettings: this.state.settings
}, t, this.props, {
__source: {
fileName: r,
lineNumber: 49
}
}))
}
})
};
e.exports = c
}, function(e, t, n) {
// =========================
// Function_26
// =========================
"use strict";
var i, a, r, s, o, l = n(52),
c = n(175),
u = n(47),
A = n(3),
d = n(137),
h = n(59),
m = n(10),
p = 10,
f = "",
g = "",
_ = function(e, t) {
var _ = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "pointer",
v = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null,
b = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : null,
N = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : null,
E = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : null,
S = 0,
T = {},
y = function(e, t) {
if (u.setStatus(""), m.showMenu.onOpen.removeListener(C), m.showMenu.onUrlHighlighted.removeListener(I), "function" == typeof T[t.id]) {
var n = {};
t.left ? n.button = 0 : t.right ? n.button = 2 : t.center && (n.button = 1), t.ctrl && (n.ctrlKey = !0), t.alt && (n.altKey = !0), t.shift && (n.shiftKey = !0), t.command && (n.metaKey = !0), T[t.id].call(this, e, n)
}
"function" == typeof b && b.call(this, e)
},
C = function() {
"function" == typeof t && t.call(this, event)
},
I = function(e) {
u.setStatus(e)
},
O = function e(t) {
if (!t) return null;
0 === f.length && (f = btoa(n(406))), 0 === g.length && (g = btoa(n(405)));
var i;
t.items && t.bookmarkFolder === !0 ? i = f : t.url ? i = g : t.iconName && (i = l.getIconByName(t.iconName));
var a = t.visible !== !1;
"function" == typeof t.testVisibility && (a = t.testVisibility());
var r = t.nameWithMnemonic ? t.nameWithMnemonic : t.name,
s = S++;
return (r || t.url) && (T[s] = t.handler), {
id: s,
name: r ? r : "",
selected: !(!N || N !== t),
visible: a,
items: t.items ? t.items.map(e) : null,
type: t.type ? t.type : "normal",
checked: !!t.checked && t.checked,
shortcut: d(t.shortcut),
url: t.url,
icon: i
}
},
w = function(e) {
e && i !== !0 ? (document.addEventListener("mouseup", M), document.addEventListener("mousemove", k), document.addEventListener("wheel", D, !0), i = !0) : e || i !== !0 || (document.removeEventListener("mouseup", M), document.removeEventListener("mousemove", k), document.removeEventListener("wheel", D, !0), i = !1)
},
D = function(e) {
w(!1)
},
k = function(e) {
var t = Math.abs(s - e.screenX),
n = Math.abs(o - e.screenY);
(t > p || n > p) && w(!1)
},
M = function(t) {
var n = this;
w(!1);
var i = "function" == typeof e ? e() : e;
i.hasMnemonics !== !0 && (c.installMnemonics(i, E), i.hasMnemonics = !0), m.zoom.getVivaldiUIZoom(function(e) {
m.showMenu.onOpen.addListener(C), m.showMenu.onUrlHighlighted.addListener(I), m.showMenu.create({
mode: "context",
left: parseInt(a * e),
top: parseInt(r * e),
items: i.map(O)
}, y.bind(n, t))
})
};
return function(e, t) {
e.preventDefault(), e.stopPropagation(), "function" == typeof e.persist && e.persist();
var n = 0,
i = 0,
l = "MacIntel" === navigator.platform ? 4 : 0,
c = "win" === h() ? 1 : 0;
if ("pointer" === _) n = e.clientX, i = e.clientY;
else {
var u = v ? v.getBoundingClientRect() : e.target.getBoundingClientRect();
"bottom" === _ ? (n = parseInt(u.left) + c, i = parseInt(u.bottom) + l) : "right" === _ && (n = parseInt(u.right), i = parseInt(u.top))
}
a = n, r = i, s = e.screenX, o = e.screenY, "win" !== h() && "contextmenu" === e.type && A.getSync("MOUSE_GESTURES_ENABLED") ? w(!0) : M(e)
}
};
e.exports = _
}, , , , function(e, t, n) {
// =========================
// Function_30
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e) {
if (Array.isArray(e)) {
for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t];
return n
}
return Array.from(e)
}
var r = n(2),
s = i(r),
o = "Ð",
l = function() {
var e = Array.from(arguments);
e[0] = o + e[0];
var t = s.default.apply(void 0, a(e));
return t.startsWith(o) && (t = t.substr(1)), {
label: s.default.apply(void 0, arguments),
labelEnglish: t
}
};
e.exports = l
}, , , , function(e, t, n) {
// =========================
// Function_34
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/dialogs/Modal.jsx",
a = n(1),
r = n(37),
s = n(133),
o = a.createClass({
displayName: "Modal",
propTypes: {
dialogWidth: a.PropTypes.number,
viewMode: a.PropTypes.string,
onRequestClose: a.PropTypes.func,
ignoreEscape: a.PropTypes.bool
},
componentDidMount: function() {
r.bind("esc", this.closeModalHandler)
},
componentWillUnmount: function() {
r.unbind("esc", this.closeModalHandler)
},
closeModalHandler: function() {
this.props.onRequestClose && !this.props.ignoreEscape && this.props.onRequestClose()
},
killClick: function(e) {
e.stopPropagation()
},
handleBackdropClick: function() {
this.props.onRequestClose && this.props.onRequestClose()
},
render: function() {
return a.createElement(s, {
focusName: "focus_modal",
id: "modal-bg",
className: this.props.viewMode ? this.props.viewMode : "slide",
onClick: this.handleBackdropClick,
__source: {
fileName: i,
lineNumber: 47
}
}, a.createElement("div", {
onClick: this.killClick,
style: {
width: this.props.dialogWidth
},
__source: {
fileName: i,
lineNumber: 52
}
}, this.props.children))
}
});
e.exports = o
}, , , function(e, t, n) {
// =========================
// Function_37
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e) {
function t(e) {
n.indexOf(e) > -1 && (i += e + "+", n.splice(n.indexOf(e), 1))
}
var n = e.split("+");
n = n.map(function(e) {
return S[e] || e
});
var i = "";
return t("ctrl"), t("alt"), t("shift"), t("meta"), n.sort(), n.forEach(function(e, t) {
i += e, t + 1 < n.length && (i += "+")
}), i.toLowerCase()
}
function r(e, t) {
if (t && e) {
var n = a(e),
i = y[n] || [];
i.push(t), y[n] = i
}
}
function s(e, t) {
if (e) {
var n = a(e);
y[n] && (t ? y[n] = y[n].filter(function(e) {
return e !== t
}) : y[n] = void 0)
}
}
function o(e) {
var t = "";
return e.metaKey && (t += "meta+"), e.altKey && (t += "alt+"), e.ctrlKey && (t += "ctrl+"), e.shiftKey && (t += "shift+"), t
}
function l(e) {
function t() {
return ["Alt", "Shift", "Control", "Meta", "CapsLock", "NumLock", "AltGraph"].indexOf(e.key) > -1
}
function n(e) {
if (e.code.startsWith("Numpad")) {
var t = b.default[e.keyCode].substr(6);
if (t >= "0" && t <= "9") return e.code
}
return b.default[e.keyCode]
}
function i() {
var t = n(e);
return "None" === t ? void(r = "") : (r += t, a(r.toLowerCase()))
}
var r = o(e);
if (!t() && "keydown" === e.type) return i()
}
function c(e, t) {
t(e), e.preventDefault(), e.stopPropagation()
}
function u(e) {
return 1 === e.length || e.startsWith("numpad")
}
function A(e, t) {
if (0 !== e.charCode) return !1;
if (T.indexOf(t) !== -1) return !1;
if ("Escape" === e.key || "ArrowDown" === e.key || "ArrowUp" === e.key || "Home" === e.key || "End" === e.key || "PageDown" === e.key || "PageUp" === e.key) return !0;
if (N.indexOf(e.key) > -1) return !0;
if ((0, _.default)(e)) {
if ("Backspace" === e.key || "Delete" === e.key) return !0;
if (e.ctrlKey || e.metaKey || e.altKey) return !0
}
return !1
}
function d(e, t, i) {
if ((!e.defaultPrevented || e.scrollPrevented) && !(e.target.classList.contains("keyShortcutStop") || u(i) && f.default.getSync("DISABLE_SINGLE_KEY_SHORTCUTS"))) {
if (f.default.getSync("DISABLE_KEYBOARD_SHORTCUTS")) {
var a = n(52).getAllCommands(),
r = a.find(function(e) {
return "COMMAND_PAGE_DISABLE_KEYBOARD_SHORTCUTS" === e.name
});
if (!(r.shortcut || []).some(function(t) {
return t === l(e)
})) return
}
C.indexOf(e.target.tagName) > -1 || e.target.isContentEditable ? A(e, i) && c(e, t) : "WEBVIEW" === e.target.tagName ? e.target.getFocusedElementInfo(function(n, a, r, s) {
if (!r || A(e, i)) {
var o = "EMBED" === n,
l = "OBJECT" === n,
u = "SELECT" === n,
d = "SPAN" === n && "spinbutton" === s,
h = (o || l) && "application/x-shockwave-flash" === a,
m = o && "application/pdf" === a;
(!h && !m && !u && !d || h && E.indexOf(i) > -1 || m && A(e, i)) && c(e, t)
}
}) : c(e, t)
}
}
function h(e) {
var t = y[e];
return t && t.length ? t[t.length - 1] : void 0;
}
function m(e) {
"PageUp" !== e.code && "PageDown" !== e.code || e.ctrlKey !== !0 || (e.preventDefault(), e.scrollPrevented = !0);
var t = l(e);
if (t) {
var n = h(t);
n && d(e, n, t)
}
}
var p = n(3),
f = i(p),
g = n(88),
_ = i(g),
v = n(397),
b = i(v),
N = ["F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "F13", "F14", "F15", "F16", "F17", "F18", "F19"],
E = navigator.platform.indexOf("Mac") > -1 ? ["meta+t", "meta+n", "meta+w"] : ["ctrl+t", "ctrl+n", "ctrl+w"],
S = {
option: "alt",
command: "meta",
return: "enter",
escape: "esc",
del: /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? "backspace" : "del",
mod: /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? "meta" : "ctrl"
},
T = ["left", "right", "shift+left", "shift+right", "shift+up", "shift+down", "enter", "shift+enter"];
T = navigator.platform.indexOf("Mac") > -1 ? T.concat(["alt+left", "alt+right", "alt+backspace", "meta+a", "meta+z", "meta+left", "meta+right", "shift+meta+left", "shift+meta+right", "ctrl+a", "ctrl+b", "ctrl+e", "ctrl+f", "ctrl+n", "ctrl+p", "ctrl+d", "ctrl+h", "ctrl+k", "ctrl+o", "ctrl+t", "ctrl+v", "ctrl+y", "alt+shift+left", "alt+shift+right", "ctrl+shift+a", "ctrl+shift+b", "ctrl+shift+e", "ctrl+shift+f", "ctrl+shift+n", "ctrl+shift+p"]) : T.concat(["home", "end", "ctrl+a", "ctrl+z", "ctrl+y", "ctrl+u", "ctrl+left", "ctrl+right", "ctrl+backspace", "ctrl+delete", "ctrl+home", "ctrl+end", "ctrl+shift+left", "ctrl+shift+right", "shift+home", "shift+end"]);
var y = {},
C = ["INPUT", "FRAME", "IFRAME", "SELECT", "TEXTAREA"],
I = {
bind: function(e, t) {
return [].concat(e).filter(Boolean).map(function(e) {
return e.trim()
}).forEach(function(e) {
return r(e, t)
}), this
},
unbind: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : void 0;
return [].concat(e).forEach(function(e) {
return s(e, t)
}), this
},
attachEvents: function() {
document.addEventListener("keydown", m), document.addEventListener("keypress", m)
},
detachEvents: function() {
document.removeEventListener("keydown", m), document.removeEventListener("keypress", m)
},
keyComboFromEvent: l,
shortcutAllowedInText: A,
isSingleKeyShortcut: u
};
e.exports = I
}, , , function(e, t, n) {
// =========================
// Function_40
// =========================
"use strict";
var i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
a = n(4),
r = n(179),
s = n(50),
o = n(15),
l = n(3),
c = n(46),
u = c.isValidURL,
A = n(20),
d = A.urls,
h = "vivaldi/x-bookmarks",
m = {
open: function(e, t) {
var n = this;
t && l.getSync("BOOKMARKS_CONFIRM_BEFORE_OPEN") && e.bookmarks.length >= l.getSync("BOOKMARKS_CONFIRM_THRESHOLD") ? s.showConfirmOpenBookmarkDialog(e) : ! function() {
var t = e.inCurrent === !1,
i = e.inNewWindow === !0,
a = e.inBackground === !0,
r = e.incognito === !0;
t === !1 && i === !1 && a === !1 && e.allowOverride === !0 && (l.getSync("BOOKMARKS_OPEN_IN_NEW_TAB") === !0 && (t = !0), 1 === e.bookmarks.length && e.bookmarks[0].url.startsWith("javascript:") && (t = !1)), i === !0 ? o.openWindow(e.bookmarks.map(function(e) {
return e.url
}), {
incognito: r,
focused: !a
}) : ! function() {
var i = e.bookmarks.length > 0 ? e.bookmarks[e.bookmarks.length - 1] : void 0;
e.bookmarks.forEach(function(e) {
t === !0 ? a === !0 ? n.openInNewTab(e, !0) : n.openInNewTab(e, e !== i) : (n.openInCurrentTab(e), t = !0)
})
}()
}()
},
openInNewTab: function(e, t) {
o.openURL(e.url, {
bookmarkId: e.id,
inCurrent: !1,
inBackground: t
})
},
openInCurrentTab: function(e) {
o.openURL(e.url, {
bookmarkId: e.id,
inCurrent: !0
})
},
openInNewWindow: function(e, t, n) {
o.openURL(e.url, {
bookmarkId: e.id,
inNewWindow: !0,
inBackground: t,
incognito: n
})
},
getBookmarksByNode: function(e) {
var t = [];
return e.children ? t = t.concat(e.children.filter(function(e) {
return e.url
})) : e.url && t.push(e), t
},
getBookmark: function(e, t) {
"function" == typeof t && a.bookmarks.get(e, function(e) {
t(e[0])
})
},
getOpenOptionsFromEvent: function(e) {
var t = {
ctrl: !!e.ctrlKey,
alt: !!e.altKey,
shift: !!e.shiftKey,
command: !("MacIntel" !== navigator.platform || !e.metaKey)
},
n = "MacIntel" === navigator.platform ? t.command : t.ctrl,
i = !t.shift && !n && !t.alt,
a = {
inCurrent: !0,
inBackground: !1,
inNewWindow: !1
};
return t.shift && n && t.alt ? (a.inNewWindow = !0, a.incognito = !0) : t.shift && n && !t.alt ? a.inNewWindow = !0 : !t.shift || n || t.alt ? t.shift || !n || t.alt ? i && 1 === e.button ? (a.inCurrent = !1, a.inBackground = !0) : i && 2 === e.button ? a.inCurrent = !1 : i && (a.allowOverride = !0) : (a.inCurrent = !1, a.inBackground = !0) : a.inCurrent = !1, a
},
isCopyModifierPressed: function(e) {
return "MacIntel" === navigator.platform ? e.metaKey : e.ctrlKey
},
extractTitleFromEvent: function(e) {
var t = e.nativeEvent.dataTransfer.getData("vivaldi/x-title");
if ("" === t) {
var n = e.nativeEvent.dataTransfer.getData("text/html");
if ("" !== n) {
var i = document.createElement("div");
i.innerHTML = n;
var a = i.getElementsByTagName("a");
if (a && a[0]) {
var r = a[0].textContent;
"" !== r && (t = r)
}
}
}
return t
},
getUrlsFromEventPromise: function(e, t) {
return new Promise(function(n, s) {
var o = e.dataTransfer.getData("vivaldi/x-tab-entries"),
l = e.dataTransfer.getData("text/uri-list");
if (o) ! function() {
var e = JSON.parse(o),
t = e.ids.map(function(e) {
return parseInt(e)
}).sort(function(e, t) {
return e - t
});
a.tabs.query({}, function(e) {
return n(e.filter(function(e) {
return t.some(function(t) {
return e.id === t
})
}).filter(function(e) {
var t = e.url;
return !d.isInternalUrl(t)
}).map(function(e, t) {
var n = e.title,
i = e.url;
return {
title: n || r(i),
url: i
}
}))
})
}();
else if (l.length > 0) {
var c = function() {
var t = m.extractTitleFromEvent(e);
return {
v: n(l.split("\n").map(function(e, n) {
return {
url: e,
title: 0 === n && "" !== t ? t : r(e)
}
}))
}
}();
if ("object" === ("undefined" == typeof c ? "undefined" : i(c))) return c.v
} else if (t === !0) {
var A = e.dataTransfer.getData("text/plain");
if (A.length > 0 && u(A)) return n([{
url: A,
title: r(A)
}])
} else s()
})
},
getMimeType: function() {
return h
}
};
e.exports = m
}, function(e, t, n) {
// =========================
// Function_41
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/RadioGroup.jsx",
r = n(1),
s = n(11),
o = r.createClass({
displayName: "RadioGroup",
propTypes: {
name: r.PropTypes.string.isRequired,
onChange: r.PropTypes.func.isRequired,
value: r.PropTypes.oneOfType([r.PropTypes.string, r.PropTypes.number, r.PropTypes.bool]),
defaultValue: r.PropTypes.oneOfType([r.PropTypes.string, r.PropTypes.number, r.PropTypes.bool]),
children: r.PropTypes.array.isRequired
},
getInitialState: function() {
return {
defaultValue: this.props.defaultValue
}
},
componentDidMount: function() {
this.setRadioNames(), this.setCheckedRadio()
},
componentDidUpdate: function() {
this.setRadioNames(), this.setCheckedRadio()
},
setRadioNames: function() {
for (var e = this.getRadios(), t = 0, n = e.length; t < n; t++) e[t].setAttribute("name", this.props.name)
},
getRadios: function() {
return s.findDOMNode(this).querySelectorAll('input[type="radio"]')
},
setCheckedRadio: function() {
for (var e = this.getRadios(), t = null !== this.props.value ? this.props.value : this.state.defaultValue, n = 0, i = e.length; n < i; n++) {
var a = e[n];
a.value !== t && a.value !== t.toString() || (a.checked = !0)
}
},
getCheckedValue: function() {
for (var e = this.getRadios(), t = 0, n = e.length; t < n; t++)
if (e[t].checked) return e[t].value;
return null
},
render: function() {
return r.createElement("div", i({}, this.props, {
onChange: this.props.onChange,
__source: {
fileName: a,
lineNumber: 84
}
}), this.props.children)
}
});
e.exports = o
}, function(e, t, n) {
// =========================
// Function_42
// =========================
"use strict";
var i = n(2);
e.exports = {
ALL_MESSAGES_ACCOUNT_ID: "All Messages",
MAILING_LISTS_ACCOUNT_ID: "Mailing Lists",
MAIL_FILTERS_ACCOUNT_ID: "Filters",
DRAFTS_FOLDER_PATH: "Drafts",
OUTBOX_FOLDER_PATH: "Outbox",
UNREAD_FOLDER_PATH: "Unread",
RECEIVED_FOLDER_PATH: "Received",
MAILING_LISTS_OTHER_FOLDER: i("Other Mailing Lists"),
TRASH_FOLDER_PATH: "Trash",
TRASH_FOLDER_TYPE: "Trash",
SENT_FOLDER_PATH: "Sent",
SENT_FOLDER_TYPE: "Sent",
INBOX_FOLDER_TYPE: "Inbox",
ALL_MESSAGES_ID: "ALL_MESSAGES",
MAILING_LISTS_ID: "MAILING_LISTS",
MAIL_FOLDERS_ID: "MAIL_FOLDER",
MAIL_FILTERS_ID: "MAIL_FILTERS",
MAIL_STATUS_TIMEOUT: 5e3,
FLUSH_FLAG_OPERATIONS_TIMEOUT: 500,
BUFFER_OPERATION_MARKUNREAD: "MarkUnRead",
BUFFER_OPERATION_MARKFLAGGED: "MarkFlagged",
BUFFER_OPERATION_MARKFORWARDED: "MarkForwarded",
BUFFER_OPERATION_MARKREPLIED: "MarkReplied",
BUFFER_OPERATION_MOVE: "Move",
BUFFER_OPERATION_DELETE: "Delete",
THREAD_KEY_LENGTH: 13,
INDICATOR_TYPE_BUSY: "INDICATOR_TYPE_BUSY",
INDICATOR_TYPE_THREADING: "INDICATOR_TYPE_THREADING",
INDICATOR_TYPE_FLUSHING: "INDICATOR_TYPE_FLUSHING",
INDICATOR_TYPE_CONNECTING: "INDICATOR_TYPE_CONNECTING",
INDICATOR_TYPE_FETCHING: "INDICATOR_TYPE_FETCHING",
MAIL_DEFAULT_SIGNATURE: i("Sent with the new, awesome Vivaldi mail client / browser. Download it at vivaldi.com.")
}
}, , , function(e, t) {
// =========================
// Function_45
// =========================
"use strict";
var n = {
KEY_CANCEL: 3,
KEY_HELP: 6,
KEY_BACK_SPACE: 8,
KEY_TAB: 9,
KEY_CLEAR: 12,
KEY_RETURN: 13,
KEY_ENTER: 14,
KEY_SHIFT: 16,
KEY_CONTROL: 17,
KEY_ALT: 18,
KEY_PAUSE: 19,
KEY_CAPS_LOCK: 20,
KEY_ESCAPE: 27,
KEY_SPACE: 32,
KEY_PAGE_UP: 33,
KEY_PAGE_DOWN: 34,
KEY_END: 35,
KEY_HOME: 36,
KEY_LEFT: 37,
KEY_UP: 38,
KEY_RIGHT: 39,
KEY_DOWN: 40,
KEY_PRINTSCREEN: 44,
KEY_INSERT: 45,
KEY_DELETE: 46,
KEY_0: 48,
KEY_1: 49,
KEY_2: 50,
KEY_3: 51,
KEY_4: 52,
KEY_5: 53,
KEY_6: 54,
KEY_7: 55,
KEY_8: 56,
KEY_9: 57,
KEY_SEMICOLON: 59,
KEY_EQUALS: 61,
KEY_A: 65,
KEY_B: 66,
KEY_C: 67,
KEY_D: 68,
KEY_E: 69,
KEY_F: 70,
KEY_G: 71,
KEY_H: 72,
KEY_I: 73,
KEY_J: 74,
KEY_K: 75,
KEY_L: 76,
KEY_M: 77,
KEY_N: 78,
KEY_O: 79,
KEY_P: 80,
KEY_Q: 81,
KEY_R: 82,
KEY_S: 83,
KEY_T: 84,
KEY_U: 85,
KEY_V: 86,
KEY_W: 87,
KEY_X: 88,
KEY_Y: 89,
KEY_Z: 90,
KEY_CONTEXT_MENU: 93,
KEY_NUMPAD0: 96,
KEY_NUMPAD1: 97,
KEY_NUMPAD2: 98,
KEY_NUMPAD3: 99,
KEY_NUMPAD4: 100,
KEY_NUMPAD5: 101,
KEY_NUMPAD6: 102,
KEY_NUMPAD7: 103,
KEY_NUMPAD8: 104,
KEY_NUMPAD9: 105,
KEY_MULTIPLY: 106,
KEY_ADD: 107,
KEY_SEPARATOR: 108,
KEY_SUBTRACT: 109,
KEY_DECIMAL: 110,
KEY_DIVIDE: 111,
KEY_F1: 112,
KEY_F2: 113,
KEY_F3: 114,
KEY_F4: 115,
KEY_F5: 116,
KEY_F6: 117,
KEY_F7: 118,
KEY_F8: 119,
KEY_F9: 120,
KEY_F10: 121,
KEY_F11: 122,
KEY_F12: 123,
KEY_F13: 124,
KEY_F14: 125,
KEY_F15: 126,
KEY_F16: 127,
KEY_F17: 128,
KEY_F18: 129,
KEY_F19: 130,
KEY_F20: 131,
KEY_F21: 132,
KEY_F22: 133,
KEY_F23: 134,
KEY_F24: 135,
KEY_NUM_LOCK: 144,
KEY_SCROLL_LOCK: 145,
KEY_COMMA: 188,
KEY_PERIOD: 190,
KEY_SLASH: 191,
KEY_BACK_QUOTE: 192,
KEY_OPEN_BRACKET: 219,
KEY_BACK_SLASH: 220,
KEY_CLOSE_BRACKET: 221,
KEY_QUOTE: 222,
KEY_META: 224
};
e.exports = n
}, function(e, t, n) {
// =========================
// Function_46
// =========================
"use strict";
function i(e) {
return e.replace(/.*?:\/\//g, "")
}
var a = n(36),
r = ["vivaldi:", "chrome:", "chrome-extension:"],
s = function(e) {
var t = a.parse(e);
return null !== t.protocol && null !== t.slashes || (t = a.parse("http://" + e)), t.format(t)
},
o = function(e) {
var t = a.parse(e);
return !!(t.protocol && t.host && t.slashes)
},
l = function(e) {
return "string" != typeof e || (e = e.toLowerCase(), !(0 === e.indexOf("http://") || 0 === e.indexOf("https://") || 0 === e.indexOf("chrome://") || 0 === e.indexOf("vivaldi:") || 0 === e.indexOf("javascript:") || 0 === e.indexOf("data:") || 0 === e.indexOf("chrome-extension://") || 0 === e.indexOf("about:") || 0 === e.indexOf("file://") || 0 === e.indexOf("ftp://") || 0 === e.indexOf("view-source:")))
},
c = function(e) {
var t = a.parse(e);
return r.some(function(e) {
return e.indexOf(t.protocol) !== -1
})
},
u = function(e) {
if (e.indexOf("https://chrome.google.com/webstore") !== -1 || e.indexOf("https://vivaldi.net/?welcome=1") !== -1) return !0
},
A = function(e) {
var t = "chrome-extension://mpognobbkildjkofajifpdfhcoklimli/";
return e.substr(0, t.length) === t ? e = "http://" + e.substr(t.length, e.length) : e.match(/^[a-zA-Z]+:\/\//) || (e = "http://" + e), e
},
d = function(e) {
return "string" == typeof e && e.length > 0 && (!!(e.indexOf(" ") < 0 && e.indexOf(".") > 0 || e.match(/^localhost/)) && !(e.length - e.lastIndexOf(".") - 1 <= 1))
};
t.ensureURLProtocol = s, t.isValidURL = o, t.hasUnknownProtocol = l, t.isInternalURL = c, t.isIgnoredURL = u, t.fixLink = A, t.isUrlNavigable = d, t.removeProtocol = i
}, function(e, t, n) {
// =========================
// Function_47
// =========================
"use strict";
var i = n(4),
a = n(8),
r = n(6),
s = 200,
o = void 0,
l = {
setStatus: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
window.clearTimeout(o), e ? (a.handleViewAction({
actionType: r.STATUS_SET_STATUS,
status: e
}), t && (o = setTimeout(l.clearStatus, t))) : o = setTimeout(l.clearStatus, s)
},
clearStatus: function() {
a.handleViewAction({
actionType: r.STATUS_CLEAR_STATUS
})
}
};
i.runtime.onMessage.addListener(function(e, t) {
"setStatus" === e.action && i.runtime.id === t.id && l.setStatus(e.status)
}), e.exports = l
}, , function(e, t, n) {
// =========================
// Function_49
// =========================
"use strict";
var i = n(763),
a = n(110),
r = n(237),
s = n(616),
o = n(246),
l = n(15),
c = n(8),
u = n(42),
A = u.MAILING_LISTS_ACCOUNT_ID,
d = u.MAILING_LISTS_OTHER_FOLDER,
h = n(6),
m = n(2),
p = n(20).urls,
f = n(7),
g = f.debounce,
_ = {
addMessages: function(e, t, n) {
c.handleViewAction({
actionType: h.MAIL_ADD_MESSAGES,
accountId: e,
path: t,
messages: n
})
},
removeMessages: function(e, t, n) {
c.handleViewAction({
actionType: h.MAIL_REMOVE_MESSAGES,
accountId: e,
path: t,
uids: n
})
},
updateMessages: function(e, t, n) {
c.handleViewAction({
actionType: h.MAIL_UPDATE_MESSAGES,
accountId: e,
path: t,
updates: n
})
},
setActiveMailDetail: function(e) {
c.handleViewAction({
actionType: h.MAIL_SET_ACTIVE_MESSAGE,
mailDetail: e
})
},
clearIfActive: function(e) {
c.handleViewAction({
actionType: h.MAIL_CLEAR_IF_ACTIVE,
mailDetail: e
})
},
setActiveMailComposer: function(e) {
c.handleViewAction({
actionType: h.MAIL_SET_ACTIVE_COMPOSER,
mailComposer: e
})
},
clearActiveMailComposer: function(e) {
c.handleViewAction({
actionType: h.MAIL_CLEAR_ACTIVE_COMPOSER,
mailComposer: e
})
},
reply: function() {
i.getActiveMessage() && l.openURL(p.internalUrl("mailpage", "composer/reply", m("Mail - Reply")))
},
replyAll: function() {
i.getActiveMessage() && l.openURL(p.internalUrl("mailpage", "composer/reply-all", m("Mail - Reply All")))
},
forward: function() {
i.getActiveMessage() && l.openURL(p.internalUrl("mailpage", "composer/forward", m("Mail - Forward")))
},
markSeenDebounced: g(function(e) {
c.handleViewAction({
actionType: h.MAIL_MARK_SEEN,
sle: e
})
}, 1e3),
addFolders: function(e) {
c.handleViewAction({
actionType: h.MAIL_ADD_FOLDERS,
folders: e
})
},
selectFolder: function(e) {
c.handleViewAction({
actionType: h.MAIL_SELECT_FOLDER,
folder: e
})
},
replaceFolders: function(e) {
c.handleViewAction({
actionType: h.MAIL_REPLACE_FOLDERS,
folders: e
})
},
setSearchOptions: function(e) {
c.handleViewAction({
actionType: h.MAIL_SEARCH_SET_OPTIONS,
options: e
})
},
addFilter: function(e) {
return s.add(e).then(v)
},
bulkAddFilter: function(e) {
return s.bulkAdd(e).then(v)
},
removeFilter: function(e, t) {
return s.remove(e, t).then(v)
},
toggleHideMailingList: function(e, t) {
var n = o.get(e, t);
if (n) return n.hasOwnProperty("hidden") ? n.hidden = !n.hidden : n.hidden = !0, _.addFilter(n)
},
toggleMoveToOther: function(e, t) {
var n = o.get(e, t);
if (n) return n.path.startsWith(d) ? n.path = n.path.substr(d.length + 1) : n.path = d + "/" + n.path, s.remove(e, t).then(function() {
return _.addFilter(n)
})
},
toggleSenderAsMailingList: function(e) {
var t = o.get(A, e);
if (t) return _.removeFilter(A, e);
var n = {
accountId: A,
path: e,
filterValue: {
name: e,
from: e
}
};
return _.addFilter(n)
},
regenerateMailingLists: function() {
c.handleViewAction({
actionType: h.MAIL_REGENERATE_MAILING_LISTS
})
},
removeByAccountId: function(e) {
var t = o.getByAccountId(e),
n = [];
return t.forEach(function(e) {
n.push([e.accountId, e.path])
}), s.bulkRemove(n).then(v)
},
initializeMailFiltersStore: function() {
s.getAll().then(function(e) {
c.handleViewAction({
actionType: h.MAIL_FILTERS_INIT,
filters: e
})
})
},
initializeSearchListStore: function() {
c.handleViewAction({
actionType: h.MAIL_MESSAGES_INIT
})
},
connectIMAPAccounts: function() {
c.handleViewAction({
actionType: h.MAIL_CONNECT_IMAP_CLIENTS
})
},
disconnectIMAPAccounts: function() {
c.handleViewAction({
actionType: h.MAIL_DISCONNECT_IMAP_CLIENTS
})
},
checkNewDeletedModified: function(e, t) {
c.handleViewAction({
actionType: h.MAIL_CHECK_NEW_DELETED_MODIFIED,
accountId: e,
path: t
})
},
rescanUnreadFlags: function(e, t) {
c.handleViewAction({
actionType: h.MAIL_RESCAN_UNREAD_FLAGS,
accountId: e,
path: t
})
},
addAccountIndicator: function(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;
c.handleViewAction({
actionType: h.MAIL_INDICATOR_ADD,
accountId: e,
indicator: t,
current: n,
total: i
})
},
addPathIndicator: function(e, t, n) {
var i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0,
a = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0;
c.handleViewAction({
actionType: h.MAIL_INDICATOR_ADD,
accountId: e,
path: t,
indicator: n,
current: i,
total: a
})
},
removeAccountIndicator: function(e, t) {
c.handleViewAction({
actionType: h.MAIL_INDICATOR_REMOVE,
accountId: e,
indicator: t
})
},
removePathIndicator: function(e, t, n) {
c.handleViewAction({
actionType: h.MAIL_INDICATOR_REMOVE,
accountId: e,
path: t,
indicator: n
})
},
removeAllIndicators: function(e) {
c.handleViewAction({
actionType: h.MAIL_INDICATOR_REMOVE_ALL,
accountId: e
})
},
initializeContactStore: function() {
c.handleViewAction({
actionType: h.CONTACT_INITIALIZE
})
},
saveContact: function(e) {
c.handleViewAction({
actionType: h.CONTACT_SAVE_CONTACT,
contact: e
})
},
addContacts: function(e) {
c.handleViewAction({
actionType: h.CONTACT_ADD_CONTACTS,
contacts: e
})
},
selectContact: function(e) {
c.handleViewAction({
actionType: h.CONTACT_SELECT_CONTACT,
contact: e
})
},
deleteContact: function(e) {
c.handleViewAction({
actionType: h.CONTACT_DELETE_CONTACT,
contact: e
})
},
deleteContactsByIds: function(e) {
return Promise.all(e.map(function(e) {
return new Promise(function(t) {
r.remove(e).then(function() {
t()
})
})
})).then(function() {
_.initializeContactStore()
})
},
newEmptyContact: function() {
var e = new a;
return Promise.all([e].map(function(e) {
return new Promise(function(t) {
r.put(e).then(function() {
t(e)
})
})
})).then(function(e) {
return _.initializeContactStore(), e[0].clearGenerated(), e
})
},
checkForMail: function() {
c.handleViewAction({
actionType: h.MAIL_CHECK_FOR_MAIL
})
},
checkAccountForMail: function(e) {
c.handleViewAction({
actionType: h.MAIL_CHECK_FOR_MAIL,
accountId: e
})
},
setCheckInterval: function(e, t) {
c.handleViewAction({
actionType: h.MAIL_SET_CHECK_INTERVAL,
active: e,
minutes: t
})
},
deleteDraftMessage: function() {
c.handleViewAction({
actionType: h.MAIL_DELETE_DRAFT
})
},
queueMessage: function() {
c.handleViewAction({
actionType: h.MAIL_QUEUE_MESSAGE
})
},
sendMessage: function() {
c.handleViewAction({
actionType: h.MAIL_SEND_MESSAGE
})
},
storeDraftMessage: function() {
c.handleViewAction({
actionType: h.MAIL_STORE_DRAFT
})
},
addAttachment: function() {
c.handleViewAction({
actionType: h.MAIL_ADD_ATTACHMENT
})
}
},
v = function() {
return s.getAll().then(function(e) {
c.handleViewAction({
actionType: h.MAIL_FILTERS_CHANGED,
filters: e
})
}).catch(function(e) {
console.error("Error dispatching filters changed, ", e)
})
};
e.exports = _
}, function(e, t, n) {
// =========================
// Function_50
// =========================
"use strict";
var i = n(176),
a = n(8),
r = n(6),
s = n(3),
o = n(15),
l = n(20).urls,
c = n(2),
u = n(177),
A = u.showNotification,
d = n(4),
h = n(10),
m = {
exitBrowser: function() {
h.runtimePrivate.exit()
},
closeWindow: function() {
d.app.window.current().close()
},
showQuickCommand: function(e, t) {
a.handleViewAction({
actionType: r.MAIN_SHOW_QUICKCOMMANDS
})
},
showKeyboardShortcuts: function(e, t) {
a.handleViewAction({
actionType: r.MAIN_SHOW_KEYBOARDS_SHORTCUTS
})
},
showConfirmOpenBookmarkDialog: function(e) {
a.handleViewAction({
actionType: r.MAIN_SHOW_CONFIRM_OPEN_BOOKMARKS_DIALOG,
options: e
})
},
showClearBrowsingHistoryDialog: function(e) {
a.handleViewAction({
actionType: r.MAIN_SHOW_CLEAR_BROWSING_DATA_DIALOG,
options: e
})
},
showImportData: function() {
a.handleViewAction({
actionType: r.MAIN_SHOW_IMPORT_DATA
})
},
showExportData: function() {
d.bookmarks.export()
},
showSaveSession: function() {
a.handleViewAction({
actionType: r.MAIN_SHOW_SAVE_SESSION
})
},
showOpenSession: function() {
a.handleViewAction({
actionType: r.MAIN_SHOW_OPEN_SESSION
})
},
showPageInfo: function(e, t) {
a.handleViewAction({
actionType: r.MAIN_SHOW_PAGE_INFO,
page: e,
event: t
})
},
fullScreen: function() {
a.handleViewAction({
actionType: r.MAIN_FULLSCREEN
})
},
toggleMenuPosition: function() {
s.get("VIVALDI_MENU_POSITION", function(e) {
e = "vivaldi" === e ? "top" : "vivaldi", s.set({
VIVALDI_MENU_POSITION: e
})
}.bind(this))
},
toggleFooter: function() {
s.get("SHOW_VIVALDI_FOOTER", function(e) {
var t;
t = "on" === e ? "off" : "on", s.set({
SHOW_VIVALDI_FOOTER: t
})
}.bind(this))
},
toggleInterfaceColor: function() {
s.get(["THEMES_SYSTEM", "THEMES_USER", "THEME_CURRENT"], function(e) {
for (var t = e.THEMES_SYSTEM.concat(e.THEMES_USER), n = 0; n < t.length; n++) {
var i = t[n];
if (i.name === e.THEME_CURRENT) {
var a = t[n + 1] ? t[n + 1] : t[0];
a && .1 === a.version && s.set({
THEME_CURRENT: a.name,
BROWSER_COLOR_BG: a.colors.baseBg,
BROWSER_COLOR_FG: a.colors.baseFg,
BROWSER_COLOR_HIGHLIGHT_BG: a.colors.highlightBg,
BROWSER_COLOR_ACCENT_BG: a.colors.accentBg,
TABCOLOR_BEHIND_TABS: a.settings.accentOnWindow,
USE_TABCOLOR: a.settings.accentFromPage,
USE_TAB_TRANSPARENT_TABS: a.settings.tabsTransparent,
BORDER_RADIUS: a.settings.borderRadius
})
}
}
}.bind(this))
},
showPlugins: function() {
o.openURL("vivaldi://plugins", {
singleton: !0
})
},
showExtensions: function() {
o.openURL("vivaldi://extensions", {
singleton: !0
})
},
showHistory: function() {
o.openURL("vivaldi://history", {
singleton: !0
})
},
showBookmarks: function() {
o.openURL("vivaldi://bookmarks", {
singleton: !0
})
},
showWelcome: function() {
o.openURL("vivaldi://welcome")
},
showClearPrivateData: function() {
m.showClearBrowsingHistoryDialog({})
},
showSettings: function() {
s.get("USE_SETTINGS_WINDOW_AS_TAB", function(e) {
e ? o.openURL("vivaldi://settings/startup/", {
singleton: !0
}) : d.runtime.sendMessage({
getLastSettingsWindowId: -1
}, function(e) {
m.MaybeShowSettingsInWindow(e.settingsWindowId)
})
})
},
MaybeShowSettingsInWindow: function(e) {
d.windows.getAll(function(t) {
for (var n = !0, i = 0; i < t.length; i++)
if (t[i].id === e) {
n = !1;
break
}
if (n) {
var a = 740,
r = 615,
s = Number.parseInt(window.screen.availWidth / 2 - a / 2, 10),
c = Number.parseInt(window.screen.availHeight / 2 - r / 2, 10);
o.openWindow(l.internals.settings, {
width: a,
height: r,
left: s,
top: c,
focused: !0,
incognito: !1
}, function(e) {
d.runtime.sendMessage({
setLastSettingsWindowId: e.id
})
}, "popup")
} else d.windows.update(e, {
focused: !0
})
})
},
showTaskManager: function() {
h.importData.openTaskManager(function(e) {})
},
showDevTools: function() {
h.importData.showDevTools(function(e) {})
},
toggleBookmarksBar: function() {
s.get("BOOKMARK_BAR_VISIBLE", function(e) {
s.set({
BOOKMARK_BAR_VISIBLE: !e
})
}.bind(this))
},
checkForUpdates: function() {
d.autoUpdate.checkForUpdates(!0)
},
zoomIn: function() {
a.handleViewAction({
actionType: r.MAIN_ZOOM_IN
})
},
zoomOut: function() {
a.handleViewAction({
actionType: r.MAIN_ZOOM_OUT
})
},
zoomHalf: function() {
a.handleViewAction({
actionType: r.MAIN_ZOOM_HALF
})
},
zoomDouble: function() {
a.handleViewAction({
actionType: r.MAIN_ZOOM_DOUBLE
})
},
zoomReset: function() {
a.handleViewAction({
actionType: r.MAIN_ZOOM_RESET
})
},
toggleTabBar: function() {
a.handleViewAction({
actionType: r.MAIN_TOGGLE_TAB_BAR
})
},
toggleAddressBar: function() {
a.handleViewAction({
actionType: r.MAIN_TOGGLE_ADDRESS_BAR
})
},
toggleUI: function() {
a.handleViewAction({
actionType: r.MAIN_TOGGLE_UI
})
},
disableKeyboardShortcuts: function() {
var e = s.getSync("DISABLE_KEYBOARD_SHORTCUTS");
s.set({
DISABLE_KEYBOARD_SHORTCUTS: !e
})
},
captureArea: function(e) {
i.captureArea("png", e, !1, function(t) {
"clipboard" !== e || t || A({
title: c("Area Captured"),
body: c("Image stored in the clipboard.")
})
})
}
};
e.exports = m
}, function(e, t, n) {
// =========================
// Function_51
// =========================
"use strict";
function i(e) {
v = function e(t, n) {
return t.speeddial && !t.url && n.push(t), t.children && !t.trash && t.children.forEach(function(t) {
e(t, n)
}), n
}(e, [])
}
function a(e) {
f = N.validateAsBookmarkBarFolder(e), g = f ? f.children.filter(function(e) {
return !e.trash
}) : []
}
function r() {
function e(t) {
var n;
return t.trash ? t : (t.children && t.children.forEach(function(t) {
n = e(t)
}), n)
}
for (var t = void 0, n = p.length - 1; n >= 0 && void 0 === t; n--) t = e(p[n]);
return t
}
function s(e, t) {
p = e;
var n = p[0];
_ = r(), n.children[0].children.push(_), i(n), a(t)
}
var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
l = n(18).EventEmitter,
c = n(8),
u = n(6),
A = n(46).isInternalURL,
d = n(3),
h = "change",
m = {
children: []
},
p = [],
f = void 0,
g = [],
_ = {},
v = [],
b = [],
N = Object.assign({}, l.prototype, {
getRootNode: function() {
return p.length > 0 && p[0].children ? p[0].children[0] : m
},
getTopNodes: function() {
return p && p.length > 0 && p[0] && p[0].children[0] && p[0].children[0].children ? p[0].children[0].children : []
},
getLastTopNode: function() {
var e = this.getTopNodes();
if (e.length > 1) return e[e.length - 2]
},
getBookmarksRootNode: function() {
return p.length > 0 ? p[0] : m
},
getBookmarkBarFolderId: function() {
return void 0 === f ? void 0 : f.id
},
getBookmarksBarNodes: function() {
return g
},
getSpeeddialNodes: function() {
return v
},
getItemById: function(e) {
var t = function t(n) {
for (var i = 0; i < n.length; i++) {
var a = n[i];
if (a.id === e) return a;
if (a.children && (a = t(a.children))) return a
}
};
return t(p)
},
getCutIds: function() {
return b
},
getFilteredTree: function(e) {
var t = function e(t, n, i) {
for (var a = !1, r = 0; r < t.length; r++) {
var s = t[r];
if (s.children) {
var o = Object.assign({}, s, {
children: []
});
e(s.children, o.children, i) && (n.push(o), a = !0)
} else {
var l = s.title.toLowerCase();
if (l.search(i) !== -1 || s.url.search(i) !== -1) {
var c = Object.assign({}, s);
n.push(c), a = !0
}
}
}
return a
},
n = this.getTopNodes(),
i = [];
return t(n, i, e.toLowerCase()), i
},
getFoldersWithin: function(e, t) {
var n = this;
e = Array.isArray(e) ? e : [e];
var i = [];
return e.filter(function(e) {
return !e.trash && e.children && !e.url
}).forEach(function(e) {
i.push({
id: e.id,
title: e.title,
level: t
}), i = i.concat(n.getFoldersWithin(e.children, t + 1))
}), i
},
canBookmarkUrl: function(e) {
return !A(e)
},
hasNickname: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
if (e = e.toLowerCase(), "" === e.trim()) return !1;
var t = function t(n) {
return e === n.nickname.toLowerCase() || (n.children ? n.children.some(t) : void 0)
};
return p.some(t)
},
getNicknamed: function(e) {
if ("string" != typeof e || e.length < 1) return [];
e = e.toLowerCase();
var t = [],
n = function n(i) {
e === i.nickname.toLowerCase() && (t = i.children ? t.concat(i.children.filter(function(e) {
return !e.children
})) : t.concat(i)), i.children && i.children.forEach(n)
};
return p.forEach(n), t
},
isTrashed: function(e) {
function t(e, n) {
if (e.id === n) return !0;
var i, a;
for (a in e)
if (e.hasOwnProperty(a) && "object" === o(e[a]) && (i = t(e[a], n))) return !0;
return !1
}
return t(_, e.id)
},
isFolder: function(e) {
return e.children && e.children.length > 0 || void 0 === e.url
},
validateAsBookmarkBarFolder: function(e) {
var t = N.getItemById(e);
if (t && t.children && !N.isTrashed(t)) return t
},
validateForClipboard: function(e) {
return e.filter(function(e) {
return e !== _.id
})
},
validateForDrag: function(e) {
return e.filter(function(e) {
return e !== _.id
})
},
validateForDeletion: function(e) {
return e.filter(function(e) {
return e !== _.id
})
},
validateForEdit: function(e) {
return e !== _.id
},
getTitle: function(e) {
var t = N.getItemById(e);
return t ? t.title : ""
},
emitChange: function() {
this.emit(h)
},
addChangeListener: function(e) {
this.on(h, e)
},
removeChangeListener: function(e) {
this.removeListener(h, e)
}
});
c.register(function(e) {
var t = e.action;
switch (t.actionType) {
case u.BOOKMARKS_LOAD_ALL:
if (s(t.bookmarks, t.bookmarksBarFolderId), void 0 === N.getBookmarkBarFolderId()) {
var n = d.getDefault("BOOKMARKS_BAR_FOLDER_IDS");
d.set({
BOOKMARKS_BAR_FOLDER_IDS: n
}), a(n[0])
}
N.emitChange();
break;
case u.BOOKMARKS_SET_BOOKMARK_BAR_FOLDER:
a(t.folderId), N.emitChange();
break;
case u.BOOKMARKS_SET_CUT_IDS:
b = t.ids, N.emitChange();
break;
default:
return !0
}
}), e.exports = window.BookmarkStore = N
}, function(e, t, n) {
// =========================
// Function_52
// =========================
"use strict";
function i() {
H.forEach(function(e) {
h.unbind(e.key, e.func)
}), H = [];
var e = z.getCommandShortcuts();
Object.keys(e).forEach(function(t) {
var n = e[t].function;
h.bind(t, n), H.push({
key: t,
func: n
})
})
}
function a(e) {
if ("MacIntel" === navigator.platform) e();
else {
B = F.length;
for (var t = 0; t < F.length; t++) {
var n = F[t],
i = new Image;
i.onload = r.bind(i, n, e), i.src = "data:image/svg+xml;utf8," + n.src
}
}
}
function r(e, t) {
try {
var n = document.createElement("canvas");
n.width = U, n.height = U;
var i = n.getContext("2d");
i.drawImage(this, 0, 0);
var a = n.toDataURL("image/png");
e.icon = a.substr(a.indexOf(",") + 1)
} finally {
this.onload = null, B > 0 && (B--, 0 === B && t())
}
}
function s(e, t, n) {
for (var i = n.length - 1; i >= 0; i--)
if (n[i].items) s(e, t, n[i].items);
else if (n[i].commandName === e) {
t && t.shortcut ? n[i].shortcut = t.shortcut[0] : delete n[i].shortcut;
break
}
}
function o(e) {
for (var t = 0; t < e.length; t++) l(e[t].command, e[t].value)
}
function l(e, t) {
j[e] = t, s(e, t, z.getMenuItems())
}
function c(e, t) {
return function(n, i) {
e.call(null, t, n, i)
}
}
var u = n(552),
A = n(18).EventEmitter,
d = (n(49), n(50)),
h = n(37),
m = n(129),
p = n(167),
f = n(15),
g = n(17),
_ = n(131),
v = n(168),
b = n(58),
N = n(553),
E = n(554),
S = n(65),
T = n(8),
y = n(6),
C = n(3),
I = n(55),
O = n(249),
w = n(59),
D = n(30),
k = n(20),
M = k.urls,
L = n(2),
P = "change",
R = 34045,
x = !1,
B = 0,
U = 16,
F = [{
name: "menu_bookmarks",
src: n(966),
icon: ""
}, {
name: "menu_mail",
src: n(969),
icon: ""
}, {
name: "menu_contacts",
src: n(967),
icon: ""
}, {
name: "menu_downloads",
src: n(968),
icon: ""
}, {
name: "menu_notes",
src: n(970),
icon: ""
}, {
name: "menu_settings",
src: n(971),
icon: ""
}, {
name: "menu_vivaldi",
src: n(972),
icon: ""
}, {
name: "menu_capture",
src: n(472),
icon: ""
}],
H = [],
V = [Object.assign({
name: "COMMAND_NEW_WINDOW",
action: function() {
return f.openWindow()
},
category: y.CATEGORY_COMMAND_APPLICATION
}, D("command", "New Window")), Object.assign({
name: "COMMAND_NEW_PRIVATE_WINDOW",
action: f.openIncognitoWindow,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("New Private Window")), Object.assign({
name: "COMMAND_CLOSE_WINDOW",
action: d.closeWindow,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Close Window")), Object.assign({
name: "COMMAND_SHOW_QUICK_COMMANDS",
action: d.showQuickCommand,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Quick Commands")), Object.assign({
name: "COMMAND_FULLSCREEN",
action: d.fullScreen,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Fullscreen Mode")), Object.assign({
name: "COMMAND_TASK_MANAGER",
action: d.showTaskManager,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Task Manager")), Object.assign({
name: "COMMAND_SHOW_SETTINGS",
action: d.showSettings,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Settings")), Object.assign({
name: "COMMAND_SHOW_PLUGINS",
action: d.showPlugins,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Plugins")), Object.assign({
name: "COMMAND_SHOW_EXTENSIONS",
action: d.showExtensions,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Extensions")), Object.assign({
name: "COMMAND_SHOW_HISTORY",
action: d.showHistory,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("History")), Object.assign({
name: "COMMAND_SHOW_BOOKMARKS",
action: d.showBookmarks,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Bookmarks")), Object.assign({
name: "COMMAND_SHOW_WELCOME",
action: d.showWelcome,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Welcome Page")), Object.assign({
name: "COMMAND_SHOW_CLEAR_PRIVATE_DATA",
action: d.showClearPrivateData,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Clear Private Data")), Object.assign({
name: "COMMAND_SHOW_BOOKMARK_BAR",
action: d.toggleBookmarksBar,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Bookmarks Bar")), Object.assign({
name: "COMMAND_TOGGLE_MENU_POSITION",
action: d.toggleMenuPosition,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Menu Position")), Object.assign({
name: "COMMAND_TOGGLE_FOOTER",
action: d.toggleFooter,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Status Bar")), Object.assign({
name: "COMMAND_TOGGLE_INTERFACE_COLOR",
action: d.toggleInterfaceColor,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Next Theme")), Object.assign({
name: "COMMAND_EXIT",
action: d.exitBrowser,
category: y.CATEGORY_COMMAND_APPLICATION
}, "MacIntel" === navigator.platform ? D("Quit $1", ["Vivaldi"]) : D("Exit")), Object.assign({
name: "COMMAND_SHOW_HELP",
action: f.newPage,
param: " https://help.vivaldi.com",
category: y.CATEGORY_COMMAND_APPLICATION
}, D("browser", "Help")), Object.assign({
name: "COMMAND_SHOW_KEYBOARDSHORTCUTS",
action: d.showKeyboardShortcuts,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Keyboard Cheat Sheet")), Object.assign({
name: "COMMAND_MAIN_TOGGLE_TAB_BAR",
action: d.toggleTabBar,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Tab Bar")), Object.assign({
name: "COMMAND_MAIN_TOGGLE_ADDRESS_BAR",
action: d.toggleAddressBar,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Address Bar")), Object.assign({
name: "COMMAND_MAIN_TOGGLE_UI",
action: d.toggleUI,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Toggle UI")), Object.assign({
name: "COMMAND_CAPTURE_AREA_TO_DISK",
action: d.captureArea.bind(null, "disk", !1),
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Capture Area to Disk")), Object.assign({
name: "COMMAND_CAPTURE_AREA_TO_CLIPBOARD",
action: d.captureArea.bind(null, "clipboard", !1),
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Capture Area to Clipboard")), Object.assign({
name: "COMMAND_NEW_TAB",
action: f.newPage,
gestureOnLink: L("Open Link in New Tab (Over a Link)"),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("command", "New Tab")), Object.assign({
name: "COMMAND_NEW_BACKGROUND_TAB",
action: E.newBackgroundTab,
gestureOnLink: L("Open Link in Background Tab (Over a Link)"),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("New Background Tab")), Object.assign({
name: "COMMAND_CLONE_TAB",
action: function() {
return f.clonePage(g.getActivePage())
},
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Clone Tab")), Object.assign({
name: "COMMAND_MOVE_TAB_TO_NEW_WINDOW",
action: function() {
return f.detachPage(g.getActivePage())
},
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Detach Tab")), Object.assign({
name: "COMMAND_PIN_TAB",
action: f.togglePinned,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Pin Tab")), Object.assign({
name: "COMMAND_CLOSE_TAB",
action: f.close,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Close Tab")), Object.assign({
name: "COMMAND_CLOSE_TAB_TO_LEFT",
action: function() {
return f.closeToLeft(g.getActivePage())
},
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Close Tabs to the Left")), Object.assign({
name: "COMMAND_CLOSE_TAB_TO_RIGHT",
action: function() {
return f.closeToRight(g.getActivePage())
},
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Close Tabs to the Right")), Object.assign({
name: "COMMAND_CLOSE_ALL_BUT_ACTIVE_TAB",
action: E.closeAllButActiveTab,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Close Other Tabs")), Object.assign({
name: "COMMAND_NEW_PRIVATE_TAB",
action: f.newPage,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("New Private Tab")), Object.assign({
name: "COMMAND_TAB_THUMBNAIL",
action: E.toggleTabThumbnail,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Tab Thumbnail")), Object.assign({
name: "COMMAND_SHOW_ABOUT",
action: f.newPage,
param: M.internals.aboutpage,
category: y.CATEGORY_COMMAND_APPLICATION
}, "MacIntel" === navigator.platform ? D("About $1", ["Vivaldi"]) : D("About")), Object.assign({
name: "COMMAND_CHECK_FOR_UPDATES",
action: d.checkForUpdates,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Check for Updates")), Object.assign({
name: "COMMAND_SHOW_COMMUNITY",
action: f.newPage,
param: "https://vivaldi.net",
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Community")), Object.assign({
name: "COMMAND_TAB_SWITCH_BACK_SETTING",
action: E.switchTabBackBySetting,
notEditable: !0,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Next Tab")), Object.assign({
name: "COMMAND_TAB_SWITCH_FORWARD_SETTING",
action: E.switchTabForwardBySetting,
notEditable: !0,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Previous Tab")), Object.assign({
name: "COMMAND_TAB_SWITCH_BACK_HISTORY",
action: E.switchTabBackByHistory,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Next Tab (Recent)")), Object.assign({
name: "COMMAND_TAB_SWITCH_FORWARD_HISTORY",
action: E.switchTabForwardByHistory,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Previous Tab (Recent)")), Object.assign({
name: "COMMAND_TAB_SWITCH_BACK_ORDER",
action: E.switchTabBackByOrder,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Next Tab")), Object.assign({
name: "COMMAND_TAB_SWITCH_FORWARD_ORDER",
action: E.switchTabForwardByOrder,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Previous Tab")), Object.assign({
name: "COMMAND_TAB_SWITCH_1",
action: f.openPageN.bind(null, 1),
label: L("Switch to Tab 1"),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Switch to Tab 1")), Object.assign({
name: "COMMAND_TAB_SWITCH_2",
action: f.openPageN.bind(null, 2),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Switch to Tab 2")), Object.assign({
name: "COMMAND_TAB_SWITCH_3",
action: f.openPageN.bind(null, 3),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Switch to Tab 3")), Object.assign({
name: "COMMAND_TAB_SWITCH_4",
action: f.openPageN.bind(null, 4),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Switch to Tab 4")), Object.assign({
name: "COMMAND_TAB_SWITCH_5",
action: f.openPageN.bind(null, 5),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Switch to Tab 5")), Object.assign({
name: "COMMAND_TAB_SWITCH_6",
action: f.openPageN.bind(null, 6),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Switch to Tab 6")), Object.assign({
name: "COMMAND_TAB_SWITCH_7",
action: f.openPageN.bind(null, 7),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Switch to Tab 7")), Object.assign({
name: "COMMAND_TAB_SWITCH_8",
action: f.openPageN.bind(null, 8),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Switch to Tab 8")), Object.assign({
name: "COMMAND_TAB_SWITCH_9",
action: f.openPageN.bind(null, 9),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Switch to Tab 9")), Object.assign({
name: "COMMAND_TAB_SWITCH_LAST",
action: f.openLastPage,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Switch to the Last Tab")), Object.assign({
name: "COMMAND_TAB_REOPEN_RECENTLY_CLOSED",
action: v.undeletePrevious,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Reopen Closed Tab")), Object.assign({
name: "COMMAND_TAB_STACK_TILE_VERTICAL",
action: E.stackTileVertical,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Tile Vertically")), Object.assign({
name: "COMMAND_TAB_STACK_TILE_HORIZONTAL",
action: E.stackTileHorizontal,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Tile Horizontally")), Object.assign({
name: "COMMAND_TAB_STACK_TILE_GRID",
action: E.stackTileGrid,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Tile to Grid")), Object.assign({
name: "COMMAND_TAB_STACK_UNTILE",
action: E.stackUntile,
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Untile Tabs")), Object.assign({
name: "COMMAND_PAGE_TOGGLE_MUTE",
action: f.setMuting.bind(null, "active", "toggle"),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Mute/unmute Tab")), Object.assign({
name: "COMMAND_PAGE_MUTE_OTHER",
action: f.setMuting.bind(null, "other", "mute"),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Mute Other Tabs")), Object.assign({
name: "COMMAND_PAGE_MUTE_ALL",
action: f.setMuting.bind(null, "all", "mute"),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Mute All Tabs")), Object.assign({
name: "COMMAND_PAGE_UNMUTE_OTHER",
action: f.setMuting.bind(null, "other", "unmute"),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Unmute Other Tabs")), Object.assign({
name: "COMMAND_PAGE_UNMUTE_ALL",
action: f.setMuting.bind(null, "all", "unmute"),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Unmute All Tabs")), Object.assign({
name: "COMMAND_CAPTURE_PAGE_TO_DISK",
action: E.capturePage.bind(null, "disk"),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Capture Page to Disk")), Object.assign({
name: "COMMAND_CAPTURE_PAGE_TO_CLIPBOARD",
action: E.capturePage.bind(null, "clipboard"),
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Capture Page to Clipboard")), Object.assign({
name: "COMMAND_IMPORT_DATA",
action: d.showImportData,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Import Bookmarks and Settings")), Object.assign({
name: "COMMAND_EXPORT_DATA",
action: d.showExportData,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Export Bookmarks")), Object.assign({
name: "COMMAND_READERVIEW_TOGGLE",
action: S.readerableToggle.bind(S),
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Toggle Reader View")), Object.assign({
name: "COMMAND_SAVE_SESSION",
action: d.showSaveSession,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Save Open Tabs as Session")), Object.assign({
name: "COMMAND_OPEN_SESSION",
action: d.showOpenSession,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Open Saved Session")), Object.assign({
name: "COMMAND_ADD_BOOKMARK",
action: I.doAction,
param: "addBookmark",
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Create Bookmark")), Object.assign({
name: "COMMAND_FOCUS_ADDRESSFIELD",
action: I.doAction,
param: "focusAddressField",
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Focus Address Field")), Object.assign({
name: "COMMAND_PAGE_REFRESH",
action: I.reload,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Reload Page")), Object.assign({
name: "COMMAND_PAGE_RELOAD_NOCACHE",
action: I.reload,
param: !0,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Force Page Reload")), Object.assign({
name: "COMMAND_PAGE_SCROLL_UP",
action: I.doAction,
param: "pageScrollUp",
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Page Up")), Object.assign({
name: "COMMAND_PAGE_SCROLL_DOWN",
action: I.doAction,
param: "pageScrollDown",
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Page Down")), Object.assign({
name: "COMMAND_PAGE_SCROLL_TOP",
action: I.doAction,
param: "pageScrollTop",
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Scroll Page to Top")), Object.assign({
name: "COMMAND_PAGE_SCROLL_BOTTOM",
action: I.doAction,
param: "pageScrollBottom",
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Scroll Page to Bottom")), Object.assign({
name: "COMMAND_FOCUS_WEBVIEW",
action: I.doAction,
param: "focusWebView",
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Focus Page")), Object.assign({
name: "COMMAND_PAGE_DISABLE_KEYBOARD_SHORTCUTS",
action: d.disableKeyboardShortcuts,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Disable Keyboard Shortcuts")), Object.assign({
name: "COMMAND_FOCUS_SEARCHFIELD",
action: I.doAction,
param: "focusSearchField",
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Focus Search Field")), Object.assign({
name: "COMMAND_FIND_IN_PAGE",
action: I.doAction,
param: "findInPage",
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Find in Page")), Object.assign({
name: "COMMAND_FIND_NEXT_IN_PAGE",
action: I.doAction,
param: "findNextInPage",
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Find Next in Page")), Object.assign({
name: "COMMAND_FIND_PREVIOUS_IN_PAGE",
action: I.doAction,
param: "findPreviousInPage",
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Find Previous in Page")), Object.assign({
name: "COMMAND_PAGE_BACK",
action: I.back,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("History Back")), Object.assign({
name: "COMMAND_PAGE_FORWARD",
action: I.forward,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("History Forward")), Object.assign({
name: "COMMAND_PAGE_REWIND",
action: m.navigateRewind,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("History Rewind")), Object.assign({
name: "COMMAND_PAGE_FAST_FORWARD",
action: m.navigateFastforward,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Fast Forward")), Object.assign({
name: "COMMAND_PRINT_PAGE",
action: I.doAction,
param: "print",
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Print")), Object.assign({
name: "COMMAND_BASIC_PRINT",
action: I.doAction,
param: "basicPrint",
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Print Using System Dialog")), Object.assign({
name: "COMMAND_STOP_PAGE",
action: I.stop,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Stop Loading")), Object.assign({
name: "COMMAND_OPEN_PAGE",
action: I.doAction,
param: "openPage",
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("a file", "Open File")), Object.assign({
name: "COMMAND_SAVE_PAGE",
action: I.doAction,
param: "savePage",
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Save Page As")), Object.assign({
name: "COMMAND_MAIN_ZOOM_IN",
action: d.zoomIn,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Zoom In")), Object.assign({
name: "COMMAND_MAIN_ZOOM_OUT",
action: d.zoomOut,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Zoom Out")), Object.assign({
name: "COMMAND_MAIN_ZOOM_HALF",
action: d.zoomHalf,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Zoom Out Half")), Object.assign({
name: "COMMAND_MAIN_ZOOM_DOUBLE",
action: d.zoomDouble,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Zoom In Double")), Object.assign({
name: "COMMAND_MAIN_ZOOM_RESET",
action: d.zoomReset,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Zoom Reset")), Object.assign({
name: "COMMAND_TAB_VIEW_PAGE_SOURCE",
action: E.viewPageSource,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("View Page Source")), Object.assign({
name: "COMMAND_DEVELOPER_TOOLS",
action: d.showDevTools,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Developer Tools")), Object.assign({
name: "COMMAND_EXPORT_SETTINGS",
action: I.doAction,
param: "exportSettings",
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Export Settings")), Object.assign({
name: "COMMAND_SHOW_HOMEPAGE",
action: f.showHomepage,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Home")), Object.assign({
name: "COMMAND_DISCARD_PAGE",
action: I.doAction,
param: "discardPage",
category: y.CATEGORY_COMMAND_TAB_ACTION
}, D("Discard Page")), Object.assign({
name: "COMMAND_TOGGLE_PANEL",
action: _.togglePanel,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Panel")), Object.assign({
name: "COMMAND_FOCUS_PANEL",
action: _.setFocus,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Focus Panel")), Object.assign({
name: "COMMAND_SHOW_NEXT_PANEL",
action: _.showNextPanel,
param: "next",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Open Next Panel")), Object.assign({
name: "COMMAND_SHOW_PREVIOUS_PANEL",
action: _.showNextPanel,
param: "previous",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Open Previous Panel")), Object.assign({
name: "COMMAND_SHOW_BOOKMARK_PANEL",
action: _.toggleContent,
param: "bookmarks",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Bookmarks Panel")), Object.assign({
name: "COMMAND_SHOW_MAIL_PANEL",
action: _.toggleContent,
param: "mail",
showInQC: b.getIsMailWindow,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Mail Panel")), Object.assign({
name: "COMMAND_SHOW_CONTACTS_PANEL",
action: _.toggleContent,
param: "contacts",
showInQC: b.getIsMailWindow,
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Contacts Panel")), Object.assign({
name: "COMMAND_SHOW_DOWNLOADS_PANEL",
action: _.toggleContent,
param: "downloads",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Downloads Panel")), Object.assign({
name: "COMMAND_SHOW_NOTES_PANEL",
action: _.toggleContent,
param: "notes",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Notes Panel")), Object.assign({
name: "COMMAND_SHOW_WEB_PANEL_1",
action: _.toggleContent,
param: "webpanel 1",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Web Panel 1")), Object.assign({
name: "COMMAND_SHOW_WEB_PANEL_2",
action: _.toggleContent,
param: "webpanel 2",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Web Panel 2")), Object.assign({
name: "COMMAND_SHOW_WEB_PANEL_3",
action: _.toggleContent,
param: "webpanel 3",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Web Panel 3")), Object.assign({
name: "COMMAND_SHOW_WEB_PANEL_4",
action: _.toggleContent,
param: "webpanel 4",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Web Panel 4")), Object.assign({
name: "COMMAND_SHOW_WEB_PANEL_5",
action: _.toggleContent,
param: "webpanel 5",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Web Panel 5")), Object.assign({
name: "COMMAND_SHOW_WEB_PANEL_6",
action: _.toggleContent,
param: "webpanel 6",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Web Panel 6")), Object.assign({
name: "COMMAND_SHOW_WEB_PANEL_7",
action: _.toggleContent,
param: "webpanel 7",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Web Panel 7")), Object.assign({
name: "COMMAND_SHOW_WEB_PANEL_8",
action: _.toggleContent,
param: "webpanel 8",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Web Panel 8")), Object.assign({
name: "COMMAND_SHOW_WEB_PANEL_9",
action: _.toggleContent,
param: "webpanel 9",
category: y.CATEGORY_COMMAND_APPEARANCE
}, D("Web Panel 9")), Object.assign({
name: "COMMAND_COPY_SELECTION_TO_NOTE",
action: p.addSelectedTextFromActivePage,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Copy Selected Text to Note")), Object.assign({
name: "COMMAND_SPATNAV_LEFT",
action: N.left,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Spatial Navigation Left")), Object.assign({
name: "COMMAND_SPATNAV_UP",
action: N.up,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Spatial Navigation Up")), Object.assign({
name: "COMMAND_SPATNAV_RIGHT",
action: N.right,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Spatial Navigation Right")), Object.assign({
name: "COMMAND_SPATNAV_DOWN",
action: N.down,
category: y.CATEGORY_COMMAND_WEBPAGE_NAVIGATION
}, D("Spatial Navigation Down")), Object.assign({
name: "COMMAND_CLIPBOARD_UNDO",
action: u.undo,
category: y.CATEGORY_COMMAND_APPLICATION
}, "MacIntel" === navigator.platform ? D("mac", "Undo") : D("win_linux", "Undo")), Object.assign({
name: "COMMAND_CLIPBOARD_REDO",
action: u.redo,
category: y.CATEGORY_COMMAND_APPLICATION
}, "MacIntel" === navigator.platform ? D("mac", "Redo") : D("win_linux", "Redo")), Object.assign({
name: "COMMAND_CLIPBOARD_CUT",
action: u.cut,
category: y.CATEGORY_COMMAND_APPLICATION
}, "MacIntel" === navigator.platform ? D("mac", "Cut") : D("win_linux", "Cut")), Object.assign({
name: "COMMAND_CLIPBOARD_COPY",
action: u.copy,
category: y.CATEGORY_COMMAND_APPLICATION
}, "MacIntel" === navigator.platform ? D("mac", "Copy") : D("win_linux", "Copy")), Object.assign({
name: "COMMAND_CLIPBOARD_PASTE",
action: u.paste,
category: y.CATEGORY_COMMAND_APPLICATION
}, "MacIntel" === navigator.platform ? D("mac", "Paste") : D("win_linux", "Paste")), Object.assign({
name: "COMMAND_CLIPBOARD_SELECT_ALL",
action: u.selectAll,
category: y.CATEGORY_COMMAND_APPLICATION
}, "MacIntel" === navigator.platform ? D("mac", "Select All") : D("win_linux", "Select All")), Object.assign({
name: "COMMAND_CLIPBOARD_PASTE_AS_PLAIN_TEXT",
action: u.pasteAsPlainText,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Paste as Plain Text")), Object.assign({
name: "COMMAND_CLIPBOARD_PASTE_AS_PLAIN_TEXT_OR_PASTE_AND_GO",
action: u.pasteAsPlainTextOrPastAndGo,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Paste and Go")), Object.assign({
name: "COMMAND_CLIPBOARD_PASTE_AS_NOTE",
action: u.createNoteFromSelection,
category: y.CATEGORY_COMMAND_APPLICATION
}, D("Paste to new Note"))],
W = [Object.assign({
items: [{
commandName: "COMMAND_NEW_TAB"
}, {
commandName: "COMMAND_NEW_WINDOW"
}, {
commandName: "COMMAND_NEW_PRIVATE_WINDOW"
}, {
commandName: "COMMAND_OPEN_PAGE",
ellipsis: !0
}, {
name: "---"
}, {
commandName: "COMMAND_CLOSE_TAB"
}, {
commandName: "COMMAND_CLOSE_WINDOW"
}, {
name: "---"
}, {
commandName: "COMMAND_SAVE_PAGE",
ellipsis: !0
}, {
commandName: "COMMAND_PRINT_PAGE",
ellipsis: !0
}, {
name: "---"
}, {
commandName: "COMMAND_IMPORT_DATA",
ellipsis: !0
}, {
commandName: "COMMAND_EXPORT_DATA",
ellipsis: !0
}, {
name: "---"
}, {
commandName: "COMMAND_OPEN_SESSION",
ellipsis: !0
}, {
commandName: "COMMAND_SAVE_SESSION",
ellipsis: !0
}, {
name: "---"
}, {
commandName: "COMMAND_EXIT"
}]
}, D("win_linux", "File")), Object.assign({
items: [{
commandName: "COMMAND_CLIPBOARD_UNDO",
shortcut: "ctrl+z"
}, {
commandName: "COMMAND_CLIPBOARD_REDO",
shortcut: "ctrl+y"
}, {
name: "---"
}, {
commandName: "COMMAND_CLIPBOARD_CUT",
shortcut: "ctrl+x"
}, {
commandName: "COMMAND_CLIPBOARD_COPY",
shortcut: "ctrl+c"
}, {
commandName: "COMMAND_CLIPBOARD_PASTE",
shortcut: "ctrl+v"
}, {
commandName: "COMMAND_CLIPBOARD_PASTE_AS_PLAIN_TEXT_OR_PASTE_AND_GO"
}, {
commandName: "COMMAND_CLIPBOARD_PASTE_AS_PLAIN_TEXT"
}, {
name: "---"
}, {
commandName: "COMMAND_CLIPBOARD_SELECT_ALL",
shortcut: "ctrl+a"
}, {
name: "---"
}, {
commandName: "COMMAND_FIND_IN_PAGE"
}]
}, D("noun_win_linux", "Edit")), Object.assign({
items: [Object.assign({
commandName: "COMMAND_TOGGLE_MENU_POSITION",
type: "checkbox",
setting: "VIVALDI_MENU_POSITION"
}, D("Horizontal Main Menu")), Object.assign({
commandName: "COMMAND_TOGGLE_PANEL",
type: "checkbox",
panelState: "SHOW_PANEL"
}, D("Show Panel")), Object.assign({
commandName: "COMMAND_TOGGLE_FOOTER",
type: "checkbox",
setting: "SHOW_VIVALDI_FOOTER"
}, D("Show Status Bar")), Object.assign({
commandName: "COMMAND_SHOW_BOOKMARK_BAR",
type: "checkbox",
setting: "BOOKMARK_BAR_VISIBLE"
}, D("Show Bookmarks Bar")), {
name: "---"
}, {
commandName: "COMMAND_SHOW_BOOKMARK_PANEL",
iconName: "menu_bookmarks"
}, {
commandName: "COMMAND_SHOW_MAIL_PANEL",
iconName: "menu_mail",
testVisibility: b.getIsMailWindow
}, {
commandName: "COMMAND_SHOW_CONTACTS_PANEL",
iconName: "menu_contacts",
testVisibility: b.getIsMailWindow
}, {
commandName: "COMMAND_SHOW_DOWNLOADS_PANEL",
iconName: "menu_downloads"
}, {
commandName: "COMMAND_SHOW_NOTES_PANEL",
iconName: "menu_notes"
}, {
name: "---"
}, {
commandName: "COMMAND_MAIN_ZOOM_IN"
}, {
commandName: "COMMAND_MAIN_ZOOM_OUT"
}, {
commandName: "COMMAND_MAIN_ZOOM_RESET"
}]
}, D("win_linux", "View")), Object.assign({
items: [{
commandName: "COMMAND_SHOW_SETTINGS",
ellipsis: !0,
iconName: "menu_settings"
}, {
name: "---"
}, {
commandName: "COMMAND_SHOW_QUICK_COMMANDS",
ellipsis: !0
}, {
name: "---"
}, {
commandName: "COMMAND_SHOW_BOOKMARKS"
}, {
commandName: "COMMAND_SHOW_HISTORY"
}, {
commandName: "COMMAND_SHOW_EXTENSIONS"
}, {
commandName: "COMMAND_SHOW_PLUGINS"
}, {
name: "---"
}, Object.assign({
iconName: "menu_capture",
items: [Object.assign({
commandName: "COMMAND_CAPTURE_PAGE_TO_DISK"
}, D("Page To Disk")), Object.assign({
commandName: "COMMAND_CAPTURE_PAGE_TO_CLIPBOARD"
}, D("Page To Clipboard")), {
name: "---"
}, Object.assign({
commandName: "COMMAND_CAPTURE_AREA_TO_DISK"
}, D("Area To Disk")), Object.assign({
commandName: "COMMAND_CAPTURE_AREA_TO_CLIPBOARD"
}, D("Area To Clipboard"))]
}, D("Capture")), {
name: "---"
}, {
commandName: "COMMAND_SHOW_CLEAR_PRIVATE_DATA",
ellipsis: !0
}, {
name: "---"
}, {
commandName: "COMMAND_TASK_MANAGER"
}, {
commandName: "COMMAND_DEVELOPER_TOOLS"
}]
}, D("Tools")), Object.assign({
tag: R,
items: [Object.assign({
commandName: "COMMAND_FULLSCREEN"
}, D("Go Fullscreen")), {
name: "---"
}]
}, D("win_linux", "Window")), Object.assign({
items: [{
commandName: "COMMAND_SHOW_HELP"
}, {
commandName: "COMMAND_SHOW_KEYBOARDSHORTCUTS",
ellipsis: !0
}, {
commandName: "COMMAND_SHOW_WELCOME"
}, {
commandName: "COMMAND_SHOW_COMMUNITY"
}, {
name: "---"
}, {
commandName: "COMMAND_CHECK_FOR_UPDATES",
ellipsis: !0,
platform: ["win"]
}, {
name: "---"
}, {
commandName: "COMMAND_SHOW_ABOUT",
iconName: "menu_vivaldi"
}]
}, D("win_linux", "Help"))],
G = [{
name: L("Vivaldi"),
tag: 44002,
items: [{
commandName: "COMMAND_SHOW_ABOUT",
tag: 54017
}, {
name: "---"
}, {
commandName: "COMMAND_SHOW_SETTINGS",
tag: 54014,
name: L("Preferences...")
}, {
name: "---"
}, {
commandName: "COMMAND_CHECK_FOR_UPDATES",
ellipsis: !0,
tag: 54022
}, {
name: "---"
}, {
commandName: "COMMAND_HIDE_VIVALDI",
tag: 44003,
name: L("Hide $1", ["Vivaldi"]),
shortcut: "cmd+h"
}, {
commandName: "COMMAND_HIDE_OTHERS",
tag: 54026,
name: L("Hide Others"),
shortcut: "cmd+alt+h"
}, {
name: "---"
}, {
commandName: "COMMAND_EXIT",
tag: 34031
}]
}, {
name: L("mac", "File"),
tag: 44001,
items: [{
commandName: "COMMAND_NEW_TAB",
tag: 54001
}, {
commandName: "COMMAND_NEW_WINDOW",
tag: 54002
}, {
commandName: "COMMAND_NEW_PRIVATE_WINDOW",
tag: 54031
}, {
commandName: "COMMAND_OPEN_PAGE",
ellipsis: !0,
tag: 54033
}, {
commandName: "COMMAND_FOCUS_ADDRESSFIELD",
ellipsis: !0,
tag: 54047,
name: L("Open Location...")
}, {
name: "---"
}, {
commandName: "COMMAND_CLOSE_TAB",
tag: 54034
}, {
commandName: "COMMAND_CLOSE_WINDOW",
tag: 54041
}, {
commandName: "COMMAND_SAVE_PAGE",
ellipsis: !0,
tag: 54019
}, {
name: "---"
}, {
commandName: "COMMAND_IMPORT_DATA",
ellipsis: !0,
tag: 54003
}, {
commandName: "COMMAND_EXPORT_DATA",
ellipsis: !0,
tag: 54038
}, {
name: "---"
}, {
commandName: "COMMAND_OPEN_SESSION",
ellipsis: !0,
tag: 54044
}, {
commandName: "COMMAND_SAVE_SESSION",
ellipsis: !0,
tag: 54045
}, {
name: "---"
}, {
commandName: "COMMAND_PRINT_PAGE",
ellipsis: !0,
tag: 54004
}]
}, {
name: L("noun_mac", "Edit"),
tag: 36004,
items: [{
commandName: "COMMAND_CLIPBOARD_UNDO",
tag: 50144,
shortcut: "cmd+z"
}, {
commandName: "COMMAND_CLIPBOARD_REDO",
tag: 50145,
shortcut: "shift+cmd+z"
}, {
name: "---"
}, {
commandName: "COMMAND_CLIPBOARD_CUT",
tag: 50141,
shortcut: "cmd+x"
}, {
commandName: "COMMAND_CLIPBOARD_COPY",
tag: 50140,
shortcut: "cmd+c"
}, {
commandName: "COMMAND_CLIPBOARD_PASTE",
tag: 50142,
shortcut: "cmd+v"
}, {
commandName: "COMMAND_CLIPBOARD_PASTE_AS_PLAIN_TEXT_OR_PASTE_AND_GO",
tag: 54027
}, {
commandName: "COMMAND_DELETE",
tag: 50143,
name: L("text_mac", "Delete")
}, {
commandName: "COMMAND_CLIPBOARD_SELECT_ALL",
tag: 50146,
shortcut: "cmd+a"
}, {
name: "---"
}, {
commandName: "COMMAND_FIND_IN_PAGE",
tag: 54006
}]
}, {
name: L("mac", "View"),
tag: 54901,
items: [{
commandName: "COMMAND_SHOW_BOOKMARK_BAR",
tag: 54025
}, {
commandName: "COMMAND_TOGGLE_FOOTER",
tag: 54009
}, {
commandName: "COMMAND_TOGGLE_PANEL",
tag: 54008
}, {
name: "---"
}, {
commandName: "COMMAND_SHOW_BOOKMARK_PANEL",
tag: 54010
}, {
commandName: "COMMAND_SHOW_MAIL_PANEL",
tag: 54011,
testVisibility: b.isMailWindow
}, {
commandName: "COMMAND_SHOW_CONTACTS_PANEL",
tag: 54012,
testVisibility: b.isMailWindow
}, {
commandName: "COMMAND_SHOW_DOWNLOADS_PANEL",
tag: 54013
}, {
commandName: "COMMAND_SHOW_NOTES_PANEL",
tag: 54020
}, {
name: "---"
}, {
commandName: "COMMAND_MAIN_ZOOM_IN",
tag: 54035
}, {
commandName: "COMMAND_MAIN_ZOOM_OUT",
tag: 54036
}, {
commandName: "COMMAND_MAIN_ZOOM_RESET",
tag: 54037
}, {
name: "---"
}, {
commandName: "COMMAND_FULLSCREEN",
tag: 54016,
name: L("Full Screen")
}]
}, {
name: L("Tools"),
tag: 54902,
items: [{
commandName: "COMMAND_SHOW_QUICK_COMMANDS",
ellipsis: !0,
tag: 54015
}, {
name: "---"
}, {
commandName: "COMMAND_SHOW_BOOKMARKS",
tag: 54039
}, {
commandName: "COMMAND_SHOW_HISTORY",
tag: 54040
}, {
commandName: "COMMAND_SHOW_EXTENSIONS",
tag: 54029
}, {
commandName: "COMMAND_SHOW_PLUGINS",
tag: 54024
}, {
name: "---"
}, {
name: L("Capture"),
items: [{
commandName: "COMMAND_CAPTURE_PAGE_TO_DISK",
name: L("Page To Disk"),
tag: 54049
}, {
commandName: "COMMAND_CAPTURE_PAGE_TO_CLIPBOARD",
name: L("Page To Clipboard"),
tag: 54050
}, {
name: "---"
}, {
commandName: "COMMAND_CAPTURE_AREA_TO_DISK",
name: L("Area To Disk"),
tag: 54051
}, {
commandName: "COMMAND_CAPTURE_AREA_TO_CLIPBOARD",
name: L("Area To Clipboard"),
tag: 54052
}]
}, {
name: "---"
}, {
commandName: "COMMAND_SHOW_CLEAR_PRIVATE_DATA",
ellipsis: !0,
tag: 54030
}, {
name: "---"
}, {
commandName: "COMMAND_TASK_MANAGER",
tag: 54021
}, {
commandName: "COMMAND_DEVELOPER_TOOLS",
tag: 54023
}]
}, {
name: L("mac", "Window"),
tag: R,
items: [{
commandName: "COMMAND_MINIMIZE",
tag: 34046,
name: L("Minimize"),
shortcut: "cmd+m"
}, {
commandName: "COMMAND_MAC_ZOOM",
tag: 34047,
name: L("Zoom")
}, {
name: "---"
}, {
commandName: "COMMAND_MAC_ALL_TO_FRONT",
tag: 34048,
name: L("Bring All to Front")
}, {
name: "---",
tag: 55555
}]
}, {
name: L("mac", "Help"),
tag: 54903,
items: [{
commandName: "COMMAND_SHOW_HELP",
tag: 54042
}, {
commandName: "COMMAND_SHOW_KEYBOARDSHORTCUTS",
ellipsis: !0,
tag: 54028
}, {
name: "---"
}, {
commandName: "COMMAND_SHOW_WELCOME",
tag: 54046
}, {
commandName: "COMMAND_SHOW_COMMUNITY",
tag: 54018
}]
}],
K = {
54001: "COMMAND_NEW_TAB",
54002: "COMMAND_NEW_WINDOW",
54003: "COMMAND_IMPORT_DATA",
54004: "COMMAND_PRINT_PAGE",
54005: "COMMAND_EXIT",
54006: "COMMAND_FIND_IN_PAGE",
54007: "COMMAND_TOGGLE_MENU_POSITION",
54008: "COMMAND_TOGGLE_PANEL",
54009: "COMMAND_TOGGLE_FOOTER",
54010: "COMMAND_SHOW_BOOKMARK_PANEL",
54011: "COMMAND_SHOW_MAIL_PANEL",
54012: "COMMAND_SHOW_CONTACTS_PANEL",
54013: "COMMAND_SHOW_DOWNLOADS_PANEL",
54014: "COMMAND_SHOW_SETTINGS",
54015: "COMMAND_SHOW_QUICK_COMMANDS",
54016: "COMMAND_FULLSCREEN",
54017: "COMMAND_SHOW_ABOUT",
54018: "COMMAND_SHOW_COMMUNITY",
54019: "COMMAND_SAVE_PAGE",
54020: "COMMAND_SHOW_NOTES_PANEL",
54021: "COMMAND_TASK_MANAGER",
54022: "COMMAND_CHECK_FOR_UPDATES",
54023: "COMMAND_DEVELOPER_TOOLS",
54024: "COMMAND_SHOW_PLUGINS",
54025: "COMMAND_SHOW_BOOKMARK_BAR",
54027: "COMMAND_CLIPBOARD_PASTE_AS_PLAIN_TEXT_OR_PASTE_AND_GO",
54028: "COMMAND_SHOW_KEYBOARDSHORTCUTS",
54029: "COMMAND_SHOW_EXTENSIONS",
54030: "COMMAND_SHOW_CLEAR_PRIVATE_DATA",
54031: "COMMAND_NEW_PRIVATE_WINDOW",
54033: "COMMAND_OPEN_PAGE",
54034: "COMMAND_CLOSE_TAB",
54035: "COMMAND_MAIN_ZOOM_IN",
54036: "COMMAND_MAIN_ZOOM_OUT",
54037: "COMMAND_MAIN_ZOOM_RESET",
54038: "COMMAND_EXPORT_DATA",
54039: "COMMAND_SHOW_BOOKMARKS",
54040: "COMMAND_SHOW_HISTORY",
54041: "COMMAND_CLOSE_WINDOW",
54042: "COMMAND_SHOW_HELP",
54044: "COMMAND_OPEN_SESSION",
54045: "COMMAND_SAVE_SESSION",
54046: "COMMAND_SHOW_WELCOME",
54047: "COMMAND_FOCUS_ADDRESSFIELD",
54048: "COMMAND_CLIPBOARD_PASTE_AS_NOTE",
54049: "COMMAND_CAPTURE_PAGE_TO_DISK",
54050: "COMMAND_CAPTURE_PAGE_TO_CLIPBOARD",
54051: "COMMAND_CAPTURE_AREA_TO_DISK",
54052: "COMMAND_CAPTURE_AREA_TO_CLIPBOARD"
},
j = {},
z = Object.assign({}, A.prototype, {
_getCommandsByType: function(e) {
var t = {};
for (var n in j)
if (void 0 !== j[n])
for (var i = j[n], a = 0; a < V.length; a++)
if (V[a].name === n && i.hasOwnProperty(e)) {
var r = i[e];
if (r)
for (var s = 0; s < r.length; s++) t[r[s]] = {
function: c(V[a].action, V[a].param),
label: V[a].gestureLabel || V[a].label
}
}
return t
},
getMenuItems: function() {
return "MacIntel" === navigator.platform ? G : W
},
getIconByName: function(e) {
for (var t = 0; t < F.length; t++)
if (e === F[t].name) return F[t].icon
},
getCommandShortcuts: function() {
return this._getCommandsByType("shortcut")
},
getCommandsGestures: function() {
return this._getCommandsByType("gestures")
},
getCommands: function() {
return V
},
getQuickCommands: function() {
return V.filter(function(e) {
if ("function" == typeof e.showInQC && !e.showInQC()) return !1;
for (var t in j)
if (void 0 !== j[t]) {
var n = j[t];
if (e.name === t) return n.hasOwnProperty("shortcut") && (e.shortcut = n.shortcut), n.showInQC === !0
}
return !1
}.bind(this))
},
getAllCommands: function() {
return V.filter(function(e) {
for (var t in j)
if (void 0 !== j[t]) {
var n = j[t];
if (e.name === t) return n.hasOwnProperty("shortcut") && (e.shortcut = n.shortcut), n.hasOwnProperty("gestures") && (e.gestures = n.gestures), n.hasOwnProperty("showInQC") && (e.showInQC = n.showInQC), !0
}
})
},
getFunction: function(e, t) {
return function() {
e.apply(null, t)
}
},
getVerticalMenu: function(e) {
return this._getMenu(e)
},
getHorizontalMenu: function(e) {
return this._getMenu(e)
},
getHandlerFromChromeId: function(e, t) {
var n;
if (54043 === e) {
var i = parseInt(t),
a = g.getPages().find(function(e) {
return e.get("id") === i
});
a && (n = c(f.openPage, a))
}
return n
},
getOpenTabsMenuList: function(e) {
var t = [];
return e.forEach(function(e) {
t.push({
handler: c(f.openPage, e),
name: M.getDisplayTitle(e),
tag: 54043,
url: e.get("url"),
parameter: e.get("id").toString(),
emphasized: e.get("active"),
mnemonic: !1
})
}), t
},
_getMenu: function(e) {
function t(e) {
if (e.commandName) {
for (var n = 0, i = V.length; n < i; n++)
if (V[n].name === e.commandName) {
e.handler = c(V[n].action, V[n].param), e.name || (e.name = e.label ? e.label : V[n].label), e.englishName || (e.englishName = V[n].labelEnglish);
break
}
} else e.name || (e.name = e.label), e.englishName || (e.englishName = e.labelEnglish);
e.items && e.items.forEach(function(e) {
t(e)
})
}
x || (this._initializeCheckmarks(z.getMenuItems()), x = !0);
var n = O(this.getMenuItems());
if (n.forEach(function(e) {
t(e)
}), e) {
var i = this._getMenuElementById(n, R);
if (void 0 !== i && i.items) {
var a = this.getOpenTabsMenuList(e);
a.forEach(function(e) {
i.items.push(e)
})
}
}
return this._pruneOtherPlatforms(n, w()), n
},
_isChecked: function(e) {
return e === !0 || "top" === e || "on" === e
},
_initializeCheckmarks: function(e) {
for (var t = e.length - 1; t >= 0; t--) {
var n = e[t];
n.items ? this._initializeCheckmarks(n.items) : n.setting ? (C.get(n.setting, function(e, t) {
e.checked = this._isChecked(t)
}.bind(this, n)), C.addListener(n.setting, function(e, t, n) {
e.checked = this._isChecked(n), z.emitChange()
}.bind(this, n))) : n.panelState && "SHOW_PANEL" === n.panelState && (n.checked = b.getPanelButtonsVisible(), b.addChangeListener(function() {
this.checked !== b.getPanelButtonsVisible() && (this.checked = b.getPanelButtonsVisible(), z.emitChange())
}.bind(n)))
}
},
_getMenuElementById: function(e, t) {
for (var n, i = 0; i < e.length; i++) {
var a = e[i];
if (void 0 !== a.tag && a.tag === t) {
n = a;
break
}
if (a.items && (n = this._getMenuElementById(a.items, t), void 0 !== n)) break
}
return n
},
_pruneOtherPlatforms: function(e, t) {
for (var n = 0; n < e.length;) {
var i = e[n];
void 0 !== i.platform && Array.isArray(i.platform) && i && i.platform && i.platform.indexOf(t) === -1 ? e.splice(n, 1) : (i.items && this._pruneOtherPlatforms(i.items, t), n++)
}
},
chromeIdToCommand: function(e) {
return K[e]
},
emitChange: function() {
this.emit(P)
},
addChangeListener: function(e) {
this.on(P, e)
},
removeChangeListener: function(e) {
this.removeListener(P, e)
},
getUserEditableCommands: function() {
return this.getAllCommands().filter(function(e) {
return e.notEditable !== !0
})
},
getUserEditableCommandsList: function() {
return V.filter(function(e) {
return e.customizable === !0
}).map(function(e) {
return e.name
})
}
});
T.register(function(e) {
var t = e.action;
switch (t.actionType) {
case y.COMMAND_LOAD_ICONS:
a(t.resolve);
break;
case y.COMMAND_SET_CONFIGURATION:
o(t.commands), i();
break;
case y.COMMAND_UPDATE_SINGLE_COMMAND:
l(t.commandKey, t.commandValue), i(), z.emitChange();
break;
default:
return !0
}
}), e.exports = z
}, , function(e, t, n) {
// =========================
// Function_54
// =========================
"use strict";
var i = n(40),
a = n(51),
r = n(17),
s = n(8),
o = n(6),
l = n(3),
c = n(2),
u = n(4),
A = n(44),
d = n(27),
h = d.List,
m = n(20),
p = m.urls,
f = n(108),
g = f.PLACEHOLDER_URL,
_ = !1,
v = {
loadPromise: function() {
return new Promise(function(e, t) {
u.bookmarks.getTree(function(t) {
var n = l.getSync("BOOKMARKS_BAR_FOLDER_IDS")[0];
s.handleViewAction({
actionType: o.BOOKMARKS_LOAD_ALL,
bookmarks: t,
bookmarksBarFolderId: n
}), e()
})
})
},
setBookmarkBarFolderAndToggleVisibility: function(e) {
l.get(["BOOKMARK_BAR_VISIBLE", "BOOKMARKS_BAR_FOLDER_IDS"], function(t) {
t.BOOKMARKS_BAR_FOLDER_IDS[0] === e ? l.set({
BOOKMARK_BAR_VISIBLE: !t.BOOKMARK_BAR_VISIBLE
}) : l.set({
BOOKMARKS_BAR_FOLDER_IDS: [e],
BOOKMARK_BAR_VISIBLE: !0
})
})
},
setBookmarkBarFolderAndShow: function(e) {
l.get(["BOOKMARK_BAR_VISIBLE", "BOOKMARKS_BAR_FOLDER_IDS"], function(t) {
t.BOOKMARKS_BAR_FOLDER_IDS[0] === e ? l.set({
BOOKMARK_BAR_VISIBLE: !0
}) : l.set({
BOOKMARKS_BAR_FOLDER_IDS: [e],
BOOKMARK_BAR_VISIBLE: !0
})
})
},
setBookmarkBarFolder: function(e) {
a.validateAsBookmarkBarFolder(e) && l.set({
BOOKMARKS_BAR_FOLDER_IDS: [e]
})
},
_onKeyPressed: function(e) {
"Escape" === e.key && v.setCutIds([])
},
setCutIds: function(e) {
e.length > 0 ? window.addEventListener("keydown", v._onKeyPressed, !0) : window.removeEventListener("keydown", v._onKeyPressed, !0), s.handleViewAction({
actionType: o.BOOKMARKS_SET_CUT_IDS,
ids: e
})
},
copyBookmarks: function(e, t, n) {
var i = e.map(function(e) {
return a.getItemById(e)
}).filter(function(e) {
return e && !e.trash
}),
r = function e(t, n, i) {
return Promise.all(t.map(function(t) {
return new Promise(function(a, r) {
u.bookmarks.create({
parentId: n,
index: i++,
title: t.title,
url: t.url ? t.url : null,
description: t.description ? t.description : null,
nickname: t.nickname ? t.nickname : null
}, function(n) {
u.runtime.lastError && console.warn("chrome.bookmarks.create failed: %o", u.runtime.lastError), n ? t.children && t.children.length >= 0 ? e(t.children, n.id, 0).then(function() {
a(n)
}) : a(n) : r("Bookmark was not created")
})
})
}))
};
return v.disableBookmarkMutationHandlers(), r(i, t, n).then(function(e) {
return v.enableBookmarkMutationHandlers(), v.loadPromise(), e
})
},
moveBookmarksPromise: function(e, t, n, i) {
return e = e.filter(function(e) {
var t = a.getItemById(e);
return t.id && !t.trash
}), v.disableBookmarkMutationHandlers(), Promise.all(e.map(function(e) {
return new Promise(function(i) {
var a = {
parentId: t,
index: n++
};
u.bookmarks.move(e, a, function(e) {
i(e.id)
})
})
})).then(function(e) {
return v.enableBookmarkMutationHandlers(), v.loadPromise(), i && i(), e
})
},
createBookmark: function(e, t, n, i, a, r, s) {
u.bookmarks.create({
title: e,
url: t,
parentId: n,
description: i,
nickname: a,
index: r
}, function(e) {
u.runtime.lastError && console.warn("chrome.bookmarks.create failed: %o", u.runtime.lastError),
s && s(e)
})
},
createBookmarksPromise: function(e) {
var t = this,
n = !1,
i = function(e) {
return !!(e.children && e.children.length > 0)
},
a = function(e) {
return Promise.all(e.map(function(e) {
return n = n || e.isNew, new Promise(function(n, a) {
t.createBookmark(e.title, e.url || (e.children ? null : g), e.parentId.toString(), e.description || null, e.nickname || null, e.index, function(r) {
if (!r) return void a("Bookmark was not created");
if (i(e)) {
var s = !0,
o = !1,
l = void 0;
try {
for (var c, u = e.children[Symbol.iterator](); !(s = (c = u.next()).done); s = !0) {
var A = c.value;
A.parentId = r.id
}
} catch (e) {
o = !0, l = e
} finally {
try {
!s && u.return && u.return()
} finally {
if (o) throw l
}
}
t.createBookmarksPromise(e.children).then(function() {
n(r)
})
} else n(r)
})
})
}))
};
return v.disableBookmarkMutationHandlers(), a(e).then(function(e) {
return v.enableBookmarkMutationHandlers(), {
isNew: n,
nodes: e
}
})
},
createBookmarks: function(e, t, n) {
v.disableBookmarkMutationHandlers(), Promise.all(e.map(function(e) {
return new Promise(function(i) {
var a = {
parentId: t,
url: e.url,
title: e.title,
index: n++
};
u.bookmarks.create(a, function() {
i()
})
})
})), v.enableBookmarkMutationHandlers(), v.loadPromise()
},
removeBookmark: function(e, t) {
var n = e.children && e.children.length >= 0;
n ? u.bookmarks.removeTree(e.id, function() {
t && t()
}) : u.bookmarks.remove(e.id, function() {
u.runtime.lastError && console.warn("Error removing bookmark folder: " + e.id), t && t()
})
},
bookmarkAllOpenPages: function(e) {
var t = {
pages: r.getPages(),
parentId: e,
isStack: !1,
isSelection: !1,
forceFolder: !0
};
this._bookmarkPages(t)
},
bookmarkPages: function(e, t, n) {
var i = h.isList(e) || Array.isArray(e),
a = {
pages: i ? h(e) : h.of(e),
parentId: n,
isStack: t,
isSelection: !0,
forceFolder: i
};
this._bookmarkPages(a)
},
bookmarkPageInFolder: function(e, t) {
var n = e.get("url");
if (a.canBookmarkUrl(n)) {
var i = void 0 === t ? a.getRootNode().id : t;
u.bookmarks.create({
parentId: i,
url: n,
title: p.getDisplayTitle(e)
})
}
},
_bookmarkPages: function(e) {
var t = r.getTabs(!1, e.pages).map(function(e) {
return {
page: e.pages ? void 0 : e.page,
url: e.pages ? void 0 : e.page.get("url"),
title: e.pages ? c("Stack") : p.getDisplayTitle(e.page),
children: e.pages ? e.pages.map(function(e) {
return {
page: e,
url: e.get("url"),
title: p.getDisplayTitle(e)
}
}).filter(function(e) {
return a.canBookmarkUrl(e.url)
}).toArray() : void 0
}
}).filter(function(e) {
return e.children || a.canBookmarkUrl(e.url)
}).toArray();
if (1 !== t.length || e.forceFolder) {
if (t.length >= 1)
if (e.isStack) t.forEach(function(t) {
if (t.children && t.children.length > 0) {
var n = {
parentId: e.parentId,
title: t.title
};
u.bookmarks.create(n, function(e) {
v.createBookmarks(t.children, e.id, 0)
})
}
});
else {
var n = {
parentId: e.parentId,
title: e.isSelection ? c("Saved Tab Selection ($1)", [""]) : c("Saved Tabs ($1)1", [""])
};
u.bookmarks.create(n, function(n) {
var i = A(n.dateAdded).format("YYYY-MM-DD, HH:mm:ss"),
a = e.isSelection ? c("Saved Tab Selection ($1)", [i]) : c("Saved Tabs ($1)", [i]);
u.bookmarks.update(n.id, {
title: a
}, function() {
t.forEach(function(e) {
if (e.children && e.children.length > 0) {
var t = {
parentId: n.id,
title: e.title
};
u.bookmarks.create(t, function(t) {
v.createBookmarks(e.children, t.id, 0)
})
} else if (!e.children) {
var i = {
parentId: n.id,
title: e.title,
url: e.url
};
u.bookmarks.create(i)
}
})
})
})
}
} else ! function() {
var n = t[0];
if (n.children && n.children.length > 0) {
var i = {
parentId: e.parentId,
title: n.title
};
u.bookmarks.create(i, function(e) {
v.createBookmarks(n.children, e.id, 0)
})
} else n.children || v.bookmarkPageInFolder(n.page, e.parentId)
}()
},
_setClipboard: function(e, t, n) {
var r = [];
t = a.validateForClipboard(t), t.forEach(function(e) {
var t = a.getItemById(e);
t && r.push(t)
});
var s = [],
o = [],
l = function e(t) {
var n = !0,
i = !1,
a = void 0;
try {
for (var l, c = r[Symbol.iterator](); !(n = (l = c.next()).done); n = !0) {
var u = l.value;
if (t.id === u.id) {
o.push(t), s.push(t.url || t.title);
break
}
}
} catch (e) {
i = !0, a = e
} finally {
try {
!n && c.return && c.return()
} finally {
if (i) throw a
}
}
t.children && t.children.forEach(e)
};
r.forEach(l), e.clipboardData.setData("isCut", n), e.clipboardData.setData("mimeType", i.getMimeType()), e.clipboardData.setData("text/plain", s.join("\n")), e.clipboardData.setData("application/json", JSON.stringify(o))
},
cut: function(e, t) {
v._setClipboard(e, t, "true"), v.setCutIds(t), e.stopPropagation(), e.preventDefault()
},
copy: function(e, t) {
v._setClipboard(e, t, "false"), e.stopPropagation(), e.preventDefault()
},
pastePromise: function(e, t, n) {
var r = a.getItemById(t);
if (!r) return Promise.resolve({
isCut: !1,
ids: []
});
var s = void 0,
o = void 0;
a.isFolder(r) ? (s = r.id, o = n === !0 && r.children ? r.children.length : 0, o > 0 && r.children[o - 1].trash && o--) : (s = r.parentId, o = r.index);
var l = e.clipboardData.getData("mimeType");
if (l !== i.getMimeType()) return Promise.resolve({
isCut: !1,
ids: []
});
var c = [];
try {
c = JSON.parse(e.clipboardData.getData("application/json"))
} catch (e) {}
var u = a.getCutIds().length > 0;
if (u && "true" === e.clipboardData.getData("isCut")) {
var A = c.map(function(e) {
return e.id
});
return v.moveBookmarksPromise(A, s, o).then(function(e) {
return v.setCutIds([]), {
isCut: !0,
ids: e
}
})
}
return c.forEach(function(e) {
e.parentId = s, e.index = o++
}), v.createBookmarksPromise(c).then(function(e) {
return {
isCut: !1,
ids: e.nodes.map(function(e) {
return e.id
})
}
})
},
disableBookmarkMutationHandlers: function() {
_ = !0
},
enableBookmarkMutationHandlers: function() {
_ = !1, v.loadPromise()
}
};
l.addListener("BOOKMARKS_BAR_FOLDER_IDS", function(e, t, n) {
s.handleViewAction({
actionType: o.BOOKMARKS_SET_BOOKMARK_BAR_FOLDER,
folderId: t[0]
})
}), u.bookmarks.onImportBegan.addListener(v.disableBookmarkMutationHandlers), u.bookmarks.onImportEnded.addListener(v.enableBookmarkMutationHandlers);
var b = {
onChanged: o.CHROME_BOOKMARKS_CHANGED,
onCreated: o.CHROME_BOOKMARKS_CREATED,
onRemoved: o.CHROME_BOOKMARKS_REMOVED,
onMoved: o.CHROME_BOOKMARKS_MOVED,
onChildrenReordered: o.CHROME_BOOKMARKS_REORDERED
};
Object.keys(b).forEach(function(e) {
return u.bookmarks[e].addListener(function() {
_ || v.loadPromise()
})
}), e.exports = v
}, function(e, t, n) {
// =========================
// Function_55
// =========================
"use strict";
var i = n(8),
a = n(6),
r = n(87),
s = void 0,
o = {
doAction: function(e, t) {
s = n(17), i.handleViewAction({
actionType: a.WEBPAGEVIEW_ACTIONS,
action: e,
page: s.getActivePage(),
modifiers: t ? t : {}
})
},
findInPage: function(e, t, n, i) {
var a = {
findNext: !1,
matchCase: n || !1
};
i && i.find(t, a, this._findCallback.bind(this, e, t, n))
},
findNextInPage: function(e, t, n, i, a) {
var r = {
backward: n || !1,
findNext: !0,
matchCase: i || !1
};
a && a.find(t, r, this._findCallback.bind(this, e, t, i))
},
_findCallback: function(e, t, n, r) {
r.canceled !== !0 && i.handleViewAction(Object.assign({
actionType: a.FIND_IN_PAGE_RESULT_ACTION,
matchCase: n,
page: e,
searchText: t
}, r))
},
showFindInPageToolbar: function(e) {
i.handleViewAction({
actionType: a.SHOW_FIND_IN_PAGE_ACTION,
page: e
})
},
closeFindInPageToolbar: function(e) {
r.isFindInPageOpen(e) === !0 && i.handleViewAction({
actionType: a.CLOSE_FIND_IN_PAGE_ACTION,
page: e
})
},
go: function(e) {
i.handleViewAction({
actionType: a.PAGE_GO,
index: e ? e : 0
})
},
back: function() {
i.handleViewAction({
actionType: a.PAGE_BACK
})
},
forward: function() {
i.handleViewAction({
actionType: a.PAGE_FORWARD
})
},
stop: function() {
i.handleViewAction({
actionType: a.PAGE_STOP
})
},
reload: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
i.handleViewAction({
actionType: a.PAGE_RELOAD,
bypassCache: e
})
},
updated: function(e) {
i.handleViewAction({
actionType: a.PAGE_UPDATED,
page: e
})
}
};
e.exports = o
}, , , function(e, t, n) {
// =========================
// Function_58
// =========================
"use strict";
function i(e) {
"REG_PANEL_LIST" === e && (Q = C.isEnabled(C.kNewHistoryPage) ? [{
id: L,
format: M,
available: !1,
forMailOnly: !1,
width: -1,
resizeable: !1
}, {
id: P,
available: !0,
forMailOnly: !1,
width: -1,
resizeable: !1
}, {
id: R,
available: !0,
forMailOnly: !0,
width: -1,
resizeable: !1
}, {
id: x,
available: !0,
forMailOnly: !0,
width: -1,
resizeable: !1
}, {
id: B,
available: !0,
forMailOnly: !1,
width: -1,
resizeable: !1
}, {
id: U,
available: !0,
forMailOnly: !1,
width: -1,
resizeable: !1
}, {
id: F,
available: !0,
forMailOnly: !1,
width: -1,
resizeable: !1
}] : [{
id: L,
format: M,
available: !1,
forMailOnly: !1,
width: -1,
resizeable: !1
}, {
id: P,
available: !0,
forMailOnly: !1,
width: -1,
resizeable: !1
}, {
id: R,
available: !0,
forMailOnly: !0,
width: -1,
resizeable: !1
}, {
id: x,
available: !0,
forMailOnly: !0,
width: -1,
resizeable: !1
}, {
id: B,
available: !0,
forMailOnly: !1,
width: -1,
resizeable: !1
}, {
id: U,
available: !0,
forMailOnly: !1,
width: -1,
resizeable: !1
}])
}
function a() {
var e = {};
e.barVisible = W, e.selectedPanel = H, e.width = K, e.panelVisible = V, E.set({
PANEL_STATE: e
}), T(O, {
SHOW_PANEL: e.barVisible,
SELECTED_PANEL: e.selectedPanel,
PANEL_WIDTH: e.width,
SHOW_PANEL_CONTENT: e.panelVisible
})
}
function r(e, t) {
A(e, t), Z.getResizableByPanel(e) !== !0 && (K = t), a()
}
function s(e) {
return !!Z.getPanelAvailable(e) && !!(e !== Z.getMailName() && e !== Z.getContactName() || Z.getIsMailWindow())
}
function o(e, t, n) {
var i = S.getIndexByShortcut(e);
i !== -1 && void 0 !== J && i >= 1 && J.length >= i && (e = J[i - 1].id), V === t && H === e || s(e) && (W = !0, K = 0 === K ? w : K, V = t, V === !0 && (H = e, j = n), a())
}
function l(e) {
var t = S.getIndexByShortcut(e);
t !== -1 && void 0 !== J && t >= 1 && J.length >= t && (e = J[t - 1].id), s(e) && (W = !0, K = 0 === K ? w : K, e === H ? V = !V : (H = e, V = !0), V && (j = m), a())
}
function c(e, t) {
if (Z.getIsWebPanel(e)) {
S.setAvailable(e, t);
for (var n = 0; n < J.length; n++) {
var i = J[n];
if (i.id === e && i.available !== t) {
i.available = t, E.set({
WEB_PANEL_LIST: J
});
break
}
}
} else
for (var a = 0; a < Q.length; a++) {
var r = Q[a];
if (r.id === e && r.available !== t) {
r.available = t, E.set({
REG_PANEL_LIST: Q
});
break
}
}
}
function u(e, t) {
if (Z.getIsWebPanel(e))
for (var n = 0; n < J.length; n++) {
var i = J[n];
if (i.id === e && i.resizable !== t) {
i.resizable = t, i.width = -1, E.set({
WEB_PANEL_LIST: J
});
break
}
} else
for (var a = 0; a < Q.length; a++) {
var r = Q[a];
if (r.id === e && r.resizable !== t) {
r.resizable = t, r.resizable || (r.width = -1), E.set({
REG_PANEL_LIST: Q
});
break
}
}
}
function A(e, t) {
if (Z.getIsWebPanel(e))
for (var n = 0; n < J.length; n++) {
var i = J[n];
if (i.id === e && i.width !== t) {
i.width = t, E.set({
WEB_PANEL_LIST: J
});
break
}
} else
for (var a = 0; a < Q.length; a++) {
var r = Q[a];
if (r.id === e && r.width !== t) {
r.width = t, E.set({
REG_PANEL_LIST: Q
});
break
}
}
}
function d() {
V === !1 ? W ? (H = "", W = !1) : (W = !0, H && l(H)) : (K = 0 === K ? w : K, W = !W, V = !V), a()
}
function h(e) {
e ? (W = !0, V = !0, H || (H = Z.getDefaultPanel())) : V = !1, a()
}
function m() {
V === !1 ? (j = !0, h(!0)) : Z.emitChange("setFocus")
}
function p(e) {
var t = this;
V === !1 ? m() : ! function() {
var n = Z.getWebPanels(),
i = [];
if (Z.getPanelAvailable(P) && i.push(P), Z.getPanelAvailable(R) && Z.getIsMailWindow() && i.push(R), Z.getPanelAvailable(x) && Z.getIsMailWindow() && i.push(x), Z.getPanelAvailable(B) && i.push(B), Z.getPanelAvailable(U) && i.push(U), Z.getPanelAvailable(F) && i.push(F), void 0 !== n && n.forEach(function(e) {
e.available && i.push(e.id)
}), H) {
for (var a = 0; a < i.length; a++)
if (i[a] === H) {
a += "next" === e ? 1 : -1, a < 0 ? a = i.length - 1 : a >= i.length && (a = 0), H !== i[a] && l(i[a]);
break
}
} else {
var r = Z.getFirstAvailablePanel();
void 0 !== r && l(t.getDefaultPanel())
}
Z.emitChange("")
}()
}
function f(e) {
W = void 0 !== e.showButtons ? e.showButtons : W, V = void 0 !== e.showContent ? e.showContent : V, K = void 0 !== e.width ? e.width : K, H = void 0 !== e.selectedPanel ? e.selectedPanel : H, s(H) || (H = Z.getFirstAvailablePanel(), H || (V = !1))
}
function g(e, t, n) {
if ("WEB_PANEL_LIST" === e) {
var i = Z.getSelectedWebPanelIndex(),
a = J.length;
if (J = y.clone(t), J.length > a) n || Y !== O || l(J[J.length - 1].id);
else if (J.length < a && void 0 !== i) {
var r = void 0;
Z.getAvailablePanelCount() > 0 && (r = void 0 === Z.getSelectedWebPanelIndex() ? i >= J.length ? 0 === J.length ? Z.getLastAvailablePanel() : J[J.length - 1].id : J[i].id : J[Z.getSelectedWebPanelIndex()].id), void 0 === r ? (H = "", h(!1)) : r !== H && (V ? l(r) : H = r)
}
} else "REG_PANEL_LIST" === e && (t.length > 0 && (t[0].id !== L || t[0].format !== M) ? (Q = y.clone(_(t)), E.set({
REG_PANEL_LIST: Q
})) : Q = y.clone(t), !H || Z.getIsWebPanel(H) || Z.getPanelAvailable(H) || (H = "", h(!1)))
}
function _(e) {
for (var t = y.clone(e), n = [], i = 0; i < Q.length; i++) {
var a = Q[i];
if (i > 0)
for (var r = 0; r < t.length; r++) {
var s = t[r];
if (a.id === s.id) {
void 0 !== s.available && (a.available = s.available), void 0 !== s.forMailOnly && (a.forMailOnly = s.forMailOnly), void 0 !== s.width && (a.width = s.width), void 0 !== s.resizable && (a.resizeable = s.resizeable), t.splice(r, 1);
break
}
}
n.push(a)
}
return n
}
var v = n(18).EventEmitter,
b = n(8),
N = n(6),
E = n(3),
S = n(242),
T = n(399),
y = n(7),
C = n(74),
I = "change",
O = window.vivaldiWindowId,
w = 250,
D = 34,
k = "MacIntel" === navigator.platform ? 6 : 10,
M = "1rev",
L = "format",
P = "bookmarks",
R = "mail",
x = "contacts",
B = "downloads",
U = "notes",
F = "history",
H = "",
V = !1,
W = !0,
G = !1,
K = 0,
j = !1,
z = -1,
Y = -1,
J = [],
Q = [],
Z = Object.assign({}, v.prototype, {
getResizableByPanel: function(e) {
for (var t = 0; t < Q.length; t++)
if (Q[t].id === e) return Q[t].resizable;
for (var n = 0; n < J.length; n++)
if (J[n].id === e) return J[n].resizable;
return !1
},
getWidthByPanel: function(e) {
for (var t = 0; t < Q.length; t++)
if (Q[t].id === e) return Q[t].width;
for (var n = 0; n < J.length; n++)
if (J[n].id === e) return J[n].width;
return -1
},
getPanelAvailable: function(e) {
for (var t = 0; t < Q.length; t++)
if (Q[t].id === e) return Q[t].available !== !1;
for (var n = 0; n < J.length; n++)
if (J[n].id === e) return J[n].available !== !1;
return !1
},
getAvailablePanelCount: function() {
for (var e = 0, t = 0; t < Q.length; t++) Q[t].available !== !1 && e++;
for (var n = 0; n < J.length; n++) J[n].available !== !1 && e++;
return e
},
getFirstAvailablePanel: function() {
for (var e = 0; e < Q.length; e++)
if (Q[e].available !== !1) {
if (Q[e].forMailOnly === !0 && !this.getIsMailWindow()) continue;
return Q[e].id
}
for (var t = 0; t < J.length; t++)
if (J[t].available !== !1) return J[t].id
},
getLastAvailablePanel: function() {
for (var e = J.length - 1; e >= 0; e--)
if (J[e].available !== !1) return J[e].id;
for (var t = Q.length - 1; t >= 0; t--)
if (Q[t].available !== !1) {
if (Q[t].forMailOnly === !0 && !this.getIsMailWindow()) continue;
return Q[t].id
}
},
getIsLastAvailablePanel: function(e) {
for (var t = J.length - 1; t >= 0; t--)
if (J[t].available !== !1) return J[t].id === e;
for (var n = Q.length - 1; n >= 0; n--)
if (Q[n].available !== !1) return Q[n].id === e;
return !0
},
getAvailablePanelByIndex: function(e) {
var t = this.getAvailablePanelCount();
if (e >= t && (e = t - 1), !(e < 0)) {
for (var n = 0, i = 0; i < Q.length; i++)
if (Q[i].available !== !1) {
if (n === e) return Q[i].id;
n++
}
for (var a = 0; a < J.length; a++)
if (J[a].available !== !1) {
if (n === e) return J[a].id;
n++
}
}
},
getRegPanels: function() {
return Q
},
getWebPanels: function() {
return J
},
getIsWebPanel: function(e) {
var t = S.getPanelPrefix();
return e.substr(0, t.length) === t
},
getPanelButtonsVisible: function() {
return W
},
getPanelContentVisible: function() {
return V
},
getPanelSwitchVisible: function() {
return G
},
getSelectedPanel: function() {
return H
},
getIsWebPanelSelected: function() {
var e = void 0;
if (H) {
var t = S.getPanelPrefix();
e = H.substr(0, t.length) === t
}
return e
},
getSelectedWebPanelIndex: function() {
var e = void 0;
if (this.getIsWebPanelSelected())
for (var t = 0; t < J.length; t++) {
var n = J[t];
if (n.id === H) {
e = t;
break
}
}
return e
},
getFocusContent: function() {
return j
},
getPanelWidth: function() {
if (G === !0 && W === !1 && V === !1) return k;
if (G === !0 && W === !0 && V === !1) return D + k;
if (W === !0 && V === !1) return D;
if (W === !0 && V === !0) {
var e = K;
if (Z.getResizableByPanel(H) === !0) {
var t = Z.getWidthByPanel(H);
t > 0 && (e = t)
}
return e <= 0 ? w : e
}
return 0
},
getDefaultPanel: function() {
return P
},
getBookmarkName: function() {
return P
},
getMailName: function() {
return R
},
getContactName: function() {
return x
},
getDownloadName: function() {
return B
},
getNotesName: function() {
return U
},
getHistoryName: function() {
return F
},
getIsMailWindow: function() {
return z === O
},
getIsActiveWindow: function() {
return Y === O
},
emitChange: function(e) {
this.emit(I, e)
},
addChangeListener: function(e) {
this.on(I, e)
},
removeChangeListener: function(e) {
this.removeListener(I, e)
}
});
b.register(function(e) {
var t = e.action;
switch (t.actionType) {
case N.PANEL_RESET_PANELS:
i(t.key);
break;
case N.PANEL_SET_ACTIVE_WINDOW_ID:
Y = t.windowId;
break;
case N.PANEL_SET_AVAILABLE:
c(t.panel, t.available);
break;
case N.PANEL_SET_CONTENT_VISIBLE:
h(t.visible);
break;
case N.PANEL_SET_FOCUS:
m();
break;
case N.PANEL_SET_MAIL_WINDOW_ID:
z = t.windowId;
break;
case N.PANEL_SET_RESIZABLE:
u(t.panel, t.resizable);
break;
case N.PANEL_SET_PANELS:
g(t.key, t.value, null === t.oldValue);
break;
case N.PANEL_SET_STATE:
f(t.state);
break;
case N.PANEL_SET_SWITCHER_VISIBLE:
G = t.visible;
break;
case N.PANEL_SET_WIDTH:
r(t.panel, t.width);
break;
case N.PANEL_SHOW_NEXT:
p(t.DIRECTION);
break;
case N.PANEL_SHOW_CONTENT:
o(t.panel, t.show, t.setFocus);
break;
case N.PANEL_TOGGLE_CONTENT:
l(t.panel);
break;
case N.PANEL_TOGGLE_PANEL:
d();
break;
default:
return !0
}
return Z.emitChange(""), !0
}), e.exports = Z
}, function(e, t) {
// =========================
// Function_59
// =========================
"use strict";
var n = function() {
return navigator.platform.indexOf("Linux") !== -1 ? "linux" : navigator.platform.indexOf("MacIntel") !== -1 ? "mac" : "win"
};
e.exports = n
}, , , , , , function(e, t, n) {
// =========================
// Function_65
// =========================
(function(t) {
"use strict";
function i(e) {
return Array.isArray(e) ? e : Array.from(e)
}
function a(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
if (!e) throw TypeError("No url provided");
t = Object.assign({
inCurrent: null == t.inBackground,
isTyped: !0
}, t), u.openURL(e.replace(/ /g, "%20"), t)
}
function r(e, t) {
var n = _(e).split(" "),
i = n[0] || "";
return p.getSync("SEARCH_ENGINES").some(function(e) {
return e.Keyword.toLowerCase() === i.toLowerCase()
})
}
function s(e) {
e && e.allHistory && h.handleViewAction({
actionType: m.NAVIGATION_HISTORY_ALL_DELETED
})
}
function o(e) {
null != e.isReaderable && h.handleViewAction({
actionType: m.READERABLE,
isReaderable: e.isReaderable,
pageId: e.pageId
})
}
var l = n(231),
c = n(172),
u = n(15),
A = n(17),
d = n(232),
h = n(8),
m = n(6),
p = n(3),
f = n(4),
g = n(826),
_ = n(404),
v = n(10),
b = {
clearUrlfieldState: function(e) {
h.handleViewAction({
actionType: m.URLFIELD_CLEAR_STATE,
pageId: e
})
},
setUrlfieldState: function(e, t) {
h.handleViewAction({
actionType: m.URLFIELD_SET_STATE,
pageId: e,
state: t
})
},
clearSelection: function(e) {
h.handleViewAction({
actionType: m.URLFIELD_SET_STATE,
pageId: e,
state: {
selectionStart: -1,
selectionEnd: -1
}
})
},
addTypedHistory: function(e, n) {
var i = p.getSync("URLFIELD_TYPED_HISTORY_ENABLED") === !0,
a = A.getActivePage().get("incognito") !== !1;
i && !a && t.nextTick(function() {
h.handleViewAction({
actionType: m.NAVIGATION_ADD_TYPED_HISTORY,
title: n,
url: e,
when: Date.now()
})
})
},
goSearchURL: function(e) {
function t(e, t, n) {
e = e.replace("%s", encodeURIComponent(t)), e = e.replace("%S", t), a(e, n), n.addTypedSearchHistory === !0 && d.addTypedSearchHistory(t)
}
var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
return e = _(e), n.useSearchEngineURL ? t(n.useSearchEngineURL, e, n) : void p.get(["SEARCH_ENGINES", "DEFAULT_SEARCH_ENGINE"], function(i) {
var a = void 0;
for (a = 0; a < i.SEARCH_ENGINES.length; a++)
if (e.toLowerCase().startsWith(i.SEARCH_ENGINES[a].Keyword.toLowerCase() + " ")) return t(i.SEARCH_ENGINES[a].Url, e.substr(i.SEARCH_ENGINES[a].Keyword.length + 1), n);
for (a = 0; a < i.SEARCH_ENGINES.length; a++)
if (parseInt(i.SEARCH_ENGINES[a].Id) === parseInt(i.DEFAULT_SEARCH_ENGINE)) return t(i.SEARCH_ENGINES[a].Url, e, n)
})
},
go: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
e = [].concat(e), e.forEach(function(n, s) {
if ("string" == typeof n && n.length > 0) {
if (e.length > 1 && (t.inBackground = s !== e.length - 1), n.startsWith("?")) return b.goSearchURL(n.substr(1), t);
v.utilities.isUrlValid(n, function(e) {
e.urlValid && e.schemeValid ? a(n, t) : ! function() {
var e = "http://" + n,
s = n.split("/"),
o = i(s),
l = o[0],
c = o.slice(1),
u = "http://" + l;
c.length && (u += c.join("/").replace(/\s/g, "+")), g(u) ? v.utilities.isUrlValid(u, function(i) {
i.urlValid && i.schemeValid ? a(e, t) : b.goSearchURL(n, t)
}) : r(n) || t.enableSearch === !0 && (!n.includes("/") || n.includes(" ")) ? b.goSearchURL(n, t) : a(e, t)
}()
}), n && t.addTypedHistory && b.addTypedHistory(n)
}
})
},
showTypedHistory: function() {
h.handleViewAction({
actionType: m.URLFIELD_TYPED_HISTORY_SHOW
})
},
hideTypedHistory: function() {
h.handleViewAction({
actionType: m.URLFIELD_TYPED_HISTORY_HIDE
})
},
deleteHistory: function(e) {
h.handleViewAction({
actionType: m.URLFIELD_HISTORY_DELETE,
url: e
})
},
deleteTypedHistory: function(e) {
h.handleViewAction({
actionType: m.URLFIELD_TYPED_HISTORY_DELETE,
url: e
})
},
readerableActive: function(e) {
l.addContentScript(e.get("id"), "Reader View")
},
readerableInactive: function(e) {
l.removeContentScript(e.get("id"), "Reader View")
},
readerableToggle: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : A.getActivePage();
(c.getPageScripts(e.get("id")).get("Reader View") === !0 && this.readerableInactive || this.readerableActive)(e)
},
load: function() {
var e = p.getSync("TYPED_HISTORY");
h.handleViewAction({
actionType: m.URLFIELD_TYPED_HISTORY_INIT,
typedHistory: e
})
}
};
f.history.onVisitRemoved.addListener(s), f.runtime.onMessage.addListener(o), e.exports = b
}).call(t, n(16))
}, function(e, t) {
// =========================
// Function_66
// =========================
"use strict";
e.exports = null
}, , , , , , function(e, t) {
// =========================
// Function_72
// =========================
"use strict";
var n = {
kVivaldiTabZoom: "vivaldi.tab_zoom_enabled",
kVivaldiHomepage: "vivaldi.home_page",
kDeferredTabLoadingAfterRestore: "vivaldi.deferred_tab_loading_after_restore",
kAlwaysLoadPinnedTabAfterRestore: "vivaldi.always_load_restored_pinned_tabs",
kVivaldiNumberOfDaysToKeepVisits: "vivaldi.days_to_keep_visits",
MESSAGE_START_DRAGGING: "vivaldiStartDragging",
MESSAGE_END_DRAGGING: "vivaldiEndDragging"
};
e.exports = n
}, function(e, t, n) {
// =========================
// Function_73
// =========================
"use strict";
var i = n(27),
a = n(114),
r = ["id", "index", "windowId", "openerTabId", "active", "pinned", "audible", "url", "title", "favIconUrl", "incognito", "sessionId", "discarded"],
s = function(e) {
return o(new a, e)
},
o = function(e) {
for (var t = arguments.length, n = Array(t > 1 ? t - 1 : 0), a = 1; a < t; a++) n[a - 1] = arguments[a];
return n.reduce(function(e, t) {
var n = Object.keys(t).reduce(function(e, n) {
return r.indexOf(n) !== -1 ? e.set(n, t[n]) : e
}, e),
a = {};
if (t.extData) try {
a = JSON.parse(t.extData)
} catch (e) {
a = {}
}
return n = n.set("extData", (n.extData || i.Map()).merge(a))
}, e.asMutable()).asImmutable()
};
t.tabToPage = s, t.updatePage = o
}, function(e, t, n) {
// =========================
// Function_74
// =========================
"use strict";
var i = n(10),
a = n(204),
r = a.fromPairs,
s = a.map,
o = function(e) {
return [e.name, e.value]
},
l = {
allItems: [],
flagsCache: {},
kDragTabsOutOfWindow: "drag_tabs_out_of_window",
kNewHistoryPage: "new_history_page",
kHueIntegration: "hue_integration",
loadPromise: function(e) {
var t = this;
return new Promise(function(e) {
return t.loadAllFlags_(function(n) {
t.flagsCache = Object.assign(t.flagsCache, n), e()
})
})
},
loadAllFlags_: function(e) {
var t = this;
i.runtimePrivate.getAllFeatureFlags(function(n) {
t.allItems = n, e(r(s(o, n)))
})
},
isEnabled: function(e) {
return !!this.flagsCache.hasOwnProperty(e) && "true" === this.flagsCache[e]
},
enableFeature: function(e, t) {
var n = this;
return this.flagsCache.hasOwnProperty(e) && i.runtimePrivate.setFeatureEnabled(e, t, function(i) {
return i ? (n.flagsCache[e] = t ? "true" : "false", !0) : void console.warn("Enabling feature failed: " + e)
}), !1
},
getFlags: function() {
return this.allItems
}
};
Object.keys(l).filter(function(e) {
return "function" == typeof l[e]
}).forEach(function(e) {
return l[e] = l[e].bind(l)
}), e.exports = window.VivaldiFeatureFlags = l
}, , , , , , function(e, t) {
// =========================
// Function_80
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_81
// =========================
e.exports = '\n'
}, , , , , , function(e, t, n) {
// =========================
// Function_87
// =========================
"use strict";
var i = n(18).EventEmitter,
a = n(8),
r = n(6),
s = "change",
o = {},
l = {},
c = "",
u = Object.assign({}, i.prototype, {
emitChange: function() {
this.emit(s)
},
emitChangeParam: function(e) {
this.emit(s, e)
},
addChangeListener: function(e) {
this.on(s, e)
},
removeChangeListener: function(e) {
this.removeListener(s, e)
},
isFindInPageOpen: function(e) {
return o[e.get("id")] === !0
},
getFindResultsForPage: function(e) {
var t = l[e.get("id")];
return void 0 === t && (t = {
activeMatchOrdinal: 0,
numberOfMatches: 0,
searchText: c,
canceled: !1,
matchCase: !1
}), t.isFindInPageToolbarOpen = o[e.get("id")] === !0 || !1, t
}
});
a.register(function(e) {
var t = e.action;
switch (t.actionType) {
case r.WEBPAGEVIEW_ACTIONS:
"findInPage" === t.action ? o[t.page.get("id")] = !0 : "findNextInPage" === t.action || "findPreviousInPage" === t.action ? o[t.page.get("id")] !== !0 && (o[t.page.get("id")] = !0, u.emitChangeParam({
type: r.WEBPAGEVIEW_ACTIONS,
action: "findInPage",
page: t.page
})) : "focusWebView" !== t.action && "focusSearchField" !== t.action || u.emitChangeParam({
type: r.URLFIELD_BLUR
}), u.emitChangeParam({
type: r.WEBPAGEVIEW_ACTIONS,
action: t.action,
page: t.page,
modifiers: t.modifiers
});
break;
case r.NAVIGATION_SET_STATE:
if (t.navigationState && "start" !== t.navigationState.get("trigger") || o[t.page.get("id")] === !1) return;
o[t.page.get("id")] === !0 && (o[t.page.get("id")] = !1, u.emitChangeParam({
type: r.CLOSE_FIND_IN_PAGE_ACTION,
page: t.page
}));
break;
case r.FIND_IN_PAGE_RESULT_ACTION:
o[t.page.get("id")] && (l[t.page.get("id")] = t, c = t.searchText, u.emitChangeParam(Object.assign({
type: r.FIND_IN_PAGE_RESULT_ACTION,
page: t.page
}, t.results)));
break;
case r.SHOW_FIND_IN_PAGE_ACTION:
o[t.page.get("id")] ? u.emitChangeParam({
type: r.FIND_IN_PAGE_FOCUS,
page: t.page
}) : (o[t.page.get("id")] = !0, u.emitChangeParam({
type: r.SHOW_FIND_IN_PAGE_ACTION,
page: t.page
}));
break;
case r.CLOSE_FIND_IN_PAGE_ACTION:
o[t.page.get("id")] && (o[t.page.get("id")] = !1, u.emitChangeParam({
type: r.CLOSE_FIND_IN_PAGE_ACTION,
page: t.page
}));
break;
case r.PAGE_GO:
u.emitChangeParam({
type: r.PAGE_GO,
index: t.index
});
break;
case r.PAGE_UPDATED:
u.emitChangeParam({
type: t.actionType,
page: t.page
});
break;
case r.PAGE_RELOAD:
u.emitChangeParam({
type: r.PAGE_RELOAD,
bypassCache: t.bypassCache
});
break;
case r.PAGE_STOP:
case r.PAGE_BACK:
case r.PAGE_FORWARD:
u.emitChangeParam({
type: t.actionType
});
break;
case r.MAIN_SHOW_QUICKCOMMANDS:
case r.PANEL_SET_FOCUS:
u.emitChangeParam({
type: r.URLFIELD_BLUR
});
break;
default:
return !0
}
return !0
}), e.exports = u
}, function(e, t) {
// =========================
// Function_88
// =========================
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), t.default = function(e) {
return Boolean(e && ["ctrlKey", "altKey", "metaKey", "shiftKey"].some(function(t) {
return e[t] === !0
}))
}
}, , , , function(e, t) {
// =========================
// Function_92
// =========================
e.exports = ''
}, , function(e, t, n) {
// =========================
// Function_94
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
function a(e, t) {
return function() {
e.apply(null, t)
}
}
var r = n(52),
s = n(15),
o = n(8),
l = n(6),
c = n(3),
u = n(10),
A = {
loadPromise: function() {
return new Promise(function(e, t) {
var n = [];
r.getCommands().forEach(function(e) {
c.addListener(e.name, A.commandChanged), n.push(e.name)
});
for (var i = c.getKeysSync(n), a = [], s = 0; s < n.length; s++) {
var u = i[n[s]];
void 0 !== u && a.push({
command: n[s],
value: u
})
}
A.setConfiguration(a), o.handleViewAction({
actionType: l.COMMAND_LOAD_ICONS,
resolve: e
})
})
},
restoreCommandShortcutKeys: function() {
r.getUserEditableCommands().forEach(function(e) {
var t = c.getDefault(e.name);
if (t) {
var n = {
shortcut: t.shortcut ? t.shortcut : null,
gestures: e.gestures,
showInQC: t.showInQC
};
c.set(i({}, e.name, n))
}
})
},
restoreCommandGestures: function() {
r.getUserEditableCommands().forEach(function(e) {
var t = c.getDefault(e.name);
if (t) {
var n = {
shortcut: e.shortcut,
gestures: t.gestures ? t.gestures : null,
showInQC: t.showInQC
};
c.set(i({}, e.name, n))
}
})
},
setConfiguration: function(e) {
o.handleViewAction({
actionType: l.COMMAND_SET_CONFIGURATION,
commands: e
})
},
commandChanged: function(e, t, n) {
o.handleViewAction({
actionType: l.COMMAND_UPDATE_SINGLE_COMMAND,
commandKey: n,
commandValue: t
})
},
runAction: function(e) {
"COMMAND_OPEN_TAB" === e.commandName ? s.openPage(e.param) : A.executeActions(e.commandName)
},
executeActions: function(e) {
for (var t = r.getCommands(), n = 0; n < t.length; n++)
if (e === t[n].name) {
var i = a(t[n].action, [t[n].param]);
return void i()
}
}
};
u.showMenu.onMainMenuCommand.addListener(function(e, t) {
if (document.hasFocus()) {
var n = r.getHandlerFromChromeId(e, t);
n ? n() : A.executeActions(r.chromeIdToCommand(e))
}
}), e.exports = A
}, function(e, t, n) {
// =========================
// Function_95
// =========================
"use strict";
var i = n(8),
a = n(6),
r = {
setNavigationState: function(e, t) {
i.handleViewAction({
actionType: a.NAVIGATION_SET_STATE,
page: e,
navigationState: t
})
},
setProgressState: function(e, t) {
i.handleViewAction({
actionType: a.NAVIGATION_SET_PROGRESS,
page: e,
progressState: t
})
},
setSSLState: function(e, t, n) {
i.handleViewAction({
actionType: a.PAGE_SET_SSL_STATE,
page: e,
state: t,
issuer: n
})
},
addBlockedPopupEvent: function(e, t) {
i.handleViewAction({
actionType: a.NAVIGATION_ADD_POPUP,
page: e,
popupEvent: t
})
},
removeBlockedPopupEvent: function(e, t) {
i.handleViewAction({
actionType: a.NAVIGATION_REMOVE_POPUP,
page: e,
popupEvent: t
})
},
setPermission: function(e, t, n, r) {
i.handleViewAction({
actionType: a.NAVIGATION_SET_PERMISSION,
page: e,
permission: t,
requestEvent: n,
blocked: r
})
},
resetPermissions: function(e) {
i.handleViewAction({
actionType: a.NAVIGATION_RESET_PERMISSIONS,
page: e
})
},
setPageHasBlockedContent: function(e, t) {
i.handleViewAction({
actionType: a.NAVIGATION_SET_BLOCKED_CONTENT,
page: e,
content_type: t
})
},
resetPageHasBlockedContent: function(e) {
i.handleViewAction({
actionType: a.NAVIGATION_RESET_BLOCKED_CONTENT,
page: e
})
}
};
e.exports = r
}, function(e, t, n) {
// =========================
// Function_96
// =========================
"use strict";
var i = n(4),
a = n(20).urls,
r = n(550),
s = n(745),
o = n(2);
window.THUMBNAIL_UPDATE = 0;
var l = 440,
c = 360,
u = 330,
A = 270,
d = {
activePageThumbnailUpdates: 0,
lastPageThumbnailStartTime: 0,
MAX_CONCURRENT_UPDATES: 4,
THUMBNAIL_TIMEOUT: 6e4,
calculateDimensions_: function(e) {
var t, n = e.thumbUrl && !e.captureAsBase64;
return t = n ? {
width: l,
height: c
} : {
width: u,
height: A
}
},
getPageThumbnail: function(e, t, n, i, a) {
var r = this;
(this.activePageThumbnailUpdates < 0 || this.activePageThumbnailUpdates > 0 && Date.now() - this.lastPageThumbnailStartTime > this.THUMBNAIL_TIMEOUT) && (console.warn("Dead or mismatched thumbnails updates, active updates: ", this.activePageThumbnailUpdates), this.activePageThumbnailUpdates = 0), this.activePageThumbnailUpdates > this.MAX_CONCURRENT_UPDATES || (this.lastPageThumbnailStartTime = Date.now(), this.activePageThumbnailUpdates++, this._updateWebviewThumbnail(n, t, i, this.calculateDimensions_(i), function(e) {
r.activePageThumbnailUpdates--, e && a(e)
}))
},
updateBookmarkThumbnail: function(e) {
e && this._requestUpdateBookmarkThumbnail(e.id, a.getUrl(e.url), "http://bookmark_thumbnail/" + e.id, function(t) {
t ? i.bookmarks.update(e.id, {
thumbnail: t + "?" + Date.now()
}, function(e) {}.bind(this)) : console.warn("will not update thumbnail as none was generated")
}.bind(this), 1024, 838, !1)
},
isBookmarkThumbnailCapture: function(e) {
return this._isInArrayById(e, this.thumbnailCaptureQueue) || this._isInArrayById(e, this.thumbnailCaptureActive)
},
getBookmarkThumbnailCaptureBackgroundTaskInfo: function(e) {
this._getFromArrayById(e, this.backgroundTasks)
},
_updateOffscreenServiceThumbnail: function(e, t, n, a, r, s) {
var o = window.vivaldiWindowId + "_vivaldi_window_screenshot_" + a + "x" + r + "-" + Math.random(),
l = i.app.window.get(o);
l ? (console.warn("Tab capture window " + o + " was already open!!"), l.close(), setTimeout(function() {
this._updateOffscreenServiceThumbnailHelper(e, t, n, a, r, o, s)
}.bind(this), 1e3)) : this._updateOffscreenServiceThumbnailHelper(e, t, n, a, r, o, s)
},
_updateOffscreenServiceThumbnailHelper: function(e, t, n, a, r, s, o) {
a = a ? a : 640, r = r ? r : 500, i.app.window.create("components/thumbnail/capture.html", {
id: s,
outerBounds: {
left: 100,
top: 5e3,
width: 1024,
height: 838
},
frame: "none",
hidden: !1,
focused: !1,
thumbnailWindow: !0
}, function(i) {
var l = !1,
c = function() {
var s = i.contentWindow.document.getElementById("capture_view");
if (!s) return console.warn("Unable to create capture window with capture_view element!"), i.contentWindow.close(), void(n && n(void 0));
var c, u = function() {
s.setVisible(!0), this._updateWebviewThumbnail(s, 100, {
thumbUrl: t,
incognito: o
}, {
width: a,
height: r
}, function(e) {
c(e)
}.bind(this))
}.bind(this),
A = function() {}.bind(this);
c = function(e) {
l = !0, s.removeEventListener("loadstop", u), s.removeEventListener("loadabort", A), i.contentWindow.close(), n && n(e)
}.bind(this), s.addEventListener("loadstop", u), s.addEventListener("loadabort", A), s.src = e;
var d = 6e4;
setTimeout(function() {
l || (console.warn("Capture thumbnail operation timeout after " + d / 1e3 + "s for " + e), c(void 0))
}, d)
}.bind(this);
i.isOpen ? (c(), console.warn("Tab capture window " + s + " was already open!!")) : (i.isOpen = !0, i.contentWindow.addEventListener("load", c))
}.bind(this))
},
_updateWebviewThumbnail: function(e, t, n, a, r) {
t = t || 0, a = a || this.calculateDimensions_(n);
var s = function(e) {
i.runtime.lastError && r && r(void 0), e && r && r(e)
}.bind(this),
o = function() {
var t = n.thumbUrl && !n.captureAsBase64,
i = Object.assign({
incognito: n.incognito
}, a);
t ? e.addToThumbnailService(n.thumbUrl, i, s) : e.getThumbnail(a, s)
};
t ? setTimeout(o, t) : o()
},
thumbnailCaptureQueue: [],
thumbnailCaptureActive: [],
thumbnailCaptureMaxActive: 1,
thumbnailCaptureProcessId: "thumbnailCapture",
backgroundTasks: [],
_requestUpdateBookmarkThumbnail: function(e, t, n, i, a, s, l) {
if (!this.isBookmarkThumbnailCapture(e)) {
if (this.thumbnailCaptureQueue.push({
id: e,
url: t,
thumbUrl: n,
callback: i,
width: a,
height: s,
incognito: l
}), this.thumbnailCaptureActive.length >= this.thumbnailCaptureMaxActive) {
var c = this._getFromArrayById(this.thumbnailCaptureProcessId, this.backgroundTasks);
return c && (c.description = o("$1 bookmark waiting for update.", "$1 bookmarks waiting for update.", [this.thumbnailCaptureQueue.length]), c.text = this.thumbnailCaptureQueue.length + 1), void r.setBackgroundTasks(this.backgroundTasks)
}
this._processCaptureQueue()
}
},
_processCaptureQueue: function() {
var e = this._getFromArrayById(this.thumbnailCaptureProcessId, this.backgroundTasks);
if (e || (e = new s(this.thumbnailCaptureProcessId, "", "Thumbnail Capture", {
backgroundImage: "url(/resources/reload-status@2x.png)",
backgroundColor: "transparent",
backgroundSize: "16px 16px",
animation: "spin 2s infinite linear",
display: "inline-block",
minWidth: "16px",
padding: "0px"
}, "", [{
name: o("Cancel"),
handler: function() {
this.thumbnailCaptureQueue = []
}.bind(this)
}]), this.backgroundTasks.push(e)), 0 === this.thumbnailCaptureQueue.length) return void(0 === this.thumbnailCaptureActive.length && (this._removeFromArrayById(this.thumbnailCaptureProcessId, this.backgroundTasks), r.setBackgroundTasks(this.backgroundTasks)));
var t = this.thumbnailCaptureQueue.shift();
this.thumbnailCaptureActive.push(t);
var n = function(e) {
t.callback && t.callback(e), this._removeFromArrayById(t.id, this.thumbnailCaptureActive), setTimeout(function() {
this._processCaptureQueue()
}.bind(this), 500)
}.bind(this);
this._updateOffscreenServiceThumbnail(t.url, t.thumbUrl, n, t.width, t.height, t.incognito), e.title = o("Updating thumbnail for $1", [t.url]), e.description = o("$1 bookmark waiting for update.", "$1 bookmarks waiting for update.", [this.thumbnailCaptureQueue.length]), e.text = this.thumbnailCaptureQueue.length + 1, r.setBackgroundTasks(this.backgroundTasks)
},
_getFromArrayById: function(e, t) {
for (var n = 0; n < t.length; n++)
if (t[n].id === e) return t[n];
return null
},
_isInArrayById: function(e, t) {
return !!this._getFromArrayById(e, t)
},
_removeFromArrayById: function(e, t) {
for (var n = 0; n < t.length; n++) t[n].id === e && t.splice(n, 1)
}
};
e.exports = d
}, function(e, t, n) {
// =========================
// Function_97
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
var n = e || z;
return e && e.h && Array.isArray(e.h) && e.h.length > V && (n.h = R(e.h, V)), n && n.h && t && (n.h = n.h.filter(function(e) {
return e.u !== t
})), n
}
function r(e) {
return x(e, function(e, t, n) {
return "t" === n ? e.title = t : "u" === n ? e.url = t : "w" === n && (e.when = t), e
}, {})
}
function s(e) {
return B(e ? e.h : [], r)
}
function o(e) {
if ("function" != typeof e) throw TypeError("loadTypedHistory: callback required");
var t = w.getSync("TYPED_HISTORY");
l(t, e)
}
function l(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : P,
n = z;
try {
e && (n = JSON.parse(e))
} catch (e) {
console.warn("Unable to parse typed history JSON. TODO: fix!", e)
}
n && t(n)
}
function c(e) {
var t = e.title,
n = e.when,
i = e.url;
o(function(e) {
var r = a(e, i),
o = {
u: i
};
t && (o.t = t), o.w = n || Date.now(), r.h = [o].concat(r.h), w.set({
TYPED_HISTORY: JSON.stringify(r)
}), K = s(r), J.emitChange()
})
}
function u() {
w.remove("TYPED_HISTORY"), K = [], J.emitChange()
}
function A(e) {
y.default.history.deleteUrl({
url: e
}, J.emitChange)
}
function d(e, t) {
var n = {
h: Array.from(e.h).filter(function(e) {
return !t.includes(e.u) || D(e.u) !== D(t)
})
};
w.set({
TYPED_HISTORY: JSON.stringify(n)
}), K = s(n)
}
function h(e) {
o(function(t) {
d(t, e), J.emitChange(O.URLFIELD_TYPED_HISTORY_DELETE)
})
}
function m(e) {
var t = e.since,
n = e.dataTypes.typedHistory;
if (null == n || "boolean" === !("undefined" == typeof n ? "undefined" : v(n))) throw TypeError("Typed history must be true or false");
o(function(e) {
var n = {
h: Array.from(e.h).filter(function(e) {
var n = e.w;
return t - n > 0
})
};
w.set({
TYPED_HISTORY: JSON.stringify(n)
}), K = s(n), J.emitChange(O.URLFIELD_TYPED_HISTORY_DELETE)
})
}
function p(e, t) {
var n = (e || "").toString();
if (e) {
var i = W[n] || {};
W[n] = Object.assign({}, i, t), H("set state", e, "next", t, "old", i, "now", W[n])
}
}
function f(e) {
if (null != e) {
for (var t = (e || "").toString(), n = !1, i = arguments.length, a = Array(i > 1 ? i - 1 : 0), r = 1; r < i; r++) a[r - 1] = arguments[r];
return 0 === a.length ? W[t] = U(W[t], function(e, t) {
return t.startsWith("isReaderable")
}) : a.forEach(function(e) {
delete W[t][e], n = !0
}), n
}
}
function g() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
Array.isArray(e) && e.forEach(function(e) {
var t = e.id;
return delete W[t]
})
}
function _(e) {
l(e, function(e) {
K = s(e), J.emitChange()
})
}
var v = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
b = n(172),
N = i(b),
E = n(90),
S = i(E),
T = n(4),
y = i(T),
C = n(17),
I = n(8),
O = n(6),
w = n(3),
D = n(116),
k = n(18),
M = k.EventEmitter,
L = n(7),
P = L.noop,
R = L.take,
x = L.reduce,
B = L.map,
U = L.pickBy,
F = L.get,
H = (0, S.default)("urlbarstore"),
V = 50,
W = {},
G = !1,
K = [],
j = !1,
z = {
h: []
},
Y = {
editUrl: void 0,
isActive: !1,
hasLostFocus: !1,
isOmniDropdownOpen: !1,
isReaderable: !1,
isReaderableActive: !1,
selectionEnd: -1,
selectionStart: -1
},
J = Object.assign({}, M.prototype, {
getUrlfieldState: function(e) {
return this.getUrlfieldStateFromId(e.get("id"))
},
getUrlfieldStateFromId: function(e) {
var t = Object.assign({}, null != e ? W[e.toString()] : {}),
n = Object.keys(Y).reduce(function(e, t) {
return void 0 === e[t] && (e[t] = Y[t]), e
}, t);
return n
},
showTypedHistory: function() {
return G === !0
},
getTypedHistory: function(e) {
return "function" == typeof e ? K.filter(e) : K
},
emitChange: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
this.emit(O.CHANGED, e)
},
addChangeListener: function(e) {
this.on(O.CHANGED, e)
},
removeChangeListener: function(e) {
this.removeListener(O.CHANGED, e)
}
});
I.register(function(e) {
var t = e.action;
switch (t.actionType) {
case O.URLFIELD_SET_STATE:
p(t.pageId, t.state), J.emitChange();
break;
case O.NAVIGATION_SET_STATE:
if (t.navigationState.get("isLoading") === !1 && (j = !1, "abort" === t.navigationState.get("trigger"))) {
var n = t.page.get("id");
W[n] && !W[n].editUrl && f(n), h(t.navigationState.get("webviewUrl")), J.emitChange()
}
break;
case O.CHROME_TABS_CREATED:
j = !0;
break;
case O.CHROME_TABS_UPDATED:
"loading" === t.args[1].status && (C.isActivePage(t.args[0]) || f(t.args[0]));
break;
case O.NAVIGATION_ADD_TYPED_HISTORY:
c(t);
break;
case O.NAVIGATION_HISTORY_ALL_DELETED:
u();
break;
case O.URLFIELD_TYPED_HISTORY_DELETE:
h(t.url);
break;
case O.PAGE_RELOAD:
f(C.getActivePage().get("id")), J.emitChange();
break;
case O.PAGE_CLOSE:
g(t.pages);
break;
case O.URLFIELD_TYPED_HISTORY_SHOW:
G !== !0 && (G = !0, J.emitChange());
break;
case O.URLFIELD_HISTORY_DELETE:
A(t.url);
break;
case O.READERABLE:
p(t.pageId, {
isReaderable: t.isReaderable,
isReaderableActive: N.default.getPageScripts(t.pageId).get("Reader View") === !0 || !1
}), J.emitChange();
break;
case O.CONTENT_SCRIPT_PAGE_ADD:
"Reader View" === t.script && (p(t.pageId, {
isReaderableActive: !0
}), J.emitChange());
break;
case O.CONTENT_SCRIPT_PAGE_REMOVE:
"Reader View" === t.script && (p(t.pageId, {
isReaderableActive: !1
}), J.emitChange());
break;
case O.URLFIELD_CLEAR_STATE:
j === !1 && f(t.pageId) && setTimeout(function() {
return J.emitChange()
}, 16);
break;
case O.URLFIELD_TYPED_HISTORY_HIDE:
G !== !1 && (G = !1, J.emitChange());
break;
case O.URLFIELD_TYPED_HISTORY_INIT:
_(t.typedHistory);
break;
case O.BROWSING_DATA_REMOVED:
F(t, "dataTypes.typedHistory") === !0 && m(t)
}
}), e.exports = J
}, function(e, t) {
// =========================
// Function_98
// =========================
"use strict";
var n = 1,
i = 2,
a = 3,
r = function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : i,
t = arguments[1];
return function(a, r) {
return e <= n ? 0 : (t && (a = a[t], r = r[t]), a || r ? a ? r ? "number" == typeof a && "number" == typeof r ? e === i ? a - r : r - a : (a = a.toString().toLowerCase(), r = r.toString().toLowerCase(), a > r ? e === i ? 1 : -1 : a < r ? e === i ? -1 : 1 : 0) : e === i ? -1 : 1 : e === i ? 1 : -1 : 0)
}
},
s = function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : r(),
n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "children",
i = function e(i) {
var a = !0,
r = !1,
s = void 0;
try {
for (var o, l = i[Symbol.iterator](); !(a = (o = l.next()).done); a = !0) {
var c = o.value,
u = c[n];
Array.isArray(u) && e(u)
}
} catch (e) {
r = !0, s = e
} finally {
try {
!a && l.return && l.return()
} finally {
if (r) throw s
}
}
i.sort(t)
};
i(e)
};
e.exports = {
treeSort: s,
getDefaultComparator: r,
NO_SORTING: n,
ASCENDING_SORT: i,
DESCENDING_SORT: a
}
}, , , , , , , , , , function(e, t) {
// =========================
// Function_108
// =========================
"use strict";
e.exports = {
VIVALDI_ROOT_BOOKMARK_FOLDER: "1",
PLACEHOLDER_URL: "http://bookmark.placeholder.url/"
}
}, function(e, t, n) {
// =========================
// Function_109
// =========================
(function(t) {
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/VivaldiTreeList.jsx",
a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
r = n(1),
s = n(11),
o = n(40),
l = n(45),
c = n(50),
u = n(37),
A = n(9),
d = n(1116),
h = n(575),
m = n(576),
p = n(577),
f = n(98),
g = n(69),
_ = n(3),
v = n(249),
b = n(30),
N = n(88).default,
E = 1200,
S = -1,
T = 24,
y = 700,
C = "F2",
I = {
id: S,
position: ""
},
O = r.createClass({
displayName: "VivTree",
mixins: [A, h],
inlineEditTimeoutId: -1,
expandTimer: void 0,
expandId: -1,
canSaveScrollTop: !1,
propTypes: {
settings: r.PropTypes.string,
nodes: r.PropTypes.array.isRequired,
hasChildren: r.PropTypes.func.isRequired,
enableDragAndDrop: r.PropTypes.bool,
treeType: r.PropTypes.oneOf(["simple", "variable", "uniform"]),
allFoldersExpandedOnLoad: r.PropTypes.bool
},
getDefaultProps: function() {
return {
enableDragAndDrop: !0,
treeType: "uniform"
}
},
getInitialState: function() {
var e = {};
return this.props.allFoldersExpandedOnLoad ? e = this.getAllFoldersExpandedModel(this.props.nodes) : (this.props.settings && (e = _.getSync("EXPAND_" + this.props.settings) || {}), this.prepareNodesForRender(this.props.nodes, e)), {
dragOverObj: I,
hasFocus: !1,
expandModel: e,
renderedArray: this.getRenderedItems(this.props.nodes, e, this.props.sorting),
cutIds: this.props.getCutIds ? this.props.getCutIds() : [],
inlineEditId: -1,
inlineEditText: ""
}
},
_initializeSettings: function(e) {
this._expandSettings = "EXPAND_" + e.settings, this._scrollTopSettings = "SCROLL_TOP_" + e.settings, this._searchStyleSettings = "SEARCH_STYLE_" + e.settings;
var t = {};
t = this.props.allFoldersExpandedOnLoad ? this.getAllFoldersExpandedModel(this.props.nodes) : _.getSync(this._expandSettings) || this.state.expandModel || {}, this.prepareDataForRender(e.nodes, t)
},
_updateSelectionStateIfNeeded: function(e) {
if (e.settings) {
this._selectionSettings = "SELECTION_" + e.settings;
var t = _.getSync(this._selectionSettings);
t && this.updateSelectionState(t)
}
},
componentWillMount: function() {
this._updateSelectionStateIfNeeded(this.props)
},
componentDidMount: function() {
var e = this;
this.props.settings && (this._initializeSettings(this.props), t.nextTick(function() {
e.refs.treeItems && (e.canSaveScrollTop = !0, e.refs.treeItems.scrollTop = _.getSync(e._scrollTopSettings))
}))
},
componentWillReceiveProps: function(e) {
if (e.settings !== this.props.settings) this._initializeSettings(e), this._updateSelectionStateIfNeeded(e);
else {
var t = {};
if (Object.keys(this.state.expandModel).length > 0 && this.props.allFoldersExpandedOnLoad) {
var n = this.getAllFoldersExpandedModel(e.nodes);
t = Object.assign(n, this.state.expandModel)
} else t = this.state.expandModel;
this.prepareDataForRender(e.nodes, t)
}
this.props.sorting !== e.sorting && this._onSortChange(e.sorting)
},
componentDidUpdate: function(e, t) {
if (this.state.renderedArray.length === t.renderedArray.length && this.rerenderVisibleTreeItems(), this.canSaveScrollTop) {
var n = {};
n[this._scrollTopSettings] = this.refs.treeItems.scrollTop, _.set(n)
}
},
componentWillUnmount: function() {
var e = this.getKeyEventMap();
Object.keys(e).forEach(function(t) {
return u.unbind(t, e[t])
}), this.stopInlineEditTimer(), this.resetAutoExpandTimer()
},
_onSortChange: function(e) {
var t = this.getRenderedItems(this.props.nodes, this.state.expandModel, e);
this.setState({
renderedArray: t
})
},
prepareNodesForRender: function(e, t) {
var n = this,
i = function e(i) {
n.props.hasChildren(i) && i.children.forEach(function(n) {
n.level = i.level + 1, i.isExpanded = !!t[i.id], e(n)
})
},
a = !0,
r = !1,
s = void 0;
try {
for (var o, l = e[Symbol.iterator](); !(a = (o = l.next()).done); a = !0) {
var c = o.value;
c.level = 0, i(c)
}
} catch (e) {
r = !0, s = e
} finally {
try {
!a && l.return && l.return()
} finally {
if (r) throw s
}
}
},
prepareDataForRender: function(e, t) {
var n = this;
this.prepareNodesForRender(e, t);
var i = this.getRenderedItems(e, t, this.props.sorting),
a = g(this.state, {
renderedArray: {
$set: i
},
expandModel: {
$set: t
}
});
this.setState(a, function() {
n._pendingSelectId && (n.selectById(n._pendingSelectId), n._pendingSelectId = void 0)
})
},
setCutIds: function(e) {
this.setState({
cutIds: e
})
},
onCut: function(e) {
var t = this,
n = this.SelectionMixinGetAllSelected().filter(function(e) {
return t.props.isValidForClipboard(e)
}).map(function(e) {
return e.id
});
this.props.onCutToClipboard ? this.props.onCutToClipboard(e, n) : (this.setCutIds(n), this.setClipboard(e, !0))
},
onCopy: function(e) {
var t = this;
if (this.props.onCopyToClipboard) {
var n = this.getAllSelectedItems(!0).filter(function(e) {
return t.props.isValidForClipboard(e)
}).map(function(e) {
return e.id
});
this.props.onCopyToClipboard(e, n)
} else this.setClipboard(e, !1)
},
toggleSelectedExpansion: function() {
this.stopInlineEditTimer();
var e = this.SelectionMixinGetLead();
if (e !== S && this.state.inlineEditId !== e) {
var t = this.findTreeItem(e);
this.props.isFolder(t) && this.toggleExpandModel(t.id)
}
},
toggleExpandModel: function(e) {
this.state.expandModel[e] = !this.state.expandModel[e], this.saveExpandModel(this.state.expandModel), this.prepareDataForRender(this.props.nodes, this.state.expandModel)
},
saveExpandModel: function(e) {
if (!this.props.allFoldersExpandedOnLoad) {
var t = {};
t[this._expandSettings] = e, _.set(t)
}
},
saveSelectionModel: function() {
var e = {};
e[this._selectionSettings] = this.state.selectionModel.getData(), _.set(e)
},
_findTreeIndex: function(e) {
return this.state.renderedArray.findIndex(function(t) {
return t.id === e
})
},
_scrollLeadNodeIntoView: function() {
var e = this._findTreeIndex(this.SelectionMixinGetLead());
this.scrollIntoView(e)
},
collapseAll: function() {
this.saveExpandModel({}), this.prepareDataForRender(this.props.nodes, {}), this._scrollLeadNodeIntoView()
},
getAllFoldersExpandedModel: function(e) {
var t = this,
n = {},
i = function e(i) {
t.props.isFolder(i) && (n[i.id] = !0), t.props.hasChildren(i) && i.children.forEach(e)
};
return e.forEach(i), n
},
expandAll: function() {
var e = this.getAllFoldersExpandedModel(this.props.nodes);
this.saveExpandModel(e), this.prepareDataForRender(this.props.nodes, e), this._scrollLeadNodeIntoView()
},
setClipboard: function(e, t) {
var n = this,
i = this.SelectionMixinGetAllSelected(),
a = this.findTreeItem(this.SelectionMixinGetLead()),
r = [],
s = "",
o = function e(t) {
if (n.props.isValidForClipboard(t)) {
var a = !0,
o = !1,
l = void 0;
try {
for (var c, u = i[Symbol.iterator](); !(a = (c = u.next()).done); a = !0) {
var A = c.value;
if (A.id === t.id) {
r.push(t), s += (t.url || t.title) + "\n";
break
}
}
} catch (e) {
o = !0, l = e
} finally {
try {
!a && u.return && u.return()
} finally {
if (o) throw l
}
}
t.children && t.children.forEach(e)
}
};
if (this.props.nodes.forEach(o), e.clipboardData.setData("isCut", t), e.clipboardData.setData("text/plain", s), e.clipboardData.setData("application/json", JSON.stringify(r)), !this.props.textOnlyClipboard && a && a.url && a.title) {
var l = "" + a.title + "";
e.clipboardData.setData("text/html", l)
}
e.stopPropagation(), e.preventDefault()
},
onPaste: function(e) {
var t = this;
if (this.props.onPasteFromClipboard) {
var n = this.SelectionMixinGetSelected();
return void(n !== S && this.props.onPasteFromClipboard(e, n).then(function(e) {
e.isCut === !0 && t.setCutIds([]), t.state.selectionModel.setSelectedIds(e.ids)
}))
}
var i = [];
try {
i = JSON.parse(e.clipboardData.getData("application/json"))
} catch (e) {}
var a = {
index: 0
},
r = this.SelectionMixinGetSelected();
if (r !== S) {
var s = this.findTreeItem(r);
s && (this.props.isFolder(s) ? a.parentId = s.id : (a.parentId = s.parentId, a.index = s.index + 1))
}
var o = "true" === e.clipboardData.getData("isCut");
if (o) {
if (0 === this.state.cutIds.length) return;
this.props.onMove(i, a).then(function(e) {
t.setCutIds([]), t.state.selectionModel.setSelectedIds(e.map(function(e) {
return e.id
})), e.length > 0 && t.props.onSelect && t.props.onSelect(e[0])
})
} else {
var l = a.index,
c = !0,
u = !1,
A = void 0;
try {
for (var d, h = i[Symbol.iterator](); !(c = (d = h.next()).done); c = !0) {
var m = d.value;
m.parentId = a.parentId, m.index = l++
}
} catch (e) {
u = !0, A = e
} finally {
try {
!c && h.return && h.return()
} finally {
if (u) throw A
}
}
this.props.onCreate(i).then(function(e) {
t.state.selectionModel.setSelectedIds(e.map(function(e) {
return e.id
}))
})
}
},
getKeyEventMap: function() {
var e = "MacIntel" === navigator.platform;
return Object.assign({
up: this.onKeyArrowUp,
down: this.onKeyArrowDown,
left: this._collapseFolderOrSelectParent,
right: this._expandFolder,
del: this.onKeyDelete,
home: this.onKeyHome,
end: this.onKeyEnd,
esc: this.onKeyEsc,
"shift+up": this.onKeyArrowUp,
"shift+down": this.onKeyArrowDown,
"shift+home": this.onKeyHome,
"shift+end": this.onKeyEnd
}, e ? {
"meta+a": this.onKeySelectAll,
"meta+left": this._collapseFolderOrSelectParent,
"meta+right": this._expandFolder,
"meta+backspace": this.onKeyDelete
} : {
"ctrl+a": this.onKeySelectAll,
"ctrl+left": this._collapseFolderOrSelectParent,
"ctrl+right": this._expandFolder,
"ctrl+space": this.onKeyCtrlSpace,
"ctrl+up": this.onKeyCtrlUp,
"ctrl+down": this.onKeyCtrlDown
})
},
onLostFocus: function() {
this.stopInlineEditTimer();
var e = this.getKeyEventMap();
Object.keys(e).forEach(function(t) {
return u.unbind(t, e[t])
}), this.setState({
hasFocus: !1,
cutItem: []
})
},
onGotFocus: function() {
var e = this;
this.state.inlineEditId === -1 && ! function() {
var t = e.getKeyEventMap();
Object.keys(t).forEach(function(e) {
return u.bind(e, t[e])
}), e.setState({
hasFocus: !0
})
}()
},
scrollIntoView: function(e) {
this.refs.treeListEntries && this.refs.treeListEntries.scrollAround(e)
},
selectById: function(e, t, n) {
var i = this.findTreeItem(e) || {
id: e
};
return this.props.onSelect && this.props.onSelect(i), e === S ? void this.SelectionMixinSelectItem(e) : (n || (n = this._findTreeIndex(e)), this.scrollIntoView(n), t ? this.SelectionMixinSelectItem(e, t.ctrlKey, t.shiftKey, t.metaKey, "contextmenu" === t.type) : this.SelectionMixinSelectItem(e), void this.saveSelectionModel())
},
scrollToId: function(e) {
this.scrollIntoView(this._findTreeIndex(e))
},
onClick: function() {
this.selectById(S)
},
onItemClick: function(e, t) {
this.props.onItemClick && this.props.onItemClick(t)
},
onItemDoubleClick: function(e, t) {
this.stopInlineEditTimer(), !this.props.isFolder(e) && this.props.onItemDoubleClick && this.props.onItemDoubleClick(t, e)
},
onItemMouseDown: function(e, t) {
var n = this.SelectionMixinGetAllSelected(),
i = !1,
a = !0,
r = !1,
s = void 0;
try {
for (var o, l = n[Symbol.iterator](); !(a = (o = l.next()).done); a = !0) {
var c = o.value;
if (c.id === e.id) {
i = !0;
break
}
}
} catch (e) {
r = !0, s = e
} finally {
try {
!a && l.return && l.return()
} finally {
if (r) throw s
}
}
this.state.hasFocus && i && 1 === n.length && 0 === t.button && !N(t) ? this.startInlineEditTimerForId(e.id) : this.stopInlineEditTimer();
var u = "MacIntel" === navigator.platform ? t.metaKey : t.ctrlKey;
(!i || u || this.props.reselectionAllowed) && this.selectById(e.id, t), "function" == typeof this.props.onItemMouseDown && this.props.onItemMouseDown(e, t)
},
onItemMouseUp: function(e, t) {
var n = this.SelectionMixinGetAllSelected(),
i = "MacIntel" === navigator.platform ? t.metaKey : t.ctrlKey;
n.length > 1 && 2 !== t.button && !i && this.selectById(e.id, t), "function" == typeof this.props.onItemMouseUp && this.props.onItemMouseUp(e, t)
},
onContextMenuOpen: function(e, t) {
this.scrollIntoView(t.treeIndex)
},
rerenderVisibleTreeItems: function() {
this.refs.treeListEntries && this.refs.treeListEntries.forceUpdate()
},
onAdd: function(e) {
var t = this,
n = this.SelectionMixinGetSelected(),
i = void 0;
n && n !== S && (i = this.findTreeItem(n), this.props.isValidAddTarget(i) || (i = null));
var a = {
children: e ? [] : void 0,
isNew: !0
};
i ? this.props.isFolder(i) ? (i.isExpanded || this.toggleExpandModel(i.id), a.parentId = i.id) : a.parentId = i.parentId : a.parentId = this.props.rootId || 0, this.props.onCreate(a).then(function(e) {
e && 1 === e.length && (t.SelectionMixinUnSelectAll(), t._pendingSelectId = e[0].id)
})
},
onDelete: function(e) {
var t = this.SelectionMixinGetAllSelected().map(function(e) {
return e.id
});
return e === !0 && this.props.validateForDeletion && (t = this.props.validateForDeletion(t)), this.onDeleteItems(t)
},
onDeleteItems: function(e) {
var t = this;
if (!(e && e.length > 0)) return Promise.resolve();
var n = function() {
var n = Math.min(t._findTreeIndex(t.SelectionMixinGetLead()), t._findTreeIndex(t.SelectionMixinGetAnchor())),
i = t.state.renderedArray[n];
return {
v: t.props.delete(e).then(function() {
if (!t.props.disableSelectAfterDelete) {
var a = t.state.renderedArray.filter(function(t) {
return !e.includes(t.id)
});
if (0 === a.length) t.selectById(S);
else {
var r = void 0 !== i.parentId ? t.findTreeItem(i.parentId) : void 0;
if (r)
if (t.props.hasChildren(r) && (r = Object.assign({}, r), r.children = r.children.filter(function(t) {
return !e.includes(t.id)
})), t.props.hasChildren(r)) {
var s = r.children;
if (1 === s.length) t.selectById(s[0].id);
else {
var o = s[0],
l = s[s.length - 1],
c = t._findTreeIndex(o.id),
u = t._findTreeIndex(l.id);
if (n <= c) t.selectById(o.id);
else if (n >= u) t.selectById(l.id);
else {
var A = 0,
d = u - c + 1;
if (d > s.length)
for (var h = n - c, m = 0; m < h; m++) {
var p = a[c + m];
t.props.hasChildren(p) && p.isExpanded && (A -= p.children.length)
}
var f = s[n - c + A];
t.selectById(f.id)
}
}
} else t.selectById(r.id);
else {
var g = a.length - 1,
_ = a[Math.min(n, g)];
t.selectById(_.id)
}
}
}
})
}
}();
return "object" === ("undefined" == typeof n ? "undefined" : a(n)) ? n.v : void 0
},
onKeyCtrlUp: m.throttleSync(function(e) {
var t = this.SelectionMixinGetLead(),
n = this._findTreeIndex(t);
if (0 !== n) {
var i = n - 1,
a = this.state.renderedArray[i];
this.SelectionMixinSetLead(a.id), this.scrollIntoView(i)
}
}),
onKeyCtrlDown: m.throttleSync(function(e) {
var t = this.SelectionMixinGetLead(),
n = this._findTreeIndex(t),
i = this.state.renderedArray.length;
if (n !== i - 1) {
var a = n + 1,
r = this.state.renderedArray[a];
this.SelectionMixinSetLead(r.id), this.scrollIntoView(a)
}
}),
onKeyArrowDown: m.throttleSync(function(e) {
var t = this.SelectionMixinGetLead(),
n = this._findTreeIndex(t),
i = this.state.renderedArray.length;
if (n !== i - 1) {
var a = n + 1,
r = this.state.renderedArray[a];
this.selectById(r.id, e, a)
}
}),
onKeyArrowUp: m.throttleSync(function(e) {
var t = this.SelectionMixinGetLead(),
n = this._findTreeIndex(t);
if (0 !== n) {
var i = n - 1,
a = this.state.renderedArray[i];
this.selectById(a.id, e, i)
}
}),
onKeyHome: function(e) {
var t = this.state.renderedArray[0];
this.selectById(t.id, e, 0), e.preventDefault(), e.stopPropagation()
},
onKeyEnd: function(e) {
var t = this.state.renderedArray.length,
n = this.state.renderedArray[t - 1];
this.selectById(n.id, e, t - 1), e.preventDefault(), e.stopPropagation()
},
onKeyDelete: function() {
this.onDelete(!0)
},
onKeySelectAll: function() {
this.SelectionMixinSelectAll()
},
onKeyCtrlSpace: function(e) {
var t = this.SelectionMixinGetLead();
this.SelectionMixinSelectItem(t, e.ctrlKey, e.shiftKey, e.metaKey, "contextmenu" === e.type)
},
onKeyEsc: function(e) {
this.unSelectAll()
},
_setExpandState: function(e, t) {
if (this.state.expandModel && this.state.selectionModel.isSingleItemSelected) {
var n = this.findTreeItem(this.SelectionMixinGetLead());
(n.isExpanded && !t || !n.isExpanded && t) && this.toggleExpandModel(this.state.selectionModel.FirstSingleItemSelected)
}
e.preventDefault(), e.stopPropagation()
},
_collapseFolderOrSelectParent: function(e) {
var t = this.getSelectedItem();
if (this.isfolderAndHasItems(t) === !0 && t.isExpanded) this._setExpandState(e, !1);
else {
var n = this.SelectionMixinGetLead();
if (n) {
var i = this._findTreeIndex(n);
if (i)
for (var a = this.state.renderedArray[i].level, r = i - 1; r >= 0; r--) {
var s = this.state.renderedArray[r];
if (s.level < a) {
this.selectById(s.id);
break
}
}
}
}
},
_expandFolder: function(e) {
var t = this.getSelectedItem();
this.isfolderAndHasItems(t) === !0 && this._setExpandState(e, !0)
},
unSelectAll: function() {
this.SelectionMixinUnSelectAll()
},
isItemLead: function(e) {
return e === this.SelectionMixinGetLead()
},
isItemSelected: function(e) {
return this.SelectionMixinIsSelected(e)
},
supportDropForItem: function(e, t) {
return !this.props.supportDropForItem || this.props.supportDropForItem(t, e)
},
onDragLeaveItem: function(e, t) {
this.cancelDragOverObject(), this.resetAutoExpandTimer()
},
onDragOverItem: function(e, t) {
var n = t.currentTarget,
i = n.getBoundingClientRect(),
a = (t.clientY - i.top) / T,
r = "";
this.props.isFolder(e) ? r = a <= .25 ? "above" : a > .75 ? "below" : "on" : a <= .5 ? r = "above" : a > .5 && (r = "below"), (this.state.dragOverObj.id !== e.id || this.state.dragOverObj.id === e.id && this.state.dragOverObj.position !== r) && this.setState({
dragOverObj: {
id: e.id,
position: r
}
}, this.initAutoExpandTimer(e, r))
},
initAutoExpandTimer: function(e, t) {
e.isExpanded || !this.props.isFolder(e) || "on" !== t ? this.resetAutoExpandTimer() : this.expandId !== e.id && (this.resetAutoExpandTimer(), this.expandId = e.id, this.expandTimer = window.setTimeout(this.onAutoExpandTimer, E))
},
resetAutoExpandTimer: function() {
this.expandTimer && (window.clearTimeout(this.expandTimer), this.expandTimer = void 0, this.expandId = -1)
},
onAutoExpandTimer: function() {
this.expandId !== -1 && (this.state.dragOverObj.id === this.expandId && "on" === this.state.dragOverObj.position && this.toggleExpandModel(this.expandId), this.resetAutoExpandTimer())
},
onDragEmptyArea: function(e) {
if (this.state.renderedArray.length > 0) {
var t = this.state.renderedArray[this.state.renderedArray.length - 1];
this.supportDropForItem(t, e) && (e.nativeEvent.dataTransfer.dropEffect = "move", this.state.dragOverObj.id !== t.id && "below" !== this.state.dragOverObj.position && this.setState({
dragOverObj: {
id: t.id,
position: "below"
}
}))
}
e.preventDefault(), e.stopPropagation()
},
onDropEmptyArea: function(e) {
if (this.resetAutoExpandTimer(), this.state.renderedArray.length > 0) {
var t = this.state.renderedArray[this.state.renderedArray.length - 1];
this.onDrop(e, t)
}
e.preventDefault(), e.stopPropagation()
},
onDrop: function(e, t) {
var n = this;
this.resetAutoExpandTimer();
var i = o.isCopyModifierPressed(e),
a = this.state.dragOverObj.position,
r = void 0;
this.props.mimeType && (r = "function" == typeof this.props.mimeType ? this.props.mimeType() : this.props.mimeType);
var s = void 0;
if (r && e.dataTransfer.types.findIndex(function(e) {
return e === r
}) !== -1 ? s = JSON.parse(e.dataTransfer.getData(r)) : this.props.onDrop && this.props.onDrop(e, t, a).then(function(e) {
n.cancelDragOverObject(), e.length > 0 && n.selectById(e[0].id)
}), !s || s.length <= 0) return void this.cancelDragOverObject();
var l = this.props.isFolder(t),
c = !1,
u = {
index: 0,
parentId: void 0
};
this.props.getTargetSpec ? u = this.props.getTargetSpec(t, a) : ("on" !== a && (u.index = parseInt(t.index), "below" === a && u.index++), u.parentId = l && "on" === a ? t.id : t.parentId);
var A = s.map(function(e) {
if (e === t.id) return void(c = !0);
var a = n.findTreeItem(e);
return !i && n.props.isFolder(a) && n.findItemInFolder(a, t.id) ? void(c = !0) : a
}).filter(function(e) {
return null !== e
});
if (c || A.length <= 0) return void this.cancelDragOverObject();
if (i) {
var d = v(A);
d.map(function(e) {
e.parentId = u.parentId, e.index = u.index, u.index++
}), this.props.onCreate(d).then(function() {
n.cancelDragOverObject()
})
} else this.props.onMove(A, u).then(function() {
n.cancelDragOverObject()
})
},
cancelDragOverObject: function() {
this.setState({
dragOverObj: I
})
},
onDragEndItem: function() {
this.cancelDragOverObject()
},
onKeyDown: function(e) {
var t = this,
n = "MacIntel" === navigator.platform;
if (this.stopInlineEditTimer(), this.state.inlineEditId !== -1) return void("Escape" === e.key ? (e.preventDefault(), this.cancelInlineEdit(function() {
s.findDOMNode(t).focus()
})) : "Enter" === e.key && (e.preventDefault(), this.saveInlineEdit(function() {
s.findDOMNode(t).focus()
})));
if (e.keyCode === l.KEY_ESCAPE) this.setCutIds([]);
else if (!n && e.key === C || n && "Enter" === e.key) {
var i = this.SelectionMixinGetSelected();
i !== -1 && this.props.supportsInlineEdit === !0 && (e.preventDefault(), this.startInlineEdit(i))
} else {
var a = !1;
if (this.props.onItemsActivated && (!n && "Enter" === e.key || n && " " === e.key)) {
var r = this.getAllSelectedItems(!0);
r && this.props.onItemsActivated(e, r), a = !0
}!a && this.props.onKeyDown && this.props.onKeyDown(e)
}
},
startInlineEditTimerForId: function(e) {
this.stopInlineEditTimer(), this.props.supportsInlineEdit === !0 && (this.inlineEditTimeoutId = window.setTimeout(this.startInlineEdit.bind(this, e), y))
},
stopInlineEditTimer: function() {
this.inlineEditTimeoutId !== -1 && (window.clearTimeout(this.inlineEditTimeoutId), this.inlineEditTimeoutId = -1)
},
startInlineEditForSelectedItem: function() {
var e = this.SelectionMixinGetSelected();
e !== -1 && this.startInlineEdit(e)
},
startInlineEdit: function(e) {
if (this.props.isValidToEdit && this.props.saveTitle) {
var t = this.SelectionMixinGetAllSelected();
if (1 === t.length && t[0].id === e) {
var n = this.state.renderedArray.filter(function(t) {
return t.id === e
});
1 === n.length && this.props.isValidToEdit(n[0].id) && this.setState({
inlineEditId: e,
inlineEditText: this.props.getTitle(e)
})
}
}
},
setInlineEditText: function(e) {
this.setState({
inlineEditText: e
})
},
onInlineEditBlur: function() {
"MacIntel" === navigator.platform ? this.saveInlineEdit() : this.cancelInlineEdit()
},
cancelInlineEdit: function(e) {
this.setState({
inlineEditId: -1,
inlineEditText: ""
}, e)
},
saveInlineEdit: function(e) {
this.state.inlineEditId !== -1 && (this.props.saveTitle(this.state.inlineEditId, this.state.inlineEditText), this.setState({
inlineEditId: -1,
inlineEditText: ""
}, e))
},
onScrollEvent: function(e) {
this.forceUpdate()
},
getSelectedItem: function() {
return this.findTreeItem(this.SelectionMixinGetLead())
},
isfolderAndHasItems: function(e) {
return e && e.children && e.children.length > 0
},
getSelected: function() {
return this.SelectionMixinGetSelected()
},
getRenderedItems: function(e, t, n) {
var i = [];
if (!e || 0 === e.length) return i;
e = this.sortItems(e, n);
var a = function e(n) {
i.push(n), n.children && ("0" === n.id || t && t[n.id]) && n.children.forEach(e)
};
return e.forEach(a), i
},
sortItems: function(e, t) {
if (!t || !t.sortOrder || t.sortOrder <= f.NO_SORTING) return e;
e = v(e);
var n = t.comparator || f.getDefaultComparator(t.sortOrder, t.sortField);
return f.treeSort(e, n), e
},
getAllSelectedItems: function(e) {
var t = this.SelectionMixinGetAllSelected();
if (t.length <= 1 || e !== !0) return t;
t = t.slice();
var n = [],
i = function e(i) {
for (var a = 0; a < i.length && t.length > 0; a++) {
for (var r = i[a], s = !1, o = 0; o < t.length; o++)
if (t[o].id === r.id) {
s = !0, n.push(t.splice(o, 1)[0]);
break
}!s && r.children && e(r.children)
}
};
return i(this.props.nodes), n
},
findTreeItem: function(e) {
var t = null,
n = function n(i) {
return i.id === e ? t = i : void(i.children && i.children.forEach(n))
};
return this.props.nodes.forEach(n), t
},
findItemInFolder: function(e, t) {
var n = null,
i = function e(i) {
return i.id === t ? n = i : void(i.children && i.children.forEach(e))
};
return e.children.forEach(i), n
},
getIdsBetween: function(e, t) {
var n = this._findTreeIndex(e),
i = this._findTreeIndex(t),
a = [];
return a = n > i ? this.state.renderedArray.slice(i, n + 1) : this.state.renderedArray.slice(n, i + 1), a.map(function(e) {
return e.id
})
},
getAllIds: function() {
return this.state.renderedArray.map(function(e, t) {
return e.id || t
})
},
getSearchStyle: function() {
var e = _.getSync(this._searchStyleSettings);
return void 0 === e && (e = "tree"), e
},
setSearchStyle: function(e) {
var t = this,
n = {};
n[this._searchStyleSettings] = e, _.set(n, function() {
t.props.onSearchStyleChanged(e)
})
},
getContextMenuItems: function(e) {
var t = this,
n = this.props.getContextMenuItems ? this.props.getContextMenuItems(e) : [],
i = this.props.getContextMenuItemProps ? this.props.getContextMenuItemProps(e) : {},
a = function() {
n.length > 0 && (n = n.concat([{
name: "---"
}]))
};
if ((i.showNewItem || i.showNewFolder || i.showEdit || i.showRename) && (a(), n = n.concat([Object.assign({
handler: function() {
t.onAdd(!1)
},
testVisibility: function() {
return i.showNewItem
}
}, this.props.getContextMenuNewItemString()), Object.assign({
handler: function() {
t.onAdd(!0)
},
testVisibility: function() {
return i.showNewFolder
}
}, b("New Folder")), Object.assign({
handler: function() {
t.props.onEdit()
},
testVisibility: function() {
return i.showEdit
}
}, b("verb", "Edit")), Object.assign({
handler: function() {
return t.startInlineEditForSelectedItem()
},
testVisibility: function() {
return i.showRename
}
}, b("Rename"))])), (i.showCut || i.showCopy || i.showPaste) && (a(), n = n.concat([Object.assign({
handler: function() {
document.addEventListener("cut", t.onCut), document.execCommand("cut"), document.removeEventListener("cut", t.onCut)
},
visible: i.showCut === !0
}, b("verb", "Cut")), Object.assign({
handler: function() {
document.addEventListener("copy", t.onCopy), document.execCommand("copy"), document.removeEventListener("copy", t.onCopy)
},
visible: i.showCopy === !0
}, this.props.getContextMenuCopyString ? this.props.getContextMenuCopyString() : b("verb", "Copy")), Object.assign({
handler: function() {
document.addEventListener("paste", t.onPaste), document.execCommand("paste"), document.removeEventListener("paste", t.onPaste)
},
visible: i.showPaste === !0
}, b("verb", "Paste"))])), i.showDelete && (a(), n = n.concat([Object.assign({
handler: function() {
t.onDelete(!0)
}
}, b("verb", "Delete"))])), i.showExpandCollapse && (a(), n = n.concat([Object.assign({
handler: this.expandAll
}, b("Expand All Folders")), Object.assign({
handler: this.collapseAll
}, b("Collapse All Folders"))])), i.showSettings) {
a();
var r = this.getSearchStyle();
n = n.concat([Object.assign({
items: [Object.assign({
type: "checkbox",
checked: "flat" === r,
handler: this.setSearchStyle.bind(this, "flat")
}, b("Flat Search")), Object.assign({
type: "checkbox",
checked: "tree" === r,
handler: this.setSearchStyle.bind(this, "tree")
}, b("Tree Search"))]
}, b("Settings"))])
}
return i.showFullscreen && (a(), n = n.concat([Object.assign({
handler: c.fullScreen
}, b("Fullscreen"))])), n
},
renderTreeItem: function(e, t) {
var n = this.state.renderedArray[e];
n.treeIndex = e, void 0 === n.id && (n.id = e);
var a = this.SelectionMixinIsSelected(n.id),
s = this.SelectionMixinGetLead() === n.id,
o = this.state.cutIds.indexOf(n.id) > S,
l = !1;
a === !0 && (l = this.state.hasFocus || n.id === this.state.inlineEditId);
var c = this.props.enableDragAndDrop && this.state.inlineEditId !== n.id;
return c && this.props.isValidDragSource && (c = this.props.isValidDragSource(n)), r.createElement(p, {
key: t,
index: e,
treeItem: n,
ref: "treeItem",
isExpanded: n.isExpanded,
childCount: n.children ? n.children.length : 0,
toggle: this.toggleExpandModel,
onContextMenuOpen: this.onContextMenuOpen,
onMouseDown: this.onItemMouseDown,
onMouseUp: this.onItemMouseUp,
selected: a,
hasFocus: l,
lead: s,
isCut: o,
validateForDrag: this.props.validateForDrag,
onDragStart: this.stopInlineEditTimer,
supportDrop: this.props.enableDragAndDrop ? this.supportDropForItem : null,
onDragLeave: this.props.enableDragAndDrop ? this.onDragLeaveItem : null,
onDragOver: this.props.enableDragAndDrop ? this.onDragOverItem : null,
onDragEnd: this.onDragEndItem,
onDrop: this.onDrop,
mimeType: this.props.mimeType,
getDragData: this.props.getDragData,
dragover: this.state.dragOverObj.id === n.id,
dragOverObj: this.state.dragOverObj,
inlineEditText: this.state.inlineEditId === n.id ? this.state.inlineEditText : void 0,
setInlineEditText: this.setInlineEditText,
onInlineEditBlur: this.onInlineEditBlur,
getSelectedItem: this.getSelectedItem,
getAllSelectedItems: this.getAllSelectedItems,
isFolder: this.props.isFolder,
isDraggable: c,
hasChildren: this.props.hasChildren,
renderItemContent: this.props.renderItemContent,
getContextMenuItems: this.getContextMenuItems,
onItemClick: this.onItemClick,
onItemDoubleClick: this.onItemDoubleClick,
openInNewTab: this.openInNewTab,
onKeyDown: this.onItemKeyDown,
enableDragAndDrop: this.props.enableDragAndDrop,
__source: {
fileName: i,
lineNumber: 1550
}
})
},
render: function() {
return r.createElement("div", {
ref: "treeItems",
tabIndex: "0",
className: "vivaldi-tree",
onBlur: this.onLostFocus,
onFocus: this.onGotFocus,
onScroll: this.onScrollEvent,
onKeyDown: this.onKeyDown,
onDragOver: this.props.enableDragAndDrop ? this.onDragEmptyArea : null,
onDragLeave: this.props.enableDragAndDrop ? this.cancelDragOverObject : null,
onDrop: this.props.enableDragAndDrop ? this.onDropEmptyArea : null,
onClick: this.onClick,
__source: {
fileName: i,
lineNumber: 1606
}
}, r.createElement(d, {
ref: "treeListEntries",
itemRenderer: this.renderTreeItem,
length: this.state.renderedArray.length,
itemSizeGetter: this.props.itemSizeGetter,
type: this.props.treeType,
__source: {
fileName: i,
lineNumber: 1620
}
}))
}
});
e.exports = O
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_110
// =========================
"use strict";
function i(e) {
e ? "string" == typeof e ? (this.id = r(), this.address = e) : (this.id = e.id || r(), this.address = e.address, this.photo = e.photo, this.name = e.name, this.phone = e.phone, this.postal = e.postal, this.isGeneratedFromSentMail = e.isGeneratedFromSentMail) : this.id = r()
}
var a = n(360),
r = n(584);
i.prototype = {
defaultPhoto: n(949),
toString: function() {
return a(this)
},
isEmpty: function() {
return !(this.address || this.photo || this.name || this.phone || this.postal)
},
clearGenerated: function() {
this.isGeneratedFromSentMail && (this.isGeneratedFromSentMail = !1)
},
getAsJSON: function() {
return {
id: this.id,
photo: this.photo,
name: this.name,
address: this.address,
phone: this.phone,
postal: this.postal,
isGeneratedFromSentMail: this.isGeneratedFromSentMail
}
}
}, e.exports = i
}, function(e, t, n) {
// =========================
// Function_111
// =========================
"use strict";
function i(e) {
l = e, c.emitChange()
}
var a = n(18).EventEmitter,
r = n(8),
s = n(6),
o = "change",
l = {},
c = Object.assign({}, a.prototype, {
getActiveWebView: function(e) {
return l
},
emitChange: function() {
this.emit(o)
},
addChangeListener: function(e) {
this.on(o, e)
},
removeChangeListener: function(e) {
this.removeListener(o, e)
}
});
r.register(function(e) {
var t = e.action;
switch (t.actionType) {
case s.WEBVIEW_SET_ACTIVE:
i(t.webview);
break;
default:
return !0
}
}), e.exports = c
}, function(e, t, n) {
// =========================
// Function_112
// =========================
"use strict";
function i(e, t) {
t.get("isLoading") === !0 && "start" === t.get("trigger") && (v[e.get("id")] = h.Map()), g[e.get("id")] = t, S.emitChange()
}
function a(e, t) {
_[e.get("id")] = t, S.emitChange()
}
function r(e, t, n) {
v[e.get("id")] = h.Map({
state: t,
issuer: n
}), S.emitChange()
}
function s(e, t) {
var n = b[e.get("id")] || h.List();
n = n.push(t), b[e.get("id")] = n, S.emitChange()
}
function o(e, t) {
var n = b[e.get("id")];
n && (b[e.get("id")] = n.filter(function(e) {
return e !== t
}), S.emitChange())
}
function l(e, t, n, i) {
N = N.update(e.get("id"), h.Map(), function(e) {
return e.set(t, h.Map({
requestEvent: n,
blocked: i
}))
}), S.emitChange()
}
function c(e, t) {
var n = E[e.get("id")] || h.List();
n = n.push(t), E[e.get("id")] = n, S.emitChange()
}
function u(e) {
E[e.get("id")] = h.List(), S.emitChange()
}
function A(e) {
N = N.update(e.get("id"), h.Map(), function(e) {
return e.clear()
}), S.emitChange()
}
var d = n(18).EventEmitter,
h = n(27),
m = n(8),
p = n(6),
f = "change",
g = {},
_ = {},
v = {},
b = {},
N = h.Map(),
E = h.List(),
S = Object.assign({}, d.prototype, {
getNavigationInfo: function(e) {
return g[e.get("id")] || h.Map()
},
getProgressInfo: function(e) {
return _[e.get("id")] || h.Map()
},
getSSLInfo: function(e) {
return v[e.get("id")] || h.Map()
},
getBlockedPopups: function(e) {
return b[e.get("id")] || h.List()
},
getPermissionInfo: function(e) {
return N.get(e.get("id"), h.Map())
},
getblockedPageContents: function(e) {
return E[e.get("id")] || h.List()
},
emitChange: function() {
this.emit(f)
},
addChangeListener: function(e) {
this.on(f, e)
},
removeChangeListener: function(e) {
this.removeListener(f, e)
}
});
m.register(function(e) {
var t = e.action;
switch (t.actionType) {
case p.NAVIGATION_SET_STATE:
i(t.page, t.navigationState);
break;
case p.NAVIGATION_SET_PROGRESS:
a(t.page, t.progressState);
break;
case p.PAGE_SET_SSL_STATE:
r(t.page, t.state, t.issuer);
break;
case p.NAVIGATION_ADD_POPUP:
s(t.page, t.popupEvent);
break;
case p.NAVIGATION_REMOVE_POPUP:
o(t.page, t.popupEvent);
break;
case p.NAVIGATION_SET_PERMISSION:
l(t.page, t.permission, t.requestEvent, t.blocked);
break;
case p.NAVIGATION_RESET_PERMISSIONS:
A(t.page);
break;
case p.NAVIGATION_SET_BLOCKED_CONTENT:
c(t.page, t.content_type);
break;
case p.NAVIGATION_RESET_BLOCKED_CONTENT:
u(t.page);
break;
default:
return !0
}
}), e.exports = S
}, function(e, t) {
// =========================
// Function_113
// =========================
"use strict";
function n(e) {
var t = document.activeElement;
return !!t && i(t, e)
}
var i = function e(t, n) {
for (var i = n.children, a = !1, r = 0; r < i.length; r++) {
if (i[r] === t) return !0;
if (e(t, i[r])) {
a = !0;
break
}
}
return a
};
e.exports = n
}, function(e, t, n) {
// =========================
// Function_114
// =========================
"use strict";
function i(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function a(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function r(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
var s = n(27),
o = function(e) {
function t() {
return i(this, t), a(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments))
}
return r(t, e), t
}((0, s.Record)({
id: 0,
index: -1,
windowId: void 0,
openerTabId: null,
active: !1,
pinned: !1,
audible: "",
url: "",
title: "",
favIconUrl: "",
incognito: "",
sessionId: "",
extData: (0, s.Map)(),
target: (0, s.Map)(),
isRemoved: !1,
mediastate: void 0,
discarded: !1,
processexitstate: void 0,
favIcon: "",
fullscreen: !1
}));
e.exports = o
}, function(e, t, n) {
// =========================
// Function_115
// =========================
"use strict";
var i = n(17),
a = function(e) {
if (!e) return !1;
var t = e.getIn(["extData", "tiling", "id"]);
if (!t) return !1;
var n = i.getPages().filter(function(e) {
return e.getIn(["extData", "tiling", "id"]) === t
});
if (n.count() < 2) return !1;
var a = i.getActivePage().getIn(["extData", "tiling", "id"]);
return t && a && t === a
},
r = function(e) {
return !!e && (!!e.get("active") || !!a(e))
},
s = function(e) {
return !!e && i.isGroup(e.getIn(["extData", "group"]))
};
t.isPageVisible = r, t.isPageTiled = a, t.isPageGrouped = s
}, function(e, t, n) {
// =========================
// Function_116
// =========================
"use strict";
function i(e) {
return r(e)
}
function a(e) {
try {
e = i(e)
} catch (e) {}
return e
}
var r = n(935);
e.exports = a
}, , , , , , , , , , , , , function(e, t, n) {
// =========================
// Function_129
// =========================
"use strict";
function i(e, t) {
return (null === t.tab || void 0 === t.tab) && l.runtime.id === t.id && 0 === t.frameId
}
var a = n(173),
r = n(8),
s = n(6),
o = n(55),
l = n(4),
c = n(36),
u = void 0,
A = {
setFastForwardUrl: function(e, t, n) {
r.handleViewAction({
actionType: s.FAST_FORWARD_SET_FORWARD_URL,
pageId: e,
forwardUrl: t
})
},
_updateRewindInfo: function(e, t, n, i) {
r.handleViewAction({
actionType: s.FAST_FORWARD_SET_REWIND_INFO,
pageId: e,
history: i,
currentHostname: t,
currentIndex: n
})
},
setRewindInfo: function(e, t) {
var n = c.parse(t.get("url")).hostname;
e.getPageHistory(this._updateRewindInfo.bind(this, t.get("id"), n))
},
copyFastForwardState: function(e, t) {
r.handleViewAction({
actionType: s.FAST_FORWARD_COPY_STATE,
pageId: e.get("id"),
fastForwardState: t
})
},
navigateRewind: function(e) {
e && e.has("id") || (e = u.getActivePage());
var t = a.getRewindRelativeIndex(e);
o.go(t * -1)
},
navigateFastforward: function(e) {
e && e.has("id") || (e = u.getActivePage()), l.tabs.sendMessage(e.get("id"), {
navigateFastforward: !0
})
},
initTab: function(e) {
return e && e.has("id") ? void l.tabs.sendMessage(e.get("id"), {
pageId: e.get("id")
}) : TypeError("page with id required")
},
initFastForward: function() {
u = n(17), l.runtime.onMessage.addListener(function(e, t) {
"fastforwardUrlChanged" === e.action && i(e.pageId, t) && A.setFastForwardUrl(e.pageId, e.nextUrl, t.url)
})
}
};
e.exports = A
}, function(e, t, n) {
// =========================
// Function_130
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
function a() {
var e = h().startOf("date"),
t = h().endOf("date");
return new Promise(function(n) {
m.historyPrivate.visitSearch({
startTime: e.valueOf(),
endTime: t.valueOf()
}, function(e) {
o.handleViewAction({
actionType: l.VIVALDI_HISTORY_LOAD_TODAY,
historyItems: e
}), n()
})
})
}
function r() {
var e = h().add(-1, "d").endOf("date");
return new Promise(function(t) {
m.historyPrivate.visitSearch({
startTime: 0,
endTime: e.valueOf()
}, t)
})
}
var s = n(245),
o = n(8),
l = n(6),
c = n(74),
u = n(3),
A = n(4),
d = n(7),
h = n(44),
m = n(10),
p = [],
f = 5e3,
g = {
loadPromise: function() {
var e = this;
return c.isEnabled(c.kNewHistoryPage) ? a().then(function() {
var t = "HISTORY_" + s.getPanelResourceKey(),
n = u.getSync(t);
return n && o.handleViewAction({
actionType: l.VIVALDI_HISTORY_INIT_FILTER,
tab_id: s.getPanelResourceKey(),
setting: n
}), A.history.onVisited.addListener(a), r().then(function(t) {
p = d.map(t, function(e, n) {
return n % f === 0 ? t.slice(n, n + f) : null
}).filter(function(e) {
return e
}), window.requestIdleCallback(e.processHistoryData)
})
}) : Promise.resolve()
},
deleteHistoryPromise: function(e) {
return Promise.all(e.map(function(e) {
return new Promise(function(t) {
var n = new h(e.at),
i = {
url: e.url,
startTime: new h(n.startOf("day")).valueOf(),
endTime: new h(n.endOf("day")).valueOf()
};
m.historyPrivate.deleteVisits(i, function() {
o.handleViewAction({
actionType: l.CHROME_HISTORY_DELETE,
url: i.url,
startTime: i.startTime,
endTime: i.endTime
}), t()
})
})
}))
},
removeLocalHistory: function(e) {
o.handleViewAction({
actionType: l.VIVALDI_HISTORY_REMOVE_AFTER,
since: e
})
},
processHistoryData: function(e) {
for (; e.timeRemaining() > 0 && p.length > 0;) {
var t = p.pop();
o.handleViewAction({
actionType: l.VIVALDI_HISTORY_LOAD_YESTERDAY_AND_OLDER,
historyItems: t
})
}
p.length > 0 && window.requestIdleCallback(g.processHistoryData)
},
searchHistory: function(e, t) {
o.handleViewAction({
actionType: l.CHROME_HISTORY_SEARCH,
historyQuery: t,
tab_id: e
})
},
setDisplayMode: function(e, t) {
o.handleViewAction({
actionType: l.VIVALDI_HISTORY_DISPLAY_MODE_CHANGE,
tab_id: e,
displayMode: t
})
},
saveStateFromSearchQuery: function(e, t) {
var n = t.toJS();
u.set(i({}, "HISTORY_" + e, {
rangePicker: n.rangePicker,
startTime: n.startTime.valueOf(),
endTime: n.endTime.valueOf()
}))
}
};
e.exports = g
}, function(e, t, n) {
// =========================
// Function_131
// =========================
"use strict";
function i(e, t) {
l.setSwitcherVisible(t)
}
var a = n(8),
r = n(6),
s = n(3),
o = n(4),
l = {
loadPromise: function() {
return new Promise(function(e, t) {
o.windows.get(window.vivaldiWindowId, function(t) {
var n = t && t.extData ? JSON.parse(t.extData) : {},
i = {};
n.hasOwnProperty("SHOW_PANEL_CONTENT") && (i.showContent = n.SHOW_PANEL_CONTENT), n.hasOwnProperty("SHOW_PANEL") && (i.showButtons = n.SHOW_PANEL), n.hasOwnProperty("PANEL_WIDTH") && (i.width = n.PANEL_WIDTH), n.hasOwnProperty("SELECTED_PANEL") && (i.selectedPanel = n.SELECTED_PANEL), void 0 === i.showButtons ? s.get("PANEL_STATE", function(e) {
if (void 0 !== e) {
var t = Array.isArray(e) ? e[0] : e;
i.showButtons = t.barVisible, i.showContent = t.panelVisible, i.width = t.width, i.selectedPanel = t.selectedPanel, l.setState(i)
}
}) : l.setState(i), e()
}), l.setSwitcherVisible(s.getSync("SHOW_PANEL_SWITCH")), s.addListener("SHOW_PANEL_SWITCH", i), s.addListener("WEB_PANEL_LIST", l.setPanels), s.addListener("REG_PANEL_LIST", l.setPanels), l.resetPanels("REG_PANEL_LIST");
var n = s.getSync("WEB_PANEL_LIST");
void 0 !== n && l.setPanels(null, n, "WEB_PANEL_LIST");
var a = s.getSync("REG_PANEL_LIST");
void 0 !== a && l.setPanels(null, a, "REG_PANEL_LIST")
})
},
setFocus: function() {
a.handleViewAction({
actionType: r.PANEL_SET_FOCUS
})
},
showNextPanel: function(e) {
a.handleViewAction({
actionType: r.PANEL_SHOW_NEXT,
DIRECTION: e
})
},
setContentVisible: function(e) {
a.handleViewAction({
actionType: r.PANEL_SET_CONTENT_VISIBLE,
visible: e
})
},
setSwitcherVisible: function(e) {
a.handleViewAction({
actionType: r.PANEL_SET_SWITCHER_VISIBLE,
visible: e
})
},
togglePanel: function() {
a.handleViewAction({
actionType: r.PANEL_TOGGLE_PANEL
})
},
toggleContent: function(e) {
a.handleViewAction({
actionType: r.PANEL_TOGGLE_CONTENT,
panel: e
})
},
showContent: function(e, t, n) {
a.handleViewAction({
actionType: r.PANEL_SHOW_CONTENT,
panel: e,
show: t,
setFocus: n
})
},
setAvailable: function(e, t) {
a.handleViewAction({
actionType: r.PANEL_SET_AVAILABLE,
panel: e,
available: t
})
},
setWidth: function(e, t) {
a.handleViewAction({
actionType: r.PANEL_SET_WIDTH,
panel: e,
width: t
})
},
setPanelResizable: function(e, t) {
a.handleViewAction({
actionType: r.PANEL_SET_RESIZABLE,
panel: e,
resizable: t
})
},
resetPanels: function(e) {
a.handleViewAction({
actionType: r.PANEL_RESET_PANELS,
key: e
})
},
setPanels: function(e, t, n) {
a.handleViewAction({
actionType: r.PANEL_SET_PANELS,
key: n,
value: t,
oldValue: e
})
},
setState: function(e) {
a.handleViewAction({
actionType: r.PANEL_SET_STATE,
state: e
})
},
setMailWindowId: function(e) {
a.handleViewAction({
actionType: r.PANEL_SET_MAIL_WINDOW_ID,
windowId: e
})
},
setActiveWindowId: function(e) {
a.handleViewAction({
actionType: r.PANEL_SET_ACTIVE_WINDOW_ID,
windowId: e
})
}
};
e.exports = l
}, function(e, t, n) {
// =========================
// Function_132
// =========================
"use strict";
var i = n(8),
a = n(6),
r = n(204),
s = r.values,
o = function(e, t) {
return t ? setTimeout(e, t) : e()
},
l = {},
c = {
clearTooltip: function() {
c._clearAllTooltipTimeouts(), i.handleViewAction({
actionType: a.TOOLTIP_CLEAR
})
},
showTooltip: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
c._clearTooltipTimeout(e), l[e] = o(function() {
return i.handleViewAction({
actionType: a.TOOLTIP_SHOW,
id: e
})
}, t)
},
hideTooltip: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
c._clearTooltipTimeout(e), l[e] = o(function() {
return i.handleViewAction({
actionType: a.TOOLTIP_HIDE,
id: e
})
}, t)
},
_clearAllTooltipTimeouts: function() {
s(l).filter(Boolean).forEach(clearTimeout), l = {}
},
_clearTooltipTimeout: function(e) {
l[e] && (l[e] = clearTimeout(l[e]))
}
};
e.exports = window.TooltipActions = c
}, function(e, t, n) {
// =========================
// Function_133
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/FocusTrap.jsx",
r = n(1),
s = n(11),
o = n(13),
l = n(7),
c = l.omit,
u = r.createClass({
displayName: "FocusTrap",
mixins: [o],
vivaldiSettingsKeys: ["FOCUS_CYCLE_TRAP"],
propTypes: {
focusName: r.PropTypes.string.isRequired,
component: r.PropTypes.any
},
getDefaultProps: function() {
return {
component: "div"
}
},
_getFocusable: function() {
var e = s.findDOMNode(this).querySelectorAll("a[href]:not([tabindex='-1']),\n button:not([disabled]):not([tabindex='-1']),\n input:not([disabled]):not([tabindex='-1']),\n select:not([disabled]):not([tabindex='-1']),\n textarea:not([disabled]):not([tabindex='-1']),\n [tabindex]:not([tabindex='-1']):not(." + this.props.focusName + ")");
return {
firstFocus: e[0],
lastFocus: e[e.length - 1]
}
},
handleTopFocus: function(e) {
var t = this._getFocusable(),
n = t.firstFocus,
i = t.lastFocus;
e.relatedTarget === n ? i.focus() : n.focus()
},
handleBottomFocus: function(e) {
var t = this._getFocusable(),
n = t.firstFocus,
i = t.lastFocus;
e.relatedTarget === i ? n.focus() : i.focus()
},
render: function() {
var e = this.props.component,
t = c(this.props, Object.keys(u.propTypes));
return this.state.FOCUS_CYCLE_TRAP === !1 ? r.createElement(e, i({}, t, {
__source: {
fileName: a,
lineNumber: 63
}
}), this.props.children) : r.createElement(e, i({}, t, {
__source: {
fileName: a,
lineNumber: 69
}
}), r.createElement("span", {
tabIndex: "0",
className: this.props.focusName,
onFocus: this.handleTopFocus,
__source: {
fileName: a,
lineNumber: 70
}
}), this.props.children, r.createElement("span", {
tabIndex: "0",
className: this.props.focusName,
onFocus: this.handleBottomFocus,
__source: {
fileName: a,
lineNumber: 74
}
}))
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_134
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/SlideBar.jsx",
r = n(1),
s = n(5),
o = n(7),
l = o.noop,
c = ".fullwidth, .fullheight",
u = r.createClass({
displayName: "SlideBar",
rafHandle: null,
propTypes: {
margin: r.PropTypes.number,
onStart: r.PropTypes.func,
onStop: r.PropTypes.func,
onDoubleClick: r.PropTypes.func,
onSlidebarMove: r.PropTypes.func
},
getDefaultProps: function() {
return {
margin: 0,
onStart: l,
onStop: l,
onDoubleClick: l
}
},
getInitialState: function() {
return {
touchActive: !1
}
},
componentWillUnmount: function() {
window.removeEventListener("touchmove", this.handleTouchMove), window.removeEventListener("mousemove", this.handleMouseMove), window.removeEventListener("touchend", this.handleStop), window.removeEventListener("mouseup", this.handleStop)
},
handleClick: function(e) {
1 === e.button && this.handleDoubleClick(e)
},
handleDoubleClick: function(e) {
this.props.onDoubleClick(e)
},
handleMouseDown: function(e) {
0 === e.button && (e.preventDefault(), window.addEventListener("mousemove", this.handleMouseMove, {
passive: !0
}), window.addEventListener("mouseup", this.handleStop, {
passive: !0
}), this.startDragging(e))
},
handleMouseUp: function(e) {
1 === e.button ? this.handleDoubleClick(e) : this.handleStop()
},
handleTouchStart: function(e) {
e.preventDefault(), window.addEventListener("touchmove", this.handleTouchMove, {
passive: !0
}), window.addEventListener("touchend", this.handleStop, {
passive: !0
}), this.setState({
touchActive: !0
}), this.startDragging(e.touches[0])
},
handleMouseMove: function(e) {
this.handleMove(e)
},
handleTouchMove: function(e) {
e.preventDefault(), this.handleMove(e.touches[0])
},
startDragging: function(e) {
this.props.onStart(), this.setParentWillChange()
},
handleMove: function(e) {
this.props.onSlidebarPosition(e.pageX, e.pageY)
},
handleStop: function() {
this.props.onStop(), this.setState({
touchActive: !1
}), this.removeParentWillChange(), window.removeEventListener("touchmove", this.handleTouchMove), window.removeEventListener("touchend", this.handleStop), window.removeEventListener("mousemove", this.handleMouseMove), window.removeEventListener("mouseup", this.handleStop)
},
setParentWillChange: function() {
[].forEach.call(document.querySelectorAll(c), function(e) {
e.parentNode.style.setProperty("will-change", "width, height"), e.parentNode.style.setProperty("transition-duration", "0ms")
})
},
removeParentWillChange: function() {
[].forEach.call(document.querySelectorAll(c), function(e) {
e.parentNode.style.removeProperty("will-change"), e.parentNode.style.removeProperty("transition-duration")
})
},
render: function() {
var e, t = this.props.position,
n = "left" === t || "right" === t ? "fullheight" : "fullwidth",
o = "right" === t || "bottom" === t ? "alternate" : "";
return r.createElement("button", {
tabIndex: "-1",
onTouchStart: this.handleTouchStart,
onTouchEnd: this.handleStop,
onMouseDown: this.handleMouseDown,
onMouseUp: this.handleMouseUp,
onDoubleClick: this.handleDoubleClick,
className: s((e = {}, i(e, n, !0), i(e, o, "" !== o), i(e, "touch-active", this.state.touchActive), e)),
__source: {
fileName: a,
lineNumber: 137
}
})
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_135
// =========================
"use strict";
function i(e) {
return e.flags.indexOf("\\Seen") === -1
}
function a(e) {
return e.flags.indexOf("\\Flagged") >= 0
}
function r(e) {
return e.flags.indexOf("$Forwarded") >= 0
}
function s(e) {
return e.flags.indexOf("\\Answered") >= 0
}
function o(e) {
return e.flags.indexOf("\\Deleted") >= 0
}
function l(e, t) {
function n(t, n) {
n ? e.includes(t) || e.push(t) : m(e, function(e) {
return e === t
})
}
e = h(e);
var i = !0,
a = !1,
r = void 0;
try {
for (var s, o = Object.keys(t)[Symbol.iterator](); !(i = (s = o.next()).done); i = !0) {
var l = s.value,
c = t[l];
switch (l) {
case "unread":
n("\\Seen", !c);
break;
case "flagged":
n("\\Flagged", c);
break;
case "replied":
n("\\Answered", c);
break;
case "deleted":
n("\\Deleted", c);
break;
case "draft":
n("\\Draft", c);
break;
case "forwarded":
n("$Forwarded", c);
break;
default:
console.warn("Unknown flag: " + l)
}
}
} catch (e) {
a = !0, r = e
} finally {
try {
!i && o.return && o.return()
} finally {
if (a) throw r
}
}
return e
}
function c(e, t) {
return e.length === t.length && e.every(function(e) {
return t.includes(e)
})
}
function u(e, t) {
function n(n, a) {
var r = e.includes(a),
s = t.includes(a);
r !== s && i.push(n)
}
var i = [];
return n("unread", "\\Seen"), n("flagged", "\\Flagged"), n("replied", "\\Answered"), n("deleted", "\\Deleted"), n("draft", "\\Draft"), n("forwarded", "$Forwarded"), i
}
function A(e) {
switch (e) {
case "unread":
return f;
case "flagged":
return g;
case "forwarded":
return _;
case "replied":
return v;
default:
console.warn("Unknown flag " + e)
}
}
var d = n(7),
h = d.clone,
m = d.remove,
p = n(42),
f = p.BUFFER_OPERATION_MARKUNREAD,
g = p.BUFFER_OPERATION_MARKFLAGGED,
_ = p.BUFFER_OPERATION_MARKFORWARDED,
v = p.BUFFER_OPERATION_MARKREPLIED;
e.exports.isUnread = i, e.exports.isFlagged = a, e.exports.isForwarded = r, e.exports.isReplied = s, e.exports.isDeleted = o, e.exports.updateFlags = l, e.exports.areFlagsMatching = c, e.exports.getUpdatedFlags = u, e.exports.getBufferOperation = A
}, function(e, t, n) {
// =========================
// Function_136
// =========================
(function(t) {
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
return t === g.OMNI_RESULT_BOOKMARK_URL_HOST ? e + 500 : t === g.OMNI_RESULT_BOOKMARK_PROMOTED ? e + 200 : e
}
function r(e, t) {
return 2 * t.visitCount + (e === g.OMNI_RESULT_HISTORY_PROMOTED ? 200 : 0) - 100 * ((t.url.match(/\//g) || []).length - 3)
}
var s = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/urlfield.jsx",
o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
l = n(88),
c = i(l),
u = n(20),
A = n(59),
d = i(A),
h = n(1178),
m = i(h),
p = n(40),
f = n(51),
g = n(171),
_ = n(37),
v = n(9),
b = n(1),
N = n(11),
E = n(349),
S = n(248),
T = n(65),
y = n(97),
C = n(6),
I = n(55),
O = n(4),
w = n(5),
D = n(90),
k = n(771),
M = n(774),
L = n(7),
P = n(116),
R = n(785),
x = n(36),
B = n(10),
U = n(379),
F = U.OmniNavigation,
H = n(46),
V = H.hasUnknownProtocol,
W = H.removeProtocol,
G = D("urlfield"),
K = !1,
j = !0,
z = 350,
Y = "./%?=-#@&;,$\"'()[]<>^~`{}+".split(""),
J = {},
Q = [],
Z = 0,
q = b.createClass({
displayName: "UrlField",
mixins: [v],
_typedUrl: "",
_complist: [],
_results: {},
_isSearching: !1,
_isIMEOpen: !1,
propTypes: {
autocompletionEnabled: b.PropTypes.bool,
encodeCutCopy: b.PropTypes.bool,
hideDropdown: b.PropTypes.func,
isOmniDropdownOpen: b.PropTypes.bool,
isTypedHistoryOpen: b.PropTypes.bool,
onDelete: b.PropTypes.func,
onKeyPressed: b.PropTypes.func,
onUrlFieldChanged: b.PropTypes.func,
selectOnClick: b.PropTypes.bool,
suggestEnabled: b.PropTypes.bool
},
getInitialState: function() {
return {
isFocused: !1
}
},
componentDidMount: function() {
var e = this.refs.urlInput;
e.addEventListener("blur", this.onBlur), e.addEventListener("focus", this.onFocus), e.addEventListener("select", this.onSelected), e.addEventListener("compositionstart", this.onCompositionStart), e.addEventListener("compositionupdate", this.onCompositionStart), e.addEventListener("compositionend", this.onCompositionEnd), S.addChangeListener(this._onSearchSuggestionsChanged), y.addChangeListener(this._onUrlbarStoreChanged), addEventListener("keydown", this.onKeyDown), addEventListener("keyup", this.onKeyUp), J[g.OMNI_TYPE_INTERNAL] = u.vivaldiUrls.reduce(function(e, t) {
e.push({
url: t,
id: t,
type: g.OMNI_RESULT_INTERNAL
});
var n = t.replace(/\/\//, "");
return e.push({
url: n,
id: n,
type: g.OMNI_RESULT_INTERNAL
}), e
}, [])
},
componentWillUnmount: function() {
var e = this.refs.urlInput;
e.removeEventListener("blur", this.onBlur), e.removeEventListener("focus", this.onFocus), e.removeEventListener("select", this.onSelected), e.removeEventListener("compositionstart", this.onCompositionStart), e.removeEventListener("compositionupdate", this.onCompositionStart), e.removeEventListener("compositionend", this.onCompositionEnd), S.removeChangeListener(this._onSearchSuggestionsChanged), y.removeChangeListener(this._onUrlbarStoreChanged), removeEventListener("keydown", this.onKeyDown), removeEventListener("keyup", this.onKeyUp), Object.keys(J).forEach(function(e) {
return delete J[e]
})
},
componentWillReceiveProps: function(e) {
!e.editUrl && this._typedUrl && (this._typedUrl = ""), e.pageId !== this.props.pageId && this._cleanupState()
},
_onSearchSuggestionsChanged: function(e) {
var n = this,
i = e.suggestions,
a = e.query,
r = e.uid;
if (Q.includes(r)) {
var s = this._maybeRemovePrefix(this._typedUrl);
"" !== s && "" !== a && "string" == typeof s && "string" == typeof a && (s.startsWith(a) || a.startsWith(s)) && t.nextTick(function() {
return n.searchDoneSuggest(i)
})
}
},
_onUrlbarStoreChanged: function(e) {
e === C.URLFIELD_TYPED_HISTORY_DELETE && this.props.isOmniDropdownOpen && this.searchTypedHistory(this._typedUrl, !0)
},
updateDropDown: function() {
G("updating dropdown"), "function" == typeof this.props.showDropdown && (this._hasLeftPage || "" === N.findDOMNode(this).value || this.props.showDropdown(this._complist, this._typedUrl))
},
getTypedURL: function() {
return this._typedUrl
},
getDropdown: function() {
return "function" == typeof this.props.getDropdown && this.props.getDropdown()
},
getSelectionIndex: function() {
return this.props.selectionIndex
},
_shouldAutocompleteTitle: function() {
return j && this.props.autocompleteOnTitle === !0
},
updateAutocomplete: function(e) {
if (this.props.autocompletionEnabled && !this._isIMEOpen && (!Array.isArray(e) || 0 !== e.length)) {
if (null == e || "undefined" == typeof e.url && (!Array.isArray(e.urls) || 0 === e.urls.length)) throw TypeError("updateAutocomplete needs an item with an url(s) property", e);
var t = (this._typedUrl || "").length,
n = e.url.indexOf("://") + 1;
n > 0 && (n += 2);
var i = "",
a = 0;
e.type === g.OMNI_RESULT_BOOKMARK_TITLE_EXACT ? i = this._typedUrl + e.title.substr(this._typedUrl.length) : (a = e.url.startsWith(this._typedUrl) ? 0 : e.url.substr(n).toLowerCase().indexOf(this._typedUrl.toLowerCase()) + n, i = e.url.substr(0, a) + this._typedUrl + e.url.substr(a + this._typedUrl.length));
var r = N.findDOMNode(this),
s = r.value && r.selectionEnd === r.value.length;
0 !== a && a !== n && (a !== n + 4 || "www." !== i.substr(n, 4)) || this._completed ? e.nickname && e.nickname === this._typedUrl && s && (T.setUrlfieldState(this.props.pageId, {
editUrl: e.nickname,
selectionStart: e.nickname.length,
selectionEnd: e.nickname.length
}), this.refs.urlInput.selectionDirection = "backward") : (this._completed = !0, s && (T.setUrlfieldState(this.props.pageId, {
editUrl: i.substr(a),
selectionStart: t,
selectionEnd: i.length - a
}), this.refs.urlInput.selectionDirection = "backward"))
}
},
getCompleted: function(e) {
if (!Array.isArray(e)) throw TypeError("getCompleted needs a list of items");
if (0 === e.length || this.props.autocompletionEnabled === !1) return [];
for (var t = -1, n = -1, i = -1, a = -1, r = -1, s = 0; s < e.length; s++) {
var o = e[s];
if (o.type !== g.OMNI_RESULT_FOLDER_NICKNAME && "string" == typeof o.url && "" !== o.url.length) {
var l = o.url.indexOf("://") + 1;
l > 0 && (l += 2);
var c = o.url.toLowerCase().indexOf(this._typedUrl.toLowerCase());
0 !== c && (c = o.url.substr(l).toLowerCase().indexOf(this._typedUrl.toLowerCase()), c > -1 && (c += l));
var u = 0 === o.type.indexOf("OMNI_RESULT_BOOKMARK"),
A = 0 === c || c === l || c === l + 4 && "www." === o.url.substr(l, 4);
if (o.nickname && this._typedUrl.toLowerCase() === o.nickname.toLowerCase()) return o;
A ? (o.type !== g.OMNI_RESULT_HISTORY_PROMOTED || i !== -1 && !R(e[i], o) ? o.type !== g.OMNI_RESULT_BOOKMARK_PROMOTED || t !== -1 && !R(e[t], o) ? 0 !== o.type.indexOf("OMNI_RESULT_HISTORY") && 0 !== o.type.indexOf("OMNI_RESULT_INTERNAL") || i !== -1 ? u && (t === -1 || R(e[t], o)) ? t = s : 0 === o.type.indexOf("OMNI_RESULT_TYPED_HISTORY") && (r === -1 ? r = s : R(e[r], o) && (r = s)) : i = s : t = s : i = s, this.props.autcompletionPreferBookmarks !== !0 && a === -1 && (a = [t, i].find(function(e) {
return e !== -1 && "number" == typeof e
}))) : this._shouldAutocompleteTitle() && u && 0 === o.title.toLowerCase().indexOf(this._typedUrl.toLowerCase()) && (n === -1 ? n = s : e[n].title.length < o.title.length && (n = s))
}
}
var d = [t, n, r, i].find(function(e) {
return e !== -1 && "number" == typeof e
});
return this.props.autocompletionPreferBookmarks === !1 ? a !== -1 && (d = a) : t !== -1 ? d = t : n !== -1 && (d = n), G("Complete", d, "bm=", t, "bt", n, "th=", r, "hi=", i), d >= 0 ? e[d] : void 0
},
canUpdateAutocomplete: function(e) {
return this._results[g.OMNI_TYPE_HISTORY] && this._results[g.OMNI_TYPE_BOOKMARK] && (e === g.OMNI_TYPE_HISTORY || e === g.OMNI_TYPE_BOOKMARK)
},
searchDone: function(e, t) {
this._results[e] = !0, J[e] = t, this._complist = [].concat(J[g.OMNI_TYPE_HISTORY] || [], J[g.OMNI_TYPE_BOOKMARK] || [], (J[g.OMNI_TYPE_TYPED_HISTORY] || []).map(function(e) {
return L.assign(e, {
type: g.OMNI_RESULT_TYPED_HISTORY,
id: e.url
})
}).sort(function(e, t) {
return t.when - e.when
}), J[g.OMNI_TYPE_SUGGEST] || [], J[g.OMNI_TYPE_INTERNAL] || []), this.canUpdateAutocomplete(e) && (G("typed", this._typedUrl, "edit", this.props.editUrl, "display", this.props.displayUrl, "complist", this._complist, "incremeneted?", this.inputWasIncr, "decremented?", this.inputWasDecr), this.inputWasIncr ? (this._completedItem = this.getCompleted([].concat(J[g.OMNI_TYPE_HISTORY] || [], J[g.OMNI_TYPE_BOOKMARK] || [], J[g.OMNI_TYPE_INTERNAL] || [])), this._completedItem && this.updateAutocomplete(this._completedItem), G("picked completed item", this._completedItem)) : (this._completedItem = void 0, this._completed = !1), this._isSearching = !1, void 0 !== this._delayedEnterPressedEvent && (this.onEnterKeyPressed(this._delayedEnterPressedEvent), this._delayedEnterPressedEvent = void 0)), this.updateDropDown()
},
searchDoneBookmarks: function(e) {
return this.searchDone(g.OMNI_TYPE_BOOKMARK, e)
},
searchDoneHistory: function(e) {
return this.searchDone(g.OMNI_TYPE_HISTORY, e)
},
searchDoneTypedHistory: function(e) {
return this.searchDone(g.OMNI_TYPE_TYPED_HISTORY, e)
},
_maybePrefixWithKeyword: function(e) {
return this.props.typedSearchEngine && this.props.typedSearchEngine.Keyword && !e.startsWith(this.props.typedSearchEngine.Keyword + " ") ? this.props.typedSearchEngine.Keyword + " " + e : e
},
_maybeRemovePrefix: function(e) {
var t = this.props.typedSearchEngine;
return t && this._typedUrl.startsWith(t.Keyword + " ") ? this._typedUrl.substr(t.Keyword.length + 1) : e
},
searchDoneSuggest: function(e) {
var t = this;
return e = e.map(function(e) {
return {
id: e,
url: t._maybePrefixWithKeyword(e),
type: g.OMNI_RESULT_SUGGEST
}
}), this.searchDone(g.OMNI_TYPE_SUGGEST, e)
},
getBookmarkType: function(e, t) {
var n = "",
i = t.join(" "),
a = new RegExp(k(i), "gi");
return e.nickname && e.nickname === i ? n = g.OMNI_RESULT_BOOKMARK_NICKNAME : e.children || "string" != typeof e.url || (M(i, e.url) ? n = g.OMNI_RESULT_BOOKMARK_URL_HOST : this._shouldAutocompleteTitle() && e.title && e.title.toLowerCase().startsWith(i.toLowerCase()) ? n = g.OMNI_RESULT_BOOKMARK_TITLE_EXACT : null !== e.url.match(a) ? n = "/" === e.url.charAt(e.url.length - 1) ? g.OMNI_RESULT_BOOKMARK_PROMOTED : g.OMNI_RESULT_BOOKMARK_URL : e.title && null !== e.title.match(a) ? n = g.OMNI_RESULT_BOOKMARK_TITLE : e.description && null !== e.description.match(a) && (n = g.OMNI_RESULT_BOOKMARK_DESCRIPTION)), n
},
getHistoryType: function(e, t) {
var n = "",
i = t.join(" ").toLowerCase();
return e.url && e.url.toLowerCase().includes(i) ? n = "/" === e.url.charAt(e.url.length - 1) ? g.OMNI_RESULT_HISTORY_PROMOTED : g.OMNI_RESULT_HISTORY_URL : e.title && e.title.toLowerCase().includes(i) && (n = g.OMNI_RESULT_HISTORY_TITLE), n
},
onBookmarksSearched: function(e, t, n, i, r) {
var s = [],
o = null,
l = 100;
if (K && console.timeEnd("bookmarks"), this.props.pageId !== n || this._hasLeftPage) return this.searchDoneBookmarks([]);
var c = function(t) {
if (!t.trash) {
var n = u.urls.getDisplayUrl(t.url);
o = this.getBookmarkType(t, e), t.children ? ("" !== o && ! function() {
var e = [];
t.children.forEach(function(t) {
t.children || (e = e.concat(t.url))
}), s.push({
id: t.id,
urls: e,
title: t.title,
type: g.OMNI_RESULT_FOLDER_NICKNAME,
score: a(l, g.OMNI_RESULT_FOLDER_NICKNAME),
nickname: t.nickname
})
}(), t.children.forEach(c)) : "" !== o && s.push({
id: t.id,
url: n,
title: t.title,
type: o,
score: a(l, o),
nickname: t.nickname
})
}
}.bind(this);
r.forEach(c), this.props.pageId !== n || this._hasLeftPage || this.searchDoneBookmarks(s), K && console.log("Bookmark search for", t, "on", n, "returned", s.length, "results", "took", ((Date.now() - i) / 1e3).toFixed(2), "s")
},
searchHistory: function(e) {
var t = e.replace(/\s+/g, " ").split(" ");
if (0 === t.length) return this.searchDoneHistory([]);
G("words", t.length, t, "|" + e + "|"), K && console.time("history");
var n = t.join(" ").replace(/^\s+|\s+$/g, "");
G("searching history", n, this.props.pageId);
var i = O.history.search;
B.historyPrivate.dbSearch && (i = B.historyPrivate.dbSearch), i({
text: n,
startTime: 0,
maxResults: 1e3
}, function(e, i, a) {
var s = this;
if (K && console.timeEnd("history"), this.props.pageId !== e || this._hasLeftPage) return this.searchDoneHistory([]);
G("got", a.length, "history results for term", n);
var o = a.map(function(e) {
if ("string" == typeof e.url && e.url.length < 2048 && ["http", "file", "ftp"].some(function(t) {
return e.url.startsWith(t)
})) {
var n = s.getHistoryType(e, t);
if ("" !== n) return {
id: e.url,
lastVisit: e.lastVisitTime,
score: r(n, e),
title: e.title,
type: n,
typed: e.typedCount > 0,
url: u.urls.getDisplayUrl(e.url)
}
}
}).filter(L.negate(L.isUndefined)).sort(function(e, t) {
return t.score - e.score
});
this.props.pageId !== e || this._hasLeftPage || this.searchDoneHistory(o), K && console.log("History search for", n, "on", e, "returned", o.length, "results", "took", ((Date.now() - i) / 1e3).toFixed(2), "s")
}.bind(this, this.props.pageId, Date.now()))
},
searchBookmarks: function(e) {
var t = e.replace(/\s+/g, " ").split(" ");
if (0 === t.length) return this.searchDoneBookmarks([]);
K && console.time("bookmarks");
var n = this.onBookmarksSearched.bind(this, t, e, this.props.pageId, Date.now());
L.delay(n, 50, [f.getBookmarksRootNode()])
},
searchTypedHistory: function(e, t) {
this.searchDoneTypedHistory(y.getTypedHistory(function(t) {
return t.url.indexOf(e) !== -1
}), t)
},
_throttledSearchSuggest: L.throttle(function(e, t) {
var n = E.suggest(e, t);
Q = L.takeRight(Q.concat(n), 10)
}, 500, {
leading: !1
}),
onClicked: function(e) {
var t = e.target,
n = e.ctrlKey,
i = e.metaKey,
a = t.selectionStart === t.selectionEnd,
r = 0 === t.selectionStart && t.selectionEnd === t.value.length;
if (0 === e.button && Z && Date.now() - Z < z) {
if (Z = 0, a || r) {
for (var s = 0, o = t.value.length, l = function(e) {
if (Y.some(function(n) {
return t.value[e] === n
})) return s = e + 1, "break"
}, c = this._lastSelectionStart; c >= 0; c--) {
var u = l(c);
if ("break" === u) break
}
for (var A = function(e) {
if (Y.some(function(n) {
return t.value[e] === n
})) return o = e, "break"
}, h = this._lastSelectionEnd; h < t.value.length; h++) {
var m = A(h);
if ("break" === m) break
}
this._lastSelectionStart = s, this._lastSelectinEnd = o, T.setUrlfieldState(this.props.pageId, {
selectionStart: s,
selectionEnd: o
})
}
} else {
Z = Date.now();
var p = "mac" === (0, d.default)() ? i : n;
if (p && a) {
for (var f = 0, g = function(e) {
if (Y.some(function(n) {
return "." !== n && t.value[e] === n
})) return f = e, "break"
}, _ = t.selectionStart; _ < t.value.length; _++) {
var v = g(_);
if ("break" === v) break
}
if (f > 0) {
var b = t.value.substr(0, f);
t.value = b, this.props.fieldGo()
}
} else this.props.selectOnClick !== !1 && t.selectionStart === t.selectionEnd ? this._focusedOnMouseDown !== N.findDOMNode(this) ? (this._lastSelectionStart = t.selectionStart, this._lastSelectionEnd = t.selectionEnd, "function" == typeof t.select && t.select(), this._focusedOnMouseDown = null) : this.onSelected({
target: t
}) : T.setUrlfieldState(this.props.pageId, {
selectionStart: t.selectionStart,
selectionEnd: t.selectionEnd
})
}
},
onMouseDown: function(e) {
this._focusedOnMouseDown = document.activeElement
},
onMouseMove: function(e) {
this._isMouseOver = !0, "mac" === (0, d.default)() && e.metaKey || e.ctrlKey ? this.refs.urlInput.style.cursor = "pointer" : "pointer" === this.refs.urlInput.style.cursor && (this.refs.urlInput.style.cursor = "")
},
onMouseOver: function(e) {
this.onMouseMove(e)
},
onMouseOut: function(e) {
this.refs.urlInput.style.cursor = "", this._isMouseOver = !1
},
onChanged: function(e) {
var t = e.target;
T.setUrlfieldState(this.props.pageId, {
editUrl: t.value,
selectionStart: t.selectionStart,
selectionEnd: t.selectionEnd
}), "" !== t.value.trim() ? this.performSearch() : (L.filter(Object.keys(J), function(e) {
return e !== g.OMNI_TYPE_INTERNAL
}).forEach(function(e) {
return J[e] = []
}), this.hideDropdown()), "function" == typeof this.props.onUrlFieldChanged && this.props.onUrlFieldChanged(t.value)
},
_ignoreNextSelect: !1,
onSelected: function(e) {
if (this._ignoreNextSelectEvent === !0) return void(this._ignoreNextSelectEvent = !1);
if (e && e.target) {
var t = e.target;
G("got select event", e, e.nativeEvent, t.selectionStart, t.selectionEnd, t.value), "" !== t.value.trim() ? (T.setUrlfieldState(this.props.pageId, {
selectionStart: t.selectionStart,
selectionEnd: t.selectionEnd
}), t.selectionEnd === t.value.length && (this._typedUrl = t.value.substr(0, t.selectionStart), this._ignoreNextSelectEvent = !0)) : T.setUrlfieldState(this.props.pageId, {
selectionStart: null,
selectionEnd: null
})
}
},
onCompositionStart: function() {
this._isIMEOpen = !0
},
onCompositionEnd: function() {
this._isIMEOpen = !1
},
_cleanupState: function() {
this._results = {}, this._completed = !1, this._complist = [], this._delayedEnterPressedEvent = this._completedItem = void 0
},
_throttledSearch: L.throttle(function(e, t, n) {
if (G("throttled search fired", this._typedUrl, n, this.props.pageId), this.props.pageId === n && !this._hasLeftPage)
if (this._isSearching) this._isSearching = !1, this._throttledSearch.apply(this, arguments);
else {
this._isSearching = !0, this._cleanupState(), this.searchHistory(this._typedUrl), this.searchBookmarks(this._typedUrl), this.searchTypedHistory(this._typedUrl);
var i = this.props,
a = i.typedSearchEngine,
r = i.defaultSearchEngine;
if (this.props.suggestEnabled && (a && a.SuggestUrl || !a && r && r.SuggestUrl)) {
var s = a && this._maybeRemovePrefix(this._typedUrl) || this._typedUrl;
s.trim() ? this._throttledSearchSuggest(s, a || r) : this.searchDoneSuggest([])
} else this.searchDoneSuggest([])
}
}, 200),
performSearch: function() {
var e = N.findDOMNode(this);
G("performing search, val=", e.value, o(e.value), "typed=", this._typedUrl, o(this._typedUrl)), e.value !== this._typedUrl && "" !== e.value.trim() && (G("edit", this.props.editUrl, "display", this.props.displayUrl, "el", e.value, "typed", this._typedUrl), this._typedUrl ? (this.inputWasIncr = e.value.startsWith(this._typedUrl) || !(this.props.editUrl || "").startsWith(e.value), this.inputWasDecr = (this._typedUrl || "").startsWith(e.value) && e.value.length < this._typedUrl.length) : (this.inputWasIncr = e.value.startsWith(this.props.editUrl) || null == this.props.editUrl || null == this.props.displayUrl, this.inputWasDecr = (this.props.displayUrl || "").startsWith(e.value)), this.inputWasDecr && this.inputWasIncr && (this.inputWasIncr = !1), this.inputWasDecr || this.inputWasIncr || (this.inputWasIncr = !0), (this.inputWasDecr || !this.inputWasIncr && !this.inputWasDecr) && (this._completedItem = void 0, J[g.OMNI_TYPE_SUGGEST] = []), G("Incremented:", this.inputWasIncr, "decremented:", this.inputWasDecr, "value", e.value, "display", this.props.displayUrl, "edit", this.props.editUrl, "typed", this._typedUrl), this._typedUrl = e.value, e.value.length > 0 ? (this.inputWasIncr && this._completedItem && "undefined" != typeof this._completedItem.url && this._completedItem.url.includes(this._typedUrl) && (G("updating with", this._completedItem), this._completed = !1, this.updateAutocomplete(this._completedItem)), this._hasLeftPage = !1, this._throttledSearch(this, e, this.props.pageId)) : (this.hideDropdown(), G("hiding dropdown, no search")))
},
isUrlRevertable: function() {
var e = N.findDOMNode(this);
return e.value !== this.props.url && e.value !== this.props.displayUrl
},
removeSelection: function() {
var e = this,
n = window.getSelection();
n && (n.empty(), G("removed selection"), t.nextTick(function() {
return T.setUrlfieldState(e.props.pageId, {
selectionStart: null,
selectionEnd: null
})
}))
},
revertUrl: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
if (this.isUrlRevertable()) {
var n = N.findDOMNode(this);
G("reverting from", n.value, "to either", this.props.url, "or", this.props.displayUrl, "select?", t), this._typedUrl = "";
var i = Object.assign({
editUrl: null
}, t ? {
selectionStart: 0,
selectionEnd: this.props.url.length
} : {});
T.setUrlfieldState(e, i)
}
},
_onEscPressed: function(e) {
this.props.isOmniDropdownOpen === !0 || this.props.isTypedHistoryOpen === !0 ? this.hideDropdown() : this.isUrlRevertable() ? (G("reverting url because its revertable"), this.revertUrl(this.props.pageId, !0)) : (G("not revertable - moving focus to webview"), this.removeSelection(), I.doAction("focusWebView"))
},
_onDelete: function(e) {
"function" == typeof this.props.onDelete && this.props.onDelete(e)
},
hideDropdown: function() {
"function" == typeof this.props.hideDropdown && this.props.hideDropdown()
},
setAutocompleteHighlight: function() {
for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
this.props.setAutocompleteHighlight.apply(this, t)
},
_modEnter: function() {
var e = N.findDOMNode(this),
t = this._typedUrl || "";
if (!t.startsWith("-") && !t.endsWith("-") && !t.includes(" ") && t.match(/(w{3}\.)?([a-z0-9\.\-]+)$/i)) {
var n = RegExp.$2;
if (!t.endsWith("." + m.default.getPublicSuffix(n))) {
var i = "www." + n + "." + ((this.props.autocompleteTLD || "").replace(/^\./, "") || "com");
e.value = i, T.setUrlfieldState(this.props.pageId, {
editUrl: i
}), e.blur()
}
}
this.props.fieldGo()
},
onClipboardEvent: function(e) {
if (0 === this.props.selectionStart && null == this.props.editUrl) {
var t = e.target.value.substring(0, this.props.selectionEnd);
if (this.props.encodeCutCopy !== !0 && (t = u.urls.getDisplayUrl(t)), V(t) && t.match(/[\.\/]/)) {
var n = x.parse(u.urls.getDisplayUrl(this.props.url));
t = n.protocol + (n.slashes ? "//" : "") + t
}
e.clipboardData.setData("text", t.replace(/ /g, "%20")), "cut" === e.type && (T.setUrlfieldState(this.props.pageId, {
editUrl: e.target.value.substr(this.props.selectionEnd)
}), e.target.setSelectionRange(0, 0)), e.preventDefault()
}
},
_onOmniSaved: function() {
var e = N.findDOMNode(this);
e.value && (this._cleanupState(), T.setUrlfieldState(this.props.pageId, {
editUrl: e.value,
selectionStart: e.value.length,
selectionEnd: e.value.length
}))
},
_saveStateOnKeyEvent: function(e) {
var n = this,
i = this.refs.urlInput;
(0, c.default)(e) || t.nextTick(function() {
T.setUrlfieldState(n.props.pageId, {
selectionStart: i.selectionStart,
selectionEnd: i.selectionEnd
})
})
},
_initializeNavigation: function() {
var e = this;
this._isNavigationInitialized !== !0 && ! function() {
var t = new F(e, e._onOmniSaved);
e._up = t.up.bind(t), e._down = function(n) {
return e.props.isOmniDropdownOpen || e.props.isTypedHistoryOpen ? t.down(n) : void(e.props.triggerTypedHistory !== !1 && T.showTypedHistory())
}, e._pageUp = t.pageUp.bind(t), e._pageDown = t.pageDown.bind(t), _.bind("up", e._up), _.bind("down", e._down), _.bind("pageup", e._pageUp), _.bind("pagedown", e._pageDown), e._isNavigationInitialized = !0, _.bind("esc", e._onEscPressed), _.bind("shift+del", e._onDelete)
}()
},
_cleanupNavigation: function() {
if (this._isNavigationInitialized === !0) try {
_.unbind("up", this._up), _.unbind("down", this._down), _.unbind("pageup", this._pageUp), _.unbind("pagedown", this._pageDown), this._up = this._down = this._pageUp = this._pageDown = void 0, _.unbind("esc", this._onEscPressed), _.unbind("shift+del", this._onDelete)
} finally {
this._isNavigationInitialized = !1
}
},
onFocus: function(e) {
G("focus"), "function" == typeof this.props.hideDropdown && (document.addEventListener("copy", this.onClipboardEvent, !1), document.addEventListener("cut", this.onClipboardEvent, !1), this._initializeNavigation()), this.state.isFocused === !1 && "function" == typeof this.props.onFocus && (this.props.onFocus(), this.setState({
isFocused: !0
}))
},
onBlur: function(e) {
var n = this;
G("blur"), "function" == typeof this.props.onBlur && this.props.onBlur(), "function" == typeof this.props.hideDropdown && (document.removeEventListener("copy", this.onClipboardEvent, !1), document.removeEventListener("cut", this.onClipboardEvent, !1), this._cleanupNavigation()), e && e.relatedTarget && (this.removeSelection(), this.hideDropdown()), t.nextTick(function() {
return T.setUrlfieldState(n.props.pageId, {
hasLostFocus: !0
})
}), this.setState({
isFocused: !1
})
},
onKeyDown: function(e) {
var t = this._isMouseOver === !0 && "mac" === (0, d.default)() && "Meta" === e.key || "Control" === e.key;
(t || document.activeElement === this.refs.urlInput) && ((0, c.default)(e) || "ArrowRight" !== e.key && "ArrowLeft" !== e.key ? "Enter" === e.key && (e.altKey || e.ctrlKey) ? this.onKeyPressed(e) : t && (this.refs.urlInput.style.cursor = "pointer") : this._saveStateOnKeyEvent(e))
},
onKeyUp: function(e) {
var t = this._isMouseOver === !0 && "mac" === (0, d.default)() && "Meta" === e.key || "Control" === e.key;
(t || document.activeElement === this.refs.urlInput) && t && "pointer" === this.refs.urlInput.style.cursor && (this.refs.urlInput.style.cursor = "")
},
onEnterKeyPressed: function(e) {
var n = this,
i = e.target;
if (G("enter pressed!!"), "" === i.value.trim()) return e.preventDefault();
if ("function" == typeof this.props.onUrlFieldChanged) return void this.props.onUrlFieldChanged(i.value);
if (this._isSearching) return e.persist(), void(this._delayedEnterPressedEvent = e);
var a = {},
r = "mac" === (0, d.default)(),
s = e.shiftKey && "shift" === this.props.openShortcutModifier || e.altKey && "alt" === this.props.openShortcutModifier,
o = s && (r ? "Meta" === e.key : e.ctrlKey === !0),
l = !o && e.ctrlKey === !0;
if (s && (a.inCurrent = !1, a.inBackground = o), this._hasLeftPage = !0, this.removeSelection(), this.hideDropdown(), e.preventDefault(), l) this._modEnter(e);
else if (f.hasNickname(this._typedUrl)) {
var c = p.getOpenOptionsFromEvent(e);
c.bookmarks = f.getNicknamed(this._typedUrl), p.open(c, !0), this.revertUrl(this.props.pageId)
} else this._completedItem && (this._shouldAutocompleteTitle() && (this._completedItem.title || "").toLowerCase() === i.value.toLowerCase() || this._completedItem.url && W(P(this._completedItem.url)) === W(P(i.value))) ? (a.addTypedHistory = !0, a.enableSearch = !1, T.go(this._completedItem.url, a)) : s || o ? ! function() {
n.props.fieldGo(e, a);
var i = e.shiftKey === !0;
t.nextTick(function() {
return n.revertUrl(n.props.pageId, i)
})
}() : this.props.fieldGo(e, a);
e.ctrlKey || setTimeout(function() {
document.activeElement === N.findDOMNode(n) && document.activeElement.blur()
}, 40)
},
onKeyPressed: function(e) {
this.props.onKeyPressed && this.props.onKeyPressed(e), "function" == typeof this._throttledSearchSuggest.cancel && this._throttledSearchSuggest.cancel(), "function" == typeof this._throttledSearch.cancel && this._throttledSearch.cancel(), e && e.key && ("Enter" === e.key ? this.onEnterKeyPressed(e) : (0, c.default)(e) || this._saveStateOnKeyEvent(e))
},
onDrop: function(e) {
"function" == typeof this.props.onDrop && (e.stopPropagation(), e.preventDefault(), this.props.onDrop(e))
},
onDragStart: function(e) {
var t = N.findDOMNode(this.refs.urlInput),
n = t.value.substr(t.selectionStart, t.selectionEnd - t.selectionStart);
e.dataTransfer.setData("text/plain", n)
},
componentDidUpdate: function() {
if (!this._isIMEOpen) {
var e = N.findDOMNode(this);
if (document.activeElement === e) {
var t = "number" == typeof this.props.selectionStart ? this.props.selectionStart : -1,
n = "number" == typeof this.props.selectionEnd ? this.props.selectionEnd : -1;
t > -1 && e.selectionStart !== t && (e.selectionStart = t, G("setting selectionStart on update", t, " was ", e.selectionStart)), n > -1 && e.selectionEnd !== n && (e.selectionEnd = n, G("setting selectionEnd on update", n, " was ", e.selectionEnd))
}
}
},
render: function() {
var e = null == this.props.editUrl ? this.props.displayUrl : this.props.editUrl,
t = w({
url: !0,
"vivaldi-addressfield": !0
});
return b.createElement("input", {
ref: "urlInput",
autoComplete: "off",
autoFocus: this.props.autoFocus,
className: this.props.className ? this.props.className : t,
disabled: this.props.disabled ? this.props.disabled : null,
onChange: this.onChanged,
onClick: this.onClicked,
onContextMenu: this.onClicked,
onDragStart: this.onDragStart,
onDrop: this.onDrop,
onKeyPress: this.onKeyPressed,
onMouseDown: this.onMouseDown,
onMouseOut: this.onMouseOut,
onMouseMove: this.onMouseMove,
placeholder: this.props.placeholder ? this.props.placeholder : null,
spellCheck: "false",
title: this.props.title ? this.props.title : null,
type: "text",
value: e,
__source: {
fileName: s,
lineNumber: 1568
}
})
}
});
e.exports = q
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_137
// =========================
"use strict";
var i, a = n(4);
a.runtime.getPlatformInfo(function(e) {
i = e.os
});
var r = function(e) {
return e && e.constructor === Array && (e = e.join(", ")), e && (e = e.replace(/left/g, "←").replace(/right/g, "→").replace(/up/g, "↑").replace(/down/g, "↓"), e = "mac" === i ? e.replace(/shift/g, "⇧").replace(/capslock/g, "⇪").replace(/command/g, "⌘").replace(/meta/g, "⌘").replace(/ctrl/g, "⌃").replace(/alt/g, "⌥").replace(/([^+ ]){1}\+/g, "$1") : e.replace(/(^|\+)(\w)/g, function(e) {
return e.toUpperCase()
})), e
},
s = function(e) {
return e && e.constructor === Array && (e = e.join(", ")), e && (e = "mac" === i ? e.replace(/shift/g, "⇧").replace(/capslock/g, "⇪").replace(/command/g, "⌘").replace(/meta/g, "⌘").replace(/ctrl/g, "⌃").replace(/alt/g, "⌥").replace(/([^+ ]){1}\+/g, "$1") : e.replace(/(^|\+)(\w)/g, function(e) {
return e.toUpperCase()
})), e
};
e.exports = r, s
}, function(e, t, n) {
// =========================
// Function_138
// =========================
"use strict";
function i(e, t) {
var n = ["get", "getTokens", "markSeen", "getSearchListThreaded", "getSearchList"];
return n.includes(e) ? A.HIGH_PRIORITY : "add" === e && 1 === t[2].length ? A.HIGH_PRIORITY : A.LOW_PRIORITY
}
function a(e) {
var t = !0,
n = !1,
i = void 0;
try {
for (var a, r = e[Symbol.iterator](); !(t = (a = r.next()).done); t = !0) {
var s = a.value;
s.tokens = l.getMessageTokens({
from: s.from,
to: s.to,
cc: s.cc,
replyTo: s.replyTo,
subject: s.subject,
bodyParts: s.bodyParts
})
}
} catch (e) {
n = !0, i = e
} finally {
try {
!t && r.return && r.return()
} finally {
if (n) throw i
}
}
}
var r = n(361),
s = n(790),
o = n(792),
l = n(364),
c = n(117),
u = n(o() ? 1286 : 791),
A = c({
LOW_PRIORITY: null,
HIGH_PRIORITY: null
}),
d = new s(u, Object.keys(A));
e.exports = Object.keys(r).reduce(function(e, t) {
return "function" == typeof r[t] && ("add" === t ? e[t] = function() {
for (var e = arguments.length, n = Array(e), r = 0; r < e; r++) n[r] = arguments[r];
a(n[2]);
var s = i(t, n);
return d.work(t, n, s)
} : "getTokens" === t ? e[t] = r.getTokens : e[t] = function() {
for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
var r = i(t, n);
return d.work(t, n, r)
}), e
}, {})
}, , , , , , , , , , , , , , , , , , , , , , function(e, t) {
// =========================
// Function_160
// =========================
e.exports = '\n'
}, , , , , , , function(e, t, n) {
// =========================
// Function_167
// =========================
"use strict";
function i(e, t, n) {
var i = o.getNodeById(e);
if (i) {
var a = {
attachments: i.attachments
};
!i.url && t && (a.url = t), a.attachments.push({
id: "0",
content: n
}), f.notes.update(e, a)
}
}
function a(e) {
i(e.target.id, void 0, e.target.result)
}
var r = n(111),
s = n(176),
o = n(247),
l = n(131),
c = n(58),
u = n(17),
A = n(20),
d = A.urls,
h = n(8),
m = n(6),
p = n(3),
f = n(10),
g = !1,
_ = {
loadPromise: function() {
return new Promise(function(e, t) {
f.notes.getTree(function(t) {
h.handleViewAction({
actionType: m.NOTES_LOAD_ALL,
notes: t
}), e()
})
})
},
addItem: function(e, t) {
h.handleViewAction({
actionType: m.NOTES_ADD_ITEM,
id: e,
item: t
}), c.getIsActiveWindow() && t.url && (p.getSync("SHOW_NOTESPANEL_FOR_NEW_NOTES") && l.showContent(c.getNotesName(), !0, !1), p.getSync("NOTES_ADD_SCREENSHOT") && _.addScreenshot(e))
},
moveItem: function(e, t) {
h.handleViewAction({
actionType: m.NOTES_MOVE_ITEM,
id: e,
targetFolder: t.parentId,
targetIndex: t.index
})
},
changeItem: function(e, t) {
h.handleViewAction({
actionType: m.NOTES_CHANGE_ITEM,
id: e,
changes: t
})
},
removeItem: function(e) {
h.handleViewAction({
actionType: m.NOTES_REMOVE_ITEM,
id: e
})
},
emptyTrash: function() {
f.notes.emptyTrash(function(e) {
e === !1 && console.warn("Empty trash failed.")
})
},
addSelectedTextFromActivePage: function() {
var e = u.getActivePage().get("id"),
t = u.getActivePage().get("url");
f.utilities.getSelectedText(e.toString(), function(e) {
e.length > 0 && f.notes.create({
type: "note",
content: e,
url: t
})
})
},
addScreenshot: function(e) {
var t = r.getActiveWebView();
if (t) {
var n = {
scale: 1,
width: 0,
height: 0
};
t.getThumbnail(n, i.bind(this, e, t.src))
}
},
addAreaCapture: function(e) {
s.captureArea("png", "", !0, function(t, n) {
if (!t && n && n.length) {
var a = r.getActiveWebView(),
s = !a || d.isInternalUrl(a.src);
i(e, s ? "" : a.src, n)
}
})
},
addImageFile: function(e, t) {
var n = new FileReader;
n.id = e, n.onloadend = a, n.readAsDataURL(t)
},
removeAttachment: function(e, t) {
var n = o.getNodeById(e);
if (n) {
var i = n.attachments.filter(function(e, n) {
return n !== t
});
f.notes.update(e, {
attachments: i
})
}
},
disableNoteMutationHandlers: function() {
g = !0
},
enableNoteMutationHandlers: function() {
g = !1, _.loadPromise()
}
};
f.notes.onImportBegan.addListener(_.disableNoteMutationHandlers), f.notes.onImportEnded.addListener(_.enableNoteMutationHandlers);
var v = {
onChanged: m.CHROME_NOTES_CHANGED,
onCreated: m.CHROME_NOTES_CREATED,
onRemoved: m.CHROME_NOTES_REMOVED,
onMoved: m.CHROME_NOTES_MOVED
};
Object.keys(v).forEach(function(e) {
return f.notes[e].addListener(function() {
g || ("onCreated" === e ? _.addItem(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1]) : "onMoved" === e ? _.moveItem(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1]) : "onChanged" === e ? _.changeItem(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1]) : "onRemoved" === e && _.removeItem(arguments.length <= 0 ? void 0 : arguments[0]))
})
}), e.exports = _
}, function(e, t, n) {
// =========================
// Function_168
// =========================
"use strict";
var i = n(73),
a = i.tabToPage,
r = n(15),
s = n(174),
o = n(8),
l = n(6),
c = n(4),
u = n(10),
A = {
emptyTrash: function() {
u.utilities.clearAllRecentlyClosedSessions()
},
undelete: function(e) {
r.setIsRestored(a(e), !0), c.sessions.restore(e.sessionId, function(t) {
c.runtime.lastError && console.warn("Error restoring tab: ", e, c.runtime.lastError)
})
},
undeletePrevious: function() {
var e = s.getTrash().find(function(e) {
return e.tab
});
e && A.undelete(e)
},
restoreWindow: function(e) {
c.sessions.restore(e.sessionId, function(t) {
c.runtime.lastError && console.warn("Error restoring page: ", e, c.runtime.lastError.message)
})
},
setTrash: function(e, t) {
o.handleViewAction({
actionType: l.TRASH_SET_STATE,
page: e,
trashState: t
})
},
loadPromise: function() {
return new Promise(function(e, t) {
return c.sessions.getRecentlyClosed(function(t) {
o.handleViewAction({
actionType: l.CHROME_SET_SESSION,
session: t
}), e()
})
})
}
};
c.sessions.onChanged.addListener(A.loadPromise), e.exports = A
}, function(e, t, n) {
// =========================
// Function_169
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/SortingSelector.jsx",
a = n(1),
r = n(5),
s = n(2),
o = n(98),
l = n(9),
c = a.createClass({
displayName: "SortingSelector",
mixins: [l],
propTypes: {
fields: a.PropTypes.array.isRequired,
fullsize: a.PropTypes.bool,
keyAccess: a.PropTypes.oneOf(["-1", "0"]),
onSortChange: a.PropTypes.func,
sortField: a.PropTypes.string.isRequired,
sortOrder: a.PropTypes.number.isRequired
},
updateField: function(e) {
var t = e.target.value,
n = void 0;
n = "manually" === t ? o.NO_SORTING : "manually" !== t && this.props.sortOrder === o.NO_SORTING ? o.ASCENDING_SORT : this.props.sortOrder, this.props.onSortChange(n, t)
},
updateSort: function(e) {
var t = void 0;
if (e === this.props.sortField) switch (this.props.sortOrder) {
case o.ASCENDING_SORT:
t = o.DESCENDING_SORT;
break;
case o.DESCENDING_SORT:
t = o.NO_SORTING;
break;
case o.NO_SORTING:
t = o.ASCENDING_SORT
} else t = o.ASCENDING_SORT;
this.props.onSortChange(t, e)
},
updateOrder: function() {
var e = this.props.sortOrder === o.DESCENDING_SORT ? o.ASCENDING_SORT : o.DESCENDING_SORT;
this.props.onSortChange(e, this.props.sortField)
},
_getSortLabel: function(e, t) {
var l = r({
"sortselector-button": !0,
"sortselector-button-active": this.props.sortField === e && this.props.sortOrder !== o.NO_SORTING,
"direction-ascending": this.props.sortField === e && this.props.sortOrder === o.ASCENDING_SORT,
"direction-descending": this.props.sortField === e && this.props.sortOrder === o.DESCENDING_SORT
});
return a.createElement("label", {
key: "key_" + e,
__source: {
fileName: i,
lineNumber: 88
}
}, a.createElement("button", {
className: l,
onClick: this.updateSort.bind(this, e),
title: s("Toggle Sort Order"),
tabIndex: this.props.keyAccess,
dangerouslySetInnerHTML: {
__html: t + n(460)
},
__source: {
fileName: i,
lineNumber: 89
}
}))
},
render: function() {
var e = this,
t = r({
"sortselector-button": !0,
"direction-ascending": this.props.sortOrder === o.ASCENDING_SORT,
"direction-descending": this.props.sortOrder === o.DESCENDING_SORT
});
if (this.props.fullsize === !0) {
var l = this.props.fields.map(function(t) {
return e._getSortLabel(t.value, t.text)
});
return a.createElement("div", {
className: "sortselector sortselector-tableheader",
__source: {
fileName: i,
lineNumber: 115
}
}, l)
}
var c = this.props.fields.map(function(e) {
return a.createElement("option", {
key: e.value,
value: e.value,
__source: {
fileName: i,
lineNumber: 121
}
}, e.fullScreenTitle)
});
return c.unshift(a.createElement("option", {
key: "manually",
value: "manually",
__source: {
fileName: i,
lineNumber: 124
}
}, s("Sort Manually"))), a.createElement("div", {
className: "sortselector sortselector-compact",
__source: {
fileName: i,
lineNumber: 128
}
}, a.createElement("select", {
className: "sortselector-dropdown",
title: s("Sort by..."),
value: this.props.sortField,
tabIndex: this.props.keyAccess,
onChange: this.updateField,
__source: {
fileName: i,
lineNumber: 129
}
}, c), a.createElement("button", {
className: t,
onClick: this.updateOrder,
title: s(this.props.sortOrder === o.ASCENDING_SORT ? "Sort Descending" : "Sort Ascending"),
tabIndex: this.props.keyAccess,
disabled: this.props.sortOrder === o.NO_SORTING && "disabled",
dangerouslySetInnerHTML: {
__html: n(460)
},
__source: {
fileName: i,
lineNumber: 137
}
}))
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_170
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/thumbnail/Thumbnail.jsx",
a = n(1),
r = n(9),
s = "/resources/bookmark_item.png",
o = 4,
l = a.createClass({
displayName: "Thumbnail",
mixins: [r],
getInitialState: function() {
return {
imageUrl: this.props.src || s
}
},
componentDidMount: function() {
this.loadImage(0)
},
componentWillReceiveProps: function(e) {
e.src !== this.props.src && this.setState({
imageUrl: e.src
}, this.loadImage.bind(this, 0))
},
loadImage: function(e) {
var t = this,
n = this.state.imageUrl,
i = new Image;
i.onload = function() {
t.refs.thumbnail && t.isMounted() && (t.refs.thumbnail.style.backgroundImage = "url(" + i.src + ")")
}, i.onError = function() {
t.refs.thumbnail && t.isMounted() && (t.refs.thumbnail.style.backgroundImage = "url(" + s + ")", e < o && t.props.src && ! function() {
var i = e + 1;
setTimeout(function() {
this.isMounted() && this.loadImage(n, i)
}.bind(t), 1e3 * Math.pow(i, 2))
}())
}, i.src = n
},
render: function() {
return a.createElement("div", {
ref: "thumbnail",
className: "thumbnail-image",
style: {
backgroundImage: "url(" + this.state.imageUrl + ")"
},
onMouseEnter: this.props.onMouseEnter,
onMouseLeave: this.props.onMouseLeave,
onMouseDown: this.props.onMouseDown,
onMouseUp: this.props.onMouseUp,
__source: {
fileName: i,
lineNumber: 73
}
})
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_171
// =========================
"use strict";
var i = n(117);
e.exports = Object.assign({
OMNI_RESULT_COUNT: 15,
OMNI_RESULT_COUNT_SUGGEST: 5
}, i({
OMNI_RESULT_BOOKMARK_DESCRIPTION: null,
OMNI_RESULT_BOOKMARK_NICKNAME: null,
OMNI_RESULT_BOOKMARK_PROMOTED: null,
OMNI_RESULT_BOOKMARK_TITLE: null,
OMNI_RESULT_BOOKMARK_TITLE_EXACT: null,
OMNI_RESULT_BOOKMARK_UNKNOWN: null,
OMNI_RESULT_BOOKMARK_URL: null,
OMNI_RESULT_BOOKMARK_URL_HOST: null,
OMNI_RESULT_FOLDER_NICKNAME: null,
OMNI_RESULT_HISTORY_PROMOTED: null,
OMNI_RESULT_HISTORY_TITLE: null,
OMNI_RESULT_HISTORY_UNKNOWN: null,
OMNI_RESULT_HISTORY_URL: null,
OMNI_RESULT_INTERNAL: null,
OMNI_RESULT_SUGGEST: null,
OMNI_RESULT_TYPED_HISTORY: null,
OMNI_RESULT_TYPED_HISTORY_SEARCH: null,
OMNI_TYPE_BOOKMARK: null,
OMNI_TYPE_HISTORY: null,
OMNI_TYPE_INTERNAL: null,
OMNI_TYPE_SEARCH: null,
OMNI_TYPE_SUGGEST: null,
OMNI_TYPE_TYPED_HISTORY: null
}))
}, function(e, t, n) {
// =========================
// Function_172
// =========================
"use strict";
function i(e) {
u = c.fromJS(e)
}
function a(e, t) {
var n = A[e] || c.Map();
A[e] = n.set(t, !0)
}
function r(e, t) {
A[e] && (A[e] = A[e].delete(t))
}
var s = n(8),
o = n(6),
l = n(18).EventEmitter,
c = n(27),
u = c.List(),
A = {},
d = Object.assign({}, l.prototype, {
getContentScripts: function(e) {
return u
},
getPageScripts: function(e) {
return A[e] || c.Map()
},
emitChange: function() {
this.emit(o.CHANGED)
},
addChangeListener: function(e) {
this.on(o.CHANGED, e)
},
removeChangeListener: function(e) {
this.removeListener(o.CHANGED, e)
}
});
s.register(function(e) {
var t = e.action;
switch (t.actionType) {
case o.CONTENT_SCRIPT_LOAD:
i(t.contentScripts), d.emitChange();
break;
case o.CONTENT_SCRIPT_PAGE_ADD:
a(t.pageId, t.script), d.emitChange();
break;
case o.CONTENT_SCRIPT_PAGE_REMOVE:
r(t.pageId, t.script), d.emitChange();
break;
default:
return !0
}
return !0
}), e.exports = window.ContentScriptStore = d
}, function(e, t, n) {
// =========================
// Function_173
// =========================
"use strict";
function i(e, t) {
return l.parse(e).hostname === l.parse(t).hostname
}
function a(e, t, n, a) {
e.rewindHistory || (e.rewindHistory = [], e.rewindIndexes = []);
var r = e.prev && e.prev.url && i(e.prev.url, t.url);
return n !== a.length - 1 && (e.prev && !r && n < a.length - 1 ? (a.length - 1 - n > 1 && (e.rewindHistory.length > 0 && i(e.rewindHistory[e.rewindHistory.length - 1].url, e.prev.url) && e.rewindHistory[e.rewindHistory.length - 1].url !== e.prev.url ? (e.rewindHistory.push(e.prev), e.rewindIndexes.push(a.length - n - 2)) : i(a[a.length - 1].url, e.prev.url) && a[a.length - 1].url !== e.prev.url && (e.rewindHistory.push(e.prev), e.rewindIndexes.push(a.length - n - 2))), e.rewindHistory.push(t), e.rewindIndexes.push(a.length - n - 1)) : 0 === n && a.length > 0 && (e.rewindHistory.push(t), e.rewindIndexes.push(a.length - n - 1))), e.prev = t, e
}
var r = n(8),
s = n(6),
o = n(18).EventEmitter,
l = n(36),
c = {},
u = {},
A = Object.assign({}, o.prototype, {
getState: function(e) {
return c[e.get("id")]
},
setState: function(e, t) {
c[e] = t
},
getFastForwardUrl: function(e) {
return (c[e.get("id")] || u).forwardUrl || ""
},
getRewindRelativeIndex: function(e) {
if (c[e.get("id")]) {
var t = c[e.get("id")].rewindIndexes;
if (Array.isArray(t) && t.length > 0) return t[0]
}
return 0
},
getRewindHistory: function(e) {
return (c[e.get("id")] || u).rewindHistory
},
getRewindIndexes: function(e) {
return (c[e.get("id")] || u).rewindIndexes
},
emitChange: function() {
this.emit(s.CHANGED)
},
addChangeListener: function(e) {
this.on(s.CHANGED, e)
},
removeChangeListener: function(e) {
this.removeListener(s.CHANGED, e)
},
setFastForwardUrl: function(e) {
"number" == typeof e.pageId && (c[e.pageId] = Object.assign({}, c[e.pageId], {
forwardUrl: e.forwardUrl
}), A.emitChange())
},
_pageHistoryToRewindHistory: function(e, t, n) {
n = n.slice(0, t + 1);
var i = n.reduceRight(a, {});
return i
},
setRewindInfo: function(e) {
var t = this._pageHistoryToRewindHistory(e.currentHostname, e.currentIndex, e.history),
n = t.rewindHistory,
i = t.rewindIndexes;
c[e.pageId] = Object.assign({}, c[e.pageId], {
rewindHistory: n,
rewindIndexes: i
}), A.emitChange()
}
});
r.register(function(e) {
var t = e.action;
switch (t.actionType) {
case s.FAST_FORWARD_SET_FORWARD_URL:
A.setFastForwardUrl(t);
break;
case s.CHROME_TABS_UPDATED:
"loading" === t.args[1].status && A.setFastForwardUrl({
pageId: t.args[2].id,
forwardUrl: ""
});
break;
case s.FAST_FORWARD_SET_REWIND_INFO:
A.setRewindInfo(t);
break;
case s.FAST_FORWARD_COPY_STATE:
A.setState(t.pageId, t.fastForwardState), A.emitChange();
break;
default:
return !0
}
return !0
}), e.exports = A
}, function(e, t, n) {
// =========================
// Function_174
// =========================
"use strict";
function i(e) {
A = e, d.emitChange()
}
var a = n(18).EventEmitter,
r = n(8),
s = n(6),
o = n(212),
l = n(73),
c = l.tabToPage,
u = "change",
A = [],
d = Object.assign({}, a.prototype, {
getTrash: function() {
arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : A;
return h(A)
},
emitChange: function() {
this.emit(u)
},
addChangeListener: function(e) {
this.on(u, e)
},
removeChangeListener: function(e) {
this.removeListener(u, e)
}
}),
h = o(1)(function(e) {
return e.filter(function(e) {
if (e.tab) {
var t = c(e.tab);
return !t.getIn(["extData", "preventUndelete"])
}
if (e.window) {
var n = e.window.extData ? JSON.parse(e.window.extData) : {};
return "popup" !== n.windowType
}
})
});
r.register(function(e) {
var t = e.action;
switch (t.actionType) {
case s.CHROME_SET_SESSION:
i(t.session);
break;
default:
return !0
}
}), e.exports = d
}, function(e, t, n) {
// =========================
// Function_175
// =========================
"use strict";
var i = n(52),
a = n(2),
r = n(4),
s = " -_()jygpq0123456789",
o = void 0,
l = {
preferCamelCaseMnemonic: function() {
return 0 === r.i18n.getUILanguage().indexOf("en")
},
appendMnemonic: function() {
return void 0 === o && (o = ["ja", "zh-CN", "zh-TW", "ja", "ko"].indexOf(r.i18n.getUILanguage()) > -1), o
},
ellipsisString: function() {
return a("...")
},
getShortcutsForMenuItems: function(e) {
for (var t = Object.keys(i.getCommandShortcuts()).filter(function(e) {
return e.includes("alt+") && 5 === e.length
}), n = [], a = [], r = void 0, s = 0; s < e.length; s++) {
var o = e[s];
if (void 0 !== o.name && "---" !== o.name && o.mnemonic !== !1) {
var l = o.name.indexOf("&");
l !== -1 && l + 1 < o.name.length && (r = o.name.toUpperCase().charCodeAt(l + 1), n.indexOf(r) === -1 && n.push(r))
}
}
for (var c = 0; c < e.length; c++) {
var u = e[c],
A = this.appendMnemonic() ? u.englishName : u.name;
if (void 0 !== A && "---" !== u.name && u.mnemonic !== !1) {
var d = "";
if (n.length > 0) {
var h = A.indexOf("&");
if (h !== -1 && h + 1 < A.length) {
r = A.toUpperCase().charCodeAt(h + 1), d = "alt+" + String.fromCharCode(r).toLowerCase(), t.includes(d) ? a.push({
index: c,
keyCode: r,
mnemonicOffset: h
}) : (a.push({
index: c,
shortcut: d,
keyCode: r,
mnemonicOffset: h
}), t.push(d));
continue
}
}
for (var m = !1, p = 0; !m;)
if (r = A.toUpperCase().charCodeAt(p), n.indexOf(r) === -1)
if (d = "alt+" + String.fromCharCode(r).toLowerCase(), t.includes(d)) {
if (A.length === p + 1) break;
p += 1
} else m = !0;
else {
if (A.length === p + 1) break;
p += 1
}
m ? (a.push({
index: c,
shortcut: d,
keyCode: r,
mnemonicOffset: p
}), t.push(d)) : a.push({
index: c
})
} else a.push({
index: c
})
}
return a
},
findNextFreeCharacter: function(e, t, n) {
for (var i = 0; i !== -1;) {
var a = t.charAt(i),
r = a.toUpperCase();
if (s.indexOf(a) === -1 && e.indexOf(r) === -1 && (0 === i || n === !0 ? a === r : 1)) return i;
i = t.indexOf(" ", i + 1), i !== -1 && i++
}
for (var o = 0; o < t.length; o++) {
var l = t.charAt(o);
if (s.indexOf(l) === -1 && e.indexOf(l.toUpperCase()) === -1) return o
}
},
installMnemonics: function(e, t) {
for (var n = this.preferCamelCaseMnemonic(), i = this.appendMnemonic(), a = "", r = 0; r < e.length; r++) {
var s = e[r];
if (void 0 === s.name && (s.name = s.label, s.englishName = s.labelEnglish), void 0 !== s.name)
if (s.ellipsis && (s.name += this.ellipsisString()), "---" !== s.name && s.mnemonic !== !1)
if (t) {
var o = i ? s.englishName : s.name,
l = t[r].mnemonicOffset;
void 0 !== l && l + 1 <= s.name.length ? ("&" === s.name[l] ? s.nameWithMnemonic = s.name : i ? s.nameWithMnemonic = s.name + " (&" + o.charAt(l).toUpperCase() + ")" : s.nameWithMnemonic = s.name.slice(0, l) + "&" + s.name.slice(l),
a += s.name.charAt(l + 1).toUpperCase()) : (l = s.name.indexOf("&"), s.nameWithMnemonic = l !== -1 ? s.name : void 0)
} else {
var c = s.name.indexOf("&");
c !== -1 && c + 1 < s.name.length ? (s.nameWithMnemonic = s.name, a += s.name.charAt(c + 1).toUpperCase()) : s.nameWithMnemonic = void 0
}
else if (s.mnemonic === !1) {
var u = s.name.indexOf("&");
u !== -1 && (s.nameWithMnemonic = s.name.replace(/\&/g, "&&"))
}
}
for (var A = 0; A < e.length; A++) {
var d = e[A],
h = i ? d.englishName : d.name,
m = void 0 !== h && "---" !== d.name && d.mnemonic !== !1;
if (m && void 0 === d.nameWithMnemonic) {
var p = this.findNextFreeCharacter(a, h, n);
p >= 0 && (a += h.charAt(p).toUpperCase(), i ? d.nameWithMnemonic = d.name + " (&" + h.charAt(p).toUpperCase() + ")" : d.nameWithMnemonic = d.name.slice(0, p) + "&" + d.name.slice(p))
}
d.items && this.installMnemonics(d.items, null)
}
},
getMenuBarString: function(e, t) {
var n = this.appendMnemonic() ? e.englishName : e.name,
i = void 0 === t.mnemonicOffset ? -1 : t.mnemonicOffset;
return !n && this.appendMnemonic() && (n = e.name, i = -1), this.appendMnemonic() && i !== -1 && (n = e.name + " (" + n.charAt(i).toUpperCase() + ")", i = n.length - 2), {
name: n,
offset: i
}
}
};
e.exports = l
}, function(e, t, n) {
// =========================
// Function_176
// =========================
"use strict";
var i = n(4),
a = n(45),
r = n(10),
s = 3e4,
o = {
x1: 0,
y1: 0,
x2: 0,
y2: 0,
captureRectElm: null,
captureAreaElm: null,
callback_: null,
captureUIFormat_: "png",
dragInProgress_: !1,
saveToClipboard_: !1,
captureToBase64_: !1,
captureFullpage: function(e, t, n, a) {
var o = {
encodeFormat: t,
encodeQuality: 85,
fullPage: !0,
height: s,
saveToBasePath: "Vivaldi Captures",
showFileInPath: !0,
copyToClipboard: "clipboard" === n
};
r.thumbnails.captureTab(e, o, function(e, t) {
a(i.runtime.lastError ? !1 : !0)
})
},
setupCaptureOverlay_: function() {
var e = document.getElementById("app");
this.captureAreaElm = document.getElementById("capture-area"), this.captureAreaElm || (this.captureAreaElm = document.createElement("div"), this.captureAreaElm.id = "capture-area", e && e.appendChild(this.captureAreaElm)), this.captureRectElm = document.getElementById("capture-rect"), this.captureRectElm || (this.captureRectElm = document.createElement("div"), this.captureRectElm.id = "capture-rect", e && e.appendChild(this.captureRectElm)), this.captureAreaElm.hidden = 0, this._installEventListeners()
},
captureArea: function(e, t, n, i) {
this.callback_ = i, this.captureUIFormat_ = e, this.saveToClipboard_ = "clipboard" === t, this.captureToBase64_ = n, this.setupCaptureOverlay_()
},
_reCalc: function() {
var e = Math.min(this.x1, this.x2),
t = Math.max(this.x1, this.x2),
n = Math.min(this.y1, this.y2),
i = Math.max(this.y1, this.y2),
a = document.body.clientWidth,
r = document.body.clientHeight;
this.captureRectElm.style.left = e + "px", this.captureRectElm.style.top = n + "px", this.captureRectElm.style.width = t - e + "px", this.captureRectElm.style.height = i - n + "px", this.captureAreaElm.style.backgroundColor = "transparent", this.captureAreaElm.style.borderWidth = n + "px " + (a - t) + "px " + (r - i) + "px " + e + "px"
},
handleKeydown: function(e) {
e.keyCode === a.KEY_ESCAPE && this._cancelCapture(), e.stopPropagation(), e.preventDefault()
},
handleKeyup: function(e) {
e.stopPropagation(), e.preventDefault()
},
handleMousedown: function(e) {
this.x1 = this.x2 = e.clientX, this.y1 = this.y2 = e.clientY, this._reCalc(), this.captureRectElm.hidden = 0, this.dragInProgress_ = !0
},
handleMouseup: function(e) {
var t = this,
n = Math.min(this.x1, this.x2),
a = Math.min(this.y1, this.y2),
s = Math.max(this.x2, this.x1) - Math.min(this.x1, this.x2),
o = Math.max(this.y2, this.y1) - Math.min(this.y2, this.y1);
this.dragInProgress_ = !1, this._adjustForUIZoom(n, a, s, o, function(e, n, a, s) {
t._finishCapture(function() {
var o = i.app.window.current();
o && r.thumbnails.captureUI({
appWindowId: o.id,
posX: e,
posY: n,
width: a,
height: s,
encodeFormat: t.captureUIFormat_,
encodeQuality: 85,
saveToBasePath: t.captureToBase64_ === !0 ? null : "Vivaldi Captures",
showFileInPath: t.captureToBase64_ !== !0,
encodeToDataUrl: t.captureToBase64_,
copyToClipboard: t.saveToClipboard_
}, function(e) {
t.callback_ && t.callback_(!1, e)
})
})
})
},
handleMousemove: function(e) {
this.dragInProgress_ && (this.x2 = e.clientX, this.y2 = e.clientY, this._reCalc())
},
handleEvent: function(e) {
switch (e.type) {
case "keydown":
this.handleKeydown(e);
break;
case "keyup":
this.handleKeyup(e);
break;
case "mousedown":
this.handleMousedown(e);
break;
case "mouseup":
this.handleMouseup(e);
break;
case "mousemove":
this.handleMousemove(e)
}
},
_installEventListeners: function() {
document.addEventListener("keydown", this), document.addEventListener("keyup", this), this.captureAreaElm.addEventListener("mousedown", this), this.captureAreaElm.addEventListener("mouseup", this), this.captureAreaElm.addEventListener("mousemove", this)
},
_removeEventListeners: function() {
document.removeEventListener("keydown", this), document.removeEventListener("keyup", this), this.captureAreaElm.removeEventListener("mousedown", this), this.captureAreaElm.removeEventListener("mouseup", this), this.captureAreaElm.removeEventListener("mousemove", this)
},
_cleanupDrag: function() {
var e = document.getElementById("app");
e && (this.captureAreaElm && e.removeChild(this.captureAreaElm), this.captureRectElm && e.removeChild(this.captureRectElm)), this._removeEventListeners(), this.x1 = this.x2 = this.y1 = this.y2 = 0, this.captureAreaElm = this.captureRectElm = null, this.dragInProgress_ = !1
},
_finishCapture: function(e) {
var t = this;
this.captureRectElm.style.display = "none", this.captureAreaElm.classList.add("capture-fade-out"), this.captureAreaElm.style.borderColor = "rgba(0, 0, 0, 0)", this.captureAreaElm.addEventListener("transitionend", function() {
t._cleanupDrag(), e()
}, !0)
},
_cancelCapture: function() {
this._cleanupDrag(), this.callback_ && this.callback_(!0)
},
_adjustForUIZoom: function(e, t, n, i, a) {
r.zoom.getVivaldiUIZoom(function(r) {
a(Math.round(e * r), Math.round(t * r), Math.round(n * r), Math.round(i * r))
})
}
};
e.exports = o
}, function(e, t) {
// =========================
// Function_177
// =========================
"use strict";
var n = 5e3,
i = "MacIntel" === navigator.platform;
e.exports = {
showNotification: function(e) {
var t = new Notification(e.title, {
body: e.body,
icon: e.icon ? e.icon : "/resources/favicon@2x.png"
});
t.onclick = function() {
e.callback && "function" == typeof e.callback && e.callback(), t.close()
}, i || setTimeout(function() {
return t.close()
}, e.timeout ? e.timeout : n)
}
}
}, function(e, t, n) {
// =========================
// Function_178
// =========================
"use strict";
function i(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function a(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function r(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
var s = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
o = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/vivaldi/NativeResizeObserver.js",
l = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
c = n(1),
u = n(11),
A = n(7),
d = A.omit,
h = function(e) {
function t() {
var e, n, r, s;
i(this, t);
for (var o = arguments.length, l = Array(o), c = 0; c < o; c++) l[c] = arguments[c];
return n = r = a(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(l))), r.componentDidMount = function() {
r._attachObserver()
}, r._attachObserver = function() {
var e = u.findDOMNode(r);
if (e) try {
new ResizeObserver(r.props.onResize).observe(e)
} catch (e) {
console.warn(e)
}
}, s = n, a(r, s)
}
return r(t, e), l(t, [{
key: "render",
value: function() {
var e = this.props.component,
t = d(this.props, ["onResize", "component"]);
return c.createElement(e, s({}, t, {
__source: {
fileName: o,
lineNumber: 40
}
}), this.props.children)
}
}]), t
}(c.Component);
h.displayName = "NativeResizeObserver", h.propTypes = {
onResize: c.PropTypes.func.isRequired,
className: c.PropTypes.string,
component: c.PropTypes.string
}, h.defaultProps = {
className: "resize",
component: "div"
}, e.exports = h
}, function(e, t, n) {
// =========================
// Function_179
// =========================
"use strict";
var i = n(36),
a = i.format,
r = i.parse,
s = n(20),
o = s.urls,
l = n(403),
c = function(e) {
if (!e) return "";
var t = r(e);
"mailto:" !== t.protocol && (t.auth = ""), e = a(t);
var n = o.removeTrailingSlashWhenNoPath(o.getDisplayUrl(e));
return l(n.replace(/%25/g, "%2525")).replace(/%20/g, " ")
};
e.exports = c
}, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t) {
// =========================
// Function_214
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_215
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_216
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_217
// =========================
e.exports = ''
}, , , , , , , , , , , , , , function(e, t, n) {
// =========================
// Function_231
// =========================
"use strict";
var i = n(8),
a = n(6),
r = n(780),
s = {
loadPromise: function() {
return r().then(function(e) {
i.handleViewAction({
actionType: a.CONTENT_SCRIPT_LOAD,
contentScripts: e
})
})
},
addContentScript: function(e, t) {
i.handleViewAction({
actionType: a.CONTENT_SCRIPT_PAGE_ADD,
pageId: e,
script: t
})
},
removeContentScript: function(e, t) {
i.handleViewAction({
actionType: a.CONTENT_SCRIPT_PAGE_REMOVE,
pageId: e,
script: t
})
}
};
e.exports = s
}, function(e, t, n) {
// =========================
// Function_232
// =========================
(function(t) {
"use strict";
var i = n(17),
a = n(8),
r = n(3),
s = n(6),
o = s.SEARCH_FIELD_SET_STATE,
l = s.SEARCH_FIELD_ADD_TYPED_HISTORY,
c = s.SEARCH_FIELD_DELETE_TYPED_HISTORY,
u = s.SEARCH_FIELD_INIT_TYPED_HISTORY,
A = {
setState: function(e, t) {
a.handleViewAction({
actionType: o,
state: t,
page: e
})
},
addTypedSearchHistory: function(e) {
var n = r.getSync("SEARCH_FIELD_TYPED_HISTORY_ENABLED") === !0,
s = i.getActivePage().get("incognito") !== !1;
n && !s && t.nextTick(function() {
a.handleViewAction({
actionType: l,
query: e
})
})
},
deleteTypedSearchHistory: function(e) {
a.handleViewAction({
actionType: c,
query: e
})
},
load: function() {
var e = r.getSync("TYPED_SEARCH_HISTORY");
a.handleViewAction({
actionType: u,
typedHistory: e
})
}
};
e.exports = A
}).call(t, n(16))
}, function(e, t) {
// =========================
// Function_233
// =========================
"use strict";
var n = function() {},
i = {
addListener: n,
removeListener: n
},
a = {
bookmarksPrivate: {
emptyTrash: n,
updateSpeedDialsForWindowsJumplist: n
},
historyPrivate: {
dbSearch: function(e, t) {
t([])
},
search: function(e, t) {
t([])
},
onVisitModified: i
},
importData: {
getBlockThirdPartyCookies: n,
getDefaultContentSettings: n,
getProfiles: n,
getStartupAction: n,
isVivaldiDefaultBrowser: n,
launchNetworkSettings: n,
onImportBegan: i,
onImportEnded: i,
onImportItemEnded: i,
onImportItemStarted: i,
onImportStarted: i,
openPage: n,
openTaskManager: n,
savePage: n,
setBlockThirdPartyCookies: n,
setDefaultContentSettings: n,
setStartupAction: n,
setVivaldiAsDefaultBrowser: n,
setVivaldiLanguage: n,
showDevTools: n,
startImport: n
},
notes: {
create: n,
emptyTrash: n,
get: n,
getTree: function(e) {
return e({})
},
move: n,
onChanged: i,
onCreated: i,
onRemoved: i,
onMoved: i,
onImportBegan: i,
onImportEnded: i,
remove: n,
search: n,
update: n
},
runtimePrivate: {
exit: n,
getAllFeatureFlags: function(e) {
return e([])
}
},
sessionsPrivate: {
delete: n,
getAll: n,
open: n,
saveOpenTabs: n
},
settings: {
getPreference: n,
getAllPreferences: function(e) {
return e([])
},
onChanged: i,
setPreference: n,
togglePreference: n
},
showMenu: {
create: n,
onOpen: n,
onMainMenuCommand: i,
onUrlHighlighted: i
},
tabsPrivate: {
get: n,
onCreated: i,
onRemoved: i,
onUpdated: i,
onMoved: i,
onActivated: i,
onDetached: i,
onAttached: i,
onReplaced: i,
onThemeColorChanged: i,
onFaviconUpdated: i,
onTabUpdated: i,
update: n
},
thumbnails: {
isThumbnailAvailable: n
},
utilities: {
clearAllRecentlyClosedSessions: n,
getAvailablePageEncodings: n,
isTabInLastSession: n,
isUrlValid: n,
onScroll: i
},
zoom: {
getDefaultZoom: n,
getVivaldiUIZoom: n,
onDefaultZoomChanged: i,
setDefaultZoom: n,
setVivaldiUIZoom: n
}
};
e.exports = a
}, function(e, t, n) {
// =========================
// Function_234
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/FolderIcon.jsx",
a = n(1),
r = n(5),
s = n(25),
o = ["THEMES_USER", "THEME_CURRENT", "THEME_CURRENT", "TABCOLOR_BEHIND_TABS", "DIM_BLURRED"],
l = a.createClass({
displayName: "FolderIcon",
propTypes: {
open: a.PropTypes.bool,
selected: a.PropTypes.bool,
speeddial: a.PropTypes.bool,
trash: a.PropTypes.bool
},
getDefaultProps: function() {
return {
open: !1,
speeddial: !1,
trash: !1,
selected: !1,
windowFocused: !0
}
},
componentDidMount: function() {
window.addEventListener("focus", this._focus), window.addEventListener("blur", this._blur)
},
componentWillUnmount: function() {
window.removeEventListener("focus", this._focus), window.removeEventListener("blur", this._blur)
},
_focus: function() {
this.isMounted && this.state && !this.state.windowFocused && this.setState({
windowFocused: !0
})
},
_blur: function() {
this.isMounted && this.props.vivaldiSettings.DIM_BLURRED && this.setState({
windowFocused: !1
})
},
render: function() {
var e = r({
"folder-icon": !this.props.trash,
"folder-trash": this.props.trash,
open: this.props.open,
sd: this.props.speeddial
});
return a.createElement("svg", {
width: "16",
height: "16",
viewBox: "0 0 16 16",
className: e,
ref: "folderIcon",
style: this.props.leftMargin ? {
marginLeft: this.props.leftMargin
} : null,
__source: {
fileName: i,
lineNumber: 64
}
}, this.props.trash ? a.createElement("g", {
mask: "url(#trash-folder-mask)",
__source: {
fileName: i,
lineNumber: 71
}
}, a.createElement("path", {
d: "M11 1v-1h-6v1h-4v1h14v-1h-4z",
__source: {
fileName: i,
lineNumber: 72
}
}), a.createElement("path", {
d: "M3 3h10v12h-10v-12z",
__source: {
fileName: i,
lineNumber: 73
}
})) : this.props.speeddial ? a.createElement("path", {
d: "M16 5 15 4 8 4 8 3 7 2 1 2 0 3 0 13 1 14 8 14 8 16 16 16 Z",
__source: {
fileName: i,
lineNumber: 77
}
}) : a.createElement("path", {
d: "M0 3 1 2 7 2 8 3 8 4 15 4 16 5 16 13 15 14 1 14 0 13 Z",
__source: {
fileName: i,
lineNumber: 79
}
}))
}
});
e.exports = s(l, o)
}, function(e, t, n) {
// =========================
// Function_235
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/InsertTheme.jsx",
r = n(1),
s = n(17),
o = n(112),
l = n(180),
c = n(74),
u = n(3),
A = n(7),
d = A.isEmpty,
h = A.isEqual,
m = n(20),
p = m.urls,
f = n(36),
g = f.parse,
_ = n(116),
v = n(10),
b = [],
N = [],
E = ["HUE_ENABLED", "HUE_BRIDGE_IP", "HUE_USERNAME", "HUE_LIGHTS", "HUE_LIGHTS_SELECTED", "CONTRAST_MINIMUM", "USE_TABCOLOR", "TABCOLOR_BEHIND_TABS", "DIM_BLURRED", "BORDER_RADIUS", "BROWSER_COLOR_BG", "BROWSER_COLOR_FG", "BROWSER_COLOR_ACCENT_BG", "BROWSER_COLOR_HIGHLIGHT_BG"],
S = 16,
T = 1e3,
y = function(e) {
return r.createClass({
displayName: "InsertThemeWrapper",
propTypes: {
themeObject: r.PropTypes.object
},
getInitialState: function() {
return {
hasFocus: !0,
uiColors: {},
accentColor: "",
featureHueEnabled: c.isEnabled(c.kHueIntegration)
}
},
componentWillMount: function() {
this._previousVars = {}, this._unclaimedMeta = {}, this._failUrlOnLoad = "", this._fallbackTimer, this.setState(u.getKeysSync(E), this._setUiColors)
},
componentDidMount: function() {
u.addMultiListener(E, this._vivaldiSettingHandler), o.addChangeListener(this._onNavigationStoreChanged), s.addChangeListener(this._setAccentColor), v.tabsPrivate.onThemeColorChanged.addListener(this._onThemeColorChanged), window.addEventListener("focus", this._focus), window.addEventListener("blur", this._blur)
},
componentWillUnmount: function() {
o.removeChangeListener(this._onNavigationStoreChanged), s.removeChangeListener(this._setAccentColor), u.removeMultiListener(E, this._vivaldiSettingHandler), v.tabsPrivate.onThemeColorChanged.removeListener(this._onThemeColorChanged), window.removeEventListener("focus", this._focus), window.removeEventListener("blur", this._blur)
},
componentDidUpdate: function(e, t) {
if (this.props.themeObject && !d(this.props.themeObject)) {
if (e.themeObject && h(this.props.themeObject, e.themeObject)) return;
this._setUiColors()
}
},
shouldComponentUpdate: function(e, t) {
return !h(this.state, t) || !h(this.props, e)
},
_focus: function() {
this.state.hasFocus || this.setState({
hasFocus: !0
})
},
_blur: function() {
this.state.DIM_BLURRED && this.setState({
hasFocus: !1
})
},
_getFavIconKey: function(e) {
return e.get("incognito") ? "favIcon" : "favIconUrl"
},
_getCacheObject: function(e, t) {
if (!e || !p.isInExtension(e)) {
var n = !0,
i = !1,
a = void 0;
try {
for (var r, s = b[Symbol.iterator](); !(n = (r = s.next()).done); n = !0) {
var o = r.value;
if (e && e === o.favIcon) return o;
if (!e && t && t === o.hostname) return o
}
} catch (e) {
i = !0, a = e
} finally {
try {
!n && s.return && s.return()
} finally {
if (i) throw a
}
}
if (t && e) {
var l = {
favIcon: e,
hostname: t
};
return b.push(l), l
}
}
},
_onNavigationStoreChanged: function() {
var e = s.getActivePage(),
t = o.getNavigationInfo(e),
n = t.get("webviewUrl"),
i = t.get("trigger");
"start" !== i && "stop" !== i || (this._fallbackTimer && clearTimeout(this._fallbackTimer), "start" === i && (this._failUrlOnLoad = n), "stop" === i && n === this._failUrlOnLoad && (this._fallbackTimer = setTimeout(this._setFallbackAccentColor, T)))
},
_onThemeColorChanged: function(e, t) {
if (t && "#000000" !== t) {
var n = s.getActivePage();
if (n.get("id") === e) {
var i = n.get(this._getFavIconKey(n)),
a = o.getNavigationInfo(n),
r = a.get("webviewUrl"),
l = g(_(r)).hostname,
c = this._getCacheObject(i, l);
c ? (c.metaColor = t, this._setBestColor(c)) : this._unclaimedMeta = {
color: t,
url: r
}
}
}
},
_setAccentColor: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : s.getActivePage();
if (e && e.get("url")) {
var t = e.get("url");
if (this.isMounted() && p.isInternalPage(e)) return void this.setState({
accentColor: ""
});
var n = e.get(this._getFavIconKey(e)),
i = g(_(t)).hostname,
a = this._getCacheObject(n, i);
a && t === this._unclaimedMeta.url && (a.metaColor = this._unclaimedMeta.color, this._unclaimedMeta = {}, this._setBestColor(a)), a ? a.colorPalette ? (this._failUrlOnLoad = "", this._fallbackTimer && clearTimeout(this._fallbackTimer), this._setBestColor(a)) : !a.colorPalette && a.favIcon && (this._failUrlOnLoad = "", this._fallbackTimer && clearTimeout(this._fallbackTimer), this._setFavIconPalette(a)) : this.isMounted() && N.indexOf(t) > -1 && (this._failUrlOnLoad = "", this.setState({
accentColor: ""
}), this._fallbackTimer && clearTimeout(this._fallbackTimer))
}
},
_setFallbackAccentColor: function() {
this._fallbackTimer && clearTimeout(this._fallbackTimer), this._failUrlOnLoad = "", this._unclaimedMeta = {}, N.push(s.getActivePage().get("url")), this.setState({
accentColor: ""
})
},
_setFavIconPalette: function(e) {
var t = this,
n = new Image;
n.onload = function() {
n.heigth = S, n.width = S, e.colorPalette = t._getPalette(n), t._setBestColor(e)
}, n.src = e.favIcon
},
_getPalette: function(e) {
var t = document.createElement("canvas"),
n = S,
i = 10,
a = t.getContext("2d"),
r = [],
s = [];
t.width = n, t.height = n, a.imageSmoothingEnabled = !1, a.drawImage(e, 0, 0, n, n);
for (var o = a.getImageData(0, 0, n, n).data, l = 0; l < o.length / 4; l++) {
var c = 4 * l,
u = o[c],
A = o[c + 1],
d = o[c + 2],
h = o[c + 3],
m = void 0;
if (!(0 === h || u > 240 && d > 240 && A > 240)) {
for (var p = 0; p < r.length; p++)
if (u === r[p][0] && A === r[p][1] && d === r[p][2]) {
m = p;
break
}
void 0 === m ? r.push([u, A, d, 1]) : r[m][3]++
}
}
r.sort(function(e, t) {
return t[3] - e[3]
});
for (var f = 0; f < Math.min(i, r.length); f++) s.push([r[f][0], r[f][1], r[f][2]]);
return s
},
_setBestColor: function(e) {
var t = this,
n = [];
if (e.metaColor && n.push(l(e.metaColor)), e.colorPalette)
for (var i = 0; i < e.colorPalette.length; i++) n.push(l(e.colorPalette[i]));
if (n[0] && (n[0].multiplier = e.metaColor ? 3 : 2), n[1] && (n[1].multiplier = 1.5), n[2] && (n[2].multiplier = 1.25), n.length > 2 && n[0].get("lch.c") < 1)
for (var a = 1; a < n.length; a++)
if (n[a].get("lch.c") > 1) {
n[a].multiplier = 2;
break
}
n.sort(function(e, n) {
return t._rateColor(n) - t._rateColor(e)
}), this.isMounted() && n[0] && this.setState({
accentColor: n[0]
})
},
setHue: function(e) {
var t = u.getSync("HUE_BRIDGE_IP"),
n = u.getSync("HUE_USERNAME"),
i = u.getSync("HUE_LIGHTS"),
a = u.getSync("HUE_LIGHTS_SELECTED"),
r = e.get("rgb.r"),
s = e.get("rgb.g"),
o = e.get("rgb.b");
r = r > .04045 ? Math.pow((r + .055) / 1.055, 2.4) : r / 12.92, s = s > .04045 ? Math.pow((s + .055) / 1.055, 2.4) : s / 13.02, o = o > .04045 ? Math.pow((o + .055) / 1.055, 2.4) : o / 12.92;
var l = .664511 * r + .154324 * s + .162028 * o,
c = .283881 * r + .668433 * s + .047685 * o,
A = 88e-6 * r + .07231 * s + .986039 * o,
d = [l / (l + c + A), c / (l + c + A)];
i.forEach(function(e, i) {
e && a.some(function(t) {
return e.uniqueid === t
}) && fetch("http://" + t + "/api/" + n + "/lights/" + (i + 1) + "/state/", {
method: "put",
body: JSON.stringify({
transitiontime: 10,
xy: d
})
}).catch(function(e) {})
})
},
_rateColor: function(e) {
var t = parseFloat(this.state.CONTRAST_MINIMUM),
n = this.state.BROWSER_COLOR_BG,
i = l.contrast(e, n) > t ? 50 : 0,
a = e.get("lch.l") > 5 && e.get("lch.l") < 95 ? 50 : 0,
r = e.get("lch.c") > 10 ? 50 : 0;
(e.get("lch.l") < 20 || e.get("lch.l") > 75) && (r = e.get("lch.c") > 50 ? r : 0);
var s = i + a + r;
return e.multiplier && (s *= e.multiplier), s
},
_setUiColors: function() {
var e = {},
t = void 0,
n = void 0,
i = void 0;
this.props.themeObject ? (e.colorBg = l(this.props.themeObject.colors.baseBg), e.colorFg = l(this.props.themeObject.colors.baseFg), t = l(this.props.themeObject.colors.highlightBg), n = l(this.props.themeObject.colors.accentBg), i = Number(this.props.themeObject.settings.borderRadius)) : (e.colorBg = l(this.state.BROWSER_COLOR_BG), e.colorFg = l(this.state.BROWSER_COLOR_FG), t = l(this.state.BROWSER_COLOR_HIGHLIGHT_BG), n = l(this.state.BROWSER_COLOR_ACCENT_BG), i = Number(this.state.BORDER_RADIUS));
var a = this._fContrast(t, l(e.colorBg));
Object.assign(e, {
colorHighlightBg: a,
colorHighlightBgDark: a.darken(.5),
colorHighlightFg: l(a.luminance() > .4 ? "#000" : "#fff"),
colorHighlightBgAlpha: a.alpha(.25).css()
}), e.colorBg = this._fContrast(e.colorBg, a);
var r = this._fContrast(l(n), l(e.colorBg));
Object.assign(e, {
colorAccentBg: r,
colorAccentBgDark: r.darken(.4),
colorAccentBgDarker: r.darken(1),
colorAccentFg: l(l(r).luminance() > .4 ? "#000" : "#fff"),
colorAccentFgAlpha: l(r).luminance() > .4 ? l("#000").alpha(.5).css() : l("#fff").alpha(.5).css()
}), l(r).luminance() > .75 ? Object.assign(e, {
colorAccentFgFaded: l.mix(e.colorAccentBg, "#000"),
colorAccentBgFaded: e.colorAccentBg.darken(.3),
colorAccentBgFadedMore: e.colorAccentBg.darken(.5),
colorAccentBgFadedMost: e.colorAccentBg.darken(.7)
}) : Object.assign(e, {
colorAccentFgFaded: l.mix(e.colorAccentBg, "#fff"),
colorAccentBgFaded: e.colorAccentBg.brighten(.3),
colorAccentBgFadedMore: e.colorAccentBg.brighten(.5),
colorAccentBgFadedMost: e.colorAccentBg.brighten(.7)
}), e.colorBg.luminance() > .2 ? (e.colorFg = this._fContrast(e.colorFg, e.colorBg), e.colorFgIntense = e.colorFg.darken(1.4), e.colorBg = this._fContrast(e.colorBg, e.colorFg)) : (e.colorFgIntense = e.colorFg.brighten(1.4), e.colorFg = this._fContrast(e.colorFg, e.colorBg), e.colorBg = this._fContrast(e.colorBg, e.colorFg)), e.colorFgFaded = this._fContrast(l.mix(e.colorFg, e.colorBg, .3), e.colorBg), e.colorFgFadedMore = this._fContrast(l.mix(e.colorFg, e.colorBg, .6), e.colorBg), e.colorBg = this._fContrast(e.colorBg, e.colorFg), e.colorBg.luminance() > .4 ? (e.colorBgIntense = e.colorBg.brighten(.8), e.colorBgIntenser = e.colorBg.brighten(1.2), e.colorBgFaded = e.colorBg.darken(.25), e.colorBgLight = e.colorBg.brighten(.3), e.colorBgLighter = e.colorBg.brighten(.6), e.colorBgLightIntense = e.colorBg.brighten(1.4), e.colorBgDark = e.colorBg.darken(.2), e.colorBgDarker = e.colorBg.darken(.7), e.colorBorderHighlight = l.mix(e.colorBgLight, e.colorHighlightBg, .5)) : (e.colorBgIntense = e.colorBg.darken(.15), e.colorBgIntenser = e.colorBg.darken(.3), e.colorBgFaded = e.colorBg.brighten(.3), e.colorBgLight = e.colorBg.brighten(.5), e.colorBgLighter = e.colorBg.brighten(.8), e.colorBgLightIntense = e.colorBg.brighten(.4), e.colorBgDark = e.colorBg.darken(.35), e.colorBgDarker = e.colorBg.darken(.55), e.colorBorderHighlight = l.mix(e.colorBgLight, e.colorHighlightBg, .7)), e.colorBgAlpha = l(e.colorBg + "").alpha(.8).css(), e.colorBorder = this._fContrast(e.colorBgDarker, e.colorBg, .5), e.colorBorderDisabled = e.colorBorder.darken(1), e.colorBorderIntense = this._fContrast(l.mix(e.colorFg, e.colorBg, .8), e.colorBg), Object.assign(e, {
radiusRound: i > -1 ? "100px" : 0,
radiusRounded: i > -1 ? "2px" : 0,
radiusRoundedLess: i > 0 ? "2px" : 0,
radius: i + "px",
radiusHalf: i / 2 + "px",
radiusThird: i > 3 ? i / 3 + "px" : 0,
radiusFifth: i / 5 + "px"
}), this.setState({
uiColors: e
})
},
_isContrastOk: function(e, t, n) {
var i = parseFloat(this.state.CONTRAST_MINIMUM) * n;
return l.contrast(e, t) >= i
},
_fContrast: function(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1,
i = l(e);
if (!this._isContrastOk(e, t, n)) {
var a = Math.abs(e.luminance() - t.luminance());
if (a < .02)
if (e.luminance() > .8) {
if (i = l("#000"), this._isContrastOk(i, t, n)) return i
} else if (e.luminance() < .025 && (i = l("#fff"), this._isContrastOk(i, t, n))) return i;
if (e.luminance() > t.luminance()) {
do
if (i = i.brighten(.1), "#ffffff" === i.hex()) return i; while (!this._isContrastOk(i, t, n))
} else
do
if (i = i.darken(.1), "#000000" === i.hex()) return i; while (!this._isContrastOk(i, t, n))
}
return i
},
_vivaldiSettingHandler: function(e) {
var t = this;
e.hasOwnProperty("CONTRAST_MINIMUM") && this.setState(e, function() {
t._setAccentColor(), t._setUiColors()
}), (e.hasOwnProperty("BROWSER_COLOR_BG") || e.hasOwnProperty("BROWSER_COLOR_FG") || e.hasOwnProperty("BROWSER_COLOR_ACCENT_BG") || e.hasOwnProperty("BORDER_RADIUS") || e.hasOwnProperty("BROWSER_COLOR_HIGHLIGHT_BG") || e.hasOwnProperty("DIM_BLURRED") || e.hasOwnProperty("TABCOLOR_BEHIND_TABS") || e.hasOwnProperty("USE_TABCOLOR")) && this.setState(e, this._setUiColors)
},
render: function() {
var t = this,
n = {},
s = {};
if (this.state.uiColors) {
if (Object.assign(n, this.state.uiColors), this.state.accentColor && this.state.USE_TABCOLOR) {
var o = this._fContrast(l(this.state.accentColor), l(n.colorBg));
Object.assign(n, {
colorAccentBg: o,
colorAccentBgDark: o.darken(.4),
colorAccentBgDarker: o.darken(1),
colorAccentFg: l(l(o).luminance() > .4 ? "#000" : "#fff")
}), l(o).luminance() > .75 ? Object.assign(n, {
colorAccentFgFaded: l.mix(n.colorAccentBg, "#000"),
colorAccentBgFaded: n.colorAccentBg.darken(.3),
colorAccentBgFadedMore: n.colorAccentBg.darken(.5),
colorAccentBgFadedMost: n.colorAccentBg.darken(.7)
}) : Object.assign(n, {
colorAccentFgFaded: l.mix(n.colorAccentBg, "#fff"),
colorAccentBgFaded: n.colorAccentBg.brighten(.3),
colorAccentBgFadedMore: n.colorAccentBg.brighten(.5),
colorAccentBgFadedMost: n.colorAccentBg.brighten(.7)
})
}
this.state.featureHueEnabled && u.getSync("HUE_ENABLED") && !this.props.themeObject && n.colorAccentBg && this.setHue(n.colorAccentBg), !this.state.hasFocus && this.state.DIM_BLURRED && (n.colorBg = n.colorBg.desaturate(.2), n.colorBgDark = n.colorBgDark.desaturate(.2), n.colorAccentBg = n.colorAccentBg.desaturate(1), n.colorAccentBgFaded = n.colorAccentBgFaded.desaturate(1), n.colorAccentBgFadedMore = n.colorAccentBgFadedMore.desaturate(1), n.colorAccentBgFadedMost = n.colorAccentBgFadedMost.desaturate(1), n.colorAccentBgDark = n.colorAccentBgDark.desaturate(1)), Object.keys(n).forEach(function(e) {
t._previousVars[e] && t._previousVars[e] === n[e] || (s[e] = n[e])
}), Object.assign(this._previousVars, n)
}
var c = !n.colorBg || n.colorBg.luminance() <= .4 ? "theme-dark" : "theme-light",
A = !n.colorHighlightBg || n.colorHighlightBg.luminance() <= .4 ? "hi-dark" : "hi-light",
d = !n.colorAccentBg || n.colorAccentBg.luminance() <= .4 ? "acc-dark" : "acc-light";
return r.createElement(e, i({
theme: s,
themeBg: c,
accentBg: d,
highlightBg: A
}, this.props, {
__source: {
fileName: a,
lineNumber: 763
}
}))
}
})
};
e.exports = y
}, function(e, t, n) {
// =========================
// Function_236
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function r(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function s(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
var o = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/menu/Menu.jsx",
l = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
c = n(1),
u = i(c),
A = n(11),
d = i(A),
h = n(94),
m = i(h),
p = n(52),
f = i(p),
g = n(45),
_ = i(g),
v = n(175),
b = i(v),
N = n(578),
E = i(N),
S = n(5),
T = i(S),
y = function(e) {
function t() {
var e, n, i, s;
a(this, t);
for (var l = arguments.length, c = Array(l), A = 0; A < l; A++) c[A] = arguments[A];
return n = i = r(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(c))), i.state = {
selectedItem: null,
selectedItemIndex: -1,
open: i.props.open || !1,
shortcutList: [],
underlinedChars: {},
underlinedCharPositions: [],
shortcuts: [],
showAccelerator: !1,
hasOpenSubmenu: !0
}, i._onCommandStoreChange = function() {
i.initializeUnderlinedChars()
}, i.onKeyDown = function(e) {
i.state.showAccelerator && i.setState({
showAccelerator: !1
}), e.keyCode === _.default.KEY_ALT && i.setState({
showAccelerator: !0
})
}, i.onKeyUp = function(e) {
i.state.showAccelerator && i.setState({
showAccelerator: !1
})
}, i.hideAccelerator = function() {
i.setState({
showAccelerator: !1
})
}, i.menuWillOpen = function() {
i.hideAccelerator(), i.setState({
hasOpenSubmenu: !0
})
}, i.menuDidClose = function() {
i.setState({
hasOpenSubmenu: !1
})
}, i.moveInsideViewport = function() {
var e = d.default.findDOMNode(i),
t = e.getBoundingClientRect(),
n = 20,
a = Math.min(window.innerWidth - t.right, 0),
r = Math.min(window.innerHeight - t.bottom, 0);
if (a < 0 || r < 0) {
var s = e.parentNode.parentNode.parentNode;
if (a < -n && s.classList.contains("menu")) {
var o = s.getBoundingClientRect();
o.left - n > window.innerWidth - o.right && (a = -t.width - o.width)
}
var l = window.getComputedStyle(e).transform;
"none" !== l && (l = l.split(","), a += parseInt(l[4]), r += parseInt(l[5])), t.left + a < 0 && (a = -t.left), e.style.transform = "translate(" + a + "px, " + r + "px)"
} else e.style.transform = ""
}, i.initializeUnderlinedChars = function(e) {
var t = e || i.props.items,
n = b.default.getShortcutsForMenuItems(t);
i.setState({
shortcutList: n
})
}, i.takeFocus = function(e) {
i.props.platformPopups !== !0 && (e && e.stopPropagation && e.stopPropagation(), d.default.findDOMNode(i).querySelector(".menu .focusTrap").focus())
}, i.giveFocusToSubMenu = function() {
i.props.platformPopups !== !0 && d.default.findDOMNode(i).querySelector(".menu .menu .focusTrap").focus()
}, i.giveFocusToParentMenu = function() {
i.props.platformPopups !== !0 && (i.props.giveFocusToParentMenu ? (i.props.giveFocusToParentMenu(), i.setState({
selectedItemIndex: -1
})) : i.state.open ? i.collapse(!0) : d.default.findDOMNode(i).querySelector(".menu .focusTrap").blur())
}, i.onKeyboardFocusIn = function() {
d.default.findDOMNode(i).addEventListener("keydown", i.handleKeyboardNavigation), (i.props.subMenu || i.props.horizontal) && i.state.selectedItemIndex === -1 && i.setSelected(0)
}, i.onKeyboardFocusOut = function() {
d.default.findDOMNode(i).removeEventListener("keydown", i.handleKeyboardNavigation)
}, i.handleKeyboardNavigation = function(e) {
if (e.preventDefault(), e.which === _.default.KEY_RETURN) i.onItemSelected(i.state.selectedItem);
else if (e.which === _.default.KEY_ESCAPE) i.giveFocusToParentMenu();
else if (e.which === _.default.KEY_LEFT) i.props.horizontal ? i.selectPreviousItem() : i.giveFocusToParentMenu();
else if (e.which === _.default.KEY_UP) i.props.horizontal ? i.giveFocusToParentMenu() : i.selectPreviousItem();
else if (e.which === _.default.KEY_RIGHT) i.props.horizontal ? i.selectNextItem() : i.giveFocusToSubMenu();
else if (e.which === _.default.KEY_DOWN) i.props.horizontal ? (i.giveFocusToSubMenu(), i.state.open || i.setState({
open: !0
})) : i.selectNextItem();
else if (i.state.underlinedChars.hasOwnProperty(e.keyCode)) {
var t = i.state.underlinedChars[e.keyCode];
i.setSelected(t), i.onItemSelected(i.props.items[t])
} else i.props.horizontal || e.stopPropagation()
}, i.selectNextItem = function() {
var e = i.getMaxMenuIndex(),
t = i.state.selectedItemIndex;
do t = t === e ? 0 : t + 1; while ("---" === i.props.items[t].name || i.props.items[t].disabled);
i.setSelected(t)
}, i.selectPreviousItem = function() {
var e = i.getMaxMenuIndex(),
t = i.state.selectedItemIndex;
do t = t < 1 ? e : t - 1; while ("---" === i.props.items[t].name || i.props.items[t].disabled);
i.setSelected(t)
}, i.getMaxMenuIndex = function() {
return i.props.items.length - 1
}, i.setSelected = function(e) {
"---" !== i.props.items[e].name && e <= i.getMaxMenuIndex() && !i.props.items[e].disabled && i.setState({
selectedItem: i.props.items[e],
selectedItemIndex: e
})
}, i.collapse = function(e) {
e === !0 ? (i.setState({
open: !1
}), i.props.giveFocusToParentMenu || "function" != typeof i.props.onClosed || i.props.onClosed()) : window.setTimeout(function() {
this._isMounted && "focusTrap" !== document.activeElement.className && (this.setState({
open: !1
}), "function" == typeof this.props.onClosed && this.props.onClosed())
}.bind(i), 100)
}, i.onClicked = function(e) {
e.preventDefault(), e.stopPropagation(), e.nativeEvent.target.focus(), i.setState({
open: !i.state.open
})
}, i.onItemSelected = function(e, t) {
var n = !1;
i.props.horizontal ? i.setState({
open: !i.state.open
}) : e.items ? i.giveFocusToSubMenu() : e.commandName ? (m.default.runAction(e), n = !0) : "function" == typeof e.onclick ? (e.onclick(e, t), n = !0) : "function" == typeof e.handler ? (e.handler(t), n = !0) : "function" == typeof i.props.onItemSelected && i.props.onItemSelected(e, t), n && i.onClosed()
}, i.onClosed = function() {
i.collapse(!0), "function" == typeof i.props.onClosed && i.props.onClosed()
}, i.renderMenu = function() {
return i.props.items.map(function(e, t) {
return u.default.createElement(E.default, {
isSelected: this.state.selectedItemIndex === t,
setSelected: this.setSelected,
key: t,
nr: t,
menuItem: e,
shortcutItem: this.state.shortcutList[t],
showAccelerator: this.state.showAccelerator,
onItemSelected: this.onItemSelected,
onClosed: this.onClosed,
giveFocusToParentMenu: this.takeFocus,
menuWillOpen: this.menuWillOpen,
menuDidClose: this.menuDidClose,
onDeleted: this.props.onDeleted,
platformPopups: this.props.platformPopups,
__source: {
fileName: o,
lineNumber: 338
}
})
}.bind(i))
}, s = n, r(i, s)
}
return s(t, e), l(t, [{
key: "componentWillMount",
value: function() {
this.initializeUnderlinedChars()
}
}, {
key: "componentDidMount",
value: function() {
this._isMounted = !0, f.default.addChangeListener(this._onCommandStoreChange), window.addEventListener("keydown", this.onKeyDown), window.addEventListener("keyup", this.onKeyUp), window.addEventListener("blur", this.hideAccelerator)
}
}, {
key: "componentWillUnmount",
value: function() {
this._isMounted = !1, f.default.removeChangeListener(this._onCommandStoreChange), window.removeEventListener("keydown", this.onKeyDown), window.removeEventListener("keyup", this.onKeyUp), window.removeEventListener("blur", this.hideAccelerator)
}
}, {
key: "componentWillReceiveProps",
value: function(e) {
this.props.items !== e.items && this.initializeUnderlinedChars(e.items)
}
}, {
key: "render",
value: function() {
return u.default.createElement("nav", {
className: (0, T.default)({
"platform-popups": this.props.platformPopups,
menu: !0,
horizontal: this.props.horizontal,
opensubmenu: this.state.hasOpenSubmenu,
open: this.state.open
}),
style: this.props.minWidth ? {
minWidth: this.props.minWidth
} : {},
onMouseOver: this.takeFocus,
onMouseDown: this.onClicked,
onMouseUp: this.onClicked,
onBlur: this.collapse,
tabIndex: "-1",
__source: {
fileName: o,
lineNumber: 358
}
}, (this.state.open || this.props.horizontal) && u.default.createElement("input", {
type: "text",
className: "focusTrap",
autoFocus: !this.props.subMenu && !this.props.horizontal,
onFocus: this.onKeyboardFocusIn,
onBlur: this.onKeyboardFocusOut,
__source: {
fileName: o,
lineNumber: 372
}
}), u.default.createElement("ul", {
__source: {
fileName: o,
lineNumber: 378
}
}, this.renderMenu()))
}
}]), t
}(u.default.PureComponent);
y.propTypes = {
items: u.default.PropTypes.array.isRequired,
horizontal: u.default.PropTypes.bool,
minWidth: u.default.PropTypes.number,
open: u.default.PropTypes.bool,
onClosed: u.default.PropTypes.func,
onItemSelected: u.default.PropTypes.func,
onDeleted: u.default.PropTypes.func,
platformPopups: u.default.PropTypes.bool,
subMenu: u.default.PropTypes.bool,
giveFocusToParentMenu: u.default.PropTypes.func
}, e.exports = y
}, function(e, t, n) {
// =========================
// Function_237
// =========================
"use strict";
function i(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
var a = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
r = n(579),
s = n(110),
o = function() {
function e() {
i(this, e)
}
return a(e, [{
key: "addIfNotAddressExists",
value: function(e) {
var t = e.map(function(e) {
return e.address
}).filter(function(e) {
return !!e
}).map(function(e) {
return e.toLowerCase()
});
return r.contacts.where("address").anyOfIgnoreCase(t).toArray(function(e) {
return e.map(function(e) {
return e.address.toLowerCase()
})
}).then(function(n) {
return t = t.filter(function(e) {
return n.indexOf(e) === -1
}), e.filter(function(e) {
return n.indexOf(e.address.toLowerCase()) === -1
})
}).then(function(e) {
return e.map(function(e) {
return new s(e)
})
}).then(function(e) {
return r.contacts.bulkAdd(e).then(function() {
return r.contacts.where("address").anyOfIgnoreCase(t).toArray()
}).catch(function(e) {
console.log(e)
})
})
}
}, {
key: "put",
value: function(e) {
return r.contacts.put(e)
}
}, {
key: "remove",
value: function(e) {
return r.contacts.delete(e)
}
}, {
key: "getAll",
value: function() {
var e = {};
return r.contacts.each(function(t) {
return e[t.id] = t
}).then(function() {
return e
})
}
}, {
key: "putTrustedAddress",
value: function(e) {
return r.trustedAddresses.put({
address: e
})
}
}, {
key: "getTrustedAddress",
value: function(e) {
return r.trustedAddresses.get(e)
}
}]), e
}();
e.exports = new o
}, function(e, t, n) {
// =========================
// Function_238
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = n(3),
r = {
getItems: function(e, t) {
var n = this,
i = [],
r = "read" === t ? a.getSync("MAIL_READ_HEADERS_HIDDEN") : a.getSync("MAIL_COMPOSE_HEADERS_HIDDEN");
return e.map(function(e) {
i.push(Object.assign({
type: "checkbox",
checked: !r.includes(e.ref),
handler: n._setField.bind(n, e.ref, t)
}, e.labels))
}), i
},
_setField: function(e, t) {
var n = "read" === t ? "MAIL_READ_HEADERS_HIDDEN" : "MAIL_COMPOSE_HEADERS_HIDDEN",
r = a.getSync(n).slice();
r.includes(e) ? r = r.filter(function(t) {
return t !== e
}) : r.push(e), a.set(i({}, n, r))
}
};
e.exports = r
}, function(e, t, n) {
// =========================
// Function_239
// =========================
"use strict";
var i = n(181),
a = n(363).defaultFilters,
r = n(42),
s = r.ALL_MESSAGES_ACCOUNT_ID,
o = r.DRAFTS_FOLDER_PATH;
i.debug = !1;
var l = new i("M3v1");
l.version(1).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: "[accountId+path+uid],[sentDate+accountId+path+uid]"
}), l.version(2).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: "[accountId+path+uid],[sentDate+accountId+path+uid]",
folders: "accountId",
mailboxCache: "[accountId+path],accountId"
}), l.version(3).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: "[accountId+path+uid],[sentDate+accountId+path+uid]",
folders: "accountId",
mailboxCache: "[accountId+path],accountId"
}).upgrade(function() {
l.messages.toCollection().modify({
bodyParts: void 0
})
}), l.version(4).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: "[accountId+path+uid],[sentDate+accountId+path+uid]",
folders: "accountId",
mailboxCache: "[accountId+path],accountId"
}).upgrade(function() {
l.mailboxCache.toCollection().modify({
highestModseq: "0"
})
}), l.version(5).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: "[accountId+path+uid],[sentDate+accountId+path+uid]",
folders: "accountId",
mailboxCache: "[accountId+path],accountId",
filters: "[accountId+path],filterValue"
}), l.version(6).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: "[accountId+path+uid],[sentDate+accountId+path+uid]",
folders: "accountId",
mailboxCache: "[accountId+path],accountId",
filters: "[accountId+path],filterValue",
buffer: "++_id,[accountId+path+uid+operation]"
}), l.version(7).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: "[accountId+path+uid],[sentDate+accountId+path+uid]",
folders: "accountId",
mailboxCache: "[accountId+path],accountId",
filters: "[accountId+path],filterValue",
buffer: "++_id,[accountId+path+uid+operation]"
}).upgrade(function() {
l.filters.toCollection().modify(function(e) {
e.filterValue = {
query: e.filterValue
}
}).catch().then(function() {
return l.filters.bulkPut(a)
})
}), l.version(8).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: "[accountId+path+uid],[sentDate+accountId+path+uid]",
folders: "accountId",
mailboxCache: "[accountId+path],accountId",
filters: "[accountId+path],filterValue",
buffer: "++_id,[accountId+path+uid+operation]"
}).upgrade(function() {
l.messages.toCollection().modify(function() {
this.value.flags = this.value.unread ? [] : ["\\Seen"], delete this.value.unread
}), l.searchList.toCollection().modify(function() {
this.value.flags = this.value.unread ? [] : ["\\Seen"], delete this.value.unread
}), l.mailboxCache.toCollection().modify({
highestModseq: "0"
})
}), l.version(9).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: "[accountId+path+uid],[sentDate+accountId+path+uid]",
folders: "accountId",
mailboxCache: "[accountId+path],accountId",
filters: "[accountId+path],filterValue",
buffer: "++_id,[accountId+path+uid+operation]"
}).upgrade(function() {
var e = [s, o, 0],
t = [s, o, Number.MAX_VALUE];
l.messages.where("[accountId+path+uid]").between(e, t).delete(), l.tokens.where("[accountId+path+uid]").between(e, t).delete(), l.searchList.where("[accountId+path+uid]").between(e, t).delete()
}), l.version(10).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: "[accountId+path+uid],[sentDate+accountId+path+uid]",
folders: "accountId",
mailboxCache: "[accountId+path],accountId",
filters: "[accountId+path],filterValue",
buffer: "++_id,[accountId+path+uid+operation],accountId"
}), l.version(11).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: "[accountId+path+uid],[sentDate+accountId+path+uid],[accountId+path]",
folders: "accountId",
mailboxCache: "[accountId+path],accountId",
filters: "[accountId+path],filterValue",
buffer: "++_id,[accountId+path+uid+operation],accountId"
}), l.version(12).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: "[accountId+path+uid],[sentDate+accountId+path+uid]",
folders: "accountId",
mailboxCache: "[accountId+path],accountId",
filters: "[accountId+path],filterValue",
buffer: "++_id,[accountId+path+uid+operation],accountId"
}), l.version(13).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: ["[accountId+path+uid]", "[sentDate+accountId+path+uid]", "[threadKey+accountId+path+uid]", "[accountId+messageId]", "inReplyTo", "*references"].join(","),
folders: "accountId",
mailboxCache: "[accountId+path],accountId",
filters: "[accountId+path],filterValue",
buffer: "++_id,[accountId+path+uid+operation],accountId"
}), l.version(14).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: ["[accountId+path+uid]", "[sentDate+accountId+path+uid]", "[threadKey+accountId+path+uid]", "[accountId+messageId]", "inReplyTo", "*references"].join(","),
folders: "accountId",
mailboxCache: "[accountId+path],accountId",
filters: "[accountId+path],filterValue",
buffer: "++_id,[accountId+path+uid+operation],[accountId+path+uid],accountId"
}), l.version(15).stores({
messages: "[accountId+path+uid]",
tokens: "[accountId+path+uid],*tokens",
searchList: ["[accountId+path+uid]", "[sentDate+accountId+path+uid]", "[threadKey+accountId+path+uid]", "[accountId+messageId]", "inReplyTo", "*references"].join(","),
folders: "accountId",
mailboxCache: "[accountId+path],accountId",
filters: "[accountId+path],filterValue",
buffer: "++_id,[accountId+path+uid+operation],[accountId+path+uid],accountId"
}).upgrade(function() {
l.searchList.toCollection().modify(function(e) {
e.threadKey && 0 !== e.threadKey.length || (e.threadKey = e.sentDate.toString()), e.references || (e.references = [])
})
}), l.on("populate", function() {
l.filters.bulkPut(a)
}), l.open(), e.exports = l
}, function(e, t, n) {
// =========================
// Function_240
// =========================
"use strict";
var i = n(66),
a = function e(t) {
var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [],
i = [];
return n.forEach(function(n) {
Array.isArray(n.content) ? i = i.concat(e(t, n.content)) : "attachment" === n.type && !!n.id === t && i.push(n)
}), i
},
r = function(e) {
return new Promise(function(t) {
e.bodyParts ? t(e) : i.parse({
bodyParts: [{
raw: e.raw
}]
}, function(n, i) {
n ? e.bodyParts = [{
content: "",
type: "text"
}] : e.bodyParts = i[0].content, t(e)
})
})
};
e.exports = {
getAttachments: a.bind(void 0, !1),
getContentIdAttachments: a.bind(void 0, !0),
parseMailBody: r
}
}, function(e, t, n) {
// =========================
// Function_241
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/OkChangeButton.jsx",
a = n(1),
r = n(2),
s = function(e) {
var t = e.onDialogClosed,
n = e.onChange;
return a.createElement("section", {
__source: {
fileName: i,
lineNumber: 5
}
}, a.createElement("input", {
type: "button",
className: "primary",
onClick: t,
value: r("OK"),
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 6
}
}), a.createElement("input", {
type: "button",
onClick: n,
value: r("Change"),
__source: {
fileName: i,
lineNumber: 11
}
}))
};
e.exports = s
}, function(e, t, n) {
// =========================
// Function_242
// =========================
"use strict";
var i = n(3),
a = n(15),
r = n(89),
s = "chrome://favicon/",
o = "webview-",
l = "webpanel",
c = {
addByUrl: function(e) {
var t = o + r();
return i.get("WEB_PANEL_LIST", function(n) {
void 0 === n && (n = []), n.push({
id: t,
contentUrl: e,
mobileMode: !0,
title: "",
faviconUrl: "",
available: !0
}), i.set({
WEB_PANEL_LIST: n
})
}.bind(this)), t
},
removeById: function(e) {
i.get("WEB_PANEL_LIST", function(t) {
if (void 0 !== t) {
for (var n = [], a = 0; a < t.length; a++) {
var r = t[a];
r.id !== e && n.push(r)
}
i.set({
WEB_PANEL_LIST: n
})
}
}.bind(this))
},
setMobileMode: function(e, t) {
i.get("WEB_PANEL_LIST", function(n) {
if (void 0 !== n) {
for (var a = [], r = 0; r < n.length; r++) {
var s = n[r];
s.id === e && (s.mobileMode = t), a.push(s)
}
i.set({
WEB_PANEL_LIST: a
})
}
}.bind(this))
},
setAvailable: function(e, t) {
i.get("WEB_PANEL_LIST", function(n) {
if (void 0 !== n) {
for (var a = [], r = 0; r < n.length; r++) {
var s = n[r];
s.id === e && (s.available = t), a.push(s)
}
i.set({
WEB_PANEL_LIST: a
})
}
}.bind(this))
},
setTitle: function(e, t) {
i.get("WEB_PANEL_LIST", function(n) {
if (void 0 !== n) {
for (var a = [], r = 0; r < n.length; r++) {
var s = n[r];
s.id === e && (s.title = t), a.push(s)
}
i.set({
WEB_PANEL_LIST: a
})
}
}.bind(this))
},
setActiveUrl: function(e, t) {
i.get("WEB_PANEL_LIST", function(n) {
if (void 0 !== n) {
for (var a = [], r = 0; r < n.length; r++) {
var s = n[r];
s.id === e && (s.activeUrl = t), a.push(s)
}
i.set({
WEB_PANEL_LIST: a
})
}
}.bind(this))
},
copyWebPanelAdress: function(e) {
i.get("WEB_PANEL_LIST", function(t) {
if (void 0 !== t)
for (var n = 0; n < t.length; n++) {
var i = t[n];
if (i.id === e) {
var a = function(e) {
e.clipboardData.setData("text/plain", i.activeUrl), e.preventDefault()
};
document.addEventListener("copy", a), document.execCommand("copy"), document.removeEventListener("copy", a);
break
}
}
}.bind(this))
},
openInTab: function(e, t, n) {
i.get("WEB_PANEL_LIST", function(i) {
if (void 0 !== i)
for (var r = 0; r < i.length; r++) {
var s = i[r];
if (s.id === e) {
a.openURL(s.activeUrl, {
inCurrent: t,
inBackground: n
});
break
}
}
})
},
openInWindow: function(e, t, n) {
i.get("WEB_PANEL_LIST", function(i) {
if (void 0 !== i)
for (var r = 0; r < i.length; r++) {
var s = i[r];
if (s.id === e) {
a.openURL(s.activeUrl, {
inNewWindow: !0,
inBackground: t,
incognito: n
});
break
}
}
})
},
getIndexByShortcut: function(e) {
var t = l.length,
n = e.substr(0, t),
i = e.substr(t).trim();
return n === l && i >= 1 && i <= 9 ? i : -1
},
setUIContent: function(e) {
i.get("WEB_PANEL_UI", function(t) {
void 0 !== e.showToolbar && (t.showToolbar = e.showToolbar), void 0 !== e.allControls && (t.allControls = e.allControls), i.set({
WEB_PANEL_UI: t
})
})
},
getPanelPrefix: function() {
return o
},
getFaviconPrefix: function() {
return s
}
};
e.exports = c
}, function(e, t, n) {
// =========================
// Function_243
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/zoom/ZoomIndicator.jsx",
a = n(1),
r = n(9),
s = n(7),
o = s.range,
l = n(2),
c = n(5),
u = n(45),
A = n(13),
d = parseInt(1e7 * Math.random()),
h = a.createClass({
displayName: "ZoomIndicator",
mixins: [r, A],
vivaldiSettingsKeys: ["USE_BUTTONS_IN_RANGE_CONTROLS"],
propTypes: {
onZoomUpdated: a.PropTypes.func.isRequired,
maxLevel: a.PropTypes.number.isRequired,
minLevel: a.PropTypes.number.isRequired,
step: a.PropTypes.number.isRequired,
initialZoom: a.PropTypes.number,
delay: a.PropTypes.bool
},
getInitialState: function() {
return {
zoom: this.props.initialZoom || 1,
editing: !1
}
},
componentWillReceiveProps: function(e) {
e.initialZoom && this.setState({
zoom: e.initialZoom
})
},
forceZoomState: function(e) {
this.setState({
zoom: this.rangeCheck(e)
})
},
setZoomLevel: function(e, t) {
var n = this.rangeCheck(e);
this.setState({
zoom: this.rangeCheck(e),
editing: t
}), t && (this.refs.editZoom.value = parseInt(100 * n)), this.props.onZoomUpdated(n)
},
resetZoom: function() {
this.props.onZoomReset ? this.props.onZoomReset() : this.setZoomLevel(1)
},
updateZoomLevel: function() {
if (this.props.delay) {
var e = parseFloat(this.state.zoom);
this.setZoomLevel(e)
}
},
rangeChanged: function(e) {
this.setState({
zoom: e.target.value
}, this.props.delay ? null : this.setZoomLevel(parseFloat(e.target.value)))
},
rangeCheck: function(e) {
return Math.min(Math.max(e, this.props.minLevel), this.props.maxLevel)
},
zoomInStep: function() {
this.setZoomLevel(parseFloat(this.state.zoom + this.props.step).toFixed(2))
},
zoomOutStep: function() {
this.setZoomLevel(parseFloat(this.state.zoom - this.props.step).toFixed(2))
},
zoomHalf: function() {
this.setZoomLevel(parseFloat((this.state.zoom / 2).toFixed(2)))
},
zoomDouble: function() {
this.setZoomLevel(parseFloat((2 * this.state.zoom).toFixed(2)))
},
handleKeyDown: function(e) {
e.keyCode === u.KEY_LEFT ? (this.zoomOutStep(), e.preventDefault()) : e.keyCode === u.KEY_RIGHT && (this.zoomInStep(), e.preventDefault())
},
renderTicks: function() {
return o(this.props.minLevel, this.props.maxLevel + this.props.step, this.props.step).map(function(e) {
return a.createElement("option", {
key: e,
__source: {
fileName: i,
lineNumber: 128
}
}, Math.round(100 * e) / 100)
})
},
_onEditKeyDown: function(e) {
if (e.keyCode === u.KEY_ESCAPE) this.setState({
editing: !1
});
else if (e.keyCode === u.KEY_SUBTRACT) this.setZoomLevel(this.state.zoom - this.props.step, !0), e.preventDefault();
else if (e.keyCode === u.KEY_ADD) this.setZoomLevel(this.state.zoom + this.props.step, !0), e.preventDefault();
else if (e.keyCode === u.KEY_RETURN) {
var t = this.refs.editZoom.value / 100;
0 !== t && t === parseFloat(t) || (t = 1), this.setZoomLevel(t)
}
},
toggleEditZoom: function() {
var e = this;
this.props.disabled || this.setState({
editing: !this.state.editing
}, function() {
e.refs.editZoom.select()
})
},
_onEditZoomBlur: function() {
this.setState({
editing: !1
})
},
onMouseEnter: function() {
document.addEventListener("wheel", this.onMouseWheel, !0)
},
onMouseLeave: function() {
document.removeEventListener("wheel", this.onMouseWheel, !0)
},
onMouseWheel: function(e) {
e.deltaY > 0 || e.deltaX < 0 ? this.zoomOutStep() : (e.deltaY < 0 || e.deltaX > 0) && this.zoomInStep()
},
incrementCount: function(e) {
this.setZoomLevel(this.state.zoom + this.props.step)
},
decrementCount: function(e) {
this.setZoomLevel(this.state.zoom - this.props.step)
},
render: function() {
var e = this.state.zoom,
t = void 0;
t = this.state.editing ? a.createElement("input", {
type: "number",
ref: "editZoom",
defaultValue: Math.round(100 * this.state.zoom),
onKeyDown: this._onEditKeyDown,
onBlur: this._onEditZoomBlur,
step: "1",
disabled: this.props.disabled,
__source: {
fileName: i,
lineNumber: 200
}
}) : a.createElement("span", {
className: c({
"zoom-percent": !0,
disabled: this.props.disabled
}),
onClick: this.toggleEditZoom,
__source: {
fileName: i,
lineNumber: 209
}
}, Math.round(100 * e) + " %");
var n = this.props.disabled || (this.props.defaultZoomLevel ? this.props.defaultZoomLevel === e : 1 === e);
return a.createElement("div", {
className: "zoom-control",
__source: {
fileName: i,
lineNumber: 223
}
}, this.props.inFooter ? a.createElement("button", {
className: "zoom-reset button-toolbar-small",
tabIndex: this.props.keyAccess,
onClick: this.resetZoom,
title: l("Reset zoom"),
disabled: n,
__source: {
fileName: i,
lineNumber: 226
}
}, l("Reset")) : a.createElement("input", {
className: "zoom-reset",
type: "button",
tabIndex: this.props.keyAccess,
onClick: this.resetZoom,
title: l("Reset zoom"),
disabled: n,
value: l("Reset"),
__source: {
fileName: i,
lineNumber: 235
}
}), this.state.USE_BUTTONS_IN_RANGE_CONTROLS ? a.createElement("span", {
__source: {
fileName: i,
lineNumber: 267
}
}, a.createElement("input", {
type: "button",
value: "-",
className: "button-toolbar-small",
onClick: this.decrementCount,
disabled: this.props.disabled,
__source: {
fileName: i,
lineNumber: 268
}
}), t, a.createElement("input", {
type: "button",
value: "+",
className: "button-toolbar-small",
onClick: this.incrementCount,
disabled: this.props.disabled,
__source: {
fileName: i,
lineNumber: 274
}
})) : a.createElement("span", {
__source: {
fileName: i,
lineNumber: 246
}
}, a.createElement("input", {
type: "range",
min: this.props.minLevel,
max: this.props.maxLevel,
step: this.props.step,
onMouseEnter: this.onMouseEnter,
onMouseLeave: this.onMouseLeave,
onChange: this.rangeChanged,
onKeyDown: this.handleKeyDown,
onMouseUp: this.props.delay ? this.updateZoomLevel : null,
onTouchEnd: this.props.delay ? this.updateZoomLevel : null,
value: e,
disabled: this.props.disabled,
tabIndex: this.props.keyAccess,
list: "ticks-" + d,
__source: {
fileName: i,
lineNumber: 247
}
}), a.createElement("datalist", {
id: "ticks-" + d,
__source: {
fileName: i,
lineNumber: 261
}
}, this.renderTicks()), t))
}
});
e.exports = h
}, function(e, t, n) {
// =========================
// Function_244
// =========================
"use strict";
var i = n(110),
a = n(237),
r = n(18).EventEmitter,
s = n(8),
o = n(6),
l = "change",
c = {},
u = Object.assign({}, r.prototype, {
getAll: function() {
return c
},
getAsTree: function(e) {
var t = u.getAll();
return Object.keys(t).map(function(e) {
return t[e]
}).filter(function(t) {
return p(t, e)
})
},
getNodeById: function(e) {
var t = function t(n) {
for (var i = 0; i < n.length; i++) {
var a = n[i];
if (a.id === e) return a;
if (a.children && (a = t(a.children))) return a
}
},
n = Object.keys(c).map(function(e) {
return c[e]
});
return t(n)
},
getContactsWithAddress: function(e) {
var t = Object.keys(c).filter(function(t) {
return c[t].address.toLowerCase() === e.toLowerCase()
});
if (t[0]) return c[t[0]]
},
getEmptyContact: function() {
var e = {
id: "",
photo: "",
name: "",
address: "",
phone: "",
postal: ""
};
return e
},
getThoseWithAddresses: function() {
return Object.keys(c).map(function(e) {
return c[e]
}).filter(function(e) {
return e.address
})
},
emitChange: function(e) {
this.emit(l, e)
},
addChangeListener: function(e) {
this.on(l, e)
},
removeChangeListener: function(e) {
this.removeListener(l, e)
}
}),
A = function() {
a.getAll().then(function(e) {
var t = !0,
n = !1,
a = void 0;
try {
for (var r, s = Object.keys(e)[Symbol.iterator](); !(t = (r = s.next()).done); t = !0) {
var o = r.value;
e[o] = new i(e[o])
}
} catch (e) {
n = !0, a = e
} finally {
try {
!t && s.return && s.return()
} finally {
if (n) throw a
}
}
c = e, u.emitChange()
})
},
d = function(e) {
e.clearGenerated(), a.put(e).then(function() {
c[e.id] = e, u.emitChange()
})
},
h = function(e) {
e.forEach(function(e) {
c[e.id] = new i(e)
}), u.emitChange()
},
m = function(e) {
a.remove(e.id).then(function() {
delete c[e.id], u.emitChange()
})
},
p = function(e, t) {
var n = e.name || e.address || "";
return !t || 0 === t.length || n.toLowerCase().indexOf(t.toLowerCase()) > -1
};
s.register(function(e) {
var t = e.action;
switch (t.actionType) {
case o.CONTACT_INITIALIZE:
A();
break;
case o.CONTACT_SAVE_CONTACT:
d(t.contact);
break;
case o.CONTACT_ADD_CONTACTS:
h(t.contacts);
break;
case o.CONTACT_DELETE_CONTACT:
m(t.contact)
}
}), e.exports = u
}, function(e, t, n) {
// =========================
// Function_245
// =========================
(function(t) {
"use strict";
function i(e) {
var t = M.get("today");
if (t.size > 0) {
var n = new N(t.first().get("visitTime"));
if (n.endOf("day") < N().startOf("day")) {
M = M.set("other", t.concat(M.get("other")));
var i = M.get("todaysStats"),
a = M.get("olderStats"),
r = Object.assign(i, a);
M = M.set("olderStats", r)
}
}
var s = h(e.historyItems);
M = M.set("today", O(s));
var o = d(e.historyItems);
M = M.set("todaysStats", o), L.emitChangeParam("searchResultsReady", e.tab_id)
}
function a(e) {
var t = h(e.historyItems),
n = M.get("other", new C),
i = t.get(-1, new I({
id: ""
})),
a = n.get(0, new I({
id: ""
}));
a.get("id") === i.get("id") && (a = a.update("count", function(e) {
return e + i.get("count")
}), a = a.update("children", function(e) {
return e.concat(i.get("children"))
}), n = n.delete(0), t = t.set(-1, a)), M = M.set("other", O(t).concat(n));
var r = d(e.historyItems),
s = M.get("olderStats", {}),
o = Object.assign(s, r);
M = M.set("olderStats", o), L.emitChangeParam("searchResultsReady", e.tab_id)
}
function r(e) {
var t = k.get(e.tab_id, new S),
n = t.merge({
rangePicker: e.setting.rangePicker,
startTime: N(e.setting.startTime),
endTime: N(e.setting.endTime)
});
k = k.set(e.tab_id, n), L.emitChangeParam("filterChange", e.tab_id)
}
function s(e) {
k = k.set(e.tab_id, e.historyQuery), L.emitChangeParam("filterChange", e.tab_id), t.nextTick(function() {
L.emitChangeParam("searchResultsReady", e.tab_id)
})
}
function o(e) {
var t = k.get(e.tab_id, new S),
n = t.merge({
displayMode: e.displayMode
});
k = k.set(e.tab_id, n), L.emitChangeParam("filterChange", e.tab_id)
}
function l(e) {
var t = new N(e.startTime),
n = new N(e.endTime),
i = t.format("YYYY-MM-DD"),
a = "other";
N().isBetween(t, n) && (a = "today");
var r = M.get(a).map(function(t) {
if (t.get("keyParId") !== i) return t;
var n = t.set("children", t.get("children").filter(function(t) {
return t.get("url").indexOf(e.url) === -1
}));
return n.get("children").count() ? n : void 0
}).filter(function(e) {
return e && e.count()
});
M = M.set(a, r), L.emitChange("searchResultsReady")
}
function c(e) {
k = k.delete(e)
}
function u(e, t, n) {
if (!t.length) return e;
var i = b.groupBy(e, t[0], n),
a = t.slice(1);
for (var r in i) i[r] = u(i[r], a, n);
return i
}
function A(e) {
var t = "date";
if (e) {
var n = [];
"nogrouping" !== t && n.push(t), n.push("url");
var i = u(e, n),
a = Object.keys(i).map(function(e) {
var n = N(e, "dddd, MMMM Do, YYYY"),
a = Object.keys(i[e]).map(function(n) {
if ("nogrouping" === t) return i[e][n];
var a = {},
r = i[e][n][0];
return a.protocol = r.protocol, a.address = r.address, a.url = r.url, a.title = r.title, a.isBookmarked = r.isBookmarked, a.transition_type = r.transition_type, a.visitCount = i[e][n].length, a.visitTime = b.max(b.map(i[e][n], "visitTime")), a
}),
r = b.map(a, "visitCount"),
s = b.sum(r);
return {
id: n.format("YYYY-MM-DD"),
visitTime: n.valueOf(),
key: e,
count: s,
children: a,
keyParId: n.format("YYYY-MM-DD")
}
});
return a
}
}
function d(e) {
v.runtime.lastError && console.error(v.runtime.lastError);
var t = e.map(function(e) {
var t = new N(parseFloat(e.visitTime));
return e.dateKey = t.format("YYYY-MM-DD"), e.time = t.format("HH"), e
}),
n = u(t, ["dateKey"]);
return b.forOwn(n, function(e, t) {
for (var i = u(e, ["time"]), a = [], r = 0; r < 24; r++) {
var s = r + 1;
a.push({
hour: s,
pages: 0,
visits: 0,
unixDate: N(t + "T" + (s < 10 ? "0" : "") + s).format("x")
})
}
b.forOwn(i, function(e, t) {
t = parseInt(t);
var n = b.groupBy(i[t], "address");
return a[t].pages = b.size(n), a[t].visits = e.length, i[t] = {
pages: b.size(n),
visits: e.length
}
});
var o = u(e, ["address"]),
l = u(e, ["url"]),
c = Object.keys(l).length,
A = [];
b.forOwn(o, function(e, t) {
A.push({
url: t,
visitCount: e.length
})
});
var d = b.orderBy(A, "visitCount", "desc").slice(0, 5);
return n[t] = {
mostVisited: d,
pages: c,
visits: n[t].length,
hour: i,
timeArr: a
}
})
}
function h(e) {
if (e) {
e.map(function(e) {
return e.date = new N(e.visitTime).format("dddd, MMMM Do, YYYY")
});
var t = A(e);
return O(t)
}
}
function m(e) {
var t = e.since;
if (0 === t) M = new I({
today: C(),
other: C()
}), L.emitChangeParam("searchResultsReady");
else {
var n = new N,
i = "today";
t < n.startOf("d").valueOf() && (i = "other", M = M.set("today", new C));
var a = M.get(i).map(function(e) {
var n = e.set("children", e.get("children").filter(function(e) {
return e.get("visitTime") <= t
}));
if (n.get("children").count()) return n
}).filter(function(e) {
return e && e.count()
});
M = M.set(i, a), L.emitChangeParam("searchResultsReady")
}
}
var p = function() {
function e(e, t) {
var n = [],
i = !0,
a = !1,
r = void 0;
try {
for (var s, o = e[Symbol.iterator](); !(i = (s = o.next()).done) && (n.push(s.value), !t || n.length !== t); i = !0);
} catch (e) {
a = !0, r = e
} finally {
try {
!i && o.return && o.return()
} finally {
if (a) throw r
}
}
return n
}
return function(t, n) {
if (Array.isArray(t)) return t;
if (Symbol.iterator in Object(t)) return e(t, n);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
}
}(),
f = n(18).EventEmitter,
g = n(8),
_ = n(6),
v = n(4),
b = n(7),
N = n(44),
E = n(356),
S = E.HistoryFilter,
T = n(613),
y = n(27),
C = y.List,
I = y.Map,
O = y.fromJS,
w = "PANEL",
D = "change",
k = new I,
M = new I({
today: C(),
other: C()
}),
L = Object.assign({}, f.prototype, {
getPanelResourceKey: function() {
return w
},
getHistorySearchResults: function(e) {
var t = k.get(e, new S),
n = M.get("today").concat(M.get("other")),
i = new N(n.reduce(function(e, t) {
return e < t.get("id") ? e : t.get("id")
}, (new N).valueOf()));
if (n = n.filter(function(e) {
return e.get("visitTime") >= t.startTime.valueOf() && e.get("visitTime") <= t.endTime.valueOf()
}), t.parsedFilter.query || t.parsedFilter.title || t.parsedFilter.url) {
var a = t.parsedFilter.query.toLowerCase(),
r = t.parsedFilter.title.toLowerCase(),
s = t.parsedFilter.url.toLowerCase();
n = T(n, a, r, s, t.searchURL)
}
return {
data: n.toJS(),
filter: t,
oldestHistoryDate: i
}
},
getStatistics: function(e) {
var t = M.get("todaysStats", {}),
n = M.get("olderStats", {}),
i = Object.assign({}, t, n),
a = k.get(e, new S);
return this.filterStatistics(i, a.parsedFilter.query.toLocaleLowerCase())
},
filterStatistics: function(e, t) {
var n = {};
return Object.keys(e).forEach(function(i) {
var a = e[i].mostVisited.filter(function(e) {
return e.url.indexOf(t) !== -1
});
a.length && (n[i] = {
mostVisited: a,
timeArr: e[i].timeArr,
hour: e[i].hour,
pages: a.length,
visits: a.reduce(function(e, t) {
return e + t.visitCount
}, 0)
})
}), n
},
getFilter: function(e) {
var t = k.get(e);
return t || (k = k.set(e, new S)), k.get(e)
},
emitChange: function(e) {
this.emit(D, e)
},
emitChangeParam: function(e, t) {
this.emit(D, e, t)
},
addChangeListener: function(e) {
this.on(D, e)
},
removeChangeListener: function(e) {
this.removeListener(D, e)
}
});
g.register(function(e) {
var t = e.action;
switch (t.actionType) {
case _.CHROME_HISTORY_SEARCH:
s(t);
break;
case _.CHROME_TABS_REMOVED:
var n = p(t.args, 1),
u = n[0];
c(u);
break;
case _.CHROME_HISTORY_DELETE:
l(t);
break;
case _.VIVALDI_HISTORY_INIT_FILTER:
r(t);
break;
case _.VIVALDI_HISTORY_LOAD_TODAY:
i(t);
break;
case _.VIVALDI_HISTORY_DISPLAY_MODE_CHANGE:
o(t);
break;
case _.VIVALDI_HISTORY_LOAD_YESTERDAY_AND_OLDER:
a(t);
break;
case _.VIVALDI_HISTORY_REMOVE_AFTER:
m(t);
break;
default:
return !0
}
}), e.exports = window.HistoryStore = L
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_246
// =========================
"use strict";
var i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
a = n(8),
r = n(6),
s = n(18).EventEmitter,
o = n(42),
l = o.ALL_MESSAGES_ACCOUNT_ID,
c = o.MAILING_LISTS_ACCOUNT_ID,
u = o.MAIL_FILTERS_ACCOUNT_ID,
A = o.DRAFTS_FOLDER_PATH,
d = o.OUTBOX_FOLDER_PATH,
h = n(387),
m = n(135),
p = m.isUnread,
f = m.isDeleted,
g = n(363).search_keywords,
_ = "change",
v = [],
b = {},
N = Object.assign({}, s.prototype, {
getAll: function() {
return v
},
getByAccountId: function(e) {
return v.filter(function(t) {
return t.accountId === e
})
},
get: function(e, t) {
return v.filter(function(n) {
return n.accountId === e && n.path === t
})[0]
},
emitChange: function(e) {
this.emit(_, e)
},
addChangeListener: function(e) {
this.on(_, e)
},
addOneTimeChangeListener: function(e) {
this.once(_, e)
},
removeChangeListener: function(e) {
this.removeListener(_, e)
},
addFilter: function(e) {
var t = v.indexOf(e);
t === -1 ? v.push(e) : v.splice(t, 1, e), E()
},
parseQuery: function(e) {
var t = {};
if ("" === e || void 0 === e) return t;
for (var n = e.match(/(\S+:\s*'.*')|(\S+:\s*".*")|(\S+:\s*\S+)|(\S+)/g), i = 0; i < n.length; i++) {
var a = n[i].trim();
if (a.length > 0) {
for (var r = !1, s = 0; s < g.length; s++) {
var o = a.indexOf(g[s] + ":"),
l = g[s].length + 1;
o > -1 && (r = !0, void 0 === t[g[s]] ? t[g[s]] = a.slice(o + l).trim() : t[g[s]] += " " + a.slice(o + l).trim())
}
r || (void 0 === t.query ? t.query = a : t.query += " " + a)
}
}
if (void 0 === t.name)
for (var c = 0; c < g.length; c++)
if (void 0 !== t[g[c]]) {
t.name = t[g[c]];
break
}
return t
},
filterToFolderFilter: function(e) {
var t = function(e) {
return !1
},
n = void 0,
i = void 0,
a = e.accountId,
r = e.path,
s = !1,
o = !1,
m = !0,
g = void 0,
_ = void 0,
v = !1,
b = void 0,
E = "",
S = "",
T = "",
y = [],
C = [];
return void 0 !== e && e.hasOwnProperty("filterValue") && (e.filterValue.hasOwnProperty("accountId") && (a = e.filterValue.accountId), e.filterValue.hasOwnProperty("path") && (r = e.filterValue.path), C = e.filterValue.hasOwnProperty("includeFolderTypes") ? e.filterValue.includeFolderTypes : [], y = e.filterValue.hasOwnProperty("excludeFolderTypes") ? e.filterValue.excludeFolderTypes : [], m = !e.filterValue.hasOwnProperty("showRead") || e.filterValue.showRead, v = !!e.filterValue.hasOwnProperty("showDuplicates") && e.filterValue.showDuplicates, _ = function(e) {
return !0
}, e.filterValue.hasOwnProperty("showMailingLists") && (e.filterValue.showMailingLists || (_ = function(e) {
var t = N.getAllFolderFilters();
if (t[c]) {
for (var n = Object.keys(t[c]), i = 0; i < n.length; i++)
if (t[c][n[i]](e)) return !1;
return !0
}
})), s = !!e.filterValue.hasOwnProperty("filterOnDrafts") && e.filterValue.filterOnDrafts, o = !!e.filterValue.hasOwnProperty("filterOnOutbox") && e.filterValue.filterOnOutbox, e.filterValue.hasOwnProperty("from") && (E = e.filterValue.from), e.filterValue.hasOwnProperty("subject") && (S = e.filterValue.subject.toLowerCase()), e.filterValue.hasOwnProperty("listId") && (T = e.filterValue.listId)), g = m ? function(e) {
return !0
} : p, b = v ? function(e, t) {
return !0
} : function(e, t) {
return !t || !e.messageId || e.messageId !== t
}, n = s ? function(e) {
return e.path === A
} : function(e) {
return e.path !== A
}, i = o ? function(e) {
return e.path === d
} : function(e) {
return e.path !== d
}, t = void 0 === r ? function(e) {
return !1
} : a === l || a === u ? C.length > 0 ? y.length > 0 ? function(e) {
return C.indexOf(h.getFolderType(e.accountId, e.path)) > -1 && y.indexOf(h.getFolderType(e.accountId, e.path)) === -1
} : function(e) {
return C.indexOf(h.getFolderType(e.accountId, e.path)) > -1
} : y.length > 0 ? function(e) {
return y.indexOf(h.getFolderType(e.accountId, e.path)) === -1
} : function(e) {
return !0
} : a === c ? "" !== E ? function(e) {
return !0
} : T ? function(e) {
return e.listId && T.indexOf(e.listId) > -1
} : function(e) {
return e.listId === r
} : function(e) {
return e.accountId === a && e.path === r
},
function(e, a) {
return t(e) && n(e) && i(e) && g(e) && !f(e) && _(e) && b(e, a) && (!E || e.from.length > 0 && e.from[0].address.startsWith(E)) && (!S || e.subject.length > 0 && e.subject.toLowerCase().startsWith(S));
}
},
getFolderFilter: function(e, t) {
if (b[e] && void 0 !== b[e][t]) return [b[e][t]];
if (!b[e] || e !== c && e !== u) return [function(n) {
return n.accountId === e && n.path === t
}];
var n = function() {
var n = Object.keys(b[e]),
i = [];
return n.forEach(function(n) {
n.startsWith(t) && i.push(b[e][n])
}), {
v: i
}
}();
return "object" === ("undefined" == typeof n ? "undefined" : i(n)) ? n.v : void 0
},
getAllFolderFilters: function() {
return b
},
getFolderQuery: function(e, t) {
var n = v.filter(function(n) {
return n.accountId === e && n.path === t
})[0];
return n && n.hasOwnProperty("filterValue") && n.filterValue.hasOwnProperty("query") ? n.filterValue.query : ""
},
filterValueToString: function(e) {
var t = [];
return e ? (e.hasOwnProperty("name") && t.push("name:" + e.name), e.hasOwnProperty("from") && t.push("from:" + e.from), e.hasOwnProperty("subject") && t.push("subject:" + e.subject), e.hasOwnProperty("query") && t.push("query:" + e.query), e.hasOwnProperty("accountId") && t.push("accountId:" + e.accountId), e.hasOwnProperty("path") && t.push("path:" + e.path), e.hasOwnProperty("includeFolderTypes") && t.push("includeFolderTypes:" + e.includeFolderTypes), e.hasOwnProperty("excludeFolderTypes") && t.push("excludeFolderTypes:" + e.excludeFolderTypes), e.hasOwnProperty("filterOnDrafts") && t.push("filterOnDrafts:" + e.filterOnDrafts), e.hasOwnProperty("filterOnOutbox") && t.push("filterOnOutbox:" + e.filterOnOutbox), e.hasOwnProperty("showRead") && t.push("showRead:" + e.showRead), e.hasOwnProperty("showDuplicates") && t.push("showDuplicates:" + e.showDuplicates), e.hasOwnProperty("showMailingLists") && t.push("showMailingLists:" + e.showMailingLists), e.hasOwnProperty("listId") && t.push("listId:" + e.listId), t.join(" ")) : ""
},
isSenderMailingList: function(e) {
for (var t = v.filter(function(e) {
return e.accountId === c
}), n = 0; n < t.length; n++)
if (t[n].hasOwnProperty("filterValue") && t[n].filterValue.hasOwnProperty("from") && t[n].filterValue.from.startsWith(e)) return !0;
return !1
}
}),
E = function() {
b = {};
for (var e = 0; e < v.length; e++) b[v[e].accountId] || (b[v[e].accountId] = {}), b[v[e].accountId][v[e].path] = N.filterToFolderFilter(v[e])
};
N.dispatchToken = a.register(function(e) {
var t = e.action;
switch (t.actionType) {
case r.MAIL_FILTERS_INIT:
case r.MAIL_FILTERS_CHANGED:
v = t.filters, E(), N.emitChange()
}
}), e.exports = N
}, function(e, t, n) {
// =========================
// Function_247
// =========================
"use strict";
function i(e) {
for (var t = 0; t < e.children.length; t++) {
var n = e.children[t];
if (n.trash) return n;
if (n.children) {
var a = i(n);
if (void 0 !== a) return a
}
}
}
function a(e) {
v = e[0] ? e[0] : g, b = i(v), N.emitChange()
}
function r(e) {
if (v !== g && v.children) {
var t = u(v, 0, e);
t === !0 && (v.children = v.children.slice(), N.emitChange())
}
}
function s(e, t) {
if (v !== g && v.children) {
var n = A(v, e, t);
n === !0 && (v.children = v.children.slice(), N.emitChange())
}
}
function o(e, t, n) {
if (v !== g && v.children) {
var i = N.getNodeById(e);
void 0 !== i && (l(e), i.parentId === t && n > i.index && n--, i.parentId = t, i.index = n, r(i))
}
}
function l(e) {
if (v !== g && v.children) {
var t = d(v, e);
t === !0 && (v.children = v.children.slice(), N.emitChange())
}
}
function c(e) {
for (var t = 0; t < e.children.length; t++) {
var n = e.children[t];
n.index = t, n.treeIndex = t
}
}
function u(e, t, n) {
if (e.id === n.parentId) {
var i = n || {
level: t,
treeIndex: n.index
};
return e.children.splice(n.index, 0, i), c(e), !0
}
if (e.children)
for (var a = 0; a < e.children.length; a++) {
var r = e.children[a];
if (r.children) {
var s = u(r, t + 1, n);
if (s === !0) return r.children = r.children.slice(), !0
}
}
return !1
}
function A(e, t, n) {
for (var i = 0; i < e.children.length; i++) {
var a = e.children[i];
if (a.id === t) {
var r = Object.assign({}, e.children[i], n);
return e.children.splice(i, 1, r), !0
}
if (a.children) {
var s = A(a, t, n);
if (s === !0) return a.children = a.children.slice(), !0
}
}
return !1
}
function d(e, t) {
for (var n = 0; n < e.children.length; n++) {
var i = e.children[n];
if (i.id === t) return e.children.splice(n, 1), c(e), !0;
if (i.children) {
var a = d(i, t);
if (a === !0) return i.children = i.children.slice(), 0 === i.children.length && (i.isExpanded = !1), !0
}
}
return !1
}
var h = n(8),
m = n(6),
p = n(18).EventEmitter,
f = "change",
g = {
children: []
},
_ = "vivaldi/x-notes",
v = g,
b = void 0,
N = Object.assign({}, p.prototype, {
getRootNode: function() {
return v
},
getLastTopNode: function() {
var e = this.getRootNode(),
t = e && e.children ? e.children : [];
if (t.length > 1) return t[t.length - 2]
},
getMimeType: function() {
return _
},
hasNotes: function() {
var e = this.getRootNode();
if (e && e.children) {
if (e.children.length > 1) return !0;
var t = e.children[0];
if (t && t.trash) return t.children && t.children.length > 0
}
return !1
},
isNodeEmpty: function(e) {
var t = N.getNodeById(e);
return t && !t.title && !t.content && (!t.children || 0 === t.children.length)
},
getNodeById: function(e) {
var t = function t(n) {
for (var i = 0; i < n.length; i++) {
var a = n[i];
if (a.id === e) return a;
if (a.children && (a = t(a.children))) return a
}
};
return t(v.children)
},
getFilteredTree: function(e) {
var t = function e(t, n, i) {
for (var a = !1, r = 0; r < t.length; r++) {
var s = t[r];
if (s.children) {
var o = Object.assign({}, s, {
children: []
});
e(s.children, o.children, i) && (n.push(o), a = !0)
} else {
var l = !1;
if (i.matchContent && (s.title && (l = s.title.toLowerCase().search(i.key) !== -1), !l && s.content && (l = s.content.toLowerCase().search(i.key) !== -1)), !l && i.matchUrl && s.url && (l = s.url.toLowerCase().search(i.key) !== -1), l) {
var c = Object.assign({}, s);
n.push(c), a = !0
}
}
}
return a
},
n = {
key: e.toLowerCase(),
matchUrl: !0,
matchContent: !0
};
e.startsWith("URL:") ? (n.key = n.key.substring(4), n.matchUrl = n.key.length > 0, n.matchContent = !1) : e.startsWith("CONTENT:") && (n.key = n.key.substring(8), n.matchUrl = !1, n.matchContent = n.key.length > 0), "." === n.key && (n.matchUrl = !1);
var i = this.getRootNode().children,
a = [];
return t(i, a, n), a
},
validateForDrag: function(e) {
return e.filter(function(e) {
return e !== b.id
})
},
validateForDeletion: function(e) {
return e.filter(function(e) {
return e !== b.id
})
},
validateForEdit: function(e) {
return e !== b.id
},
getTitle: function(e) {
var t = N.getNodeById(e);
return t ? "" !== t.title ? t.title : t.content : ""
},
emitChange: function() {
this.emit(f)
},
addChangeListener: function(e) {
this.on(f, e)
},
removeChangeListener: function(e) {
this.removeListener(f, e)
}
});
h.register(function(e) {
var t = e.action;
switch (t.actionType) {
case m.NOTES_LOAD_ALL:
a(t.notes);
break;
case m.NOTES_ADD_ITEM:
r(t.item);
break;
case m.NOTES_CHANGE_ITEM:
s(t.id, t.changes);
break;
case m.NOTES_MOVE_ITEM:
o(t.id, t.targetFolder, t.targetIndex);
break;
case m.NOTES_REMOVE_ITEM:
l(t.id);
break;
default:
return !0
}
}), e.exports = window.NoteStore = N
}, function(e, t, n) {
// =========================
// Function_248
// =========================
"use strict";
var i = n(8),
a = n(6),
r = n(18),
s = r.EventEmitter,
o = Object.assign({}, s.prototype, {
emitChange: function() {
this.emit(a.CHANGED)
},
emitChangeParam: function(e) {
this.emit(a.CHANGED, e)
},
getSearchSuggestURL: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "";
return t.replace(/\%s/, encodeURIComponent(e))
},
addChangeListener: function(e) {
this.on(a.CHANGED, e)
},
removeChangeListener: function(e) {
this.removeListener(a.CHANGED, e)
}
});
i.register(function(e) {
var t = e.action;
switch (t.actionType) {
case a.SEARCH_SUGGEST_RESULT:
var n = JSON.parse(t.json)[1];
o.emitChangeParam({
query: t.query,
suggestions: n,
uid: t.uid
})
}
}), e.exports = o
}, function(e, t) {
// =========================
// Function_249
// =========================
"use strict";
var n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
i = function e(t) {
if (null === t || "object" !== ("undefined" == typeof t ? "undefined" : n(t))) return t;
var i = t.constructor();
for (var a in t) t.hasOwnProperty(a) && (i[a] = e(t[a]));
return i
},
a = function(e) {
for (var t = [], n = 0; n < e.length; n++) t.push(i(e[n]));
return t
};
e.exports = a
}, function(e, t, n) {
// =========================
// Function_250
// =========================
"use strict";
var i = n(17),
a = n(97),
r = n(87),
s = n(179),
o = n(116),
l = function(e, t) {
arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
if (!e || !e.get("active")) return "";
var n = a.getUrlfieldState(e),
l = s(t),
c = !l || n.editUrl && n.editUrl !== l || null != n.selectionStart && n.selectionStart > -1 || null != n.selectionEnd && n.selectionEnd > -1,
u = o(t) === o(i.getDefaultStartpage()) && !n.hasLostFocus,
A = "",
d = !1;
try {
d = r.getFindResultsForPage(e).isFindInPageToolbarOpen === !0
} catch (e) {
console.warn(e)
}
return A = d === !0 ? "findInPage" : u ? "urlFieldSelected" : c ? "urlField" : "content"
};
e.exports = l
}, function(e, t, n) {
// =========================
// Function_251
// =========================
"use strict";
function i(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : function(e, t, n) {
return s(t[e], n[e])
};
if (e === t) return !0;
if ("object" !== ("undefined" == typeof e ? "undefined" : a(e)) || null === e || "object" !== ("undefined" == typeof t ? "undefined" : a(t)) || null === t) return !1;
var i = Object.keys(e),
r = Object.keys(t);
if (i.length !== r.length) return !1;
for (var l = o.bind(t), c = 0; c < i.length; c++)
if (!l(i[c]) || !n(i[c], e, t)) return !1;
return !0
}
var a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
r = n(7),
s = r.eq,
o = Object.prototype.hasOwnProperty;
e.exports = i
}, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t) {
// =========================
// Function_309
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_310
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_311
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_312
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_313
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_314
// =========================
e.exports = ''
}, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t, n) {
// =========================
// Function_348
// =========================
"use strict";
var i = n(8),
a = n(6),
r = n(385),
s = {
add: function(e, t, n) {
i.handleViewAction({
actionType: a.BOOKMARK_THUMBNAIL_QUEUE_ADD_ITEM,
pageId: e,
id: t,
url: n
})
},
update: function(e, t, n) {
var s = r.getQueue(e);
s && 0 !== s.get("id") && s.get("url") === t && i.handleViewAction({
actionType: a.BOOKMARK_THUMBNAIL_QUEUE_UPDATE_ITEM,
page: e,
id: s.get("id"),
url: n
})
},
remove: function(e, t) {
i.handleViewAction({
actionType: a.BOOKMARK_THUMBNAIL_QUEUE_REMOVE_ITEM,
page: e,
id: t
})
}
};
e.exports = s
}, function(e, t, n) {
// =========================
// Function_349
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
if (p && p.readyState === XMLHttpRequest.DONE && p.status === _) try {
var n = p.responseText;
A.handleViewAction({
actionType: m,
query: f,
json: n,
uid: e
})
} finally {
p = void 0, f = ""
}
}
function r() {
p.abort(), f = "", p = void 0
}
var s = n(17),
o = i(s),
l = n(89),
c = i(l),
u = n(7),
A = n(8),
d = n(248),
h = n(6),
m = h.SEARCH_SUGGEST_RESULT,
p = void 0,
f = "",
g = 2,
_ = 200,
v = {
suggest: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
if ("string" != typeof e || 0 === e.length) throw TypeError("suggest query required");
if (o.default.getActivePage().get("incognito") === !1) {
if (!t.SuggestUrl || e.length < g) return null;
var n = d.getSearchSuggestURL(e, t.SuggestUrl);
p && r();
var i = (0, c.default)();
return f = e, p = new XMLHttpRequest, p.onreadystatechange = (0, u.partial)(a, i, n), p.open("GET", n, !0), p.send(), i
}
}
};
e.exports = v
}, function(e, t, n) {
// =========================
// Function_350
// =========================
"use strict";
function i() {
return {
rootNode: s.getRootNode(),
bookmarksBarFolderId: s.getBookmarkBarFolderId()
}
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/bookmarksbar/bookmarksfoldersflatlist.jsx",
r = n(1),
s = n(51),
o = r.createClass({
displayName: "BookmarksFoldersFlatList",
getInitialState: function() {
return i()
},
_onStoreChange: function() {
this.setState(i())
},
componentWillMount: function() {
s.addChangeListener(this._onStoreChange)
},
componentWillUnmount: function() {
s.removeChangeListener(this._onStoreChange)
},
getFolderId: function(e) {
var t = this;
if (this.props.selectedItemID) {
var n = e.find(function(e) {
return e.id === t.props.selectedItemID
});
if (n) return n.id;
console.warn("Bookmark folder not found")
}
return this.state.bookmarksBarFolderId
},
render: function() {
var e = s.getFoldersWithin(this.state.rootNode, 0),
t = this.getFolderId(e),
n = e.find(function(e) {
return e.id === t
}).title,
i = e.map(function(e) {
return r.createElement("option", {
key: "dir_" + e.id,
value: e.id,
__source: {
fileName: a,
lineNumber: 48
}
}, " ".repeat(3 * e.level), e.title)
});
return r.createElement("span", {
className: "bookmark-folder-picker",
__source: {
fileName: a,
lineNumber: 55
}
}, r.createElement("input", {
type: "text",
value: n,
readOnly: !0,
__source: {
fileName: a,
lineNumber: 56
}
}), r.createElement("select", {
className: "bookmark-folders",
value: t,
onChange: this.props.onChange,
__source: {
fileName: a,
lineNumber: 57
}
}, i))
}
});
e.exports = o
}, function(e, t, n) {
// =========================
// Function_351
// =========================
(function(t) {
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/BookmarkEditItem.jsx",
r = n(1),
s = n(11),
o = n(393),
l = n(54),
c = n(51),
u = n(37),
A = n(170),
d = n(96),
h = n(136),
m = n(65),
p = n(97),
f = n(13),
g = n(2),
_ = n(5),
v = n(4),
b = n(394),
N = n(10),
E = n(108),
S = E.PLACEHOLDER_URL,
T = n(7),
y = T.isEmpty,
C = "BookmarkEditItem",
I = r.createClass({
displayName: "BookmarkEditItem",
mixins: [f],
vivaldiSettingsKeys: ["BOOKMARK_BAR_VISIBLE", "BOOKMARKS_BAR_FOLDER_IDS"],
getInitialState: function() {
return {
id: "",
title: "",
url: "",
nickname: "",
description: "",
thumbnail: "",
speeddial: !1,
isFolder: !1,
isTrash: !1,
dateAdded: "",
index: 0,
generalErrorKey: null,
saveBookmarkItem: null,
editUrl: null,
updatingThumbnail: !1
}
},
updateStateWithItem: function(e, t) {
var n = e.url && e.url !== S ? e.url : "";
this.setState({
isFolder: !e.url,
isTrash: c.isTrashed(e),
id: e.id || "",
thumbnail: e.thumbnail || "",
title: e.title || "",
url: n,
editUrl: null,
updatingThumbnail: d.isBookmarkThumbnailCapture(e.id),
nickname: e.nickname || "",
description: e.description || "",
speeddial: !!e.speeddial,
dateAdded: e.dateAdded ? new Date(e.dateAdded) : "",
generalErrorKey: null
}, t)
},
componentWillMount: function() {
c.addChangeListener(this._onStoreChanged), p.addChangeListener(this._onUrlbarStoreChanged), u.bind("esc", this._onEscPressed)
},
componentDidMount: function() {
var e = this.props.getSelectedItem();
e && this.setItem(e)
},
componentWillUnmount: function() {
c.removeChangeListener(this._onStoreChanged), p.removeChangeListener(this._onUrlbarStoreChanged), t.nextTick(function() {
return m.clearUrlfieldState(C)
}), u.unbind("esc", this._onEscPressed)
},
_onStoreChanged: function() {
if ("" !== this.state.id) {
var e = c.getItemById(this.state.id);
e && this.updateStateWithItem(e)
}
},
_onUrlbarStoreChanged: function() {
var e = p.getUrlfieldStateFromId(C);
this.setState(e)
},
saveBookmark: function() {
if (!this.state.isTrash && "" !== this.state.id) {
var e = {};
return e.id = this.state.id, e.title = this.state.title ? this.state.title.trim() : "", e.url = (this.state.editUrl || this.state.url || "").trim(), e.nickname = this.state.nickname.trim(), e.description = this.state.description.trim(), e.speeddial = this.state.speeddial, e.index = this.state.index, e.thumbnail = this.state.thumbnail, this.state.isFolder || "" !== e.url ? void this.updateBookmark(e) : void this.setState({
generalErrorKey: g("URL cannot be empty.")
})
}
},
updateBookmark: function(e) {
var t = this,
n = this.state.isFolder;
N.utilities.isUrlValid(e.url, function(i) {
n ? e.url = "" : i.urlValid && i.schemeValid || (e.url = "http://" + e.url);
var a = e.id;
delete e.id;
var r = e.index;
delete e.index, v.bookmarks.update(a, e, function(n) {
if (a === t.state.id && v.runtime.lastError) t.setState({
generalErrorKey: o(v.runtime.lastError.message) + " " + g("Changes not saved.")
});
else {
e.id = a, e.index = r;
var i = {
generalErrorKey: null
};
n && n.id === t.state.id && (i.url = n.url, i.editUrl = null), t.setState(i), m.setUrlfieldState(C, {
editUrl: i.editUrl
}), "function" == typeof t.props.onUpdate && t.props.onUpdate()
}
})
})
},
isFolder: function() {
return this.state.isFolder === !0
},
isTrash: function() {
return this.state.isTrash === !0
},
handleKeyDown: function(e) {
e.stopPropagation(), "Enter" === e.key && (this.saveBookmark(), (this.state.isFolder || !this.state.isFolder && "" !== this.state.url.trim()) && this.props.onFocusTree())
},
_onEscPressed: function() {
this.props.removeIfCreating(this.state.id), this.props.onFocusTree()
},
handleUpdateThumbnail: function(e) {
e.stopPropagation();
var t = {
id: this.state.id,
url: this.state.url
};
d.updateBookmarkThumbnail(t), this.setState({
updatingThumbnail: !0
})
},
checkChangeSpeeddial: function() {
var e = this;
this.setState({
speeddial: !this.state.speeddial
}, function() {
e.saveBookmark()
})
},
isBookmarkBarChecked: function() {
return this.state.BOOKMARKS_BAR_FOLDER_IDS && this.state.BOOKMARKS_BAR_FOLDER_IDS[0] === this.state.id && this.state.BOOKMARK_BAR_VISIBLE
},
checkChangeBookmarkBar: function() {
l.setBookmarkBarFolderAndToggleVisibility(this.state.id)
},
onInputChange: function(e, t) {
var n;
this.setState((n = {}, i(n, e, t.target.value), i(n, "generalErrorKey", null), n))
},
onUrlChange: function(e) {
this.setState({
url: e,
generalErrorKey: null
})
},
setItem: function(e) {
var t = this;
this.updateStateWithItem(e, function() {
if (!t.isTrash()) {
var e = s.findDOMNode(t.refs.refUrl);
!t.state.isFolder && y(e.value) || (e = s.findDOMNode(t.refs.refTitle)), y(e.value) && e.focus()
}
})
},
render: function() {
var e = b.dateTimeLong(this.state.dateAdded);
return r.createElement("div", {
className: "manager-editor",
__source: {
fileName: a,
lineNumber: 264
}
}, r.createElement("div", {
className: "addbookmark-cardwrapper cardview",
__source: {
fileName: a,
lineNumber: 265
}
}, r.createElement("div", {
className: "upper-half",
__source: {
fileName: a,
lineNumber: 266
}
}, r.createElement("div", {
className: "title-and-address",
__source: {
fileName: a,
lineNumber: 267
}
}, r.createElement("div", {
className: "fieldset",
__source: {
fileName: a,
lineNumber: 268
}
}, r.createElement("input", {
className: "cardview title",
ref: "refTitle",
id: "reftitle",
placeholder: g("Title"),
onChange: this.onInputChange.bind(this, "title"),
value: this.state.title,
onKeyDown: this.handleKeyDown,
type: "text",
onBlur: this.saveBookmark,
__source: {
fileName: a,
lineNumber: 269
}
})), r.createElement("div", {
className: this.isFolder() ? "fieldset collapse" : "fieldset",
__source: {
fileName: a,
lineNumber: 278
}
}, r.createElement(h, {
ref: "refUrl",
title: g("Enter webpage address"),
disabled: this.isFolder(),
className: "cardview address",
pageId: C,
placeholder: g("Address"),
displayUrl: this.state.url,
editUrl: this.state.editUrl,
autocompletionEnabled: !0,
triggerTypedHistory: !1,
selectionStart: this.state.selectionStart,
selectionEnd: this.state.selectionEnd,
onUrlFieldChanged: this.onUrlChange,
onKeyPressed: this.handleKeyDown,
onBlur: this.saveBookmark,
__source: {
fileName: a,
lineNumber: 279
}
}))), this.isFolder() ? r.createElement("div", {
className: "preview-folder",
dangerouslySetInnerHTML: {
__html: n(466)
},
__source: {
fileName: a,
lineNumber: 297
}
}) : r.createElement("div", {
className: "preview",
__source: {
fileName: a,
lineNumber: 302
}
}, r.createElement(A, {
className: "bookmarks-editor-thumbnail",
key: this.state.id,
src: this.state.thumbnail,
__source: {
fileName: a,
lineNumber: 303
}
}), r.createElement("button", {
tabIndex: "-1",
className: _({
circular: !0,
"update-thumbnail": !0,
updating: this.state.updatingThumbnail
}),
title: g("Update thumbnail"),
onClick: this.handleUpdateThumbnail,
dangerouslySetInnerHTML: {
__html: n(474)
},
__source: {
fileName: a,
lineNumber: 307
}
}))), r.createElement("div", {
className: "lower-half",
__source: {
fileName: a,
lineNumber: 320
}
}, r.createElement("div", {
className: "fieldset resizable",
__source: {
fileName: a,
lineNumber: 321
}
}, r.createElement("textarea", {
className: "cardview description",
ref: "refDescription",
id: "refdescription",
placeholder: g("Description"),
value: this.state.description,
onChange: this.onInputChange.bind(this, "description"),
onKeyDown: this.handleKeyDown,
type: "text",
onBlur: this.saveBookmark,
__source: {
fileName: a,
lineNumber: 322
}
})), r.createElement("div", {
className: "fieldset",
__source: {
fileName: a,
lineNumber: 332
}
}, r.createElement("input", {
className: "cardview nickname",
ref: "refNickname",
id: "refnickname",
placeholder: g("Nickname"),
value: this.state.nickname,
onChange: this.onInputChange.bind(this, "nickname"),
onKeyDown: this.handleKeyDown,
type: "text",
onBlur: this.saveBookmark,
__source: {
fileName: a,
lineNumber: 333
}
})), r.createElement("div", {
className: "speeddial-bookmarksbar",
__source: {
fileName: a,
lineNumber: 343
}
}, r.createElement("div", {
className: this.isFolder() ? "fieldset center cardview" : "fieldset center collapse",
__source: {
fileName: a,
lineNumber: 344
}
}, r.createElement("input", {
ref: "refSpeeddial",
id: "refspeeddial",
className: "cardview",
disabled: !(this.isFolder() && !this.isTrash()) && "disabled",
checked: this.state.speeddial,
onChange: this.checkChangeSpeeddial,
type: "checkbox",
__source: {
fileName: a,
lineNumber: 346
}
}), r.createElement("label", {
htmlFor: "refspeeddial",
__source: {
fileName: a,
lineNumber: 354
}
}, g("Speed Dial"))), r.createElement("div", {
className: this.isFolder() ? "fieldset center cardview" : "fieldset center collapse",
__source: {
fileName: a,
lineNumber: 356
}
}, r.createElement("input", {
ref: "refBookmarkBar",
id: "refbookmarkBar",
className: "cardview",
disabled: !(this.isFolder() && !this.isTrash()) && "disabled",
checked: this.isBookmarkBarChecked(),
onChange: this.checkChangeBookmarkBar,
type: "checkbox",
__source: {
fileName: a,
lineNumber: 358
}
}), r.createElement("label", {
htmlFor: "refbookmarkBar",
__source: {
fileName: a,
lineNumber: 366
}
}, g("Bookmark Bar")))), this.state.dateAdded && r.createElement("div", {
className: "fieldset",
__source: {
fileName: a,
lineNumber: 370
}
}, r.createElement("div", {
className: "meta-icon date fieldset",
dangerouslySetInnerHTML: {
__html: n(458)
},
__source: {
fileName: a,
lineNumber: 371
}
}), r.createElement("span", {
className: "dateCreated bookmark",
title: g("Date created"),
__source: {
fileName: a,
lineNumber: 373
}
}, e)), this.state.generalErrorKey && r.createElement("p", {
className: "warning",
__source: {
fileName: a,
lineNumber: 379
}
}, this.state.generalErrorKey))))
}
});
e.exports = I
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_352
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/BookmarkTree.jsx",
a = n(1),
r = n(9),
s = n(40),
o = n(54),
l = n(51),
c = n(234),
u = n(50),
A = n(17),
d = n(47),
h = n(13),
m = n(109),
p = n(2),
f = n(4),
g = n(30),
_ = n(10),
v = n(108),
b = v.PLACEHOLDER_URL,
N = n(108),
E = N.VIVALDI_ROOT_BOOKMARK_FOLDER,
S = 1500,
T = "0",
y = "1",
C = "2",
I = -1,
O = 0,
w = a.createClass({
displayName: "BookmarkTree",
mixins: [r, h],
vivaldiSettingsKeys: ["SHOW_VIVALDI_FOOTER", "BOOKMARKS_SINGLE_CLICK_IN_TREE", "BOOKMARKS_SEARCH_INCLUDES_TREE"],
getInitialState: function() {
return {
bookmarkTreeNodeArray: [],
hasFocus: !1,
nodes: l.getTopNodes()
}
},
componentWillMount: function() {
l.addChangeListener(this._onStoreChange)
},
componentWillReceiveProps: function(e) {
var t = this;
this.props.filter !== e.filter && ! function() {
var n = e.filter.length,
i = t.props.filter.length;
t.onFilterChange(e.filter, function() {
n > 0 ? t.expandAll() : i > 0 && 0 === n && t.collapseAll()
})
}()
},
componentWillUnmount: function() {
l.removeChangeListener(this._onStoreChange)
},
_onStoreChange: function() {
this.onFilterChange()
},
onFilterChange: function(e, t) {
var n = this;
e && e.length > 0 ? "tree" === this.refs.treeList.getSearchStyle() ? this.setState({
nodes: l.getFilteredTree(e)
}, t) : f.bookmarks.search(e, function(e) {
n.setState({
nodes: e
}, t)
}) : (this.setState({
nodes: l.getTopNodes()
}, t), this.refs.treeList && this.refs.treeList.setCutIds(l.getCutIds()))
},
onDelete: function() {
this.refs.treeList.onDelete()
},
delete: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],
t = this.getNodesByIds(e);
return o.disableBookmarkMutationHandlers(), Promise.all(t.map(function(e) {
return new Promise(function(t) {
o.removeBookmark(e, t)
})
})).then(function() {
o.enableBookmarkMutationHandlers()
})
},
expandAll: function() {
this.refs.treeList.expandAll()
},
collapseAll: function() {
this.refs.treeList.collapseAll()
},
setSearchStyle: function(e) {
this.refs.treeList.setSearchStyle(e)
},
onSearchStyleChanged: function(e) {
var t = this;
this.props.filter && this.onFilterChange(this.props.filter, function() {
"tree" === e && t.expandAll()
})
},
scrollToId: function(e) {
this.refs.treeList.scrollToId(e)
},
onDrop: function(e, t, n) {
var i = this.getTargetSpec(t, n);
return s.getUrlsFromEventPromise(e, !1).then(function(e) {
return e.map(function(e, t) {
return Object.assign(e, {
index: void 0 === i.index ? void 0 : i.index + t,
parentId: i.parentId
})
})
}).then(this.onCreate)
},
getTargetSpec: function(e, t) {
var n = {
index: 0,
parentId: void 0
};
if (this.isTrash(e) && "on" !== t) {
var i = l.getLastTopNode();
i ? (n.parentId = i.parentId, n.index = i.index + 1) : n.parentId = l.getRootNode().id
} else this.isFolder(e) && "on" === t ? n.parentId = e.id : (n.parentId = e.parentId, n.index = e.index + ("below" === t ? 1 : 0));
return n
},
updateExpandFolderOnHover: function(e, t) {
for (var n = this.refs.treeList.SelectionMixinGetAllSelected(), i = 0; i < n.length; i++)
if (t.id === n[i].id) return;
var a = O;
O = 0, a ? e - a >= S ? this.toggleExpandModel(t.id) : O = a : this.isFolder(t) && !t.isExpanded && (O = e)
},
onMove: function(e, t) {
return e = Array.isArray(e) ? e : [e], e = e.filter(function(e) {
return !e.trash
}), Promise.all(e.map(function(e) {
var n = e.id || e;
return new Promise(function(i) {
f.bookmarks.move(n.toString(), t, function() {
i(e)
})
})
}))
},
isValidForClipboard: function(e) {
return !e.trash
},
isValidAddTarget: function(e) {
return !this.isTrashed(e)
},
isValidDragSource: function(e) {
return !e.trash
},
hasChildren: function(e) {
return !!e.children && e.children.length > 0
},
isTrashed: function(e) {
return !!e && l.isTrashed(e)
},
onAdd: function(e) {
this.refs.treeList.onAdd(e)
},
resetBookmarkBar: function() {
o.setBookmarkBarFolderAndShow(E)
},
moveBookmarkToBookmarkBarFolder: function(e) {
var t = {
parentId: l.getBookmarkBarFolderId()
};
f.bookmarks.move(e.id.toString(), t)
},
bookmarkActivePage: function(e) {
var t = this.isFolder(e) ? e.id : e.parentId,
n = A.getActivePage();
o.bookmarkPages(n, !1, t)
},
bookmarkAllOpenPages: function(e) {
var t = this.isFolder(e) ? e.id : e.parentId;
o.bookmarkAllOpenPages(t)
},
onRootPasteContextMenu: function(e) {
this.clipboardItem = e, document.addEventListener("paste", this.onRootPaste), document.execCommand("paste"), document.removeEventListener("paste", this.onRootPaste)
},
onRootPaste: function(e) {
o.pastePromise(e, l.getRootNode().id, !0)
},
isFolder: function(e) {
return !(!e || !e.children && e.url)
},
onNodesActivated: function(e, t) {
var n = [];
t.forEach(function(e) {
var t = l.getItemById(e.id);
t && Array.prototype.push.apply(n, s.getBookmarksByNode(t))
});
var i = s.getOpenOptionsFromEvent(e);
i.bookmarks = n, s.open(i, !0)
},
getSelectedBookmarks: function() {
var e = this,
t = this.refs.treeList.SelectionMixinGetAllSelected().map(function(e) {
return e.id
}),
n = [];
return t.forEach(function(t) {
var i = e.refs.treeList.findTreeItem(t);
i && Array.prototype.push.apply(n, s.getBookmarksByNode(i))
}), n
},
getSelectedItem: function() {
return this.refs.treeList.getSelectedItem()
},
getNodesByIds: function(e) {
var t = this,
n = [];
return e.forEach(function(e) {
var i = t.refs.treeList.findTreeItem(e);
i && n.push(i)
}), n
},
isTrash: function(e) {
return !!e.trash
},
isEditable: function(e) {
return [T, y, C].indexOf(e.id) === -1 && !e.trash
},
_openInNewWindow: function(e, t) {
var n = {
bookmarks: this.getSelectedBookmarks(),
inNewWindow: !0,
inBackground: e,
incognito: t
};
s.open(n, !0)
},
_openInNewTab: function(e) {
var t = {
bookmarks: this.getSelectedBookmarks(),
inCurrent: !1,
inBackground: e
};
s.open(t, !0)
},
_openBookmark: function() {
var e = {
bookmarks: this.getSelectedBookmarks(),
inCurrent: !0
};
s.open(e, !0)
},
canBeSpeedDialFolder: function(e) {
return !e.speeddial && !this.isTrash(e) && this.isFolder(e) && this.isEditable(e)
},
isSpeedDialFolder: function(e) {
return e.speeddial
},
getContextMenuItems: function(e) {
var t = this;
return e.trash ? [Object.assign({
handler: this.onEmptyTrash
}, g("Empty Trash"))] : [Object.assign({
handler: this._openBookmark
}, g("Open")), Object.assign({
handler: this._openInNewTab.bind(this, !1)
}, g("Open in New Tab")), Object.assign({
handler: this._openInNewTab.bind(this, !0)
}, g("Open in Background Tab")), {
name: "---"
}, Object.assign({
handler: this._openInNewWindow.bind(this, !1)
}, g("Open in New Window")), Object.assign({
handler: this._openInNewWindow.bind(this, !0, !1)
}, g("Open in Background Window")), Object.assign({
handler: this._openInNewWindow.bind(this, !1, !0)
}, g("Open in Private Window")), {
name: "---"
}, Object.assign({
testVisibility: function() {
return t.canBeSpeedDialFolder(e) && !t.isTrashed(e)
},
handler: function() {
t.props.onToggleSpeeddial(e)
}
}, g("Use as Speed Dial")), Object.assign({
testVisibility: function() {
return t.isSpeedDialFolder(e)
},
handler: function() {
t.props.onToggleSpeeddial(e)
}
}, g("Remove from Speed Dial")), Object.assign({
testVisibility: function() {
return t.isFolder(e) && !t.isTrashed(e)
},
handler: function() {
o.setBookmarkBarFolderAndToggleVisibility(e.id)
}
}, g("Set as Bookmark Bar Folder")), Object.assign({
handler: function() {
t.moveBookmarkToBookmarkBarFolder(e)
}
}, g("Move to Bookmark Bar Folder")), {
name: "---"
}, Object.assign({
handler: function() {
t.bookmarkActivePage(e)
}
}, g("Bookmark Active Page")), Object.assign({
handler: function() {
t.bookmarkAllOpenPages(e)
}
}, g("Bookmark All Open Pages"))]
},
getRootContextMenuItems: function() {
return [Object.assign({
handler: this.bookmarkActivePage.bind(this, l.getRootNode())
}, g("Bookmark Active Page")), Object.assign({
handler: this.bookmarkAllOpenPages.bind(this, l.getRootNode())
}, g("Bookmark All Open Pages")), {
name: "---"
}, Object.assign({
handler: this.onAdd.bind(this, !1)
}, g("New Bookmark")), Object.assign({
handler: this.onAdd.bind(this, !0)
}, g("New Folder")), {
name: "---"
}, Object.assign({
handler: this.resetBookmarkBar
}, g("Set as Bookmark Bar Folder")), {
name: "---"
}, Object.assign({
name: "MacIntel" === navigator.platform ? p("mac", "Paste") : p("win_linux", "Paste"),
handler: this.onRootPasteContextMenu
}, "MacIntel" === navigator.platform ? g("mac", "Paste") : g("win_linux", "Paste")), {
name: "---"
}, Object.assign({
handler: this.collapseAll
}, g("Collapse All Folders")), Object.assign({
handler: this.expandAll
}, g("Expand All Folders")), {
name: "---"
}, Object.assign({
handler: u.showImportData,
ellipsis: !0
}, g("Import Bookmarks")), {
name: "---"
}, Object.assign({
items: [Object.assign({
type: "checkbox",
checked: "flat" === this.refs.treeList.getSearchStyle(),
handler: this.setSearchStyle.bind(this, "flat")
}, g("Flat Search")), Object.assign({
type: "checkbox",
checked: "tree" === this.refs.treeList.getSearchStyle(),
handler: this.setSearchStyle.bind(this, "tree")
}, g("Tree Search"))]
}, g("Settings")), {
name: "---"
}, Object.assign({
handler: u.fullScreen,
visible: this.props.inManager
}, g("Fullscreen"))]
},
getContextMenuItemProps: function(e) {
return {
showEdit: this.isEditable(e) && !this.props.inManager,
showRename: this.isEditable(e),
showNewItem: !e.trash,
showNewFolder: !e.trash,
showCut: !e.trash,
showCopy: !e.trash,
showPaste: !e.trash,
showDelete: !e.trash,
showExpandCollapse: !0,
showSettings: !0,
showFullscreen: this.props.inManager
}
},
getContextMenuNewItemString: function() {
return g("New Bookmark")
},
supportDropForNode: function(e, t) {
var n = s.getMimeType();
return e.dataTransfer.types.some(function(e) {
return "text/uri-list" === e || e === n
})
},
getDragDataFromNode: function(e, t) {
return "text" === e ? t.url : "title" === e ? t.url || "" : "text/uri-list" === e ? [t.url].join("\r\n") : ""
},
handleExpandClick: function() {
this.refs.treeList.toggleSelectedExpansion()
},
onItemClick: function(e) {
1 !== e.button && this.state.BOOKMARKS_SINGLE_CLICK_IN_TREE && this.onOpenBookmarks(e);
},
onItemDoubleClick: function(e) {
1 === e.button || this.state.BOOKMARKS_SINGLE_CLICK_IN_TREE || this.onOpenBookmarks(e)
},
onItemMouseDown: function(e, t) {
1 === t.button && (t.preventDefault(), t.stopPropagation())
},
onItemMouseUp: function(e, t) {
1 === t.button && (this._openInNewTab(!0), t.preventDefault(), t.stopPropagation())
},
onOpenBookmarks: function(e) {
var t = this,
n = s.getOpenOptionsFromEvent(e);
n.bookmarks = this.refs.treeList.SelectionMixinGetAllSelected().map(function(e) {
return t.refs.treeList.findTreeItem(e.id)
}).filter(function(e) {
return !!e && !!e.url && e.url !== b
}), s.open(n, !0)
},
handleMouseEnter: function(e) {
d.setStatus(e)
},
handleMouseLeave: function() {
d.clearStatus()
},
renderItemContent: function(e) {
var t = e.node,
r = 16 * (t.level + 1) + "px",
s = 16 * t.level + "px",
o = [];
if (o.push(a.createElement("label", {
"data-parent": t.parentId,
key: "0",
onMouseEnter: "off" === this.state.SHOW_VIVALDI_FOOTER ? null : this.handleMouseEnter.bind(this, t.url),
onMouseLeave: "off" === this.state.SHOW_VIVALDI_FOOTER ? null : this.handleMouseLeave,
__source: {
fileName: i,
lineNumber: 629
}
}, this.isFolder(t) && this.hasChildren(t) && a.createElement("span", {
className: "expand-icon",
style: {
marginLeft: s
},
onClick: this.handleExpandClick,
dangerouslySetInnerHTML: {
__html: n(311)
},
__source: {
fileName: i,
lineNumber: 636
}
}), this.isFolder(t) && this.isTrash(t) && a.createElement(c, {
speeddial: t.speeddial,
open: t.isExpanded,
trash: !0,
leftMargin: this.hasChildren(t) ? 0 : r,
__source: {
fileName: i,
lineNumber: 644
}
}), this.isFolder(t) && !this.isTrash(t) && a.createElement(c, {
selected: t.isSelected,
speeddial: t.speeddial,
open: t.isExpanded,
trash: !1,
leftMargin: this.hasChildren(t) ? 0 : r,
__source: {
fileName: i,
lineNumber: 652
}
}), !this.isFolder(t) && a.createElement("img", {
src: "chrome://favicon/" + t.url,
style: {
marginLeft: r
},
width: "16",
height: "16",
alt: "",
__source: {
fileName: i,
lineNumber: 661
}
}), void 0 !== e.inlineEditText && a.createElement("input", {
ref: "input",
type: "text",
value: e.inlineEditText,
onChange: e.onChange,
onFocus: e.onFocus,
onBlur: e.onBlur,
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 667
}
}), void 0 === e.inlineEditText && a.createElement("span", {
className: "title",
__source: {
fileName: i,
lineNumber: 678
}
}, t.title), this.hasChildren(t) && !this.props.fullView && a.createElement("span", {
className: "folder-item-count",
__source: {
fileName: i,
lineNumber: 684
}
}, t.children.length))), this.props.fullView) {
var l = t.url !== b ? t.url : "";
o.push(a.createElement("label", {
key: "1",
__source: {
fileName: i,
lineNumber: 696
}
}, this.hasChildren(t) && this.props.fullView ? a.createElement("span", {
className: "secondary",
__source: {
fileName: i,
lineNumber: 698
}
}, p("$1 item", "$1 items", [t.children.length])) : l)), o.push(a.createElement("label", {
key: "2",
__source: {
fileName: i,
lineNumber: 709
}
}, t.nickname)), o.push(a.createElement("label", {
key: "3",
__source: {
fileName: i,
lineNumber: 713
}
}, t.description))
}
return o
},
unSelectAll: function() {
this.refs.treeList.unSelectAll()
},
onSelect: function(e) {
var t = this,
n = e.id;
if (this.props.onSelect) {
if (!n || n === I) return void this.props.onSelect();
f.bookmarks.get(n.toString(), function(e) {
f.runtime.lastError && console.warn("chrome.bookmarks.get failed: %s %o", n, f.runtime.lastError);
var i = e && 1 === e.length ? e[0] : null;
i && t.props.onSelect(i)
})
}
},
onEmptyTrash: function() {
_.bookmarksPrivate.emptyTrash(function(e) {
e === !1 && console.warn("Empty trash failed.")
})
},
onCreate: function(e) {
var t = this;
return e = Array.isArray(e) ? e : [e], o.createBookmarksPromise(e).then(function(e) {
return t.props.onCreate(e.isNew), e.nodes
})
},
saveTitle: function(e, t) {
f.bookmarks.update(e, {
title: t
})
},
render: function() {
return a.createElement(m, {
ref: "treeList",
nodes: this.state.nodes,
onSelect: this.onSelect,
onItemClick: this.onItemClick,
onItemDoubleClick: this.onItemDoubleClick,
onItemMouseDown: this.onItemMouseDown,
onItemMouseUp: this.onItemMouseUp,
onItemsActivated: this.onNodesActivated,
onCreate: this.onCreate,
onSearchStyleChanged: this.onSearchStyleChanged,
delete: this.delete,
onMove: this.onMove,
onEdit: this.props.onEdit,
onCutToClipboard: o.cut,
onCopyToClipboard: o.copy,
onPasteFromClipboard: o.pastePromise,
isFolder: this.isFolder,
isTrash: this.isTrash,
supportsInlineEdit: !0,
mimeType: s.getMimeType,
supportDropForItem: this.supportDropForNode,
getDragData: this.getDragDataFromNode,
hasChildren: this.hasChildren,
settings: this.props.inManager ? "BOOKMARKS_MANAGER" : "BOOKMARKS_PANEL",
renderItemContent: this.renderItemContent,
multiSelect: !this.state.BOOKMARKS_SINGLE_CLICK_IN_TREE,
getCutIds: l.getCutIds,
getContextMenuItems: this.getContextMenuItems,
getContextMenuItemProps: this.getContextMenuItemProps,
getContextMenuNewItemString: this.getContextMenuNewItemString,
getTitle: l.getTitle,
saveTitle: this.saveTitle,
getTargetSpec: this.getTargetSpec,
sorting: this.props.sorting,
onDrop: this.onDrop,
rootId: y,
isValidAddTarget: this.isValidAddTarget,
isValidDragSource: this.isValidDragSource,
isValidForClipboard: this.isValidForClipboard,
isValidToEdit: l.validateForEdit,
validateForDrag: l.validateForDrag,
validateForDeletion: l.validateForDeletion,
__source: {
fileName: i,
lineNumber: 768
}
})
}
});
e.exports = w
}, function(e, t, n) {
// =========================
// Function_353
// =========================
"use strict";
function i() {
var e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];
this.selectedIds_ = [], this.anchorIndex_ = -1, this.leadIndex_ = -1, this.multiSelect_ = e
}
var a = n(7);
i.prototype = {
isSelected: function(e) {
var t = this.selectedIds_.map(function(e) {
return e.id
}).indexOf(e),
n = this.selectedIds_[t];
return !!n && n.selected
},
get length() {
return this.selectedIds_.length
},
get isSingleItemSelected() {
return 1 === this.selectedIds_.length
},
get FirstSingleItemSelected() {
return this.isSingleItemSelected ? this.selectedIds_[0].id : -1
},
get selectedIds() {
return this.selectedIds_
},
resetSelectionModel: function() {
this.selectedIds_ = [], this.anchorIndex_ = -1, this.leadIndex_ = -1
},
getData: function() {
return a.pick(this, ["selectedIds_", "anchorIndex_", "leadIndex_"])
},
unSelectAll: function() {
return this.selectedIds_ = [], {
selectedIds_: this.selectedIds_
}
},
selectAll: function(e) {
var t = this;
return this.multiSelect && e.forEach(function(e) {
t.selectedIds_.push(new Object({
id: e,
selected: !0
}))
}), {
selectedIds_: this.selectedIds_
}
},
isSelectionLead: function(e) {
return this.leadIndex === e
},
setSelectedIds: function(e) {
return this.multiSelect ? this.selectedIds_ = e.map(function(e) {
return {
id: e,
selected: !0
}
}) : this.setIndexSelected(this.leadIndex, !0), {
leadIndex_: this.leadIndex_,
selectedIds_: this.selectedIds_
}
},
setLeadIndex: function(e) {
return this.leadIndex = e, {
leadIndex_: this.leadIndex_
}
},
setIndexSelected: function(e, t) {
var n = this.selectedIds_.map(function(e) {
return e.id
}).indexOf(e),
i = this.selectedIds_[n];
if (!i || i.selected !== t) {
if (this.multiSelect || this.resetSelectionModel(), this.leadIndex = e, this.anchorIndex = e, t) this.selectedIds_.push(new Object({
id: e,
selected: t
}));
else {
var a = this.selectedIds_.map(function(e) {
return e.id
}).indexOf(e);
a !== -1 && this.selectedIds_.splice(a, 1)
}
return {
leadIndex_: this.leadIndex_,
selectedIds_: this.selectedIds_
}
}
},
get leadIndex() {
return this.leadIndex_
},
set leadIndex(e) {
this.leadIndex_ = e
},
get anchorIndex() {
return this.anchorIndex_
},
set anchorIndex(e) {
this.anchorIndex_ = e
},
get multiSelect() {
return this.multiSelect_
},
set multiSelect(e) {
this.multiSelect_ = e
}
}, e.exports = i
}, function(e, t, n) {
// =========================
// Function_354
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/TabPositionPreview.jsx",
r = n(1),
s = n(5),
o = n(25),
l = n(2),
c = n(7),
u = c.omit,
A = ["TAB_POSITION"],
d = {
top: l("Top"),
right: l("Right"),
bottom: l("Bottom"),
left: l("Left")
},
h = r.createClass({
displayName: "TabPositionPreview",
propTypes: {
position: r.PropTypes.string
},
render: function() {
if (!this.props.position) return null;
var e = this.props.position,
t = d[this.props.position],
n = s({
selectbox: !0,
"selectbox-selected": this.props.selected
}),
o = u(this.props, ["position", "vivaldiSettings"]);
return r.createElement("button", i({
className: n,
title: t
}, o, {
__source: {
fileName: a,
lineNumber: 38
}
}), r.createElement("div", {
className: "selectbox-image",
__source: {
fileName: a,
lineNumber: 43
}
}, r.createElement("svg", {
viewBox: "0 0 96 76",
xmlns: "http://www.w3.org/2000/svg",
className: "tab-preview",
__source: {
fileName: a,
lineNumber: 44
}
}, "top" === e && r.createElement("g", {
__source: {
fileName: a,
lineNumber: 48
}
}, r.createElement("path", {
className: "thumb-preview-colorBg",
d: "M0 0h96v76H0z",
__source: {
fileName: a,
lineNumber: 49
}
}), r.createElement("path", {
className: "thumb-preview-colorBgDark",
d: "M0 0h96v12H0z",
__source: {
fileName: a,
lineNumber: 50
}
}), r.createElement("path", {
className: "thumb-preview-non-active-tab",
d: "M33 2h30v8H33zM64 2h30v8H64z",
__source: {
fileName: a,
lineNumber: 51
}
}), r.createElement("path", {
className: "thumb-preview-colorAccentBg",
d: "M2 2h30v8H2z",
__source: {
fileName: a,
lineNumber: 52
}
})), "right" === e && r.createElement("g", {
__source: {
fileName: a,
lineNumber: 56
}
}, r.createElement("path", {
className: "thumb-preview-colorBg",
d: "M0 0h96v76H0z",
__source: {
fileName: a,
lineNumber: 57
}
}), r.createElement("path", {
className: "thumb-preview-colorBgDark",
d: "M62 0h34v76H62z",
__source: {
fileName: a,
lineNumber: 58
}
}), r.createElement("path", {
className: "thumb-preview-non-active-tab",
d: "M64 11h30v8H64zM64 20h30v8H64z",
__source: {
fileName: a,
lineNumber: 59
}
}), r.createElement("path", {
className: "thumb-preview-colorAccentBg",
d: "M64 2h30v8H64z",
__source: {
fileName: a,
lineNumber: 60
}
})), "bottom" === e && r.createElement("g", {
__source: {
fileName: a,
lineNumber: 64
}
}, r.createElement("path", {
className: "thumb-preview-colorBg",
d: "M0 0h96v76H0z",
__source: {
fileName: a,
lineNumber: 65
}
}), r.createElement("path", {
className: "thumb-preview-colorBgDark",
d: "M0 64h96v12H0z",
__source: {
fileName: a,
lineNumber: 66
}
}), r.createElement("path", {
className: "thumb-preview-non-active-tab",
d: "M33 66h30v8H33zM64 66h30v8H64z",
__source: {
fileName: a,
lineNumber: 67
}
}), r.createElement("path", {
className: "thumb-preview-colorAccentBg",
d: "M2 66h30v8H2z",
__source: {
fileName: a,
lineNumber: 68
}
})), "left" === e && r.createElement("g", {
__source: {
fileName: a,
lineNumber: 72
}
}, r.createElement("path", {
className: "thumb-preview-colorBg",
d: "M0 0h96v76H0z",
__source: {
fileName: a,
lineNumber: 73
}
}), r.createElement("path", {
className: "thumb-preview-colorBgDark",
d: "M0 0h34v76H0z",
__source: {
fileName: a,
lineNumber: 74
}
}), r.createElement("path", {
className: "thumb-preview-non-active-tab",
d: "M2 11h30v8H2zM2 20h30v8H2z",
__source: {
fileName: a,
lineNumber: 75
}
}), r.createElement("path", {
className: "thumb-preview-colorAccentBg",
d: "M2 2h30v8H2z",
__source: {
fileName: a,
lineNumber: 76
}
}))), r.createElement("svg", {
xmlns: "http://www.w3.org/2000/svg",
className: "selectbox-checkmark",
viewBox: "0 0 16 16",
__source: {
fileName: a,
lineNumber: 80
}
}, r.createElement("path", {
d: "M5.3 13.3L1.5 9.5 3 8l2.3 2.5L13 2.7 14.6 4l-8 8z",
__source: {
fileName: a,
lineNumber: 83
}
}))), r.createElement("div", {
className: "selectbox-title",
__source: {
fileName: a,
lineNumber: 87
}
}, t))
}
});
e.exports = o(h, A)
}, function(e, t, n) {
// =========================
// Function_355
// =========================
"use strict";
function i(e) {
if (Array.isArray(e)) {
for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t];
return n
}
return Array.from(e)
}
function a(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function r(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function s(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
var o = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/dialogs/importBookmarks.jsx",
l = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
c = n(1),
u = n(10),
A = n(34),
d = n(2),
h = n(27),
m = n(21),
p = function(e) {
function t() {
a(this, t);
var e = r(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));
return e.handleClick = e.handleClick.bind(e), e.onHandleClick = e.onHandleClick.bind(e), e.handlePasswordChange = e.handlePasswordChange.bind(e), e.handleProfileChange = e.handleProfileChange.bind(e), e.handleUserProfileChange = e.handleUserProfileChange.bind(e), e.onImportStarted = e.onImportStarted.bind(e), e.onImportItemStarted = e.onImportItemStarted.bind(e), e.onImportItemEnded = e.onImportItemEnded.bind(e), e.onImportItemFailed = e.onImportItemFailed.bind(e), e.onImportEnded = e.onImportEnded.bind(e), e.state = {
importState: "IDLE",
useDefaultLocation: !0,
profilesArray: [],
shown: !0,
modalShown: !1,
selectedIndex: 0,
importOptions: [],
selectedProfile: "",
masterPassword: "",
importItemStatus: h.List()
}, e
}
return s(t, e), l(t, [{
key: "componentDidMount",
value: function() {
u.importData.onImportStarted.addListener(this.onImportStarted), u.importData.onImportItemStarted.addListener(this.onImportItemStarted), u.importData.onImportItemEnded.addListener(this.onImportItemEnded), u.importData.onImportItemFailed.addListener(this.onImportItemFailed), u.importData.onImportEnded.addListener(this.onImportEnded)
}
}, {
key: "componentWillUnmount",
value: function() {
u.importData.onImportStarted.removeListener(this.onImportStarted), u.importData.onImportItemStarted.removeListener(this.onImportItemStarted), u.importData.onImportItemEnded.removeListener(this.onImportItemEnded), u.importData.onImportItemFailed.removeListener(this.onImportItemFailed), u.importData.onImportEnded.removeListener(this.onImportEnded)
}
}, {
key: "componentWillMount",
value: function() {
var e = this;
u.importData.getProfiles(function(t) {
e.setState({
profilesArray: t,
importOptions: JSON.parse(JSON.stringify(t))
})
})
}
}, {
key: "shouldComponentUpdate",
value: function(e, t) {
return m(this, e, t)
}
}, {
key: "handleClick",
value: function() {
this.state.shown && this.props.onClose(), this.setState({
shown: !this.state.shown
})
}
}, {
key: "getStatusItems",
value: function() {
return this.state.importItemStatus
}
}, {
key: "onHandleClick",
value: function() {
this.startImport()
}
}, {
key: "onImportStarted",
value: function() {
this.setState({
importState: "IMPORT_STARTED"
})
}
}, {
key: "onImportItemStarted",
value: function(e) {
this.setItemState(e, "IMPORT_STARTED")
}
}, {
key: "onImportItemEnded",
value: function(e) {
this.setItemState(e, "IMPORT_COMPLETED")
}
}, {
key: "onImportItemFailed",
value: function(e, t) {
this.setItemState(e, "IMPORT_FAILED", t)
}
}, {
key: "onImportEnded",
value: function(e) {
this.setState({
importState: 0 === e ? "IMPORT_COMPLETED" : "IMPORT_FAILED"
})
}
}, {
key: "setItemState",
value: function(e, t, n) {
var i = this.getStatusItems(),
a = i.filter(function(t) {
return t.itemName === e
}).first(),
r = {
itemName: e,
state: t,
errorMsg: n
};
i = a ? i.map(function(t) {
return t.itemName === e ? "IMPORT_FAILED" === t.state ? t : Object.assign({}, r) : t
}) : i.push(r), this.setState({
importItemStatus: i
})
}
}, {
key: "startImport",
value: function() {
var e = this,
t = this.state.selectedIndex,
n = this.state.profilesArray,
i = n[t].history,
a = n[t].favorites,
r = n[t].passwords,
s = n[t].search,
o = n[t].notes,
l = n[t].speeddial,
c = this.state.useDefaultLocation,
A = "";
this.refs.userProfile && (A = "" === this.state.selectedProfile ? this.refs.userProfile.value : this.state.selectedProfile);
var d = Array(t.toString(), i.toString(), a.toString(), r.toString(), s.toString(), o.toString(), c.toString(), A.toString(), l.toString());
u.importData.startImport(d, this.state.masterPassword, function(t) {
"Cancel" === t ? e.setState({
importState: "IDLE"
}) : e.setState({
importState: "IMPORT_STARTED"
})
})
}
}, {
key: "handlePasswordChange",
value: function(e) {
e.target instanceof HTMLInputElement && this.setState({
masterPassword: e.target.value.toString()
})
}
}, {
key: "handleProfileChange",
value: function(e) {
if (e.target instanceof HTMLSelectElement) {
var t = parseInt(e.target.value, 10),
n = this.state.importOptions[t],
i = n.hasDefaultInstall;
this.setState({
selectedIndex: t,
useDefaultLocation: i
})
}
}
}, {
key: "handleUserProfileChange",
value: function(e) {
e.target instanceof HTMLSelectElement && this.setState({
selectedProfile: e.target.value
})
}
}, {
key: "_toggleDefault",
value: function(e) {
this.setState({
useDefaultLocation: !this.state.useDefaultLocation
})
}
}, {
key: "__changeSelection",
value: function(e, t) {
var n = [].concat(i(this.state.profilesArray));
n[e][t] = !n[e][t], this.setState({
profilesArray: n
})
}
}, {
key: "_getImportButtonText",
value: function(e, t) {
var n = e.willShowDialogType;
return this.state.useDefaultLocation || "none" === n ? d("Start Import") : "file" === n && "Safari" !== t ? d("Choose a File...") : "folder" === n ? d("Choose a Folder...") : ""
}
}, {
key: "_getImportItemStatus",
value: function(e) {
var t = this.getStatusItems(),
n = t.filter(function(t) {
return t.itemName === e
}).first();
if (n) {
if ("IMPORT_FAILED" === n.state) return c.createElement("div", {
className: "import-result",
__source: {
fileName: o,
lineNumber: 235
}
}, c.createElement("div", {
className: "import-failed",
title: n.errorMsg,
__source: {
fileName: o,
lineNumber: 236
}
}, d("ERROR")));
if ("IMPORT_COMPLETED" === n.state) return c.createElement("div", {
className: "import-result",
__source: {
fileName: o,
lineNumber: 243
}
}, c.createElement("div", {
className: "import-success",
__source: {
fileName: o,
lineNumber: 244
}
}, d("OK")))
}
return ""
}
}, {
key: "_getImportItemMarkup",
value: function(e, t, n, i, a, r) {
return c.createElement("div", {
className: "setting-single",
__source: {
fileName: o,
lineNumber: 256
}
}, c.createElement("div", {
className: "import-setting",
__source: {
fileName: o,
lineNumber: 257
}
}, c.createElement("input", {
id: t,
type: "checkbox",
checked: a,
onChange: this.__changeSelection.bind(this, n, e),
disabled: r,
__source: {
fileName: o,
lineNumber: 258
}
}), c.createElement("label", {
htmlFor: t,
__source: {
fileName: o,
lineNumber: 263
}
}, i)), this._getImportItemStatus(e))
}
}, {
key: "render",
value: function() {
var e = this.state.profilesArray.map(function(e) {
return c.createElement("option", {
key: e.index,
value: e.index,
__source: {
fileName: o,
lineNumber: 274
}
}, e.name)
}),
t = this.state.selectedIndex,
n = this.state.profilesArray[t],
i = this.state.importOptions[t];
if (i && i.UserProfiles && i.UserProfiles.length > 0) var a = i.UserProfiles.map(function(e) {
return c.createElement("option", {
key: e.profileName,
value: e.profileName,
__source: {
fileName: o,
lineNumber: 288
}
}, e.profileDisplayName)
});
if (i) {
var r = Boolean(!(i.passwords || i.history || i.notes || i.search || i.speeddial));
return c.createElement(A, {
onRequestClose: this.handleClick,
__source: {
fileName: o,
lineNumber: 306
}
}, function() {
var s = "IMPORT_COMPLETED" === this.state.importState || "IMPORT_FAILED" === this.state.importState,
l = "IMPORT_STARTED" === this.state.importState;
return c.createElement("div", {
className: "import-data",
__source: {
fileName: o,
lineNumber: 334
}
}, c.createElement("header", {
className: "dialog-header",
__source: {
fileName: o,
lineNumber: 335
}
}, c.createElement("h1", {
className: "dialog-title",
__source: {
fileName: o,
lineNumber: 336
}
}, d("Import Bookmarks and Settings"))), c.createElement("div", {
className: "dialog-content",
__source: {
fileName: o,
lineNumber: 339
}
}, c.createElement("fieldset", {
__source: {
fileName: o,
lineNumber: 340
}
}, c.createElement("label", {
htmlFor: "browserSel",
className: "from",
__source: {
fileName: o,
lineNumber: 341
}
}, d("import", "From")), c.createElement("select", {
id: "browserSel",
onChange: this.handleProfileChange,
value: this.state.selectedIndex,
disabled: l || s,
autoFocus: !0,
__source: {
fileName: o,
lineNumber: 345
}
}, e)), c.createElement("fieldset", {
__source: {
fileName: o,
lineNumber: 353
}
}, a && c.createElement("div", {
className: "profile",
__source: {
fileName: o,
lineNumber: 355
}
}, c.createElement("label", {
htmlFor: "userProfile",
__source: {
fileName: o,
lineNumber: 356
}
}, d("Chrome User Profile")), c.createElement("select", {
ref: "userProfile",
id: "userProfile",
onChange: this.handleUserProfileChange,
disabled: l,
value: this.state.selectedProfile,
__source: {
fileName: o,
lineNumber: 357
}
}, a)), i && i.favorites && this._getImportItemMarkup("favorites", "f-favorites", t, d("Bookmarks"), !!n && n.favorites, r || l), i.passwords && this._getImportItemMarkup("passwords", "f-passwords", t, d("Passwords"), !!n && n.passwords, l), i.supportsMasterPassword && c.createElement("div", {
className: "setting-single import-masterpassword",
__source: {
fileName: o,
lineNumber: 385
}
}, c.createElement("label", {
htmlFor: "f-masterpassword",
__source: {
fileName: o,
lineNumber: 386
}
}, d("Master password, if needed:")), c.createElement("input", {
id: "f_masterpassword",
type: "password",
onChange: this.handlePasswordChange,
__source: {
fileName: o,
lineNumber: 389
}
})), i.history && this._getImportItemMarkup("history", "f-history", t, d("History"), !!n && n.history, l), i.notes && this._getImportItemMarkup("notes", "f-notes", t, d("Notes"), !!n && n.notes, l), i.search && this._getImportItemMarkup("search", "f-search", t, d("Search Engines"), !!n && n.search, l), i.speeddial && this._getImportItemMarkup("speeddial", "f-speeddial", t, d("Speed Dial"), !!n && n.speeddial, l), i && i.supportsStandaloneImport && c.createElement("div", {
__source: {
fileName: o,
lineNumber: 430
}
}, c.createElement("div", {
className: "setting-single",
__source: {
fileName: o,
lineNumber: 431
}
}, c.createElement("input", {
id: "f-location",
type: "checkbox",
checked: this.state.useDefaultLocation && i.hasDefaultInstall,
onChange: this._toggleDefault.bind(this, i),
disabled: i.hasDefaultInstall === !1 || l,
__source: {
fileName: o,
lineNumber: 432
}
}), c.createElement("label", {
htmlFor: "f-location",
__source: {
fileName: o,
lineNumber: 437
}
}, d("Use Default Profile Location"))))), i && i.hasDefaultInstall && i.profilePath.length > 0 && c.createElement("div", {
className: "import-pathname",
__source: {
fileName: o,
lineNumber: 447
}
}, d("Detected Profile Path:"), c.createElement("br", {
__source: {
fileName: o,
lineNumber: 448
}
}), c.createElement("input", {
type: "text",
value: i.profilePath,
readOnly: "true",
__source: {
fileName: o,
lineNumber: 449
}
}))), c.createElement("footer", {
className: "dialog-footer",
__source: {
fileName: o,
lineNumber: 455
}
}, l === !0 && c.createElement("div", {
__source: {
fileName: o,
lineNumber: 457
}
}, c.createElement("p", {
className: "in-progress",
__source: {
fileName: o,
lineNumber: 458
}
}, d("Import in progress...."))), s === !1 && l === !1 && c.createElement("div", {
__source: {
fileName: o,
lineNumber: 462
}
}, c.createElement("input", {
type: "button",
className: "primary",
onClick: this.onHandleClick,
disabled: l,
value: this._getImportButtonText(i),
__source: {
fileName: o,
lineNumber: 463
}
}), c.createElement("input", {
type: "button",
onClick: this.handleClick,
disabled: l,
value: d("Cancel"),
__source: {
fileName: o,
lineNumber: 468
}
})), s === !0 && c.createElement("div", {
className: "cardview",
__source: {
fileName: o,
lineNumber: 475
}
}, c.createElement("input", {
type: "button",
className: "primary",
onClick: this.handleClick,
value: d("Close"),
__source: {
fileName: o,
lineNumber: 476
}
}))))
}.bind(this)())
}
return null
}
}]), t
}(c.Component);
e.exports = p
}, function(e, t, n) {
// =========================
// Function_356
// =========================
"use strict";
function i(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function a(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function r(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
var s = n(27),
o = n(44),
l = function(e) {
function t() {
return i(this, t), a(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments))
}
return r(t, e), t
}((0, s.Record)({
title: "",
url: "",
query: ""
})),
c = function(e) {
function t() {
return i(this, t), a(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments))
}
return r(t, e), t
}((0, s.Record)({
text: "",
grouping: "date",
startTime: o().startOf("day"),
endTime: o().endOf("day"),
rangePicker: "today",
displayMode: "day",
parsedFilter: new l,
dayPickerVisible: !1,
moreInfoVisible: !0,
monthEntriesVisible: !0,
searchURL: !0,
searchTitle: !0
}));
e.exports = {
HistoryFilter: c,
ParsedFilter: l
}
}, function(e, t, n) {
// =========================
// Function_357
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/historynew/HistorySearch.jsx",
a = n(1),
r = n(2),
s = n(44),
o = n(614),
l = a.createClass({
displayName: "HistorySearch",
search: function(e) {
var t = this.props.historyFilter.merge(e);
this.props.search(t)
},
onSearchChange: function(e) {
var t = e.target.value.trim(),
n = o(t),
i = {
text: e.target.value,
parsedFilter: n
};
this.search(i)
},
onStartTimeChange: function(e) {
var t = s(e.target.value).startOf("day");
t.isValid() && this.search({
startTime: t
})
},
onEndTimeChange: function(e) {
var t = s(e.target.value).endOf("day");
this.search({
endTime: t
})
},
onSelectOption: function() {
var e = this.refs.datePicker.value || "today",
t = s().startOf("day"),
n = s().endOf("day");
if (isNaN(parseInt(e))) {
if ("yesterday" === e) t = s().subtract(1, "day").startOf("day"), n = s().subtract(1, "day").endOf("day");
else if ("last_month" === e) t = s().subtract(1, "month").startOf("month"), n = s().subtract(1, "month").endOf("month");
else if ("all" === e) t = this.props.minDate.startOf("day"), n = s().endOf("day");
else if ("date_range" === e) return void this.search({
rangePicker: e
})
} else t = s().subtract(parseInt(e), "day").startOf("day"), n = s().endOf("day");
this.search({
startTime: t,
endTime: n,
rangePicker: e
})
},
convertDate: function(e) {
return s(e).format("YYYY-MM-DD")
},
render: function() {
var e = this.props.historyFilter,
t = this.convertDate(new Date);
return a.createElement("div", {
className: "toolbar icons",
__source: {
fileName: i,
lineNumber: 75
}
}, a.createElement("input", {
type: "search",
value: e.text,
onChange: this.onSearchChange,
placeholder: r("Search..."),
__source: {
fileName: i,
lineNumber: 76
}
}), a.createElement("select", {
ref: "datePicker",
value: this.props.historyFilter.rangePicker,
onChange: this.onSelectOption,
__source: {
fileName: i,
lineNumber: 81
}
}, a.createElement("option", {
value: "today",
__source: {
fileName: i,
lineNumber: 85
}
}, r("Today")), a.createElement("option", {
value: "yesterday",
__source: {
fileName: i,
lineNumber: 86
}
}, r("Yesterday")), a.createElement("option", {
value: "7",
__source: {
fileName: i,
lineNumber: 87
}
}, r("Last 7 Days")), a.createElement("option", {
value: "30",
__source: {
fileName: i,
lineNumber: 88
}
}, r("Last 30 Days")), a.createElement("option", {
value: "date_range",
__source: {
fileName: i,
lineNumber: 89
}
}, r("Date Range...")), a.createElement("option", {
value: "all",
__source: {
fileName: i,
lineNumber: 90
}
}, r("All History"))), "date_range" === this.props.historyFilter.rangePicker && a.createElement("div", {
className: "date-range",
__source: {
fileName: i,
lineNumber: 94
}
}, a.createElement("input", {
type: "date",
title: r("Start Date"),
max: t,
value: this.convertDate(e.startTime),
onChange: this.onStartTimeChange,
__source: {
fileName: i,
lineNumber: 95
}
}), a.createElement("input", {
type: "date",
title: r("End Date"),
max: t,
value: this.convertDate(e.endTime),
onChange: this.onEndTimeChange,
__source: {
fileName: i,
lineNumber: 100
}
})))
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_358
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/historynew/HistoryStoreSubscription.jsx",
r = n(1),
s = n(245),
o = function(e) {
return r.createClass({
getInitialState: function() {
var e = s.getHistorySearchResults(this.props.page.id);
return {
historyData: e.data,
historyFilter: e.filter,
historyStatistics: s.getStatistics(this.props.page.id),
oldestHistoryDate: e.oldestHistoryDate
}
},
componentWillMount: function() {
s.addChangeListener(this._onStoreChange)
},
componentWillUnmount: function() {
s.removeChangeListener(this._onStoreChange)
},
_onStoreChange: function(e, t) {
var n = this.props.page.id;
if (t === this.props.page.id || void 0 === t)
if ("filterChange" === e) {
var i = s.getFilter(n);
this.setState({
historyFilter: i
})
} else if ("searchResultsReady" === e) {
var a = s.getHistorySearchResults(n);
this.setState({
historyData: a.data,
historyFilter: a.filter,
oldestHistoryDate: a.oldestHistoryDate,
historyStatistics: s.getStatistics(this.props.page.id)
})
}
},
render: function() {
return r.createElement(e, i({}, this.props, this.state, {
__source: {
fileName: a,
lineNumber: 50
}
}))
}
})
};
e.exports = o
}, function(e, t, n) {
// =========================
// Function_359
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/historynew/HistoryTree.jsx",
a = n(1),
r = n(40),
s = n(130),
o = n(608),
l = n(609),
c = n(50),
u = n(15),
A = n(13),
d = n(109),
h = n(30),
m = n(7),
p = m.flatten,
f = m.uniq,
g = n(21),
_ = a.createClass({
displayName: "HistoryTree",
mixins: [A],
vivaldiSettingsKeys: ["SHOW_VIVALDI_FOOTER"],
shouldComponentUpdate: function(e, t) {
return g(this, e, t)
},
mapObject: function(e, t) {
return Object.keys(e).map(function(n) {
return t(n, e[n])
})
},
hasChildren: function(e) {
return !!e.children && e.children.length > 0
},
isFolder: function(e) {
return !!e && !!e.children
},
selectById: function(e) {
this.refs.treeList.selectById(e)
},
getSelectedItems: function() {
var e = this.refs.treeList.getAllSelectedItems(!0).map(function(e) {
return e.id
});
return this.getItemsByIds(e)
},
getItemsById: function(e) {
var t = function t(n) {
for (var i = 0; i < n.length; i++) {
var a = n[i];
if (a.id === e) return a.children ? a.children : a;
if (a.children && (a = t(a.children))) return a
}
};
return t(this.props.nodes)
},
getItemsByIds: function(e) {
var t = this,
n = p(e.map(function(e) {
return t.getItemsById(e)
}).filter(function(e) {
return void 0 !== e
}));
return n
},
openSelectedInTab: function(e, t) {
var n = this.getSelectedItems().map(function(e) {
return e.url
});
this.openUrlsInTab(n, e, t)
},
openUrlsInTab: function(e, t, n) {
var i = f(e).map(function(e, t) {
return {
id: t,
url: e
}
}),
a = {
bookmarks: i,
inCurrent: t,
inBackground: n
};
r.open(a, !0)
},
openSelectedInWindow: function(e, t) {
var n = this.getSelectedItems();
u.openWindow(n.map(function(e) {
return e.url
}), {
incognito: t,
focused: !e
})
},
copy: function(e, t) {
var n = this.getItemsByIds(t).map(function(e) {
return e.url
});
e.clipboardData.setData("text/plain", n.join("\n")), e.clipboardData.setData("text/uri-list", n), e.preventDefault()
},
delete: function(e) {
var t = this.getItemsByIds(e).map(function(e) {
return {
url: e.url,
at: e.visitTime
}
});
return s.deleteHistoryPromise(t)
},
handleExpandClick: function() {
this.refs.treeList.toggleSelectedExpansion()
},
expandAll: function() {
this.refs.treeList.expandAll()
},
collapseAll: function() {
this.refs.treeList.collapseAll()
},
getContextMenuItems: function() {
return [Object.assign({
handler: this.openSelectedInTab.bind(this, !0, !1)
}, h("Open")), Object.assign({
handler: this.openSelectedInTab.bind(this, !1, !1)
}, h("Open in New Tab")), Object.assign({
handler: this.openSelectedInTab.bind(this, !1, !0)
}, h("Open in Background Tab")), {
name: "---"
}, Object.assign({
handler: this.openSelectedInWindow.bind(this, !1, !1)
}, h("Open in New Window")), Object.assign({
handler: this.openSelectedInWindow.bind(this, !0, !1)
}, h("Open in Background Window")), Object.assign({
handler: this.openSelectedInWindow.bind(this, !1, !0)
}, h("Open in Private Window"))]
},
getRootContextMenuItems: function() {
return [Object.assign({
handler: this.collapseAll
}, h("Collapse All Folders")), Object.assign({
handler: this.expandAll
}, h("Expand All Folders")), {
name: "---"
}, Object.assign({
handler: c.fullScreen,
visible: this.props.inManager
}, h("Fullscreen"))]
},
getContextMenuItemProps: function(e) {
return {
showEdit: !1,
showRename: !1,
showNewItem: !1,
showNewFolder: !1,
showCut: !1,
showCopy: !0,
showPaste: !1,
showDelete: !0,
showExpandCollapse: !0,
showFullscreen: this.props.inManager
}
},
getContextMenuCopyString: function() {
return h("Copy Link Address")
},
onItemMouseDown: function(e, t) {
1 === t.button && (t.preventDefault(), t.stopPropagation())
},
onItemMouseUp: function(e, t) {
1 === t.button && (this.openSelectedInTab(!1, !1), t.preventDefault(), t.stopPropagation())
},
onItemDoubleClick: function(e) {
if (1 !== e.button) {
var t = r.getOpenOptionsFromEvent(e);
t.inNewWindow === !0 ? this.openSelectedInWindow(!1, !1) : this.openSelectedInTab(t.inCurrent, t.inBackground)
}
},
onItemsActivated: function(e, t) {
var n = this.getItemsByIds(t.map(function(e) {
return e.id
})).map(function(e) {
return e.url
});
this.openUrlsInTab(n, !0, !1)
},
isValidForClipboard: function() {
return !0
},
validateForDeletion: function(e) {
return e
},
renderItemContent: function(e) {
var t = e.node,
n = [];
return this.isFolder(t) ? n.push(a.createElement(o, {
key: "0",
historyItem: t,
toggle: this.handleExpandClick,
expandAll: this.expandAll,
collapseAll: this.collapseAll,
grouping: this.props.grouping,
fullView: this.props.fullView,
__source: {
fileName: i,
lineNumber: 239
}
})) : n.push(a.createElement(l, {
key: "1",
historyItem: t,
showFooter: this.state.SHOW_VIVALDI_FOOTER,
grouping: this.props.grouping,
fullView: this.props.fullView,
__source: {
fileName: i,
lineNumber: 250
}
})), n
},
render: function() {
return a.createElement(d, {
settings: this.props.inManager ? "HISTORY_MANAGER" : "HISTORY_PANEL",
ref: "treeList",
nodes: this.props.nodes,
hasChildren: this.hasChildren,
isFolder: this.isFolder,
renderItemContent: this.renderItemContent,
onItemDoubleClick: this.onItemDoubleClick,
onItemMouseDown: this.onItemMouseDown,
onItemMouseUp: this.onItemMouseUp,
onItemsActivated: this.onItemsActivated,
onCopyToClipboard: this.copy,
onSelect: this.onSelect,
getContextMenuItems: this.getContextMenuItems,
getContextMenuItemProps: this.getContextMenuItemProps,
getContextMenuCopyString: this.getContextMenuCopyString,
delete: this.delete,
enableDragAndDrop: !1,
sorting: this.props.sorting,
isValidForClipboard: this.isValidForClipboard,
validateForDeletion: this.validateForDeletion,
textOnlyClipboard: !0,
allFoldersExpandedOnLoad: !0,
__source: {
fileName: i,
lineNumber: 263
}
})
}
});
e.exports = _
}, function(e, t) {
// =========================
// Function_360
// =========================
"use strict";
function n(e) {
return e.indexOf(",") > -1 && (e = '"' + e + '"'), e
}
function i(e, t) {
var i = "";
return i += e && "" !== e ? "" === t ? n(e) : n(e) + " <" + t + ">" : t
}
var a = function(e) {
return e && (e.MAIL_EMAIL || e.MAIL_NAME) ? i(e.MAIL_NAME, e.MAIL_EMAIL) : e && (e.name || e.address) ? i(e.name, e.address) : e ? e : ""
},
r = function(e) {
var t = "";
if (e)
for (var n = 0; n < e.length; n++) t && (t += ", "), t += a(e[n]);
return t
},
s = function(e) {
return e instanceof Array ? r(e) : a(e)
};
e.exports = s
}, function(e, t, n) {
// =========================
// Function_361
// =========================
"use strict";
var i = n(239),
a = n(240),
r = a.getAttachments,
s = n(181),
o = n(135),
l = o.isUnread,
c = o.areFlagsMatching,
u = n(398),
A = u.padLeftZeros,
d = n(135),
h = n(364),
m = n(42),
p = m.ALL_MESSAGES_ACCOUNT_ID,
f = m.DRAFTS_FOLDER_PATH,
g = m.BUFFER_OPERATION_MARKUNREAD,
_ = m.BUFFER_OPERATION_MARKFLAGGED,
v = m.BUFFER_OPERATION_MARKFORWARDED,
b = m.BUFFER_OPERATION_MARKREPLIED,
N = m.THREAD_KEY_LENGTH,
E = [g, _],
S = {
add: function(e, t, n) {
var a = arguments.length > 3 && void 0 !== arguments[3] && arguments[3],
o = a ? [i.messages, i.tokens] : [i.messages, i.searchList, i.tokens];
return i.transaction("rw", o, function() {
return s.Promise.all(n.map(function(n) {
var s = {
accountId: e,
path: t,
uid: n.uid,
sentDate: n.sentDate
},
o = void 0;
o = "undefined" == typeof window ? n.tokens : h.getMessageTokens({
from: n.from,
to: n.to,
cc: n.cc,
replyTo: n.replyTo,
subject: n.subject,
bodyParts: n.bodyParts
}), o && i.tokens.put(Object.assign({}, s, {
tokens: o
}));
var c = Object.assign({}, s, {
from: n.from,
subject: n.subject,
listId: n.listId,
flags: n.flags || [],
forwarded: n.forwarded,
replied: n.replied
}),
u = e === p && t === f ? {
bodyParts: n.bodyParts,
inReplyTo: n.inReplyTo,
references: n.references || []
} : {
raw: n.raw
};
if (i.messages.put(Object.assign({}, c, {
to: n.to,
cc: n.cc,
replyTo: n.replyTo
}, u)), !a) {
var d = Object.assign({}, c, {
attachment: r(n.bodyParts).length > 0,
unseen: l(n),
messageId: n.messageId,
inReplyTo: n.inReplyTo,
references: n.references || [],
threadKey: A(n.sentDate, N)
}, n.queued ? {
queued: n.queued
} : {});
return i.searchList.put(d), d
}
}))
})
},
remove: function(e, t, n) {
return i.transaction("rw", [i.messages, i.tokens, i.searchList, i.buffer], function() {
return s.Promise.all(n.map(function(n) {
i.messages.delete([e, t, n]), i.tokens.delete([e, t, n]), i.searchList.delete([e, t, n]), i.buffer.delete([e, t, n])
}))
})
},
removeAllDataForAccount: function(e) {
var t = [e, "", 0],
n = [e, "", Number.MAX_VALUE],
a = ["messages", "tokens", "searchList"];
return i.transaction("rw", a.map(function(e) {
return i[e]
}), function() {
return a.forEach(function(e) {
return i[e].where("[accountId+path+uid]").between(t, n).delete()
})
})
},
get: function(e, t, n) {
return i.messages.get([e, t, n])
},
getTokens: function(e, t) {
return i.tokens.where("tokens").startsWith(e).until(t).distinct().toArray()
},
update: function(e, t, n) {
var a = {},
r = [],
s = [],
o = !0,
u = !1,
A = void 0;
try {
for (var d, h = n[Symbol.iterator](); !(o = (d = h.next()).done); o = !0) {
var m = d.value;
s.push([e, t, m.uid]), a[m.uid] = m
}
} catch (e) {
u = !0, A = e
} finally {
try {
!o && h.return && h.return()
} finally {
if (u) throw A
}
}
return i.transaction("rw", [i.searchList, i.messages], function() {
i.searchList.where("[accountId+path+uid]").anyOf(s).modify(function(e) {
var t = a[e.uid];
if (!c(e.flags, t.flags)) {
var n = l(t),
i = l(e),
s = 0;
n !== i && (s = n ? 1 : -1);
var o = s === -1 ? -e.unseen : 0;
e.flags = t.flags, e.unseen = !1;
var u = {
sentDate: e.sentDate,
uid: e.uid,
threadKey: e.threadKey,
flags: e.flags,
dUnread: s,
dUnseen: o
};
r.push(u)
}
}), i.messages.where("[accountId+path+uid]").anyOf(s).modify(function(e) {
var t = a[e.uid];
c(e.flags, t.flags) || (e.flags = t.flags)
})
}).then(function() {
return r
})
},
markSeen: function(e) {
return i.searchList.update([e.accountId, e.path, e.uid], {
unseen: !1
})
},
markTrusted: function(e) {
return i.messages.update([e.accountId, e.path, e.uid], {
trusted: !0
})
},
getSearchList: function() {
return i.searchList.orderBy("[sentDate+accountId+path+uid]").toArray()
},
getAllSearchListKeys: function() {
return i.searchList.toCollection().primaryKeys()
},
getSearchListThreaded: function() {
return i.searchList.orderBy("[threadKey+accountId+path+uid]").toArray()
},
addToBuffer: function(e, t, n, a, r) {
return i.transaction("rw", [i.buffer], function() {
i.buffer.where("[accountId+path+uid+operation]").anyOf(n.map(function(n) {
return [e, t, n, a]
})).each(function(s) {
s.params === r ? n.splice(n.indexOf(s.uid), 1) : E.includes(a) && (n.splice(n.indexOf(s.uid), 1), i.buffer.where("[accountId+path+uid+operation]").equals([e, t, s.uid, a]).delete())
}).then(function() {
var s = n.map(function(n) {
return {
accountId: e,
path: t,
uid: n,
operation: a,
params: r
}
});
i.buffer.bulkAdd(s)
})
})
},
getBufferByAccount: function(e) {
return i.buffer.where("accountId").equals(e).toArray()
},
checkBuffer: function(e, t, n) {
return i.transaction("rw", i.buffer, function() {
var a = 0;
return i.buffer.where("[accountId+path+uid]").anyOf(n.map(function(n) {
return [e, t, n.uid]
})).filter(function(e) {
for (; n[a] && n[a].uid !== e.uid;) a++;
var t = n[a];
if (t || console.error("Should never happen as messageUpdates and\n bufferedOperations have the same order"), e.operation === g) {
if (d.isUnread(t) === e.params) return !0;
t.flags = d.updateFlags(t.flags, {
unread: e.params
})
} else if (e.operation === _) {
if (d.isFlagged(t) === e.params) return !0;
t.flags = d.updateFlags(t.flags, {
flagged: e.params
})
} else if (e.operation === v) {
if (d.isForwarded(t) === e.params) return !0;
t.flags = d.updateFlags(t.flags, {
forwarded: e.params
})
} else if (e.operation === b) {
if (d.isReplied(t) === e.params) return !0;
t.flags = d.updateFlags(t.flags, {
replied: e.params
})
}
return !1
}).delete()
})
},
bulkRemoveFromBuffer: function(e) {
return i.buffer.bulkDelete(e)
},
removeListFromBuffer: function(e, t, n, a) {
return i.buffer.where("[accountId+path+uid+operation]").anyOf(n.map(function(n) {
return [e, t, n, a]
})).delete()
},
findReferencesTo: function(e) {
return e && e.messageId ? i.searchList.where("references").equals(e.messageId).or("inReplyTo").equals(e.messageId).toArray() : Promise.resolve([])
},
getByMessageId: function(e, t) {
return i.searchList.where("[accountId+messageId]").equals([e, t]).toArray()
},
findMyReferences: function(e) {
if (e && (e.references.length || e.inReplyTo)) {
var t = e.references.length ? e.references.map(function(t) {
return [e.accountId, t]
}) : [];
return e.inReplyTo && t.push([e.accountId, e.inReplyTo]), i.searchList.where("[accountId+messageId]").anyOf(t).toArray()
}
return Promise.resolve([])
},
updateSearchListEntries: function(e) {
return i.transaction("rw", i.searchList, function() {
return i.searchList.bulkPut(e)
})
},
getSearchListEntries: function(e, t, n) {
return i.searchList.where("[accountId+path+uid]").between([e, t, n], [e, t, Number.MAX_VALUE]).toArray()
},
messageCount: function(e, t) {
return i.messages.where("[accountId+path+uid]").between([e, t, 0], [e, t, Number.MAX_VALUE]).count()
},
tokenCount: function(e, t) {
return i.tokens.where("[accountId+path+uid]").between([e, t, 0], [e, t, Number.MAX_VALUE]).count()
},
getSearchListEntry: function(e, t, n) {
return i.searchList.get([e, t, n])
}
};
e.exports = S
}, function(e, t, n) {
// =========================
// Function_362
// =========================
"use strict";
var i = n(66),
a = n(66),
r = n(402),
s = n(4),
o = n(547),
l = n(3);
o.logLevel = 2;
var c = "https://accounts.google.com/o/oauth2/auth?client_id=796499425440-0lp5at5t0cudv5db0q8bfj9nctnqv2i3.apps.googleusercontent.com&response_type=token&scope=https://mail.google.com/&redirect_uri=https://mpognobbkildjkofajifpdfhcoklimli.chromiumapp.org/",
u = {},
A = function(e) {
return u[e.MAIL_EMAIL] ? {
user: e.MAIL_EMAIL,
xoauth2: u[e.MAIL_EMAIL]
} : r(s.identity.launchWebAuthFlow)({
url: c,
interactive: !0
}).then(function(t) {
var n = t.substr(t.indexOf("#") + 1);
return n.split("&").forEach(function(t) {
if (t.startsWith("access_token=")) u[e.MAIL_EMAIL] = t.substr(13);
else if (t.startsWith("expires_in=") && u[e.MAIL_EMAIL]) {
var n = 1e3 * parseInt(t.substr(11));
n > 0 && setTimeout(function() {
return u[e.MAIL_EMAIL] = void 0
}, n)
}
}), u[e.MAIL_EMAIL] ? {
user: e.MAIL_EMAIL,
xoauth2: u[e.MAIL_EMAIL]
} : Promise.reject("OAuth2 endpoint didn't provide access token")
})
},
d = function(e) {
return o.logLevel = l.getSync("MAIL_IMAP_LOGS_ON") ? 0 : 2, Promise.resolve().then(function() {
return e.MAIL_EMAIL.endsWith("@gmail.com") ? A(e) : {
user: e.MAIL_IMAP_USER,
pass: e.MAIL_IMAP_PASSWORD
}
}).then(function(t) {
var n = new i({
host: e.MAIL_IMAP_SERVER,
port: e.MAIL_IMAP_PORT,
auth: t,
secure: !0,
ignoreTLS: !1
});
return n._client.logLevel = n._client.LOG_LEVEL_WARN, n._client.TIMEOUT_CONNECTION = 3e3, n
})
},
h = function(e) {
return Promise.resolve().then(function() {
return e.MAIL_EMAIL.endsWith("@gmail.com") ? A(e) : {
user: e.MAIL_SMTP_USER,
pass: e.MAIL_SMTP_PASSWORD
}
}).then(function(t) {
var n = new a(e.MAIL_SMTP_SERVER, e.MAIL_SMTP_PORT, {
auth: t,
useSecureTransport: 587 !== e.MAIL_SMTP_PORT,
ignoreTLS: !1,
requireTLS: !0
});
return n.logLevel = n.LOG_LEVEL_WARN, n
})
};
e.exports = {
getIMAPClient: d,
getSMTPClient: h
}
}, function(e, t, n) {
// =========================
// Function_363
// =========================
"use strict";
var i = n(42),
a = i.ALL_MESSAGES_ACCOUNT_ID,
r = i.TRASH_FOLDER_PATH,
s = i.TRASH_FOLDER_TYPE,
o = i.SENT_FOLDER_PATH,
l = i.SENT_FOLDER_TYPE,
c = i.DRAFTS_FOLDER_PATH,
u = i.OUTBOX_FOLDER_PATH,
A = i.RECEIVED_FOLDER_PATH,
d = i.UNREAD_FOLDER_PATH,
h = [{
accountId: a,
path: A,
filterValue: {
excludeFolderTypes: [l],
filterOnDrafts: !1,
filterOnOutbox: !1
}
}, {
accountId: a,
path: d,
filterValue: {
showRead: !1
}
}, {
accountId: a,
path: o,
filterValue: {
includeFolderTypes: [l]
}
}, {
accountId: a,
path: r,
filterValue: {
includeFolderTypes: [s]
}
}, {
accountId: a,
path: c,
filterValue: {
filterOnDrafts: !0
}
}, {
accountId: a,
path: u,
filterValue: {
filterOnOutbox: !0
}
}],
m = [d, A, o, c, u, r],
p = ["name", "path", "query", "from", "subject", "listId"];
e.exports = {
defaultFilters: h,
allMessagesOrder: m,
search_keywords: p
}
}, function(e, t, n) {
// =========================
// Function_364
// =========================
"use strict";
function i(e, t, n) {
for (var i = void 0; null !== (i = t.exec(e));)
for (var a = 0; a < i.length; a++) {
var r = i[a].toLowerCase(),
o = s(n, r, h);
o < 0 && (0 <= -o - 2 && 0 === r.indexOf(n[-o - 2]) ? n.splice(-o - 2, 1, r) : (n.length <= -o - 1 || 0 !== n[-o - 1].indexOf(r)) && n.splice(-o - 1, 0, r))
}
}
function a(e) {
var t = [];
return i(e, u, t), i(e, A, t), i(e, d, t), t
}
function r(e) {
var t = (e.from || []).concat(e.to || [], e.cc || [], e.replyTo || []),
n = t.map(function(e) {
return e.name
}).concat(t.map(function(e) {
return e.address
})),
i = o(!1, e.bodyParts),
r = "";
i && i.content && (r = "html" === i.type ? c(i.content) : i ? i.content : "");
var s = n.concat([e.subject, r]).join(" ");
return a(s)
}
var s = n(407),
o = n(627),
l = n(773),
c = l.htmlToText,
u = /\d+\.\d+/g,
A = /[^\s]+@([^\s]+\.[^\s.]+)/g,
d = /[^\s!¡?¿.:,;"+]{2,}/g,
h = function(e, t) {
return e.localeCompare(t)
};
e.exports.getMessageTokens = r, e.exports.getTokens = a
}, function(e, t) {
// =========================
// Function_365
// =========================
"use strict";
var n = "a[href], area[href], input:not([disabled]), select:not([disabled]), option:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]",
i = function(e) {
if (!e.srcElement.matches(n)) {
for (var t = e.target; t !== document.body;) {
if (t.draggable) {
var i = document.activeElement,
a = function e(t) {
this.removeEventListener("mouseup", e), this.removeEventListener("dragend", e), document.activeElement === document.body && i.focus()
};
return t.addEventListener("mouseup", a), void t.addEventListener("dragend", a)
}
t = t.parentElement
}
e.preventDefault()
}
},
a = {
componentDidMount: function() {
document.body.addEventListener("mousedown", i)
},
componentWillUnmount: function() {
document.body.removeEventListener("mousedown", i)
}
};
e.exports = a
}, function(e, t, n) {
// =========================
// Function_366
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/cookies/cookieManager.jsx",
a = n(1),
r = n(9),
s = n(4),
o = n(657),
l = n(2),
c = n(34),
u = n(12),
A = a.createClass({
displayName: "CookieManager",
mixins: [r],
getInitialState: function() {
return {
cookieData: {},
cookieFilter: "",
confirmation: !1,
showCookies: !1
}
},
componentWillMount: function() {
this.getAllCookies()
},
getAllCookies: function() {
var e = this;
s.cookies.getAll({}, function(t) {
e.setState({
cookieData: t.reduce(function(e, t) {
var n = e[t.domain] || [];
return n.push(t), e[t.domain] = n, e
}, {})
})
})
},
deleteFilteredCookies: function() {
var e = this;
s.cookies.getAll({}, function(t) {
for (var n = 0; n < t.length; n++) t[n].domain.indexOf(e.state.cookieFilter) !== -1 && s.cookies.remove({
url: e.getCookieUrl(t[n]),
name: t[n].name
});
e.getAllCookies()
})
},
deleteAllCookies: function() {
var e = this,
t = 0;
s.cookies.getAll({}, function(i) {
t = i.length;
for (var a = 0; a < i.length; a++) s.cookies.remove({
url: e.getCookieUrl(i[a]),
name: i[a].name
}, n)
});
var n = function(n) {
t--, 0 === t && e.setState({
cookieData: [],
confirmation: !1,
showCookies: !1
})
}
},
getCookieUrl: function(e) {
return "http" + (e.secure ? "s" : "") + "://" + e.domain + e.path
},
deleteCookie: function(e) {
this.getAllCookies()
},
onSettingsFilter: function(e) {
this.setState({
cookieFilter: e.target.value
})
},
onAskToDelete: function() {
this.setState({
confirmation: !0
})
},
onCancel: function() {
this.setState({
confirmation: !1
}), this.props.onClose()
},
keyDownModal: function(e) {
27 === e.keyCode && this.onCancel()
},
renderModal: function() {
return a.createElement(c, {
dialogWidth: 400,
__source: {
fileName: i,
lineNumber: 110
}
}, a.createElement("div", {
className: "dialog-delete-cookies",
onKeyDown: this.keyDownModal,
__source: {
fileName: i,
lineNumber: 111
}
}, a.createElement("header", {
className: "dialog-header",
__source: {
fileName: i,
lineNumber: 112
}
}, a.createElement("h1", {
className: "dialog-title",
__source: {
fileName: i,
lineNumber: 113
}
}, l("Delete All Cookies?"))), a.createElement("div", {
className: "dialog-content",
__source: {
fileName: i,
lineNumber: 117
}
}, a.createElement("p", {
__source: {
fileName: i,
lineNumber: 118
}
}, l("All cookies will be removed."))), a.createElement("footer", {
className: "dialog-footer",
__source: {
fileName: i,
lineNumber: 122
}
}, a.createElement("input", {
type: "button",
className: "primary",
onClick: this.deleteAllCookies,
value: l("other", "Delete"),
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 123
}
}), a.createElement("input", {
type: "button",
onClick: this.onCancel,
value: l("Cancel"),
__source: {
fileName: i,
lineNumber: 128
}
}))))
},
showCookieList: function() {
this.setState({
showCookies: !this.state.showCookies
})
},
render: function() {
var e = this;
if (!this.state.cookieData) return a.createElement("div", {
className: "saved-passwords",
__source: {
fileName: i,
lineNumber: 146
}
}, a.createElement("p", {
__source: {
fileName: i,
lineNumber: 147
}
}, l("No cookies found.")));
var t = Object.keys(this.state.cookieData).length,
n = Object.keys(this.state.cookieData).reduce(function(t, n) {
return t + e.state.cookieData[n].length
}, 0),
r = a.createElement("div", {
__source: {
fileName: i,
lineNumber: 157
}
}, this.state.confirmation && this.renderModal(), a.createElement("div", {
className: "setting-group setting-cookies unlimited",
__source: {
fileName: i,
lineNumber: 160
}
}, a.createElement("h3", {
__source: {
fileName: i,
lineNumber: 161
}
}, l("Saved Cookies")), a.createElement("p", {
__source: {
fileName: i,
lineNumber: 163
}
}, l("Vivaldi currently stores $1 from $2.", [l("$1 cookie entry", "$1 cookie entries", [n]), l("$1 domain", "$1 domains", [t])])), this.state.showCookies && a.createElement("div", {
__source: {
fileName: i,
lineNumber: 174
}
}, a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 175
}
}, a.createElement("input", {
type: "search",
placeholder: l("Filter by domain"),
value: this.state.cookieFilter,
onChange: this.onSettingsFilter,
__source: {
fileName: i,
lineNumber: 176
}
})), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 182
}
}, a.createElement("ul", {
__source: {
fileName: i,
lineNumber: 183
}
}, Object.keys(this.state.cookieData).filter(function(t) {
return t.indexOf(e.state.cookieFilter) !== -1
}).map(function(t) {
return a.createElement(o, {
key: "domain-" + t,
domain: t,
count: e.state.cookieData[t].length,
item: e.state.cookieData[t],
onCookieDelete: e.deleteCookie,
__source: {
fileName: i,
lineNumber: 187
}
})
}), 0 === Object.keys(this.state.cookieData).filter(function(t) {
return t.indexOf(e.state.cookieFilter) !== -1
}).length && this.state.cookieFilter && a.createElement("li", {
style: {
margin: "6px"
},
__source: {
fileName: i,
lineNumber: 198
}
}, l("Query “$1” matches no result.", [this.state.cookieFilter]))))), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 207
}
}, a.createElement("input", {
type: "button",
value: l(this.state.showCookies ? "Hide Saved Cookies" : "Display Saved Cookies"),
disabled: 0 === n,
onClick: this.showCookieList,
__source: {
fileName: i,
lineNumber: 208
}
}), a.createElement("input", {
type: "button",
className: "danger",
onClick: this.onAskToDelete,
disabled: 0 === n,
value: l("Delete All Cookies"),
__source: {
fileName: i,
lineNumber: 214
}
}), this.state.cookieFilter && a.createElement("input", {
type: "button",
onClick: this.deleteFilteredCookies,
value: l("Delete Filtered Cookies"),
__source: {
fileName: i,
lineNumber: 221
}
}))));
return u(r, this.props.filter)
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_367
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/keyboardShortcuts/KeyboardShortcutEditSetting.jsx",
r = n(1),
s = n(11),
o = n(3),
l = n(13),
c = n(137),
u = n(37),
A = n(5),
d = n(2),
h = r.createClass({
displayName: "ShortCutEditSetting",
mixins: [l],
vivaldiSettingsKeys: ["DISABLE_SINGLE_KEY_SHORTCUTS", "DISABLE_KEYBOARD_SHORTCUTS"],
getInitialState: function() {
return {
keyValue: this.props.command.shortcut,
selectedCombo: "",
active: !1,
focused: !1,
duplicateCombo: "",
singleKeyWarning: !1
}
},
restoreDefault: function(e) {
var t = o.getDefault(this.props.command.name);
this.setState({
keyValue: t.shortcut || null
}, this.save)
},
clearCombo: function(e) {
this.setState({
keyValue: null
}, this.save)
},
handleKeyEvent: function(e) {
var t = ["shift+tab", "tab", "space", "enter", "esc", "left", "right", "up", "down", "pageup", "pagedown", "numlock", "home", "end", "insert", "delete"],
n = u.keyComboFromEvent(e.nativeEvent);
if ("PageUp" !== e.nativeEvent.key && "PageDown" !== e.nativeEvent.key || !e.nativeEvent.ctrlKey || e.preventDefault(), n && "backspace" === n) {
e.stopPropagation();
var i = this.state.keyValue.slice(0, this.state.keyValue.length - 1);
this.setState({
keyValue: i,
duplicateCombo: "",
singleKeyWarning: !1
}, this.save), this.refs.comboInput.focus()
} else if (this.state.DISABLE_SINGLE_KEY_SHORTCUTS && n && u.isSingleKeyShortcut(n)) this.setState({
duplicateCombo: "",
singleKeyWarning: !0
});
else if (n && this.props.existingCombos.indexOf(n) !== -1) this.setState({
duplicateCombo: c(n),
singleKeyWarning: !1
});
else if (n && t.indexOf(n) === -1) {
var a = this.state.keyValue || [];
this.setState({
keyValue: a.slice().concat(n),
duplicateCombo: "",
singleKeyWarning: !1
}, this.save)
} else this.navigateWithArrowKeys(e)
},
navigateWithArrowKeys: function(e) {
if (this.state.keyValue) {
var t = u.keyComboFromEvent(e.nativeEvent),
n = document.activeElement;
"left" === t ? (e.preventDefault(), e.stopPropagation(), n.previousElementSibling && n.previousElementSibling.focus()) : "right" === t ? (e.preventDefault(), e.stopPropagation(), n.nextElementSibling && n.nextElementSibling.focus()) : "up" === t ? (e.preventDefault(), e.stopPropagation(), n.parentNode.firstChild.focus()) : "down" === t && (e.preventDefault(), e.stopPropagation(), n.parentNode.lastChild.focus())
}
},
save: function() {
var e = {
name: this.props.command.name,
shortcut: this.state.keyValue,
gestures: this.props.command.gestures,
showInQC: this.props.command.showInQC
};
o.set(i({}, this.props.command.name, e))
},
keyUpListener: function(e) {
if (e.stopPropagation(), e.preventDefault(), 8 === e.keyCode || 46 === e.keyCode) {
var t = this.state.keyValue,
n = t.indexOf(e.target.dataset.raw);
t.splice(n, 1), s.findDOMNode(e.target.parentNode).querySelector("input").focus(), this.setState({
keyValue: t
}, this.save)
}
},
onTextFocus: function(e) {
this.setState({
active: !0,
focused: !0
})
},
onTextBlur: function(e) {
e.preventDefault(), e.stopPropagation(), this.setState({
active: !1,
focused: !1,
duplicateCombo: "",
singleKeyWarning: !1
}), this.save()
},
onButtonFocus: function(e) {
this.setState({
active: !0
})
},
onButtonBlur: function(e) {
e.preventDefault(), e.stopPropagation(), this.setState({
active: !1,
duplicateCombo: "",
singleKeyWarning: !1
}), this.save()
},
onComboFocus: function(e) {
this.setState({
selectedCombo: e.target.dataset.raw,
focused: !0,
active: !0
}), document.addEventListener("keyup", this.keyUpListener)
},
onComboBlur: function(e) {
this.setState({
selectedCombo: "",
focused: !1,
active: !1
}), document.removeEventListener("keyup", this.keyUpListener)
},
renderCombos: function() {
var e = this;
if (this.props.command.shortcut) return this.props.command.shortcut.map(function(t, n) {
return [r.createElement("button", {
key: n,
className: "multiinput-item\n " + (u.isSingleKeyShortcut(t) ? "single" : ""),
"data-raw": t,
onFocus: e.onComboFocus,
onBlur: e.onComboBlur,
onKeyDown: e.navigateWithArrowKeys,
__source: {
fileName: a,
lineNumber: 214
}
}, c(t))]
})
},
render: function() {
return r.createElement("div", {
className: A({
controls: !0,
active: this.state.active,
focused: this.state.focused
}),
__source: {
fileName: a,
lineNumber: 232
}
}, r.createElement("div", {
className: "multiinput",
__source: {
fileName: a,
lineNumber: 236
}
}, this.renderCombos(), r.createElement("div", {
className: "multiinput-group",
__source: {
fileName: a,
lineNumber: 238
}
}, r.createElement("input", {
type: "text",
ref: "comboInput",
id: this.props.id,
value: "",
className: "keyShortcutStop",
onChange: this.onChange,
onKeyPress: this.handleKeyEvent,
onKeyDown: this.handleKeyEvent,
onFocus: this.onTextFocus,
onBlur: this.onTextBlur,
__source: {
fileName: a,
lineNumber: 239
}
}))), r.createElement("input", {
type: "button",
className: "circular restorekey",
title: d("Restore default shortcut"),
onClick: this.restoreDefault,
onFocus: this.onButtonFocus,
onBlur: this.onButtonBlur,
__source: {
fileName: a,
lineNumber: 251
}
}), r.createElement("input", {
type: "button",
className: "circular clearkey",
title: d("Clear shortcut"),
onClick: this.clearCombo,
onFocus: this.onButtonFocus,
onBlur: this.onButtonBlur,
__source: {
fileName: a,
lineNumber: 257
}
}), this.state.duplicateCombo && r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 264
}
}, d("Shortcut $1 is already assigned", [this.state.duplicateCombo.toUpperCase()])), this.state.singleKeyWarning && r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 270
}
}, d("Single Key Shortcuts are currently disabled")))
}
});
e.exports = h
}, function(e, t, n) {
// =========================
// Function_368
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/keyboardShortcuts/shortcutKeys.jsx",
r = n(1),
s = n(367),
o = n(13),
l = n(94),
c = n(52),
u = n(137),
A = n(34),
d = n(12),
h = n(656),
m = n(665),
p = n(664),
f = n(2),
g = "CATEGORY_COMMAND_APPLICATION",
_ = r.createClass({
displayName: "ShortcutKeys",
mixins: [o],
vivaldiSettingsKeys: ["DISABLE_KEYBOARD_SHORTCUTS", "DISABLE_SINGLE_KEY_SHORTCUTS"],
getInitialState: function() {
return {
commandArray: c.getAllCommands(),
openCategories: [g],
confirmation: !1
}
},
_onStoreChange: function() {
this.setState({
commandArray: c.getAllCommands()
})
},
componentWillMount: function() {
c.addChangeListener(this._onStoreChange)
},
componentWillUnmount: function() {
c.removeChangeListener(this._onStoreChange)
},
switchCategory: function(e) {
var t = this.state.openCategories;
t.indexOf(e) > -1 ? t.splice(t.indexOf(e), 1) : t.push(e), this.setState({
openCategories: t
})
},
confirmRestoreKeys: function() {
this.setState({
confirmation: !0
})
},
restoreKeys: function() {
l.restoreCommandShortcutKeys(), this.setState({
confirmation: !1
})
},
onCancel: function() {
this.setState({
confirmation: !1
})
},
keyDownModal: function(e) {
"Escape" === e.nativeEvent.code && this.onCancel()
},
renderModal: function() {
return r.createElement(A, {
dialogWidth: 400,
__source: {
fileName: a,
lineNumber: 87
}
}, r.createElement("div", {
className: "dialog-restore-shortcuts",
__source: {
fileName: a,
lineNumber: 88
}
}, r.createElement("header", {
className: "dialog-header",
__source: {
fileName: a,
lineNumber: 89
}
}, r.createElement("h1", {
className: "dialog-title",
__source: {
fileName: a,
lineNumber: 90
}
}, f("Restore Keyboard Shortcuts?"))), r.createElement("div", {
className: "dialog-content",
onKeyDown: this.keyDownModal,
__source: {
fileName: a,
lineNumber: 94
}
}, r.createElement("p", {
__source: {
fileName: a,
lineNumber: 95
}
}, f("All keyboard shortcuts will be restored to default setting."))), r.createElement("footer", {
className: "dialog-footer",
onKeyDown: this.keyDownModal,
__source: {
fileName: a,
lineNumber: 99
}
}, r.createElement("input", {
type: "button",
className: "danger",
onClick: this.restoreKeys,
value: f("Restore"),
__source: {
fileName: a,
lineNumber: 100
}
}), r.createElement("input", {
type: "button",
onClick: this.onCancel,
value: f("Cancel"),
autoFocus: !0,
__source: {
fileName: a,
lineNumber: 105
}
}))))
},
renderCategories: function(e) {
var t = e.reduce(function(e, t) {
return e[t.category] = (e[t.category] || []).concat(t), e
}, {}),
n = Object.keys(t).map(function(e, n) {
return this.renderCategory(e, t[e])
}.bind(this));
return r.createElement("div", {
__source: {
fileName: a,
lineNumber: 128
}
}, n)
},
renderCategory: function(e, t) {
var n = this,
i = h(e),
s = this.props.filter || this.state.openCategories.indexOf(e) > -1 ? "show" : "hide";
return r.createElement("div", {
className: "category " + s,
key: e,
__source: {
fileName: a,
lineNumber: 137
}
}, r.createElement("button", {
onClick: this.switchCategory.bind(this, e),
__source: {
fileName: a,
lineNumber: 138
}
}, i), r.createElement("div", {
className: "list",
__source: {
fileName: a,
lineNumber: 141
}
}, t.map(function(e) {
return n.renderCommandKeys(e)
})))
},
renderCommandKeys: function(e) {
var t = this.state.commandArray.map(function(e) {
return e.shortcut
}).filter(Boolean).reduce(function(e, t) {
return e.concat(t)
});
if ("mac" === this.props.platform && "COMMAND_TOGGLE_MENU_POSITION" === e.name) return null;
if ("read-only" === this.props.view) return r.createElement("div", {
className: "keycombo",
__source: {
fileName: a,
lineNumber: 163
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 164
}
}, e.label), e.shortcut && e.shortcut.map(function(e, t) {
return [r.createElement("input", {
key: t,
type: "button",
disabled: !0,
className: e.length > 1 ? "item" : "item single",
value: u(e),
__source: {
fileName: a,
lineNumber: 166
}
})]
}));
var n = e.name.toLowerCase();
return r.createElement("div", {
className: "keycombo",
key: n,
__source: {
fileName: a,
lineNumber: 179
}
}, r.createElement("label", {
htmlFor: "combo-" + n,
__source: {
fileName: a,
lineNumber: 180
}
}, e.label), r.createElement(s, {
id: "combo-" + n,
onSelect: this.onChange,
onExecute: this.onChange,
key: n,
onSave: this.saveKey,
existingCombos: t,
command: e,
__source: {
fileName: a,
lineNumber: 183
}
}))
},
renderList: function() {
var e = this,
t = void 0;
t = "read-only" === this.props.view ? this.state.commandArray.filter(function(e) {
return Boolean(e.shortcut && e.shortcut.length > 0)
}) : this.state.commandArray.filter(function(e) {
return !Boolean(e.notEditable)
});
var n = this.renderCategories([]);
return d(n, this.props.filter) ? this.renderCategories(t) : (t = t.filter(function(t) {
return t.label.toLowerCase().indexOf(e.props.filter.toLowerCase()) > -1 || (t.shortcut || []).some(function(t) {
return t.toLowerCase().indexOf(e.props.filter.toLowerCase()) > -1
})
}), t.length > 0 ? this.renderCategories(t) : null)
},
render: function() {
var e = Boolean(this.renderList());
return "read-only" === this.props.view ? this.renderList() : e ? r.createElement("div", {
className: this.state.DISABLE_SINGLE_KEY_SHORTCUTS ? "setting-group unlimited singlekeydisabled" : "setting-group unlimited",
__source: {
fileName: a,
lineNumber: 241
}
}, this.state.confirmation && this.renderModal(), r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 247
}
}, f("Keyboard")), r.createElement(p, i({}, this.props, {
__source: {
fileName: a,
lineNumber: 249
}
})), r.createElement("div", {
__source: {
fileName: a,
lineNumber: 251
}
}, r.createElement(m, i({}, this.props, {
__source: {
fileName: a,
lineNumber: 252
}
}))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 255
}
}, r.createElement("div", {
className: "keystrokes",
__source: {
fileName: a,
lineNumber: 256
}
}, this.renderList()), !this.props.filter && r.createElement("input", {
type: "button",
onClick: this.confirmRestoreKeys,
value: f("Restore Default Keys"),
__source: {
fileName: a,
lineNumber: 261
}
}))) : null
}
});
e.exports = _
}, function(e, t, n) {
// =========================
// Function_369
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/search/createSearchEngine.jsx",
r = n(1),
s = i(r),
o = n(3),
l = i(o),
c = n(13),
u = i(c),
A = n(2),
d = i(A),
h = n(46),
m = 13,
p = s.default.createClass({
displayName: "CreateSearchEngine",
mixins: [u.default],
vivaldiSettingsKeys: ["SEARCH_ENGINES", "DEFAULT_SEARCH_ENGINE"],
getInitialState: function() {
return {
name: this.props.name,
url: this.props.url ? this.props.url.replace("{searchTerms}", "%s") : "",
nicknameTaken: !1,
faviconUrl: "",
default: !1
}
},
componentWillMount: function() {
this.getFavicon(this.props.url)
},
newSearchKeyDown: function(e) {
e.which === m && this.create()
},
getDataUri: function(e, t) {
var n = new Image;
n.onload = function() {
var n = document.createElement("canvas");
n.width = this.naturalWidth, n.height = this.naturalHeight, n.getContext("2d").drawImage(this, 0, 0), t(n.toDataURL(e))
}, n.src = e
},
getFavicon: function(e) {
var t = this;
if (e) {
var n = (0, h.ensureURLProtocol)(e.trim()),
i = document.createElement("a");
i.href = n;
var a = i.protocol + "//" + i.host + "/favicon.ico";
this.getDataUri(a, function(e) {
t.setState({
faviconUrl: e
})
})
}
},
updateFavicon: function(e) {
var t = e.target.value.trim();
t && this.getFavicon(t)
},
create: function() {
var e = this.refs.newName.value.trim(),
t = this.refs.newKeyword.value.trim(),
n = this.refs.newURL.value.trim();
e && n && this.state.nicknameTaken === !1 && (this.createSearchEngine({
name: e,
keyword: t,
url: n,
suggestUrl: this.refs.newSuggestUrl.value.trim(),
faviconUrl: this.state.faviconUrl
}), "function" == typeof this.props.onClose && this.props.onClose())
},
nameChange: function(e) {
this.setState({
name: e.target.value
})
},
defaultChange: function(e) {
this.setState({
default: e.target.checked
})
},
urlChange: function(e) {
this.setState({
url: e.target.value
})
},
nicknameChange: function(e) {
var t = !1,
n = e.target.value;
if (n.length > 0)
for (var i = this.state.SEARCH_ENGINES, a = 0; a < i.length; a++)
if (i[a].Keyword === n) {
t = !0;
break
}
this.setState({
nicknameTaken: t
})
},
createSearchEngine: function(e) {
var t = this.state.SEARCH_ENGINES,
n = Math.max.apply(Math, t.map(function(e) {
return e.Id
}));
n = isNaN(n) ? 0 : n + 1, t.push({
Id: Number(n),
Name: e.name,
Keyword: e.keyword,
SuggestUrl: e.suggestUrl,
FaviconUrl: e.faviconUrl,
Url: e.url
}), l.default.set({
SEARCH_ENGINES: t
}), this.state.default && l.default.set({
DEFAULT_SEARCH_ENGINE: n
})
},
render: function() {
var e = void 0;
if (this.state.nicknameTaken === !0)
for (var t = this.refs.newKeyword.value.trim(), n = this.state.SEARCH_ENGINES, i = 0; i < n.length; i++) n[i].Keyword === t && (e = n[i].Name);
return s.default.createElement("div", {
className: this.props.showAsDlg ? null : "setting-section unlimited search-engine-add pad-top",
__source: {
fileName: a,
lineNumber: 155
}
}, this.props.showAsDlg && s.default.createElement("header", {
className: "dialog-header",
__source: {
fileName: a,
lineNumber: 158
}
}, s.default.createElement("h1", {
className: "dialog-title",
__source: {
fileName: a,
lineNumber: 159
}
}, (0, d.default)("Add Search Engine"))), !this.props.showAsDlg && s.default.createElement("div", {
__source: {
fileName: a,
lineNumber: 163
}
}, s.default.createElement("h3", {
__source: {
fileName: a,
lineNumber: 164
}
}, (0, d.default)("Add Search Engine")), s.default.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 165
}
}, (0, d.default)("Substitute search keyword in address with %s"))), s.default.createElement("div", {
className: this.props.showAsDlg ? "dialog-content" : "setting-subgroup",
__source: {
fileName: a,
lineNumber: 170
}
}, s.default.createElement("div", {
className: this.props.showAsDlg ? "fieldset" : "setting-flexgroup",
__source: {
fileName: a,
lineNumber: 172
}
}, s.default.createElement("input", {
className: "searchengine_url setting-single-flex",
type: "text",
ref: "newURL",
onKeyDown: this.newSearchKeyDown,
placeholder: (0, d.default)("URL"),
value: this.state.url,
onChange: this.urlChange,
onBlur: this.updateFavicon,
__source: {
fileName: a,
lineNumber: 174
}
})), s.default.createElement("div", {
className: this.props.showAsDlg ? "fieldset" : "setting-flexgroup",
__source: {
fileName: a,
lineNumber: 184
}
}, s.default.createElement("input", {
className: "searchengine_url setting-single-flex",
type: "text",
ref: "newSuggestUrl",
onKeyDown: this.newSearchKeyDown,
placeholder: (0, d.default)("Suggest URL"),
value: this.state.suggestURL,
onChange: this.suggestURLChange,
__source: {
fileName: a,
lineNumber: 186
}
})), s.default.createElement("div", {
className: this.props.showAsDlg ? "fieldset" : "setting-flexgroup",
__source: {
fileName: a,
lineNumber: 195
}
}, s.default.createElement("input", {
className: "setting-single-flex",
type: "text",
ref: "newName",
onKeyDown: this.newSearchKeyDown,
value: this.state.name,
placeholder: (0, d.default)("Description"),
onChange: this.nameChange,
autoFocus: this.props.showAsDlg,
__source: {
fileName: a,
lineNumber: 197
}
}), s.default.createElement("input", {
className: "searchengine_keyword setting-single-noflex",
type: "text",
ref: "newKeyword",
placeholder: (0, d.default)("Nickname"),
onChange: this.nicknameChange,
onKeyDown: this.newSearchKeyDown,
__source: {
fileName: a,
lineNumber: 206
}
})), s.default.createElement("div", {
className: this.props.showAsDlg ? "fieldset" : "setting-single pad-top",
__source: {
fileName: a,
lineNumber: 213
}
}, s.default.createElement("label", {
__source: {
fileName: a,
lineNumber: 215
}
}, s.default.createElement("input", {
type: "checkbox",
checked: this.state.default,
onChange: this.defaultChange,
__source: {
fileName: a,
lineNumber: 216
}
}), s.default.createElement("span", {
__source: {
fileName: a,
lineNumber: 219
}
}, (0, d.default)("searchengine", "Set as Default")))), this.state.nicknameTaken && s.default.createElement("p", {
__source: {
fileName: a,
lineNumber: 224
}
}, (0, d.default)("Nickname in use by $1", [e]))), s.default.createElement("footer", {
className: this.props.showAsDlg ? "dialog-footer" : "setting-single",
__source: {
fileName: a,
lineNumber: 230
}
}, s.default.createElement("input", {
type: "button",
className: this.props.showAsDlg ? "primary" : "setting-single-noflex primary",
onClick: this.create,
disabled: this.state.nicknameTaken,
value: (0, d.default)("Add"),
__source: {
fileName: a,
lineNumber: 232
}
}), s.default.createElement("input", {
type: "button",
className: this.props.showAsDlg ? null : "setting-single-noflex",
onClick: this.props.onClose,
value: (0, d.default)("Cancel"),
__source: {
fileName: a,
lineNumber: 239
}
})))
}
});
e.exports = p
}, function(e, t, n) {
// =========================
// Function_370
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/settings.jsx",
a = n(1),
r = n(11),
s = n(652),
o = n(678),
l = n(654),
c = n(679),
u = n(655),
A = n(366),
d = n(658),
h = n(659),
m = n(660),
p = n(661),
f = n(133),
g = n(662),
_ = n(666),
v = (n(66), n(66), n(681)),
b = n(675),
N = n(682),
E = n(15),
S = n(683),
T = n(667),
y = n(663),
C = n(684),
I = n(651),
O = n(671),
w = n(673),
D = n(368),
k = n(676),
M = n(689),
L = n(699),
P = n(698),
R = n(703),
x = n(707),
B = n(2),
U = n(4),
F = n(59),
H = n(159),
V = n(20).urls,
W = n(7),
G = W.intersection,
K = "startup",
j = ["A", "LI", "INPUT", "SELECT", "OPTION", "BUTTON", "TEXTAREA"],
z = a.createClass({
displayName: "Settings",
mixins: [n(365)],
categoryMap: {
"": ["startup"],
startup: ["startup"],
appearance: ["appearance"],
themes: ["themes"],
"start-page": ["start-page"],
tabs: ["tab"],
panel: ["panel"],
addressbar: ["addressbar"],
bookmarks: ["bookmarks"],
qc: ["qc"],
keyboard: ["keyboard"],
mouse: ["mouse"],
search: ["search"],
privacy: ["privacy", "cookies"],
downloads: ["downloads"],
webpages: ["webpages"],
network: ["network"],
mail: ["mail"],
all: []
},
svgCategoryMap: {
startup: n(1004),
appearance: n(992),
themes: n(1006),
"start-page": n(1003),
tabs: n(1005),
panel: n(999),
addressbar: n(990),
bookmarks: n(993),
qc: n(1001),
keyboard: n(995),
mouse: n(997),
search: n(1002),
privacy: n(1e3),
downloads: n(994),
webpages: n(1007),
network: n(998),
mail: n(996),
all: n(991)
},
getInitialState: function() {
return {
filterSetting: "",
categoryTitle: K,
filterCategory: this.categoryMap[K],
restartDialogDiv: null,
cookieManagerDiv: null,
currentOS: F()
}
},
componentDidMount: function() {
window.isPopup && window.isPopup() && (document.title = this.getWindowTitle()), this.refs.filter.focus()
},
componentWillUnmount: function() {
U.runtime.sendMessage({
setLastSettingsWindowId: -1
})
},
componentWillReceiveProps: function(e) {
if (e.page && e.page.get("url")) {
var t = this._parseUrl(e.page.get("url"), "query"),
n = t ? "all" : this._parseUrl(e.page.get("url"), "path") || K,
i = this.categoryMap[n] ? this.categoryMap[n] : [],
a = n;
this.state.filterSetting || this.setState({
categoryTitle: a,
filterCategory: i
})
}
},
componentDidUpdate: function(e, t) {
window.isPopup && window.isPopup() && this.state.categoryTitle && t.categoryTitle !== this.state.categoryTitle && (document.title = this.getWindowTitle())
},
getWindowTitle: function() {
return B("Vivaldi Settings") + (this.state.categoryTitle && ": " + V.categoryTitleMap[this.state.categoryTitle])
},
_selectedCategoryContains: function(e) {
if (this.state.filterCategory) return 0 === this.state.filterCategory.length || G(this.state.filterCategory, e).length > 0
},
onCategoryClick: function(e) {
this.setState({
filterSetting: ""
}), window.isPopup() ? (this.setState({
categoryTitle: e,
filterCategory: this.categoryMap[e] || []
}), this.refs.content.scrollTop = 0) : E.openURL(V.internalUrl("settings", e), {
inCurrent: !0
})
},
showCookieManager: function() {
this.setState({
cookieManagerDiv: r.findDOMNode(this.refs.settings)
})
},
onSettingsFilter: function(e) {
var t = e.target.value;
this.setState({
filterCategory: [],
categoryTitle: "all",
filterSetting: t
})
},
showRestartDialog: function() {
this.setState({
restartDialogDiv: this.refs.settings
})
},
closeCookieManager: function() {
this.setState({
cookieManagerDiv: null
})
},
closeDialog: function() {
this.setState({
restartDialogDiv: null
})
},
onContextMenu: function(e) {
j.indexOf(e.target.nodeName) === -1 && e.preventDefault()
},
focusContent: function(e) {
2 !== e.button && j.indexOf(e.target.nodeName) === -1 && this.refs.content.focus()
},
_parseUrl: function(e, t) {
var n = e.split("?"),
i = n && n.length > 1 ? H.parse(n[1])[t] : null;
return i
},
renderButtons: function() {
var e = this;
return Object.keys(this.categoryMap).map(function(t) {
return "" === t || "network" === t && "linux" === e.state.currentOS || "mail" === t ? null : a.createElement("button", {
key: "id-" + t.toLowerCase(),
onClick: e.onCategoryClick.bind(e, t),
className: e.state.categoryTitle === t ? t + " on" : t + " off",
__source: {
fileName: i,
lineNumber: 250
}
}, a.createElement("span", {
className: "category-icon",
dangerouslySetInnerHTML: {
__html: e.svgCategoryMap[t]
},
__source: {
fileName: i,
lineNumber: 254
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 257
}
}, V.categoryTitleMap[t]))
})
},
render: function() {
var e = this.state.filterSetting ? this.state.filterSetting.toLowerCase() : null;
return a.createElement(f, {
ref: "settings",
focusName: "focus_settings",
className: "vivaldi-settings",
onContextMenu: this.onContextMenu,
__source: {
fileName: i,
lineNumber: 269
}
}, a.createElement("header", {
className: "settings-header",
__source: {
fileName: i,
lineNumber: 274
}
}, a.createElement("h1", {
__source: {
fileName: i,
lineNumber: 275
}
}, this.getWindowTitle())), a.createElement("nav", {
ref: "categories",
className: "settings-navigation",
__source: {
fileName: i,
lineNumber: 277
}
}, a.createElement("header", {
className: "settings-navigation-header",
__source: {
fileName: i,
lineNumber: 278
}
}, a.createElement("input", {
className: "settings-search",
ref: "filter",
value: this.state.filterSetting,
type: "search",
placeholder: B("Search..."),
onChange: this.onSettingsFilter,
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 279
}
})), a.createElement("section", {
__source: {
fileName: i,
lineNumber: 287
}
}, this.renderButtons())), this.state.categoryTitle.length > 0 && a.createElement("div", {
className: "settings-content",
ref: "content",
tabIndex: "0",
onClick: this.focusContent,
__source: {
fileName: i,
lineNumber: 294
}
}, this._selectedCategoryContains(["startup"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 300
}
}, a.createElement(M, {
filter: e,
__source: {
fileName: i,
lineNumber: 301
}
})), this._selectedCategoryContains(["startup"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 305
}
}, a.createElement(_, {
filter: e,
__source: {
fileName: i,
lineNumber: 306
}
})), this._selectedCategoryContains(["appearance"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 310
}
}, a.createElement(o, {
filter: e,
platform: this.state.currentOS,
__source: {
fileName: i,
lineNumber: 311
}
})), this._selectedCategoryContains(["themes"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 316
}
}, a.createElement(R, {
filter: e,
platform: this.state.currentOS,
__source: {
fileName: i,
lineNumber: 317
}
})), this._selectedCategoryContains(["biscuit"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 322
}
}, a.createElement(l, {
filter: e,
__source: {
fileName: i,
lineNumber: 323
}
})), this._selectedCategoryContains(["appearance"]) && "mac" !== this.state.currentOS && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 328
}
}, a.createElement(v, {
filter: e,
__source: {
fileName: i,
lineNumber: 329
}
})), this._selectedCategoryContains(["addressbar"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 333
}
}, a.createElement(s, {
filter: e,
__source: {
fileName: i,
lineNumber: 334
}
})), this._selectedCategoryContains(["start-page"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 338
}
}, a.createElement(k, {
filter: e,
__source: {
fileName: i,
lineNumber: 339
}
})), this._selectedCategoryContains(["tab"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 343
}
}, a.createElement(P, {
filter: e,
platform: this.state.currentOS,
__source: {
fileName: i,
lineNumber: 344
}
})), this._selectedCategoryContains(["panel"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 349
}
}, a.createElement(S, {
filter: e,
__source: {
fileName: i,
lineNumber: 350
}
})), this._selectedCategoryContains(["bookmarks"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 354
}
}, a.createElement(u, {
filter: e,
__source: {
fileName: i,
lineNumber: 355
}
}), a.createElement(c, {
filter: e,
__source: {
fileName: i,
lineNumber: 356
}
})), this._selectedCategoryContains(["qc"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 360
}
}, a.createElement(C, {
filter: e,
__source: {
fileName: i,
lineNumber: 361
}
})), this._selectedCategoryContains(["keyboard"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 365
}
}, a.createElement(D, {
filter: e,
platform: this.state.currentOS,
view: "editable",
__source: {
fileName: i,
lineNumber: 366
}
})), this._selectedCategoryContains(["mouse"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 372
}
}, a.createElement(b, {
filter: e,
categoryTitle: this.state.categoryTitle,
platform: this.state.currentOS,
__source: {
fileName: i,
lineNumber: 373
}
})), this._selectedCategoryContains(["search"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 379
}
}, a.createElement(w, {
filter: e,
showAsDlg: !1,
__source: {
fileName: i,
lineNumber: 380
}
})), this._selectedCategoryContains(["privacy"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 385
}
}, a.createElement(T, {
filter: e,
platform: this.state.currentOS,
__source: {
fileName: i,
lineNumber: 386
}
})), this._selectedCategoryContains(["privacy"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 392
}
}, a.createElement(y, {
filter: e,
platform: this.state.currentOS,
__source: {
fileName: i,
lineNumber: 393
}
})), this._selectedCategoryContains(["privacy"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 399
}
}, a.createElement(O, {
filter: e,
__source: {
fileName: i,
lineNumber: 400
}
})), this._selectedCategoryContains(["cookies"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 404
}
}, a.createElement(h, {
showCookieManager: this.showCookieManager,
filter: e,
__source: {
fileName: i,
lineNumber: 405
}
})), this._selectedCategoryContains(["cookies"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 410
}
}, a.createElement(A, {
filter: e,
__source: {
fileName: i,
lineNumber: 411
}
})), this._selectedCategoryContains(["downloads"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 415
}
}, a.createElement(p, {
filter: e,
platform: this.state.currentOS,
__source: {
fileName: i,
lineNumber: 416
}
})), this._selectedCategoryContains(["webpages"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 421
}
}, a.createElement(x, {
filter: e,
__source: {
fileName: i,
lineNumber: 422
}
})), this._selectedCategoryContains(["webpages"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 426
}
}, a.createElement(m, {
filter: e,
__source: {
fileName: i,
lineNumber: 427
}
})), this._selectedCategoryContains(["webpages"]) && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 431
}
}, a.createElement(g, {
filter: e,
__source: {
fileName: i,
lineNumber: 432
}
})), this._selectedCategoryContains(["sync"]) && !1 && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 438
}
}, a.createElement(L, {
filter: e,
__source: {
fileName: i,
lineNumber: 439
}
})), this._selectedCategoryContains(["network"]) && "linux" !== this.state.currentOS && a.createElement("section", {
className: "setting-section",
__source: {
fileName: i,
lineNumber: 444
}
}, a.createElement(N, {
filter: e,
__source: {
fileName: i,
lineNumber: 445
}
})), null, this.state.restartDialogDiv && a.createElement(I, {
parentDiv: this.state.restartDialogDiv,
onClose: this.closeDialog,
__source: {
fileName: i,
lineNumber: 461
}
}), this.state.cookieManagerDiv && a.createElement(d, {
parentDiv: this.state.cookieManagerDiv,
onCloseBM: this.closeCookieManager,
__source: {
fileName: i,
lineNumber: 466
}
})))
}
});
e.exports = z
}, function(e, t, n) {
// =========================
// Function_371
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/setVivaldiDefaultSetting.jsx",
a = n(1),
r = n(10),
s = n(3),
o = n(2),
l = n(12),
c = a.createClass({
displayName: "VivaldiDefaultBrowser",
getInitialState: function() {
return {
isVivaldiDefault: !0,
checkIfVivaldiIsDefaultBrowserStartup: !1
}
},
componentWillMount: function() {
r.importData.isVivaldiDefaultBrowser(function(e) {
this.setState({
isVivaldiDefault: !(!e || !e.toString) && "true" === e.toString()
})
}.bind(this)), s.get("CHECK_DEFAULT_BROWSER_STARTUP", function(e) {
this.setState({
checkIfVivaldiIsDefaultBrowserStartup: e
})
}.bind(this))
},
setVivaldiDefault: function() {
r.importData.setVivaldiAsDefaultBrowser(function(e) {
this.setState({
isVivaldiDefault: !(!e || !e.toString) && "true" === e.toString()
})
}.bind(this)), this.props.onClose && this.props.onClose()
},
checkChange: function() {
s.set({
CHECK_DEFAULT_BROWSER_STARTUP: !this.state.checkIfVivaldiIsDefaultBrowserStartup
}), this.setState({
checkIfVivaldiIsDefaultBrowserStartup: !this.state.checkIfVivaldiIsDefaultBrowserStartup
})
},
onClose: function() {
this.props.onClose && this.props.onClose()
},
render: function() {
var e = a.createElement("div", {
className: "setting-group",
__source: {
fileName: i,
lineNumber: 60
}
}, a.createElement("h3", {
__source: {
fileName: i,
lineNumber: 61
}
}, o("Default Browser")), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 63
}
}, this.state.isVivaldiDefault ? a.createElement("p", {
__source: {
fileName: i,
lineNumber: 76
}
}, o("Vivaldi is set as your default browser.")) : a.createElement("div", {
__source: {
fileName: i,
lineNumber: 65
}
}, a.createElement("p", {
__source: {
fileName: i,
lineNumber: 66
}
}, o("Vivaldi isn’t your default browser.")), a.createElement("input", {
type: "button",
onClick: this.setVivaldiDefault,
value: o("browser", "Set as Default"),
__source: {
fileName: i,
lineNumber: 67
}
}), this.props.showNotNow && a.createElement("input", {
type: "button",
onClick: this.onClose,
value: o("Not Now"),
__source: {
fileName: i,
lineNumber: 71
}
}))), a.createElement("div", {
className: "setting-single pad-top",
__source: {
fileName: i,
lineNumber: 80
}
}, a.createElement("label", {
title: o("Check if Vivaldi is your default browser upon every startup"),
__source: {
fileName: i,
lineNumber: 81
}
}, a.createElement("input", {
type: "checkbox",
checked: this.state.checkIfVivaldiIsDefaultBrowserStartup,
onChange: this.checkChange,
__source: {
fileName: i,
lineNumber: 83
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 86
}
}, o("Check on Startup")))));
return l(e, this.props.filter)
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_372
// =========================
"use strict";
function i(e, t) {
var n = {};
for (var i in e) t.indexOf(i) >= 0 || Object.prototype.hasOwnProperty.call(e, i) && (n[i] = e[i]);
return n
}
var a = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
r = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/themes/ThemePreview.jsx",
s = n(1),
o = n(5),
l = n(235),
c = n(25),
u = n(7),
A = u.isEqual,
d = u.omit,
h = ["TABCOLOR_BEHIND_TABS", "THEME_CURRENT"],
m = s.createClass({
displayName: "ThemePreview",
propTypes: {
themeObject: s.PropTypes.object
},
componentDidMount: function() {
this.updateStyle()
},
componentDidUpdate: function(e, t) {
A(e.theme, this.props.theme) || this.updateStyle()
},
updateStyle: function() {
var e = this;
Object.keys(this.props.theme).forEach(function(t) {
var n = "--" + t,
i = e.props.theme[t];
e.refs.themePreview.style.removeProperty(n), e.refs.themePreview.style.setProperty(n, i)
})
},
render: function() {
var e = this.props,
t = e.themeObject,
n = e.vivaldiSettings,
l = i(e, ["themeObject", "vivaldiSettings"]),
c = n.THEME_CURRENT === t.name,
u = t.settings.accentOnWindow,
A = u ? "var(--colorAccentBg)" : "var(--colorBg)",
h = u ? "var(--colorBg)" : "var(--colorAccentBg)",
m = u ? "var(--colorAccentBgFaded)" : "var(--colorBgLight)",
p = o({
selectbox: !0,
"selectbox-selected": c
});
return s.createElement("button", a({
className: p
}, d(l, ["theme", "accentBg", "highlightBg", "themeBg"]), {
__source: {
fileName: r,
lineNumber: 51
}
}), s.createElement("div", {
className: "selectbox-image",
__source: {
fileName: r,
lineNumber: 55
}
}, s.createElement("svg", {
xmlns: "http://www.w3.org/2000/svg",
className: "theme-preview",
ref: "themePreview",
width: "96",
height: "76",
viewBox: "0 0 96 76",
__source: {
fileName: r,
lineNumber: 56
}
}, s.createElement("rect", {
fill: "var(--colorBgDarker)",
x: "0",
y: "16",
width: "96",
height: "57",
__source: {
fileName: r,
lineNumber: 62
}
}), s.createElement("rect", {
fill: A,
width: "96",
height: "10",
__source: {
fileName: r,
lineNumber: 63
}
}), s.createElement("path", {
fill: h,
d: "M0 10h96v6H0v-6zm0-6h30v6H0V4z",
__source: {
fileName: r,
lineNumber: 64
}
}), s.createElement("rect", {
fill: "var(--colorBgDark)",
y: "16",
width: "6",
height: "57",
__source: {
fileName: r,
lineNumber: 65
}
}), s.createElement("rect", {
fill: "var(--colorBgLightIntense)",
x: "6",
y: "16",
width: "18",
height: "57",
__source: {
fileName: r,
lineNumber: 66
}
}), s.createElement("rect", {
fill: m,
x: "31",
y: "4",
width: "30",
height: "6",
__source: {
fileName: r,
lineNumber: 67
}
}), s.createElement("rect", {
fill: "var(--colorBg)",
y: "73",
width: "96",
height: "3",
__source: {
fileName: r,
lineNumber: 68
}
}), s.createElement("rect", {
fill: "var(--colorFg)",
x: "8",
y: "69",
width: "6",
height: "2",
__source: {
fileName: r,
lineNumber: 69
}
}), s.createElement("rect", {
fill: "var(--colorHighlightBg)",
x: "16",
y: "69",
width: "6",
height: "2",
__source: {
fileName: r,
lineNumber: 70
}
})), s.createElement("svg", {
xmlns: "http://www.w3.org/2000/svg",
className: "selectbox-checkmark",
viewBox: "0 0 16 16",
__source: {
fileName: r,
lineNumber: 72
}
}, s.createElement("path", {
d: "M5.3 13.3L1.5 9.5 3 8l2.3 2.5L13 2.7 14.6 4l-8 8z",
__source: {
fileName: r,
lineNumber: 75
}
}))), s.createElement("div", {
className: "selectbox-title",
__source: {
fileName: r,
lineNumber: 79
}
}, t.name))
}
});
e.exports = l(c(m, h))
}, function(e, t, n) {
// =========================
// Function_373
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function r(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function s(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
var o = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/speeddial/SpeedDialTitle.jsx",
l = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
c = n(1),
u = i(c),
A = n(11),
d = i(A),
h = n(4),
m = i(h),
p = n(26),
f = i(p),
g = n(5),
_ = i(g),
v = function(e) {
function t(e, n) {
a(this, t);
var i = r(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e, n));
return i._documentClickHandler = i._documentClickHandler.bind(i), i.onContextMenu = i.onContextMenu.bind(i), i.handleBlur = i.handleBlur.bind(i), i.handleChange = i.handleChange.bind(i), i.handleClick = i.handleClick.bind(i), i.handleDoubleClick = i.handleDoubleClick.bind(i), i.handleKeyDown = i.handleKeyDown.bind(i), i.state = {
isEditing: !1,
title: e.bookmark.title
}, i
}
return s(t, e), l(t, [{
key: "componentDidMount",
value: function() {
this.props.needsInitialEdit && this.enableEditing()
}
}, {
key: "componentDidUpdate",
value: function(e, t) {
t.isEditing === !1 && this.state.isEditing === !0 && this.refs.input && this.refs.input.value && (this.refs.input.setSelectionRange(0, this.refs.input.value.length), this.refs.input.focus())
}
}, {
key: "_documentClickHandler",
value: function(e) {
d.default.findDOMNode(this).contains(e.target) || this.refs.input.blur()
}
}, {
key: "enableEditing",
value: function() {
this.state.isEditing === !1 && (document.addEventListener("click", this._documentClickHandler), this.setState({
isEditing: !0,
fallbackTitle: this.props.bookmark.title,
title: this.props.bookmark.title
}))
}
}, {
key: "handleClick",
value: function(e) {
this.props.onSelect && (this.props.onSelect(), d.default.findDOMNode(this).focus()), "click" === this.props.howToEdit && this.enableEditing()
}
}, {
key: "handleDoubleClick",
value: function(e) {
"doubleClick" === this.props.howToEdit && this.enableEditing()
}
}, {
key: "handleBlur",
value: function(e) {
this.state.title || this.cancelEdit(), this.setState({
isEditing: !1
}), this.props.needsInitialEdit && "function" == typeof this.props.setSpeedDialAwaitingEdit && this.props.setSpeedDialAwaitingEdit(null), document.removeEventListener("click", this._documentClickHandler)
}
}, {
key: "handleChange",
value: function(e) {
var t = e.target.value;
this.setState({
title: t
})
}
}, {
key: "handleKeyDown",
value: function(e) {
var t = e.keyCode;
if (13 === t) this.saveTitle(this.state.title), this.refs.input.blur();
else {
if (27 !== t) return;
this.cancelEdit(), this.refs.input.blur()
}
e.preventDefault()
}
}, {
key: "removeSpeedDial",
value: function() {
m.default.bookmarks.update(this.props.bookmark.id, {
speeddial: !1
}, function() {
m.default.runtime.lastError && console.warn("The computer tried to update a speeddial, but The Bookmark API said no: ", m.default.runtime.lastError.message)
})
}
}, {
key: "deleteBookmark",
value: function() {
m.default.bookmarks.remove(this.props.bookmark.id, function() {
m.default.runtime.lastError && console.warn("The computer tried to update a bookmark, but The Bookmark API said no: ", m.default.runtime.lastError.message)
})
}
}, {
key: "cancelEdit",
value: function() {
this.props.needsInitialEdit ? this.deleteBookmark() : (this.setState({
title: this.state.fallbackTitle
}), this.saveTitle(this.state.fallbackTitle))
}
}, {
key: "saveTitle",
value: function(e) {
m.default.bookmarks.update(this.props.bookmark.id, {
title: e
}, function() {
m.default.runtime.lastError && console.warn("The computer tried to update a bookmark, but The Bookmark API said no: ", m.default.runtime.lastError.message)
})
}
}, {
key: "onContextMenu",
value: function(e) {
this.state.isEditing ? e.stopPropagation() : (0, f.default)(this.props.getContextMenuItems(this.props.bookmark))(e)
}
}, {
key: "render",
value: function() {
var e = (0, _.default)({
"editable-title-container": !0,
edit: this.state.isEditing
});
return u.default.createElement("span", {
className: e,
onContextMenu: this.onContextMenu,
__source: {
fileName: o,
lineNumber: 183
}
}, u.default.createElement("button", {
className: this.props.className,
tabIndex: this.props.keyAccess,
onClick: this.handleClick,
title: this.props.bookmark.title,
onDoubleClick: this.handleDoubleClick,
__source: {
fileName: o,
lineNumber: 185
}
}, this.props.bookmark.title), this.state.isEditing && u.default.createElement("input", {
type: "text",
ref: "input",
value: this.state.title,
onBlur: this.handleBlur,
onKeyDown: this.handleKeyDown,
onChange: this.handleChange,
autoFocus: !0,
__source: {
fileName: o,
lineNumber: 193
}
}))
}
}]), t
}(u.default.Component);
v.defaultProps = {
howToEdit: "click"
}, e.exports = v
}, function(e, t, n) {
// =========================
// Function_374
// =========================
"use strict";
var i = n(2),
a = Object.freeze({
SpeedDial: i("title", "Start Page"),
Bookmarks: i("Bookmarks"),
History: i("ChromeHistory"),
HistoryNew: i("History")
});
e.exports = a
}, function(e, t, n) {
// =========================
// Function_375
// =========================
(function(t) {
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/tabs/AudioIcon.jsx",
a = n(1),
r = n(180),
s = n(2),
o = a.createClass({
displayName: "AudioIcon",
propTypes: {
animated: a.PropTypes.bool,
color: a.PropTypes.string.isRequired,
mode: a.PropTypes.oneOf(["idle", "playing", "muting"]).isRequired
},
getDefaultProps: function() {
return {
color: "#ffffff",
mode: "idle"
}
},
componentDidMount: function() {
this._isMounted = !0, this.renderIcon(this.props.mode, this.props.color)
},
componentWillReceiveProps: function(e, n) {
var i = this;
this.props !== e && this.isMounted() && t.nextTick(function() {
i.renderIcon(e.mode, e.color)
})
},
componentWillUnmount: function() {
this._isMounted = !1, cancelAnimationFrame(this.rafId)
},
renderIcon: function(e, t) {
function n(e, t) {
var n = t - e,
i = e + o * n;
return i
}
var i = this.refs.canvas;
if (i) {
var a = i.getContext("2d"),
s = r(t).rgb,
o = 0,
l = function() {
a.clearRect(0, 0, i.width, i.height), a.beginPath(), a.moveTo(4, 12), a.lineTo(10, 12), a.lineTo(18, 4), a.lineTo(18, 28), a.lineTo(10, 20), a.lineTo(4, 20), a.closePath(), a.lineWidth = 0, a.fillStyle = t, a.fill()
},
c = function() {
a.clearRect(0, 0, i.width, i.height), a.beginPath(), a.moveTo(2, 27), a.lineTo(5, 30), a.lineTo(28, 7), a.lineTo(25, 4), a.closePath(), a.lineWidth = 0, a.fillStyle = t, a.fill(), a.beginPath(), a.moveTo(4, 12), a.lineTo(10, 12), a.lineTo(18, 4), a.lineTo(18, 8), a.lineTo(6, 20), a.lineTo(4, 20), a.closePath(), a.lineWidth = 0, a.fillStyle = t, a.fill(), a.beginPath(), a.moveTo(14, 24), a.lineTo(18, 20), a.lineTo(18, 28), a.closePath(), a.lineWidth = 0, a.fillStyle = t, a.fill()
},
u = window.requestAnimationFrame || window.webkitRequestAnimationFrame,
A = function() {
a.clearRect(0, 0, i.width, i.height), l(), o = o > 1 ? 0 : Math.ceil(100 * (o + .011)) / 100, a.beginPath(), a.moveTo(n(18, 22), n(12, 4)), a.quadraticCurveTo(n(20, 32), 16, n(18, 22), n(20, 28)), a.lineTo(n(20, 24), n(22, 30)), a.quadraticCurveTo(n(24, 34), 16, n(20, 24), n(10, 2)), a.closePath(), a.lineWidth = 0, a.fillStyle = "rgba(" + s.r + "," + s.g + "," + s.b + "," + (o < .7 ? 1 : (1 - o) / .3) + ")", a.fill(), "playing" === this.props.mode && this.props.animated ? this._isMounted && (this.rafId = u(A)) : d(this.props.mode)
}.bind(this),
d = function(e) {
"playing" === e ? this.props.animated ? A() : l() : "muting" === e ? c() : l()
}.bind(this);
d(e)
}
},
render: function() {
var e = "";
return "playing" === this.props.mode ? e = s("Mute tab audio") : "muting" === this.props.mode && (e = s("Unmute tab audio")), a.createElement("canvas", {
className: "audioicon",
ref: "canvas",
width: "32",
height: "32",
title: e,
__source: {
fileName: i,
lineNumber: 180
}
})
}
});
e.exports = o
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_376
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
}), t.isMultiSelectEvent = t.isSingleSelectEvent = void 0;
var a = n(59),
r = i(a);
t.isSingleSelectEvent = function(e, t) {
var n = t.TAB_SELECTION_ENABLED,
i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2],
a = "mac" === (0, r.default)();
return Boolean(n && (!a || i) && (a ? e.metaKey : e.ctrlKey))
}, t.isMultiSelectEvent = function(e, t) {
var n = t.TAB_SELECTION_ENABLED,
i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2],
a = "mac" === (0, r.default)();
return Boolean(n && (!a || i) && e.shiftKey)
}
}, function(e, t, n) {
// =========================
// Function_377
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
var a = function() {
function e(e, t) {
var n = [],
i = !0,
a = !1,
r = void 0;
try {
for (var s, o = e[Symbol.iterator](); !(i = (s = o.next()).done) && (n.push(s.value), !t || n.length !== t); i = !0);
} catch (e) {
a = !0, r = e
} finally {
try {
!i && o.return && o.return()
} finally {
if (a) throw r
}
}
return n
}
return function(t, n) {
if (Array.isArray(t)) return t;
if (Symbol.iterator in Object(t)) return e(t, n);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
}
}(),
r = n(15),
s = i(r),
o = n(17),
l = i(o),
c = n(114),
u = (i(c), n(10)),
A = i(u),
d = n(4),
h = i(d),
m = n(72),
p = function(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
i = function() {
window.addEventListener("mousemove", d), window.addEventListener("mouseup", p)
},
r = function() {
window.removeEventListener("mousemove", d), window.removeEventListener("mouseup", p)
},
o = function t(i, a, r, o, c) {
if ("vivaldi/x-tab-entries" === i.mimeType) {
if (A.default.tabsPrivate.onDragEnd.removeListener(t), h.default.runtime.sendMessage({
action: m.MESSAGE_END_DRAGGING
}), !a && r) {
var u = JSON.parse(i.customData).ids.map(function(e) {
return parseInt(e)
}).map(function(e) {
return l.default.getPages().find(function(t) {
return t.id === e
})
}).filter(Boolean);
u.length ? s.default.detachPage(u, o, c) : console.warn("Dropped Page(s) does not exist:", u.ids)
}
"function" == typeof n.onDragEnd && n.onDragEnd(e)
}
},
c = t.pageX,
u = t.pageY,
d = function(t) {
var i = 5;
(Math.abs(t.pageX - c) > i || Math.abs(t.pageY - u) > i) && ! function() {
r();
var i = n.element || t.target,
s = i.getBoundingClientRect(),
l = n.offsetLeft || 0,
c = n.offsetTop || 0,
u = n.offsetHeight || 0,
d = n.offsetWidth || 0,
p = h.default.app.window.current();
p && A.default.zoom.getVivaldiUIZoom(function(t) {
return A.default.thumbnails.captureUI({
appWindowId: p.id,
posX: Math.round((s.left + l) * t),
posY: Math.round((s.top + c) * t),
width: Math.round((s.width + d) * t),
height: Math.round((s.height + u) * t)
}, function(t) {
h.default.runtime.sendMessage({
action: m.MESSAGE_START_DRAGGING
});
var i = a(e, 1),
r = i[0];
A.default.tabsPrivate.startDrag({
mimeType: "vivaldi/x-tab-entries",
customData: JSON.stringify({
ids: e.map(function(e) {
return e.id
}),
active: (e.find(function(e) {
return e.active
}) || r).id
}),
url: r.url,
title: r.title
}, {
image: t,
cursorX: 10,
cursorY: 10
}, !1), A.default.tabsPrivate.onDragEnd.addListener(o), "function" == typeof n.onDragStart && n.onDragStart(e)
})
})
}()
},
p = function() {
r()
};
i()
};
e.exports = p
}, function(e, t, n) {
// =========================
// Function_378
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/titlebar/titlebar.jsx",
a = n(1),
r = n(52),
s = n(25),
o = n(45),
l = n(50),
c = n(175),
u = n(37),
A = n(17),
d = n(9),
h = n(3),
m = n(2),
p = n(4),
f = n(5),
g = n(26),
_ = n(20),
v = _.urls,
b = ["VIVALDI_MENU_POSITION"];
"MacIntel" === navigator.platform && b.push("vivaldi.apple_aqua_color_variant");
var N = -1,
E = function() {
return {
pages: A.getPages(),
activePage: A.getActivePage()
}
},
S = a.createClass({
displayName: "TitleBar",
mixins: [d],
hasMenuContent: !1,
activeShortcuts: [],
getInitialState: function() {
return Object.assign({
altHover: !1
}, E())
},
componentWillMount: function() {
if (A.addChangeListener(this._onPageStoreChange), "mac" !== this.props.currentOS) {
var e = h.getSync("VIVALDI_MENU_POSITION");
this.hasMenuContent = "vivaldi" === e, this._setupShortcuts(), h.addListener("VIVALDI_MENU_POSITION", this._onMenuPositionChanged), r.addChangeListener(this._onCommandStoreChanged), window.addEventListener("keydown", this.onKeyDown, !0), window.addEventListener("keyup", this.onKeyUp, !0)
}
},
componentWillUnmount: function() {
var e = this;
A.removeChangeListener(this._onPageStoreChange), "mac" !== this.props.currentOS && (h.removeListener("VIVALDI_MENU_POSITION", this._onMenuPositionChanged), r.addChangeListener(this._onCommandStoreChanged), window.removeEventListener("keydown", this.onKeyDown, !0), window.removeEventListener("keyup", this.onKeyUp, !0), this.activeShortcuts.forEach(function(t) {
t.shortcut && u.unbind(t.shortcut, e.showSubMenu)
}))
},
_onPageStoreChange: function() {
this.setState(E())
},
_onCommandStoreChanged: function() {
"mac" !== this.props.currentOS && this._setupShortcuts()
},
_onMenuPositionChanged: function(e, t) {
if (t) {
var n = "vivaldi" === t;
this.hasMenuContent !== n && (this.hasMenuContent = n, this._setupShortcuts())
}
},
_setupShortcuts: function() {
var e = this;
this.activeShortcuts.forEach(function(t) {
t.shortcut && u.unbind(t.shortcut, e.showSubMenu)
}), this.activeShortcuts = [], this.hasMenu() && "mac" !== this.props.currentOS && (this.activeShortcuts = c.getShortcutsForMenuItems(r.getVerticalMenu()), this.activeShortcuts.forEach(function(t) {
t.shortcut && u.bind(t.shortcut, e.showSubMenu)
}))
},
onKeyDown: function(e) {
e.repeat !== !0 && (N === o.KEY_ALT && this.stopMenuDetection(), N = e.keyCode, N === o.KEY_ALT && (window.addEventListener("mousedown", this.stopMenuDetection), window.addEventListener("mouseup", this.stopMenuDetection), window.addEventListener("mousemove", this.stopMenuDetection), window.addEventListener("wheel", this.stopMenuDetection)))
},
onKeyUp: function(e) {
N === o.KEY_ALT && (this.stopMenuDetection(), e.keyCode === o.KEY_ALT && this.hasMenu() && this.showMenu(e))
},
stopMenuDetection: function() {
N = -1, window.removeEventListener("mousedown", this.stopMenuDetection), window.removeEventListener("mouseup", this.stopMenuDetection), window.removeEventListener("mousemove", this.stopMenuDetection), window.removeEventListener("wheel", this.stopMenuDetection)
},
hasMenu: function() {
return this.hasMenuContent && !(window.isPopup && window.isPopup());
},
close: function(e) {
e.stopPropagation(), l.closeWindow()
},
minimize: function() {
this.props.onNoVisualBlur(), p.app.window.current().minimize()
},
maximize: function(e) {
var t = p.app.window.current();
if ("mac" !== this.props.currentOS) t.isMaximized() ? t.restore() : t.maximize();
else {
var n = e.altKey;
!e || 1 !== e.button && n !== !0 || t.isFullscreen() ? t.isFullscreen() ? t.restore() : t.fullscreen() : t.isMaximized() ? t.restore() : t.maximize()
}
},
skipFocusOnSystemButtonMouseDown: function(e) {
var t = document.activeElement;
setTimeout(function() {
t.focus()
}, 1)
},
keyDownListener: function(e) {
e.altKey && this.setState({
altHover: !0
})
},
keyUpListener: function(e) {
"Alt" === e.key && this.setState({
altHover: !1
})
},
handleMouseEnter: function(e) {
e.altKey && this.setState({
altHover: !0
}), document.addEventListener("keydown", this.keyDownListener), document.addEventListener("keyup", this.keyUpListener)
},
handleMouseLeave: function(e) {
this.setState({
altHover: !1
}), document.removeEventListener("keydown", this.keyDownListener), document.removeEventListener("keyup", this.keyUpListener)
},
showMenu: function(e) {
return g(r.getVerticalMenu(this.state.pages), null, "bottom", this.refs.vivaldiButton, null, null, this.activeShortcuts)(e)
},
showSubMenu: function(e) {
this.activeShortcuts.forEach(function(t) {
if (t.shortcut && t.keyCode === e.keyCode) {
var n = r.getVerticalMenu(this.state.pages),
i = n[t.index];
return void g(n, null, "bottom", this.refs.vivaldiButton, null, i, this.activeShortcuts)(e)
}
}.bind(this))
},
render: function() {
var e = v.getDisplayTitle(this.state.activePage) || "Vivaldi",
t = "top" !== this.props.tabPosition ? "tabless" : null,
r = this.props.currentOS,
s = p.app.window.current().isFullscreen(),
o = window.navigator.appVersion.indexOf("Windows NT 10") > 0 ? "win10" : r,
l = void 0,
c = void 0,
u = void 0;
switch (o) {
case "linux":
case "win":
l = n(1032), u = n(1034), c = n(1033);
break;
case "win10":
l = n(1035), u = n(1037), c = n(1036);
break;
case "mac":
l = n(963), u = n(965), c = n(964)
}
var A = 6 === this.props.vivaldiSettings["vivaldi.apple_aqua_color_variant"];
return a.createElement("div", {
ref: "titlebar",
id: "titlebar",
className: t,
__source: {
fileName: i,
lineNumber: 286
}
}, "mac" !== r && this.hasMenu() && a.createElement("button", {
ref: "vivaldiButton",
className: "vivaldi",
onMouseDown: this.showMenu,
title: m("Menu"),
__source: {
fileName: i,
lineNumber: 288
}
}, a.createElement("span", {
className: "application-icon",
dangerouslySetInnerHTML: {
__html: n(1025)
},
__source: {
fileName: i,
lineNumber: 293
}
}), a.createElement("span", {
className: "vivaldi-v",
dangerouslySetInnerHTML: {
__html: n(1023)
},
__source: {
fileName: i,
lineNumber: 296
}
})), a.createElement("div", {
className: f({
"window-buttongroup": !0,
"alt-hover": this.state.altHover && !s,
graphite: A
}),
onMouseEnter: "mac" === r ? this.handleMouseEnter : null,
onMouseLeave: "mac" === r ? this.handleMouseLeave : null,
__source: {
fileName: i,
lineNumber: 302
}
}, a.createElement("button", {
tabIndex: "-1",
className: "window-minimize",
onMouseDown: this.skipFocusOnSystemButtonMouseDown,
onClick: this.minimize,
dangerouslySetInnerHTML: {
__html: u
},
__source: {
fileName: i,
lineNumber: 309
}
}), a.createElement("button", {
tabIndex: "-1",
className: "window-maximize",
onMouseDown: this.skipFocusOnSystemButtonMouseDown,
onClick: this.maximize,
dangerouslySetInnerHTML: {
__html: c
},
__source: {
fileName: i,
lineNumber: 314
}
}), a.createElement("button", {
tabIndex: "-1",
className: "window-close",
onMouseDown: this.skipFocusOnSystemButtonMouseDown,
onClick: this.close,
dangerouslySetInnerHTML: {
__html: l
},
__source: {
fileName: i,
lineNumber: 319
}
})), "top" !== this.props.tabPosition && (this.hasMenu() || "mac" === r) && a.createElement("div", {
id: "pagetitle",
__source: {
fileName: i,
lineNumber: 328
}
}, e))
}
});
e.exports = s(S, b)
}, function(e, t, n) {
// =========================
// Function_379
// =========================
"use strict";
function i(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var a = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
r = n(11),
s = n(7),
o = s.findIndex,
l = ["getDropdown", "getSelectionIndex"];
t.OmniNavigation = function() {
function e(t, n) {
i(this, e), this._inputComponent = t, this._onSave = n
}
return a(e, [{
key: "_save",
value: function() {
"function" == typeof this._onSave && this._onSave()
}
}, {
key: "_hasRequiredMethods",
value: function() {
var e = this;
return l.every(function(t) {
return "function" == typeof e._inputComponent[t]
})
}
}, {
key: "_moveAutocompleteHighlight",
value: function(e, t) {
if (!this._hasRequiredMethods()) throw "Missing some methods: " + l.join(",");
var n = this._inputComponent.getDropdown(),
i = r.findDOMNode(n),
a = this._inputComponent.getSelectionIndex();
if (i) {
var s = null,
c = !1,
u = !1,
A = i.getElementsByClassName("omni-clickable");
if (null == a || a === -1 || null == A[a]) s = e ? 0 : n.getNumberOfSelectableItems() - 1;
else {
var d = A[a],
h = 0 === a || parseInt(i.scrollTop) + 10 > d.offsetTop;
if (t)
if (e) h ? s = o(A, function(e) {
return e.offsetTop + e.offsetHeight > i.offsetHeight
}) : (d.scrollIntoView(!0), s = o(A, function(e) {
return e.offsetTop > i.offsetHeight + i.scrollTop
})), s === -1 && (s += n.getNumberOfSelectableItems());
else if (h) i.scrollTop -= i.offsetHeight;
else {
for (var m = A.length - 1; m > 0 && !(A[m].offsetTop - A[m].offsetHeight < i.scrollTop); m--);
s = m
} else s = a + (e ? 1 : -1), e ? s >= n.getNumberOfSelectableItems() && (s = -1) : (h ? c = !0 : u = !0, s < -1 && (s = n.getNumberOfSelectableItems() - 1))
}
if (null != s) return s !== -1 ? (u || A[s].scrollIntoView(c), this._inputComponent.setAutocompleteHighlight(s, !0)) : this._inputComponent.setAutocompleteHighlight(-1, !0)
}
return !1
}
}, {
key: "up",
value: function() {
return (!this._moveAutocompleteHighlight || !this._moveAutocompleteHighlight(!1)) && void this._save()
}
}, {
key: "down",
value: function() {
return (!this._moveAutocompleteHighlight || !this._moveAutocompleteHighlight(!0)) && void this._save()
}
}, {
key: "pageUp",
value: function() {
return (!this._moveAutocompleteHighlight || !this._moveAutocompleteHighlight(!1, !0)) && void this._save()
}
}, {
key: "pageDown",
value: function() {
return (!this._moveAutocompleteHighlight || !this._moveAutocompleteHighlight(!0, !0)) && void this._save()
}
}]), e
}()
}, function(e, t, n) {
// =========================
// Function_380
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/omnidropdown.jsx",
r = n(302),
s = i(r),
o = n(1),
l = n(11),
c = n(9),
u = n(171),
A = n(2),
d = n(7),
h = n(39),
m = n(403),
p = n(5),
f = o.createClass({
displayName: "OmniDropdown",
mixins: [c, h],
_ignoreMouseMove: !1,
propTypes: {
onDeleteHistoryItem: o.PropTypes.func,
onDeleteTypedHistoryItem: o.PropTypes.func,
onLinkItemClicked: o.PropTypes.func,
suggestEnabled: o.PropTypes.bool
},
getInitialState: function() {
return {
searchEngineKeyword: "",
searchEngineName: ""
}
},
componentWillReceiveProps: function(e) {
this.props.typedSearchEngine === e.typedSearchEngine && this.props.defaultSearchEngine === e.defaultSeachEngine || this.setState({
searchEngineName: this.props.typedSearchEngine ? this.props.typedSearchEngine.Name : this.props.defaultSearchEngine.Name,
searchEngineKeyword: !this.props.typedSearchEngine && this.props.defaultSearchEngine && this.props.defaultSearchEngine.Keyword + " " || ""
})
},
componentDidUpdate: function(e, t) {
e.isOpen === !0 && this.props.isOpen === !1 ? this.disableOnClickOutside() : e.isOpen === !1 && this.props.isOpen === !0 && this.enableOnClickOutside()
},
handleClickOutside: function(e) {
this.props.onClose()
},
onLinkItemClicked: function(e, t) {
this.props.onLinkItemClicked(e, t)
},
onSearchClicked: function() {
this.props.defaultSearchEngine && this.props.defaultSearchEngine.Url && this.props.onSearchClicked(this.props.pattern, this.props.defaultSearchEngine.Url)
},
getNumberOfSelectableItems: function() {
var e = l.findDOMNode(this);
return e ? e.querySelectorAll(".omni-clickable").length : 0
},
getCurrentValue: function(e) {
var t = l.findDOMNode(this);
if (t) {
if ("number" != typeof e) {
var n = t.querySelector(".highlight");
return n && n.dataset.url ? n.dataset.url : this.props.pattern
}
var i = t.querySelectorAll(".omni-clickable");
if (e >= 0 && e < i.length) return i[e].dataset.url
}
return ""
},
onDeleteHistoryItem: function(e, t) {
t.preventDefault(), t.stopPropagation(), this.props.onDeleteHistoryItem && this.props.onDeleteHistoryItem(e.url)
},
onDeleteTypedHistoryItem: function(e, t) {
t.preventDefault(), t.stopPropagation(), this.props.onDeleteTypedHistoryItem && this.props.onDeleteTypedHistoryItem(e.url)
},
deleteCurrentItem: function() {
var e = l.findDOMNode(this).querySelector(".highlight");
if (e) {
var t = e.getElementsByClassName("erase-from-history")[0];
t && "function" == typeof t.click && t.click()
}
},
onMouseOver: function(e) {
if (!this._ignoreMouseMove) {
var t = d.findIndex(document.getElementsByClassName("omni-clickable"), function(t) {
return t === e.target.parentNode
});
t >= 0 && this.props.setAutocompleteHighlight(t, !1)
}
},
onScrolled: function(e) {
var t = this;
this._ignoreMouseMove = !0, setTimeout(function() {
return t._ignoreMouseMove = !1
}, 100)
},
renderFavicon: function(e, t) {
return !e && t.url && this.props.hideIcons !== !0 ? o.createElement("img", {
className: "favicon",
src: "chrome://favicon/" + t.url,
__source: {
fileName: a,
lineNumber: 159
}
}) : e ? this.props.typedSearchEngine && o.createElement("img", {
className: "favicon",
src: this.props.typedSearchEngine.Image,
__source: {
fileName: a,
lineNumber: 162
}
}) || o.createElement("img", {
className: "favicon",
src: this.props.defaultSearchEngine.Image,
__source: {
fileName: a,
lineNumber: 163
}
}) : t.type === u.OMNI_RESULT_FOLDER_NICKNAME ? o.createElement("img", {
className: "favicon",
src: "/resources/folder@2x.png",
__source: {
fileName: a,
lineNumber: 165
}
}) : o.createElement("img", {
className: "favicon hidden",
__source: {
fileName: a,
lineNumber: 168
}
})
},
renderLinkItem: function(e, t) {
var i = e.type === u.OMNI_RESULT_SUGGEST,
r = p({
"omni-clickable": !0,
highlight: this._linkItemCount === this.props.selectionIndex
});
return this._linkItemCount++, o.createElement("div", {
key: e.type + "-" + e.id,
"data-url": e.url,
className: r,
onClick: this.onLinkItemClicked.bind(this, e),
__source: {
fileName: a,
lineNumber: 182
}
}, this.renderFavicon(i, e), e.url && o.createElement("span", {
className: "url",
__source: {
fileName: a,
lineNumber: 191
}
}, m(e.url)), e.type === u.OMNI_RESULT_FOLDER_NICKNAME && o.createElement("span", {
className: "url",
__source: {
fileName: a,
lineNumber: 194
}
}, A("Open all bookmarks in folder") + " (" + (e.urls && e.urls.length || 0) + ")"), t && o.createElement("span", {
className: "nickname",
__source: {
fileName: a,
lineNumber: 198
}
}, e.nickname) || e.title && o.createElement("span", {
className: "title",
__source: {
fileName: a,
lineNumber: 199
}
}, e.title), e.type.startsWith("OMNI_RESULT_HISTORY") && o.createElement("span", {
className: "erase-from-history",
"data-url": e.url,
title: A("Delete history item"),
onClick: (0, s.default)(this.onDeleteHistoryItem, e),
dangerouslySetInnerHTML: {
__html: n(81)
},
__source: {
fileName: a,
lineNumber: 202
}
}), e.type.startsWith("OMNI_RESULT_TYPED_HISTORY") && o.createElement("span", {
className: "erase-from-history",
"data-url": e.url,
title: A("Delete typed history item"),
onClick: (0, s.default)(this.onDeleteTypedHistoryItem, e),
dangerouslySetInnerHTML: {
__html: n(81)
},
__source: {
fileName: a,
lineNumber: 211
}
}))
},
renderTypedHistory: function(e) {
var t = this;
if (!Array.isArray(e) || 0 === e.length) return null;
var n = e[0].type === u.OMNI_RESULT_TYPED_HISTORY && o.createElement("label", {
__source: {
fileName: a,
lineNumber: 228
}
}, A("Typed"));
return o.createElement("section", {
className: "filter-omni-typedhistory ignore-react-onclickoutside",
__source: {
fileName: a,
lineNumber: 231
}
}, n, e.map(function(e) {
return t.renderLinkItem(e)
}))
},
renderBookmarks: function(e) {
var t = this;
return Array.isArray(e) && 0 !== e.length ? o.createElement("section", {
className: "filter-bookmarks ignore-react-onclickoutside",
__source: {
fileName: a,
lineNumber: 244
}
}, o.createElement("label", {
__source: {
fileName: a,
lineNumber: 245
}
}, A("Bookmarks")), e.map(function(e) {
return t.renderLinkItem(e)
})) : null
},
renderHistory: function(e) {
var t = this;
return !Array.isArray(e) || e.length <= 0 ? null : o.createElement("section", {
className: "filter-history ignore-react-onclickoutside",
__source: {
fileName: a,
lineNumber: 257
}
}, o.createElement("label", {
__source: {
fileName: a,
lineNumber: 258
}
}, A("History")), e.map(function(e) {
return t.renderLinkItem(e)
}))
},
renderURLSearch: function() {
if ("string" != typeof this.props.pattern || this.props.pattern.length < 0 || !this.props.defaultSearchEngine || this.props.disableSearch === !0) return null;
var e = p({
"omni-clickable": !0,
search: !0,
highlight: this._linkItemCount === this.props.selectionIndex
});
return this._linkItemCount++, o.createElement("section", {
className: "filter-search ignore-react-onclickoutside",
__source: {
fileName: a,
lineNumber: 281
}
}, o.createElement("label", {
__source: {
fileName: a,
lineNumber: 282
}
}, A("Search $1", [this.state.searchEngineName])), o.createElement("div", {
onClick: this.onSearchClicked,
className: e,
"data-url": this.state.searchEngineKeyword + this.props.pattern,
__source: {
fileName: a,
lineNumber: 283
}
}, o.createElement("img", {
className: "favicon",
src: (this.props.typedSearchEngine || this.props.defaultSearchEngine).Image,
__source: {
fileName: a,
lineNumber: 287
}
}), o.createElement("span", {
__source: {
fileName: a,
lineNumber: 289
}
}, this.props.pattern)))
},
renderNickname: function(e) {
return !Array.isArray(e) || e.length <= 0 ? null : o.createElement("section", {
className: "filter-bookmarks ignore-react-onclickoutside",
__source: {
fileName: a,
lineNumber: 302
}
}, o.createElement("label", {
__source: {
fileName: a,
lineNumber: 303
}
}, A("Nickname")), d.take(e.map(function(e) {
return this.renderLinkItem(e, e.nickname)
}.bind(this)), u.OMNI_RESULT_COUNT))
},
renderSuggest: function(e) {
var t = this;
return !Array.isArray(e) || e.length <= 0 ? null : o.createElement("section", {
className: "filter-suggestions ignore-react-onclickoutside",
__source: {
fileName: a,
lineNumber: 318
}
}, o.createElement("label", {
__source: {
fileName: a,
lineNumber: 319
}
}, A("Suggestions")), d.take(e.map(function(e) {
return t.renderLinkItem(e)
}), u.OMNI_RESULT_COUNT))
},
render: function() {
if (!this.props.isOpen) return null;
if (this.props.results && this.props.results.length > 0) {
var e = d.take(this.props.results.filter(function(e) {
return e.type.startsWith("OMNI_RESULT_HISTORY")
}), u.OMNI_RESULT_COUNT),
t = d.take(this.props.results.filter(function(e) {
return e.type.startsWith("OMNI_RESULT_BOOKMARK") && !e.type.includes("OMNI_RESULT_BOOKMARK_NICKNAME")
}), u.OMNI_RESULT_COUNT),
n = this.props.results.filter(function(e) {
return e.type.startsWith("OMNI_RESULT_BOOKMARK_NICKNAME") || e.type.startsWith("OMNI_RESULT_FOLDER_NICKNAME")
}),
i = d.take(this.props.results.filter(function(e) {
return e.type.startsWith("OMNI_RESULT_TYPED_HISTORY")
}), u.OMNI_RESULT_COUNT),
r = this.props.suggestEnabled ? d.take(this.props.results.filter(function(e) {
return e.type.startsWith("OMNI_RESULT_SUGGEST")
}), u.OMNI_RESULT_COUNT_SUGGEST) : [];
return this._linkItemCount = 0, o.createElement("div", {
className: "urlSearch ignore-react-onclickoutside",
onMouseOver: this.onMouseOver,
onScroll: this.onScrolled,
__source: {
fileName: a,
lineNumber: 364
}
}, this.renderNickname(n), this.props.isUrlbarSearchDisabled !== !0 && this.renderURLSearch(), this.renderTypedHistory(i), this.props.suggestEnabled && this.renderSuggest(r), this.renderBookmarks(t), this.renderHistory(e))
}
return this.props.isUrlbarSearchDisabled ? null : o.createElement("div", {
className: "urlSearch",
onMouseOver: this.onMouseOver,
onScroll: this.onScrolled,
__source: {
fileName: a,
lineNumber: 383
}
}, this.renderURLSearch())
}
});
e.exports = f
}, function(e, t, n) {
// =========================
// Function_381
// =========================
"use strict";
function i(e, t) {
var n = this;
return new Promise(function(i, a) {
for (var l = e.getSync("THEMES_SYSTEM"), c = r(t.THEMES_USER), u = o(c, l, s), A = u.length > 0, d = 0; d < u.length; d++)
for (var h = 0; h < l.length; h++) u[d].name === l[h].name && (u[d].name = u[d].name + " 01");
if (A) {
var m = {
THEMES_USER: u
};
e.set(m, i.bind(n, Object.assign({}, t, m)))
} else i(t)
})
}
var a = n(7),
r = a.cloneDeep,
s = a.isEqual,
o = a.differenceWith;
e.exports = i
}, function(e, t, n) {
// =========================
// Function_382
// =========================
"use strict";
var i, a, r = n(52),
s = n(17),
o = n(775),
l = {
_onCommandStoreChanged: function() {
i = r.getHorizontalMenu(s.getPages()), o(i)("menubar")
},
_onPageStoreChanged: function() {
if (a) {
var e = r.getOpenTabsMenuList(s.getPages());
i !== e && (i = e, o(i)("tabs"))
}
},
onBlur: function() {
a = !1
},
onFocus: function() {
a = !0, i = r.getHorizontalMenu(s.getPages()), o(i)("menubar")
},
onLastWindowClosed: function() {
i = r.getHorizontalMenu(), o(i)("menubar")
},
init: function() {
r.addChangeListener(this._onCommandStoreChanged), s.addChangeListener(l._onPageStoreChanged), i = r.getHorizontalMenu(), o(i)("menubar")
}
};
e.exports = l
}, function(e, t, n) {
// =========================
// Function_383
// =========================
"use strict";
var i = n(4),
a = navigator.userAgent.replace(/Vivaldi/, "Viv"),
r = navigator.userAgent.replace(/Vivaldi.*/, "Vivaldi/1.0."),
s = navigator.userAgent.replace(/Vivaldi.*/, ""),
o = [{
id: "VB9275UAALTER",
urlMatches: "[docs|www]*.google.*|[fonts|www]*.gstatic.com/[^?]*",
schemes: ["https"],
headerName: "User-Agent",
headerValue: a
}, {
id: "NETFLIX",
urlMatches: ".netflix.com/",
schemes: ["http", "https"],
headerName: "User-Agent",
headerValue: r
}, {
id: "gmaildisposition",
urlMatches: "mail-attachment.googleusercontent.com",
schemes: ["https"],
headerName: "User-Agent",
headerValue: s
}];
"MacIntel" === navigator.platform && o.push({
id: "VB12544",
urlMatches: "www.facebook.com/",
schemes: ["https"],
headerName: "User-Agent",
headerValue: navigator.userAgent + " OPR/99.0.9999.99"
});
var l = [];
o.forEach(function(e) {
var t = new i.declarativeWebRequest.RequestMatcher({
url: {
urlEquals: e.urlEquals,
hostEquals: e.hostEquals,
schemes: e.schemes,
urlMatches: e.urlMatches
},
resourceType: ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest"],
stages: ["onBeforeSendHeaders"]
}),
n = {
id: e.id,
conditions: [t],
actions: [new i.declarativeWebRequest.SetRequestHeader({
name: e.headerName,
value: e.headerValue
})]
};
l.push(n)
}), e.exports = {
uaspoofRules: l,
uaspoofRuleIds: l.map(function(e) {
return e.id
})
}
}, function(e, t, n) {
// =========================
// Function_384
// =========================
"use strict";
function i(e) {
c = r.List(e), u.emitChange()
}
var a = n(18).EventEmitter,
r = n(27),
s = n(8),
o = n(6),
l = "change",
c = r.List(),
u = Object.assign({}, a.prototype, {
getBackgroundTasks: function(e) {
return c
},
emitChange: function() {
this.emit(l)
},
addChangeListener: function(e) {
this.on(l, e)
},
removeChangeListener: function(e) {
this.removeListener(l, e)
}
});
s.register(function(e) {
var t = e.action;
switch (t.actionType) {
case o.BACKGROUND_TASKS_SET:
i(t.tasks);
break;
default:
return !0
}
}), e.exports = u
}, function(e, t, n) {
// =========================
// Function_385
// =========================
"use strict";
function i(e, t, n) {
A[e] = u.Map({
id: t,
url: n
})
}
function a(e, t, n) {
var i = e.get("id");
A[i] && (A[i] = u.Map({
id: t,
url: n
}))
}
function r(e, t) {
var n = e.get("id");
A[n] && (A[n] = void 0)
}
function s(e) {
A[e] && (A[e] = void 0)
}
var o = n(8),
l = n(6),
c = n(18).EventEmitter,
u = n(27),
A = {},
d = Object.assign({}, c.prototype, {
getQueue: function(e) {
return A[e.get("id")] || u.Map()
},
emitChange: function() {
this.emit(l.CHANGED)
},
addChangeListener: function(e) {
this.on(l.CHANGED, e)
},
removeChangeListener: function(e) {
this.removeListener(l.CHANGED, e)
}
});
o.register(function(e) {
var t = e.action;
switch (t.actionType) {
case l.BOOKMARK_THUMBNAIL_QUEUE_ADD_ITEM:
i(t.pageId, t.id, t.url), d.emitChange();
break;
case l.BOOKMARK_THUMBNAIL_QUEUE_UPDATE_ITEM:
a(t.page, t.id, t.url), d.emitChange();
break;
case l.BOOKMARK_THUMBNAIL_QUEUE_REMOVE_ITEM:
r(t.page, t.id), d.emitChange();
break;
case l.CHROME_TABS_REMOVED:
s(t.tabId), d.emitChange();
break;
default:
return !0
}
return !0
}), e.exports = d
}, function(e, t, n) {
// =========================
// Function_386
// =========================
(function(t) {
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
function a(e) {
if (Array.isArray(e)) {
for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t];
return n
}
return Array.from(e)
}
var r = n(8),
s = n(6),
o = n(3),
l = n(18).EventEmitter,
c = n(362),
u = n(360),
A = n(4),
d = n(138),
h = n(624),
m = h.updateThreads,
p = n(237),
f = n(47),
g = n(15),
_ = n(2),
v = n(621),
b = n(622),
N = n(240),
E = N.parseMailBody,
S = n(387),
T = n(49),
y = n(20).urls,
C = n(42),
I = C.BUFFER_OPERATION_MARKFLAGGED,
O = C.BUFFER_OPERATION_MARKFORWARDED,
w = C.BUFFER_OPERATION_MARKREPLIED,
D = C.BUFFER_OPERATION_MARKUNREAD,
k = C.BUFFER_OPERATION_MOVE,
M = C.BUFFER_OPERATION_DELETE,
L = C.MAIL_STATUS_TIMEOUT,
P = C.SENT_FOLDER_TYPE,
R = C.INDICATOR_TYPE_FETCHING,
x = C.INDICATOR_TYPE_FLUSHING,
B = C.INDICATOR_TYPE_CONNECTING,
U = n(7),
F = U.debounce,
H = U.isMatch,
V = U.pick,
W = "change",
G = {},
K = {},
j = new Set,
z = new Set,
Y = !1,
J = {},
Q = {},
Z = 1e4,
q = function(e) {
return G[e] && G[e]._loggedIn ? Promise.resolve(G[e]) : Promise.reject(e + " not connected")
},
X = F(function() {
function e(e) {
return d.getBufferByAccount(e).then(function(n) {
function i(n) {
var i = n.operation,
r = n.path,
s = n.uids,
o = n.params;
switch (a.current += s.length, t.nextTick(function() {
return T.addAccountIndicator(e, x, a)
}), i) {
case D:
return ne.setUnreadState(e, r, s, o);
case I:
return ne.setFlagged(e, r, s, o);
case O:
return ne.setForwarded(e, r, s, o);
case w:
return ne.setReplied(e, r, s, o);
case k:
return ne.move(e, r, s, o);
case M:
return ne.delete(e, r, s, o);
default:
return Promise.reject("Unknown batch operation '" + i + "'")
}
}
var a = {
current: 0,
total: n.length
},
r = [],
s = !0,
o = !1,
l = void 0;
try {
for (var c, u = n[Symbol.iterator](); !(s = (c = u.next()).done); s = !0) {
var A = c.value,
h = V(A, ["path", "operation", "params"]),
m = r.length;
if (0 !== m && H(r[m - 1], h)) {
var p = r[m - 1];
p.uids.push(A.uid), p._ids.push(A._id)
} else h.uids = [A.uid], h._ids = [A._id], r.push(h)
}
} catch (e) {
o = !0, l = e
} finally {
try {
!s && u.return && u.return()
} finally {
if (o) throw l
}
}
return r.reduce(function(e, t) {
return e.then(function() {
return i(t).then(function() {
return d.bulkRemoveFromBuffer(t._ids)
}).catch(function(e) {
console.error(e.stack || e)
})
})
}, Promise.resolve()).then(function() {
z.delete(e), t.nextTick(function() {
return T.removeAccountIndicator(e, x)
})
})
})
}
if (Y) return X();
Y = !0;
var n = [].concat(a(z));
return Promise.all(n.map(function(t) {
return e(t).catch(function(e) {
return console.error(e.stack || e)
}).then(function() {
return $(t)
})
})).then(function() {
return Y = !1
})
}, 1e3),
$ = function(e) {
j.add(e), ee()
},
ee = F(function() {
var e = [].concat(a(j));
j.clear();
var t = !0,
n = !1,
i = void 0;
try {
for (var r, s = e[Symbol.iterator](); !(t = (r = s.next()).done); t = !0) {
var o = r.value,
l = K[o];
l ? te(o, l, !0) : console.warn("Parking " + o + " without a permit")
}
} catch (e) {
n = !0, i = e
} finally {
try {
!t && s.return && s.return()
} finally {
if (n) throw i
}
}
}, 2e3),
te = function(e, n) {
function i() {
var n = J[e];
if (!n || n.length <= 0) return void(Q[e] = !1);
var a = n.pop(),
r = R;
t.nextTick(function() {
return T.addPathIndicator(e, a, r)
}), q(e).then(function(e) {
return e.selectMailbox({
path: a
})
}).catch(function(e) {
return console.error(e)
}).then(function() {
t.nextTick(function() {
return T.removePathIndicator(e, a, r)
}), i()
})
}
var a = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
J[e] || (J[e] = []);
var r = J[e];
a ? r[0] !== n && r.unshift(n) : r.includes(n) || r.push(n), Q[e] || (Q[e] = !0, i())
},
ne = Object.assign({}, l.prototype, {
parkAll: function(e) {
e.forEach(function(e) {
return $(e)
})
},
isDisconnected: function(e) {
return G[e] && !G[e]._loggedIn
},
delete: function(e, t, n) {
return n.reduce(function(n, i) {
return n.then(function() {
var n = {
path: t,
uid: i
};
return q(e).then(function(e) {
return e.deleteMessage(n)
})
})
}, Promise.resolve())
},
fetchAndParseRaw: function(e) {
return q(e.accountId).then(function(t) {
return t.getMessage({
path: e.path,
uid: e.uid
})
}).then(function(t) {
return $(e.accountId), e.raw = t, E(e)
}).then(function(e) {
return d.add(e.accountId, e.path, [e], !0)
})
},
move: function(e, t, n, i) {
var a = this;
return n.reduce(function(n, r) {
return n.then(function() {
var n = {
path: t,
uid: r,
destination: i
};
return a.setUnreadState(e, t, [r], !1).then(function() {
return q(e)
}).then(function(e) {
return e.moveMessage(n)
})
})
}, Promise.resolve())
},
setUnreadState: function(e, t, n, i) {
return this._updateFlags(e, t, n, "unread", i)
},
setFlagged: function(e, t, n, i) {
return this._updateFlags(e, t, n, "flagged", i)
},
setForwarded: function(e, t, n, i) {
return this._updateFlags(e, t, n, "forwarded", i)
},
setReplied: function(e, t, n, i) {
return this._updateFlags(e, t, n, "answered", i)
},
_updateFlags: function(e, t, n, i, a) {
var r = {
path: t,
uids: n
};
return r[i] = a, q(e).then(function(e) {
return e.updateFlags(r)
})
},
uploadSentMessage: function(e, t, n) {
var i = t.MAIL_EMAIL,
a = S.getAll()[i].folders[P];
a.length > 0 ? ! function() {
var t = {
path: a[0].path,
message: e
};
q(i).then(function(e) {
return e.uploadMessage(t, n)
}).then(function() {
return $(i)
}).catch(function(e) {
return n(e)
})
}() : console.warn("uploadSentMessage: No sent folder found for account", i)
},
emitChange: function(e) {
this.emit(W, e)
},
addChangeListener: function(e) {
this.on(W, e)
},
removeChangeListener: function(e) {
this.removeListener(W, e)
},
flushBuffer: function(e) {
z.add(e), X()
}
}),
ie = function(e, t, n) {
var i = new Notification(u(n.from), {
body: n.subject,
icon: "resources/favicon_mail@2x.png"
});
i.onclick = function() {
var a = "message/" + e + "/" + t + "/" + n.uid,
r = y.internalUrl("mailpage", a, _("Mail"));
g.openURL(r), A.app.window.current().show(), i.close()
}, setTimeout(function() {
return i.close()
}, L)
},
ae = function(e) {
if (Array.isArray(e)) {
var t = [],
n = new Set,
i = !0,
a = !1,
r = void 0;
try {
for (var s, o = e[Symbol.iterator](); !(i = (s = o.next()).done); i = !0)
for (var l = s.value, c = ["to", "cc", "bcc"], u = 0; u < c.length; u++) {
var A = c[u],
d = l[A];
if (Array.isArray(d)) {
var h = !0,
m = !1,
f = void 0;
try {
for (var g, _ = d[Symbol.iterator](); !(h = (g = _.next()).done); h = !0) {
var v = g.value;
n.has(v.address) || (n.add(v.address), v.isGeneratedFromSentMail = !0, t.push(v))
}
} catch (e) {
m = !0, f = e
} finally {
try {
!h && _.return && _.return()
} finally {
if (m) throw f
}
}
}
}
} catch (e) {
a = !0, r = e
} finally {
try {
!i && o.return && o.return()
} finally {
if (a) throw r
}
}
p.addIfNotAddressExists(t).then(function(e) {
T.addContacts(e)
})
}
},
re = function(e, n, i, a, r) {
return e.listMessages({
path: i.path,
uids: i.list
}).then(function(e) {
return d.add(n, i.path, e).then(function(s) {
var o = i.path.toLowerCase();
return o.indexOf("inbox") > -1 && a === r ? ie(n, i.path, e[0]) : (f.setStatus(_("Indexing mail $1 $2 $3/$4", [n, i.path, a, r])), t.nextTick(function() {
return T.addPathIndicator(n, i.path, R, a, r)
})), S.getFolderType(n, i.path) === P && ae(e), s
})
})
},
se = 1e3,
oe = function(e, n, i) {
return f.setStatus(_("Indexing - $1 $2", [n, i.path])), Promise.resolve().then(function() {
if ("new" === i.type) {
var t = i.list.reverse();
delete i.list;
for (var a = t.length, r = [], s = 0; s < a; s += se) {
var o = s + se > a ? a : s + se,
l = Object.assign({}, i);
l.list = t.slice(s, s + se), r.push({
newOptions: l,
current: o,
total: a
})
}
return r.reduce(function(t, i) {
return t.then(function(t) {
return re(e, n, i.newOptions, i.current, i.total).then(function(e) {
return t.concat(e)
})
})
}, Promise.resolve([])).then(function(e) {
m(n, i.path, e).then(function() {
T.addMessages(n, i.path, e)
})
})
}
return "deleted" === i.type ? d.remove(n, i.path, i.list).then(function() {
return T.removeMessages(n, i.path, i.list)
}) : "messages" === i.type ? d.checkBuffer(n, i.path, i.list).then(function() {
return d.update(n, i.path, i.list)
}).then(function(e) {
e.length > 0 && T.updateMessages(n, i.path, e)
}) : void 0
}).then(function() {
return v.setCache(n, i.path, e.mailboxCache)
}).then(function() {
return f.setStatus(_("Finished indexing") + " - " + n + " " + i.path, L)
}).catch(function(e) {
return console.error(e.stack || e)
}).then(function() {
return t.nextTick(function() {
return T.removePathIndicator(n, i.path, R)
})
})
},
le = function(e, t) {
console.error(t.stack || t);
var n = e.MAIL_IMAP_SERVER,
i = e.MAIL_IMAP_USER,
a = n + " / " + i + ": " + (t.message || t);
f.setStatus(a), ne.emitChange(), fe(e)
},
ce = function() {
var e = {};
return d.getAllSearchListKeys().then(function(t) {
for (var n = 0; n < t.length; n++) {
var i = t[n],
a = i[0],
r = i[1],
s = i[2];
e[a] || (e[a] = {}), e[a][r] || (e[a][r] = []), e[a][r].push(s)
}
return e
})
},
ue = function() {
var e = o.getSync("MAIL_ACCOUNTS") || [];
ce().then(function(t) {
e.forEach(function(e) {
return de(e, t[e.MAIL_EMAIL] || {})
})
})
},
Ae = {},
de = function(e, n) {
if (!e.MAIL_IMAP_PORT || e.MAIL_IMAP_PORT <= 0) throw new Error("Port missing or invalid: " + e.MAIL_IMAP_PORT);
var a = e.MAIL_EMAIL;
if (Ae[a]) return Ae[a];
var r = function(t) {
le(e, t)
},
s = c.getIMAPClient(e).then(function(e) {
e.onSyncUpdate = oe.bind(null, e, a), e.onError = r, G[a] = e
}).then(function() {
return n || ce().then(function(e) {
return e[a]
})
}).then(function(e) {
return v.getCache(a, e)
}).then(function(e) {
return G[a].mailboxCache = e || {}
}).then(function() {
return t.nextTick(function() {
return T.addAccountIndicator(a, B)
})
}).then(function() {
return G[a].login()
}).then(function() {
return t.nextTick(function() {
return T.removeAccountIndicator(a, B)
})
}).then(function() {
return G[a].listWellKnownFolders()
}).then(function(e) {
v.add(a, e);
var t = i({}, a, {
folders: e
});
T.addFolders(t)
}).then(function() {
return ve(a)
}).then(function() {
return ne.flushBuffer(a)
}).catch(r).then(function() {
ne.emitChange(), delete Ae[a]
});
return Ae[a] = s, s
},
he = function() {
for (var e in G) me(e)
},
me = function(e) {
if (!Ae[e]) {
var n = G[e];
n && (delete G[e], ne.emitChange(), n.logout().catch(function(e) {})), delete J[e], delete Q[e], t.nextTick(function() {
return T.removeAllIndicators(e)
})
}
},
pe = {},
fe = function(e, t) {
var n = e.MAIL_EMAIL;
me(n), pe[n] || (pe[n] = setTimeout(function() {
delete pe[n], de(e, t)
}, Z))
},
ge = function(e, t) {
te(e, t), $(e)
},
_e = function(e, t) {
return q(e).then(function(n) {
var i = n.mailboxCache[t];
i && (i.highestModseq = "0", te(e, t), $(e))
})
},
ve = function(e) {
var t = {};
e ? t[e] = S.getAll()[e] : t = S.getAll();
var n = b.getSubscribedFolders(t);
n.forEach(function(e) {
function t(e) {
e.subscribed && te(n, e.path), e.children && e.children.forEach(function(e) {
return t(e)
})
}
var n = e.accountId,
i = e.children;
if (!(i.length <= 0)) {
i.sort(function(e, t) {
return e.type === t.type ? 0 : "All" === e.type ? 1 : "All" === t.type ? -1 : "Inbox" === e.type ? 1 : "Inbox" === t.type ? -1 : 0
});
var a = i[i.length - 1];
K[n] = a.path, i.forEach(function(e) {
return t(e)
}), $(n)
}
})
},
be = !1,
Ne = function(e, t) {
be && clearInterval(be), be = !!e && setInterval(ve, 6e4 * t)
};
r.register(function(e) {
var t = e.action;
switch (t.actionType) {
case s.MAIL_CONNECT_IMAP_CLIENTS:
ue();
break;
case s.MAIL_DISCONNECT_IMAP_CLIENTS:
he();
break;
case s.MAIL_CHECK_NEW_DELETED_MODIFIED:
ge(t.accountId, t.path);
break;
case s.MAIL_RESCAN_UNREAD_FLAGS:
_e(t.accountId, t.path);
break;
case s.MAIL_CHECK_FOR_MAIL:
ve(t.accountId);
break;
case s.MAIL_SET_CHECK_INTERVAL:
Ne(t.active, t.minutes)
}
}), e.exports = ne
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_387
// =========================
"use strict";
var i = n(8),
a = n(6),
r = n(18).EventEmitter,
s = "change",
o = {},
l = {},
c = Object.assign({}, r.prototype, {
getAll: function() {
return o
},
getFolderType: function(e, t) {
return l[e] && l[e][t] ? l[e][t] : u(e, t)
},
emitChange: function(e) {
this.emit(s, e)
},
addChangeListener: function(e) {
this.on(s, e)
},
removeChangeListener: function(e) {
this.removeListener(s, e)
}
}),
u = function(e, t) {
var n = void 0;
if (o[e]) {
var i = o[e].folders;
for (var a in i) {
var r = o[e].folders[a];
if (r.some(function(i) {
if (i.path === t) return n = i.type, l[e] || (l[e] = {}), l[e][t] = n, !0
})) break
}
}
return n ? n : t
};
c.dispatchToken = i.register(function(e) {
var t = e.action;
switch (t.actionType) {
case a.MAIL_ADD_FOLDERS:
o = Object.assign({}, o, t.folders), l = {}, c.emitChange();
break;
case a.MAIL_REPLACE_FOLDERS:
o = t.folders, l = {}, c.emitChange()
}
}), e.exports = c
}, function(e, t, n) {
// =========================
// Function_388
// =========================
"use strict";
var i, a = n(8),
r = n(6),
s = n(18).EventEmitter,
o = n(3),
l = "change",
c = Object.assign({}, s.prototype, {
getSelectedFolder: function() {
return i
},
emitChange: function(e) {
this.emit(l, e)
},
addChangeListener: function(e) {
this.on(l, e)
},
removeChangeListener: function(e) {
this.removeListener(l, e)
}
}),
u = function(e) {
o.set({
FOLDER_SELECTION: e
}, function(t) {
t && console.error("Failed to store selected folder", e, t)
})
};
c.dispatchToken = a.register(function(e) {
var t = e.action;
switch (t.actionType) {
case r.MAIL_SELECT_FOLDER:
i = t.folder, u(i), c.emitChange()
}
}), e.exports = c
}, function(e, t, n) {
// =========================
// Function_389
// =========================
"use strict";
var i = n(8),
a = n(6),
r = n(17),
s = n(18).EventEmitter,
o = n(4),
l = "change",
c = null,
u = Object.assign({}, s.prototype, {
emitChange: function() {
this.emit(l)
},
emitChangeParam: function(e) {
this.emit(l, e)
},
addChangeListener: function(e) {
this.on(l, e)
},
removeChangeListener: function(e) {
this.removeListener(l, e)
}
});
i.register(function(e) {
var t = e.action;
switch (t.actionType) {
case a.MAIN_FULLSCREEN:
u.emitChangeParam({
action: "fullscreen",
url: ""
});
break;
case a.MAIN_SHOW_QUICKCOMMANDS:
u.emitChangeParam({
action: "quickcommand",
url: ""
});
break;
case a.MAIN_SHOW_KEYBOARDS_SHORTCUTS:
u.emitChangeParam({
type: a.MAIN_SHOW_KEYBOARDS_SHORTCUTS
});
break;
case a.MAIN_SHOW_CONFIRM_OPEN_BOOKMARKS_DIALOG:
u.emitChangeParam({
action: "confirmOpenBookmarks",
options: t.options
});
break;
case a.MAIN_SHOW_CLEAR_BROWSING_DATA_DIALOG:
u.emitChangeParam({
action: "showClearBrowsingHistory",
options: t.options
});
break;
case a.MAIN_SHOW_IMPORT_DATA:
u.emitChangeParam({
action: "importData",
url: ""
});
break;
case a.MAIN_SHOW_EXPORT_DATA:
u.emitChangeParam({
action: "exportData"
});
break;
case a.MAIN_SHOW_SAVE_SESSION:
u.emitChangeParam({
action: "saveSession",
url: ""
});
break;
case a.MAIN_SHOW_OPEN_SESSION:
u.emitChangeParam({
action: "openSession",
url: ""
});
break;
case a.MAIN_SHOW_PAGE_INFO:
u.emitChangeParam({
action: "showPageInfo",
page: e.action.page,
event: e.action.event
});
break;
case a.MAIN_ZOOM_IN:
u.emitChangeParam({
type: a.MAIN_ZOOM_IN
});
break;
case a.MAIN_ZOOM_OUT:
u.emitChangeParam({
type: a.MAIN_ZOOM_OUT
});
break;
case a.MAIN_ZOOM_HALF:
u.emitChangeParam({
type: a.MAIN_ZOOM_HALF
});
break;
case a.MAIN_ZOOM_DOUBLE:
u.emitChangeParam({
type: a.MAIN_ZOOM_DOUBLE
});
break;
case a.MAIN_ZOOM_RESET:
u.emitChangeParam({
type: a.MAIN_ZOOM_RESET
});
break;
case a.MAIN_TOGGLE_TAB_BAR:
u.emitChangeParam({
type: a.MAIN_TOGGLE_TAB_BAR
});
break;
case a.MAIN_TOGGLE_ADDRESS_BAR:
u.emitChangeParam({
type: a.MAIN_TOGGLE_ADDRESS_BAR
});
break;
case a.MAIN_TOGGLE_UI:
u.emitChangeParam({
type: a.MAIN_TOGGLE_UI
});
break;
default:
return !0
}
return !0
}), o.tabs.onActivated.addListener(function(e) {
if (e.windowId === window.vivaldiWindowId && void 0 !== r.getPages) {
var t = r.getPages().find(function(t) {
return t.get("id") === e.tabId
});
t && (c = e.tabId, u.emitChangeParam({
action: "currentTab",
tabId: c,
page: t
}))
}
}), e.exports = u
}, function(e, t, n) {
// =========================
// Function_390
// =========================
"use strict";
function i(e, t) {
var n = e || T;
return e && Array.isArray(e) && e.length >= S && (n = (0, p.take)(e, S)), n && t && (n = n.filter(function(e) {
return e !== t
})), n
}
function a() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
if (!Array.isArray(e)) throw TypeError("typedhistory must be an array");
return (0, p.compact)(e.map(function(e) {
return "string" == typeof e ? {
id: e,
url: e,
when: Date.now()
} : e && ["id", "url", "when"].every(function(t) {
return e.hasOwnProperty(t)
}) ? e : null
}))
}
function r(e) {
if ("function" != typeof e) throw TypeError("loadTypedHistory: callback required");
var t = _.getSync("TYPED_SEARCH_HISTORY");
s(t, e)
}
function s(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : p.noop,
n = T;
try {
e && (n = JSON.parse(e))
} catch (e) {
console.warn("Unable to parse typed history JSON. TODO: fix!", e)
}
n && t(a(n))
}
function o(e) {
var t = e.page.get("id");
if (e.state) {
var n = e.state.searchEngine;
n && "undefined" != typeof n.Id && _.getSync("CURRENT_SEARCH_ENGINE") !== n.Id && _.set({
CURRENT_SEARCH_ENGINE: n.Id
}, function() {
return y.emitChange()
})
}
N[t] = Object.assign(N[t] || {}, (0, p.omit)(e.state, "searchEngine")), y.emitChange()
}
function l(e) {
N[e.tabId] = void 0
}
function c(e) {
r(function(t) {
var n = i(t, e.query);
n = [{
id: e.query,
url: e.query,
when: Date.now()
}].concat(n), _.set({
TYPED_SEARCH_HISTORY: JSON.stringify(n)
}), E = n, y.emitChange()
})
}
function u(e) {
var t = E.filter(function(t) {
var n = t.url;
return e !== n
});
_.set({
TYPED_SEARCH_HISTORY: JSON.stringify(t)
}), E = t, y.emitChange()
}
function A(e) {
var t = e.since,
n = e.dataTypes.typedHistory;
if (null == n || "boolean" === !("undefined" == typeof n ? "undefined" : m(n))) throw TypeError("Typed history must be true or false");
var i = E.filter(function(e) {
var n = e.when;
return t - n > 0
});
_.set({
TYPED_SEARCH_HISTORY: JSON.stringify(i)
}), E = i, y.emitChange()
}
function d() {
_.remove("TYPED_SEARCH_HISTORY"), E = [], y.emitChange()
}
function h(e) {
s(e, function(e) {
E = e, y.emitChange()
})
}
var m = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
p = n(7),
f = n(8),
g = n(6),
_ = n(3),
v = n(18),
b = v.EventEmitter,
N = {},
E = [],
S = 30,
T = [],
y = Object.assign({}, b.prototype, {
emitChange: function() {
this.emit(g.CHANGED)
},
getSearchEngine: function(e) {
return (0, p.find)(_.getSync("SEARCH_ENGINES"), {
Id: _.getSync("CURRENT_SEARCH_ENGINE")
})
},
getSearchText: function(e) {
var t = N[e.get("id")];
return t ? t.editText || "" : ""
},
getTypedSearchHistory: function() {
return E
},
addChangeListener: function(e) {
this.on(g.CHANGED, e)
},
removeChangeListener: function(e) {
this.removeListener(g.CHANGED, e)
}
});
f.register(function(e) {
var t = e.action;
switch (t.actionType) {
case g.SEARCH_FIELD_SET_STATE:
o(t);
break;
case g.SEARCH_FIELD_ADD_TYPED_HISTORY:
c(t);
break;
case g.CHROME_TABS_REMOVED:
l(t);
break;
case g.SEARCH_FIELD_DELETE_TYPED_HISTORY:
u(t.query);
break;
case g.NAVIGATION_HISTORY_ALL_DELETED:
d();
break;
case g.SEARCH_FIELD_INIT_TYPED_HISTORY:
h(t.typedHistory);
break;
case g.BROWSING_DATA_REMOVED:
(0, p.get)(t, "dataTypes.typedHistory") === !0 && A(t)
}
}), e.exports = y
}, function(e, t, n) {
// =========================
// Function_391
// =========================
"use strict";
var i = n(8),
a = n(6),
r = n(18).EventEmitter,
s = n(138),
o = n(407),
l = n(625),
c = l.sentDateMsgComp,
u = l.threadKeyComp,
A = n(49),
d = n(628),
h = n(246),
m = n(766),
p = n(2),
f = n(42),
g = f.ALL_MESSAGES_ACCOUNT_ID,
_ = f.MAILING_LISTS_ACCOUNT_ID,
v = f.MAILING_LISTS_OTHER_FOLDER,
b = f.UNREAD_FOLDER_PATH,
N = n(135),
E = N.isUnread,
S = n(3),
T = n(7),
y = T.cloneDeep,
C = "change",
I = [],
O = {},
w = {},
D = void 0,
k = void 0,
M = void 0,
L = Object.assign({}, r.prototype, {
clear: function() {
I = [], O = {}
},
getAll: function() {
return I
},
getCounters: function() {
return O
},
getCountersForNode: function(e, t) {
var n = void 0;
return e && t ? O[e] && (n = O[e][t]) : n = O[e], n || {
unread: 0,
unseen: 0,
total: 0
}
},
getCountersTextForNode: function(e, t) {
var n = this.getCountersForNode(e, t);
return "(" + (n.unseen > 0 ? p("$1 new", "$1 new", [n.unseen]) + " in " : "") + (n.unread > 0 ? p("$1 unread", "$1 unread", [n.unread]) + " of " : "") + p("$1 message", "$1 messages", [n.total]) + ")"
},
emitChange: function(e) {
this.emit(C, e)
},
addChangeListener: function(e) {
this.on(C, e)
},
removeChangeListener: function(e) {
this.removeListener(C, e)
},
addOneTimeChangeListener: function(e) {
this.once(C, e)
},
getMessagesFiltered: function(e, t) {
var n = h.getFolderFilter(e, t),
i = m.getOptionsFilter(),
a = [],
r = void 0;
return I.forEach(function(e) {
for (var t = 0; t < n.length; t++)
if (n[t](e, r) && i(e)) {
a.push(e), r = e.messageId;
break
}
}), a
}
}),
P = function(e, t, n, i, a) {
return !e[t] || !e[t][n] || e[t][n](i, a)
},
R = function(e, t, n, i, a, r) {
for (var s = 0; s < a.length; s++) {
var o = a[s].path,
l = a[s].accountId;
if (o === b)
if (t < 0) {
var c = y(e),
u = c.flags.indexOf("\\Seen");
u > -1 && c.flags.splice(u, 1), r[g][o](c) && d(g, o, t, n, t, O)
} else t > 0 && r[g][o](e) && d(g, o, t, n, t, O);
else r[l][o](e) && d(l, o, t, n, i, O)
}
},
x = function() {
return h.getAll().filter(function(e) {
return e.accountId === g || e.accountId === _
})
},
B = 0,
U = {},
F = !1,
H = function e(t) {
for (0 === B && (O = {}, U = {}, w = {}, F = !1); t.timeRemaining() - .1 > 0 && I.length > B;) {
var n = I[B];
V(n), n.listId && (G(n, D, M), F = !0), B += 1
}
I.length > B ? window.requestIdleCallback(e) : (B = 0, W(F), L.emitChange(), F = !1)
},
V = function(e) {
e.listId && (w[e.listId] || (w[e.listId] = 0), w[e.listId] += 1), U[e.accountId] || (U[e.accountId] = {}), U[e.accountId][e.path] = !0
},
W = function() {
var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
Object.keys(w).forEach(function(t) {
if (1 === w[t]) {
var n = k.filter(function(e) {
return e.filterValue.listId === t
});
if (n.length > 0) return;
var i = D.filter(function(e) {
return e.filterValue.listId === t
});
if (i.length > 1) i.forEach(function(e) {
e.path.startsWith(v) || D.splice(D.indexOf(e), 1)
});
else if (1 === i.length) {
var a = i[0];
a.path.startsWith(v) || (D.splice(D.indexOf(a), 1), a.path = v + "/" + a.path, D.push(a), e = !0)
}
}
}), Object.keys(U).forEach(function(t) {
Object.keys(U[t]).forEach(function(n) {
void 0 === h.get(t, n) && (e = !0, D.push({
accountId: t,
path: n,
filterValue: {}
}))
})
}), e && A.bulkAddFilter(D)
},
G = function(e, t, n) {
var i = z(e),
a = Y(i, t, e.listId);
a && (t.push(a), n[a.accountId] || (n[a.accountId] = {}), n[a.accountId][a.path] = h.filterToFolderFilter(a))
},
K = function(e) {
if (e.listId.endsWith("facebook.com")) {
var t = e.subject.match(/^.*\[(.*)\].*/m);
if (t && t[1] && t[1].length > 1) return "/" + t[1].replace("/", " ")
} else if (e.listId.endsWith("google.com") && e.from && e.from[0]) return "/" + e.from[0].name;
return ""
},
j = function(e) {
var t = e.match(/([0-9a-f]{32,64})\..*$/m);
return t && t[1] ? e.substr(t[1].length + 1) : e
},
z = function(e) {
var t = e.listId.match(/^.*\.(.*\..*\..*$|^\S*$)/m),
n = K(e),
i = void 0;
return i = t && t[1] && t[1].length > 1 ? t[1] : t && t[0] && t[0].length > 1 ? t[0] : e.listId, i = j(i) + n
},
Y = function(e, t, n) {
var i = t.filter(function(t) {
return t.accountId === _ && (t.path === e || t.path === v + "/" + e)
})[0];
return i ? i.hasOwnProperty("filterValue") && i.filterValue.hasOwnProperty("listId") && i.filterValue.listId.indexOf(n) === -1 ? (i.filterValue.listId += "," + n, i.hidden = !1, i) : void 0 : i = {
accountId: _,
path: e,
hidden: !1,
filterValue: {
listId: n,
name: e
}
}
},
J = function() {
return S.getSync("MAIL_SEARCH_THREADING")
},
Q = function() {
var e = J() ? s.getSearchListThreaded : s.getSearchList;
e().then(function(e) {
I = e, D = x(), k = D.slice(), M = h.getAllFolderFilters(), window.requestIdleCallback(ie), L.emitChange("addremove")
})
},
Z = function() {
return J() ? u : c
},
q = function(e, t, n) {
var i = d(e, t),
a = x(),
r = h.getAllFolderFilters(),
s = !1;
n.forEach(function(n) {
n.accountId = e, n.path = t;
var l = o(I, n, Z()),
c = 0,
u = 0,
A = 0;
l < 0 ? (I.splice(-l - 1, 0, n), c = E(n) || 0, u = n.unseen || 0, A = 1) : (c = E(n) - E(I[l]), u = 0, I[l] = n), V(n), n.listId && (G(n, a, r), s = !0), P(r, e, t, n) && i(c, u, A, O), R(n, c, u, A, a, r)
}), s && W(s), L.emitChange("addremove")
},
X = function(e, t, n) {
var i = d(e, t),
a = x(),
r = h.getAllFolderFilters();
n.forEach(function(n) {
var s = o(I, Object.assign(n, {
accountId: e,
path: t
}), Z());
if (s >= 0) {
var l = I[s],
c = P(r, e, t, l);
l.flags = n.flags, n.dUnseen === -1 && (l.unseen = !1);
var u = P(r, e, t, l);
c === u ? n.dTotal = 0 : c && !u ? n.dTotal = -1 : n.dTotal = 1, i(n.dUnread, n.dUnseen, n.dTotal, O), R(l, n.dUnread, n.dUnseen, n.dTotal, a, r), I[s] = Object.assign({}, l)
}
}), L.emitChange("update")
},
$ = function(e) {
if (e.unseen) {
var t = x(),
n = h.getAllFolderFilters(),
i = o(I, e, Z());
I[i] = Object.assign({}, I[i], {
unseen: !1
}), P(n, e.accountId, e.path, e) && d(e.accountId, e.path, 0, -1, 0, O), R(e, 0, -1, 0, t, n), s.markSeen(e), L.emitChange("seen")
}
},
ee = function(e, t, n) {
var i = d(e, t),
a = x(),
r = h.getAllFolderFilters();
I = I.filter(function(s) {
var o = s.accountId === e && s.path === t && n.indexOf(s.uid) > -1;
return o && (P(r, e, t, s) && i(-E(s), -s.unseen, -1, O), R(s, -E(s), -s.unseen, -1, a, r)), !o
}), L.emitChange("addremove")
},
te = 0,
ne = void 0,
ie = function e(t) {
for (0 === te && (O = {}); t.timeRemaining() - .1 > 0 && I.length > te;) {
var n = I[te];
P(M, n.accountId, n.path, n, ne) && d(n.accountId, n.path, E(n), n.unseen, 1, O), R(n, E(n), n.unseen, 1, D, M), ne = n.messageId, te += 1
}
I.length > te ? window.requestIdleCallback(e) : (te = 0, ne = void 0, L.emitChange())
};
i.register(function(e) {
var t = e.action;
switch (t.actionType) {
case a.MAIL_REGENERATE_MAILING_LISTS:
window.requestIdleCallback(H);
break;
case a.MAIL_FILTERS_CHANGED:
i.waitFor([h.dispatchToken]), D = x(), k = D.slice(), M = h.getAllFolderFilters(), window.requestIdleCallback(ie);
break;
case a.MAIL_MESSAGES_INIT:
Q();
break;
case a.MAIL_ADD_MESSAGES:
q(t.accountId, t.path, t.messages);
break;
case a.MAIL_UPDATE_MESSAGES:
X(t.accountId, t.path, t.updates);
break;
case a.MAIL_MARK_SEEN:
$(t.sle);
break;
case a.MAIL_REMOVE_MESSAGES:
ee(t.accountId, t.path, t.uids)
}
}), e.exports = L
}, function(e, t, n) {
// =========================
// Function_392
// =========================
"use strict";
var i = n(8),
a = n(6),
r = n(18).EventEmitter,
s = "change",
o = Object.assign({}, r.prototype, {
emitChangeParam: function(e) {
this.emit(s, e)
},
emitChange: function() {
this.emit(s)
},
addChangeListener: function(e) {
this.on(s, e)
},
removeChangeListener: function(e) {
this.removeListener(s, e)
}
});
i.register(function(e) {
var t = e.action;
switch (t.actionType) {
case a.TAB_NEW_TAB:
o.emitChangeParam({
action: "newTab",
url: t.url
});
break;
case a.TAB_NEW_BACKGROUND_TAB:
o.emitChangeParam({
action: "newBackgroundTab",
url: t.url
});
break;
case a.TAB_CLOSE_ALL_BUT_ACTIVE_TAB:
o.emitChangeParam({
action: "closeAllButActiveTab"
});
break;
case a.TAB_SWITCH_BACK_SETTING:
o.emitChangeParam({
action: "switchTabBackBySetting",
maybeEvent: t.maybeEvent
});
break;
case a.TAB_SWITCH_FORWARD_SETTING:
o.emitChangeParam({
action: "switchTabForwardBySetting",
maybeEvent: t.maybeEvent
});
break;
case a.TAB_SWITCH_BACK_HISTORY:
o.emitChangeParam({
action: "switchTabBackByHistory",
maybeEvent: t.maybeEvent
});
break;
case a.TAB_SWITCH_FORWARD_HISTORY:
o.emitChangeParam({
action: "switchTabForwardByHistory",
maybeEvent: t.maybeEvent
});
break;
case a.TAB_SWITCH_BACK_ORDER:
o.emitChangeParam({
action: "switchTabBackByOrder",
maybeEvent: t.maybeEvent
});
break;
case a.TAB_SWITCH_FORWARD_ORDER:
o.emitChangeParam({
action: "switchTabForwardByOrder",
maybeEvent: t.maybeEvent
});
break;
case a.TAB_UNDO_RECENTLY_CLOSED:
o.emitChangeParam({
action: "reopenRecentlyClosed"
});
break;
case a.TAB_VIEW_PAGE_SOURCE:
o.emitChangeParam({
action: "viewPageSource"
});
break;
case a.TAB_STACK_UNTILE:
o.emitChangeParam({
action: "stackUntile"
});
break;
case a.TAB_STACK_TILE_GRID:
o.emitChangeParam({
action: "stackTileGrid"
});
break;
case a.TAB_STACK_TILE_HORIZONTAL:
o.emitChangeParam({
action: "stackTileHorizontal"
});
break;
case a.TAB_STACK_TILE_VERTICAL:
o.emitChangeParam({
action: "stackTileVertical"
});
break;
case a.TAB_TOGGLE_THUMBNAIL:
o.emitChangeParam({
action: "tabThumbnail"
});
break;
default:
return !0
}
return !0
}), e.exports = o
}, function(e, t, n) {
// =========================
// Function_393
// =========================
"use strict";
function i(e) {
return e in r ? r[e] : e
}
var a = n(2),
r = {
"Invalid URL.": a("Invalid URL."),
"Nickname exists.": a("Nickname exists.")
};
e.exports = i
}, function(e, t, n) {
// =========================
// Function_394
// =========================
"use strict";
var i = n(4),
a = ["be", "gl", "is", "mk", "hy", "nn"],
r = void 0;
r = a.indexOf(i.i18n.getUILanguage()) === -1 ? [i.i18n.getUILanguage(), "en-US"] : ["en-US"];
var s = new Intl.DateTimeFormat(r, {
year: "numeric",
month: "long",
day: "numeric",
hour: "numeric",
minute: "numeric"
}),
o = new Intl.DateTimeFormat(r, {
month: "short",
day: "numeric",
hour: "numeric",
minute: "numeric"
}),
l = new Intl.DateTimeFormat(r, {
hour: "numeric",
minute: "numeric"
}),
c = new Intl.DateTimeFormat(r, {
day: "numeric",
month: "short"
}),
u = new Intl.DateTimeFormat(r, {
day: "2-digit",
month: "2-digit",
year: "numeric"
});
e.exports = {
dateTimeLong: function(e) {
return s.format(e)
},
dateTimeShort: function(e) {
return o.format(e)
},
dateTimeRelative: function(e) {
var t = new Date,
n = new Date(t.getFullYear(), t.getMonth(), t.getDate()),
i = new Date(t.getFullYear(), 0, 1);
return e > n ? l.format(e) : e > i ? c.format(e) : u.format(e)
}
}
}, function(e, t) {
// =========================
// Function_395
// =========================
"use strict";
var n = ["mail.google.com"],
i = function(e, t) {
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 999,
a = "+",
r = "",
s = "",
o = !1;
if (!e || !t) return "";
for (var l in n) t.indexOf(n[l]) !== -1 && (o = !0);
return r = o ? e.match(/[\(\[\{](\d+)[\}\]\)]/) : e.match(/^\((\d+)\D*?\)/), r && r[1] && r[1] > 0 && (s = parseInt(r[1])), s > i && (s = a), s
};
e.exports = i
}, function(e, t, n) {
// =========================
// Function_396
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
var a = n(88),
r = i(a),
s = function(e, t) {
var n = {
ctrlKey: [17],
altKey: [18],
metaKey: [91, 93]
};
return Object.keys(n).filter(function(t) {
return e[t]
}).filter(function(e) {
return n[e].indexOf(t.keyCode) !== -1
}).some(Boolean)
},
o = function() {
var e = !1;
return function(t, n, i) {
return i = i || null, (0, r.default)(t) ? void(e !== !0 && (e = !0, document.addEventListener("keyup", function a(r) {
s(t, r) && (e = !1, n.call(i, r), document.removeEventListener("keyup", a))
}))) : void n.call(i)
}
}();
t.modifierIsUp = s, t.modifierUpListener = o
}, function(e, t) {
// =========================
// Function_397
// =========================
"use strict";
var n = {
3: "Break",
8: "Backspace",
9: "Tab",
12: "Clear",
13: "Enter",
16: "Shift",
17: "Ctrl",
18: "Alt",
19: "Pause",
20: "Capslock",
27: "Escape",
32: "Space",
33: "PageUp",
34: "PageDown",
35: "End",
36: "Home",
37: "Left",
38: "Up",
39: "Right",
40: "Down",
41: "Select",
42: "Print",
43: "Execute",
44: "PrintScreen",
45: "Insert",
46: "Del",
48: "0",
49: "1",
50: "2",
51: "3",
52: "4",
53: "5",
54: "6",
55: "7",
56: "8",
57: "9",
58: ":",
59: "None",
60: "<",
61: "=",
63: "ß",
64: "@",
65: "A",
66: "B",
67: "C",
68: "D",
69: "E",
70: "F",
71: "G",
72: "H",
73: "I",
74: "J",
75: "K",
76: "L",
77: "M",
78: "N",
79: "O",
80: "P",
81: "Q",
82: "R",
83: "S",
84: "T",
85: "U",
86: "V",
87: "W",
88: "X",
89: "Y",
90: "Z",
91: "Meta",
92: "None",
93: "Meta",
96: "Numpad0",
97: "Numpad1",
98: "Numpad2",
99: "Numpad3",
100: "Numpad4",
101: "Numpad5",
102: "Numpad6",
103: "Numpad7",
104: "Numpad8",
105: "Numpad9",
106: "*",
107: "+",
108: ",",
109: "-",
110: ".",
111: "/",
112: "F1",
113: "F2",
114: "F3",
115: "F4",
116: "F5",
117: "F6",
118: "F7",
119: "F8",
120: "F9",
121: "F10",
122: "F11",
123: "F12",
124: "F13",
125: "F14",
126: "F15",
127: "F16",
128: "F17",
129: "F18",
130: "F19",
131: "F20",
132: "F21",
133: "F22",
134: "F23",
135: "F24",
144: "NumLock",
145: "Scrolllock",
160: "^",
161: "!",
163: "#",
164: "$",
165: "None",
166: "BrowserBack",
167: "BrowserForward",
169: ")",
170: "*",
171: "+",
173: "None",
174: "None",
175: "None",
176: "Next",
177: "Previous",
178: "Stop",
179: "None",
180: "None",
181: "None",
182: "None",
183: "None",
186: ";",
187: "=",
188: ",",
189: "-",
190: ".",
191: "/",
192: "None",
193: "None",
194: ".",
219: "[",
220: "\\",
221: "]",
222: "'",
223: "`",
224: "Meta",
225: "AltGraph",
226: "None",
230: "None",
233: "None",
234: "None",
255: "None"
};
e.exports = n
}, function(e, t) {
// =========================
// Function_398
// =========================
"use strict";
e.exports = {
padLeftZeros: function(e, t) {
if (e ? "number" == typeof e && (e = e.toString()) : e = "", e.length >= t) return e;
for (var n = "", i = 0; i < t - e.length; i++) n += "0";
return n + e
}
}
}, function(e, t, n) {
// =========================
// Function_399
// =========================
"use strict";
var i = n(4),
a = function(e, t) {
i.windows.get(e, function(n) {
var a = n.extData && JSON.parse(n.extData) || {},
r = JSON.stringify(Object.assign(a, t));
i.windows.update(e, {
extData: r
})
})
};
e.exports = a
}, function(e, t) {
// =========================
// Function_400
// =========================
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
t.createIdleListener = function() {
var e = void 0,
t = void 0,
n = void 0,
i = void 0,
a = void 0;
return function(r, s, o, l) {
var c = (new Date).getTime();
r !== e || s !== t ? (e = r, t = s, n = c) : r === e && s === t && r !== i && s !== a && n && c - n > o && (l(), i = r, a = s, e = t = n = void 0)
}
}
}, function(e, t, n) {
// =========================
// Function_401
// =========================
"use strict";
var i = n(116),
a = n(36),
r = n(20),
s = r.urls,
o = function(e) {
if (s.isInternalUrl(e.get("url"))) {
var t = Object.keys(s.internals).find(function(t) {
return e.get("url").startsWith(s.internals[t])
});
if (t) return s.getDisplayTitle(e)
}
return a.parse(i(e.get("url"))).hostname
},
l = function(e, t) {
var n = o(e);
return [n, t.filter(function(e) {
return "tab" === e.type
}).filter(function(e) {
return !e.getIn(["page", "pinned"])
}).filter(function(e) {
return o(e.get("page")) === n
})]
};
e.exports = l
}, function(e, t, n) {
// =========================
// Function_402
// =========================
"use strict";
var i = n(4),
a = function(e) {
return function() {
for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
return new Promise(function(t, a) {
e.apply(void 0, n.concat([function() {
i.runtime.lastError ? a(i.runtime.lastError) : t.apply(void 0, arguments)
}]))
})
}
};
e.exports = a
}, function(e, t) {
// =========================
// Function_403
// =========================
"use strict";
function n(e) {
try {
return decodeURI(e)
} catch (t) {
return e
}
}
e.exports = n
}, function(e, t) {
// =========================
// Function_404
// =========================
"use strict";
function n(e) {
try {
return decodeURIComponent(e)
} catch (t) {
return e
}
}
e.exports = n
}, function(e, t) {
// =========================
// Function_405
// =========================
e.exports = "PNG\r\n\n\0\0\0\rIHDR\0\0\0\0\0\0\b\0\0\0óÿa\0\0\0ÉIDATxÚÓ½\nÂ0Àq_«£»ïQ}uriA°»8§~Ì:èæøv+mCRZ(\r¥Ä\\᤹\rü¸ÿÉl¾øË¸sÖ?L´Ö«¥çyÇq¶Ø´mûÅ{\b!$FÈ@Ó4;#\0J©\0Ú~ĨëúÐçºî>\fÃ;ð}ÿ\fw¬ªª'2Påµ('\"æÁ3Ïóì8q'RÊ\rà¿QeNÜÉ@$$\0\0\0\0IEND®B`"
}, function(e, t) {
// =========================
// Function_406
// =========================
e.exports = "PNG\r\n\n\0\0\0\rIHDR\0\0\0\0\0\0\b\0\0\0µú7ê\0\0\0©IDATxcøÏVÀ`ÃPÃÐ\0
)\fÌ\nÒ\"\fìPÅà© A
](\tÂ\f|\f¹\fµH°Á¨ x£ùÐ[¡¤@\0ûABù`¢¸!XAH0Ê!`,\bGÈÆÉpX²²'# \b»(è©ë©«0@D¤ ÏTP;ä2#hÀ2Ç&\0¥ñÄͳ\0\0\0\0IEND®B`"
}, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t) {
// =========================
// Function_458
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_459
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_460
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_461
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_462
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_463
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_464
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_465
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_466
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_467
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_468
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_469
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_470
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_471
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_472
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_473
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_474
// =========================
e.exports = '\n'
}, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t) {
// =========================
// Function_548
// =========================
"use strict";
e.exports = {
ar: function(e) {
var t = 0 === e ? 0 : 1 === e ? 1 : 2 === e ? 2 : e % 100 >= 3 && e % 100 <= 10 ? 3 : e % 100 >= 11 ? 4 : 5;
return t
},
bar: function(e) {
var t = 1 !== e;
return t
},
be: function(e) {
var t = e % 10 === 1 && e % 100 !== 11 ? 0 : e % 10 >= 2 && e % 10 <= 4 && (e % 100 < 12 || e % 100 > 14) ? 1 : e % 10 === 0 || e % 10 >= 5 && e % 10 <= 9 || e % 100 >= 11 && e % 100 <= 14 ? 2 : 3;
return t
},
bg: function(e) {
var t = 1 !== e;
return t
},
bs: function(e) {
var t = e % 10 === 1 && e % 100 !== 11 ? 0 : e % 10 >= 2 && e % 10 <= 4 && (e % 100 < 10 || e % 100 >= 20) ? 1 : 2;
return t
},
"ca@valencia": function(e) {
var t = 1 !== e;
return t
},
ca: function(e) {
var t = 1 !== e;
return t
},
cs: function(e) {
var t = 1 === e ? 0 : e >= 2 && e <= 4 ? 1 : 2;
return t
},
da: function(e) {
var t = 1 !== e;
return t
},
de: function(e) {
var t = 1 !== e;
return t
},
el: function(e) {
var t = 1 !== e;
return t
},
en: function(e) {
var t = 1 !== e;
return t
},
eo: function(e) {
var t = 1 !== e;
return t
},
"es-MX": function(e) {
var t = 1 !== e;
return t
},
"es-PE": function(e) {
var t = 1 !== e;
return t
},
es: function(e) {
var t = 1 !== e;
return t
},
et: function(e) {
var t = 1 !== e;
return t
},
eu: function(e) {
var t = 1 !== e;
return t
},
fa: function(e) {
var t = 0;
return t
},
fi: function(e) {
var t = 1 !== e;
return t
},
fil: function(e) {
var t = e > 1;
return t
},
fr: function(e) {
var t = e > 1;
return t
},
fy: function(e) {
var t = 1 !== e;
return t
},
gd: function(e) {
var t = 1 === e || 11 === e ? 0 : 2 === e || 12 === e ? 1 : e > 2 && e < 20 ? 2 : 3;
return t
},
gl: function(e) {
var t = 1 !== e;
return t
},
he: function(e) {
var t = 1 !== e;
return t
},
hi: function(e) {
var t = 1 !== e;
return t
},
hr: function(e) {
var t = e % 10 === 1 && e % 100 !== 11 ? 0 : e % 10 >= 2 && e % 10 <= 4 && (e % 100 < 10 || e % 100 >= 20) ? 1 : 2;
return t
},
hu: function(e) {
var t = 1 !== e;
return t
},
hy: function(e) {
var t = 1 !== e;
return t
},
id: function(e) {
var t = 0;
return t
},
io: function(e) {
var t = 1 !== e;
return t
},
is: function(e) {
var t = e % 10 !== 1 || e % 100 === 11;
return t
},
it: function(e) {
var t = 1 !== e;
return t
},
ja: function(e) {
var t = 0;
return t
},
jbo: function(e) {
var t = 0;
return t
},
ka: function(e) {
var t = 0;
return t
},
kn: function(e) {
var t = 1 !== e;
return t
},
ko: function(e) {
var t = 0;
return t
},
ku: function(e) {
var t = 1 !== e;
return t
},
ln: function(e) {
var t = e > 1;
return t
},
lt: function(e) {
var t = e % 10 === 1 && e % 100 !== 11 ? 0 : e % 10 >= 2 && (e % 100 < 10 || e % 100 >= 20) ? 1 : 2;
return t
},
lv: function(e) {
var t = e % 10 === 1 && e % 100 !== 11 ? 0 : 0 !== e ? 1 : 2;
return t
},
mk: function(e) {
var t = e % 10 === 1 && e % 100 !== 11 ? 0 : 1;
return t
},
nb: function(e) {
var t = 1 !== e;
return t
},
nl: function(e) {
var t = 1 !== e;
return t
},
nn: function(e) {
var t = 1 !== e;
return t
},
pl: function(e) {
var t = 1 === e ? 0 : e % 10 >= 2 && e % 10 <= 4 && (e % 100 < 10 || e % 100 >= 20) ? 1 : 2;
return t
},
"pt-BR": function(e) {
var t = e > 1;
return t
},
"pt-PT": function(e) {
var t = e > 1;
return t
},
ro: function(e) {
var t = 1 === e ? 0 : 0 === e || e % 100 > 0 && e % 100 < 20 ? 1 : 2;
return t
},
ru: function(e) {
var t = e % 10 === 1 && e % 100 !== 11 ? 0 : e % 10 >= 2 && e % 10 <= 4 && (e % 100 < 12 || e % 100 > 14) ? 1 : e % 10 === 0 || e % 10 >= 5 && e % 10 <= 9 || e % 100 >= 11 && e % 100 <= 14 ? 2 : 3;
return t
},
sc: function(e) {
var t = 1 !== e;
return t
},
sk: function(e) {
var t = 1 === e ? 0 : e >= 2 && e <= 4 ? 1 : 2;
return t
},
sl: function(e) {
var t = e % 100 === 1 ? 0 : e % 100 === 2 ? 1 : e % 100 === 3 || e % 100 === 4 ? 2 : 3;
return t
},
sq: function(e) {
var t = 1 !== e;
return t
},
"sr-Latn": function(e) {
var t = e % 10 === 1 && e % 100 !== 11 ? 0 : e % 10 >= 2 && e % 10 <= 4 && (e % 100 < 10 || e % 100 >= 20) ? 1 : 2;
return t
},
sr: function(e) {
var t = e % 10 === 1 && e % 100 !== 11 ? 0 : e % 10 >= 2 && e % 10 <= 4 && (e % 100 < 10 || e % 100 >= 20) ? 1 : 2;
return t
},
sv: function(e) {
var t = 1 !== e;
return t
},
tr: function(e) {
var t = e > 1;
return t
},
uk: function(e) {
var t = e % 10 === 1 && e % 100 !== 11 ? 0 : e % 10 >= 2 && e % 10 <= 4 && (e % 100 < 10 || e % 100 >= 20) ? 1 : 2;
return t
},
vi: function(e) {
var t = 0;
return t
},
"zh-CN": function(e) {
var t = 0;
return t
},
"zh-TW": function(e) {
var t = 0;
return t
}
}
}, function(e, t, n) {
// =========================
// Function_549
// =========================
"use strict";
var i = n(8),
a = n(6),
r = {
setActiveWebView: function(e) {
i.handleViewAction({
actionType: a.WEBVIEW_SET_ACTIVE,
webview: e
})
}
};
e.exports = r
}, function(e, t, n) {
// =========================
// Function_550
// =========================
"use strict";
var i = n(8),
a = n(6),
r = {
setBackgroundTasks: function(e) {
i.handleViewAction({
actionType: a.BACKGROUND_TASKS_SET,
tasks: e
})
}
};
e.exports = r
}, function(e, t, n) {
// =========================
// Function_551
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
var a = n(8),
r = i(a),
s = n(6),
o = i(s),
l = n(4),
c = i(l),
u = n(130),
A = i(u),
d = n(7),
h = {
clearBrowsingData: function(e, t) {
c.default.browsingData.remove({
since: t
}, (0, d.omit)(e, "typedHistory"), function() {
e.history && A.default.removeLocalHistory(t), r.default.handleViewAction({
actionType: o.default.BROWSING_DATA_REMOVED,
dataTypes: e,
since: t
})
})
}
};
e.exports = h
}, function(e, t, n) {
// =========================
// Function_552
// =========================
"use strict";
function i() {
var e, t = function(t) {
t.clipboardData.types.indexOf("text/plain") > -1 && (e = t.clipboardData.getData("text/plain"), t.preventDefault())
};
return document.addEventListener("paste", t), document.execCommand("paste"), document.removeEventListener("paste", t), e
}
var a = n(55),
r = n(4),
s = n(10),
o = ["INPUT", "FRAME", "IFRAME", "OBJECT", "SELECT", "TEXTAREA", "EMBED"],
l = {
undo: function() {
r.editcommand.execute("undo")
},
redo: function() {
r.editcommand.execute("redo")
},
cut: function() {
r.editcommand.execute("cut")
},
copy: function() {
r.editcommand.execute("copy")
},
paste: function() {
r.editcommand.execute("paste")
},
selectAll: function() {
r.editcommand.execute("selectAll")
},
pasteAsPlainText: function() {
var e = i();
o.indexOf(document.activeElement.tagName) > -1 || document.activeElement.isContentEditable ? document.execCommand("insertText", !1, e) : "WEBVIEW" === document.activeElement.tagName && document.activeElement.getFocusedElementInfo(function(t, n, i) {
console.log(i), i || (window.event.preventDefault(), document.activeElement.executeScript({
code: "document.execCommand('insertText', false, " + JSON.stringify(e) + ");"
}))
})
},
pasteAsPlainTextOrPastAndGo: function(e) {
var t = i();
document.activeElement.classList.contains("vivaldi-addressfield") ? a.doAction("urlPasteAndGo") : document.activeElement.classList.contains("vivaldi-searchfield") ? a.doAction("searchPasteAndGo") : o.indexOf(document.activeElement.tagName) > -1 || document.activeElement.isContentEditable ? document.execCommand("insertText", !1, t) : "WEBVIEW" === document.activeElement.tagName ? document.activeElement.getFocusedElementInfo(function(e, n, i) {
i ? (window.event.preventDefault(), document.activeElement.executeScript({
code: "document.execCommand('insertText', false, " + JSON.stringify(t) + ");"
})) : a.doAction("urlPasteAndGo")
}) : a.doAction("urlPasteAndGo")
},
createNoteFromSelection: function() {
var e = i();
e && s.notes.create({
type: "note",
content: e
})
}
};
e.exports = l
}, function(e, t, n) {
// =========================
// Function_553
// =========================
"use strict";
var i = n(4),
a = n(8),
r = n(6),
s = r.SPATNAV_NAVIGATE,
o = function(e, t) {
var n = document.activeElement,
r = n && "WEBVIEW" === n.tagName.toUpperCase();
if (r) {
var o = {
actionType: s,
direction: e
};
a.handleViewAction(o);
var l = parseInt(n.getAttribute("tab_id"));
i.tabs.sendMessage(l, o)
}
};
e.exports = {
left: o.bind(void 0, "left"),
up: o.bind(void 0, "up"),
right: o.bind(void 0, "right"),
down: o.bind(void 0, "down")
}
}, function(e, t, n) {
// =========================
// Function_554
// =========================
"use strict";
var i = n(176),
a = n(17),
r = n(8),
s = n(6),
o = n(3),
l = n(2),
c = n(177),
u = c.showNotification,
A = {
toggleMenuPosition: function() {
o.get("SHOW_PANEL", function(e) {
o.set({
SHOW_PANEL: !e
})
})
},
newBackgroundTab: function(e, t, n) {
n && (n.url ? e = n.url : n.source_url && (e = n.source_url)), r.handleViewAction({
actionType: s.TAB_NEW_BACKGROUND_TAB,
url: e
})
},
switchTabBackBySetting: function(e, t) {
r.handleViewAction({
actionType: s.TAB_SWITCH_BACK_SETTING,
maybeEvent: t
})
},
switchTabForwardBySetting: function(e, t) {
r.handleViewAction({
actionType: s.TAB_SWITCH_FORWARD_SETTING,
maybeEvent: t
})
},
switchTabBackByHistory: function(e, t) {
r.handleViewAction({
actionType: s.TAB_SWITCH_BACK_HISTORY,
maybeEvent: t
})
},
switchTabForwardByHistory: function(e, t) {
r.handleViewAction({
actionType: s.TAB_SWITCH_FORWARD_HISTORY,
maybeEvent: t
})
},
switchTabBackByOrder: function(e, t) {
r.handleViewAction({
actionType: s.TAB_SWITCH_BACK_ORDER,
maybeEvent: t
})
},
switchTabForwardByOrder: function(e, t) {
r.handleViewAction({
actionType: s.TAB_SWITCH_FORWARD_ORDER,
maybeEvent: t
})
},
closeAllButActiveTab: function() {
r.handleViewAction({
actionType: s.TAB_CLOSE_ALL_BUT_ACTIVE_TAB
})
},
stackUntile: function() {
r.handleViewAction({
actionType: s.TAB_STACK_UNTILE
})
},
stackTileGrid: function() {
r.handleViewAction({
actionType: s.TAB_STACK_TILE_GRID
})
},
stackTileHorizontal: function() {
r.handleViewAction({
actionType: s.TAB_STACK_TILE_HORIZONTAL
})
},
stackTileVertical: function() {
r.handleViewAction({
actionType: s.TAB_STACK_TILE_VERTICAL
})
},
viewPageSource: function() {
r.handleViewAction({
actionType: s.TAB_VIEW_PAGE_SOURCE
})
},
toggleTabThumbnail: function() {
r.handleViewAction({
actionType: s.TAB_TOGGLE_THUMBNAIL
})
},
capturePage: function(e) {
var t = a.getActivePage(),
n = t ? t.id : 0;
n && i.captureFullpage(n, "png", e, function(t) {
"clipboard" === e && u({
title: l("Page Captured"),
body: l("Image stored in the clipboard.")
})
})
}
};
e.exports = A
}, function(e, t, n) {
// =========================
// Function_555
// =========================
(function(e) {
"use strict";
var t = n(54),
i = n(94),
a = n(231),
r = n(129),
s = n(232),
o = n(65),
l = n(382),
c = (n(66), n(167)),
u = n(15),
A = n(131),
d = n(130),
h = n(1),
m = n(11),
p = n(168),
f = n(74),
g = n(3),
_ = n(4),
v = n(757),
b = h.createFactory(n(636)),
N = h.createFactory(n(638)),
E = n(784),
S = n(758),
T = n(761),
y = n(760),
C = y.loadUASpoof,
I = n(18),
O = I.EventEmitter,
w = n(937),
D = 50,
k = !1,
M = void 0;
M || console.time("JS init startup");
var L = function(e, t) {
return e.displayName = t, M ? e : w.log(e)
};
if (k) {
var P = n(27),
R = n(824);
R(P), window.Perf = n(1038), window.onunhandledrejection = function(e) {
var t = e.reason;
console.warn("Unhandled Promise Rejection: ", t && (t.stack || t)), e.preventDefault()
}, window.React = h
}
var x = function() {
return new Promise(function(e) {
e()
})
},
B = function() {
return new Promise(function(e, t) {
var n = window.isPopup && window.isPopup() ? N() : b();
try {
m.render(n, document.getElementById("app"), e)
} catch (e) {
t(e)
}
})
},
U = function() {
var e = _.app.window.current();
if (e) {
if (!M && k && g.getSync("OPEN_WINDOW_TIMESTAMP")) {
var t = g.getSync("OPEN_WINDOW_TIMESTAMP"),
n = (new Date).getTime(),
i = n - t;
console.log("Time to Window Since Last 'Open Window Command': " + i + "ms"), g.set({
OPEN_WINDOW_TIMESTAMP: 0
})
}
e.show()
} else console.warn("Couldn’t show hidden application window because of missing current window.")
};
O.EventEmitter.defaultMaxListeners = 100, S(), C(), r.initFastForward(), L(g.loadPromise, "vivaldiSettings")().then(L(f.loadPromise, "VivaldiFeatureFlags")).then(function() {
return L(x, "StartMail")()
}).then(function() {
return Promise.all([L(i.loadPromise, "CommandActions")(), L(u.loadPromise, "PageActions")(), L(A.loadPromise, "PanelActions")(), L(p.loadPromise, "TrashActions")(), L(c.loadPromise, "NoteActions")(), L(v, "createProfile")().then(L(t.loadPromise, "BookmarkActions")())])
}).then(function() {
return B()
}).then(function() {
return E({
timeout: D
})
}).then(function() {
return U()
}).then(function() {
return Promise.all([L(a.loadPromise, "ContentScript")(), L(d.loadPromise.bind(d), "HistoryActions")()]);
}).then(function() {
return s.load()
}).then(function() {
return o.load()
}).then(function() {
T.start(), "MacIntel" === navigator.platform && l.init()
}).then(function() {
return !M && console.timeEnd("JS init startup")
}).catch(function(t) {
console.log("Startup Process Failure:", t), U(), k && e.nextTick(function() {
throw t
})
})
}).call(t, n(16))
}, , , , function(e, t, n) {
// =========================
// Function_559
// =========================
(function(t) {
"use strict";
function i(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function a(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
function r(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
var s = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
o = n(117),
l = n(18).EventEmitter,
c = "0",
u = "1",
A = "2",
d = "4",
h = o({
Created: null,
Removed: null,
Changed: null,
Moved: null,
ChildrenReordered: null,
ImportBegan: null,
ImportEnded: null
}),
m = function e(t) {
r(this, e), this.id = t.id, this.parentId = t.parentId, this.index = t.index, this.url = t.url, this.title = t.title || "", this.speeddial = t.speeddial, this.dateAdded = t.dateAdded || Date.now(), this.dateGroupModified = t.dateGroupModified, this.unmodifiable = "managed", this.trash = Boolean(t.trash), this.children = t.children || []
},
p = function(e) {
function n() {
r(this, n);
var e = i(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this));
return e.bookmarksBarFolder = new m({
id: u,
title: "Bookmarks Bar"
}), e.otherBookmarksFolder = new m({
id: A,
title: "Other Bookmarks"
}), e.trashFolder = new m({
id: d,
title: "Trash",
trash: !0
}), e.rootFolder = new m({
id: c,
title: "",
children: [e.bookmarksBarFolder, e.otherBookmarksFolder, e.trashFolder]
}), e.nextId = 3, e.bookmarkItems = {}, e.bookmarkItems[e.rootFolder.id] = e.rootFolder, e.bookmarkItems[e.bookmarksBarFolder.id] = e.bookmarksBarFolder, e.bookmarkItems[e.otherBookmarksFolder.id] = e.otherBookmarksFolder, e.recentBookmarks = [], e.onChanged = {
addListener: e.addEventListener.bind(e, h.Changed)
}, e.onCreated = {
addListener: e.addEventListener.bind(e, h.Created)
}, e.onRemoved = {
addListener: e.addEventListener.bind(e, h.Removed)
}, e.onMoved = {
addListener: e.addEventListener.bind(e, h.Moved)
}, e.onChildrenReordered = {
addListener: e.addEventListener.bind(e, h.ChildrenReordered)
}, e.onImportBegan = {
addListener: e.addEventListener.bind(e, h.ImportBegan)
}, e.onImportEnded = {
addListener: e.addEventListener.bind(e, h.ImportEnded)
}, e
}
return a(n, e), s(n, [{
key: "get",
value: function(e, n) {
var i = this,
a = [].concat(e),
r = a.map(function(e) {
return i.bookmarkItems[e]
});
t.nextTick(function() {
return n && n(r)
})
}
}, {
key: "getTree",
value: function(e) {
var n = this;
t.nextTick(function() {
return e && e([n.rootFolder])
})
}
}, {
key: "getSubTree",
value: function(e, n) {
var i = this.bookmarkItems[e];
t.nextTick(function() {
return n && n([i])
})
}
}, {
key: "create",
value: function(e, n) {
var i = this._getParent(e.parentId),
a = new m({
id: String(this.nextId++),
parentId: i.id,
title: e.title,
url: e.url,
speeddial: e.speeddial
});
this._addChild(i, a, e.index), this.recentBookmarks.push(a), this.bookmarkItems[a.id] = a, t.nextTick(function() {
n && n(a), this.emit(h.Created, a)
}.bind(this))
}
}, {
key: "move",
value: function(e, n, i) {
var a = this.bookmarkItems[e],
r = a.index,
s = this._getParent(a.parentId);
this._removeChild(s, a);
var o = this._getParent(n.parentId);
this._addChild(o, a, n.index), t.nextTick(function() {
i && i(a), this.emit(h.Moved, {
parentId: o.id,
index: a.index,
oldParentId: s.id,
oldIndex: r
})
}.bind(this))
}
}, {
key: "update",
value: function(e, n, i) {
var a = this.bookmarkItems[e];
a.title = n.title || a.title, a.url = n.url || a.title, a.speeddial = void 0 !== n.speeddial ? n.speeddial : a.speeddial, t.nextTick(function() {
i && i(a), this.emit(h.Changed, {
title: a.title,
url: a.url
})
}.bind(this))
}
}, {
key: "remove",
value: function(e, n) {
var i = this.bookmarkItems[e];
this._removeChild(this._getParent(i.parentId), i), t.nextTick(function() {
n && n(i), this.emit(h.Removed, {
parentId: i.parentId,
index: i.index
})
}.bind(this))
}
}, {
key: "removeTree",
value: function(e, n) {
var i = this.bookmarkItems[e];
this._removeChild(this._getParent(i.parentId), i), this._removeChildren(i), t.nextTick(function() {
return n && n()
})
}
}, {
key: "getChildren",
value: function(e, n) {
var i = this.bookmarkItems[e];
t.nextTick(function() {
return n && n(i.children)
})
}
}, {
key: "search",
value: function(e, t) {
t && t([])
}
}, {
key: "getRecent",
value: function(e, n) {
t.nextTick(function() {
n && n(this.recentBookmarks.reverse().slice(0, e))
}.bind(this))
}
}, {
key: "addEventListener",
value: function(e, t) {
this.on(e, t)
}
}, {
key: "_getParent",
value: function(e) {
return e && this.bookmarkItems[e] ? this.bookmarkItems[e] : this.otherBookmarksFolder
}
}, {
key: "_addChild",
value: function(e, t, n) {
n ? e.children.splice(n, 0, t) : e.children = (e.children || []).concat(t), this._updateIndexes(e)
}
}, {
key: "_removeChild",
value: function(e, t) {
e.children = e.children.filter(function(e) {
return e !== t
}), this._updateIndexes(e)
}
}, {
key: "_removeChildren",
value: function(e) {
var t = this;
e.children.forEach(function(e) {
return t._removeChildren(e)
}), e.children = null
}
}, {
key: "_updateIndexes",
value: function(e) {
for (var t = 0; t < e.children.length; t++) e.children.index = t
}
}]), n
}(l);
e.exports = p
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_560
// =========================
(function(t) {
"use strict";
var i = n(559),
a = n(561),
r = n(562),
s = n(563);
window.vivaldiWindowId = 42, window.isPopup = function() {
return !1
};
var o = function() {},
l = {
addListener: o,
removeListener: o
},
c = new r,
u = new s(c),
A = {
app: {
window: {
current: function() {
return {
isFullscreen: function() {
return !1
},
isMaximized: function() {
return !0
},
onMaximized: l,
onMinimized: l,
onFullscreened: l,
onRestored: l,
show: o
}
}
}
},
bookmarks: new i,
contextMenus: {
create: o,
update: o,
remove: o,
removeAll: o,
onClicked: l
},
declarativeWebRequest: {
onRequest: {
removeRules: o,
addRules: o
},
RequestMatcher: o,
SetRequestHeader: o
},
downloads: {
onCreated: l,
onChanged: l,
onErased: l,
onDeterminingFilename: l,
search: o,
setShelfEnabled: o,
pause: o,
resume: o,
erase: o
},
extension: {
getURL: function(e) {
return e
}
},
extensionActionUtils: {
onAdded: l,
onRemoved: l,
onUpdated: l,
onIconLoaded: l,
getToolbarExtensions: o
},
history: {
search: function(e, t) {
t([])
},
onVisited: l,
onVisitRemoved: l
},
i18n: {
getMessage: function(e, t) {
return ""
},
getUILanguage: function() {
return "en-US"
}
},
identity: {
launchWebAuthFlow: function(e, t) {
var n = "https://mpognobbkildjkofajifpdfhcoklimli.chromiumapp.org/",
i = Math.random().toString(36);
t(n + "#access_token=" + i + "&token_type=Bearer&expires_in=3600")
}
},
notifications: {
create: o,
update: o,
clear: o,
getAll: o,
getPermissionLevel: o,
onClosed: l,
onClicked: l,
onButtonClicked: l,
onPermissionLevelChanged: l,
onShowSettings: l
},
runtime: {
sendMessage: o,
onMessage: l,
getPlatformInfo: o,
getPackageDirectoryEntry: o
},
sessions: {
getRecentlyClosed: function(e) {
return e([])
},
onChanged: l
},
topSites: {
get: function(e) {
t.nextTick(e.bind(this, []))
}
},
savedpasswords: {
getSavedPasswordList: function(e) {
return []
}
},
storage: a,
tabs: c,
windows: u,
contentSettings: {
popups: {
set: o,
get: o
},
javascript: {
set: o,
get: o
}
},
commandLinePrivate: {
hasSwitch: o
}
};
e.exports = window.chrome_mock = A
}).call(t, n(16))
}, function(e, t) {
// =========================
// Function_561
// =========================
"use strict";
var n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
i = {},
a = [],
r = {
onChanged: {
addListener: function(e) {
a.push(e)
},
removeListener: function(e) {
var t = a.indexOf(e);
t > -1 && a.splice(t, 1)
}
},
local: {
get: function(e, t) {
var a = {};
if (null === e) Object.assign(a, i);
else if ("string" == typeof e) a[e] = i[e];
else if (Array.isArray(e)) e.forEach(function(e) {
return a[e] = i[e]
});
else {
if ("object" !== ("undefined" == typeof e ? "undefined" : n(e))) throw Error("StorageMock.local.get Error: keys type not correct");
Object.keys(e).forEach(function(t) {
return a[t] = i[t] ? i[t] : e[t]
})
}
t(a)
},
getBytesInUse: function(e, t) {
t(0)
},
set: function(e, t) {
var n = {};
Object.keys(e).forEach(function(t) {
n[t] = {
oldValue: i[t],
newValue: e[t]
}, i[t] = e[t]
}), a.forEach(function(e) {
return e(n, "local")
}), t && t()
},
remove: function(e, t) {
if ("string" == typeof e && (e = [e]), !Array.isArray(e)) throw Error("StorageMock.local.remove Error: keys type not correct");
! function() {
var n = {};
e.forEach(function(e) {
n[e] = {
oldValue: i[e],
newValue: void 0
}, delete i[e]
}), a.forEach(function(e) {
return e(n, "local")
}), t && t()
}()
},
clear: function(t) {
e.exports.local.remove(Object.keys(i))
}
}
};
e.exports = r
}, function(e, t, n) {
// =========================
// Function_562
// =========================
(function(t) {
"use strict";
function i(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
var a = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
r = n(117),
s = n(27),
o = n(18),
l = o.EventEmitter,
c = function() {},
u = r({
Created: null,
Updated: null,
Moved: null,
SelectionChanged: null,
ActiveChanged: null,
Activated: null,
HighlightChanged: null,
Highlighted: null,
Detached: null,
Attached: null,
Removed: null,
Replaced: null,
ZoomChange: null
}),
A = s.fromJS({
id: void 0,
index: void 0,
windowId: window.vivaldiWindowId,
openerTabId: void 0,
selected: !1,
highlighted: !1,
active: !1,
pinned: !1,
url: "",
title: "",
status: "",
incognito: !1,
width: void 0,
height: void 0,
sessionId: void 0
}),
d = 0,
h = function() {
function e() {
var t = this;
i(this, e), this._tabs = s.List(), this.eventEmitter = new l, this.eventEmitter.setMaxListeners(1e3), Object.keys(u).forEach(function(e) {
t["on" + e] = {
addListener: t.addEventListener.bind(t, u[e])
}
})
}
return a(e, [{
key: "addEventListener",
value: function(e, t) {
this.eventEmitter.on(e, t)
}
}, {
key: "get",
value: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : c;
t(this._tabs.find(function(t) {
return t.id === e
}))
}
}, {
key: "getCurrent",
value: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : c;
e(this._tabs.first())
}
}, {
key: "connect",
value: function(e, t) {}
}, {
key: "sendMessage",
value: function(e, t, n, i) {}
}, {
key: "duplicate",
value: function(e) {
arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : c
}
}, {
key: "highlight",
value: function(e, t) {}
}, {
key: "sendRequest",
value: function(e, t, n) {}
}, {
key: "getSelected",
value: function(e, t) {}
}, {
key: "getAllInWindow",
value: function(e, t) {}
}, {
key: "create",
value: function(e) {
var n = this,
i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : c,
a = {
active: !0,
pinned: !1
},
r = A.merge({
id: d++
}).merge(a).merge(e);
this._tabs = this._tabs.push(r), this._tabs = this._tabs.map(function(e, t) {
return e.set("index", t)
}), r.get("active") && (this._tabs = this._tabs.map(function(e) {
return e.set("active", e.get("id") === r.get("id"))
})), r = this._tabs.find(function(e) {
return e.get("id") === r.get("id")
}), t.nextTick(function() {
i(r.toJS()), n.eventEmitter.emit(u.Created, r.toJS()), r.get("active") && n.eventEmitter.emit(u.Activated, {
tabId: r.get("id"),
windowId: r.get("windowId")
})
})
}
}, {
key: "query",
value: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : c,
n = s.fromJS(e);
t(this._tabs.filter(function(e) {
return n.isSubset(e)
}).toJS())
}
}, {
key: "update",
value: function(e, n) {
var i = this,
a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : c,
r = s.fromJS(n);
this._tabs = this._tabs.map(function(t) {
return t.get("id") === e ? t.merge(r) : t
});
var o = this._tabs.find(function(t) {
return t.get("id") === e
});
t.nextTick(function() {
a(o)
}), t.nextTick(function() {
i.eventEmitter.emit(u.Updated, o.get("id"), {
status: "complete",
url: o.get("url"),
pinned: o.get("pinned")
}, o.toJS())
}), o.get("active") && t.nextTick(function() {
i.eventEmitter.emit(u.Activated, {
tabId: o.get("id"),
windowId: window.vivaldiWindowId
})
})
}
}, {
key: "move",
value: function(e, t, n) {}
}, {
key: "reload",
value: function(e, t, n) {}
}, {
key: "remove",
value: function(e) {
var n = this,
i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : c,
a = Array.isArray(e) ? e : [e];
this._tabs.filter(function(e) {
return !a.find(function(t) {
return t === e.id
})
}), t.nextTick(function() {
i(), a.forEach(function(e) {
n.eventEmitter.emit(u.Removed, e, {
windowId: 42,
isWindowClosing: n._tabs.isEmpty()
})
}), n._tabs.isEmpty() || n._tabs.find(function(e) {
return e.get("active")
}) || n.update(n._tabs.getIn([-1, "id"]), {
active: !0
})
})
}
}, {
key: "detectLanguage",
value: function(e, t) {}
}, {
key: "captureVisibleTab",
value: function(e, t, n) {}
}, {
key: "executeScript",
value: function(e, t, n) {}
}, {
key: "insertCSS",
value: function(e, t, n) {}
}, {
key: "setZoom",
value: function(e, t, n) {}
}, {
key: "getZoom",
value: function(e, t) {}
}, {
key: "setZoomSettings",
value: function(e, t, n) {}
}, {
key: "getZoomSettings",
value: function(e, t) {}
}]), e
}();
e.exports = h
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_563
// =========================
(function(t) {
"use strict";
function i(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
var a = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
r = n(117),
s = n(18),
o = s.EventEmitter,
l = r({
onCreated: null,
onRemoved: null,
onFocusChanged: null
}),
c = function() {
function e(t) {
var n = this;
i(this, e), this.chromeTabs = t, this.WINDOW_ID_NONE = -1, this.WINDOW_ID_CURRENT = -2, this.windows = {}, this.windows[window.vivaldiWindowId] = {
id: window.vivaldiWindowId,
extData: ""
}, this.eventEmitter = new o, Object.keys(l).forEach(function(e) {
n["on" + e] = {
addListener: n.addEventListener.bind(n, l[e])
}
})
}
return a(e, [{
key: "addEventListener",
value: function(e, t) {
this.eventEmitter.on(e, t)
}
}, {
key: "get",
value: function(e, n, i) {
var a = this.windows[e];
a && n.populate && (a.tabs = this.chromeTabs._tabs);
var r = "function" == typeof n ? n : i;
"function" == typeof r && t.nextTick(function() {
return r(a)
})
}
}, {
key: "getCurrent",
value: function(e, t) {}
}, {
key: "getLastFocused",
value: function(e, t) {}
}, {
key: "getAll",
value: function(e, t) {}
}, {
key: "create",
value: function(e, t) {}
}, {
key: "update",
value: function(e, t, n) {}
}, {
key: "remove",
value: function(e, t) {}
}]), e
}();
e.exports = c
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_564
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/actionlog/ActionLog.jsx",
a = n(1),
r = n(762),
s = n(26),
o = n(30),
l = a.createClass({
displayName: "ActionLog",
getInitialState: function() {
return {
actionLog: ""
}
},
_actionLoggerChanged: function() {
this.setState({
actionLog: r.getAction()
})
},
componentWillMount: function() {
r.addChangeListener(this._actionLoggerChanged)
},
componentWillUnmount: function() {
r.removeChangeListener(this._actionLoggerChanged)
},
getContextMenuItems: function() {
return [Object.assign({
handler: r.clear.bind(r)
}, o("Clear"))]
},
render: function() {
return a.createElement("div", {
className: "actionlog",
id: "action_logger",
tabIndex: "0",
onContextMenu: s(this.getContextMenuItems),
__source: {
fileName: i,
lineNumber: 36
}
}, a.createElement("textarea", {
className: "actionlogs",
readOnly: "true",
value: this.state.actionLog,
__source: {
fileName: i,
lineNumber: 38
}
}))
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_565
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/bookmarks-manager/bookmarks-manager.jsx",
a = n(1),
r = n(11),
s = n(351),
o = n(352),
l = n(50),
c = n(169),
u = n(96),
A = n(98),
d = n(69),
h = n(3),
m = n(2),
p = n(4),
f = n(26),
g = n(108),
_ = g.PLACEHOLDER_URL,
v = [{
text: m("Title"),
value: "title",
fullScreenTitle: m("Sort by Title")
}, {
text: m("Address"),
value: "url",
fullScreenTitle: m("Sort by Address")
}, {
text: m("Nickname"),
value: "nickname",
fullScreenTitle: m("Sort by Nickname")
}, {
text: m("Description"),
value: "description",
fullScreenTitle: m("Sort by Description")
}],
b = a.createClass({
displayName: "BookmarksManager",
getInitialState: function() {
return {
parentSelectedId: null,
filter: "",
bookmarkSorting: {
sortOrder: A.NO_SORTING,
sortField: "manually"
},
isCreating: !1
}
},
componentWillMount: function() {
var e = this;
h.get("BOOKMARKS_MANAGER_BOOKMARKSSORT", function(t) {
e.onSortChange(t.sortOrder, t.sortField)
})
},
getDefaultProps: function() {
return {
open: !0
}
},
isFolder: function(e) {
return e.children && e.children.length > 0 || void 0 === e.url
},
onSortChange: function(e, t) {
var n = d(this.state, {
bookmarkSorting: {
sortOrder: {
$set: e
},
sortField: {
$set: t
}
}
});
this.setState(n);
var i = {
sortOrder: e,
sortField: t
};
h.set({
BOOKMARKS_MANAGER_BOOKMARKSSORT: i
})
},
toggleSpeeddial: function(e) {
p.bookmarks.update(e.id, {
speeddial: !e.speeddial
}, function(e) {})
},
importData: function() {
l.showImportData()
},
onFocusTree: function() {
r.findDOMNode(this.refs.tree).focus()
},
onSelect: function(e) {
e && this.refs.editor.setItem(e), !this.state.isCreating || e && e.url === _ || this.setState({
isCreating: !1
})
},
onCreate: function(e) {
e && this.setState({
isCreating: !0
})
},
onUpdate: function() {
this.state.isCreating && this.setState({
isCreating: !1
})
},
removeIfCreating: function(e) {
this.state.isCreating && (e && p.bookmarks.remove(e, function() {
p.bookmarks.remove(e)
}), this.refs.tree.selectNextAfterDelete(), this.setState({
isCreating: !1
}))
},
getSelectedItem: function() {
return this.refs.tree.getSelectedItem()
},
deleteItem: function() {
this.refs.tree.onDelete()
},
updateThumbnailHandler: function() {
var e = this.refs.tree.getSelectedBookmarks(),
t = !0,
n = !1,
i = void 0;
try {
for (var a, r = e[Symbol.iterator](); !(t = (a = r.next()).done); t = !0) {
var s = a.value;
this._updateThumbnail(s)
}
} catch (e) {
n = !0, i = e
} finally {
try {
!t && r.return && r.return()
} finally {
if (n) throw i
}
}
},
_updateThumbnail: function(e) {
if (this.isFolder(e))
for (var t = 0; t < e.children.length; t++) this._updateThumbnail(e.children[t]);
else u.updateBookmarkThumbnail(e)
},
onSearchChange: function(e) {
this.setState({
filter: e.target.value
})
},
createBookmark: function() {
this.refs.tree.onAdd(!1)
},
createFolder: function() {
this.refs.tree.onAdd(!0)
},
onContextMenu: function(e) {
this.refs.tree.unSelectAll(), f(this.refs.tree.getRootContextMenuItems())(e)
},
render: function() {
return this.props.open ? a.createElement("div", {
className: "manager",
ref: "panelElement",
style: this.props.style,
__source: {
fileName: i,
lineNumber: 184
}
}, a.createElement("div", {
className: "manager-content",
__source: {
fileName: i,
lineNumber: 187
}
}, a.createElement("div", {
className: "toolbar-wrapper",
__source: {
fileName: i,
lineNumber: 188
}
}, a.createElement("div", {
className: "toolbar icons",
__source: {
fileName: i,
lineNumber: 189
}
}, a.createElement("button", {
className: "button-toolbar add",
onClick: this.createBookmark,
__source: {
fileName: i,
lineNumber: 190
}
}, a.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(80)
},
__source: {
fileName: i,
lineNumber: 192
}
}), a.createElement("span", {
className: "buttontext",
__source: {
fileName: i,
lineNumber: 193
}
}, m("New Bookmark"))), a.createElement("button", {
className: "button-toolbar folder",
onClick: this.createFolder,
__source: {
fileName: i,
lineNumber: 195
}
}, a.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(216)
},
__source: {
fileName: i,
lineNumber: 197
}
}), a.createElement("span", {
className: "buttontext",
__source: {
fileName: i,
lineNumber: 198
}
}, m("New Folder"))), a.createElement("button", {
className: "button-toolbar delete",
onClick: this.deleteItem,
__source: {
fileName: i,
lineNumber: 200
}
}, a.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(92)
},
__source: {
fileName: i,
lineNumber: 202
}
}), a.createElement("span", {
className: "buttontext",
__source: {
fileName: i,
lineNumber: 203
}
}, m("other", "Delete"))), a.createElement("button", {
className: "button-toolbar import",
onClick: this.importData,
__source: {
fileName: i,
lineNumber: 205
}
}, a.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(1014)
},
__source: {
fileName: i,
lineNumber: 207
}
}), a.createElement("span", {
className: "buttontext",
__source: {
fileName: i,
lineNumber: 208
}
}, m("Import..."))), a.createElement("button", {
className: "button-toolbar updatethumb",
onClick: this.updateThumbnailHandler,
__source: {
fileName: i,
lineNumber: 210
}
}, a.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(1020)
},
__source: {
fileName: i,
lineNumber: 212
}
}), a.createElement("span", {
className: "buttontext",
__source: {
fileName: i,
lineNumber: 213
}
}, m("Update Thumbnails"))), a.createElement("div", {
className: "bookmark-filter",
__source: {
fileName: i,
lineNumber: 215
}
}, a.createElement("input", {
value: this.state.filter,
onChange: this.onSearchChange,
type: "search",
placeholder: m("Search..."),
__source: {
fileName: i,
lineNumber: 216
}
})))), a.createElement(c, {
fields: v,
onSortChange: this.onSortChange,
fullsize: !0,
sortField: this.state.bookmarkSorting.sortField,
sortOrder: this.state.bookmarkSorting.sortOrder,
__source: {
fileName: i,
lineNumber: 224
}
}), a.createElement("div", {
className: "manager-treeview",
__source: {
fileName: i,
lineNumber: 230
}
}, a.createElement("div", {
className: "vivaldi-tree-container",
onContextMenu: this.onContextMenu,
__source: {
fileName: i,
lineNumber: 232
}
}, a.createElement(o, {
filter: this.state.filter,
ref: "tree",
fullView: !0,
inManager: !0,
onEdit: this.onSelect,
onToggleSpeeddial: this.toggleSpeeddial,
onSelect: this.onSelect,
onCreate: this.onCreate,
sorting: this.state.bookmarkSorting,
__source: {
fileName: i,
lineNumber: 234
}
})))), a.createElement(s, {
ref: "editor",
getSelectedItem: this.getSelectedItem,
removeIfCreating: this.removeIfCreating,
onUpdate: this.onUpdate,
onFocusTree: this.onFocusTree,
__source: {
fileName: i,
lineNumber: 246
}
})) : a.createElement("span", {
__source: {
fileName: i,
lineNumber: 180
}
})
}
});
e.exports = b
}, function(e, t, n) {
// =========================
// Function_566
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/bookmarks/bookmarksPanel.jsx",
a = n(1),
r = n(11),
s = n(69),
o = n(352),
l = n(351),
c = n(58),
u = n(134),
A = n(3),
d = n(13),
h = n(169),
m = n(98),
p = n(2),
f = n(4),
g = n(5),
_ = n(113),
v = n(26),
b = n(21),
N = 174,
E = 174,
S = 600,
T = n(108),
y = T.PLACEHOLDER_URL,
C = [{
text: p("Title"),
value: "title",
fullScreenTitle: p("Sort by Title")
}, {
text: p("Address"),
value: "url",
fullScreenTitle: p("Sort by Address")
}, {
text: p("Nickname"),
value: "nickname",
fullScreenTitle: p("Sort by Nickname")
}, {
text: p("Description"),
value: "description",
fullScreenTitle: p("Sort by Description")
}, {
text: p("Created"),
value: "dateAdded",
fullScreenTitle: p("Sort by Date Created")
}],
I = a.createClass({
displayName: "BookmarksPanel",
mixins: [d],
vivaldiSettingsKeys: ["BOOKMARKS_EDITOR_HEIGHT", "KEY_ACCESS"],
getInitialState: function() {
return {
filter: "",
editor: !1,
bookmarkSorting: {
sortOrder: m.NO_SORTING,
sortField: "manually",
comparator: this.sortComparator
}
}
},
componentWillMount: function() {
var e = this;
A.get("BOOKMARKS_PANEL_BOOKMARKSSORT", function(t) {
e.onSortChange(t.sortOrder, t.sortField)
})
},
componentDidMount: function() {
c.addChangeListener(this.onPanelStoreChange)
},
componentWillUnmount: function() {
c.removeChangeListener(this.onPanelStoreChange)
},
componentDidUpdate: function(e, t) {
!e.open && this.props.open && r.findDOMNode(this.refs.tree).focus()
},
shouldComponentUpdate: function(e, t) {
return b(this, e, t)
},
onPanelStoreChange: function(e) {
this.props.open && "setFocus" === e && !_(r.findDOMNode(this)) && r.findDOMNode(this.refs.tree).focus()
},
onSelect: function(e) {
this.state.editor ? e ? this.refs.editor.setItem(e) : this.toggleEdit() : this._isCreating && this.toggleEdit(e), this._isCreating && (this.isFolder(e) && e.title || !this.isFolder(e) && (!e || e.url !== y)) && (this._isCreating = !1)
},
addBookmark: function() {
this.onAdd(!1)
},
addFolder: function() {
this.onAdd(!0)
},
onAdd: function(e) {
this.refs.tree.onAdd(e)
},
onCreate: function(e) {
e && (this._isCreating = !0)
},
onUpdate: function() {
this._isCreating = !1
},
removeIfCreating: function(e) {
this._isCreating && (e && f.bookmarks.remove(e, function() {
f.bookmarks.remove(e)
}), this._isCreating = !1)
},
focusTree: function() {
var e = this;
this.setState({
editor: !1
}, function() {
r.findDOMNode(e.refs.tree).focus()
})
},
deleteItem: function() {
this.refs.tree.onDelete(), this.state.editor && this.toggleEdit()
},
onEdit: function() {
this.toggleEdit()
},
toggleEdit: function(e) {
var t = this;
e = e || this.refs.tree.getSelectedItem(), (this.state.editor || e) && this.setState({
editor: !this.state.editor
}, function() {
t.state.editor ? (t.refs.editor.setItem(e), t.refs.tree.scrollToId(e.id)) : t.refs.tree.forceUpdate()
})
},
toggleSpeeddial: function(e) {
f.bookmarks.update(e.id, {
speeddial: !e.speeddial
})
},
onSortChange: function(e, t) {
var n = s(this.state, {
bookmarkSorting: {
sortOrder: {
$set: e
},
sortField: {
$set: t
}
}
});
this.setState(n);
var i = {
sortOrder: e,
sortField: t
};
A.set({
BOOKMARKS_PANEL_BOOKMARKSSORT: i
})
},
sortComparator: function(e, t) {
if (e.trash) return 1;
if (t.trash) return -1;
if (this.isFolder(e) && !this.isFolder(t)) return -1;
if (this.isFolder(t) && !this.isFolder(e)) return 1;
var n = this.state.bookmarkSorting,
i = n.sortOrder,
a = n.sortField,
r = m.getDefaultComparator(i, a);
return r(e, t)
},
collapseAll: function() {
this.refs.tree.collapseAllFolders()
},
expandAll: function() {
this.refs.tree.expandAllFolders()
},
onSlidebarPosition: function(e, t) {
var n = r.findDOMNode(this.refs.bookmarksEditor),
i = n.getBoundingClientRect(),
a = i.bottom - t;
a > S ? a = S : a < E && (a = E), this.state.BOOKMARKS_EDITOR_HEIGHT && this.state.BOOKMARKS_EDITOR_HEIGHT > a && this.refs.tree.forceUpdate(), A.set({
BOOKMARKS_EDITOR_HEIGHT: a
})
},
resizeToDefault: function() {
A.set({
BOOKMARKS_EDITOR_HEIGHT: N
})
},
isFolder: function(e) {
return !(!e || !e.children && e.url)
},
getSelectedItem: function() {
return this.refs.tree.getSelectedItem()
},
onContextMenu: function(e) {
this.refs.tree.unSelectAll(), v(this.refs.tree.getRootContextMenuItems())(e)
},
onSearchChange: function(e) {
this.setState({
filter: e.target.value
})
},
render: function() {
if (!this.props.open) return null;
var e = g({
"button-toolbar": !0,
edit: !0,
active: this.state.editor
});
return a.createElement("div", {
className: "panel panel-bookmarks",
ref: "bookmarkPanelElement",
__source: {
fileName: i,
lineNumber: 282
}
}, a.createElement("header", {
__source: {
fileName: i,
lineNumber: 283
}
}, a.createElement("h1", {
__source: {
fileName: i,
lineNumber: 284
}
}, p("Bookmarks")), a.createElement("div", {
className: "toolbar icons",
__source: {
fileName: i,
lineNumber: 286
}
}, a.createElement("input", {
type: "search",
placeholder: p("Search..."),
value: this.state.filter,
onChange: this.onSearchChange,
__source: {
fileName: i,
lineNumber: 287
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 291
}
}, a.createElement("button", {
className: "button-toolbar add",
title: p("New Bookmark"),
tabIndex: this.props.keyAccess,
onClick: this.addBookmark,
dangerouslySetInnerHTML: {
__html: n(80)
},
__source: {
fileName: i,
lineNumber: 292
}
}), a.createElement("button", {
className: "button-toolbar folder",
title: p("New Folder"),
tabIndex: this.props.keyAccess,
onClick: this.addFolder,
dangerouslySetInnerHTML: {
__html: n(216)
},
__source: {
fileName: i,
lineNumber: 297
}
}), a.createElement("button", {
className: "button-toolbar delete",
title: p("other", "Delete"),
tabIndex: this.props.keyAccess,
onClick: this.deleteItem,
dangerouslySetInnerHTML: {
__html: n(92)
},
__source: {
fileName: i,
lineNumber: 302
}
}), a.createElement("button", {
className: e,
title: p("verb", "Edit"),
tabIndex: this.props.keyAccess,
onClick: this.onEdit,
dangerouslySetInnerHTML: {
__html: n(217)
},
__source: {
fileName: i,
lineNumber: 307
}
})))), a.createElement(h, {
fields: C,
onSortChange: this.onSortChange,
keyAccess: this.props.keyAccess,
sortField: this.state.bookmarkSorting.sortField,
sortOrder: this.state.bookmarkSorting.sortOrder,
__source: {
fileName: i,
lineNumber: 317
}
}), a.createElement("section", {
onContextMenu: this.onContextMenu,
__source: {
fileName: i,
lineNumber: 324
}
}, a.createElement(o, {
ref: "tree",
filter: this.state.filter,
fullView: !1,
inManager: !1,
onToggleSpeeddial: this.toggleSpeeddial,
onEdit: this.onEdit,
onSelect: this.onSelect,
onCreate: this.onCreate,
sorting: this.state.bookmarkSorting,
__source: {
fileName: i,
lineNumber: 326
}
})), this.state.editor && a.createElement("section", {
className: "panel-bookmarks-edit limited",
ref: "bookmarksEditor",
style: {
flexBasis: this.state.BOOKMARKS_EDITOR_HEIGHT || N
},
__source: {
fileName: i,
lineNumber: 337
}
}, a.createElement(u, {
onSlidebarPosition: this.onSlidebarPosition,
onDoubleClick: this.resizeToDefault,
position: "bottom",
__source: {
fileName: i,
lineNumber: 340
}
}), a.createElement(l, {
ref: "editor",
getSelectedItem: this.getSelectedItem,
removeIfCreating: this.removeIfCreating,
onUpdate: this.onUpdate,
onFocusTree: this.focusTree,
__source: {
fileName: i,
lineNumber: 344
}
})))
}
});
e.exports = I
}, function(e, t, n) {
// =========================
// Function_567
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/bookmarksbar/bookmarksbar.jsx",
a = n(1),
r = n(69),
s = n(54),
o = n(51),
l = n(40),
c = n(568),
u = n(45),
A = n(17),
d = n(178),
h = n(98),
m = n(3),
p = n(2),
f = n(4),
g = n(26),
_ = n(249),
v = n(30),
b = a.createClass({
displayName: "BookmarksBar",
clipboardItem: {},
dropMode: {
support: !1,
copy: !1
},
getInitialState: function() {
return {
bookmarksData: o.getBookmarksBarNodes(),
dragoverBookmarkObj: {
id: -1
},
width: document.documentElement.clientWidth,
bookmarkSorting: {
sortOrder: h.NO_SORTING,
sortField: "manually"
},
cutIds: o.getCutIds(),
editId: -1,
newItemAdded: !1,
renderedArray: []
}
},
componentWillReceiveProps: function(e) {
e.display !== this.props.display && this._onStoreChange()
},
_onStoreChange: function() {
var e = o.getBookmarksBarNodes(),
t = this.getRenderedItems(e, this.state.bookmarkSorting, this.state.newItemAdded === !0 ? this.state.editId : -1);
this.setState({
bookmarksData: e,
renderedArray: t,
cutIds: o.getCutIds()
})
},
getRenderedItems: function(e, t, n) {
var i = _(e);
if (i.length > 0 && t && t.sortOrder >= h.ASCENDING_SORT && (h.treeSort(i, h.getDefaultComparator(t.sortOrder, t.sortField)), n !== -1)) {
var a = i.findIndex(function(e) {
return e.id === n
});
a !== -1 && i.splice(0, 0, i.splice(a, 1)[0])
}
return i
},
componentWillMount: function() {
var e = this;
m.get("BOOKMARKS_BAR_BOOKMARKSSORT", function(t) {
e._onSortChange(t.sortOrder, t.sortField)
}), o.addChangeListener(this._onStoreChange)
},
componentWillUnmount: function() {
o.removeChangeListener(this._onStoreChange)
},
onKeyDown: function(e) {
e.keyCode === u.KEY_ESCAPE && this.resetDragoverObj()
},
openItem: function(e, t, n) {
var i = l.getOpenOptionsFromEvent(t);
i.bookmarks = l.getBookmarksByNode(e), l.open(i, !0)
},
showDropMenu: function(e, t) {
var n = this,
i = function e(t) {
if (t.children) {
var i = [];
return t.children.length > 0 && (t.children.forEach(function(t) {
i.push(e(t))
}), i.push({
name: "---"
})), i.push({
name: p("Add Active Tab"),
handler: s.bookmarkPageInFolder.bind(n, A.getActivePage(), t.id)
}), {
mnemonic: !1,
name: n.trimTitle(t.title),
bookmarkFolder: !0,
items: i
}
}
return {
mnemonic: !1,
name: n.trimTitle(t.title),
url: t.url,
handler: n.openItem.bind(null, t)
}
};
if (e.children) {
var a = [];
return e.children.length > 0 && (e.children.forEach(function(e) {
a.push(i(e, this))
}.bind(this)), a.push({
name: "---"
})), a.push({
name: p("Add Active Tab"),
handler: s.bookmarkPageInFolder.bind(this, A.getActivePage(), e.id)
}), {
mnemonic: !1,
bookmarkFolder: !0,
name: e.title,
items: a
}
}
var r = {};
return r.mnemonic = !1, r.name = e.title, r.url = e.url, r.handler = this.openItem.bind(null, e), r
},
trimTitle: function(e) {
return e.length > 50 ? e.substring(0, 50) + "..." : e
},
onButtonRendered: function(e, t) {
for (var n = this.state.renderedArray, i = 0; i < n.length; i++)
if (n[i].id === e) {
if (n[i].buttonWidth !== t && this.state.editId === -1) {
var a = this.state.renderedArray.slice();
a[i].buttonWidth = t, this.setState({
renderedArray: a
})
}
break
}
},
onResize: function(e) {
var t = e[0].target;
this.setState({
width: Math.floor(t.clientWidth)
})
},
_createNewTopFolder: function() {
var e = this,
t = {
parentId: o.getBookmarkBarFolderId(),
title: p("New Folder"),
index: 0,
url: ""
};
f.bookmarks.create(t, function(t) {
f.runtime.lastError || e.setState({
editId: t.id,
newItemAdded: !0
})
})
},
resetDragoverObj: function() {
this.setState({
dragoverBookmarkObj: {
id: -1,
position: "",
index: null
}
})
},
onEditChanged: function(e) {
if (e === -1) {
var t = this.getRenderedItems(this.state.bookmarksData, this.state.bookmarkSorting, -1);
this.setState({
renderedArray: t,
newItemAdded: !1,
editId: -1
})
} else this.setState({
editId: e
})
},
onDragEndBookmark: function() {
this.draggedId = -1, this.resetDragoverObj()
},
onDropBar: function(e) {
e.preventDefault(), e.stopPropagation(), this.dropMode.support ? ! function() {
var t = l.getMimeType();
if (e.dataTransfer.types.findIndex(function(e) {
return e === t
}) !== -1) {
var n = JSON.parse(e.nativeEvent.dataTransfer.getData(t));
l.isCopyModifierPressed(e) ? s.copyBookmarks(n, o.getBookmarkBarFolderId(), o.getBookmarksBarNodes().length) : s.moveBookmarksPromise(n, o.getBookmarkBarFolderId(), o.getBookmarksBarNodes().length)
} else l.getUrlsFromEventPromise(e, !1).then(function(e) {
return s.createBookmarks(e, o.getBookmarkBarFolderId(), o.getBookmarksBarNodes().length)
})
}() : l.getUrlsFromEventPromise(e, !1).then(function(e) {
return s.createBookmarks(e, o.getBookmarkBarFolderId(), o.getBookmarksBarNodes().length)
}), this.resetDragoverObj()
},
onDragEnter: function(e) {
this.dropMode = this.supportDropForEvent(e)
},
onDragOverBar: function(e) {
e.preventDefault(), e.stopPropagation(), this.dropMode.support && (e.dataTransfer.dropEffect = this.dropMode.copy ? "copy" : "move")
},
onDragOver: function(e, t) {
if (e.id !== this.draggedId) {
var n = "";
if (this.state.bookmarkSorting.sortOrder === h.NO_SORTING) {
var i = t.currentTarget.getBoundingClientRect(),
a = (t.clientX - i.left) / i.width;
n = this.isFolder(e) ? a <= .33 ? "left" : a > .66 ? "right" : "on" : a <= .5 ? "left" : "right";
} else this.isFolder(e) && (n = "on");
(this.state.dragoverBookmarkObj.id !== e.id || this.state.dragoverBookmarkObj.id === e.id && this.state.dragoverBookmarkObj.position !== n) && this.setState({
dragoverBookmarkObj: {
id: e.id,
position: n,
index: e.index
}
})
}
},
onDragStart: function(e) {
this.draggedId = e
},
supportDropForEvent: function(e) {
var t = l.getMimeType(),
n = {};
return n.support = e.dataTransfer.types.some(function(e) {
return "text/uri-list" === e || e === t
}), n.copy = n.support && (l.isCopyModifierPressed(e) || !e.dataTransfer.types.some(function(e) {
return e === t
})), n
},
findBookmarkItem: function(e) {
var t = {},
n = function n(i) {
return i.id === e ? t = i : void(i.children && i.children.forEach(function(e) {
n(e)
}))
};
return this.state.bookmarksData.forEach(function(e) {
n(e)
}.bind(this)), t
},
isFolder: function(e) {
return !!e && (e.children && e.children.length > 0 || void 0 === e.url)
},
onCut: function(e) {
s.cut(e, [this.clipboardItem.id]), e.stopPropagation(), e.preventDefault()
},
onCopy: function(e) {
s.copy(e, [this.clipboardItem.id]), e.stopPropagation(), e.preventDefault()
},
onPaste: function(e) {
var t = this.clipboardItem.id === o.getBookmarkBarFolderId();
s.pastePromise(e, this.clipboardItem.id, t)
},
onCutContextMenu: function(e) {
this.clipboardItem = e, document.addEventListener("cut", this.onCut), document.execCommand("cut"), document.removeEventListener("cut", this.onCut)
},
onCopyContextMenu: function(e) {
this.clipboardItem = e, document.addEventListener("copy", this.onCopy), document.execCommand("copy"), document.removeEventListener("copy", this.onCopy)
},
onPasteContextMenu: function(e) {
this.clipboardItem = e, document.addEventListener("paste", this.onPaste), document.execCommand("paste"), document.removeEventListener("paste", this.onPaste)
},
getExtenderButtonItems: function() {
for (var e = 10, t = [], n = !1, i = 0; i < this.state.renderedArray.length; i++) {
var a = this.state.renderedArray[i];
n || (e += a.buttonWidth ? a.buttonWidth : 0, n = e > this.state.width), n && this.state.editId !== a.id && (a.title = this.trimTitle(a.title), t.push(this.showDropMenu(a, "bottom")))
}
return t
},
_onSortOrderChange: function() {
var e = this.state.bookmarkSorting.sortOrder === h.DESCENDING_SORT ? h.ASCENDING_SORT : h.DESCENDING_SORT;
this._onSortChange(e, this.state.bookmarkSorting.sortField)
},
_onTitleSortChange: function(e) {
var t = this.state.bookmarkSorting.sortOrder;
"manually" !== e && t === h.NO_SORTING ? t = h.ASCENDING_SORT : "manually" === e && (t = h.NO_SORTING), this._onSortChange(t, e)
},
_onSortChange: function(e, t) {
var n = r(this.state, {
bookmarkSorting: {
sortOrder: {
$set: e
},
sortField: {
$set: t
}
}
});
this.setState(n);
var i = {
sortOrder: e,
sortField: t
};
m.set({
BOOKMARKS_BAR_BOOKMARKSSORT: i
});
var a = this.getRenderedItems(this.state.bookmarksData, i, this.state.newItemAdded === !0 ? this.state.editId : -1);
this.setState({
renderedArray: a
})
},
getContextMenu: function() {
var e = o.getItemById(o.getBookmarkBarFolderId()),
t = [Object.assign({
handler: this._createNewTopFolder
}, v("New Folder")), Object.assign({
items: [Object.assign({
handler: this._onTitleSortChange.bind(this, "manually"),
type: "checkbox",
checked: "manually" === this.state.bookmarkSorting.sortField
}, v("Manually")), Object.assign({
handler: this._onTitleSortChange.bind(this, "title"),
type: "checkbox",
checked: "title" === this.state.bookmarkSorting.sortField
}, v("by Title")), Object.assign({
handler: this._onTitleSortChange.bind(this, "url"),
type: "checkbox",
checked: "url" === this.state.bookmarkSorting.sortField
}, v("by Address")), Object.assign({
handler: this._onTitleSortChange.bind(this, "nickname"),
type: "checkbox",
checked: "nickname" === this.state.bookmarkSorting.sortField
}, v("by Nickname")), Object.assign({
handler: this._onTitleSortChange.bind(this, "description"),
type: "checkbox",
checked: "description" === this.state.bookmarkSorting.sortField
}, v("by Description")), Object.assign({
handler: this._onTitleSortChange.bind(this, "dateAdded"),
type: "checkbox",
checked: "dateAdded" === this.state.bookmarkSorting.sortField
}, v("by Date Created"))]
}, v("Sort")), {
name: "---"
}, Object.assign({
handler: this.onPasteContextMenu.bind(this, e)
}, "MacIntel" === navigator.platform ? v("mac", "Paste") : v("win_linux", "Paste"))];
if (this.state.bookmarkSorting.sortOrder !== h.NO_SORTING) {
var n = p(this.state.bookmarkSorting.sortOrder === h.ASCENDING_SORT ? "Descending" : "Ascending");
t[1].items.push({
name: "---"
}), t[1].items.push({
name: n,
handler: this._onSortOrderChange
})
}
return console.log("items", t), t
},
renderBookmarkBarButton: function(e) {
return a.createElement(c, {
ref: e.id,
key: e.id,
item: e,
edit: this.state.editId === e.id,
isCut: this.state.cutIds.indexOf(e.id) !== -1,
onEditChanged: this.onEditChanged,
keyAccess: this.props.keyAccess,
onDragStart: this.onDragStart,
onDragEnd: this.onDragEndBookmark,
onDragOver: this.onDragOver,
supportDropForEvent: this.supportDropForEvent,
createNewTopFolder: this._createNewTopFolder,
display: this.props.display,
statusOff: this.props.statusOff,
dragoverState: this.state.dragoverBookmarkObj,
resetDragoverState: this.resetDragoverObj,
onButtonRendered: this.onButtonRendered,
onCut: this.onCutContextMenu.bind(this, e),
onCopy: this.onCopyContextMenu.bind(this, e),
onPaste: this.onPasteContextMenu.bind(this, e),
__source: {
fileName: i,
lineNumber: 542
}
})
},
render: function() {
for (var e = !1, t = 10, r = [], s = 0; s < this.state.renderedArray.length; s++) {
var o = this.state.renderedArray[s],
l = t + (o.buttonWidth ? o.buttonWidth : 0);
if (l > this.state.width && this.state.editId !== o.id) {
e = this.state.editId === -1;
break
}
r.push(this.renderBookmarkBarButton(o)), t = l
}
var c = e > 0 ? a.createElement("button", {
className: "chevron",
title: p("More bookmarks"),
tabIndex: this.props.keyAccess,
dangerouslySetInnerHTML: {
__html: n(459)
},
onClick: g(this.getExtenderButtonItems, null, "bottom"),
__source: {
fileName: i,
lineNumber: 584
}
}) : null;
return a.createElement("div", {
className: "bookmark-bar",
onDragEnter: this.onDragEnter,
onDragOver: this.onDragOverBar,
onDragLeave: this.resetDragoverObj,
onDrop: this.onDropBar,
onContextMenu: g(this.getContextMenu),
__source: {
fileName: i,
lineNumber: 595
}
}, a.createElement(d, {
className: "observer",
onKeyDown: this.onKeyDown,
onResize: this.onResize,
__source: {
fileName: i,
lineNumber: 602
}
}, r), c)
}
});
e.exports = b
}, function(e, t, n) {
// =========================
// Function_568
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/bookmarksbar/bookmarksbarItem.jsx",
a = n(1),
r = n(11),
s = n(54),
o = n(40),
l = n(234),
c = n(45),
u = n(17),
A = n(47),
d = n(2),
h = n(4),
m = n(5),
p = n(26),
f = n(30),
g = a.createClass({
displayName: "BookmarksBarItem",
regularWidth: -1,
dropMode: {
support: !1,
copy: !1
},
getInitialState: function() {
return {
dragging: !1,
isEditing: this.props.edit,
title: this.props.item.title
}
},
componentDidUpdate: function() {
var e = r.findDOMNode(this.refs.bookmarkButton).offsetWidth;
this.props.onButtonRendered(this.props.item.id, e), this.state.isEditing || (this.regularWidth = e)
},
componentDidMount: function() {
var e = r.findDOMNode(this.refs.bookmarkButton).offsetWidth;
this.props.onButtonRendered(this.props.item.id, e)
},
rename: function() {
this.setState({
isEditing: !0,
title: this.props.item.title
}), this.props.onEditChanged(this.props.item.id)
},
handleChange: function(e) {
this.setState({
title: e.target.value
})
},
handleKeyDown: function(e) {
var t = e.keyCode;
t === c.KEY_ENTER || t === c.KEY_RETURN ? (this.saveTitle(e.target.value), this.refs.input.blur()) : t === c.KEY_ESCAPE && (this.cancelEdit(), this.refs.input.blur())
},
killEvent: function(e) {
e.preventDefault(), e.stopPropagation()
},
cancelEdit: function() {
this.setState({
title: this.props.item.title,
isEditing: !1
}), this.props.onEditChanged(-1)
},
saveTitle: function(e) {
h.bookmarks.update(this.props.item.id, {
title: e
}, function() {
h.runtime.lastError && console.warn("The computer tried to update a bookmark, but The Bookmark API said no: ", h.runtime.lastError.message)
})
},
handleFocus: function(e) {
e.target.select()
},
handleBlur: function(e) {
this.state.title || this.cancelEdit(), this.setState({
isEditing: !1
}), this.props.onEditChanged(-1), this.props.onButtonRendered(this.props.item.id, this.regularWidth)
},
delete: function() {
s.removeBookmark(this.props.item)
},
trimTitle: function(e) {
return e.length > 50 ? e.substring(0, 50) + "..." : e
},
getFolderContent: function(e) {
var t = this,
n = function e(n) {
if (n.children) {
var i = [];
return n.children.length > 0 && (n.children.forEach(function(t) {
i.push(e(t))
}), i.push({
name: "---"
})), i.push(Object.assign({
handler: s.bookmarkPageInFolder.bind(t, u.getActivePage(), n.id)
}, f("Add Active Tab"))), {
mnemonic: !1,
bookmarkFolder: !0,
name: t.trimTitle(n.title),
items: i
}
}
return {
mnemonic: !1,
name: t.trimTitle(n.title),
handler: t.openItem.bind(null, n),
url: n.url
}
},
i = [];
return e.children.length > 0 && (e.children.forEach(function(e) {
i.push(n(e, this))
}.bind(this)), i.push({
name: "---"
})), i.push(Object.assign({
handler: s.bookmarkPageInFolder.bind(this, u.getActivePage(), e.id)
}, f("Add Active Tab"))), i
},
handleItemMouseUp: function(e) {
1 === e.button && 0 === e.buttons && this.handleItemClick(e)
},
handleItemClick: function(e) {
var t = this.props.item;
t.children && 0 === e.button ? p(this.getFolderContent(t), null, "bottom")(e) : this.openItem(t, e)
},
openItem: function(e, t, n) {
var i = o.getOpenOptionsFromEvent(n ? n : t);
i.bookmarks = o.getBookmarksByNode(e), o.open(i, !0)
},
handleDrop: function(e) {
var t = this;
e.preventDefault(), e.stopPropagation(), this.dropMode.support && "" !== this.props.dragoverState.position && ! function() {
var n = "on" === t.props.dragoverState.position ? t.props.item.id : t.props.item.parentId,
i = "on" === t.props.dragoverState.position ? 0 : t.props.dragoverState.index + ("right" === t.props.dragoverState.position ? 1 : 0),
a = o.getMimeType();
if (e.dataTransfer.types.findIndex(function(e) {
return e === a
}) !== -1) {
var r = JSON.parse(e.dataTransfer.getData(a));
o.isCopyModifierPressed(e) ? s.copyBookmarks(r, n, i) : s.moveBookmarksPromise(r, n, i)
} else o.getUrlsFromEventPromise(e, !1).then(function(e) {
return s.createBookmarks(e, n, i)
})
}(), this.props.resetDragoverState()
},
handleDragStart: function(e) {
this.props.onDragStart(this.props.item.id), this.setState({
dragging: !0
});
var t = JSON.stringify([this.props.item.id.toString()]);
e.dataTransfer.setData(o.getMimeType(), t), e.dataTransfer.setData("text/uri-list", this.props.item.url), e.dataTransfer.setData("text/plain", this.props.item.url), e.dataTransfer.effectAllowed = "all"
},
handleDragEnd: function(e) {
this.setState({
dragging: !1
}), this.props.onDragEnd()
},
handleDragLeave: function(e) {},
handleDragEnter: function(e) {
this.dropMode = this.props.supportDropForEvent(e)
},
handleDragOver: function(e) {
e.preventDefault(), e.stopPropagation(), this.dropMode.support && (e.dataTransfer.dropEffect = this.dropMode.copy ? "copy" : "move", this.props.onDragOver(this.props.item, e))
},
handleMouseEnter: function(e) {
A.setStatus(this.props.item.url ? this.props.item.url : this.props.item.title)
},
handleMouseLeave: function(e) {
A.clearStatus()
},
_openInNewWindow: function(e, t, n) {
var i = {
bookmarks: o.getBookmarksByNode(e),
inNewWindow: !0,
inBackground: t,
incognito: n
};
o.open(i, !0)
},
_openInNewTab: function(e, t) {
var n = {
bookmarks: o.getBookmarksByNode(e),
inCurrent: !1,
inBackground: t
};
o.open(n, !0)
},
_open: function(e) {
var t = {
bookmarks: o.getBookmarksByNode(e),
inCurrent: !0
};
o.open(t, !0)
},
isFolder: function(e) {
return !!e && (e.children && e.children.length >= 0 || void 0 === e.url)
},
getContextMenuItems: function(e) {
return [Object.assign({
handler: this._open.bind(this, e)
}, f("Open")), Object.assign({
handler: this._openInNewTab.bind(this, e, !1)
}, f("Open in New Tab")), Object.assign({
handler: this._openInNewTab.bind(this, e, !0)
}, f("Open in Background Tab")), {
name: "---"
}, Object.assign({
handler: this._openInNewWindow.bind(this, e, !1, !1)
}, f("Open in New Window")), Object.assign({
handler: this._openInNewWindow.bind(this, e, !0, !1)
}, f("Open in Background Window")), Object.assign({
handler: this._openInNewWindow.bind(this, e, !1, !0)
}, f("Open in Private Window")), {
name: "---"
}, Object.assign({
handler: this.props.createNewTopFolder
}, f("New Folder")), Object.assign({
handler: this.rename
}, f("Rename")), {
name: "---"
}, Object.assign({
handler: this.props.onCut
}, "MacIntel" === navigator.platform ? f("mac", "Cut") : f("win_linux", "Cut")), Object.assign({
handler: this.props.onCopy
}, "MacIntel" === navigator.platform ? f("mac", "Copy") : f("win_linux", "Copy")), Object.assign({
handler: this.props.onPaste
}, "MacIntel" === navigator.platform ? f("mac", "Paste") : f("win_linux", "Paste")), {
name: "---"
}, Object.assign({
handler: this.delete
}, f("other", "Delete"))]
},
onContextMenu: function(e) {
this.state.isEditing ? e.stopPropagation() : p(this.getContextMenuItems(this.props.item))(e)
},
render: function() {
var e = this.props.item,
t = void 0;
"icon" === this.props.display && e.title && e.url ? (t = e.title, e.url !== "http://" + e.title && (t = t + " (" + e.url + ")")) : "icon" === this.props.display && e.title ? t = e.title : e.url && (t = e.url), void 0 === t && (t = d("Show folder contents"));
var n = !1;
return "icon" !== this.props.display && (n = "iconexceptfolders" !== this.props.display || !e.url), a.createElement("button", {
key: e.id,
ref: "bookmarkButton",
title: t,
tabIndex: this.props.keyAccess,
className: m({
"data-cut": this.props.isCut,
dragging: this.state.dragging,
dragover: this.props.dragoverState.id === e.id && "on" === this.props.dragoverState.position,
dragoverLeft: this.props.dragoverState.id === e.id && "left" === this.props.dragoverState.position,
dragoverRight: this.props.dragoverState.id === e.id && "right" === this.props.dragoverState.position
}),
draggable: !this.state.isEditing,
onDragStart: this.handleDragStart,
onDragEnd: this.handleDragEnd,
onDragEnter: this.handleDragEnter,
onDragOver: this.handleDragOver,
onDrop: this.handleDrop,
onMouseEnter: this.props.statusOff ? null : this.handleMouseEnter,
onMouseLeave: this.props.statusOff ? null : this.handleMouseLeave,
onMouseUp: this.handleItemMouseUp,
onClick: this.handleItemClick,
onContextMenu: this.onContextMenu,
onKeyUp: this.killEvent,
__source: {
fileName: i,
lineNumber: 382
}
}, e.url && "text" !== this.props.display && a.createElement("img", {
src: "chrome://favicon/" + e.url,
width: "16",
alt: "",
__source: {
fileName: i,
lineNumber: 410
}
}), !e.url && "text" !== this.props.display && a.createElement(l, {
__source: {
fileName: i,
lineNumber: 414
}
}), !this.state.isEditing && n && a.createElement("span", {
__source: {
fileName: i,
lineNumber: 418
}
}, e.title), this.state.isEditing && a.createElement("input", {
ref: "input",
type: "text",
value: this.state.title,
onFocus: this.handleFocus,
onBlur: this.handleBlur,
onClick: this.killEvent,
onKeyDown: this.handleKeyDown,
onChange: this.handleChange,
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 421
}
}))
}
});
e.exports = g
}, function(e, t, n) {
// =========================
// Function_569
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/ColorPicker.jsx",
a = n(1),
r = n(180),
s = n(2),
o = n(39),
l = a.createClass({
displayName: "ColorPicker",
mixins: [o],
getInitialState: function() {
return {
dragging: !1,
originalColor: void 0
}
},
componentWillMount: function() {
this.props.color && this.setState({
originalColor: this.props.color
})
},
componentDidMount: function() {
window.addEventListener("mouseup", this.stopPlotMove), this.refs.reticle.focus()
},
componentWillUnmount: function() {
window.removeEventListener("mouseup", this.stopPlotMove)
},
handleClickOutside: function(e) {
this.props.hide && "function" == typeof this.props.hide && this.props.name && this.props.hide(this.props.name)
},
getColorFromPlot: function(e) {
if ("function" == typeof this.props.setColor && this.props.color && this.props.name) {
var t = r(this.props.color),
n = e.currentTarget,
i = n.getBoundingClientRect(),
a = e.clientX - i.left,
s = e.clientY - i.top,
o = isNaN(t.get("hsv.h")) ? 0 : t.get("hsv.h"),
l = a / i.width,
c = (i.height - s) / i.height;
(l > 1 || l < 0 || c > 1 || c < 0) && this.setState({
dragging: !1
}), l = l > 1 ? 1 : l, l = l < 0 ? 0 : l, c = c > 1 ? 1 : c, c = c < 0 ? 0 : c, c = 0 === c && l > 0 ? .01 : c;
var u = r.hsv(o, l, c).hex();
this.props.setColor(u, this.props.name)
}
},
startPlotMove: function(e) {
this.refs.reticle.focus(), this.getColorFromPlot(e), this.setState({
dragging: !0
})
},
plotMove: function(e) {
this.state.dragging && this.getColorFromPlot(e)
},
stopPlotMove: function(e) {
this.setState({
dragging: !1
})
},
onPlotRecticleKeyDown: function(e) {
if (this.props.setColor && "function" == typeof this.props.setColor && this.props.hide && "function" == typeof this.props.hide && this.props.color && this.props.name) {
var t = e.shiftKey ? 10 : 1,
n = r(this.props.color),
i = this.refs.plot.clientWidth,
a = 0,
s = 0;
if ("Enter" === e.key || "Tab" === e.key && e.shiftKey) return this.props.hide(this.props.name), void e.preventDefault();
if ("Escape" === e.key) return this.props.hide(this.props.name), e.preventDefault(), void this.props.setColor(this.state.originalColor, this.props.name, !1);
if ("ArrowUp" === e.key || "ArrowRight" === e.key || "ArrowDown" === e.key || "ArrowLeft" === e.key) {
e.preventDefault(), "ArrowUp" === e.key ? s = 1 * t : "ArrowRight" === e.key ? a = 1 * t : "ArrowDown" === e.key ? s = -1 * t : "ArrowLeft" === e.key && (a = -1 * t);
var o = isNaN(n.get("hsv.h")) ? 0 : n.get("hsv.h"),
l = n.get("hsv.v") * i,
c = n.get("hsv.s") * i,
u = (c + a) / i,
A = (l + s) / i;
u = u > 1 ? 1 : u, u = u < 0 ? 0 : u, A = A > 1 ? 1 : A, A = A < 0 ? 0 : A, A = 0 === A && u > 0 ? .01 : A;
var d = r.hsv(o, u, A).hex();
this.props.setColor(d, this.props.name, !1)
}
}
},
onHueSliderKeyDown: function(e) {
if (this.props.setColor && "function" == typeof this.props.setColor && this.props.hide && "function" == typeof this.props.hide && this.props.name) {
var t = e.shiftKey ? 10 : 1,
n = r(this.props.color),
i = e.currentTarget.clientWidth,
a = 0;
if ("Enter" === e.key) return this.props.hide(this.props.name), void e.preventDefault();
if ("Escape" === e.key) return this.props.hide(this.props.name), e.preventDefault(), void this.props.setColor(this.state.originalColor, this.props.name, !1);
if ("ArrowUp" === e.key || "ArrowRight" === e.key || "ArrowDown" === e.key || "ArrowLeft" === e.key) {
e.preventDefault(), "ArrowRight" === e.key ? a = 1 * t : "ArrowLeft" === e.key && (a = -1 * t);
var s = n.get("hsv.h") / (360 / i),
o = (s + a) * (360 / i);
o = o > 359 ? 359 : o, o = o < 0 ? 0 : o;
var l = n.set("hsv.h", o).hex();
this.props.setColor(l, this.props.name, !1)
}
}
},
onHueSliderChange: function(e) {
if (this.props.setColor && "function" == typeof this.props.setColor && this.props.hide && "function" == typeof this.props.hide && this.props.name && this.props.color) {
var t = r(this.props.color);
t.set("hsv.h", e.currentTarget.value), this.props.setColor(t.hex(), this.props.name)
}
},
onSystemPickerChange: function(e) {
this.props.setColor && "function" == typeof this.props.setColor && this.props.setColor(e.currentTarget.value, this.props.name)
},
onSystemPickerKeyDown: function(e) {
this.props.setColor && "function" == typeof this.props.setColor && this.props.hide && "function" == typeof this.props.hide && this.props.name && ("Escape" === e.key ? (this.props.setColor(this.state.originalColor, this.props.name, !1), this.props.hide(this.props.name)) : "Tab" !== e.key || e.shiftKey || this.props.hide(this.props.name))
},
render: function() {
if (!this.props.name || !this.props.color) return null;
var e = r(this.props.color),
t = isNaN(e.get("hsv.h")) ? 0 : e.get("hsv.h"),
n = 128 - 128 * e.get("hsv.v"),
o = 128 * e.get("hsv.s"),
l = "translateX(" + o + "px)" + ("translateY(" + n + "px)");
return a.createElement("div", {
className: "colorpicker ignore-onclickoutside-" + this.props.name,
outsideClickIgnoreClass: "ignore-onclickoutside-" + this.props.name,
__source: {
fileName: i,
lineNumber: 240
}
}, a.createElement("div", {
className: "colorpicker-plot",
ref: "plot",
onMouseDown: this.startPlotMove,
onMouseMove: this.plotMove,
style: {
backgroundColor: r.hsv(t, 1, 1).hex()
},
__source: {
fileName: i,
lineNumber: 243
}
}, a.createElement("button", {
ref: "reticle",
className: "colorpicker-plot-reticle",
onKeyDown: this.onPlotRecticleKeyDown,
style: {
transform: l
},
__source: {
fileName: i,
lineNumber: 248
}
})), a.createElement("input", {
type: "range",
tabIndex: this.props.keyAccess,
className: "rangeHue",
min: 0,
max: 359,
value: t,
onKeyDown: this.onHueSliderKeyDown,
onChange: this.onHueSliderChange,
__source: {
fileName: i,
lineNumber: 254
}
}), a.createElement("input", {
type: "color",
title: s("Show system color picker"),
tabIndex: this.props.keyAccess,
className: "colorpicker-system",
value: e.hex(),
onKeyDown: this.onSystemPickerKeyDown,
onChange: this.onSystemPickerChange,
__source: {
fileName: i,
lineNumber: 263
}
}))
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_570
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/Dropdown.jsx",
a = n(1),
r = n(236),
s = n(39),
o = n(7),
l = o.isArray,
c = o.find,
u = o.isEqual,
A = n(2),
d = a.createClass({
displayName: "VivaldiDropdown",
mixins: [s],
propTypes: {
store: a.PropTypes.array,
displayField: a.PropTypes.string,
shortcut: a.PropTypes.string,
itemField: a.PropTypes.string,
onItemClicked: a.PropTypes.func,
onClose: a.PropTypes.func,
keyAccess: a.PropTypes.oneOf(["-1", "0"]),
disabled: a.PropTypes.bool
},
getInitialState: function() {
return {
isExpanded: this.props.isExpanded === !0 || !1
}
},
shouldComponentUpdate: function(e, t) {
return !u(this.state, t) || !u(this.props, e)
},
handleClickOutside: function(e) {
this.setState({
isExpanded: !1
})
},
onItemClicked: function(e, t) {
t && t.stopPropagation(), this.props.onItemClicked(e.Id), this.setState({
isExpanded: !1
})
},
collapse: function() {
this.state.isExpanded && ("function" == typeof this.props.onClose && this.props.onClose(), this.setState({
isExpanded: !1
}))
},
expand: function(e) {
e && e.preventDefault(), this.setState({
isExpanded: !this.state.isExpanded
})
},
isExpanded: function() {
return this.state.isExpanded
},
renderDropdown: function() {
return a.createElement(r, {
items: this.props.store,
open: !0,
minWidth: this.props.minWidth,
onClosed: this.collapse,
onItemSelected: this.onItemClicked,
onDeleted: this.props.onDeleted,
__source: {
fileName: i,
lineNumber: 65
}
})
},
renderTrigger: function() {
return "search" === this.props.type ? a.createElement("button", {
className: "button-addressfield input-dropdown search-engines",
tabIndex: this.props.keyAccess,
onMouseDown: this.expand,
title: A("Change search engine"),
dangerouslySetInnerHTML: {
__html: n(973)
},
__source: {
fileName: i,
lineNumber: 77
}
}) : a.createElement("button", {
className: "button-addressfield input-dropdown search-history",
tabIndex: this.props.keyAccess,
onMouseDown: this.expand,
disabled: this.props.disabled,
title: A("Show search history"),
dangerouslySetInnerHTML: {
__html: n(314)
},
__source: {
fileName: i,
lineNumber: 85
}
})
},
renderDefaultValue: function() {
var e, t = this;
l(this.props.store) && this.props.store.length > 0 && (e = c(this.props.store, function(e) {
if (e[t.props.itemField] === t.props.value) return e
}));
var n = a.createElement("a", {
tabIndex: "0",
onFocusout: "",
onClick: this.expand,
__source: {
fileName: i,
lineNumber: 107
}
}, A("Select"));
return e && (n = a.createElement("a", {
tabIndex: "0",
onFocusout: "",
onClick: this.expand,
__source: {
fileName: i,
lineNumber: 113
}
}, this.props.imageField && this.renderImage(e[this.props.imageField]), e[this.props.displayField])), a.createElement("div", {
className: "iconmenu-header",
__source: {
fileName: i,
lineNumber: 121
}
}, n)
},
render: function() {
var e = {};
return e["is-expanded"] = this.state.isExpanded === !0, e["is-collapsed"] = this.state.isExpanded === !1, a.createElement("span", {
__source: {
fileName: i,
lineNumber: 133
}
}, this.props.hideTrigger && this.renderDefaultValue(), !this.props.hideTrigger && this.renderTrigger(), this.state.isExpanded === !0 && this.renderDropdown())
}
});
e.exports = d
}, function(e, t) {
// =========================
// Function_571
// =========================
"use strict";
function n() {
this._length = 0, this._head = null, this._tail = null
}
n.prototype = {
add: function(e) {
var t = {
data: e,
next: null,
prev: null
};
0 === this._length ? (this._head = t, this._tail = t) : (this._tail.next = t, t.prev = this._tail, this._tail = t), this._length++
},
get length() {
return this._length
}
}, e.exports = n
}, function(e, t, n) {
// =========================
// Function_572
// =========================
"use strict";
var i = n(573),
a = !0,
r = {
getInitialState: function() {
return {
navigationModel: new i
}
},
updateKeyboardState: function() {
this.setState({
stateCount: this.state.stateCount++,
selectionModel: this.state.selectionModel
})
},
setMultiSelectInMixin: function(e) {
a = e
},
KeyboardNavigationMixinReset: function() {
this.state.navigationModel.clear()
},
KeyboardNavigationMixinAddToNavigationList: function(e) {
this.state.selectionModel.leadIndex === -1 && (this.state.selectionModel.leadIndex = e, this.state.selectionModel.selectedIds_.push(new Object({
id: e,
selected: !0
})), this.state.selectionModel.anchorIndex = e), this.state.navigationModel.add(e)
},
left: function(e) {
if (this.isfolderAndHasItems && this.isfolderAndHasItems() === !0) {
if (this.state.expandModel && this.state.selectionModel.isSingleItemSelected) {
var t = this.isExpanded(this.state.selectionModel.FirstSingleItemSelected);
t && this.toggleExpandModel(this.state.selectionModel.FirstSingleItemSelected)
}
e.preventDefault(), e.stopPropagation()
}
},
right: function(e) {
if (this.isfolderAndHasItems && this.isfolderAndHasItems() === !0) {
if (this.state.expandModel && this.state.selectionModel.isSingleItemSelected) {
var t = this.isExpanded(this.state.selectionModel.FirstSingleItemSelected);
t || this.toggleExpandModel(this.state.selectionModel.FirstSingleItemSelected)
}
e.preventDefault(), e.stopPropagation()
}
},
log: function() {
for (var e = "", t = this.state.navigationModel.list._head; t;) e = e + t.data + " - ", t = t.next
},
up: function(e) {
var t = this.state.selectionModel.leadIndex,
n = this.state.navigationModel.list._tail;
if (n)
for (; n.prev;) {
if (t === n.data) return this.selectById(n.prev.data, e), this.state.selectionModel.leadIndex = n.prev.data, this.setState({
selectionModel: this.state.selectionModel
}), e && (e.preventDefault(), e.stopPropagation()), !1;
n = n.prev
}
},
down: function(e) {
var t = this.state.selectionModel.leadIndex,
n = this.state.navigationModel.list._head;
if (n)
for (; n.next;) {
if (t === n.data) return this.selectById(n.next.data, e), this.state.selectionModel.leadIndex = n.next.data, this.setState({
selectionModel: this.state.selectionModel
}), e && (e.preventDefault(), e.stopPropagation()), !1;
n = n.next
}
},
home: function() {
var e = this.state.navigationModel.list._head;
this.selectById(e.data)
},
space: function(e) {
var t = this.state.selectionModel.leadIndex,
n = this.state.selectionModel.isSelected(t);
this.state.selectionModel.setIndexSelected(t, !n), this.updateKeyboardState()
},
end: function() {
var e = this.state.navigationModel.list._tail;
this.selectById(e.data)
},
ctrlup: function(e) {
for (var t = this.state.selectionModel.leadIndex, n = this.state.navigationModel.list._tail; n.prev;) {
if (t === n.data) return this.state.selectionModel.leadIndex = n.prev.data, void this.updateKeyboardState();
n = n.prev
}
},
ctrldown: function(e) {
for (var t = this.state.selectionModel.leadIndex, n = this.state.navigationModel.list._head; n.next;) {
if (t === n.data) return this.state.selectionModel.leadIndex = n.next.data, void this.updateKeyboardState();
n = n.next
}
},
shiftup: function() {
var e = this.state.selectionModel.leadIndex;
this.state.selectionModel.unSelectAll(), this.state.selectionModel.anchorIndex === -1 && (this.state.selectionModel.anchorIndex = e);
for (var t, n = this.state.navigationModel.list._tail; n;) {
if (e === n.data) {
if (!n.prev) return;
this.state.selectionModel.leadIndex = n.prev.data, t = n.prev.data;
var i, a = this.isAnchorFirst(this.state.selectionModel.leadIndex);
for (i = a.anchorFirst ? this.state.selectionModel.leadIndex : this.state.selectionModel.anchorIndex; a.node;) {
if (i === a.node.data) return this.state.selectionModel.setIndexSelected(a.node.data, !0), this.state.selectionModel.leadIndex = t, void this.updateKeyboardState();
this.state.selectionModel.setIndexSelected(a.node.data, !0), a.node = a.node.next
}
}
n = n.prev
}
},
shiftdown: function() {
var e = this.state.selectionModel.leadIndex;
this.state.selectionModel.unSelectAll(), this.state.selectionModel.anchorIndex === -1 && (this.state.selectionModel.anchorIndex = e, this.state.selectionModel.setIndexSelected(e, !0));
for (var t, n = this.state.navigationModel.list._head; n;) {
if (e === n.data) {
if (!n.next) return;
this.state.selectionModel.leadIndex = n.next.data, t = n.next.data;
var i, a = this.isAnchorFirst(this.state.selectionModel.leadIndex);
for (i = a.anchorFirst ? this.state.selectionModel.leadIndex : this.state.selectionModel.anchorIndex; a.node;) {
if (i === a.node.data) return this.state.selectionModel.setIndexSelected(a.node.data, !0), this.state.selectionModel.leadIndex = t, void this.updateKeyboardState();
this.state.selectionModel.setIndexSelected(a.node.data, !0), a.node = a.node.next
}
}
n = n.next
}
},
_selectAll: function(e) {
return this.selectAll(), !1
},
KeyboardNavigationMixinOnFocus: function() {
var e = n(37),
t = "MacIntel" === navigator.platform;
e.bind("up", this.up), e.bind("down", this.down), e.bind("left", this.left), e.bind("right", this.right), e.bind("home", this.home), e.bind("end", this.end), e.bind("esc", this.unSelectAll), e.bind(t ? "meta+a" : "ctrl+a", this._selectAll), e.bind(t ? "meta+left" : "ctrl+left", this.left), e.bind(t ? "meta+right" : "ctrl+right", this.right), this.onDelete ? e.bind(t ? "meta+backspace" : "del", this.onDelete) : null, t || (e.bind("ctrl+space", this.space), e.bind("ctrl+up", this.ctrlup), e.bind("ctrl+down", this.ctrldown)), a && (e.bind("shift+up", this.shiftup), e.bind("shift+down", this.shiftdown))
},
KeyboardNavigationMixinOnBlur: function() {
var e = n(37),
t = "MacIntel" === navigator.platform;
e.unbind("up", this.up), e.unbind("down", this.down), e.unbind("left", this.left), e.unbind("right", this.right), e.unbind("home", this.home), e.unbind("end", this.end), e.unbind("esc", this.unSelectAll), e.unbind(t ? "meta+a" : "ctrl+a", this._selectAll), e.unbind(t ? "meta+left" : "ctrl+left", this.left), e.unbind(t ? "meta+right" : "ctrl+right", this.right), this.onDelete ? e.unbind(t ? "meta+backspace" : "del", this.onDelete) : null, t || (e.unbind("ctrl+space", this.space), e.unbind("ctrl+up", this.ctrlup), e.unbind("ctrl+down", this.ctrldown)), a && (e.unbind("shift+up", this.shiftup), e.unbind("shift+down", this.shiftdown))
},
KeyboardNavigationMixinAddItemToNavigationList: function(e, t) {
for (var n = !1, i = this.state.navigationModel._linkedList._head; i;) {
if (e === i.data) {
n = !0;
break
}
i = i.next
}
n || t === -1 || this.KeyboardNavigationMixinAddToNavigationList(e)
}
};
e.exports = r
}, function(e, t, n) {
// =========================
// Function_573
// =========================
"use strict";
function i() {
this._linkedList = new a
}
var a = n(571);
i.prototype = {
add: function(e) {
this._linkedList.add(e)
},
clear: function(e) {
this._linkedList = new a
},
get list() {
return this._linkedList
},
get length() {
return this._linkedList.length
},
get print() {
return 1 === this.selectedIds_.length
}
}, e.exports = i
}, function(e, t, n) {
// =========================
// Function_574
// =========================
"use strict";
var i = n(353),
a = {
getInitialState: function() {
return {
selectionModel: new i,
stateCount: -1
}
},
resetSelectionModel: function() {
this.state.selectionModel.resetSelectionModel(), this.updateState()
},
updateState: function() {
this.setState({
stateCount: this.state.stateCount++
})
},
unSelectAll: function() {
this.state.selectionModel.unSelectAll(), this.updateState()
},
selectNextItemAfterDelete: function(e, t) {
var n = 1,
i = this.state.navigationModel.list._head,
a = this.state.navigationModel.list._tail;
if (i.data === a.data) return null;
if (e === a.data) return n = a.prev.data;
for (; i;) {
if (e === i.data) {
if (!t || !this.isExpanded(i.data)) return n = i.next.data;
for (i = i.next; i;) {
var r = this.findTreeItem(i.data);
if (this.isFolder(r)) return i.data;
if (i = i.next, !i) return null
}
n = i.prev ? i.prev.data : i.next.data
}
i = i.next
}
},
selectAll: function() {
for (var e = [], t = this.state.navigationModel.list._head; t;) e.push(t.data), t = t.next;
this.state.selectionModel.selectAll(e), this.updateState()
},
SelectionMixinGetLead: function() {
return this.state.selectionModel.leadIndex
},
SelectionMixinGetSelected: function() {
return this.state.selectionModel.FirstSingleItemSelected
},
SelectionMixinGetAllSelected: function() {
return this.state.selectionModel.selectedIds
},
SelectionMixinSetSelection: function(e) {
this.state.selectionModel.resetSelectionModel(), this.state.selectionModel.setIndexSelected(e, !0), this.state.selectionModel.leadIndex = e, this.updateState()
},
SelectionMixinIsSelected: function(e) {
return this.state.selectionModel.isSelected(e)
},
SelectionMixinIsLead: function(e) {
return this.state.selectionModel.isSelectionLead(e)
},
SelectionMixinSelectItem: function(e, t, n, i, a) {
this.state.selectionModel.leadIndex = e;
var r = "MacIntel" === navigator.platform ? i : t,
s = this.state.selectionModel.isSelected(e);
if (r || n) s = a ? a : !s;
else {
if (a && this.state.selectionModel.length > 1) return;
this.state.selectionModel.unSelectAll(), s = !0
}
if (n) {
var o, l = this.isAnchorFirst(e);
for (o = l.anchorFirst ? e : this.state.selectionModel.anchorIndex; l.node;) {
if (o === l.node.data) return this.state.selectionModel.setIndexSelected(l.node.data, !0), void this.updateState();
this.state.selectionModel.setIndexSelected(l.node.data, !0), l.node = l.node.next
}
} else this.state.selectionModel.setIndexSelected(e, s);
this.updateState()
},
isAnchorFirst: function(e) {
for (var t = this.state.navigationModel.list._head; t;) {
if (this.state.selectionModel.anchorIndex === t.data) return {
anchorFirst: !0,
node: t
};
if (e === t.data) return {
anchorFirst: !1,
node: t
};
t = t.next
}
}
};
e.exports = a
}, function(e, t, n) {
// =========================
// Function_575
// =========================
"use strict";
var i = n(69),
a = n(353),
r = {
getInitialState: function() {
var e = this.props ? this.props.multiSelect : void 0;
return {
selectionModel: new a(e)
}
},
componentWillReceiveProps: function(e) {
this.props.multiSelect !== e.multiSelect && (this.state.selectionModel.multiSelect = e.multiSelect)
},
resetSelectionModel: function() {
this.state.selectionModel.resetSelectionModel(), this.updateSelectionState(this.state.selectionModel)
},
updateSelectionState: function(e) {
var t = i(this.state.selectionModel, {
$merge: e
});
t.__proto__ = this.state.selectionModel.__proto__, this.setState({
selectionModel: t
})
},
SelectionMixinSelectAll: function() {
this.updateSelectionState(this.state.selectionModel.selectAll(this.getAllIds()))
},
SelectionMixinUnSelectAll: function() {
this.updateSelectionState(this.state.selectionModel.unSelectAll());
},
SelectionMixinGetLead: function() {
return this.state.selectionModel.leadIndex
},
SelectionMixinGetAnchor: function() {
return this.state.selectionModel.anchorIndex
},
SelectionMixinGetSelectionModel: function() {
return this.state.selectionModel
},
SelectionMixinGetSelected: function() {
return this.state.selectionModel.FirstSingleItemSelected
},
SelectionMixinGetAllSelected: function() {
return this.state.selectionModel.selectedIds
},
SelectionMixinIsSelected: function(e) {
return this.state.selectionModel.isSelected(e)
},
SelectionMixinIsLead: function(e) {
return this.state.selectionModel.isSelectionLead(e)
},
SelectionMixinSetLead: function(e) {
this.updateSelectionState(this.state.selectionModel.setLeadIndex(e))
},
SelectionMixinSelectItem: function(e, t, n, i, a) {
var r = this.state.selectionModel.setLeadIndex(e),
s = "MacIntel" === navigator.platform ? i : t,
o = this.state.selectionModel.isSelected(e);
if (s || n) o = a ? a : !o;
else {
if (a && this.state.selectionModel.length > 1) return;
r = Object.assign(r, this.state.selectionModel.unSelectAll()), o = !0
}
if (n) {
var l = this.getSelectedIdsFromIdToAnchor(e);
r = Object.assign(r, this.state.selectionModel.setSelectedIds(l))
} else r = Object.assign(r, this.state.selectionModel.setIndexSelected(e, o));
this.updateSelectionState(r)
},
getSelectedIdsFromIdToAnchor: function(e) {
var t = this.state.selectionModel.anchorIndex,
n = this.getIdsBetween(t, e);
return n
}
};
e.exports = r
}, function(e, t, n) {
// =========================
// Function_576
// =========================
(function(t) {
"use strict";
function n(e) {
var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
return function() {
if (!n.isRunning) {
n.isRunning = !0;
try {
e.apply(this, arguments)
} finally {
t.nextTick(function() {
n.isRunning = !1
})
}
}
}
}
e.exports.throttleSync = n
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_577
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/TreeItem.jsx",
a = n(1),
r = n(9),
s = n(5),
o = n(26),
l = n(7),
c = l.noop,
u = a.createClass({
displayName: "TreeItem",
mixins: [r],
supportDrop: !1,
defaultProps: {
onDragLeave: c
},
isFolder: function() {
return this.props.isFolder(this.props.treeItem)
},
hasChildren: function() {
return this.props.hasChildren(this.props.treeItem)
},
onClick: function(e) {
this.props.onItemClick(this.props.treeItem, e), e.stopPropagation()
},
onDoubleClick: function(e) {
void 0 === this.props.inlineEditText && (this.isFolder() && this.onExpandClick(), this.props.onItemDoubleClick(this.props.treeItem, e))
},
onContextMenu: function(e) {
void 0 !== this.props.inlineEditText ? e.stopPropagation() : o(this.props.getContextMenuItems(this.props.treeItem), this.props.onContextMenuOpen(e, this.props.treeItem))(e)
},
onDragStart: function(e) {
var t = this.props.getAllSelectedItems(!0).map(function(e) {
return e.id
});
if (t = this.props.validateForDrag ? this.props.validateForDrag(t) : [], t.length > 0 && void 0 === this.props.inlineEditText) {
if (this.props.onDragStart(), this.props.mimeType) {
var n = "function" == typeof this.props.mimeType ? this.props.mimeType() : this.props.mimeType;
e.dataTransfer.setData(n, JSON.stringify(t))
}
e.dataTransfer.setData("text/uri-list", this.props.getDragData("text/uri-list", this.props.treeItem)), e.dataTransfer.setData("text/plain", this.props.getDragData("text", this.props.treeItem)), e.dataTransfer.setData("vivaldi/x-title", this.props.getDragData("title", this.props.treeItem)), e.dataTransfer.effectAllowed = "all", this.setState({
dragging: !0
})
}
},
onDragEnd: function(e) {
this.setState({
dragging: !1
}), this.props.onDragEnd()
},
onDragEnter: function(e) {
this.supportDrop = this.props.supportDrop(this.props.treeItem, e)
},
onDrop: function(e) {
e.preventDefault(), e.stopPropagation(), this.supportDrop && this.props.onDrop(e, this.props.treeItem)
},
onDragOver: function(e) {
e.preventDefault(), e.stopPropagation(), this.supportDrop && (e.nativeEvent.dataTransfer.dropEffect = "move", this.props.onDragOver(this.props.treeItem, e))
},
onDragLeave: function(e) {
e.preventDefault(), e.stopPropagation(), this.supportDrop && this.props.onDragLeave(this.props.treeItem, e)
},
onMouseDown: function(e) {
this.props.onMouseDown(this.props.treeItem, e)
},
onMouseUp: function(e) {
this.props.onMouseUp(this.props.treeItem, e)
},
onExpandClick: function() {
this.props.treeItem.children && this.props.treeItem.children.length > 0 && (this.props.toggle(this.props.treeItem.id), event.preventDefault(), event.stopPropagation())
},
onEditChanged: function(e) {
this.props.setInlineEditText(e.target.value)
},
onEditFocus: function(e) {
e.target.select()
},
onEditBlur: function(e) {
this.props.onInlineEditBlur()
},
render: function() {
var e = this.props.selected,
t = this.props.dragOverObj.id === this.props.treeItem.id,
n = this.props.dragOverObj.position,
r = {
node: this.props.treeItem,
isSelected: e,
inlineEditText: this.props.inlineEditText,
onChange: this.onEditChanged,
onFocus: this.onEditFocus,
onBlur: this.onEditBlur
};
return a.createElement("div", {
"data-id": this.props.treeItem.id,
className: "tree-item",
"data-selected": e ? "" : null,
"data-lead": this.props.lead ? "" : null,
"data-cut": this.props.isCut ? "" : null,
"data-expanded": this.props.isExpanded ? "" : null,
onDragEnter: this.props.enableDragAndDrop ? this.onDragEnter : null,
onDragOver: this.props.enableDragAndDrop ? this.onDragOver : null,
onDragLeave: this.props.enableDragAndDrop ? this.onDragLeave : null,
onDrop: this.props.enableDragAndDrop ? this.onDrop : null,
onContextMenu: this.onContextMenu,
__source: {
fileName: i,
lineNumber: 149
}
}, a.createElement("div", {
className: s({
folder: this.isFolder(),
"tree-row": !0,
dragging: this.props.dragging,
dragover: t && "on" === n,
dragoverAbove: t && "above" === n,
dragoverBelow: t && "below" === n,
"speeddial-folder": this.isFolder() && this.props.treeItem.speeddial
}),
"data-selected": e ? "" : null,
"data-nofocus": e && !this.props.hasFocus ? "" : null,
onClick: this.onClick,
onDoubleClick: this.onDoubleClick,
onMouseDown: this.onMouseDown,
onMouseUp: this.onMouseUp,
draggable: this.props.isDraggable,
onDragStart: this.props.enableDragAndDrop ? this.onDragStart : null,
onDragEnd: this.props.enableDragAndDrop ? this.onDragEnd : null,
__source: {
fileName: i,
lineNumber: 161
}
}, this.props.renderItemContent(r)))
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_578
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function r(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function s(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
var o = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/common/menu/MenuItem.jsx",
l = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
c = n(1),
u = i(c),
A = n(11),
d = i(A),
h = n(175),
m = i(h),
p = n(37),
f = i(p),
g = n(5),
_ = i(g),
v = n(26),
b = i(v),
N = n(137),
E = i(N),
S = function(e) {
function t() {
var e, i, s, l;
a(this, t);
for (var c = arguments.length, A = Array(c), d = 0; d < c; d++) A[d] = arguments[d];
return i = s = r(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(A))), s.onItemSelected = function(e) {
2 === e.button ? e.stopPropagation() : s.props.onItemSelected(s.props.menuItem, e)
}, s.killEvent = function(e) {
e.preventDefault(), e.stopPropagation()
}, s.handleMouseOver = function() {
s.props.setSelected(s.props.nr)
}, s.handleMenuClosed = function() {
s.props.platformPopups === !0 && s.props.menuDidClose()
}, s.handleMouseDown = function(e) {
s.props.platformPopups === !0 && (0, b.default)(s.props.menuItem.items, null, "bottom", s.refs.button, s.handleMenuClosed)(e)
}, s.handleMenuShortcut = function(e) {
s.props.platformPopups === !0 && (s.props.setSelected(s.props.nr), s.props.menuWillOpen(), (0, b.default)(s.props.menuItem.items, null, "bottom", s.refs.button, s.handleMenuClosed)(e))
}, s.getDisplayName = function() {
var e = m.default.getMenuBarString(s.props.menuItem, s.props.shortcutItem);
if (s.props.showAccelerator && e.offset !== -1) {
var t = e.offset;
return u.default.createElement("span", {
__source: {
fileName: o,
lineNumber: 105
}
}, t > 0 ? e.name.substring(0, t) : "", u.default.createElement("span", {
className: "underlined",
__source: {
fileName: o,
lineNumber: 107
}
}, e.name.substring(t, t + 1)), e.name.substring(t + 1))
}
return u.default.createElement("span", {
__source: {
fileName: o,
lineNumber: 101
}
}, e.name)
}, s.getDisplayShortcut = function() {
if (s.props.menuItem.shortcut) {
var e = s.props.menuItem.noPrettifying ? s.props.menuItem.shortcut : (0, E.default)(s.props.menuItem.shortcut);
return u.default.createElement("span", {
className: "shortcut",
__source: {
fileName: o,
lineNumber: 121
}
}, e)
}
return null
}, s.getIcon = function() {
var e = void 0;
return s.props.menuItem.iconSVG ? s.props.menuItem.iconSVG : (e = s.props.menuItem.icon ? s.props.menuItem.icon : s.props.menuItem.url ? "chrome://favicon/origin/" + s.props.menuItem.url : "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", "
")
}, s.onDeleted = function(e, t) {
t.preventDefault(), t.stopPropagation(), "function" == typeof s.props.onDeleted && s.props.onDeleted(e)
}, s.renderItem = function() {
var e = s.props.menuItem.type || "normal";
return u.default.createElement("li", {
className: (0, _.default)({
selectedItem: s.props.isSelected
}),
onMouseOver: s.handleMouseOver,
onMouseDown: s.killEvent,
onMouseUp: s.onItemSelected,
title: s.props.menuItem.url,
__source: {
fileName: o,
lineNumber: 161
}
}, "normal" === e && u.default.createElement("a", {
tabIndex: "0",
__source: {
fileName: o,
lineNumber: 169
}
}, u.default.createElement("label", {
className: "menu-icon",
dangerouslySetInnerHTML: {
__html: s.getIcon()
},
__source: {
fileName: o,
lineNumber: 170
}
}), u.default.createElement("label", {
className: "menu-label",
__source: {
fileName: o,
lineNumber: 172
}
}, s.getDisplayName(), s.getDisplayShortcut()), s.props.onDeleted && u.default.createElement("label", {
className: "menu-delete",
onMouseUp: s.onDeleted.bind(s, s.props.menuItem),
dangerouslySetInnerHTML: {
__html: n(81)
},
__source: {
fileName: o,
lineNumber: 177
}
})), "checkbox" === e && u.default.createElement("a", {
tabIndx: "0",
__source: {
fileName: o,
lineNumber: 187
}
}, u.default.createElement("label", {
__source: {
fileName: o,
lineNumber: 188
}
}, u.default.createElement("span", {
className: "menu-icon",
__source: {
fileName: o,
lineNumber: 189
}
}, u.default.createElement("input", {
type: "checkbox",
checked: s.props.menuItem.checked,
readOnly: !0,
__source: {
fileName: o,
lineNumber: 190
}
})), u.default.createElement("span", {
className: "menu-label",
__source: {
fileName: o,
lineNumber: 193
}
}, s.getDisplayName()))), "radio" === e && u.default.createElement("a", {
tabIndex: "0",
__source: {
fileName: o,
lineNumber: 199
}
}, u.default.createElement("label", {
__source: {
fileName: o,
lineNumber: 200
}
}, u.default.createElement("span", {
className: "menu-icon",
__source: {
fileName: o,
lineNumber: 201
}
}, u.default.createElement("input", {
className: "menu-icon",
type: "radio",
name: "radiomenu",
checked: s.props.menuItem.checked,
readOnly: !0,
__source: {
fileName: o,
lineNumber: 202
}
})), u.default.createElement("span", {
className: "menu-label",
__source: {
fileName: o,
lineNumber: 205
}
}, s.getDisplayName()))))
}, s.renderDivider = function() {
return u.default.createElement("li", {
className: "divider",
__source: {
fileName: o,
lineNumber: 214
}
})
}, s.renderSubmenuItem = function() {
var e = n(236);
return u.default.createElement("li", {
className: (0, _.default)({
selectedItem: s.props.isSelected,
hasSubMenu: !0
}),
ref: "menuItem",
onMouseOver: s.handleMouseOver,
onMouseUp: s.killEvent,
onMouseDown: s.handleMouseDown,
onDoubleClick: s.killEvent,
__source: {
fileName: o,
lineNumber: 221
}
}, u.default.createElement("a", {
tabIndex: "0",
ref: "button",
__source: {
fileName: o,
lineNumber: 230
}
}, u.default.createElement("img", {
src: s.getIcon(),
__source: {
fileName: o,
lineNumber: 231
}
}), s.getDisplayName()), s.props.platformPopups !== !0 && s.props.isSelected && u.default.createElement(e, {
items: s.props.menuItem.items,
open: !0,
subMenu: !0,
onItemSelected: s.props.onItemSelected,
onClosed: s.props.onClosed,
giveFocusToParentMenu: s.props.giveFocusToParentMenu,
__source: {
fileName: o,
lineNumber: 234
}
}))
}, l = i, r(s, l)
}
return s(t, e), l(t, [{
key: "componentWillMount",
value: function() {
var e = this.props.shortcutItem.shortcut;
e && e.length > 0 && f.default.bind(e, this.handleMenuShortcut)
}
}, {
key: "componentWillReceiveProps",
value: function(e) {
if (e.isSelected && !this.props.isSelected && d.default.findDOMNode(this).scrollIntoViewIfNeeded(!1), e.shortcutItem !== this.props.shortcutItem) {
f.default.unbind(this.props.shortcutItem.shortcut, this.handleMenuShortcut);
var t = e.shortcutItem.shortcut;
t.length > 0 && f.default.bind(t, this.handleMenuShortcut)
}
}
}, {
key: "componentWillUnmount",
value: function() {
var e = this.props.shortcutItem.shortcut;
e && e.length > 0 && f.default.unbind(e, this.handleMenuShortcut)
}
}, {
key: "render",
value: function() {
return this.props.menuItem.items ? this.renderSubmenuItem() : "---" === this.props.menuItem.name || "separator" === this.props.menuItem.type ? this.renderDivider() : this.renderItem()
}
}]), t
}(u.default.PureComponent);
S.propTypes = {
isSelected: u.default.PropTypes.bool.isRequired,
setSelected: u.default.PropTypes.func.isRequired,
nr: u.default.PropTypes.number.isRequired,
menuItem: u.default.PropTypes.object.isRequired,
shortcutItem: u.default.PropTypes.object.isRequired,
showAccelerator: u.default.PropTypes.bool.isRequired,
onItemSelected: u.default.PropTypes.func.isRequired,
onClosed: u.default.PropTypes.func.isRequired,
giveFocusToParentMenu: u.default.PropTypes.func.isRequired,
menuWillOpen: u.default.PropTypes.func.isRequired,
menuDidClose: u.default.PropTypes.func.isRequired,
onDeleted: u.default.PropTypes.func,
platformPopups: u.default.PropTypes.bool
}, e.exports = S
}, function(e, t, n) {
// =========================
// Function_579
// =========================
"use strict";
var i = n(181),
a = new i("Contact");
a.version(1).stores({
contacts: "id,address"
}), a.version(2).stores({
contacts: "id,address",
trustedAddresses: "address"
}), a.open(), e.exports = a
}, function(e, t, n) {
// =========================
// Function_580
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/contacts/ContactPhotoPicker.jsx",
a = n(1),
r = n(110),
s = n(39),
o = n(9),
l = n(2),
c = n(546),
u = n(5),
A = 256,
d = .9,
h = "https://secure.gravatar.com/avatar/",
m = ["../resources/contact-w1.png", "../resources/contact-m1.png", "../resources/contact-w2.png", "../resources/contact-m2.png"],
p = a.createClass({
displayName: "ContactPhotoPicker",
mixins: [s, o],
getInitialState: function() {
return {
drawerOpen: !1,
isDropTarget: !1,
initialPhoto: "",
id: ""
}
},
componentWillReceiveProps: function(e) {
var t = e.id;
t && t !== this.state.id && this.setState({
initialPhoto: e.photo,
id: t
})
},
componentDidUpdate: function(e, t) {
t.drawerOpen === !0 && this.state.drawerOpen === !1 ? this.disableOnClickOutside() : t.drawerOpen === !1 && this.state.drawerOpen === !0 && this.enableOnClickOutside()
},
onToggleOverlay: function() {
this.setState({
drawerOpen: !this.state.drawerOpen
})
},
handleClickOutside: function() {
this.setState({
drawerOpen: !1
})
},
photoChange: function(e) {
this.refs.photoPicker.click()
},
setContactPhoto: function(e) {
var t = this;
if (e.target.files && e.target.files.length > 0) {
var n = e.target.files[0],
i = new FileReader;
i.onloadend = function() {
t.setState({
drawerOpen: !1,
isDropTarget: !1
}), t.props.attributeChange("photo", i.result)
}, i.readAsDataURL(n)
}
},
photoDragOver: function(e) {
e.preventDefault()
},
photoDragEnter: function(e) {
this.setState({
isDropTarget: !0
})
},
photoDragLeave: function(e) {
this.setState({
isDropTarget: !1
})
},
photoDrop: function(e) {
var t = this,
n = e.dataTransfer.files[0];
this.setState({
isDropTarget: !1
}), n && n.type.match("image.*") && ! function() {
var e = new FileReader;
e.onloadend = function() {
t.setPhoto(e.result)
}, e.readAsDataURL(n)
}()
},
getGravatar: function() {
var e = this,
t = c(this.props.address);
fetch("" + h + t + "?s=" + 2 * A + "&d=404").then(function(t) {
t.ok && t.blob().then(function(t) {
var n = new FileReader;
n.addEventListener("loadend", function() {
e.setPhoto(n.result), e.setState({
drawerOpen: !1,
isDropTarget: !1
})
}), n.readAsDataURL(t)
})
})
},
setPhoto: function(e) {
var t = this;
if (!e) return this.props.attributeChange("photo", ""), void this.setState({
drawerOpen: !1,
isDropTarget: !1
});
var n = document.createElement("canvas"),
i = n.getContext("2d"),
a = document.createElement("img"),
r = 0,
s = 0;
n.width = A, n.height = A, a.onload = function() {
a.height > a.width ? (a.height *= A / a.width, a.width = A, s = .5 * -(a.height - A)) : (a.width *= A / a.height, a.height = A, r = .5 * -(a.width - A)), i.drawImage(a, r, s, a.width, a.height), t.props.attributeChange("photo", n.toDataURL("image/jpeg", d)), t.setState({
drawerOpen: !1
})
}, a.src = e
},
render: function() {
var e = this,
t = this.props.photo,
n = u({
"contact-photo-is-droptarget": this.state.isDropTarget,
"contact-photo": !0
});
return a.createElement("div", {
className: "contact-photo-picker",
__source: {
fileName: i,
lineNumber: 195
}
}, t ? a.createElement("button", {
className: n,
ref: "photo",
onDrop: this.photoDrop,
onDragEnter: this.photoDragEnter,
onDragLeave: this.photoDragLeave,
onDragOver: this.photoDragOver,
style: {
backgroundImage: "url(" + t + ")"
},
onClick: this.onToggleOverlay,
__source: {
fileName: i,
lineNumber: 197
}
}) : a.createElement("button", {
className: n,
ref: "photo",
onDrop: this.photoDrop,
onDragEnter: this.photoDragEnter,
onDragLeave: this.photoDragLeave,
onDragOver: this.photoDragOver,
onClick: this.onToggleOverlay,
dangerouslySetInnerHTML: {
__html: r.prototype.defaultPhoto
},
__source: {
fileName: i,
lineNumber: 207
}
}), a.createElement("input", {
type: "file",
tabIndex: "-1",
accept: "image/*",
ref: "photoPicker",
onChange: this.setContactPhoto,
style: {
position: "absolute",
visibility: "hidden"
},
__source: {
fileName: i,
lineNumber: 219
}
}), this.state.drawerOpen && a.createElement("div", {
className: "contact-photo-picker-overlay",
__source: {
fileName: i,
lineNumber: 227
}
}, a.createElement("div", {
className: "photo-picker-suggestions",
__source: {
fileName: i,
lineNumber: 228
}
}, this.state.initialPhoto ? a.createElement("button", {
className: "photo-picker-suggestion",
onClick: this.setPhoto.bind(this, this.state.initialPhoto),
style: {
backgroundImage: "url(" + this.state.initialPhoto + ")"
},
__source: {
fileName: i,
lineNumber: 231
}
}) : a.createElement("button", {
className: "photo-picker-suggestion",
onClick: this.setPhoto.bind(this, this.state.initialPhoto),
dangerouslySetInnerHTML: {
__html: r.prototype.defaultPhoto
},
__source: {
fileName: i,
lineNumber: 237
}
}), a.createElement("button", {
className: "photo-picker-suggestion",
onClick: this.setPhoto.bind(this, ""),
dangerouslySetInnerHTML: {
__html: r.prototype.defaultPhoto
},
__source: {
fileName: i,
lineNumber: 246
}
}), m.map(function(t, n) {
return a.createElement("button", {
className: "photo-picker-suggestion",
key: "photo-picker-suggestion-" + n,
onClick: e.setPhoto.bind(e, m[n]),
style: {
backgroundImage: "url(" + t + ")"
},
__source: {
fileName: i,
lineNumber: 255
}
})
})), a.createElement("input", {
type: "button",
onClick: this.getGravatar,
value: l("Get Gravatar"),
__source: {
fileName: i,
lineNumber: 264
}
}), a.createElement("input", {
type: "button",
className: "primary",
onClick: this.photoChange,
value: l("Browse..."),
__source: {
fileName: i,
lineNumber: 269
}
})))
}
});
e.exports = p
}, function(e, t, n) {
// =========================
// Function_581
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/contacts/ContactTree.jsx",
a = n(1),
r = n(110),
s = n(244),
o = n(49),
l = n(47),
c = n(13),
u = n(109),
A = n(30),
d = n(21),
h = a.createClass({
displayName: "ContactTree",
mixins: [c],
vivaldiSettingsKeys: ["SHOW_VIVALDI_FOOTER"],
shouldComponentUpdate: function(e, t) {
return d(this, e, t)
},
getSelectedIds: function() {
var e = this.refs.treeList.getAllSelectedItems(!0).map(function(e) {
return e.id
});
return e
},
getSelectedItems: function() {
var e = this.getSelectedIds().map(function(e) {
return s.getNodeById(e)
}).filter(function(e) {
return void 0 !== e
});
return e
},
getSelectedItem: function() {
return this.refs.treeList.getSelectedItem()
},
getNodeName: function(e) {
return e.name || e.address
},
isFolder: function(e) {
return !1
},
isTrash: function(e) {
return !1
},
hasChildren: function(e) {
return !!e.children && e.children.length > 0
},
unSelectAll: function() {
this.refs.treeList.unSelectAll()
},
deleteSelected: function() {
this.refs.treeList.onDelete()
},
deleteByIds: function(e) {
this.refs.treeList.onDelete(e)
},
validateForEdit: function(e) {
return !0
},
isValidAddTarget: function() {
return !0
},
getTitle: function(e) {
var t = s.getNodeById(e);
return void 0 !== t ? this.getNodeName(t) : ""
},
saveTitle: function(e, t) {
var n = s.getNodeById(e);
void 0 !== n && (n.name = t), o.saveContact(n)
},
onAdd: function(e) {
this.refs.treeList.onAdd(e)
},
getContextMenuItems: function() {
return [Object.assign({
handler: this.props.onCompose
}, A("Compose"))]
},
getRootContextMenuItems: function() {
return [Object.assign({
name: this.getContextMenuNewItemString(),
handler: this.onAdd.bind(this, !1)
}, this.getContextMenuNewItemString())]
},
getContextMenuItemProps: function(e) {
return {
showEdit: !0,
showRename: !0,
showNewItem: !0,
showNewFolder: !1,
showCutCopyPaste: !1,
showCut: !1,
showCopy: !1,
showPaste: !1,
showDelete: !0,
showExpandCollapse: !1
}
},
getContextMenuNewItemString: function() {
return A("New Contact")
},
handleMouseEnterItem: function(e) {
l.setStatus(e)
},
handleMouseLeaveItem: function() {
l.clearStatus()
},
renderItemContent: function(e) {
var t = e.node,
n = t.photo ? "
" : r.prototype.defaultPhoto,
s = a.createElement("label", {
key: "0",
tabIndex: "-1",
onMouseEnter: "off" === this.state.SHOW_VIVALDI_FOOTER ? null : this.handleMouseEnterItem.bind(this, t.address),
onMouseLeave: "off" === this.state.SHOW_VIVALDI_FOOTER ? null : this.handleMouseLeaveItem,
__source: {
fileName: i,
lineNumber: 147
}
}, a.createElement("span", {
className: "tree-row-image",
dangerouslySetInnerHTML: {
__html: n
},
__source: {
fileName: i,
lineNumber: 154
}
}), void 0 !== e.inlineEditText && a.createElement("input", {
ref: "input",
type: "text",
value: e.inlineEditText,
onChange: e.onChange,
onFocus: e.onFocus,
onBlur: e.onBlur,
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 158
}
}), void 0 === e.inlineEditText && a.createElement("span", {
className: "title",
__source: {
fileName: i,
lineNumber: 168
}
}, this.getNodeName(t)));
return [s]
},
render: function() {
return a.createElement(u, {
ref: "treeList",
settings: "CONTACT_TREE",
nodes: this.props.items,
onSelect: this.props.onSelect,
getContextMenuItems: this.getContextMenuItems,
getContextMenuItemProps: this.getContextMenuItemProps,
getContextMenuNewItemString: this.getContextMenuNewItemString,
onCreate: this.props.onCreate,
onEdit: this.props.onEdit,
onItemsActivated: this.props.onCompose,
onItemDoubleClick: this.props.onCompose,
delete: o.deleteContactsByIds,
enableDragAndDrop: !1,
isTrash: this.isTrash,
isFolder: this.isFolder,
hasChildren: this.hasChildren,
nodeSelected: this.props.contactSelected,
nodeDisplayName: this.getNodeName,
getNodeIcon: this.getContactPhoto,
renderItemContent: this.renderItemContent,
supportsInlineEdit: !0,
isValidToEdit: this.validateForEdit,
getTitle: this.getTitle,
saveTitle: this.saveTitle,
isValidAddTarget: this.isValidAddTarget,
__source: {
fileName: i,
lineNumber: 179
}
})
}
});
e.exports = h
}, function(e, t, n) {
// =========================
// Function_582
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/contacts/ContactView.jsx",
a = n(1),
r = n(11),
s = n(110),
o = n(580),
l = n(244),
c = n(49),
u = n(37),
A = n(2),
d = n(113),
h = a.createClass({
displayName: "ContactView",
saveTimer: void 0,
isNew: !1,
isModified: !1,
getInitialState: function() {
return {
item: l.getEmptyContact()
}
},
componentWillMount: function() {
u.bind("esc", this._onEscPressed)
},
componentWillUnmount: function() {
u.unbind("esc", this._onEscPressed), this.saveItem(!0)
},
getItemId: function() {
return this.state.item.id
},
setItem: function(e, t) {
var n = this;
if (this.state.item.id !== e.id) {
this.state.item.id && this.saveItem(!0);
var i = Object.assign({
__proto__: s.prototype
}, e);
this.setState({
item: i
}, function() {
n.isNew = t, n.isModified = !1
})
}
},
updateItem: function(e) {
var t = this;
if (this.state.item.id === e.id) {
var n = Object.assign({
__proto__: s.prototype
}, e);
this.setState({
item: n
}, function() {
t.isModified = !1
})
}
},
_onEscPressed: function() {
this.isModified = !1, this.props.onClose(this.isNew ? this.state.item : void 0)
},
handleKeyDown: function(e) {
e.stopPropagation(), "Enter" === e.key && (this.saveItem(!0), this.props.onClose())
},
attributeChange: function(e, t) {
var n = this;
this.isModified = !0;
var i = this.state.item;
i[e] = t, this.setState({
item: i
}, function() {
return n.saveItem(!0)
})
},
nameChange: function(e) {
this.attributeChange("name", e.target.value)
},
addressChange: function(e) {
this.attributeChange("address", e.target.value)
},
phoneChange: function(e) {
this.attributeChange("phone", e.target.value)
},
postalChange: function(e) {
this.attributeChange("postal", e.target.value)
},
handleBlur: function() {
this.resetSaveTimer(), this.saveTimer = setTimeout(this.saveItem.bind(this, !1), 1)
},
resetSaveTimer: function() {
this.saveTimer && (window.clearTimeout(this.saveTimer), this.saveTimer = void 0)
},
saveItem: function(e) {
this.resetSaveTimer();
var t = e || !d(r.findDOMNode(this));
this.isModified && t && (c.saveContact(this.state.item), this.isModified = !1)
},
render: function() {
var e = this.state.item.name || "",
t = this.state.item.address || "",
n = this.state.item.phone || "",
r = this.state.item.postal || "";
return a.createElement("div", {
className: "contact-view cardview",
__source: {
fileName: i,
lineNumber: 135
}
}, a.createElement("div", {
className: "contact-header",
__source: {
fileName: i,
lineNumber: 136
}
}, a.createElement(o, {
ref: "photoPicker",
attributeChange: this.attributeChange,
id: this.state.item.id,
photo: this.state.item.photo,
address: this.state.item.address,
__source: {
fileName: i,
lineNumber: 137
}
}), a.createElement("input", {
className: "contact-name",
ref: "name",
type: "text",
value: e,
placeholder: A("Name"),
onChange: this.nameChange,
onBlur: this.handleBlur,
onKeyDown: this.handleKeyDown,
__source: {
fileName: i,
lineNumber: 145
}
})), a.createElement("input", {
ref: "email",
className: "contact-email",
type: "text",
value: t,
placeholder: A("Email"),
onChange: this.addressChange,
onBlur: this.handleBlur,
onKeyDown: this.handleKeyDown,
__source: {
fileName: i,
lineNumber: 156
}
}), a.createElement("input", {
className: "contact-phone",
ref: "phone",
type: "text",
value: n,
placeholder: A("Phone"),
onChange: this.phoneChange,
onBlur: this.handleBlur,
onKeyDown: this.handleKeyDown,
__source: {
fileName: i,
lineNumber: 166
}
}), a.createElement("input", {
className: "contact-postal",
ref: "postal",
type: "text",
value: r,
placeholder: A("Address"),
onChange: this.postalChange,
onBlur: this.handleBlur,
onKeyDown: this.handleKeyDown,
__source: {
fileName: i,
lineNumber: 176
}
}))
}
});
e.exports = h
}, function(e, t, n) {
// =========================
// Function_583
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/contacts/ContactsPanel.jsx",
a = n(1),
r = n(11),
s = n(581),
o = n(582),
l = n(244),
c = n(49),
u = n(15),
A = n(58),
d = n(2),
h = n(5),
m = n(113),
p = n(26),
f = n(21),
g = n(20).urls,
_ = a.createClass({
displayName: "ContactsPanel",
getInitialState: function() {
return {
items: l.getAsTree(""),
filter: ""
}
},
shouldComponentUpdate: function(e, t) {
return f(this, e, t)
},
componentWillMount: function() {
A.addChangeListener(this.onPanelStoreChange), l.addChangeListener(this.onContactStoreChange)
},
componentWillUnmount: function() {
A.removeChangeListener(this.onPanelStoreChange), l.removeChangeListener(this.onContactStoreChange)
},
componentDidUpdate: function(e, t) {
!e.open && this.props.open && r.findDOMNode(this.refs.tree).focus()
},
onPanelStoreChange: function(e) {
this.props.open && "setFocus" === e && !m(r.findDOMNode(this)) && r.findDOMNode(this.refs.tree).focus()
},
onContactStoreChange: function() {
var e = this;
this.setState({
items: l.getAsTree(this.state.filter)
}, function() {
if (e.state.editor) {
var t = l.getNodeById(e.refs.editor.getItemId());
e.refs.editor.updateItem(t)
}
})
},
newItem: function(e) {
this.refs.tree.onAdd(e)
},
onCreate: function(e) {
var t = this;
return c.newEmptyContact().then(function(e) {
return e && e.length > 0 && t.setState({
editor: !0
}, function() {
t.refs.editor.setItem(e[0], !0)
}), e
})
},
onEdit: function() {
var e = this,
t = this.refs.tree.getSelectedItem();
t && this.setState({
editor: !this.state.editor
}, function() {
e.state.editor && e.refs.editor.setItem(t, !1)
})
},
onCloseEditor: function(e) {
e && this.refs.tree.deleteByIds([e.id]), this.setState({
editor: !1
}), r.findDOMNode(this.refs.tree).focus()
},
deleteSelected: function() {
this.refs.tree.deleteSelected()
},
filterChange: function(e) {
var t = e.target.value;
this.setState({
filter: t,
items: l.getAsTree(t)
})
},
onCompose: function() {
var e = this.refs.tree.getSelectedItems();
e && e.length > 0 && u.openURL(g.internalUrl("mailpage", "composer/new", d("Mail - New"), e))
},
onSelect: function(e) {
this.state.editor && this.refs.editor.setItem(e, !1), c.selectContact(e), c.setSearchOptions({
fromContact: !0
}), u.openURL(g.internals.mailpage, {
singleton: !0
}), r.findDOMNode(this.refs.tree).focus()
},
onContextMenu: function(e) {
this.refs.tree.unSelectAll(), p(this.refs.tree.getRootContextMenuItems)(e)
},
renderTree: function() {
return a.createElement(s, {
ref: "tree",
items: this.state.items,
onCreate: this.onCreate,
onEdit: this.onEdit,
onCompose: this.onCompose,
onSelect: this.onSelect,
contactSelected: this.contactSelected,
contactMenuItems: this.getContactContextMenuItems,
__source: {
fileName: i,
lineNumber: 144
}
})
},
renderEditor: function() {
return a.createElement(o, {
ref: "editor",
onClose: this.onCloseEditor,
__source: {
fileName: i,
lineNumber: 158
}
})
},
render: function() {
if (!this.props.open) return null;
var e = h({
"button-toolbar": !0,
edit: !0,
active: this.state.editor
});
return a.createElement("div", {
className: "panel",
id: "contacts",
__source: {
fileName: i,
lineNumber: 176
}
}, a.createElement("header", {
__source: {
fileName: i,
lineNumber: 178
}
}, a.createElement("h1", {
__source: {
fileName: i,
lineNumber: 179
}
}, d("Contacts")), a.createElement("div", {
className: "toolbar icons",
__source: {
fileName: i,
lineNumber: 181
}
}, a.createElement("input", {
type: "search",
placeholder: d("Search..."),
onChange: this.filterChange,
__source: {
fileName: i,
lineNumber: 182
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 185
}
}, a.createElement("button", {
className: "button-toolbar newcontact",
ref: "newButton",
title: d("New Contact"),
tabIndex: this.props.keyAccess,
onClick: this.newItem.bind(this, !1),
dangerouslySetInnerHTML: {
__html: n(80)
},
__source: {
fileName: i,
lineNumber: 186
}
}), a.createElement("button", {
className: "button-toolbar delete",
title: d("other", "Delete"),
tabIndex: this.props.keyAccess,
onClick: this.deleteSelected,
dangerouslySetInnerHTML: {
__html: n(92)
},
__source: {
fileName: i,
lineNumber: 192
}
}), a.createElement("button", {
className: e,
title: d("verb", "Edit"),
tabIndex: this.props.keyAccess,
onClick: this.onEdit,
dangerouslySetInnerHTML: {
__html: n(217)
},
__source: {
fileName: i,
lineNumber: 197
}
}), a.createElement("button", {
className: "button-toolbar compose",
ref: "compose",
title: d("Compose mail to contact"),
tabIndex: this.props.keyAccess,
onClick: this.onCompose,
dangerouslySetInnerHTML: {
__html: n(471)
},
__source: {
fileName: i,
lineNumber: 202
}
})))), a.createElement("section", {
onContextMenu: this.onContextMenu,
__source: {
fileName: i,
lineNumber: 213
}
}, this.renderTree()), this.state.editor && this.renderEditor())
}
});
e.exports = _
}, function(e, t) {
// =========================
// Function_584
// =========================
"use strict";
function n() {
for (var e = "", t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", n = 0; n < 30; n++) e += t.charAt(Math.floor(Math.random() * t.length));
return e
}
e.exports = n
}, function(e, t, n) {
// =========================
// Function_585
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/createbookmark/createbookmark.jsx",
a = n(1),
r = n(9),
s = n(40),
o = n(393),
l = n(350),
c = n(45),
u = n(39),
A = n(2),
d = n(4),
h = n(5),
m = n(404),
p = n(10),
f = a.createClass({
displayName: "CreateBookmark",
mixins: [u, r],
getInitialState: function() {
return {
url: m(this.props.url),
title: this.props.title,
thumbnail: this.props.thumbnail,
nickname: "",
description: "",
id: "",
parentId: "1",
treeParentId: "1",
animated: !1,
generalErrorKey: null
}
},
componentWillReceiveProps: function(e) {
e.open && this.onShowDialog(e)
},
onShowDialog: function(e) {
var t = this;
this.findUnTrashedBookmark(e.url).then(function(n) {
n ? t.setState({
id: n.id,
url: n.url,
thumbnail: n.thumbnail,
nickname: n.nickname,
description: n.description,
title: n.title,
parentId: n.parentId,
treeParentId: n.parentId,
generalErrorKey: null,
isBookmarked: !0
}) : t.setState({
id: "",
url: e.url,
thumbnail: e.thumbnail,
nickname: "",
description: "",
title: e.title,
parentId: null,
generalErrorKey: null,
isBookmarked: !1
})
})
},
findUnTrashedBookmark: function(e) {
if (!e) return Promise.resolve();
var t = function e(t) {
return t ? t.trash ? Promise.resolve(!0) : t.parentId ? new Promise(function(n) {
s.getBookmark(t.parentId, function(t) {
n(e(t))
})
}) : Promise.resolve(!1) : Promise.resolve(!1)
};
return new Promise(function(n) {
d.bookmarks.search({
url: e
}, function(e) {
return e && 0 !== e.length ? void n(Promise.all(e.map(function(e) {
return t(e)
})).then(function(t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
if (!i) return e[n]
}
})) : n()
})
})
},
onSaveBookmark: function() {
return "" === this.state.url.trim() ? void this.setState({
generalErrorKey: A("URL cannot be empty.")
}) : void(this.state.isBookmarked ? (this.state.parentId !== this.state.treeParentId && d.bookmarks.move(this.state.id, {
parentId: this.state.treeParentId
}), this.updateBookmark()) : this.createBookmark())
},
createBookmark: function() {
var e = this,
t = this.state.url.trim();
p.utilities.isUrlValid(this.state.url, function(n) {
n.urlValid && n.schemeValid || (t = "http://" + t), d.bookmarks.create({
title: e.state.title,
url: t,
thumbnail: e.state.thumbnail,
nickname: e.state.nickname,
description: e.state.description,
parentId: e.state.treeParentId,
speeddial: !1
}, function(t) {
d.runtime.lastError ? e.setState({
generalErrorKey: o(d.runtime.lastError.message) + "\n " + A("Changes not saved.")
}) : (e.setState({
id: t.id,
animated: !0,
generalErrorKey: null
}), setTimeout(function() {
e.setState({
animated: !1
})
}, 1e3), e.onClose())
})
})
},
updateBookmark: function() {
var e = this,
t = this.state.url.trim();
p.utilities.isUrlValid(this.state.url, function(n) {
n.urlValid && n.schemeValid || (t = "http://" + t), d.bookmarks.update(e.state.id, {
title: e.state.title,
url: t,
thumbnail: e.state.thumbnail,
nickname: e.state.nickname,
description: e.state.description
}, function(t) {
d.runtime.lastError ? e.setState({
generalErrorKey: o(d.runtime.lastError.message) + "\n " + A("Changes not saved.")
}) : (e.setState({
generalErrorKey: null
}), e.onClose())
})
})
},
onDeleteBookmark: function() {
var e = this;
d.bookmarks.remove(this.state.id, function() {
e.setState(e.getInitialState()), e.onClose()
})
},
handleClickOutside: function(e) {
this.onClose()
},
onClose: function() {
this.setState({
id: ""
}), this.props.onClose()
},
keyDown: function(e) {
e.keyCode === c.KEY_ESCAPE && this.onClose()
},
onFolderChange: function(e) {
var t = e.target.value;
this.setState({
treeParentId: t
})
},
changeValue: function(e, t) {
var n = {};
n[e] = t.target.value, n.generalErrorKey = null, this.setState(n)
},
render: function() {
return a.createElement("div", {
className: "add-bookmark-container addressfield-popup-container",
__source: {
fileName: i,
lineNumber: 240
}
}, a.createElement("button", {
ref: "addBookmark",
tabIndex: this.props.keyAccess,
disabled: !this.props.isBookmarkable,
dangerouslySetInnerHTML: {
__html: n(948)
},
className: h({
"button-addressfield": !0,
bookmark: !0,
bookmarked: this.props.isBookmarked,
inactive: !this.props.isBookmarkable,
docked: !this.props.isSearchOn,
animated: this.state.animated
}),
onMouseDown: this.props.open ? this.onClose : this.props.onOpen,
title: A(this.props.isBookmarked ? "Edit bookmark" : "Add Bookmark"),
__source: {
fileName: i,
lineNumber: 241
}
}), this.props.open && a.createElement("div", {
className: "dialog-add-bookmark",
onKeyDown: this.keyDown,
style: {
maxHeight: window.innerHeight - 125 + "px"
},
__source: {
fileName: i,
lineNumber: 262
}
}, a.createElement("div", {
className: "addbookmark-cardwrapper",
__source: {
fileName: i,
lineNumber: 265
}
}, a.createElement("div", {
className: "cb-image",
style: {
backgroundImage: "url(" + (this.state.thumbnail ? this.state.thumbnail : "/resources/bookmark_item.png") + ")"
},
__source: {
fileName: i,
lineNumber: 266
}
}), a.createElement("div", {
className: "dialog-content cardview",
__source: {
fileName: i,
lineNumber: 271
}
}, a.createElement("div", {
className: "cb-form-row",
__source: {
fileName: i,
lineNumber: 272
}
}, a.createElement("input", {
className: "cardview title",
type: "text",
value: this.state.title,
onChange: this.changeValue.bind(this, "title"),
title: A("Bookmark Name"),
placeholder: A("Bookmark Name"),
onKeyDown: this.keyDown,
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 273
}
})), a.createElement("div", {
className: "cb-form-row",
__source: {
fileName: i,
lineNumber: 283
}
}, a.createElement("input", {
className: "cardview address",
type: "text",
value: this.state.url,
onChange: this.changeValue.bind(this, "url"),
title: A("Address"),
placeholder: A("Address"),
onKeyDown: this.keyDown,
__source: {
fileName: i,
lineNumber: 284
}
})), a.createElement("div", {
className: "cb-form-row cardview",
__source: {
fileName: i,
lineNumber: 293
}
}, a.createElement(l, {
onChange: this.onFolderChange,
selectedItemID: this.state.treeParentId,
title: A("Bookmark Folder"),
__source: {
fileName: i,
lineNumber: 294
}
})), a.createElement("div", {
className: "cb-form-row",
__source: {
fileName: i,
lineNumber: 300
}
}, a.createElement("textarea", {
className: "cardview description",
type: "text",
value: this.state.description,
onChange: this.changeValue.bind(this, "description"),
title: A("Description"),
placeholder: A("Description"),
onKeyDown: this.keyDown,
__source: {
fileName: i,
lineNumber: 301
}
})), a.createElement("div", {
className: "cb-form-row",
__source: {
fileName: i,
lineNumber: 310
}
}, a.createElement("input", {
className: "cardview nickname",
type: "text",
value: this.state.nickname,
onChange: this.changeValue.bind(this, "nickname"),
title: A("Nickname"),
placeholder: A("Nickname"),
onKeyDown: this.keyDown,
__source: {
fileName: i,
lineNumber: 311
}
})))), this.state.generalErrorKey && a.createElement("p", {
className: "warning",
__source: {
fileName: i,
lineNumber: 322
}
}, this.state.generalErrorKey), a.createElement("footer", {
className: "dialog-footer cardview",
__source: {
fileName: i,
lineNumber: 324
}
}, a.createElement("input", {
type: "button",
autoFocus: !0,
className: "primary",
value: A("Save"),
onClick: this.onSaveBookmark,
__source: {
fileName: i,
lineNumber: 325
}
}), a.createElement("input", {
type: "button",
value: A("other", "Delete"),
disabled: !this.state.isBookmarked,
onClick: this.onDeleteBookmark,
__source: {
fileName: i,
lineNumber: 330
}
}), a.createElement("input", {
type: "button",
value: A("Cancel"),
onClick: this.onClose,
__source: {
fileName: i,
lineNumber: 334
}
}))))
}
});
e.exports = f
}, function(e, t, n) {
// =========================
// Function_586
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/dialogs/ClearBrowsingHistoryDialog.jsx",
a = n(1),
r = n(34),
s = n(606),
o = a.createClass({
displayName: "ClearBrowsingHistoryDialog",
_onNo: function() {
this.props.onClose()
},
_onYes: function() {
this.props.onClose()
},
render: function() {
return a.createElement(r, {
onRequestClose: this._onNo,
__source: {
fileName: i,
lineNumber: 17
}
}, a.createElement(s, {
onNo: this._onNo,
onYes: this._onYes,
__source: {
fileName: i,
lineNumber: 18
}
}))
}
});
e.exports = o
}, function(e, t, n) {
// =========================
// Function_587
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/dialogs/VisualTabSwitcher.jsx",
a = n(1),
r = n(9),
s = n(45),
o = n(17),
l = n(5),
c = n(3),
u = n(20),
A = u.urls,
d = 212,
h = 24,
m = a.createClass({
displayName: "VisualTabSwitcher",
mixins: [r],
getInitialState: function() {
return {
selected: o.getActivePage(),
pages: o.getPages(),
workingPageSet: []
}
},
componentWillMount: function() {
this.createPageList()
},
componentDidMount: function() {
this.refs.visualTabSwitcher.focus(), o.addChangeListener(this.onPageStoreChange)
},
componentWillUnmount: function() {
o.removeChangeListener(this.onPageStoreChange)
},
onPageStoreChange: function() {
this.createPageList()
},
getMaxAllowedWidth: function() {
return window.innerWidth - d
},
getNumberOfPreviews: function() {
if (this.state.pages.size * d < this.getMaxAllowedWidth()) return this.state.pages.size;
for (var e = 1;
(e + 1) * d + h < this.getMaxAllowedWidth() && e < this.state.pages.size;) e++;
return e
},
getPagesInOrder: function() {
var e = this.state.pages,
t = this.state.selected,
n = o.getPageHistory(),
i = c.getSync("TAB_CYCLING_ORDER");
if ("recently used" === i) return n.map(function(t) {
return e.find(function(e) {
return e.get("id") === t
})
}).reverse();
var a = e.slice(e.indexOf(t), e.size);
return a.concat(e.slice(0, e.indexOf(t)))
},
createPageList: function() {
var e = this.getPagesInOrder(),
t = this.getNumberOfPreviews(),
n = 1,
i = [];
e.size < t && (n = Math.ceil(t / e.size));
for (var a = 0; a < n + 3; a++) e.map(function(e, t) {
i.push({
uid: Math.random(),
page: e
})
});
var r = e.indexOf(this.state.selected) + e.size + 1,
s = e.size + r - Math.ceil(t / 2);
i.splice(t + s, i.length), i.splice(0, s), this.setState({
workingPageSet: i,
pages: e
})
},
updateWorkingSetWithOffset: function(e) {
var t = this.state.pages,
n = this.state.workingPageSet.slice(),
i = void 0;
switch (e) {
case 1:
i = "forward";
break;
case -1:
i = "back";
break;
default:
return
}
if ("forward" === i) {
var a = n[n.length - 1],
r = t.indexOf(a.page) + 1;
r = (r % t.size + t.size) % t.size, n.splice(0, 1), n.push({
page: t.get(r),
uid: Math.random()
})
} else if ("back" === i) {
var s = t.indexOf(n[0].page) - 1;
s = (s % t.size + t.size) % t.size, n.splice(n.length - 1, 1), n.unshift({
page: t.get(s),
uid: Math.random()
})
}
this.setState({
workingPageSet: n
})
},
getSelectedPageWithOffset: function(e) {
var t = this.state.pages,
n = t.indexOf(this.state.selected) + e;
return n = (n % t.size + t.size) % t.size, t.get(n)
},
onKeyUp: function(e) {
e.keyCode === s.KEY_CTRL && (this.props.onClose(), e.stopPropagation(), e.preventDefault())
},
navigateWithOffset: function(e) {
this.state.pages.size * d > this.getMaxAllowedWidth() && this.updateWorkingSetWithOffset(e), this.setState({
selected: this.getSelectedPageWithOffset(e)
})
},
selectBack: function() {
this.navigateWithOffset(-1)
},
selectForward: function() {
this.navigateWithOffset(1)
},
selectByUid: function(e) {
for (var t in this.state.workingPageSet) {
var n = this.state.workingPageSet[t];
if (n.uid === e) {
this.setState({
selected: n.page
});
break
}
}
},
render: function() {
var e = this;
return a.createElement("div", {
className: "tabswitcher",
tabIndex: "1",
ref: "visualTabSwitcher",
style: {
width: this.getNumberOfPreviews() * d + h + "px"
},
onKeyUp: this.onKeyUp,
__source: {
fileName: i,
lineNumber: 219
}
}, a.createElement("div", {
className: "visual-tabs visual-tabs-" + this.state.direction,
__source: {
fileName: i,
lineNumber: 226
}
}, this.state.workingPageSet.map(function(t) {
return a.createElement("div", {
key: "visual-tab-" + t.uid,
onMouseDown: e.selectByUid.bind(e, t.uid),
style: {
backgroundImage: "url(" + t.page.getIn(["extData", "thumbnail"]) + ")"
},
title: A.getDisplayTitle(t.page),
className: l({
"visual-tab": !0,
selected: t.page.get("id") === e.state.selected.get("id")
}),
__source: {
fileName: i,
lineNumber: 228
}
}, a.createElement("div", {
className: "visual-tab-favicon-container",
__source: {
fileName: i,
lineNumber: 237
}
}, a.createElement("img", {
className: "visual-tab-favicon",
src: t.page.get("favIcon"),
__source: {
fileName: i,
lineNumber: 238
}
})))
})), a.createElement("div", {
className: "visual-tab-switcher-title",
__source: {
fileName: i,
lineNumber: 244
}
}, A.getDisplayTitle(this.state.selected)))
}
});
e.exports = m
}, function(e, t, n) {
// =========================
// Function_588
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/dialogs/confirmOpenBookmarksDialog.jsx",
r = n(1),
s = n(40),
o = n(34),
l = n(3),
c = n(2),
u = r.createClass({
displayName: "ConfirmOpenBookmarksDialog",
getInitialState: function() {
return {
doNotShowAgain: !1
}
},
_onNo: function() {
this.props.onClose()
},
_onYes: function() {
l.set({
BOOKMARKS_CONFIRM_BEFORE_OPEN: !this.state.doNotShowAgain
}), s.open(this.props.options), this.props.onClose()
},
_toggleDoNotShowAgain: function() {
this.setState({
doNotShowAgain: !this.state.doNotShowAgain
})
},
render: function() {
var e;
return r.createElement(o, {
onRequestClose: this._onNo,
__source: {
fileName: a,
lineNumber: 32
}
}, r.createElement("header", {
className: "dialog-header",
__source: {
fileName: a,
lineNumber: 33
}
}, r.createElement("h1", {
className: "dialog-title",
__source: {
fileName: a,
lineNumber: 34
}
}, c("Open Bookmarks"))), r.createElement("form", {
onSubmit: this._onYes,
__source: {
fileName: a,
lineNumber: 37
}
}, r.createElement("div", {
className: "dialog-content",
__source: {
fileName: a,
lineNumber: 38
}
}, r.createElement("p", {
__source: {
fileName: a,
lineNumber: 39
}
}, c("Do you want to open $1 bookmark?", "Do you want to open $1 bookmarks?", [this.props.options.bookmarks.length])), r.createElement("label", {
className: "dialog-checkbox",
__source: {
fileName: a,
lineNumber: 44
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.doNotShowAgain,
onChange: this._toggleDoNotShowAgain,
__source: {
fileName: a,
lineNumber: 45
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 48
}
}, c("Do not ask again")))), r.createElement("footer", {
className: "dialog-footer",
__source: {
fileName: a,
lineNumber: 52
}
}, r.createElement("input", (e = {
type: "submit",
autoFocus: !0,
onClick: this._onYes,
value: c("Yes")
}, i(e, "autoFocus", !0), i(e, "__source", {
fileName: a,
lineNumber: 53
}), e)), r.createElement("input", {
type: "button",
onClick: this._onNo,
value: c("No"),
__source: {
fileName: a,
lineNumber: 58
}
}))))
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_589
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/dialogs/dialogRenderWrapper.jsx",
a = n(1),
r = n(590),
s = n(591),
o = n(355),
l = n(672),
c = n(615),
u = a.createClass({
displayName: "DialogRenderWrapper",
getInitialState: function() {
return {
dialogParentElement: null,
customData: null,
closeDialog: null
}
},
render: function() {
return "download" === this.props.customData.dialogtype ? a.createElement(r, {
dialogParentElement: this.props.dialogParentElement,
customData: this.props.customData,
onClose: this.props.closeDialog,
__source: {
fileName: i,
lineNumber: 19
}
}) : "importbookmarks" === this.props.customData.dialogtype ? a.createElement(o, {
dialogParentElement: this.props.dialogParentElement,
onClose: this.props.closeDialog,
__source: {
fileName: i,
lineNumber: 24
}
}) : "createSearch" === this.props.customData.dialogtype ? a.createElement(l, {
dialogParentElement: this.props.dialogParentElement,
onClose: this.props.closeDialog,
name: this.props.customData.Name,
url: this.props.customData.Url,
__source: {
fileName: i,
lineNumber: 28
}
}) : "javascript" === this.props.customData.dialogtype ? a.createElement(s, {
dialogParentElement: this.props.dialogParentElement,
customData: this.props.customData,
onClose: this.props.closeDialog,
__source: {
fileName: i,
lineNumber: 34
}
}) : "fullscreen" === this.props.customData.dialogtype ? a.createElement(c, {
ref: "fullscreenbubble",
dialogParentElement: this.props.dialogParentElement,
customData: this.props.customData,
onClose: this.props.closeDialog,
__source: {
fileName: i,
lineNumber: 39
}
}) : (console.error("DialogRenderWrapper.render: unknown dialogtype:" + this.props.customData.dialogtype), null)
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_590
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/dialogs/downloadDialog.jsx",
a = n(1),
r = n(36),
s = n(183),
o = n(34),
l = n(3),
c = n(13),
u = n(2),
A = n(94),
d = a.createClass({
displayName: "DownloadDialog",
mixins: [c],
vivaldiSettingsKeys: ["SHOW_DOWNLOADPANEL_FOR_NEW_DOWNLOADS"],
getInitialState: function() {
return {
shown: !0,
modalShown: !1,
openSavedFiles: !1,
askNextTime: !1
}
},
componentWillMount: function() {
l.get("OPEN_SAFE_FILES", function(e) {
this.setState({
openSavedFiles: e
})
}.bind(this))
},
componentDidMount: function() {
this.refs.defaultAction.focus()
},
componentWillReceiveProps: function() {
this.setState({
shown: !0
})
},
onOpen: function() {
this.props.customData.request.allow("open"), this.setState({
shown: !this.state.shown
}), !document.querySelector("#panels-container .downloads.active") && this.state.SHOW_DOWNLOADPANEL_FOR_NEW_DOWNLOADS && A.executeActions("COMMAND_SHOW_DOWNLOADS_PANEL"), this.close()
},
onSave: function() {
this.props.customData.request.allow(), this.setState({
shown: !this.state.shown
}), !document.querySelector("#panels-container .downloads.active") && this.state.SHOW_DOWNLOADPANEL_FOR_NEW_DOWNLOADS && A.executeActions("COMMAND_SHOW_DOWNLOADS_PANEL"), this.close()
},
onSaveAs: function() {
this.props.customData.request.allow("saveas"), this.setState({
shown: !this.state.shown
}), !document.querySelector("#panels-container .downloads.active") && this.state.SHOW_DOWNLOADPANEL_FOR_NEW_DOWNLOADS && A.executeActions("COMMAND_SHOW_DOWNLOADS_PANEL"), this.close()
},
onCancel: function() {
this.props.customData.request.deny(), this.setState({
shown: !this.state.shown
}), this.close()
},
close: function() {
l.set({
AUTOMATICALLY_DOWNLOAD_FILES: this.state.askNextTime
}), this.props.onClose()
},
onSetOpeningFiles: function() {
this.setState({
openSavedFiles: !this.state.openSavedFiles
}), l.set({
OPEN_SAFE_FILES: !this.state.openSavedFiles
}), this.refs.defaultAction.focus()
},
onAskDownloadChanged: function(e) {
this.setState({
askNextTime: e.target.value
})
},
render: function() {
var e = this.props.customData.suggestedFilename ? this.props.customData.suggestedFilename : r.parse(this.props.customData.url).pathname.split("/").pop(),
t = r.parse(this.props.customData.url).hostname,
n = this.props.customData.fileSize === -1 ? u("Unknown") : s.filesize(this.props.customData.fileSize);
return a.createElement(o, {
__source: {
fileName: i,
lineNumber: 108
}
}, a.createElement("div", {
className: "dialog-download",
__source: {
fileName: i,
lineNumber: 109
}
}, a.createElement("header", {
className: "dialog-header",
__source: {
fileName: i,
lineNumber: 110
}
}, a.createElement("h1", {
className: "dialog-title",
title: e,
__source: {
fileName: i,
lineNumber: 112
}
}, u("Download “$1”?", [e]))), a.createElement("div", {
className: "dialog-content",
__source: {
fileName: i,
lineNumber: 117
}
}, a.createElement("p", {
__source: {
fileName: i,
lineNumber: 118
}
}, a.createElement("span", {
className: "label",
title: e,
__source: {
fileName: i,
lineNumber: 119
}
}, u("File Name:")), e), a.createElement("p", {
__source: {
fileName: i,
lineNumber: 122
}
}, a.createElement("span", {
className: "label",
__source: {
fileName: i,
lineNumber: 122
}
}, u("File Size:")), n), a.createElement("p", {
__source: {
fileName: i,
lineNumber: 123
}
}, a.createElement("span", {
className: "label",
__source: {
fileName: i,
lineNumber: 123
}
}, u("Host:")), t), a.createElement("label", {
className: "autosave",
__source: {
fileName: i,
lineNumber: 124
}
}, a.createElement("input", {
type: "checkbox",
onChange: this.onAskDownloadChanged,
__source: {
fileName: i,
lineNumber: 125
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 128
}
}, u("Always Save Files to Default Download Location")))), a.createElement("footer", {
className: "dialog-footer",
__source: {
fileName: i,
lineNumber: 131
}
}, a.createElement("input", {
type: "button",
className: "primary",
onClick: this.onSave,
ref: "defaultAction",
value: u("Save"),
__source: {
fileName: i,
lineNumber: 132
}
}), a.createElement("input", {
type: "button",
onClick: this.onSaveAs,
value: u("Save As..."),
__source: {
fileName: i,
lineNumber: 138
}
}), a.createElement("input", {
type: "button",
onClick: this.onOpen,
value: u("Open"),
__source: {
fileName: i,
lineNumber: 142
}
}), a.createElement("input", {
type: "button",
onClick: this.onCancel,
value: u("Cancel"),
__source: {
fileName: i,
lineNumber: 146
}
}))))
}
});
e.exports = d
}, function(e, t, n) {
// =========================
// Function_591
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/dialogs/javascriptDialog.jsx",
a = n(1),
r = n(4),
s = n(34),
o = n(2),
l = n(36),
c = l.parse,
u = n(7),
A = u.delay,
d = a.createClass({
displayName: "JavascriptDialog",
getInitialState: function() {
return {
shown: !0,
modalShown: !1,
customData: this.props.customData,
onClose: null,
promptValue: this.props.customData.defaultPromptText,
stopScripts: !1
}
},
handleLoadStart: function(e) {
e.isTopLevel && this.onCancel()
},
componentWillMount: function() {
this.props.customData.webview.addEventListener("loadstart", this.handleLoadStart), this._lastFocused = document.activeElement
},
componentDidMount: function() {
var e = this;
"prompt" !== this.props.customData.messageType ? A(function() {
return e.refs.okButton.focus()
}, 80) : A(function() {
return e.refs.promptInput.focus()
}, 80)
},
componentWillUnmount: function() {
this.props.customData.webview.removeEventListener("loadstart", this.handleLoadStart)
},
componentWillReceiveProps: function() {
this.setState({
shown: !0
})
},
onOk: function() {
this.setState({
shown: !this.state.shown
}), this.state.stopScripts ? r.contentSettings.javascript.set({
primaryPattern: this.props.customData.url + "*",
setting: "block"
}, function() {
this.props.customData.webview.stop(), this.onCancel()
}.bind(this)) : (this.props.customData.dialog.ok(this.state.promptValue), this.props.onClose()), this.returnFocus()
},
onCancel: function() {
this.props.customData.dialog.cancel(), this.setState({
shown: !this.state.shown
}), this.props.onClose(), this.returnFocus()
},
returnFocus: function() {
this._lastFocused && this._lastFocused.focus()
},
handlePrompt: function(e) {
this.setState({
promptValue: e.target.value
})
},
handleStopScripts: function(e) {
this.setState({
stopScripts: e.target.checked
})
},
render: function() {
var e = c(this.props.customData.url).hostname,
t = this.props.customData.messageType,
n = e ? o("JavaScript from “$1”", [e]) : o("JavaScript from localhost"),
r = null;
return a.createElement(s, {
dialogWidth: 400,
onRequestClose: this.onCancel,
__source: {
fileName: i,
lineNumber: 107
}
}, a.createElement("div", {
className: "dialog-javascript",
__source: {
fileName: i,
lineNumber: 108
}
}, a.createElement("header", {
className: "dialog-header",
__source: {
fileName: i,
lineNumber: 110
}
}, a.createElement("h1", {
className: "dialog-title",
title: n,
__source: {
fileName: i,
lineNumber: 111
}
}, n)), a.createElement("form", {
onSubmit: this.onOK,
__source: {
fileName: i,
lineNumber: 113
}
}, a.createElement("div", {
className: "dialog-content",
__source: {
fileName: i,
lineNumber: 114
}
}, a.createElement("p", {
__source: {
fileName: i,
lineNumber: 115
}
}, this.props.customData.messageText), "prompt" === t && a.createElement("input", {
type: "text",
ref: "promptInput",
value: this.state.promptValue,
onChange: this.handlePrompt,
__source: {
fileName: i,
lineNumber: 119
}
})), a.createElement("footer", {
className: "dialog-footer",
__source: {
fileName: i,
lineNumber: 126
}
}, a.createElement("input", {
ref: "okButton",
type: "submit",
value: o("OK"),
onClick: this.onOk,
__source: {
fileName: i,
lineNumber: 127
}
}), "alert" !== t && a.createElement("input", {
type: "button",
onClick: this.onCancel,
value: o("Cancel"),
__source: {
fileName: i,
lineNumber: 133
}
}), r))))
}
});
e.exports = d
}, function(e, t, n) {
// =========================
// Function_592
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/dialogs/openSessionDialog.jsx",
a = n(1),
r = n(69),
s = n(10),
o = n(34),
l = n(2),
c = n(650),
u = n(169),
A = n(98),
d = [{
text: l("Name"),
value: "name",
fullScreenTitle: l("Sort by Name")
}, {
text: l("Creation Date"),
value: "createDateJS",
fullScreenTitle: l("Sort by Creation Date")
}],
h = a.createClass({
displayName: "OpenSessionDialog",
getInitialState: function() {
return {
sessions: [],
disabled: !0,
openInNewWindow: !0,
sessionSorting: {
sortOrder: A.NO_SORTING,
sortField: "manually",
comparator: this.sortComparator
}
}
},
componentDidMount: function() {
this.refreshSessionList(), this.updateSelectedSessions()
},
sortComparator: function(e, t) {
var n = this.state.sessionSorting,
i = n.sortOrder,
a = n.sortField,
r = A.getDefaultComparator(i, a);
return r(e, t)
},
refreshSessionList: function() {
var e = this;
s.sessionsPrivate.getAll(function(t) {
Array.isArray(t) && ! function() {
var n = 1;
t.forEach(function(e) {
e.id = n++
}), e.setState({
sessions: t
})
}()
})
},
updateSelectedSessions: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;
if (this.refs.sessionTree) {
var t = !1,
n = this.refs.sessionTree.getSelectedSessions();
n.length >= 1 && (t = !0), this.setState({
disabled: void 0 !== e ? !e : !t
})
}
},
onDelete: function() {
for (var e = this, t = this.refs.sessionTree.getSelectedSessions(), n = 0; n < t.length; n++) s.sessionsPrivate.delete(t[n].name, function(t) {
t && console.warn("Error deleting session '" + e.state.sessions[n].name + "', error: " + t)
});
this.refreshSessionList()
},
onOpenSessions: function(e) {
for (var t = {
openInNewWindow: this.state.openInNewWindow
}, n = this.refs.sessionTree.getSelectedSessions(), i = 0; i < n.length; i++) s.sessionsPrivate.open(n[i].name, t, function(e) {
e && console.warn("Error opening session '" + n[i].value + "', error: " + e)
});
this.props.onClose()
},
onSortChange: function(e, t) {
var n = r(this.state, {
sessionSorting: {
sortOrder: {
$set: e
},
sortField: {
$set: t
}
}
});
this.setState(n)
},
_toggleOpenInNewWindow: function(e) {
this.setState({
openInNewWindow: !this.state.openInNewWindow
})
},
render: function() {
return a.createElement(o, {
onRequestClose: this.props.onClose,
dialogWidth: 600,
__source: {
fileName: i,
lineNumber: 111
}
}, a.createElement("div", {
className: "open-session",
__source: {
fileName: i,
lineNumber: 112
}
}, a.createElement("form", {
className: "dialog-session",
onSubmit: this.onOpenSessions,
__source: {
fileName: i,
lineNumber: 113
}
}, a.createElement("header", {
className: "dialog-header",
__source: {
fileName: i,
lineNumber: 114
}
}, a.createElement("h1", {
className: "dialog-title",
__source: {
fileName: i,
lineNumber: 115
}
}, l("Open Session"))), a.createElement("div", {
className: "dialog-content",
__source: {
fileName: i,
lineNumber: 117
}
}, a.createElement("div", {
className: "session-list",
__source: {
fileName: i,
lineNumber: 118
}
}, a.createElement(u, {
fields: d,
onSortChange: this.onSortChange,
fullsize: !0,
sortField: this.state.sessionSorting.sortField,
sortOrder: this.state.sessionSorting.sortOrder,
__source: {
fileName: i,
lineNumber: 119
}
}), a.createElement("div", {
className: "vivaldi-tree-container",
__source: {
fileName: i,
lineNumber: 125
}
}, a.createElement(c, {
ref: "sessionTree",
sessionSorting: this.state.sessionSorting,
onOpenSessions: this.onOpenSessions,
onUpdateSelection: this.updateSelectedSessions,
onClose: this.props.onClose,
nodes: this.state.sessions,
__source: {
fileName: i,
lineNumber: 126
}
}))), a.createElement("label", {
className: "dialog-checkbox",
__source: {
fileName: i,
lineNumber: 135
}
}, a.createElement("input", {
type: "checkbox",
checked: this.state.openInNewWindow,
onChange: this._toggleOpenInNewWindow,
__source: {
fileName: i,
lineNumber: 136
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 139
}
}, l("Open Session in a New Window")))), a.createElement("footer", {
className: "dialog-footer",
__source: {
fileName: i,
lineNumber: 142
}
}, a.createElement("input", {
type: "submit",
disabled: this.state.disabled,
value: l("session", "Open"),
__source: {
fileName: i,
lineNumber: 143
}
}), a.createElement("input", {
type: "button",
onClick: this.onDelete,
className: "danger",
disabled: this.state.disabled,
value: l("session", "Delete"),
__source: {
fileName: i,
lineNumber: 147
}
}), a.createElement("input", {
type: "button",
onClick: this.props.onClose,
value: l("session", "Cancel"),
__source: {
fileName: i,
lineNumber: 153
}
})))))
}
});
e.exports = h
}, function(e, t, n) {
// =========================
// Function_593
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/dialogs/saveSessionDialog.jsx",
a = n(4),
r = n(1),
s = n(10),
o = n(34),
l = n(2),
c = r.createClass({
displayName: "SaveSessionDialog",
getInitialState: function() {
return {
shown: !0,
name: "",
invalidInput: !1,
errorSaving: !1,
saveOnlyCurrentWindow: !1
}
},
componentDidMount: function() {
this.refs.inputName.focus()
},
handleClick: function() {
this.state.shown && this.props.onClose(), this.setState({
shown: !this.state.shown
})
},
onSaveSession: function() {
var e = this;
a.windows.getCurrent({
windowTypes: ["normal"]
}, function(t) {
var n = {
saveOnlyWindowId: 0
};
e.state.saveOnlyCurrentWindow === !0 && (n.saveOnlyWindowId = t.id), s.sessionsPrivate.saveOpenTabs(e.state.name, n, function(t) {
0 === t ? e.props.onClose() : e.setState({
errorSaving: !0
})
})
})
},
isValidName: function(e) {
var t = /^[^\\/:\*\?"<>\|]+$/,
n = /^\./,
i = /^(nul|prn|con|lpt[0-9]|com[0-9])(\.|$)/i;
return t.test(e) && !n.test(e) && !i.test(e)
},
nameChange: function(e) {
"" === e.target.value || this.isValidName(e.target.value) ? this.setState({
name: e.target.value,
invalidInput: !1
}) : this.setState({
invalidInput: !0
})
},
_toggleSaveOnlyCurrentWindow: function() {
this.setState({
saveOnlyCurrentWindow: !this.state.saveOnlyCurrentWindow
})
},
render: function() {
var e = "";
return this.state.invalidInput === !0 ? e = l("Invalid character in the session name.") : this.state.errorSaving && (e = l("Error saving the session.")), r.createElement(o, {
onRequestClose: this.handleClick,
__source: {
fileName: i,
lineNumber: 78
}
}, r.createElement("div", {
className: "save-session",
__source: {
fileName: i,
lineNumber: 79
}
}, r.createElement("header", {
className: "dialog-header",
__source: {
fileName: i,
lineNumber: 80
}
}, r.createElement("h1", {
className: "dialog-title",
__source: {
fileName: i,
lineNumber: 81
}
}, l("Save Open Tabs as Session"))), r.createElement("form", {
onSubmit: this.onSaveSession,
__source: {
fileName: i,
lineNumber: 83
}
}, r.createElement("div", {
className: "dialog-content session-dialog",
__source: {
fileName: i,
lineNumber: 84
}
}, r.createElement("input", {
type: "text",
ref: "inputName",
placeholder: l("Session Name"),
onChange: this.nameChange,
spellCheck: "false",
__source: {
fileName: i,
lineNumber: 85
}
}), r.createElement("label", {
className: "dialog-checkbox",
__source: {
fileName: i,
lineNumber: 90
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.saveOnlyCurrentWindow,
onChange: this._toggleSaveOnlyCurrentWindow,
__source: {
fileName: i,
lineNumber: 91
}
}), r.createElement("span", {
__source: {
fileName: i,
lineNumber: 94
}
}, l("Save Only Tabs In Current Window")))), "" !== e && r.createElement("div", {
className: "error-validation",
__source: {
fileName: i,
lineNumber: 98
}
}, r.createElement("input", {
type: "text",
value: e,
readOnly: "true",
__source: {
fileName: i,
lineNumber: 99
}
})), r.createElement("footer", {
className: "dialog-footer",
__source: {
fileName: i,
lineNumber: 104
}
}, r.createElement("input", {
type: "button",
className: "primary",
onClick: this.onSaveSession,
value: l("Save"),
disabled: this.state.invalidInput === !0,
__source: {
fileName: i,
lineNumber: 105
}
}), r.createElement("input", {
type: "button",
onClick: this.handleClick,
value: l("Cancel"),
__source: {
fileName: i,
lineNumber: 110
}
})))))
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_594
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/dialogs/showKeyboardShortcuts.jsx",
a = n(1),
r = n(368),
s = n(13),
o = n(2),
l = a.createClass({
displayName: "ShowKeyboardShortcuts",
mixins: [s],
vivaldiSettingsKeys: ["DISABLE_SINGLE_KEY_SHORTCUTS"],
getInitialState: function() {
return {
filter: ""
}
},
componentDidMount: function() {
this.refs.comboFilter.focus()
},
onSettingsFilter: function(e) {
var t = e.target.value.toLowerCase(),
n = t.replace(/⌘/g, "meta").replace(/⌥/g, "alt").replace(/⇧/g, "shift").replace(/⌃/g, "ctrl");
this.setState({
filter: n
})
},
onKeyDown: function(e) {
"Escape" === e.nativeEvent.code && (this.props.onClose(), e.stopPropagation(), e.preventDefault())
},
render: function() {
return a.createElement("div", {
className: "keyboardShortcutsWrapper",
tabIndex: "0",
ref: "keyboardList",
onKeyDown: this.onKeyDown,
__source: {
fileName: i,
lineNumber: 46
}
}, a.createElement("header", {
__source: {
fileName: i,
lineNumber: 50
}
}, a.createElement("h1", {
__source: {
fileName: i,
lineNumber: 51
}
}, o("Keyboard Cheat Sheet")), a.createElement("input", {
className: "search",
ref: "comboFilter",
type: "search",
placeholder: o("Filter Commands"),
onChange: this.onSettingsFilter,
__source: {
fileName: i,
lineNumber: 52
}
}), a.createElement("button", {
className: "close",
onClick: this.props.onClose,
dangerouslySetInnerHTML: {
__html: n(81)
},
__source: {
fileName: i,
lineNumber: 57
}
})), a.createElement("div", {
className: this.state.DISABLE_SINGLE_KEY_SHORTCUTS ? "keystrokes singlekeydisabled" : "keystrokes",
__source: {
fileName: i,
lineNumber: 63
}
}, a.createElement(r, {
filter: this.state.filter,
view: "read-only",
__source: {
fileName: i,
lineNumber: 65
}
})))
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_595
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/downloads/DownloadItem.jsx",
r = n(1),
s = i(r),
o = n(648),
l = i(o),
c = n(47),
u = i(c),
A = n(2),
d = i(A),
h = n(4),
m = i(h),
p = n(183),
f = i(p),
g = n(21),
_ = i(g),
v = s.default.createClass({
displayName: "DownloadItem",
getInitialState: function() {
return {}
},
shouldComponentUpdate: function(e, t) {
return (0, _.default)(this, e, t)
},
onShow: function() {
m.default.downloads.show(this.props.item.id)
},
onPause: function() {
m.default.downloads.pause(this.props.item.id)
},
onResume: function() {
m.default.downloads.resume(this.props.item.id)
},
handleMouseEnter: function(e) {
u.default.setStatus(e)
},
handleMouseLeave: function() {
u.default.clearStatus()
},
render: function() {
var e = this.props.item.filename.split("\\").pop().split("/").pop(),
t = this.props.item.bytesReceived,
n = f.default.filesize(t),
i = new Date(this.props.item.estimatedEndTime).getTime(),
r = (new Date).getTime() + 2e3,
o = "in_progress" === this.props.item.state,
c = !1;
o && i > r ? c = f.default.relativeTime(i / 1e3) : o && i <= r && (c = (0, d.default)("about a second"));
var u = f.default.filesize(this.props.item.totalBytes ? this.props.item.totalBytes : this.props.item.bytesReceived);
return s.default.createElement("li", {
tabIndex: "-1",
className: ("complete" === this.props.item.state ? "loaded" : "") + (this.props.isSelected ? " selected" : ""),
onMouseEnter: "off" === this.props.showFooter ? null : this.handleMouseEnter.bind(this, this.props.item.url),
onMouseLeave: "off" === this.props.showFooter ? null : this.handleMouseLeave,
title: e,
__source: {
fileName: a,
lineNumber: 60
}
}, s.default.createElement("div", {
className: "icon",
__source: {
fileName: a,
lineNumber: 70
}
}, s.default.createElement("img", {
src: this.props.item.icon,
__source: {
fileName: a,
lineNumber: 71
}
})), s.default.createElement("div", {
className: "file",
__source: {
fileName: a,
lineNumber: 73
}
}, s.default.createElement("div", {
className: "filename",
__source: {
fileName: a,
lineNumber: 74
}
}, e), "in_progress" === this.props.item.state && s.default.createElement(l.default, {
type: "bar",
overridePercent: "complete" === this.props.item.state ? 100 : -1,
totalSize: this.props.item.totalBytes,
currentSize: t,
__source: {
fileName: a,
lineNumber: 78
}
}), s.default.createElement("div", {
className: "size",
__source: {
fileName: a,
lineNumber: 83
}
}, "complete" === this.props.item.state ? u : this.props.item.paused ? (0, d.default)("$1 of $2 — stopped", [n, u]) : (0, d.default)("$1 of $2", [n, u]), c && " " + (0, d.default)("($1)", [c]))))
}
});
e.exports = v
}, function(e, t, n) {
// =========================
// Function_596
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/downloads/DownloadPanel.jsx",
a = n(1),
r = n(11),
s = n(597),
o = n(27),
l = n(15),
c = n(58),
u = n(2),
A = n(4),
d = n(113),
h = n(30),
m = n(21),
p = n(177),
f = p.showNotification,
g = 500,
_ = a.createClass({
displayName: "DownloadPanel",
blockApi: !1,
restartingIds: o.List(),
getInitialState: function() {
return {
downloadItems: o.List(),
iconItems: o.Map(),
pollTimer: -1,
hasActiveTransfersSelected: !1,
hasPausedTransfersSelected: !1,
hasCompletedTransfersSelected: !1,
hasCompletedTransfers: !1,
activeItemId: void 0,
filter: "",
isIncognitoWindow: !1,
topMost: 0
}
},
getDownloadItems: function() {
return this.state.downloadItems
},
componentWillMount: function() {
var e = this;
A.downloads && A.downloads.setShelfEnabled(!1), window.vivaldiWindowId && A.windows.get(window.vivaldiWindowId, function(t) {
t && e.setState({
isIncognitoWindow: t.incognito
})
})
},
componentDidMount: function() {
var e = this;
A.downloads.onCreated.addListener(this.onTransferCreated), A.downloads.onChanged.addListener(this.onTransferChanged), A.downloads.onErased.addListener(this.onTransferErased), A.downloads.onDeterminingFilename.addListener(this.onDetermineFileName), A.downloads.search({}, function(t) {
e.onTransfersInstalled(t)
}), c.addChangeListener(this.onPanelStoreChange)
},
componentDidUpdate: function(e, t) {
if (!e.open && this.props.open && (r.findDOMNode(this.refs.downloadTree).focus(), 0 === this.refs.downloadTree.getSelectedNodes().length)) {
var n = this.getDownloadItems();
n.size > 0 && this.refs.downloadTree.selectById(n.get(0).id)
}
},
componentWillUnmount: function() {
A.downloads.onCreated.removeListener(this.onTransferCreated), A.downloads.onChanged.removeListener(this.onTransferChanged), A.downloads.onErased.removeListener(this.onTransferErased), A.downloads.onDeterminingFilename.removeListener(this.onDetermineFileName), c.removeChangeListener(this.onPanelStoreChange)
},
shouldComponentUpdate: function(e, t) {
return m(this, e, t)
},
onPanelStoreChange: function(e) {
this.props.open && "setFocus" === e && !d(r.findDOMNode(this)) && r.findDOMNode(this.refs.downloadTree).focus()
},
onTransfersInstalled: function(e) {
var t = this,
n = e.sort(function(e, t) {
return Date.parse(e.startTime) - Date.parse(t.startTime)
}).filter(function(e) {
return !(e.incognito === !0 && t.state.isIncognitoWindow === !1)
}),
i = this.state.iconItems;
return Promise.all(n.map(function(e) {
return new Promise(function(t) {
A.downloads.getFileIcon(e.id, {
size: 32
}, function(n) {
A.runtime.lastError || (e.icon = n, i = i.set(e.id, n)), t(e)
})
})
})).then(function(e) {
var n = o.List();
e.forEach(function(e) {
n = n.unshift(e)
}), t.setState({
downloadItems: n,
iconItems: i
})
})
},
onTransferCreated: function(e) {
var t = this;
A.windows.getLastFocused(function(e) {
t.setState({
topMost: e.id
})
});
var n = !0;
if (this.state.isIncognitoWindow === !1 && e.incognito === !0 && (n = !1), n && !this.blockApi) {
this.updateIcon(e.id);
var i = this.getDownloadItems().unshift(e);
this.setState({
downloadItems: i
}), this.startPolling()
}
},
onTransferChanged: function(e) {
var t = this,
n = this.restartingIds.filter(function(t) {
return t === e.id
});
if (!(n.size > 0)) {
var i = !1,
a = this.getDownloadItems(),
r = [];
a = a.map(function(n) {
return n.id === e.id ? (e.state && e.state.current !== e.state.previous && (n.state = e.state.current, "in_progress" === n.state && n.paused === !1 ? i = !0 : "interrupted" === n.state && "" === n.filename ? r.push(n.id) : "complete" === n.state && "in_progress" === e.state.previous && t.onTransferFinished(n)), e.paused && e.paused.current !== e.paused.previous && (n.paused = e.paused.current), e.canResume && e.canResume.current !== e.canResume.previous && (n.canResume = e.canResume.current), e.bytesReceived && (n.bytesReceived = e.bytesReceived.current), e.estimatedEndTime && (n.estimatedEndTime = e.estimatedEndTime.current), e.totalBytes && (n.totalBytes = e.totalBytes.current), e.filename && e.filename.current !== e.filename.previous ? (n.filename = e.filename.current, t.updateIcon(n.id)) : n.filename && !n.icon && t.updateIcon(n.id), e.danger && e.danger.current !== e.danger.previous && (n.danger = e.danger.current, A.downloads.acceptDanger(n.id, function() {
A.runtime.lastError
})), Object.assign({}, n)) : n
}), this.setState({
downloadItems: a
}), r.length > 0 && this.onErase(r), i && this.startPolling()
}
},
onTransferFinished: function(e) {
this.props.notifications && this.state.topMost === window.vivaldiWindowId && f({
title: u("Download Complete"),
body: e.filename.split("\\").pop().split("/").pop(),
icon: e.icon,
callback: function() {
return A.downloads.show(e.id)
}
})
},
onTransferErased: function(e) {
if (!this.blockApi) {
var t = this.getDownloadItems().filter(function(t) {
return t.id !== e
});
this.setState({
downloadItems: t
})
}
this.setState({
iconItems: this.state.iconItems.delete(e)
})
},
onDetermineFileName: function(e, t) {
function n(e, n) {
t({
filename: e,
conflictAction: n
})
}
n(e.filename, "uniquify")
},
getOpenInMenu: function() {
return [Object.assign({
handler: this.openSelected
}, h("the file", "External Viewer")), {
name: "---"
}, Object.assign({
handler: this.openSelectedInTab.bind(this, !0, !1)
}, h("Current Tab")), Object.assign({
handler: this.openSelectedInTab.bind(this, !1, !1)
}, h("open in", "New Tab")), Object.assign({
handler: this.openSelectedInTab.bind(this, !1, !0)
}, h("Background Tab")), {
name: "---"
}, Object.assign({
handler: this.openSelectedInWindow.bind(this, !1, !1)
}, h("open in", "New Window")), Object.assign({
handler: this.openSelectedInWindow.bind(this, !0, !1)
}, h("Background Window")), Object.assign({
handler: this.openSelectedInWindow.bind(this, !1, !0)
}, h("Private Window"))]
},
getContextMenuItems: function() {
var e = this.updateActiveProgressState(),
t = this.hasSelectedImages();
return [Object.assign({
handler: this.openSelected,
visible: e.hasCompletedTransfersSelected && !t
}, h("the file", "Open File")), Object.assign({
items: this.getOpenInMenu(),
visible: t,
ellipsis: !0
}, h("Open in")), Object.assign({
handler: this.showSelectedInFilemanager
}, h("MacIntel" === navigator.platform ? "Show in Finder" : "Show in File Manager")), Object.assign({
handler: this.copySelectedAddress
}, h("Copy Download Address")), Object.assign({
handler: this.copySelectedPath,
visible: e.hasCompletedTransfersSelected
}, h("Copy Local Path")), {
name: "---",
visible: e.hasActiveTransfersSelected
}, Object.assign({
handler: this.stopSelected,
visible: e.hasActiveTransfersSelected
}, h("Stop")), Object.assign({
handler: this.resumeSelected,
visible: e.hasPausedTransfersSelected
}, h("Resume")), {
name: "---"
}, Object.assign({
handler: this.removeSelected
}, h("Remove")), Object.assign({
handler: this.removeAllFinished,
visible: e.hasCompletedTransfers
}, h("Clear Finished Downloads"))]
},
getSelectedItems: function() {
var e = this.refs.downloadTree ? this.refs.downloadTree.getSelectedNodes().map(function(e) {
return e.id
}) : [],
t = this.state.downloadItems.filter(function(t) {
return e.findIndex(function(e) {
return e === t.id
}) !== -1
});
return t
},
getImageItems: function(e) {
var t = (e ? this.getSelectedItems() : this.getDownloadItems()).filter(function(e) {
return "complete" === e.state && e.mime.startsWith("image/")
});
return t
},
hasSelectedImages: function() {
return this.getImageItems(!0).size > 0
},
updateActiveProgressState: function() {
for (var e = !1, t = !1, n = !1, i = !1, a = this.getSelectedItems().toArray(), r = 0; r < a.length; r++) {
var s = a[r];
if ("in_progress" === s.state ? s.paused ? t = !0 : e = !0 : "complete" === s.state && (n = i = !0), e && t && n) break
}
if (!i) {
a = this.state.downloadItems.toArray();
for (var o = 0; o < a.length; o++) {
var l = a[o];
if ("complete" === l.state) {
i = !0;
break
}
}
}
var c = {
hasActiveTransfersSelected: e,
hasPausedTransfersSelected: t,
hasCompletedTransfersSelected: n,
hasCompletedTransfers: i
};
return this.setState(c), c
},
updateIcon: function(e) {
var t = this;
A.downloads.getFileIcon(e, {
size: 32
}, function(n) {
if (!A.runtime.lastError) {
var i = t.state.iconItems;
i = i.set(e, n), t.setState({
iconItems: i
});
var a = t.state.downloadItems.map(function(t) {
return t.id === e ? (t.icon = n, Object.assign({}, t)) : t
});
t.setState({
downloadItems: a
})
}
})
},
stopSelected: function() {
this.getSelectedItems().filter(function(e) {
return !e.paused
}).forEach(function(e) {
A.downloads.pause(e.id)
})
},
resumeSelected: function() {
var e = this;
this.getSelectedItems().filter(function(e) {
return e.canResume
}).forEach(function(t) {
A.downloads.resume(t.id, function() {
e.startPolling()
})
})
},
restartSelected: function() {
var e = this,
t = this.getSelectedItems();
t.size > 0 && ! function() {
var n = [],
i = e.getDownloadItems();
e.blockApi = !0, e.restartingIds = t.map(function(e) {
return e.id
}), Promise.all(t.map(function(e) {
return new Promise(function(t) {
A.downloads.erase({
id: e.id
}, function() {
A.downloads.download({
url: e.url
}, function(a) {
n.push(a), i = i.map(function(t) {
return t.id === e.id && (t.id = a), t
}), t()
})
})
})
})).then(function() {
e.blockApi = !1, e.setState({
downloadItems: i
}, function() {
e.refs.downloadTree.selectByIds(n), e.restartingIds = e.restartingIds.clear()
})
})
}()
},
showSelectedInFilemanager: function() {
this.getSelectedItems().forEach(function(e) {
A.downloads.show(e.id)
})
},
openSelected: function() {
this.getSelectedItems().forEach(function(e) {
"complete" === e.state && A.downloads.open(e.id)
})
},
openSelectedInTab: function(e, t) {
var n = this.getSelectedItems().filter(function(e) {
return "complete" === e.state && e.mime.startsWith("image/")
}).map(function(e) {
return "file://" + e.filename
});
n.size > 0 && ! function() {
var i = n.get(n.size - 1);
n.forEach(function(n) {
var a = {
inCurrent: e,
inBackground: t
};
t === !1 && (a.inBackground = n !== i), l.openURL(n, a), e = !1
})
}()
},
openSelectedInWindow: function(e, t) {
var n = this.getSelectedItems().filter(function(e) {
return "complete" === e.state && e.mime.startsWith("image/")
}).map(function(e) {
return "file://" + e.filename
}),
i = {
inNewWindow: !0,
inBackground: e,
incognito: t
};
n.forEach(function(e) {
l.openURL(e, i)
})
},
onSelected: function(e) {
this.setState({
activeItemId: e
})
},
onErase: function(e) {
var t = this;
return this.blockApi = !0, Promise.all(e.map(function(e) {
return new Promise(function(t) {
A.downloads.erase({
id: e
}, t)
})
})).then(function() {
var n = t.getDownloadItems();
n = n.filter(function(t) {
return e.findIndex(function(e) {
return e === t.id
}) === -1
}), t.setState({
downloadItems: n
}), t.pollProgress(), t.blockApi = !1
})
},
verifyErase: function(e) {
var t = this.state.downloadItems.filter(function(t) {
return e.findIndex(function(e) {
return e === t.id
}) !== -1
});
return t = t.filter(function(e) {
return "in_progress" !== e.state || "in_progress" === e.state && e.paused
}), t.map(function(e) {
return e.id
}).toArray()
},
removeAllFinished: function() {
var e = this.state.downloadItems.filter(function(e) {
return "complete" === e.state
}).map(function(e) {
return e.id
}).toArray();
this.refs.downloadTree.erase(e)
},
removeSelected: function() {
var e = this.getSelectedItems().map(function(e) {
return e.id
});
this.refs.downloadTree.erase(this.verifyErase(e))
},
copySelectedAddress: function() {
var e = this.getSelectedItems().map(function(e) {
return e.url
});
if (e.size > 0) {
var t = function(t) {
t.clipboardData.setData("text/plain", e.join("\n")), t.preventDefault()
};
document.addEventListener("copy", t), document.execCommand("copy"), document.removeEventListener("copy", t)
}
},
copySelectedPath: function() {
var e = this.getSelectedItems().filter(function(e) {
return "complete" === e.state
}).map(function(e) {
return e.filename
});
if (e.size > 0) {
var t = function(t) {
t.clipboardData.setData("text/plain", e.join("\n")), t.preventDefault()
};
document.addEventListener("copy", t), document.execCommand("copy"), document.removeEventListener("copy", t)
}
},
startPolling: function() {
this.pollTimer !== -1 && clearTimeout(this.pollTimer), this.pollTimer = setTimeout(this.pollProgress, g)
},
pollProgress: function() {
var e = this,
t = 0,
n = 0,
i = 0;
A.downloads.search({
state: "in_progress"
}, function(a) {
t = a.length, a.map(function(t) {
n += t.totalBytes, i += t.bytesReceived;
var a = {
state: {
current: ""
},
paused: {
current: ""
},
canResume: {
current: ""
},
totalBytes: {
current: 0
},
bytesReceived: {
current: 0
},
estimatedEndTime: {
current: 0
}
};
a.id = t.id, a.state.current = t.state, a.paused.current = t.paused, a.canResume.current = t.canResume, a.totalBytes.current = t.totalBytes, a.bytesReceived.current = t.bytesReceived, a.estimatedEndTime.current = t.estimatedEndTime, e.onTransferChanged(a)
}), e.props.onTransfersUpdated(t, Math.floor(i / n * 100))
}), this.updateActiveProgressState()
},
handleFilterChange: function(e) {
var t = this,
n = e.target.value;
this.setState({
filter: n
}), A.downloads.search({
query: n.split(" ")
}, function(e) {
var n = o.List();
e.map(function(e) {
e.icon = t.state.iconItems.get(e.id), n = n.unshift(e)
}), t.setState({
downloadItems: n
})
})
},
render: function() {
return this.props.open ? a.createElement("div", {
className: "panel",
id: "downloads",
__source: {
fileName: i,
lineNumber: 697
}
}, a.createElement("header", {
__source: {
fileName: i,
lineNumber: 698
}
}, a.createElement("h1", {
__source: {
fileName: i,
lineNumber: 699
}
}, u("Downloads")), a.createElement("div", {
className: "toolbar icons",
__source: {
fileName: i,
lineNumber: 700
}
}, a.createElement("input", {
type: "search",
placeholder: u("Search..."),
value: this.state.filter,
onChange: this.handleFilterChange,
__source: {
fileName: i,
lineNumber: 701
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 705
}
}, this.state.hasPausedTransfersSelected ? a.createElement("button", {
className: "button-toolbar dlresume",
title: u("Resume"),
tabIndex: this.props.keyAccess,
onClick: this.resumeSelected,
dangerouslySetInnerHTML: {
__html: n(1017)
},
__source: {
fileName: i,
lineNumber: 707
}
}) : a.createElement("button", {
className: "button-toolbar dlstop",
title: u("Stop"),
tabIndex: this.props.keyAccess,
disabled: !this.state.hasActiveTransfersSelected,
onClick: this.stopSelected,
dangerouslySetInnerHTML: {
__html: n(1018)
},
__source: {
fileName: i,
lineNumber: 716
}
}), a.createElement("button", {
className: "button-toolbar dlrestart",
title: u("Restart"),
tabIndex: this.props.keyAccess,
disabled: !this.state.activeItemId,
onClick: this.restartSelected,
dangerouslySetInnerHTML: {
__html: n(1016)
},
__source: {
fileName: i,
lineNumber: 726
}
}), a.createElement("button", {
className: "button-toolbar note-delete",
title: u("Remove"),
tabIndex: this.props.keyAccess,
disabled: !this.state.activeItemId,
onClick: this.removeSelected,
dangerouslySetInnerHTML: {
__html: n(92)
},
__source: {
fileName: i,
lineNumber: 735
}
}), a.createElement("button", {
className: "button-toolbar dlclear",
title: u("Clear finished downloads"),
tabIndex: this.props.keyAccess,
disabled: !this.state.hasCompletedTransfers,
onClick: this.removeAllFinished,
dangerouslySetInnerHTML: {
__html: n(473)
},
__source: {
fileName: i,
lineNumber: 744
}
})))), a.createElement("section", {
__source: {
fileName: i,
lineNumber: 757
}
}, a.createElement(s, {
ref: "downloadTree",
tabIndex: "0",
menuItems: this.getContextMenuItems,
items: this.state.downloadItems.toArray(),
verifyErase: this.verifyErase,
onErase: this.onErase,
onSelected: this.onSelected,
__source: {
fileName: i,
lineNumber: 758
}
}))) : null
}
});
e.exports = _
}, function(e, t, n) {
// =========================
// Function_597
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/downloads/downloadTree.jsx",
a = n(1),
r = n(595),
s = n(13),
o = n(109),
l = n(4),
c = n(21),
u = a.createClass({
displayName: "DownloadTree",
mixins: [s],
vivaldiSettingsKeys: ["SHOW_VIVALDI_FOOTER"],
shouldComponentUpdate: function(e, t) {
return c(this, e, t)
},
isFolder: function(e) {
return !1
},
hasChildren: function(e) {
return !1
},
eraseSelected: function() {
this.refs.treeList.onDelete()
},
erase: function(e) {
this.refs.treeList.onDeleteItems(e)
},
selectByIds: function(e) {
var t = this;
e.forEach(function(e) {
t.refs.treeList.selectById(e, {
ctrlKey: !0,
metaKey: !0
})
})
},
selectById: function(e) {
this.refs.treeList.selectById(e)
},
isSelected: function(e) {
return this.refs.treeList.isItemSelected(e)
},
getSelectedNodes: function() {
return this.refs.treeList.getAllSelectedItems(!1)
},
onNodeSelected: function(e) {
this.props.onSelected(e.id < 0 ? void 0 : e.id)
},
onNodeDoubleClick: function(e, t) {
l.downloads.open(t.id)
},
onNodesActivated: function(e, t) {
t.forEach(function(e) {
l.downloads.open(e.id)
})
},
renderItemContent: function(e) {
var t = a.createElement(r, {
key: e.node.id,
showFooter: this.state.SHOW_VIVALDI_FOOTER,
item: e.node,
__source: {
fileName: i,
lineNumber: 76
}
});
return [t]
},
render: function() {
return a.createElement(o, {
ref: "treeList",
nodes: this.props.items,
getContextMenuItems: this.props.menuItems,
isFolder: this.isFolder,
hasChildren: this.hasChildren,
delete: this.props.onErase,
onSelect: this.onNodeSelected,
enableDragAndDrop: !1,
onItemDoubleClick: this.onNodeDoubleClick,
onItemsActivated: this.onNodesActivated,
renderItemContent: this.renderItemContent,
validateForDeletion: this.props.verifyErase,
__source: {
fileName: i,
lineNumber: 85
}
})
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_598
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/draggable/draggable.jsx",
r = n(1),
s = n(11),
o = n(770),
l = n(5),
c = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",
u = 150,
A = {
isInternalDragging: void 0,
anchor: void 0,
positions: void 0,
elements: void 0,
elementsInitialOrder: void 0,
sourceElement: void 0,
dragFrom: void 0,
dragTo: void 0,
dragOver: void 0,
dragLeftOf: void 0
},
d = r.createClass({
displayName: "Draggable",
getInitialState: function() {
return {
dragging: !1,
dragOver: !1,
dragBefore: !1,
dragAfter: !1
}
},
getDefaultProps: function() {
return {
dragId: "",
dragType: "text/x-vivaldi-drag"
}
},
shouldComponentUpdate: function(e, t) {
return this.state.dragging === !1
},
setDragging: function(e) {
this.props.setDragging && this.props.setDragging(e)
},
onDragStart: function(e) {
this.setDragging(!0), A.isInternalDragging = !0, e.dataTransfer.effectAllowed = "move", e.dataTransfer.setData(this.props.dragType, this.props.dragId), s.findDOMNode(this).style.zIndex = "100";
var t = new Image;
t.src = c, e.dataTransfer.setDragImage(t, 0, 0);
var n = new window.WebKitCSSMatrix(s.findDOMNode(this).style.transform);
A.anchor = {
x: e.clientX - n.m41,
y: e.clientY - n.m42
}, A.dragFrom = this.props.dragId, setTimeout(function() {
this.isMounted() && (s.findDOMNode(this).style.pointerEvents = "none")
}.bind(this), 0), s.findDOMNode(this).parentNode.classList.add("dragging"), A.elements = [].slice.call(s.findDOMNode(this).parentNode.querySelectorAll("*[draggable]")), A.elementsInitialOrder = [].slice.call(A.elements), A.positions = A.elements.map(function(e) {
return {
left: e.getBoundingClientRect().left,
top: e.getBoundingClientRect().top
}
}), A.boundBox = A.elements.map(function(e) {
return e.getBoundingClientRect()
}).reduce(function(e, t) {
return e.minX = Math.min(t.left, e.minX), e.maxX = Math.max(t.left + t.width, e.maxX), e.minY = Math.min(t.top, e.minY), e.maxY = Math.max(t.top + t.width, e.maxY), e
}, {
minX: Number.POSITIVE_INFINITY,
maxX: Number.NEGATIVE_INFINITY,
minY: Number.POSITIVE_INFINITY,
maxY: Number.NEGATIVE_INFINITY
}), A.sourceElement = s.findDOMNode(this)
},
_isPointOutside: function(e, t) {
var n = window !== t.nativeEvent.view,
i = t.clientY,
a = e.getBoundingClientRect();
return n || i < a.top || i > a.top + a.height
},
onDrag: function(e) {
var t = s.findDOMNode(this);
if (0 !== e.clientX || 0 !== e.clientY) {
var n = {
deltaX: "x" in t.dataset ? parseInt(t.dataset.x) : 0,
deltaY: "y" in t.dataset ? parseInt(t.dataset.y) : 0
},
i = {
deltaX: e.clientX - A.anchor.x,
deltaY: e.clientY - A.anchor.y
};
if (this.props.lockToBounds) {
var a = t.getBoundingClientRect();
if (a.left + (i.deltaX - n.deltaX) < A.boundBox.minX) return;
if (a.left + a.width + (i.deltaX - n.deltaX) > A.boundBox.maxX) return
}
t.dataset.x = i.deltaX, t.dataset.y = i.deltaY;
var r = this._animationKeyframes(n, i);
t.animate(r, {
duration: 0,
fill: "forwards"
})
}
},
_animationKeyframes: function(e, t) {
var n, i;
return "x" === this.props.axis ? (n = "translateX(" + e.deltaX + "px)", i = "translateX(" + t.deltaX + "px)") : "y" === this.props.axis ? (n = "translateY(" + e.deltaY + "px)", i = "translateY(" + t.deltaY + "px)") : (n = "translate(" + e.deltaX + "px, " + e.deltaY + "px)", i = "translate(" + t.deltaX + "px, " + t.deltaY + "px)"), [{
transform: n
}, {
transform: i
}]
},
onDragOver: function(e) {
e.dataTransfer.types.indexOf(this.props.dragType) !== -1 && (e.preventDefault(), e.stopPropagation()), A.isInternalDragging && this._handleInternalDragging(e)
},
onDrop: function(e) {
e.dataTransfer.types.indexOf(this.props.dragType) !== -1 && (e.preventDefault(), e.stopPropagation(), !A.isInternalDragging && this.props.onDraggableMove && this.props.onDraggableMove(e.dataTransfer.getData(this.props.dragType), this.props.dragId, {
isOver: Boolean(this.state.dragOver),
isLeftOf: Boolean(this.state.dragBefore)
})), this.setState({
dragBefore: !1,
dragOver: !1,
dragAfter: !1
})
},
_handleExternalDragging: function(e) {
var t = s.findDOMNode(this).getBoundingClientRect(),
n = e.clientX - t.left;
n < .2 * t.width ? this.setState({
dragBefore: !0,
dragOver: !1,
dragAfter: !1
}) : n > .8 * t.width ? this.setState({
dragBefore: !1,
dragOver: !1,
dragAfter: !0
}) : n > .2 * t.width && n < .8 * t.width && this.setState({
dragBefore: !1,
dragOver: !0,
dragAfter: !1
})
},
_handleInternalDragging: function(e) {
var t = s.findDOMNode(this).getBoundingClientRect(),
n = e.clientX - t.left;
A.dragTo = this.props.dragId, n < .2 * t.width || n > .8 * t.width ? this._setDragOver(!0) : n > .2 * t.width && n < .8 * t.width ? (this._setDragOver(!1), this.switchElements(A.sourceElement, s.findDOMNode(this))) : this._setDragOver(!1)
},
switchElements: function(e, t, n) {
var i = A.elements.indexOf(e),
a = A.elements.indexOf(t);
A.elements.splice(a, 0, A.elements.splice(i, 1)[0]), A.dragLeftOf = a < i, this.animateElementsToOrder(A.sourceElement)
},
animateElementsToOrder: function(e, t) {
t = void 0 === t ? u : t, A.elements.forEach(function(n, i) {
if (!e || n !== e) {
var a = {
deltaX: "x" in n.dataset ? parseInt(n.dataset.x) : 0,
deltaY: "y" in n.dataset ? parseInt(n.dataset.y) : 0
},
r = n.getBoundingClientRect(),
s = "left" in n.dataset ? parseInt(n.dataset.left) : r.left,
o = "top" in n.dataset ? parseInt(n.dataset.top) : r.top;
"startTop" in n.dataset && "startLeft" in n.dataset || (n.dataset.startTop = r.top, n.dataset.startLeft = r.left);
var l = {
deltaX: A.positions[i].left - s + a.deltaX,
deltaY: A.positions[i].top - o + a.deltaY
};
if (n.dataset.x = l.deltaX, n.dataset.y = l.deltaY, a.deltaX !== l.deltaX || a.deltaY !== l.deltaY) {
n.style.pointerEvents = "none", n.dataset.left = s + l.deltaX, n.dataset.top = o + l.deltaY;
var c = this._animationKeyframes(a, l),
u = n.animate(c, {
duration: t,
fill: "forwards"
});
u.onfinish = function(e) {
n.style.pointerEvents = "auto", delete n.dataset.left, delete n.dataset.top
}
}
}
}, this)
},
onDragEnter: function(e) {
e.preventDefault(), e.stopPropagation()
},
onDragLeave: function(e) {
e.preventDefault(), e.stopPropagation(), this._setDragOver(!1), this.setState({
dragBefore: !1,
dragOver: !1,
dragAfter: !1
})
},
_setDragOver: function(e) {
A.dragOver = e, this.setState({
dragOver: e
})
},
onDragEnd: function(e) {
A.isInternalDragging = !1, this.props.revertOnFinish ? (A.elements = A.elementsInitialOrder, this.animateElementsToOrder(null, 1)) : this.animateElementsToOrder(null, 50), s.findDOMNode(this).style.zIndex = "0", s.findDOMNode(this).parentNode.classList.remove("dragging"), [].forEach.call(s.findDOMNode(this).parentNode.querySelectorAll("*[draggable]"), function(e) {
e.style.pointerEvents = "auto", e.style.zIndex = "0"
}), "function" == typeof this.props.onDraggableMove && "dragId" in this.props && void 0 !== A.dragFrom && void 0 !== A.dragTo && this.props.onDraggableMove(A.dragFrom, A.dragTo, {
isOver: Boolean(A.dragOver),
isLeftOf: Boolean(A.dragLeftOf)
}), this.setState({
dragBefore: !1,
dragOver: !1,
dragAfter: !1
}), this.setDragging(!1), A = {}
},
render: function() {
var e = o(this.props, "className", "dragId", "onDraggableMove", "dragImageSrc", "dragType"),
t = l(this.props.className, {
dragover: this.state.dragOver,
"drag-before": this.state.dragBefore && !A.isInternalDragging,
"drag-end": this.state.dragAfter && !A.isInternalDragging
});
return r.createElement("div", i({}, e, {
className: t,
draggable: "true",
onDragStart: this.onDragStart,
onDragEnter: this.onDragEnter,
onDrag: this.onDrag,
onDragOver: this.onDragOver,
onDragLeave: this.onDragLeave,
onDrop: this.onDrop,
onDragEnd: this.onDragEnd,
__source: {
fileName: a,
lineNumber: 473
}
}), this.props.children)
}
});
e.exports = d
}, function(e, t, n) {
// =========================
// Function_599
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/experiments/ExperimentItem.jsx",
a = n(1),
r = n(74),
s = a.createClass({
displayName: "ExperimentItem",
getInitialState: function() {
return {
enabled: !1
}
},
componentWillMount: function() {
this.setState({
enabled: "true" === this.props.value
})
},
toggleExperiment: function(e) {
this.setState({
enabled: e.target.checked
}), r.enableFeature(this.props.name, e.target.checked)
},
render: function() {
return a.createElement("span", {
__source: {
fileName: i,
lineNumber: 22
}
}, a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 23
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 24
}
}, a.createElement("input", {
type: "checkbox",
checked: this.state.enabled,
disabled: this.props.locked,
onChange: this.toggleExperiment,
__source: {
fileName: i,
lineNumber: 25
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 29
}
}, this.props.fullName)), a.createElement("p", {
className: "info",
__source: {
fileName: i,
lineNumber: 31
}
}, this.props.description)))
}
});
e.exports = s
}, function(e, t, n) {
// =========================
// Function_600
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/experiments/experiments.jsx",
a = n(1),
r = n(2),
s = n(74),
o = n(599),
l = a.createClass({
displayName: "Experiments",
render: function() {
var e = s.getFlags(),
t = e.map(function(e) {
return a.createElement(o, {
key: e.name,
fullName: e.friendlyName,
name: e.name,
description: e.description,
locked: e.locked,
value: e.value,
__source: {
fileName: i,
lineNumber: 11
}
})
});
return a.createElement("div", {
className: "experiments vivaldi-settings",
tabIndex: "0",
__source: {
fileName: i,
lineNumber: 22
}
}, a.createElement("h2", {
__source: {
fileName: i,
lineNumber: 23
}
}, r("Experimental features")), a.createElement("div", {
className: "caution",
__source: {
fileName: i,
lineNumber: 24
}
}, r("These experimental features may change, break, disappear, not work as intended or at all."), a.createElement("br", {
__source: {
fileName: i,
lineNumber: 26
}
}), r("Please proceed with caution.")), a.createElement("div", {
className: "setting-subgroup",
__source: {
fileName: i,
lineNumber: 29
}
}, t))
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_601
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/extensions/ExtensionActionItem.jsx",
a = n(1),
r = n(15),
s = n(9),
o = n(2),
l = n(4),
c = n(5),
u = n(26),
A = n(50),
d = n(13),
h = "https://chrome.google.com/webstore/detail/",
m = a.createClass({
displayName: "ExtensionActionItem",
mixins: [s, d],
vivaldiSettingsKeys: ["KEY_ACCESS"],
getMenuItems: function() {
var e = [{
name: this.props.name,
handler: this.openHomePage
}, {
name: "---"
}, {
name: o("Options"),
handler: this.openOptionsPage,
visible: void 0 !== this.props.optionspage && "" !== this.props.optionspage
}, {
name: o("Remove extension..."),
handler: this.removeExtension,
visible: "componentAction" !== this.props.extensionType
}, {
name: o("Hide button"),
handler: this.toggleExtensionAction
}, {
name: "---"
}, {
name: o("Manage Extensions"),
handler: A.showExtensions
}];
return e
},
toggleExtensionAction: function() {
l.extensionActionUtils.toggleBrowserActionVisibility(this.props.id)
},
executeExtensionAction: function(e) {
this.props.onClicked(this.props.id, e.currentTarget)
},
removeExtension: function() {
l.extensionActionUtils.removeExtension(this.props.id, this.props.windowId)
},
openHomePage: function() {
var e = this.props.homepage ? this.props.homepage : h + this.props.id;
r.openURL(e)
},
openOptionsPage: function() {
var e = "chrome-extension://" + this.props.id + "/" + this.props.optionspage;
r.openURL(e)
},
render: function() {
var e = {
backgroundColor: this.props.badgeBackgroundColor
},
t = c({
"addressfield-popup-container": "page" === this.props.actionType
}),
n = c({
"button-addressfield": "page" === this.props.actionType,
"button-toolbar browserAction-button": "browser" === this.props.actionType,
"actionVisibility-hidden": this.props.visible === !1 || this.props.actionIsHidden === !0,
"ignore-react-onclickoutside": this.props.popupVisible === !0,
"popup-visible": this.props.popupVisible === !0
});
return a.createElement("span", {
className: t,
__source: {
fileName: i,
lineNumber: 97
}
}, "page" === this.props.actionType ? a.createElement("button", {
key: this.props.id,
className: n,
onClick: this.executeExtensionAction,
title: this.props.badgeTooltip,
tabIndex: this.state.KEY_ACCESS,
onContextMenu: u(this.getMenuItems),
style: {
backgroundImage: "url(" + this.props.badgeIcon + ")"
},
__source: {
fileName: i,
lineNumber: 99
}
}, "" !== this.props.badgeText && a.createElement("span", {
className: "button-badge",
style: e,
__source: {
fileName: i,
lineNumber: 106
}
}, this.props.badgeText)) : a.createElement("button", {
key: this.props.id,
className: n,
onClick: this.executeExtensionAction,
title: this.props.badgeTooltip,
tabIndex: this.state.KEY_ACCESS,
onContextMenu: u(this.getMenuItems),
__source: {
fileName: i,
lineNumber: 112
}
}, a.createElement("img", {
src: this.props.badgeIcon,
__source: {
fileName: i,
lineNumber: 117
}
}), "" !== this.props.badgeText && a.createElement("span", {
className: "button-badge",
style: e,
__source: {
fileName: i,
lineNumber: 119
}
}, this.props.badgeText)))
}
});
e.exports = m
}, function(e, t, n) {
// =========================
// Function_602
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/extensions/ExtensionActionPopup.jsx",
a = n(5),
r = n(39),
s = n(1),
o = n(11),
l = n(13),
c = 25,
u = 25,
A = 800,
d = 600,
h = s.createClass({
displayName: "ExtensionActionPopup",
mixins: [l, r],
vivaldiSettingsKeys: ["ADDRESS_BAR_POSITION"],
getInitialState: function() {
return {
width: c,
height: u,
hasLoadedOnce: !1
}
},
componentDidMount: function() {
this.webviewelm = null
},
componentWillUnmount: function() {
this.detachListeners()
},
attachListeners: function() {
this.webviewelm && (this.webviewelm.addEventListener("sizechanged", this.onSizeChanged), this.webviewelm.addEventListener("close", this.onClose), this.webviewelm.addEventListener("newwindow", this.onNewWindow), this.webviewelm.addEventListener("loadstop", this.onLoadStop))
},
detachListeners: function() {
this.webviewelm && (this.webviewelm.removeEventListener("sizechanged", this.onSizeChanged), this.webviewelm.removeEventListener("close", this.onClose), this.webviewelm.removeEventListener("newwindow", this.onNewWindow), this.webviewelm.removeEventListener("loadstop", this.onLoadStop))
},
componentWillReceiveProps: function(e) {
this.props.popupVisible === !0 && e.popupVisible === !1 && this.setState({
hasLoadedOnce: !1
})
},
componentWillUpdate: function(e, t) {
e.popupVisible === !0 ? this.enableOnClickOutside() : e.popupVisible === !1 && this.disableOnClickOutside()
},
handleClickOutside: function(e) {
this.props.popupWantsToClose()
},
recreateWebView: function() {
this.detachListeners(), this.webviewelm && this.webviewelm.parentNode.removeChild(this.webviewelm);
var e = document.createElement("webview");
e.setAttribute("autosize", "on"), e.setAttribute("minwidth", c), e.setAttribute("minheight", u), e.setAttribute("maxwidth", A), e.setAttribute("maxheight", d), e.setAttribute("extensionhost", this.props.extensionId), e.setAttribute("partition", "persist:" + this.props.extensionId), e.setAttribute("src", this.props.popupPage), e.setAttribute("class", "ignore-react-onclickoutside"), o.findDOMNode(this.refs.popupcontainer).appendChild(e), this.webviewelm = e, this.attachListeners()
},
onSizeChanged: function(e) {
this.state.hasLoadedOnce && this.setState({
width: e.newWidth,
height: e.newHeight
})
},
onLoadStop: function(e) {
var t = this;
this.setState({
hasLoadedOnce: !0
}), setTimeout(function(e) {
t.webviewelm.focus()
}, 50)
},
onNewWindow: function(e) {
e.window.accept(window.vivaldiWindowId + ";1")
},
onClose: function() {
this.setState({
hasLoadedOnce: !1
}), this.props.popupWantsToClose()
},
render: function() {
if (!this.props.extensionId) return null;
var e = 0,
t = 0,
n = 10;
if (this.props.popupAnchor) {
var r = this.props.popupAnchor.getBoundingClientRect();
e = "bottom" === this.state.ADDRESS_BAR_POSITION ? r.top - parseInt(this.state.height, 10) - n : r.bottom + n, t = r.left - this.state.width + r.width / 2 + 10
}
var o = this.state.hasLoadedOnce && this.props.popupVisible,
l = {
position: "fixed",
height: this.state.height,
width: this.state.width,
left: t,
top: e,
visibility: o ? "visible" : "hidden"
},
c = a("popup", {
hidden: !o,
bottom: "bottom" === this.state.ADDRESS_BAR_POSITION,
top: "top" === this.state.ADDRESS_BAR_POSITION
});
return s.createElement("span", {
style: l,
className: "extensionaction",
__source: {
fileName: i,
lineNumber: 167
}
}, s.createElement("div", {
className: c,
ref: "popupcontainer",
key: this.props.extensionId,
__source: {
fileName: i,
lineNumber: 168
}
}))
}
});
e.exports = h
}, function(e, t, n) {
// =========================
// Function_603
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/extensions/ExtensionActionToolbar.jsx",
a = n(1),
r = n(4),
s = n(9),
o = n(601),
l = n(602),
c = -2,
u = a.createClass({
displayName: "ExtensionActionToolbar",
mixins: [s],
getInitialState: function() {
return {
extensionActions: [],
extensionId: "",
popupAnchor: null,
popupPage: "",
popupVisible: !1,
tabId: -1,
windowId: c
}
},
componentWillMount: function() {
r.extensionActionUtils && r.extensionActionUtils.getToolbarExtensions && r.extensionActionUtils.getToolbarExtensions(function(e) {
var t = e.filter(function(e) {
return !(!this.props.showPageActions || "page" !== e.actionType) || !(!this.props.showBrowserActions || "browser" !== e.actionType)
}, this);
this.setState({
extensionActions: t
})
}.bind(this)), this.setState({
windowId: window.vivaldiWindowId
})
},
componentDidMount: function() {
r.extensionActionUtils && (r.extensionActionUtils.onAdded.addListener(this.onActionAdded), r.extensionActionUtils.onRemoved.addListener(this.onActionRemoved), r.extensionActionUtils.onUpdated.addListener(this.onActionChanged), r.extensionActionUtils.onIconLoaded.addListener(this.onIconLoaded))
},
componentWillUnmount: function() {
r.extensionActionUtils.onAdded.removeListener(this.onActionAdded), r.extensionActionUtils.onRemoved.removeListener(this.onActionRemoved), r.extensionActionUtils.onUpdated.removeListener(this.onActionChanged), r.extensionActionUtils.onIconLoaded.removeListener(this.onIconLoaded)
},
getExtensionInfoIndex: function(e) {
for (var t = 0; t < this.state.extensionActions.length; t++)
if (this.state.extensionActions[t].id === e) return t;
return -1
},
onIconLoaded: function(e) {
var t = this.getExtensionInfoIndex(e.id);
t !== -1 && (this.state.extensionActions[t].badgeIcon = e.badgeIcon, this.setState({
extensionActions: this.state.extensionActions.slice()
}))
},
onActionChanged: function(e, t, n) {
var i = this.getExtensionInfoIndex(e.id);
i === -1 || t !== c && t !== this.state.windowId || (this.state.extensionActions[i] = e, this.setState({
extensionActions: this.state.extensionActions.slice(),
tabId: n
}))
},
onActionAdded: function(e) {
("page" === e.actionType && this.props.showPageActions || "browser" === e.actionType && this.props.showBrowserActions) && (this.state.extensionActions.push(e), this.setState({
extensionActions: this.state.extensionActions.slice()
}))
},
onActionRemoved: function(e) {
var t = this.getExtensionInfoIndex(e.id);
t !== -1 && (this.state.extensionActions.splice(t, 1), this.setState({
extensionActions: this.state.extensionActions.slice()
}))
},
onExtensionActionClicked: function(e, t) {
var n = t,
i = function(t) {
t && !t.popupUrl || (this.setState({
popupVisible: !this.state.popupVisible,
popupPage: t ? t.popupUrl : null,
popupAnchor: n,
extensionId: e
}), this.state.popupVisible && this.refs.extensionactionpopup.recreateWebView())
}.bind(this);
r.extensionActionUtils.executeExtensionAction(e, this.state.windowId, i)
},
popupWantsToClose: function() {
this.setState({
popupVisible: !1
})
},
render: function() {
if (0 === this.state.extensionActions.length) return null;
var e = -1,
t = this.props.incognito,
n = this.state.extensionActions.map(function(n) {
if (e += 1, t !== !0 || n.allowInIncognito !== !1) return a.createElement(o, {
key: e,
id: n.id,
name: n.name,
homepage: n.homepage,
optionspage: n.optionspage,
badgeTooltip: n.badgeTooltip,
badgeIcon: n.badgeIcon,
badgeText: n.badgeText,
badgeTextColor: n.badgeTextColor,
badgeBackgroundColor: n.badgeBackgroundColor,
extensionType: n.extensionType,
visible: n.visible,
actionIsHidden: n.actionIsHidden,
actionType: n.actionType,
tabId: this.state.tabId,
onClicked: this.onExtensionActionClicked,
popupVisible: this.state.popupVisible && this.state.extensionId === n.id,
windowId: this.state.windowId,
__source: {
fileName: i,
lineNumber: 167
}
})
}.bind(this));
return a.createElement("span", {
ref: "extensionactiontoolbar",
className: "extensions-wrapper",
__source: {
fileName: i,
lineNumber: 192
}
}, n, a.createElement(l, {
ref: "extensionactionpopup",
popupVisible: this.state.popupVisible,
popupPage: this.state.popupPage,
popupAnchor: this.state.popupAnchor,
extensionId: this.state.extensionId,
popupWantsToClose: this.popupWantsToClose,
__source: {
fileName: i,
lineNumber: 196
}
}))
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_604
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/find-in-page/find-in-page.jsx",
a = n(1),
r = n(37),
s = n(6),
o = n(55),
l = n(87),
c = n(2),
u = n(5),
A = n(20),
d = A.urls,
h = a.createClass({
displayName: "FindInPage",
getInitialState: function() {
return this._getStateFromStores()
},
componentDidMount: function() {
l.addChangeListener(this.onWebpageviewStoreChanged)
},
componentWillUnmount: function() {
l.removeChangeListener(this.onWebpageviewStoreChanged)
},
onWebpageviewStoreChanged: function(e) {
if (!e.page || e.page.get("id") === this.props.page.get("id") && !d.isInternalPage(e.page)) switch (e.type) {
case s.FIND_IN_PAGE_RESULT_ACTION:
this.setState(this._getStateFromStores());
break;
case s.WEBPAGEVIEW_ACTIONS:
"findInPage" === e.action ? this.setState(this._getStateFromStores(), this.focusFindInPageInput) : "findNextInPage" === e.action ? this.onNextClicked() : "findPreviousInPage" === e.action && this.onPreviousClicked();
break;
case s.CLOSE_FIND_IN_PAGE_ACTION:
this.setState(this._getStateFromStores());
break;
case s.FIND_IN_PAGE_FOCUS:
this.focusFindInPageInput()
}
},
onKeyDown: function(e) {
e.nativeEvent.ctrlKey || e.nativeEvent.altKey || e.nativeEvent.metaKey || "Enter" === e.nativeEvent.key && (e.nativeEvent.shiftKey ? this.onPreviousClicked() : this.onNextClicked())
},
onFocus: function() {
r.bind("esc", this.closeFindInPage, "keydown")
},
onBlur: function() {
r.unbind("esc", this.closeFindInPage)
},
closeFindInPage: function() {
this.onCloseClicked()
},
focusFindInPageInput: function() {
var e = this.refs.inputText;
e && (e.focus(), e.value && e.select())
},
_hasFindInPageText: function() {
return this._getFindInPageText().length > 0
},
_getFindInPageText: function() {
var e = this.refs.inputText;
return e ? e.value : ""
},
onMatchCaseClicked: function() {
this.props.onFindInPage(this._getFindInPageText(), !this.state.matchCase), this.setState({
matchCase: !this.state.matchCase
})
},
onPreviousClicked: function() {
var e = !0;
this.props.onFindNextInPage(this._getFindInPageText(), e, this.state.matchCase)
},
onNextClicked: function() {
var e = !1;
this.props.onFindNextInPage(this._getFindInPageText(), e, this.state.matchCase)
},
onCloseClicked: function() {
o.closeFindInPageToolbar(this.props.page)
},
onFindInPageTextChanged: function() {
var e = this._getFindInPageText();
this.state.findInPageText !== e && (this.props.onStopFind(), this.setState({
findInPageText: e
}), "function" == typeof this.props.onFindInPage && this.props.onFindInPage(e, this.state.matchCase))
},
_getStateFromStores: function() {
var e = l.getFindResultsForPage(this.props.page),
t = {
activeMatchOrdinal: e.activeMatchOrdinal,
findInPageText: e.searchText,
isFindInPageToolbarOpen: e.isFindInPageToolbarOpen,
matchCase: e.matchCase,
numberOfMatches: e.numberOfMatches
};
return t
},
render: function() {
var e = {
"find-in-page": !0,
"fip-nomatches": 0 === this.state.numberOfMatches && this.state.findInPageText.length > 0
};
return this.state.isFindInPageToolbarOpen !== !0 ? null : a.createElement("div", {
className: u(e),
key: "fipanimate-group",
onFocus: this.onFocus,
onBlur: this.onBlur,
tabIndex: "-1",
__source: {
fileName: i,
lineNumber: 183
}
}, a.createElement("div", {
className: "fip-input",
__source: {
fileName: i,
lineNumber: 188
}
}, a.createElement("label", {
htmlFor: "fip-input-text",
__source: {
fileName: i,
lineNumber: 189
}
}, c("Find in Page:")), a.createElement("input", {
ref: "inputText",
id: "fip-input-text",
type: "search",
onKeyDown: this.onKeyDown,
onChange: this.onFindInPageTextChanged,
defaultValue: this.state.findInPageText,
__source: {
fileName: i,
lineNumber: 191
}
}), a.createElement("span", {
className: "fip-results",
style: {
display: this.state.findInPageText.length > 0 ? "inline" : "none"
},
__source: {
fileName: i,
lineNumber: 197
}
}, c("$1 of $2", [this.state.activeMatchOrdinal, this.state.numberOfMatches]))), a.createElement("div", {
className: "toolbar icons fip-controls",
__source: {
fileName: i,
lineNumber: 208
}
}, a.createElement("button", {
className: "fip-previous",
value: "previous",
onClick: this.onPreviousClicked,
dangerouslySetInnerHTML: {
__html: n(959)
},
__source: {
fileName: i,
lineNumber: 209
}
}), a.createElement("button", {
className: "fip-next",
value: "next",
onClick: this.onNextClicked,
dangerouslySetInnerHTML: {
__html: n(958)
},
__source: {
fileName: i,
lineNumber: 215
}
}), a.createElement("button", {
className: "fip-close",
value: "close",
onClick: this.onCloseClicked,
dangerouslySetInnerHTML: {
__html: n(957)
},
__source: {
fileName: i,
lineNumber: 220
}
}), a.createElement("input", {
type: "checkbox",
id: "fip-matchcase",
checked: this.state.matchCase,
onChange: this.onMatchCaseClicked,
__source: {
fileName: i,
lineNumber: 225
}
}), a.createElement("label", {
htmlFor: "fip-matchcase",
__source: {
fileName: i,
lineNumber: 230
}
}, c("Match Case"))))
}
});
e.exports = h
}, function(e, t, n) {
// =========================
// Function_605
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/history/history.jsx",
a = n(1),
r = n(11),
s = n(15),
o = n(4),
l = "chrome://history-frame",
c = a.createClass({
displayName: "History",
getInitialState: function() {
return {
mouseDownWasMiddle: !1,
shiftWasDown: !1
}
},
handlePostMessage: function(e) {
if (e.origin === l && e.data) {
var t = e.data,
n = this.state.shiftWasDown || this.state.mouseDownWasMiddle,
i = {
inCurrent: !n,
inBackground: n
};
s.openURL(t, i)
}
},
onWebviewLoadstop: function(e) {
e.target.contentWindow.postMessage("message", "*")
},
onPageBlocked: function(e) {
e.preventDefault(), "new_foreground_tab" === e.windowOpenDisposition ? o.tabs.create({
url: e.targetUrl
}) : "new_background_tab" === e.windowOpenDisposition ? e.window.accept(window.vivaldiWindowId + ";0") : "new_window" === e.windowOpenDisposition && o.windows.create({
url: e.targetUrl
})
},
onWebviewMouseUp: function(e) {
this.setState({
mouseDownWasMiddle: 1 === e.button,
shiftWasDown: e.shiftKey
})
},
onWebviewKeyUp: function(e) {
this.setState({
shiftWasDown: e.shiftKey
})
},
componentDidMount: function() {
window.addEventListener("message", this.handlePostMessage, !1);
var e = r.findDOMNode(this).querySelector("webview");
e.addEventListener("loadstop", this.onWebviewLoadstop), e.addEventListener("newwindow", this.onPageBlocked, !0), e.addEventListener("mouseup", this.onWebviewMouseUp), e.addEventListener("keyup", this.onWebviewKeyUp)
},
componentWillUnmount: function() {
window.removeEventListener("message", this.handlePostMessage);
var e = r.findDOMNode(this).querySelector("webview");
e && (e.removeEventListener("loadstop", this.onWebviewLoadstop), e.removeEventListener("newwindow", this.onPageBlocked, !0), e.removeEventListener("mouseup", this.onWebviewMouseUp), e.removeEventListener("keyup", this.onWebviewKeyUp), e.parentNode.removeChild(e))
},
render: function() {
return a.createElement("div", {
ref: "history",
className: "history",
__source: {
fileName: i,
lineNumber: 76
}
}, a.createElement("webview", {
src: l,
__source: {
fileName: i,
lineNumber: 77
}
}))
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_606
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/historynew/ClearBrowsingHistory.jsx",
r = n(1),
s = n(4),
o = n(2),
l = n(12),
c = n(44),
u = n(69),
A = n(551),
d = n(764),
h = 1e6,
m = [{
text: o("Past Hour"),
value: "pastHour",
format: "h",
difference: -1
}, {
text: o("Past Day"),
value: "pastDay",
format: "d",
difference: -1
}, {
text: o("Past Week"),
value: "pastWeek",
format: "d",
difference: -7
}, {
text: o("Past 4 Weeks"),
value: "past4Weeks",
format: "d",
difference: -28
}, {
text: o("Everything"),
value: "everything",
format: "",
difference: 0
}],
p = [{
value: "appcache",
text: o("App Cache")
}, {
value: "cache",
text: o("Cache")
}, {
value: "cookies",
text: o("Cookies")
}, {
value: "downloads",
text: o("Downloads")
}, {
value: "fileSystems",
text: o("File Systems")
}, {
value: "formData",
text: o("Form Data")
}, {
value: "history",
text: o("Browsing History")
}, {
value: "indexedDB",
text: o("Indexed DB")
}, {
value: "localStorage",
text: o("Local Storage")
}, {
value: "serverBoundCertificates",
text: o("Server Bound Certificates")
}, {
value: "pluginData",
text: o("Plugin Data")
}, {
value: "passwords",
text: o("Passwords")
}, {
value: "webSQL",
text: o("Web SQL")
}, {
value: "typedHistory",
text: o("Typed History")
}],
f = r.createClass({
displayName: "ClearBrowsingHistory",
getInitialState: function() {
return {
inProgress: !1,
deleteHistoryFrom: "pastHour",
dataToRemove: p.reduce(function(e, t) {
return e[t.value] = !1, e
}, {}),
dataToRemoveCounters: p.reduce(function(e, t) {
return e[t.value] = 0, e
}, {})
}
},
componentWillMount: function() {
d.addChangeListener(this._onBrowsingDataStoreChange)
},
componentWillUnmount: function() {
d.removeChangeListener(this._onBrowsingDataStoreChange)
},
_onBrowsingDataStoreChange: function(e, t) {
this.props.onYes && this.props.onYes()
},
selectChanged: function(e) {
this.updateClearDownloadsCounters({
deleteHistoryFrom: e.target.value
}), this.updateClearBrowsingHistoryCounters({
deleteHistoryFrom: e.target.value
}), this.setState({
deleteHistoryFrom: e.target.value
})
},
getCookieUrl: function(e) {
return "http" + (e.secure ? "s" : "") + "://" + e.domain + e.path
},
_onYes: function(e) {
var t = this;
this.setState({
inProgress: !0
}), e = Object.assign({
deleteHistoryFrom: this.state.deleteHistoryFrom
}, e);
var n = m.find(function(e) {
return t.state.deleteHistoryFrom === e.value
}),
i = "everything" === this.state.deleteHistoryFrom ? 0 : (new c).add(n.format, n.difference).valueOf();
A.clearBrowsingData(Object.assign({}, this.state.dataToRemove), i)
},
_onNo: function() {
this.props.onNo && this.props.onNo()
},
updateClearDownloadsCounters: function(e) {
var t = this;
if (e = Object.assign({
deleteHistoryFrom: this.state.deleteHistoryFrom,
downloads: this.state.dataToRemove.downloads
}, e), !e.downloads) {
var n = u(this.state, {
dataToRemoveCounters: {
$merge: {
downloads: 0
}
}
});
return void this.setState(n)
}
"everything" === e.deleteHistoryFrom ? s.downloads.search({}, function(e) {
var n = u(t.state, {
dataToRemoveCounters: {
$merge: {
downloads: e.length
}
}
});
t.setState(n)
}) : ! function() {
var n = t.getSelectedStartTime(e.deleteHistoryFrom);
s.downloads.search({}, function(e) {
var i = e.filter(function(e) {
return new c(e.startTime).valueOf() > n
}),
a = u(t.state, {
dataToRemoveCounters: {
$merge: {
downloads: i.length
}
}
});
t.setState(a)
})
}()
},
getSelectedStartTime: function(e) {
var t = m.find(function(t) {
return e === t.value
}),
n = (new c).add(t.difference, t.format).valueOf();
return n
},
updateClearBrowsingHistoryCounters: function(e) {
var t = this;
if (e = Object.assign({
deleteHistoryFrom: this.state.deleteHistoryFrom,
history: this.state.dataToRemove.history
}, e), !e.history) {
var n = u(this.state.dataToRemoveCounters, {
$merge: {
history: 0
}
});
return void this.setState({
dataToRemoveCounters: n
})
}
if ("everything" === e.deleteHistoryFrom) s.history.search({
text: "",
startTime: 0,
maxResults: h
}, function(e) {
var n = u(t.state.dataToRemoveCounters, {
$merge: {
history: e.length
}
});
t.setState({
dataToRemoveCounters: n
})
});
else {
var i = this.getSelectedStartTime(e.deleteHistoryFrom);
s.history.search({
text: "",
maxResults: h,
startTime: i
}, function(e) {
var n = u(t.state.dataToRemoveCounters, {
$merge: {
history: e.length
}
});
t.setState({
dataToRemoveCounters: n
})
})
}
},
clearDataChange: function(e, t) {
"history" === e && this.updateClearBrowsingHistoryCounters({
history: t.target.checked
}), "downloads" === e && this.updateClearDownloadsCounters({
downloads: t.target.checked
});
var n = u(this.state.dataToRemove, {
$merge: i({}, e, t.target.checked)
});
this.setState({
dataToRemove: n
})
},
render: function() {
var e = this,
t = m.map(function(e) {
return r.createElement("option", {
key: e.value,
value: e.value,
__source: {
fileName: a,
lineNumber: 203
}
}, e.text)
}),
n = p.map(function(t) {
return r.createElement("li", {
key: t.value,
__source: {
fileName: a,
lineNumber: 207
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 208
}
}, r.createElement("input", {
type: "checkbox",
checked: e.state.dataToRemove[t.value],
onChange: e.clearDataChange.bind(e, t.value),
__source: {
fileName: a,
lineNumber: 209
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 212
}
}, t.text), e.state.dataToRemoveCounters[t.value] > 0 && r.createElement("span", {
className: "folder-item-count",
__source: {
fileName: a,
lineNumber: 214
}
}, e.state.dataToRemoveCounters[t.value])))
}),
i = r.createElement("form", {
className: "dialog-clear-data",
onSubmit: this._onYes,
__source: {
fileName: a,
lineNumber: 224
}
}, r.createElement("header", {
className: "dialog-header",
__source: {
fileName: a,
lineNumber: 225
}
}, r.createElement("h1", {
__source: {
fileName: a,
lineNumber: 226
}
}, o("Clear Private Data"))), r.createElement("div", {
className: "dialog-content",
__source: {
fileName: a,
lineNumber: 229
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 230
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 231
}
}, r.createElement("span", {
__source: {
fileName: a,
lineNumber: 232
}
}, o("Delete Data for:")), r.createElement("select", {
onChange: this.selectChanged,
value: this.state.deleteHistoryFrom,
autoFocus: !0,
__source: {
fileName: a,
lineNumber: 233
}
}, t))), r.createElement("div", {
className: "setting-single pad-top",
__source: {
fileName: a,
lineNumber: 241
}
}, r.createElement("ul", {
__source: {
fileName: a,
lineNumber: 242
}
}, n))), r.createElement("footer", {
className: "dialog-footer",
__source: {
fileName: a,
lineNumber: 248
}
}, this.state.inProgress && r.createElement("p", {
className: "in-progress",
__source: {
fileName: a,
lineNumber: 250
}
}), r.createElement("input", {
type: "submit",
disabled: this.state.inProgress,
value: o("Clear Browsing Data"),
__source: {
fileName: a,
lineNumber: 252
}
}), r.createElement("input", {
type: "button",
onClick: this._onNo,
disabled: this.state.inProgress,
value: o("Cancel"),
__source: {
fileName: a,
lineNumber: 255
}
})));
return l(i, this.props.filter)
}
});
e.exports = f
}, function(e, t, n) {
// =========================
// Function_607
// =========================
"use strict";
var i = n(44),
a = n(2),
r = function(e, t) {
for (var n = i(t.start), a = i(t.end), r = a.diff(n, "d", !1), s = n, o = 0; o <= r; o++) e.some(function(e) {
return e.id === s.format("YYYY-MM-DD")
}) || e.splice(o, 0, {
id: s.format("YYYY-MM-DD"),
count: 0,
children: [],
key: s.format("dddd, MMMM Do, YYYY"),
visitTime: s.valueOf()
}), s = s.add(1, "d");
return e.sort(function(e, t) {
return e.visitTime - t.visitTime
}), e
},
s = function(e, t, n) {
if (!e || 0 === e.length) return {
combinedTopPages: [],
visitsTime: [],
linkTypes: [],
linkTypeColors: [],
linkTypeTotal: 0,
pageCount: 0,
pageViewsCount: 0,
siteCount: 0
};
e = r(e.slice(), n);
var s = {},
o = {},
l = [{
type: "auto_toplevel",
count: 0,
color: "#fc0",
print: a("linktype", "Direct")
}, {
type: "typed",
count: 0,
color: "#fe8600",
print: a("linktype", "Typed")
}, {
type: "link",
count: 0,
color: "#ccee00",
print: a("linktype", "Link")
}, {
type: "reload",
count: 0,
color: "#d081c3",
print: a("linktype", "Reload")
}, {
type: "form_submit",
count: 0,
color: "#147cd6",
print: a("linktype", "Form")
}, {
type: "other",
count: 0,
color: "#00cb9d",
print: a("linktype", "Other")
}],
c = [],
u = [];
e.forEach(function(e) {
u = u.concat(t[e.id] ? t[e.id].timeArr : []), c = c.concat(t[e.id] ? t[e.id].mostVisited : []), l = e.children.map(function(e) {
return e.transition_type
}).reduce(function(e, t) {
var n = e.find(function(e) {
return e.type === t
});
if (n) n.count = n.count + 1;
else {
var i = e.find(function(e) {
return "other" === e.type
});
i.count = i.count + 1
}
return e
}, l)
});
var A = l.map(function(e) {
return e.color
}),
d = l.reduce(function(e, t) {
return e + t.count
}, 0);
e.forEach(function(e) {
e.children.forEach(function(e) {
s[e.address] = s[e.address] ? e.visitCount + s[e.address] || 0 : e.visitCount, o[e.url] = o[e.url] ? e.visitCount + o[e.url] || 0 : e.visitCount
})
});
var h = Object.keys(o).length,
m = Object.keys(s).length,
p = Object.values(o).reduce(function(e, t) {
return e + t
}),
f = Object.keys(s).map(function(e) {
return {
url: e,
visitCount: s[e]
}
}).sort(function(e, t) {
return t.visitCount - e.visitCount
});
if (e.length > 1) {
var g = e.map(function(e, t) {
var n = e.children.reduce(function(e, t) {
return e + t.visitCount
}, 0),
a = e.children.length;
return {
hour: t,
visits: n,
pages: a,
id: e.id,
unixDate: i(e.id).format("x")
}
});
return {
visitsTime: g,
linkTypeColors: A,
linkTypeTotal: d,
linkTypes: l,
combinedTopPages: f,
siteCount: m,
pageCount: h,
pageViewsCount: p
}
}
return 0 === u.length && (u = Array.apply(0, Array(24)).map(function(e, t) {
return {
hour: t,
visits: 0,
pages: 0,
id: e.id,
unixDate: i(e.id).format("x")
}
})), {
visitsTime: u,
linkTypeColors: A,
linkTypeTotal: d,
combinedTopPages: f,
linkTypes: l,
pageCount: h,
pageViewsCount: p,
siteCount: m
}
};
e.exports = s
}, function(e, t, n) {
// =========================
// Function_608
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/historynew/HistoryFolder.jsx",
a = n(1),
r = n(9),
s = n(2),
o = window.navigator.language,
l = a.createClass({
displayName: "HistoryFolder",
mixins: [r],
handleClick: function(e) {
e.preventDefault(), e.altKey ? this.props.historyItem.isExpanded ? this.props.collapseAll() : this.props.expandAll() : this.props.toggle()
},
render: function() {
var e = this.props.historyItem,
t = void 0;
if ("date" === this.props.grouping) {
var r = {
weekday: "long",
year: "numeric",
month: "long",
day: "numeric"
};
t = new Date(e.visitTime).toLocaleDateString(o, r)
} else if ("week" === this.props.grouping) {
var l = e.key.split(",");
t = s("Week $1, $2", [l[0].trim(), l[1].trim()])
} else if ("month" === this.props.grouping) {
var c = {
month: "long",
year: "numeric"
};
t = new Date(e.key).toLocaleDateString(o, c)
} else t = e.key;
return a.createElement("label", {
"data-parent": e.id,
onClick: this.props.fullView ? this.handleClick : null,
__source: {
fileName: i,
lineNumber: 50
}
}, !this.props.fullView && a.createElement("span", {
className: "expand-icon",
onClick: this.handleClick,
dangerouslySetInnerHTML: {
__html: n(311)
},
__source: {
fileName: i,
lineNumber: 53
}
}), a.createElement("span", {
className: "url",
__source: {
fileName: i,
lineNumber: 58
}
}, t), a.createElement("span", {
className: "folder-item-count",
__source: {
fileName: i,
lineNumber: 61
}
}, e.count))
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_609
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/historynew/HistoryItem.jsx",
a = n(1),
r = n(9),
s = n(47),
o = n(44),
l = a.createClass({
displayName: "HistoryItem",
mixins: [r],
onDragStart: function(e) {
var t = this.props.historyItem,
n = document.createElement("img");
n.src = "chrome://favicon/" + t.url, e.dataTransfer.setDragImage(n, n.width - n.width / 3, n.height - n.height / 3), e.dataTransfer.setData("text/uri-list", t.url), e.dataTransfer.setData("text/plain", t.url), e.dataTransfer.setData("vivaldi/x-title", t.title)
},
handleMouseEnter: function(e) {
s.setStatus(e)
},
handleMouseLeave: function() {
s.clearStatus()
},
render: function() {
var e = this.props.historyItem,
t = "YYYY/M/D, HH:mm:ss";
"date" === this.props.grouping ? t = this.props.fullView ? "HH:mm:ss" : "HH:mm" : "month" === this.props.grouping ? t = "dddd Do, HH:mm:ss" : "year" !== this.props.grouping && "week" !== this.props.grouping || (t = "MMMM Do, HH:mm:ss");
var n = o(e.visitTime).format(t),
r = e.url || "localhost";
return this.props.fullView ? a.createElement("div", {
draggable: "true",
onDragStart: this.onDragStart,
__source: {
fileName: i,
lineNumber: 47
}
}, a.createElement("label", {
className: "date",
title: n,
__source: {
fileName: i,
lineNumber: 50
}
}, n), a.createElement("label", {
className: "title",
__source: {
fileName: i,
lineNumber: 53
}
}, a.createElement("img", {
src: "chrome://favicon/" + e.url,
width: "16",
height: "16",
alt: "",
__source: {
fileName: i,
lineNumber: 54
}
}), e.title ? e.title : r), a.createElement("label", {
className: "url",
__source: {
fileName: i,
lineNumber: 58
}
}, e.isBookmarked && a.createElement("svg", {
width: "16",
height: "16",
viewBox: "0 0 16 16",
className: "bookmarked",
xmlns: "http://www.w3.org/2000/svg",
__source: {
fileName: i,
lineNumber: 60
}
}, a.createElement("path", {
d: "M4 14v-12h7v12l-3.5-2.8-3.5 2.8z",
__source: {
fileName: i,
lineNumber: 63
}
})), "https" === e.protocol && a.createElement("svg", {
height: "16",
width: "16",
viewBox: "0 0 16 16",
xmlns: "http://www.w3.org/2000/svg",
__source: {
fileName: i,
lineNumber: 67
}
}, a.createElement("path", {
d: "M12.2 6.7C12.2 4 10.5 2 8 2 5.8 2 3.8 4 3.8 6.7V7H3v7h10V7h-.8v-.3zM10.7 8H5.3V6.7c0-1.7 1.4-3 2.8-3 1.7 0 2.8 1.3 2.8 3V8z",
__source: {
fileName: i,
lineNumber: 69
}
})), e.url), a.createElement("label", {
className: "visits",
__source: {
fileName: i,
lineNumber: 74
}
}, e.visitCount > 1 && a.createElement("span", {
className: "folder-item-count",
__source: {
fileName: i,
lineNumber: 76
}
}, e.visitCount))) : a.createElement("label", {
title: n + "\n" + e.url,
onMouseEnter: "off" === this.props.showFooter ? null : this.handleMouseEnter.bind(this, e.url),
onMouseLeave: "off" === this.props.showFooter ? null : this.handleMouseLeave,
draggable: "true",
onDragStart: this.onDragStart,
__source: {
fileName: i,
lineNumber: 85
}
}, a.createElement("img", {
src: "chrome://favicon/" + e.url,
width: "16",
height: "16",
alt: "",
__source: {
fileName: i,
lineNumber: 92
}
}), a.createElement("span", {
className: "title",
__source: {
fileName: i,
lineNumber: 94
}
}, n, " ", e.title ? e.title : e.url), e.visitCount > 1 && a.createElement("span", {
className: "folder-item-count",
__source: {
fileName: i,
lineNumber: 100
}
}, e.visitCount))
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_610
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
function r(e) {
for (var t = new Date, n = new Date(t.setDate(t.getDate() - t.getDay())), i = [], a = 0; a < 7;) i.push(n.toLocaleString(R, {
weekday: e
})), n.setDate(n.getDate() + 1), a++;
return {
_loc: i
}
}
function s() {
for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "long", t = [], n = 0; n < 12;) {
var i = new Date(2e3, n, 1);
t.push(i.toLocaleString(R, {
month: e
})), n++
}
return {
_loc: t
}
}
var o = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/historynew/HistoryManager.jsx",
l = n(1113),
c = i(l),
u = n(1),
A = n(2),
d = n(130),
h = n(357),
m = n(611),
p = n(358),
f = n(359),
g = n(50),
_ = n(178),
v = n(169),
b = n(98),
N = n(69),
E = n(5),
S = n(26),
T = n(212),
y = n(44),
C = n(21),
I = "MacIntel" === navigator.platform,
O = n(545),
w = O.VictoryStack,
D = O.VictoryArea,
k = "YYYY-MM-DD",
M = [{
text: A("Date"),
value: "visitTime",
fullScreenTitle: A("Sort by Date")
}, {
text: A("Title"),
value: "title",
fullScreenTitle: A("Sort by Title")
}, {
text: A("Address"),
value: "address",
fullScreenTitle: A("Sort by Address")
}, {
text: A("Views"),
value: "visitCount",
fullScreenTitle: A("Sort by Page Views")
}],
L = 1,
P = "sqrt",
R = window.navigator.language,
x = r("long"),
B = r("short"),
U = s("long"),
F = s("short"),
H = {
name: R,
months: U._loc,
monthsShort: F._loc,
weekdays: x._loc,
weekdaysShort: B._loc,
week: {
dow: L
}
};
y.locale("_loc", H);
var V = u.createClass({
displayName: "HistoryManager",
getInitialState: function() {
return {
historySorting: {
sortOrder: b.NO_SORTING,
sortField: "manually",
comparator: this.sortComparator
},
dailyVisits: null,
topLinks: null,
range: y.range(y(this.props.historyFilter.startTime), y(this.props.historyFilter.endTime)),
selecting: !1,
searchOptionsVisible: !1,
height: null
}
},
shouldComponentUpdate: function(e, t) {
return C(this, e, t)
},
onResize: function(e) {
var t = e[0].contentRect;
this.isMounted() && this.setState({
height: t.height,
width: t.width
})
},
sortComparator: function(e, t) {
var n = this.state.historySorting,
i = n.sortOrder,
a = n.sortField,
r = b.getDefaultComparator(i, a);
return r(e, t)
},
onSortChange: function(e, t) {
var n = N(this.state, {
historySorting: {
sortOrder: {
$set: e
},
sortField: {
$set: t
}
}
});
this.setState(n)
},
onSearchChange: function(e) {
this.setState({
range: y.range(y(e.startTime), y(e.endTime))
}), this.onSearch(e)
},
_setRange: function(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null;
if (!y.isMoment(e) || !y.isMoment(t)) return void console.warn("Date range times expected in moment() format.");
var i = this.props.historyFilter,
a = i.merge({
startTime: e.startOf("day").toDate(),
endTime: t.endOf("day").toDate(),
displayMode: n ? n : i.displayMode
});
this.setState({
range: y.range(e.startOf("day"), t.endOf("day"))
}), this.onSearch(a)
},
_setView: function(e) {
var t = e.target.value,
n = this.props.historyFilter,
i = n.merge(a({}, t, !n[t]));
this.onSearch(i)
},
onSelectAll: function() {
var e = y(),
t = this.props.oldestHistoryDate,
n = this.props.historyFilter.merge({
startTime: t.toDate(),
endTime: e.endOf("day").toDate()
});
this.onSearch(n)
},
onIncludeUrlChange: function() {
var e = !this.props.historyFilter.searchURL,
t = this.props.historyFilter,
n = t.merge({
searchURL: e
});
this.onSearch(n)
},
onClearBrowsingData: function() {
g.showClearBrowsingHistoryDialog({})
},
onCalendarSelect: function(e, t) {
this._setRange(y(e), y(e))
},
expandRange: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.state.range,
n = y.range(e, e);
return t.contains(n) ? t : e.format("x") > t.start.format("x") ? y.range(t.start, n.end) : y.range(n.start, t.end)
},
handleMouseDown: function(e, t) {
if (!I || !e.ctrlKey) {
var n = void 0;
if (e.shiftKey) {
var i = this.props.historyFilter,
a = i.startTime,
r = i.endTime,
s = y.range(y(a), y(r));
n = this.expandRange(t, s)
} else n = y.range(t, t);
this.setState({
selecting: !0,
range: n
})
}
},
handleMouseUp: function(e, t) {
if (this.state.selecting && this.state.range) {
var n = this.state.range;
this.setState({
selecting: !1
}), this._setRange(n.start, n.end)
}
},
handleMouseEnter: function(e, t) {
this.state.selecting && this.state.range && this.setState({
range: this.expandRange(t)
})
},
onSearch: function(e) {
this.setState({
searchOptionsVisible: e.text.length > 0
});
var t = this.props.historyFilter.merge(e);
d.searchHistory(this.props.page.id, t)
},
handleDisplayModeChange: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "day";
e && e.target.value && (t = e.target.value);
var n = y(this.props.historyFilter.endTime).isAfter(y()) ? y() : this.props.historyFilter.endTime;
this._setRange(y(n).startOf(t), y(n).endOf(t), t)
},
restoreSelection: function() {
var e = this.props.historyFilter.displayMode;
this.handleDisplayModeChange(null, e)
},
switchToDayWithPicker: function() {
var e = this.props.historyFilter,
t = e.merge({
displayMode: "day",
dayPickerVisible: !0
});
this.onSearch(t)
},
viewCurrent: function() {
var e = this.props.historyFilter.displayMode;
this._setRange(y().startOf(e), y().endOf(e))
},
viewPrevious: function(e) {
var t = this.props.historyFilter,
n = t.startTime,
i = t.displayMode,
a = y(n).subtract(1, i).startOf(i);
a < e && (a = e);
var r = y(a).endOf(i);
this._setRange(a, r)
},
viewNext: function() {
var e = this.props.historyFilter,
t = e.startTime,
n = e.displayMode;
if (!(y(t).add(1, n).format("x") > y().endOf("day").format("x"))) {
var i = y(t).add(1, n).startOf(n),
a = y(i).endOf(n);
this._setRange(i, a)
}
},
getNumWeeksForMonth: function(e, t) {
var n = new Date(e, t - 1, 1),
i = n.getDay() - L;
i < 0 && (i += 7);
var a = new Date(e, t, 0).getDate();
return Math.ceil((a + i) / 7)
},
onContextMenu: function(e) {
S(this.refs.tree.getRootContextMenuItems())(e)
},
renderMonthDay: T(1e3)(function(e, t, n, i, r, s, l) {
var c = e[l.format(k)];
if (!c) return u.createElement("div", {
className: l.within(i) ? "selected" : null,
__source: {
fileName: o,
lineNumber: 349
}
});
var d = !1,
h = 0,
m = "min";
h = e[l.format(k)].visits || 0, h >= t - t / 10 ? m = "max" : h >= n && h < t - t / 10 ? m = "high" : h >= n / 2 && h < n ? m = "mid" : h > 0 && h < n / 2 && (m = "low");
var p = 5;
r < 114 ? p = 2 : r < 128 ? p = 3 : r < 144 && (p = 4);
var f = c.mostVisited.map(function(e, t) {
if (t < p) {
var n = e.url;
return "" === n ? n = "localhost" : 0 === n.indexOf("www.") && (n = n.split("www.")[1]), u.createElement("li", {
title: n + " (" + e.visitCount + ")",
key: l.format("x") + "_" + t,
__source: {
fileName: o,
lineNumber: 384
}
}, n)
}
}),
g = {
x: [0, 24],
y: [0, t / 2]
},
_ = {
x: "linear",
y: P
};
return u.createElement("div", {
className: l.within(i) ? "selected" : null,
__source: {
fileName: o,
lineNumber: 397
}
}, d && u.createElement("div", {
className: "overview-chart",
__source: {
fileName: o,
lineNumber: 399
}
}, u.createElement(w, {
categories: ["pages", "visits"],
colorScale: ["#fc0", "#ce0"],
padding: 0,
height: 130,
width: s,
domain: g,
scale: _,
responsive: !1,
__source: {
fileName: o,
lineNumber: 400
}
}, u.createElement(D, {
standalone: !1,
data: c.timeArr,
x: "hour",
y: "pages",
__source: {
fileName: o,
lineNumber: 409
}
}), u.createElement(D, {
standalone: !1,
data: c.timeArr,
x: "hour",
y: "visits",
__source: {
fileName: o,
lineNumber: 414
}
}))), u.createElement("h4", {
className: E(a({
heat: !0
}, m, !0)),
__source: {
fileName: o,
lineNumber: 422
}
}, u.createElement("span", {
className: "visits",
__source: {
fileName: o,
lineNumber: 426
}
}, u.createElement("strong", {
__source: {
fileName: o,
lineNumber: 427
}
}, c.visits), A("view", "views", [c.visits])), u.createElement("span", {
className: "pages",
__source: {
fileName: o,
lineNumber: 430
}
}, u.createElement("strong", {
__source: {
fileName: o,
lineNumber: 431
}
}, c.pages), A("page", "pages", [c.pages]))), u.createElement("ul", {
className: "top-links",
__source: {
fileName: o,
lineNumber: 436
}
}, f))
}),
renderCalDay: T(1e3)(function(e, t, n, i, r) {
var s = e[r.format(k)],
l = void 0,
c = "min";
return s ? (l = e[r.format(k)].visits || 0, l >= t - t / 10 ? c = "max" : l >= n && l < t - t / 10 ? c = "high" : l >= n / 2 && l < n ? c = "mid" : l > 0 && l < n / 2 && (c = "low")) : l = 0, u.createElement("span", {
title: A("$1 visit", "$1 visits", [l]),
className: E(a({
heat: !0,
selected: r.within(i)
}, c, !0)),
key: r.format("x") + "_" + r,
__source: {
fileName: o,
lineNumber: 465
}
})
}),
render: function() {
var e = this.props,
t = e.historyData,
i = e.historyFilter,
a = e.historyStatistics;
if (!t) return null;
var r = {
weekday: "long",
year: "numeric",
month: "long",
day: "numeric"
},
s = t.length > 0 ? new Date(t[0].visitTime).toLocaleDateString(R, r) : new Date(this.props.historyFilter.startTime).toLocaleString(R, r);
t.length > 1 && (t.sort(function(e, t) {
return e.visitTime - t.visitTime
}), s = new Date(t[0].visitTime).toLocaleDateString(R) + " — " + new Date(t[t.length - 1].visitTime).toLocaleDateString(R));
var l = void 0;
switch (i.displayMode) {
case "month":
l = A("This Month");
break;
case "week":
l = A("This Week");
break;
default:
l = A("Today")
}
var d = y(i.startTime),
p = this.getNumWeeksForMonth(d.format("YYYY"), d.format("M")),
g = y(Object.keys(a).sort()[0]).startOf("month"),
b = y(),
N = Object.keys(a).map(function(e) {
return a[e].visits
}),
S = Math.max(Math.max.apply(Math, N), 50);
N.sort(function(e, t) {
return e - t
});
var T = (N[Math.floor((N.length - 1) / 2)] + N[Math.ceil((N.length - 1) / 2)]) / 2,
C = this.state.height - 22,
I = C / p;
return u.createElement("div", {
className: "history manager",
ref: "historyManager",
__source: {
fileName: o,
lineNumber: 536
}
}, u.createElement("div", {
className: "navigation",
__source: {
fileName: o,
lineNumber: 537
}
}, u.createElement("div", {
className: "toolbar icons",
__source: {
fileName: o,
lineNumber: 538
}
}, u.createElement("button", {
className: "button-toolbar toggle-daypicker",
onClick: this._setView,
value: "dayPickerVisible",
title: A("Day Picker Calendar"),
dangerouslySetInnerHTML: {
__html: n(1013)
},
__source: {
fileName: o,
lineNumber: 539
}
})), u.createElement(h, {
search: this.onSearchChange,
historyFilter: i,
minDate: this.props.oldestHistoryDate,
__source: {
fileName: o,
lineNumber: 547
}
}), u.createElement("div", {
className: "toolbar icons history-date",
__source: {
fileName: o,
lineNumber: 551
}
}, u.createElement("button", {
className: "button-toolbar previous",
onClick: this.viewPrevious.bind(this, g),
title: A("Previous"),
dangerouslySetInnerHTML: {
__html: n(214)
},
__source: {
fileName: o,
lineNumber: 552
}
}), u.createElement("button", {
className: "button-toolbar next",
onClick: this.viewNext,
title: A("Next"),
dangerouslySetInnerHTML: {
__html: n(215)
},
__source: {
fileName: o,
lineNumber: 558
}
})), u.createElement("h1", {
onClick: this.restoreSelection,
__source: {
fileName: o,
lineNumber: 565
}
}, "month" === i.displayMode ? d.format("MMMM, YYYY").toLocaleString(R) : s), u.createElement("div", {
className: "toolbar text today",
__source: {
fileName: o,
lineNumber: 571
}
}, u.createElement("button", {
className: "button-toolbar today",
onClick: this.viewCurrent,
__source: {
fileName: o,
lineNumber: 572
}
}, l), u.createElement("button", {
className: "button-toolbar today",
onClick: this.switchToDayWithPicker,
__source: {
fileName: o,
lineNumber: 577
}
}, A("Range"))), u.createElement("div", {
className: "toolbar text modes",
__source: {
fileName: o,
lineNumber: 584
}
}, u.createElement("button", {
className: E({
"button-toolbar": !0,
active: "day" === i.displayMode
}),
value: "day",
onClick: this.handleDisplayModeChange,
__source: {
fileName: o,
lineNumber: 585
}
}, A("Day")), u.createElement("button", {
className: E({
"button-toolbar": !0,
active: "week" === i.displayMode
}),
value: "week",
onClick: this.handleDisplayModeChange,
__source: {
fileName: o,
lineNumber: 594
}
}, A("Week")), u.createElement("button", {
className: E({
"button-toolbar": !0,
active: "month" === i.displayMode
}),
value: "month",
onClick: this.handleDisplayModeChange,
__source: {
fileName: o,
lineNumber: 603
}
}, A("Month"))), u.createElement("div", {
className: "toolbar icons delete",
__source: {
fileName: o,
lineNumber: 614
}
}, u.createElement("button", {
className: "button-toolbar clear",
onClick: this.onClearBrowsingData,
title: A("Clear Browsing Data"),
dangerouslySetInnerHTML: {
__html: n(473)
},
__source: {
fileName: o,
lineNumber: 615
}
})), u.createElement("div", {
className: "toolbar icons getinfo",
__source: {
fileName: o,
lineNumber: 622
}
}, u.createElement("button", {
className: "button-toolbar toggle-info",
onClick: this._setView,
value: "moreInfoVisible",
title: A("More Info"),
dangerouslySetInnerHTML: {
__html: n(1015)
},
__source: {
fileName: o,
lineNumber: 623
}
}))), this.state.searchOptionsVisible && u.createElement("div", {
className: "toolbar search-options",
__source: {
fileName: o,
lineNumber: 634
}
}, u.createElement("input", {
type: "button",
value: A("Search All History"),
onClick: this.onSelectAll,
__source: {
fileName: o,
lineNumber: 635
}
}), u.createElement("input", {
type: "checkbox",
checked: i.searchURL,
onChange: this.onIncludeUrlChange,
__source: {
fileName: o,
lineNumber: 638
}
}), A("Include Address in Search Results")), u.createElement("div", {
className: "history-view",
__source: {
fileName: o,
lineNumber: 645
}
}, i.dayPickerVisible && u.createElement("div", {
className: "manager-editor",
__source: {
fileName: o,
lineNumber: 647
}
}, u.createElement("div", {
className: "timeline",
__source: {
fileName: o,
lineNumber: 648
}
}, u.createElement(c.default, {
width: "100%",
height: C,
rowHeight: 50,
selectedDate: this.state.range.start,
keyboardSupport: !0,
onDayMouseDown: this.handleMouseDown,
onDayMouseUp: this.handleMouseUp,
onDayMouseEnter: this.handleMouseEnter,
min: g.format(k),
max: b.format(k),
maxDate: b,
showHeader: !1,
showTodayHelper: !1,
showOverlay: !1,
overscanMonthCount: 3,
locale: H,
renderMonthDay: this.renderCalDay.bind(this, a, S, T, this.state.range),
__source: {
fileName: o,
lineNumber: 649
}
}))), u.createElement(_, {
className: "manager-content history-calendar-container",
onResize: this.onResize,
__source: {
fileName: o,
lineNumber: 673
}
}, ("day" === i.displayMode || "week" === i.displayMode) && u.createElement("div", {
className: "view day",
onContextMenu: this.onContextMenu,
__source: {
fileName: o,
lineNumber: 678
}
}, u.createElement(v, {
fields: M,
onSortChange: this.onSortChange,
keyAccess: this.props.keyAccess,
sortField: this.state.historySorting.sortField,
sortOrder: this.state.historySorting.sortOrder,
fullsize: !0,
__source: {
fileName: o,
lineNumber: 680
}
}), t.length > 0 ? u.createElement("div", {
className: "history-tree",
__source: {
fileName: o,
lineNumber: 689
}
}, u.createElement(f, {
ref: "tree",
fullView: !0,
inManager: !0,
tab_id: this.props.page.id,
nodes: t,
grouping: i.grouping,
sorting: this.state.historySorting,
__source: {
fileName: o,
lineNumber: 690
}
})) : u.createElement("p", {
__source: {
fileName: o,
lineNumber: 699
}
}, A("No browsing history data for selected period."))), "month" === i.displayMode && u.createElement("div", {
className: "view month",
ref: "month",
__source: {
fileName: o,
lineNumber: 705
}
}, u.createElement("div", {
className: "month-calendar",
__source: {
fileName: o,
lineNumber: 706
}
}, u.createElement(c.default, {
width: "100%",
height: C,
rowHeight: I > 100 ? I : 100,
selectedDate: this.state.range.start,
keyboardSupport: !0,
onSelect: this.onCalendarSelect,
onDayMouseDown: this.handleMouseDown,
onDayMouseUp: this.handleMouseUp,
onDayMouseEnter: this.handleMouseEnter,
longWeekdays: !0,
min: d.startOf("month").format(k),
max: d.endOf("month").format(k),
maxDate: b,
showHeader: !1,
showTodayHelper: !1,
showOverlay: !1,
overscanMonthCount: 1,
locale: H,
renderMonthDay: this.renderMonthDay.bind(this, a, S, T, this.state.range, I, Math.floor(this.state.width / 7)),
__source: {
fileName: o,
lineNumber: 707
}
})), i.monthEntriesVisible && u.createElement("div", {
className: "month-links",
__source: {
fileName: o,
lineNumber: 733
}
}, u.createElement("ul", {
className: "Cal__Weekdays__root",
"aria-hidden": "true",
__source: {
fileName: o,
lineNumber: 734
}
}, u.createElement("li", {
className: "Cal__Weekdays__day",
__source: {
fileName: o,
lineNumber: 736
}
}, A("Entries"))), u.createElement(f, {
ref: "tree",
fullView: !1,
inManager: !0,
tab_id: this.props.page.id,
nodes: t,
grouping: this.props.historyFilter.grouping,
__source: {
fileName: o,
lineNumber: 740
}
})), u.createElement("button", {
className: "toggle-month-entries",
title: A(i.monthEntriesVisible ? "Hide entries" : "Show entries"),
onClick: this._setView,
value: "monthEntriesVisible",
tabIndex: this.props.keyAccess,
__source: {
fileName: o,
lineNumber: 750
}
}, i.monthEntriesVisible ? ">" : "<"))), i.moreInfoVisible && u.createElement(m, {
title: s,
data: t,
stats: a,
max: S,
scaleY: P,
range: this.state.range,
__source: {
fileName: o,
lineNumber: 765
}
})))
}
});
e.exports = p(V)
}, function(e, t, n) {
// =========================
// Function_611
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/historynew/HistoryMoreInfo.jsx",
a = n(1),
r = n(9),
s = n(607),
o = n(545),
l = o.VictoryChart,
c = o.VictoryAxis,
u = o.VictoryStack,
A = o.VictoryArea,
d = o.VictoryPie,
h = n(7),
m = h.round,
p = n(44),
f = n(2),
g = a.createClass({
displayName: "HistoryMoreInfo",
mixins: [r],
formatTick: function(e) {
var t = this.props.data.length,
n = void 0;
return t < 6 ? (n = "H:00", 0 === p(e).hour() && (n = "ddd D")) : t < 20 ? (n = "H:00", 0 === p(e).hour() && (n = "ddd D"), 1 === p(e).date() && (n = "MMMM", 0 === p(e).month() && (n = "MMM YYYY"))) : t < 80 ? (n = "ddd D", 1 === p(e).date() && (n = "MMM D", 0 === p(e).month() && (n = "MMM YYYY"))) : (n = "MMMM", 0 === p(e).month() && (n = "YYYY")), p(e).format(n)
},
formatPieTick: function(e, t) {
if (Number.isInteger(e.count)) {
var n = m(e.count / t * 100, 0);
if (n > 0) return n + (n > 3 ? "%" : "")
}
},
render: function() {
var e = this,
t = this.props,
n = t.title,
r = t.data,
o = t.stats,
h = t.max,
m = t.scaleY,
g = s(r, o, this.props.range),
_ = g.visitsTime,
v = g.linkTypeColors,
b = g.linkTypeTotal,
N = g.linkTypes,
E = g.combinedTopPages,
S = g.pageCount,
T = g.pageViewsCount,
y = g.siteCount,
C = r.length < 2,
I = {
y: C ? [0, h / 2] : [0, h]
},
O = {
x: "time",
y: m
},
w = {
duration: 200,
onLoad: {
duration: 100
},
onEnter: {
duration: 100,
before: function() {
return {
y: 0
}
}
}
};
return a.createElement("div", {
className: "manager-editor",
__source: {
fileName: i,
lineNumber: 85
}
}, a.createElement("div", {
className: "more-info",
__source: {
fileName: i,
lineNumber: 86
}
}, a.createElement("div", {
className: "header",
__source: {
fileName: i,
lineNumber: 87
}
}, a.createElement("h1", {
__source: {
fileName: i,
lineNumber: 88
}
}, n)), a.createElement("div", {
className: "moreinfo-stats",
__source: {
fileName: i,
lineNumber: 91
}
}, a.createElement("h2", {
__source: {
fileName: i,
lineNumber: 92
}
}, f("Browsing Activity")), a.createElement("div", {
className: "moreinfo-activity",
__source: {
fileName: i,
lineNumber: 93
}
}, a.createElement(l, {
width: 245,
height: 200,
padding: {
top: 6,
right: 12,
bottom: 40,
left: 30
},
domain: I,
scale: O,
__source: {
fileName: i,
lineNumber: 94
}
}, a.createElement(u, {
standalone: !1,
responsive: !0,
colorScale: ["#fc0", "#ce0"],
__source: {
fileName: i,
lineNumber: 100
}
}, a.createElement(A, {
animate: w,
standalone: !1,
data: _,
x: function(e) {
return p(parseInt(e.unixDate)).toDate()
},
y: "pages",
__source: {
fileName: i,
lineNumber: 104
}
}), a.createElement(A, {
animate: w,
standalone: !1,
data: _,
x: function(e) {
return p(parseInt(e.unixDate)).toDate()
},
y: "visits",
__source: {
fileName: i,
lineNumber: 110
}
})), a.createElement(c, {
tickCount: C ? 13 : void 0,
tickFormat: function(t) {
return e.formatTick(t)
},
standalone: !1,
style: {
axis: {
stroke: "#756f6a"
},
axisLabel: {
fontSize: 12,
padding: 20
},
grid: {
stroke: function(e) {
return p(e).format("H") % 6 === 0 && C ? "rgba(0, 0, 0, 0.15)" : "rgba(0, 0, 0, 0.05)"
}
},
ticks: {
stroke: "rgba(0, 0, 0, 0.05)"
},
tickLabels: {
angle: -45,
textAnchor: "end",
fontSize: 11,
padding: 5,
fontWeight: 600,
fontFamily: "inherit"
}
},
__source: {
fileName: i,
lineNumber: 117
}
}), a.createElement(c, {
dependentAxis: !0,
standalone: !1,
style: {
axis: {
stroke: "#756f6a"
},
axisLabel: {
fontSize: 12,
padding: 20
},
grid: {
stroke: function(e) {
return e % 100 === 0 ? "rgba(0, 0, 0, 0.15)" : "rgba(0, 0, 0, 0.05)"
}
},
ticks: {
stroke: "rgba(0, 0, 0, 0.05)"
},
tickLabels: {
fontSize: 11,
padding: 5,
fontFamily: "inherit"
}
},
__source: {
fileName: i,
lineNumber: 134
}
}))), a.createElement("ul", {
className: "moreinfo-activity-labels",
__source: {
fileName: i,
lineNumber: 151
}
}, a.createElement("li", {
className: "visits",
__source: {
fileName: i,
lineNumber: 152
}
}, f("Page Views: $1", [T])), a.createElement("li", {
className: "pages",
__source: {
fileName: i,
lineNumber: 155
}
}, f("Pages: $1", [S]))), a.createElement("h2", {
__source: {
fileName: i,
lineNumber: 160
}
}, f("Link Transition Type")), a.createElement("div", {
className: "moreinfo-link-types",
__source: {
fileName: i,
lineNumber: 161
}
}, a.createElement(d, {
data: N,
x: "type",
y: "count",
width: 160,
height: 160,
innerRadius: 30,
padding: 20,
labels: function(t) {
return e.formatPieTick(t, b)
},
colorScale: v,
animate: {
duration: 400,
onLoad: {
duration: 200
}
},
style: {
labels: {
fontSize: 10,
padding: 6,
fontFamily: "inherit"
}
},
__source: {
fileName: i,
lineNumber: 162
}
}), a.createElement("ul", {
className: "moreinfo-link-labels",
__source: {
fileName: i,
lineNumber: 179
}
}, N.map(function(e) {
return a.createElement("li", {
key: e.type,
__source: {
fileName: i,
lineNumber: 182
}
}, a.createElement("span", {
style: {
backgroundColor: e.color
},
__source: {
fileName: i,
lineNumber: 183
}
}), e.print)
}))), a.createElement("h2", {
__source: {
fileName: i,
lineNumber: 191
}
}, f("Top Domains of $1 Total", [y])), E.length > 0 && a.createElement("ul", {
className: "moreinfo-top-domains",
__source: {
fileName: i,
lineNumber: 193
}
}, E.map(function(e, t) {
if (t < 5) return a.createElement("li", {
key: "top_domain_" + t,
__source: {
fileName: i,
lineNumber: 197
}
}, a.createElement("img", {
src: "chrome://favicon/origin/" + e.url,
width: "16",
height: "16",
alt: "",
__source: {
fileName: i,
lineNumber: 198
}
}), a.createElement("span", {
className: "title",
__source: {
fileName: i,
lineNumber: 200
}
}, e.url ? e.url : "localhost"), a.createElement("span", {
className: "folder-item-count",
__source: {
fileName: i,
lineNumber: 203
}
}, e.visitCount))
})))))
}
});
e.exports = g
}, function(e, t, n) {
// =========================
// Function_612
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/historynew/HistoryPanel.jsx",
a = n(1),
r = n(11),
s = n(130),
o = n(357),
l = n(358),
c = n(359),
u = n(2),
A = n(26),
d = n(21),
h = a.createClass({
displayName: "HistoryPanel",
getDefaultProps: function() {
return {
open: !0
}
},
shouldComponentUpdate: function(e, t) {
return d(this, e, t)
},
componentDidUpdate: function(e, t) {
!e.open && this.props.open && r.findDOMNode(this.refs.tree).focus()
},
onSearch: function(e) {
s.saveStateFromSearchQuery(this.props.page.id, e), s.searchHistory(this.props.page.id, e)
},
onContextMenu: function(e) {
A(this.refs.tree.getRootContextMenuItems())(e)
},
render: function() {
if (!this.props.open) return null;
var e = this.props.historyData,
t = this.props.historyFilter;
return a.createElement("div", {
className: "panel",
id: "history-panel",
ref: "historyPanelElement",
__source: {
fileName: i,
lineNumber: 47
}
}, a.createElement("header", {
__source: {
fileName: i,
lineNumber: 48
}
}, a.createElement("h1", {
__source: {
fileName: i,
lineNumber: 49
}
}, u("History")), a.createElement(o, {
search: this.onSearch,
historyFilter: t,
minDate: this.props.oldestHistoryDate,
__source: {
fileName: i,
lineNumber: 50
}
})), a.createElement("section", {
onContextMenu: e.length > 0 ? this.onContextMenu : null,
__source: {
fileName: i,
lineNumber: 55
}
}, e.length > 0 ? a.createElement(c, {
ref: "tree",
fullView: !1,
inManager: !1,
nodes: e,
grouping: t.grouping,
__source: {
fileName: i,
lineNumber: 58
}
}) : a.createElement("p", {
__source: {
fileName: i,
lineNumber: 64
}
}, u("No browsing history data for this selected period."))))
}
});
e.exports = l(h)
}, function(e, t) {
// =========================
// Function_613
// =========================
"use strict";
var n = function(e, t, n, i, a) {
return a || (n = t, t = ""), e.map(function(e) {
var a = e.set("children", e.get("children").filter(function(e) {
return i ? e.get("url").indexOf(i) !== -1 : n ? e.get("title").toLowerCase().indexOf(n) !== -1 : e.get("url").indexOf(t) !== -1 || e.get("title").toLowerCase().indexOf(t) !== -1
}));
if (a.get("children").count()) return a
}).filter(function(e) {
return e && e.count()
})
};
e.exports = n
}, function(e, t, n) {
// =========================
// Function_614
// =========================
"use strict";
var i = n(356),
a = i.ParsedFilter,
r = function(e) {
if ("" === e || void 0 === e) return new a;
for (var t = ["title", "url"], n = {}, i = e.match(/(\S+:\s*'.*')|(\S+:\s*".*")|(\S+:\s*\S+)|(\S+)/g), r = "", s = 0; s < i.length; s++) {
var o = i[s].trim();
if (o.length > 0) {
for (var l = !1, c = 0; c < t.length; c++) {
var u = o.toLowerCase().indexOf(t[c] + ":"),
A = t[c].length + 1;
u > -1 && (l = !0, void 0 === n[t[c]] ? (r = t[c], n[t[c]] = o.slice(u + A).trim()) : n[t[c]] += " " + o.slice(u + A).trim())
}
l || (r ? n[r] = n[r] + " " + o : void 0 === n.query ? n.query = o : n.query += " " + o)
}
}
var d = new a({
title: n.title || "",
url: n.url || "",
query: n.query || ""
});
return d
};
e.exports = r
}, function(e, t, n) {
// =========================
// Function_615
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/infobubble/fullscreeninfobubble.jsx",
a = n(1),
r = n(3),
s = n(13),
o = n(26),
l = n(2),
c = n(5),
u = 4e3,
A = a.createClass({
displayName: "FullscreenInfoBubble",
mixins: [s],
vivaldiSettingsKeys: ["COMMAND_FULLSCREEN", "SHOW_FULLSCREEN_BUBBLE"],
getInitialState: function() {
return {
hover: !1,
contextOpen: !1,
show: !0,
hideTimeoutID: -1
}
},
componentDidMount: function(e, t) {
this.hideSelf()
},
startHover: function(e) {
this.setState({
hover: !0
})
},
endHover: function(e) {
this.setState({
hover: !1
})
},
showSelf: function() {
this.timeoutID !== -1 && clearTimeout(this.timeoutID), this.setState({
show: !0
})
},
hideSelf: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : u;
this.timeoutID !== -1 && clearTimeout(this.timeoutID), this.timeoutID = setTimeout(this.setState.bind(this, {
show: !1,
hover: !1,
contextOpen: !1
}), e)
},
alwaysHide: function() {
r.set({
SHOW_FULLSCREEN_BUBBLE: !1
}), this.hideSelf(0)
},
onContextMenu: function(e) {
var t = this;
this.timeoutID !== -1 && clearTimeout(this.timeoutID);
var n = [{
name: l("Hide Fullscreen Reminder"),
handler: this.hideSelf.bind(this, 0)
}, {
name: l("Never Show Fullscreen Reminder"),
handler: this.alwaysHide
}];
o(n, function() {
return t.setState({
contextOpen: !0
})
}, "pointer", function() {
return t.setState({
contextOpen: !1,
hover: !1
})
})(e)
},
render: function() {
var e = c({
fullscreeninfobubble: !0,
show: (this.state.hover || this.state.contextOpen || this.state.show) && this.state.SHOW_FULLSCREEN_BUBBLE
});
return a.createElement("div", {
onMouseEnter: this.startHover,
onMouseLeave: this.endHover,
__source: {
fileName: i,
lineNumber: 90
}
}, a.createElement("div", {
className: e,
onContextMenu: this.onContextMenu,
onClick: this.hideSelf.bind(this, 0),
__source: {
fileName: i,
lineNumber: 93
}
}, l("Press Escape key to exit full screen.")))
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_616
// =========================
"use strict";
var i = n(239),
a = {
bulkAdd: function(e) {
return i.filters.bulkPut(e).catch(function(e) {
console.error("Error bulk adding filters: ", e)
})
},
add: function(e) {
return i.filters.put(e).catch(function(e) {
console.error("Error adding filter: ", e)
})
},
remove: function(e, t) {
return i.filters.delete([e, t]).catch(function(e) {
console.error("Error removing filter: ", e)
})
},
bulkRemove: function(e) {
return i.filters.bulkDelete(e)
},
get: function(e, t) {
return i.filters.get([e, t]).catch(function(e) {
console.error("Error loading filter: ", e)
})
},
getAll: function() {
return i.filters.toArray().catch(function(e) {
console.error("Error loading filters: ", e)
})
}
};
e.exports = a
}, function(e, t, n) {
// =========================
// Function_617
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/mail/MailBar.jsx",
a = n(1),
r = n(133),
s = n(25),
o = n(618),
l = n(619),
c = n(620),
u = n(49),
A = n(629),
d = n(58),
h = n(15),
m = n(9),
p = n(3),
f = n(20),
g = f.urls,
_ = n(2),
v = ["KEY_ACCESS", "MAIL_COMPOSE_HEADERS_HIDDEN", "MAIL_IS_TURNED_OFF", "MAIL_SEND_OR_QUEUE", "MAIL_VIEW_LAYOUT", "MAIL_VIEW_POS", "PANEL_POSITION", "SHOW_FFW_RWD_BUTTONS"],
b = a.createClass({
displayName: "MailBar",
mixins: [m],
getInitialState: function() {
var e = this.props.page.get("url");
return {
panelWidth: d.getPanelWidth(),
isCompose: 0 === e.indexOf(g.internalUrl("mailpage", "composer")),
isMessage: 0 === e.indexOf(g.internalUrl("mailpage", "message"))
}
},
componentWillMount: function() {
d.addChangeListener(this.panelStoreChanged)
},
componentWillReceiveProps: function(e) {
var t = e.page.get("url");
this.setState({
isCompose: 0 === t.indexOf(g.internalUrl("mailpage", "composer")),
isMessage: 0 === t.indexOf(g.internalUrl("mailpage", "message"))
})
},
componentWillUnmount: function() {
d.removeChangeListener(this.panelStoreChanged)
},
panelStoreChanged: function() {
this.setState({
panelWidth: d.getPanelWidth()
})
},
sendAllOutgoing: function() {
A.sendAll()
},
toggleLayout: function() {
var e = this.props.vivaldiSettings.MAIL_VIEW_LAYOUT,
t = "top" === e ? "left" : "top";
p.set({
MAIL_VIEW_LAYOUT: t
})
},
compose: function() {
var e = g.internalUrl("mailpage", "composer/new", _("Mail - New"));
h.openURL(e)
},
render: function() {
var e = this.props.vivaldiSettings.KEY_ACCESS,
t = "left" === this.props.vivaldiSettings.PANEL_POSITION,
s = this.props.vivaldiSettings.MAIL_IS_TURNED_OFF;
return a.createElement(r, {
focusName: "focus_mailbar",
ref: "mailbar",
className: "toolbar toolbar-mailbar",
__source: {
fileName: i,
lineNumber: 86
}
}, !this.state.isMessage && !this.state.isCompose && !t && a.createElement(l, {
vivaldiSettings: this.props.vivaldiSettings,
__source: {
fileName: i,
lineNumber: 92
}
}), this.state.isCompose && !t && a.createElement(o, {
vivaldiSettings: this.props.vivaldiSettings,
__source: {
fileName: i,
lineNumber: 96
}
}), this.state.isMessage && !t && a.createElement(c, {
vivaldiSettings: this.props.vivaldiSettings,
__source: {
fileName: i,
lineNumber: 100
}
}), a.createElement("div", {
className: "mailbar-group-align-panel",
style: {
flexBasis: this.state.panelWidth + "px"
},
__source: {
fileName: i,
lineNumber: 103
}
}, a.createElement("button", {
className: "button-toolbar",
title: _("navigation", "Back"),
tabIndex: e,
onClick: "",
disabled: !0,
dangerouslySetInnerHTML: {
__html: n(214)
},
__source: {
fileName: i,
lineNumber: 106
}
}), a.createElement("button", {
className: "button-toolbar",
title: _("navigation", "Forward"),
tabIndex: e,
onClick: "",
disabled: !0,
dangerouslySetInnerHTML: {
__html: n(215)
},
__source: {
fileName: i,
lineNumber: 114
}
}), this.props.vivaldiSettings.SHOW_FFW_RWD_BUTTONS && a.createElement("button", {
className: "button-toolbar rewind",
title: _("navigation", "Rewind"),
tabIndex: e,
onClick: "",
disabled: !0,
dangerouslySetInnerHTML: {
__html: n(470)
},
__source: {
fileName: i,
lineNumber: 123
}
}), this.props.vivaldiSettings.SHOW_FFW_RWD_BUTTONS && a.createElement("button", {
className: "button-toolbar next",
title: _("navigation", "Forward"),
tabIndex: e,
onClick: "",
disabled: !0,
dangerouslySetInnerHTML: {
__html: n(468)
},
__source: {
fileName: i,
lineNumber: 133
}
}), a.createElement("button", {
className: "button-toolbar",
tabIndex: e,
title: _("Check for mail"),
onClick: u.checkForMail,
disabled: s,
dangerouslySetInnerHTML: {
__html: n(312)
},
__source: {
fileName: i,
lineNumber: 142
}
}), a.createElement("button", {
className: "button-toolbar",
tabIndex: e,
title: _("Send"),
onClick: this.sendAllOutgoing,
disabled: s,
dangerouslySetInnerHTML: {
__html: n(310)
},
__source: {
fileName: i,
lineNumber: 150
}
}), a.createElement("button", {
className: "button-toolbar button-compose",
title: _("Compose New Message"),
tabIndex: e,
onClick: this.compose,
disabled: s,
dangerouslySetInnerHTML: {
__html: n(1012)
},
__source: {
fileName: i,
lineNumber: 158
}
})), !this.state.isMessage && !this.state.isCompose && t && a.createElement(l, {
vivaldiSettings: this.props.vivaldiSettings,
__source: {
fileName: i,
lineNumber: 169
}
}), this.state.isCompose && t && a.createElement(o, {
vivaldiSettings: this.props.vivaldiSettings,
__source: {
fileName: i,
lineNumber: 173
}
}), this.state.isMessage && t && a.createElement(c, {
vivaldiSettings: this.props.vivaldiSettings,
__source: {
fileName: i,
lineNumber: 177
}
}))
}
});
e.exports = s(b, v)
}, function(e, t, n) {
// =========================
// Function_618
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/mail/MailBarComposer.jsx",
a = n(1),
r = n(238),
s = n(49),
o = n(9),
l = n(3),
c = n(2),
u = n(26),
A = n(30),
d = [{
ref: "from",
labels: A("sender", "From")
}, {
ref: "cc",
labels: A("Carbon copy")
}, {
ref: "bcc",
labels: A("Blind carbon copy")
}],
h = a.createClass({
displayName: "MailBarComposer",
mixins: [o],
getSendQueueMenu: function() {
return [Object.assign({
type: "checkbox",
checked: "send" === this.props.vivaldiSettings.MAIL_SEND_OR_QUEUE,
handler: this.sendAndSetSendAsDefault
}, A("Send")), Object.assign({
type: "checkbox",
checked: "queue" === this.props.vivaldiSettings.MAIL_SEND_OR_QUEUE,
handler: this.queueAndSetQueueAsDefault
}, A("Queue"))]
},
sendAndSetSendAsDefault: function() {
"send" !== this.props.vivaldiSettings.MAIL_SEND_OR_QUEUE && l.set({
MAIL_SEND_OR_QUEUE: "send"
})
},
queueAndSetQueueAsDefault: function() {
"queue" !== this.props.vivaldiSettings.MAIL_SEND_OR_QUEUE && l.set({
MAIL_SEND_OR_QUEUE: "queue"
})
},
handleSendQueueClick: function(e) {
0 === e.button && this.showSendQueueContextMenu(e)
},
showSendQueueContextMenu: function(e) {
u(this.getSendQueueMenu(), null, "bottom")(e)
},
handleHeaderClick: function(e) {
0 === e.button && this.showHeaderContextMenu(e)
},
showHeaderContextMenu: function(e) {
u(r.getItems(d, "compose"), null, "bottom")(e)
},
render: function() {
var e = this.props.vivaldiSettings.KEY_ACCESS;
return a.createElement("div", {
className: "mailbar-subbar",
__source: {
fileName: i,
lineNumber: 81
}
}, a.createElement("div", {
className: "mailbar-group-align-content",
__source: {
fileName: i,
lineNumber: 82
}
}, a.createElement("div", {
className: "button-group",
__source: {
fileName: i,
lineNumber: 84
}
}, "send" === this.props.vivaldiSettings.MAIL_SEND_OR_QUEUE ? a.createElement("button", {
className: "button-toolbar symbol-small send-button",
title: c("Send"),
tabIndex: e,
onClick: s.sendMessage,
dangerouslySetInnerHTML: {
__html: n(310) + c("Send")
},
__source: {
fileName: i,
lineNumber: 86
}
}) : a.createElement("button", {
className: "button-toolbar symbol-small send-button",
title: c("Queue"),
tabIndex: e,
onClick: s.queueMessage,
dangerouslySetInnerHTML: {
__html: n(310) + c("Queue")
},
__source: {
fileName: i,
lineNumber: 94
}
}), a.createElement("button", {
className: "button-toolbar send-menu",
title: c("Send/Queue Toggle"),
tabIndex: e,
onClick: this.handleSendQueueClick,
dangerouslySetInnerHTML: {
__html: n(1019)
},
__source: {
fileName: i,
lineNumber: 103
}
})), a.createElement("div", {
className: "button-group",
__source: {
fileName: i,
lineNumber: 111
}
}, a.createElement("button", {
className: "button-toolbar symbol-small",
title: c("Discard Draft"),
tabIndex: e,
onClick: s.deleteDraftMessage,
dangerouslySetInnerHTML: {
__html: n(952)
},
__source: {
fileName: i,
lineNumber: 112
}
})), a.createElement("div", {
className: "button-group",
__source: {
fileName: i,
lineNumber: 120
}
}, a.createElement("button", {
className: "button-toolbar symbol-small attachment-button",
title: c("Add Attachment"),
tabIndex: e,
onClick: s.addAttachment,
dangerouslySetInnerHTML: {
__html: n(951) + c("Add Attachment")
},
__source: {
fileName: i,
lineNumber: 121
}
}))), a.createElement("div", {
className: "mailbar-group-end button-group",
__source: {
fileName: i,
lineNumber: 132
}
}, a.createElement("button", {
className: "button-toolbar symbol-small",
title: c("Show Headers"),
tabIndex: e,
onContextMenu: this.showHeaderContextMenu,
onClick: this.handleHeaderClick,
dangerouslySetInnerHTML: {
__html: n(309)
},
__source: {
fileName: i,
lineNumber: 133
}
})))
}
});
e.exports = h
}, function(e, t, n) {
// =========================
// Function_619
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/mail/MailBarList.jsx",
a = n(1),
r = n(238),
s = n(49),
o = n(246),
l = n(388),
c = n(9),
u = n(3),
A = n(2),
d = n(26),
h = n(30),
m = [{
ref: "subject",
labels: h("Subject")
}, {
ref: "from",
labels: h("sender", "From")
}, {
ref: "to",
labels: h("To")
}, {
ref: "folder",
labels: h("Folder")
}, {
ref: "date",
labels: h("Date")
}, {
ref: "cc",
labels: h("Carbon copy")
}, {
ref: "replyto",
labels: h("Reply To")
}],
p = n(42),
f = p.MAIL_FILTERS_ACCOUNT_ID,
g = p.ALL_MESSAGES_ACCOUNT_ID,
_ = p.MAILING_LISTS_ACCOUNT_ID,
v = p.UNREAD_FOLDER_PATH,
b = p.RECEIVED_FOLDER_PATH,
N = p.INBOX_FOLDER_TYPE,
E = a.createClass({
displayName: "MailBarList",
mixins: [c],
getInitialState: function() {
return {
searchInput: "",
showMailingLists: !0,
showMailingListsVisible: !0,
showRead: !0,
showReadVisible: !0,
showDuplicates: !1,
inboxOnly: !1,
inboxOnlyVisible: !1
}
},
componentWillMount: function() {
l.addChangeListener(this.selectedFolderChanged)
},
componentWillUnmount: function() {
l.removeChangeListener(this.selectedFolderChanged)
},
onQueryChange: function() {
s.setSearchOptions(o.parseQuery(this.refs.searchInput.value)), this.setState({
searchInput: this.refs.searchInput.value
})
},
onQueryKeyDown: function(e) {
"Enter" === e.key && (e.preventDefault(), e.stopPropagation(), this.setSearchQuery())
},
toggleLayout: function() {
var e = this.props.vivaldiSettings.MAIL_VIEW_LAYOUT,
t = "top" === e ? "left" : "top";
u.set({
MAIL_VIEW_LAYOUT: t
})
},
toggleShowMailingLists: function() {
var e = l.getSelectedFolder();
if (e) {
var t = !this.state.showMailingLists,
n = o.get(e.accountId, e.path),
i = Object.assign({}, n.filterValue, {
showMailingLists: t
}),
a = Object.assign({}, n, {
filterValue: i
});
this.setState({
showMailingLists: t
}), s.addFilter(a)
}
},
toggleShowRead: function() {
var e = l.getSelectedFolder();
if (e) {
var t = !this.state.showRead,
n = o.get(e.accountId, e.path),
i = Object.assign({}, n.filterValue, {
showRead: t
}),
a = Object.assign({}, n, {
filterValue: i
});
this.setState({
showRead: t
}), s.addFilter(a)
}
},
toggleShowDuplicates: function() {
var e = l.getSelectedFolder();
if (e) {
var t = !this.state.showDuplicates,
n = o.get(e.accountId, e.path),
i = Object.assign({}, n.filterValue, {
showDuplicates: t
}),
a = Object.assign({}, n, {
filterValue: i
});
this.setState({
showDuplicates: t
}), s.addFilter(a)
}
},
toggleInboxOnly: function() {
var e = l.getSelectedFolder();
if (e) {
var t = !this.state.inboxOnly;
this.setState({
inboxOnly: t
});
var n = [];
t && (n = [N]);
var i = o.get(e.accountId, e.path),
a = Object.assign({}, i.filterValue, {
inboxOnly: t,
includeFolderTypes: n
}),
r = Object.assign({}, i, {
filterValue: a
});
s.addFilter(r)
}
},
updateSearchInput: function(e, t, n) {
if (e === f) {
var i = o.filterValueToString(n);
this.setState({
searchInput: i
})
} else this.setState({
searchInput: ""
})
},
updateShowRead: function(e, t, n) {
e === g && t === v ? (this.setState({
showReadVisible: !1
}), this.setState({
showRead: !1
})) : (this.setState({
showReadVisible: !0
}), n.hasOwnProperty("showRead") ? this.setState({
showRead: n.showRead
}) : this.setState({
showRead: !0
}))
},
updateShowDuplicates: function(e) {
e.hasOwnProperty("showDuplicates") ? this.setState({
showDuplicates: e.showDuplicates
}) : this.setState({
showDuplicates: !1
})
},
updateInboxOnly: function(e, t, n) {
this.setState({
inboxOnlyVisible: e === g && (t === v || t === b)
}), this.setState({
inboxOnly: n.inboxOnly
})
},
updateShowMailingLists: function(e, t, n) {
e === _ ? (this.setState({
showMailingListsVisible: !1
}), this.setState({
showMailingLists: !0
})) : (this.setState({
showMailingListsVisible: !0
}), n.hasOwnProperty("showMailingLists") ? this.setState({
showMailingLists: n.showMailingLists
}) : this.setState({
showMailingLists: !0
}))
},
selectedFolderChanged: function() {
var e = void 0,
t = void 0;
if (l.getSelectedFolder()) {
e = l.getSelectedFolder().accountId, t = l.getSelectedFolder().path;
var n = o.get(e, t) ? o.get(e, t).filterValue : {};
this.updateSearchInput(e, t, n), this.updateShowRead(e, t, n), this.updateShowDuplicates(n), this.updateInboxOnly(e, t, n), this.updateShowMailingLists(e, t, n)
}
},
setSearchQuery: function() {
var e = o.parseQuery(this.refs.searchInput.value),
t = l.getSelectedFolder(),
n = f,
i = void 0;
"" !== e && (t && t.accountId === _ && (n = _, i = t.path), s.addFilter({
accountId: n,
path: i ? i : e.name,
filterValue: e
}))
},
getFilterMenu: function() {
return [Object.assign({
type: "checkbox",
checked: this.state.showMailingLists,
handler: this.toggleShowMailingLists,
visible: this.state.showMailingListsVisible
}, h("Show Mailing Lists")), Object.assign({
type: "checkbox",
checked: this.state.showRead,
handler: this.toggleShowRead,
visible: this.state.showReadVisible
}, h("Show Read")), Object.assign({
type: "checkbox",
checked: this.state.showDuplicates,
handler: this.toggleShowDuplicates
}, h("Show Duplicates")), Object.assign({
type: "checkbox",
checked: this.state.inboxOnly,
handler: this.toggleInboxOnly,
visible: this.state.inboxOnlyVisible
}, h("Inbox Only"))]
},
handleFilterClick: function(e) {
0 === e.button && this.showFilterContextMenu(e)
},
showFilterContextMenu: function(e) {
d(this.getFilterMenu(), null, "bottom")(e)
},
handleHeaderClick: function(e) {
0 === e.button && this.showHeaderContextMenu(e)
},
showHeaderContextMenu: function(e) {
d(r.getItems(m, "read"), null, "bottom")(e)
},
focusSearch: function() {
this.refs.searchBox.classList.add("focused")
},
blurSearch: function() {
this.refs.searchBox.classList.remove("focused")
},
render: function() {
var e = this.props.vivaldiSettings.MAIL_IS_TURNED_OFF,
t = this.props.vivaldiSettings.KEY_ACCESS,
r = "left" === this.props.vivaldiSettings.MAIL_VIEW_LAYOUT,
o = this.props.vivaldiSettings.MAIL_VIEW_POS.width,
l = r && o ? {
flexBasis: o + "px"
} : {},
c = n(r ? 954 : 953);
return a.createElement("div", {
style: {
flex: 1
},
__source: {
fileName: i,
lineNumber: 326
}
}, a.createElement("div", {
className: "mailbar-group-align-list",
style: l,
__source: {
fileName: i,
lineNumber: 328
}
}, a.createElement("div", {
className: "searchfield",
ref: "searchBox",
__source: {
fileName: i,
lineNumber: 329
}
}, a.createElement("input", {
ref: "searchInput",
className: "searchfield-input",
onFocus: this.focusSearch,
onBlur: this.blurSearch,
type: "search",
placeholder: A("noun", "Search"),
value: this.state.searchInput,
onKeyDown: this.onQueryKeyDown,
onChange: this.onQueryChange,
__source: {
fileName: i,
lineNumber: 330
}
})), a.createElement("div", {
className: "button-group",
__source: {
fileName: i,
lineNumber: 343
}
}, a.createElement("button", {
className: "button-toolbar",
title: A("Filter"),
onContextMenu: this.showFilterContextMenu,
onClick: this.handleFilterClick,
tabIndex: t,
disabled: e,
dangerouslySetInnerHTML: {
__html: n(955)
},
__source: {
fileName: i,
lineNumber: 344
}
}))), a.createElement("div", {
className: "mailbar-group-align-content",
__source: {
fileName: i,
lineNumber: 356
}
}, a.createElement("div", {
className: "button-group",
__source: {
fileName: i,
lineNumber: 357
}
}, a.createElement("button", {
className: "button-toolbar symbol-small",
title: A("Reply"),
tabIndex: t,
onClick: s.reply,
disabled: e,
dangerouslySetInnerHTML: {
__html: n(465)
},
__source: {
fileName: i,
lineNumber: 358
}
}), a.createElement("button", {
className: "button-toolbar symbol-small",
title: A("Reply to All"),
tabIndex: t,
onClick: s.replyAll,
disabled: e,
dangerouslySetInnerHTML: {
__html: n(464)
},
__source: {
fileName: i,
lineNumber: 366
}
}), a.createElement("button", {
className: "button-toolbar symbol-small",
title: A("mail", "Forward"),
tabIndex: t,
onClick: s.forward,
disabled: e,
dangerouslySetInnerHTML: {
__html: n(461)
},
__source: {
fileName: i,
lineNumber: 374
}
})), a.createElement("div", {
className: "button-group",
__source: {
fileName: i,
lineNumber: 383
}
}, a.createElement("button", {
className: "button-toolbar symbol-small",
title: A("Mark Read"),
tabIndex: t,
onClick: "",
disabled: !0,
dangerouslySetInnerHTML: {
__html: n(463)
},
__source: {
fileName: i,
lineNumber: 384
}
})), a.createElement("div", {
className: "button-group",
__source: {
fileName: i,
lineNumber: 393
}
}, a.createElement("button", {
className: "button-toolbar symbol-small",
title: A("Flag"),
tabIndex: t,
onClick: "",
disabled: !0,
dangerouslySetInnerHTML: {
__html: n(467)
},
__source: {
fileName: i,
lineNumber: 394
}
})), a.createElement("div", {
className: "button-group",
__source: {
fileName: i,
lineNumber: 403
}
}, a.createElement("button", {
className: "button-toolbar symbol-small",
title: A("Label"),
tabIndex: t,
onClick: "",
disabled: !0,
dangerouslySetInnerHTML: {
__html: n(462)
},
__source: {
fileName: i,
lineNumber: 404
}
}))), a.createElement("div", {
className: "mailbar-group-end button-group",
__source: {
fileName: i,
lineNumber: 415
}
}, a.createElement("button", {
className: "button-toolbar symbol-small",
title: A("Show Headers"),
tabIndex: t,
onContextMenu: this.showHeaderContextMenu,
onClick: this.handleHeaderClick,
dangerouslySetInnerHTML: {
__html: n(309)
},
__source: {
fileName: i,
lineNumber: 416
}
})), a.createElement("div", {
className: "button-group",
__source: {
fileName: i,
lineNumber: 425
}
}, a.createElement("button", {
className: "button-toolbar symbol-small",
title: A("Toggle View"),
tabIndex: t,
onClick: this.toggleLayout,
disabled: e,
dangerouslySetInnerHTML: {
__html: c
},
__source: {
fileName: i,
lineNumber: 426
}
})))
}
});
e.exports = E
}, function(e, t, n) {
// =========================
// Function_620
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/mail/MailBarMessage.jsx",
a = n(1),
r = n(238),
s = n(49),
o = n(9),
l = n(2),
c = n(26),
u = n(30),
A = [{
ref: "subject",
labels: u("Subject")
}, {
ref: "from",
labels: u("sender", "From")
}, {
ref: "to",
labels: u("To")
}, {
ref: "folder",
labels: u("Folder")
}, {
ref: "date",
labels: u("Date")
}, {
ref: "cc",
labels: u("Carbon copy")
}, {
ref: "replyto",
labels: u("Reply To")
}],
d = a.createClass({
displayName: "MailBarMessage",
mixins: [o],
handleHeaderClick: function(e) {
0 === e.button && this.showHeaderContextMenu(e)
},
showHeaderContextMenu: function(e) {
c(r.getItems(A, "read"), null, "bottom")(e)
},
render: function() {
var e = this.props.vivaldiSettings.KEY_ACCESS,
t = this.props.vivaldiSettings.MAIL_IS_TURNED_OFF;
return a.createElement("div", {
className: "mailbar-group-align-content",
__source: {
fileName: i,
lineNumber: 59
}
}, a.createElement("div", {
className: "button-group",
__source: {
fileName: i,
lineNumber: 60
}
}, a.createElement("button", {
className: "button-toolbar symbol-small",
title: l("Reply"),
tabIndex: e,
onClick: s.reply,
disabled: t,
dangerouslySetInnerHTML: {
__html: n(465)
},
__source: {
fileName: i,
lineNumber: 61
}
}), a.createElement("button", {
className: "button-toolbar symbol-small",
title: l("Reply to All"),
tabIndex: e,
onClick: s.replyAll,
disabled: t,
dangerouslySetInnerHTML: {
__html: n(464)
},
__source: {
fileName: i,
lineNumber: 69
}
}), a.createElement("button", {
className: "button-toolbar symbol-small",
title: l("mail", "Forward"),
tabIndex: e,
onClick: s.forward,
disabled: t,
dangerouslySetInnerHTML: {
__html: n(461)
},
__source: {
fileName: i,
lineNumber: 77
}
})), a.createElement("div", {
className: "button-group",
__source: {
fileName: i,
lineNumber: 86
}
}, a.createElement("button", {
className: "button-toolbar symbol-small",
title: l("Mark Read"),
tabIndex: e,
onClick: "",
disabled: !0,
dangerouslySetInnerHTML: {
__html: n(463)
},
__source: {
fileName: i,
lineNumber: 87
}
})), a.createElement("div", {
className: "button-group",
__source: {
fileName: i,
lineNumber: 96
}
}, a.createElement("button", {
className: "button-toolbar symbol-small",
title: l("Flag"),
tabIndex: e,
onClick: "",
disabled: !0,
dangerouslySetInnerHTML: {
__html: n(467)
},
__source: {
fileName: i,
lineNumber: 97
}
})), a.createElement("div", {
className: "button-group",
__source: {
fileName: i,
lineNumber: 106
}
}, a.createElement("button", {
className: "button-toolbar symbol-small",
title: l("Label"),
tabIndex: e,
onClick: "",
disabled: !0,
dangerouslySetInnerHTML: {
__html: n(462)
},
__source: {
fileName: i,
lineNumber: 107
}
})), a.createElement("div", {
className: "mailbar-group-end button-group",
__source: {
fileName: i,
lineNumber: 116
}
}, a.createElement("button", {
className: "button-toolbar symbol-small",
title: l("Show Headers"),
tabIndex: e,
onContextMenu: this.showHeaderContextMenu,
onClick: this.handleHeaderClick,
dangerouslySetInnerHTML: {
__html: n(309)
},
__source: {
fileName: i,
lineNumber: 117
}
})))
}
});
e.exports = d
}, function(e, t, n) {
// =========================
// Function_621
// =========================
"use strict";
function i(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
var a = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
r = n(239),
s = n(181),
o = function() {
function e() {
i(this, e)
}
return a(e, [{
key: "count",
value: function() {
return r.folders.count()
}
}, {
key: "add",
value: function(e, t) {
return r.folders.put({
accountId: e,
folders: t
})
}
}, {
key: "remove",
value: function(e) {
return r.folders.delete(e)
}
}, {
key: "get",
value: function(e) {
return r.folders.get(e).then(function(e) {
return e ? e.folders : {}
})
}
}, {
key: "getByType",
value: function(e, t) {
return this.get(e).then(function(e) {
return e[t]
})
}
}, {
key: "getAll",
value: function() {
return r.folders.toArray().then(function(e) {
var t = {};
return e.forEach(function(e) {
return t[e.accountId] = {
folders: e.folders
}
}), t
})
}
}, {
key: "_getAllPaths",
value: function(e) {
var t = new Set;
return this.get(e).then(function(e) {
return Object.keys(e).forEach(function(n) {
var i = e[n];
i.forEach(function(e) {
t.add(e.path)
})
}), t
})
}
}, {
key: "getCache",
value: function(e, t) {
return this._getAllPaths(e).then(function(n) {
return r.mailboxCache.where("accountId").equals(e).toArray().then(function(e) {
var i = {};
return e.forEach(function(e) {
i[e.path] = e, i[e.path].uidlist = t[e.path] || [], i[e.path].exists = i[e.path].uidlist.length, i[e.path].highestModseq = i[e.path].highestModseq || "0", n.delete(e.path)
}), n.forEach(function(e) {
var n = t[e] || [],
a = n.length > 0 ? n[n.length - 1] + 1 : 0;
i[e] = {
uidlist: n,
uidNext: a,
exists: n.length
}
}), i
})
})
}
}, {
key: "setCache",
value: function(e, t, n) {
return r.transaction("rw", r.mailboxCache, function() {
Object.keys(n).forEach(function(i) {
i !== t && 0 !== n[i].exists || r.mailboxCache.put({
accountId: e,
path: i,
uidNext: n[i].uidNext,
highestModseq: n[i].highestModseq || "0"
})
})
})
}
}, {
key: "deleteAccount",
value: function(e) {
var t = r.mailboxCache.where("accountId").equals(e);
return t.toArray().then(function(t) {
return r.transaction("rw", [r.mailboxCache, r.folders], function() {
return s.Promise.all(t.map(function(t) {
return r.mailboxCache.delete([e, t.path])
})).then(function() {
return r.folders.delete(e)
})
})
})
}
}, {
key: "clearDb",
value: function() {
return r.folders.clear().then(r.mailboxCache.clear())
}
}]), e
}();
e.exports = new o
}, function(e, t, n) {
// =========================
// Function_622
// =========================
"use strict";
var i = n(7),
a = i.cloneDeep,
r = n(42),
s = r.MAIL_FOLDERS_ID,
o = function(e, t, n) {
var i = [];
if (!e) return i;
for (var a = Object.keys(e), r = 0; r < a.length; r++) {
for (var s = e[a[r]], o = 0; o < s.length; o++) {
var l = s[o];
l.accountId = t, l.id = n + "_" + l.path
}
i = i.concat(s)
}
return i.filter(function(e) {
return void 0 !== e
})
},
l = function(e) {
for (var t = [], n = Object.keys(e), i = 0; i < n.length; i++) {
var a = e[n[i]];
t.push(a.node)
}
return t
},
c = function(e, t) {
var n = t.parentPath,
i = n.split(t.delimiter),
a = i[i.length - 1],
r = i.slice(0, i.length - 1).join(t.delimiter),
o = {
level: t.level - 1,
parentPath: r,
node: {
name: a,
path: n,
delimiter: t.node.delimiter,
type: a,
accountId: t.node.accountId,
id: s + "_" + t.node.accountId + "_" + n,
children: []
}
};
return e[t.parentPath] = o, o
},
u = function(e) {
for (var t = {}, n = 0, i = 0; i < e.length; i++) {
var a = e[i];
a.children = [];
var r = a.path.split(a.delimiter),
s = r.length;
n = s > n ? s : n, t[a.path] = {
level: s,
parentPath: r.slice(0, s - 1).join(a.delimiter),
node: a
}
}
for (var o = n; o > 1; o--) {
for (var u = [], A = Object.keys(t), d = 0; d < A.length; d++) {
var h = t[A[d]];
h.level === o && u.push(h)
}
for (var m = 0; m < u.length; m++) {
var p = u[m],
f = t[p.parentPath];
f || (f = c(t, p)), f.node.children.push(p.node), delete t[p.node.path]
}
}
return l(t)
},
A = function e(t) {
var n = t.children.filter(function(t) {
return t.children && (t.children = e(t)), !!t.subscribed || "Inbox" === t.type || t.children && t.children.length > 0
});
return n
},
d = function(e) {
var t = Object.keys(e);
return t.map(function(t, n) {
var i = e[t],
a = i.folders,
r = s + "_" + t,
l = o(a, t, r),
c = u(l);
return {
name: t,
accountId: t,
id: s + "_" + t,
children: c
}
})
},
h = {
getSubscribedFolders: function(e) {
var t = a(e),
n = d(t);
return n.map(function(e) {
return e.children && (e.children = A(e)), e
})
}
};
e.exports = h
}, function(e, t, n) {
// =========================
// Function_623
// =========================
"use strict";
var i = n(2),
a = n(47),
r = n(362),
s = n(42),
o = s.MAIL_STATUS_TIMEOUT,
l = function(e, t, n, s, o, l) {
return e.MAIL_SMTP_PORT === -1 ? (console.warn("not gonna send as the smtp port is missing"), void a.setStatus(i("SMTP client not configured for sending mail"))) : (a.setStatus(i("Sending")), r.getSMTPClient(e).then(function(i) {
i.onidle = c.bind(i, e, t, n, s), i.onready = u.bind(i, o), i.ondone = A.bind(i, l), i.onerror = d.bind(i, e), i.connect()
}))
},
c = function(e, t, n, i) {
this.alreadySending || (this.alreadySending = !0, this.useEnvelope({
from: e.MAIL_EMAIL,
to: t.concat(n, i ? i : []).map(function(e) {
return e.address
})
}))
},
u = function(e, t) {
t.length > 0 ? a.setStatus(i("Rejected recipients") + ": " + t) : (this.send(e), this.end())
},
A = function(e, t) {
t ? a.setStatus(i("Message was sent"), o) : a.setStatus(i("Failed to send message")), this.quit(), t && e()
},
d = function(e, t) {
a.setStatus(t.message + " - " + i("Server") + ": " + e.MAIL_SMTP_SERVER + " - " + i("User") + ": " + e.MAIL_SMTP_USER), this.quit()
};
e.exports = {
send: l
}
}, function(e, t, n) {
// =========================
// Function_624
// =========================
"use strict";
function i(e) {
if (Array.isArray(e)) {
for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t];
return n
}
return Array.from(e)
}
function a(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
i = t.references.concat(t.inReplyTo ? [t.inReplyTo] : []);
n && (i = i.reverse());
var a = !0,
r = !1,
s = void 0;
try {
for (var o, l = function() {
var t = o.value,
n = e.find(function(e) {
return e.messageId === t
});
if (n) return {
v: n
}
}, c = i[Symbol.iterator](); !(a = (o = c.next()).done); a = !0) {
var A = l();
if ("object" === ("undefined" == typeof A ? "undefined" : u(A))) return A.v
}
} catch (e) {
r = !0, s = e
} finally {
try {
!a && c.return && c.return()
} finally {
if (r) throw s
}
}
}
function r(e, t, n) {
return t.find(function(t) {
return t.uid === e.uid
}) ? n : (t.push(e), A.findReferencesTo(e).then(function(a) {
return [e].concat(i(a)).forEach(function(e) {
n.find(function(t) {
return t.uid === e.uid
}) || n.push(e)
}), e.inReplyTo ? A.getByMessageId(e.accountId, e.inReplyTo).then(function(e) {
return e.length ? r(e[0], t, n) : n
}) : n
}))
}
function s(e) {
var t = void 0;
return A.findMyReferences(e).then(function(n) {
return t = a(n, e, !0), a(n, e) || e
}).then(function(e) {
return r(e, [], [])
}).then(function(n) {
var i = n.reduce(function(e, t) {
return Math.max(t.sentDate, e)
}, e.sentDate),
r = h(i, v),
s = [],
o = [];
return n.forEach(function(n) {
if (n.messageId === e.messageId) {
var i = r;
t && (i += t.threadKey.slice(v) + h(n.sentDate, v)), i !== e.threadKey && (n.threadKey = i, s.push(n))
} else n.references.length && n.references.indexOf(e.messageId) > -1 ? o.push(n) : n.threadKey && 0 === n.threadKey.indexOf(r) || (n.threadKey = r + (n.threadKey ? n.threadKey.slice(v) : ""), s.push(n))
}), o.forEach(function(t) {
var n = [e].concat(o),
i = a(n, t, !0),
l = r;
i && (l = i.threadKey + h(t.sentDate, v)), l !== t.threadKey && (t.threadKey = l, s.push(t))
}), s
}).then(function(e) {
return A.updateSearchListEntries(e)
})
}
function o(e, t, n, i, a) {
return (a - i < 10 || i % 300 === 0) && (m.setStatus(g("Updating thread - $1 $2 $3/$4", [e, t, i, a])), p.addPathIndicator(e, t, b, i, a)), s(n).then(function() {
return f.set({
MAIL_THREADING: {
accountId: e,
path: t,
uid: n.uid
}
})
})
}
function l(e, t, n) {
m.setStatus(g("Updating threads - $1 $2", [e, t]));
var i = 0;
return n.reduce(function(a, r) {
return a.then(function() {
return o(e, t, r, ++i, n.length)
})
}, Promise.resolve()).then(function() {
return f.remove("MAIL_THREADING")
}).then(function() {
m.setStatus(g("Finished updating threads - $1 $2", [e, t])), p.removePathIndicator(e, t, b)
})
}
function c(e, t, n) {
return A.getSearchListEntries(e, t, n).then(function(n) {
return l(e, t, n)
})
}
var u = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
A = n(138),
d = n(398),
h = d.padLeftZeros,
m = n(47),
p = n(49),
f = n(3),
g = n(2),
_ = n(42),
v = _.THREAD_KEY_LENGTH,
b = _.INDICATOR_TYPE_THREADING;
e.exports = {
updateThreads: l,
rerunThreading: c
}
}, function(e, t) {
// =========================
// Function_625
// =========================
"use strict";
var n = function(e, t) {
return e.accountId === t.accountId ? e.path === t.path ? e.uid - t.uid : e.path.localeCompare(t.path) : e.accountId.localeCompare(t.accountId)
},
i = function(e, t) {
return e.sentDate === t.sentDate ? n(e, t) : e.sentDate - t.sentDate
},
a = function(e, t) {
return t.id - e.id
},
r = function(e, t) {
return e.id - t.id
},
s = function(e) {
return e ? r : a
},
o = function(e, t) {
return e.threadKey === t.threadKey ? i(e, t) : e.threadKey > t.threadKey ? 1 : -1
};
e.exports = {
sentDateMsgComp: i,
idComparator: s,
threadKeyComp: o
}
}, function(e, t, n) {
// =========================
// Function_626
// =========================
"use strict";
function i(e, t, n, i) {
o(e, t, n, "unread", i)
}
function a(e, t, n, i) {
o(e, t, n, "flagged", i)
}
function r(e, t, n, i) {
o(e, t, n, "forwarded", i)
}
function s(e, t, n, i) {
o(e, t, n, "replied", i)
}
function o(e, t, n, i, a) {
var r = {};
r[i] = a;
var s = !0,
o = !1,
l = void 0;
try {
for (var c, u = n[Symbol.iterator](); !(s = (c = u.next()).done); s = !0) {
var A = c.value;
A.flags = d.updateFlags(A.flags, r), A.unseen = !1
}
} catch (e) {
o = !0, l = e
} finally {
try {
!s && u.return && u.return()
} finally {
if (o) throw l
}
}
g && g.accountId === e && g.path === t && g.flag === i && g.isFlagSet === a ? g.messages = n.concat(g.messages) : (g && _.flush(), g = {
accountId: e,
path: t,
messages: n,
flag: i,
isFlagSet: a
}), _()
}
var l = n(138),
c = n(386),
u = n(7),
A = u.debounce,
d = n(135),
h = n(42),
m = h.ALL_MESSAGES_ACCOUNT_ID,
p = h.FLUSH_FLAG_OPERATIONS_TIMEOUT,
f = n(49);
e.exports.setUnread = i, e.exports.setFlagged = a, e.exports.setForwarded = r, e.exports.setReplied = s;
var g = void 0,
_ = A(function() {
var e = g,
t = e.accountId,
n = e.path,
i = e.messages,
a = e.flag,
r = e.isFlagSet;
g = void 0, l.update(t, n, i).then(function(e) {
if (e.length > 0 && f.updateMessages(t, n, e), t !== m) {
var s = i.map(function(e) {
return e.uid
}),
o = d.getBufferOperation(a);
l.addToBuffer(t, n, s, o, r).then(function() {
return c.flushBuffer(t)
})
}
})
}, p)
}, function(e, t) {
// =========================
// Function_627
// =========================
"use strict";
var n = function e(t, n) {
if (n) {
var i, a;
t ? (i = "html", a = "text") : (i = "text", a = "html");
for (var r, s = 0; s < n.length; s++) {
if (n[s].type === i) return n[s];
r || n[s].type !== a ? "signed" === n[s].type && n[s].content && (r = e(t, n[s].content)) : r = n[s]
}
return r
}
};
e.exports = n
}, function(e, t, n) {
// =========================
// Function_628
// =========================
"use strict";
var i = n(7).curry,
a = n(42),
r = a.ALL_MESSAGES_ACCOUNT_ID,
s = a.MAILING_LISTS_ACCOUNT_ID,
o = a.MAIL_FILTERS_ACCOUNT_ID,
l = function(e, t, n, i, a, l) {
var c = !(arguments.length > 6 && void 0 !== arguments[6]) || arguments[6];
return l[r] || (l[r] = {
unread: 0,
unseen: 0,
total: 0
}), c && e !== r && e !== s && e !== o && (l[r].unread += n, l[r].unseen += i, l[r].total += a), l[e] || (l[e] = {
unread: 0,
unseen: 0,
total: 0
}), c && e !== r && (l[e].unread += n, l[e].unseen += i, l[e].total += a), l[e][t] || (l[e][t] = {
unread: 0,
unseen: 0,
total: 0
}), l[e][t].unread += n, l[e][t].unseen += i, l[e][t].total += a, l
},
c = i(l);
e.exports = c
}, function(e, t, n) {
// =========================
// Function_629
// =========================
"use strict";
function i(e) {
if (!e.from || 0 === e.from.length) return void console.log("missing from-field and hence can not send");
var t = p.getSync("MAIL_ACCOUNTS") || [],
n = t.find(function(t) {
return t.MAIL_EMAIL === e.from[0].address
});
return n ? void A.send(n, e.to, e.cc, e.bcc, e.raw, function() {
c.uploadSentMessage(e.raw, n, function(e) {
e && console.log("failed to upload to sent-folder, err:", e)
}), p.set({
MAIL_LAST_SENT_FROM: n.MAIL_EMAIL
}, function(e) {
e && console.log("Failed to store last sender, err:", e)
}), u.remove(_, v, [e.uid]).then(function() {
return f.removeMessages(_, v, [e.uid])
});
var t = e.forwarded || e.replied;
t && ! function() {
var n = t.accountId,
i = t.path,
a = t.uid;
u.get(n, i, a).then(function(t) {
return t ? void(e.forwarded ? l.setForwarded(n, i, [t], !0) : l.setReplied(n, i, [t], !0)) : void console.warn("Referenced message not found", n, i, a)
})
}()
}) : void console.log("no account registered with address in from-field and hence can not send")
}
function a(e, t) {
for (var n = function() {
var n = e[a].uid,
r = e[a].queued;
u.get(_, v, n).then(function(e) {
!t && r || h(e).then(function(e) {
return i(e)
})
})
}, a = 0; a < e.length; a++) n()
}
function r() {
var e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0],
t = m.getAll().filter(function(e) {
return e.accountId === _ && e.path === v
});
a(t, e)
}
function s(e) {
var t = m.getAll().filter(function(t) {
return t.accountId === _ && t.path === v && t.from && t.from[0] && t.from[0].address === e
});
a(t, !0)
}
function o(e) {
a(e, !0)
}
var l = n(626),
c = n(386),
u = n(138),
A = n(623),
d = n(240),
h = d.parseMailBody,
m = n(391),
p = n(3),
f = n(49),
g = n(42),
_ = g.ALL_MESSAGES_ACCOUNT_ID,
v = g.OUTBOX_FOLDER_PATH;
e.exports = {
sendAll: r,
sendForAccount: s,
sendSelected: o
}
}, function(e, t, n) {
// =========================
// Function_630
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/main/BackgroundTaskStatus.jsx",
a = n(1),
r = n(26),
s = a.createClass({
displayName: "BackgroundTaskStatus",
getInitialState: function() {
return {
taskInfo: this.props.taskInfo
}
},
render: function() {
return a.createElement("div", {
className: "no-events",
__source: {
fileName: i,
lineNumber: 14
}
}, a.createElement("span", {
className: "button-toolbar-small filter-invert",
id: this.state.taskInfo.id,
title: this.state.taskInfo.title + "\n" + this.state.taskInfo.description,
style: this.state.taskInfo.style,
onContextMenu: r(this.props.taskInfo.menuItems),
__source: {
fileName: i,
lineNumber: 15
}
}), a.createElement("span", {
className: "button-toolbar-small",
__source: {
fileName: i,
lineNumber: 21
}
}, this.state.taskInfo.text))
}
});
e.exports = s
}, function(e, t, n) {
// =========================
// Function_631
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/main/BackgroundTaskStatusList.jsx",
a = n(1),
r = n(9),
s = n(384),
o = n(630),
l = a.createClass({
displayName: "BackgroundTaskStatusList",
mixins: [r],
getInitialState: function() {
return {
backgroundTasks: s.getBackgroundTasks()
}
},
componentWillMount: function() {
s.addChangeListener(this.onBackgroundTaskStoreChange)
},
componentWillUnmount: function() {
s.removeChangeListener(this.onBackgroundTaskStoreChange)
},
onBackgroundTaskStoreChange: function() {
this.setState({
backgroundTasks: s.getBackgroundTasks()
})
},
render: function() {
return a.createElement("div", {
__source: {
fileName: i,
lineNumber: 29
}
}, this.state.backgroundTasks.map(function(e) {
return a.createElement(o, {
key: e.id,
taskInfo: e,
__source: {
fileName: i,
lineNumber: 30
}
})
}))
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_632
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/main/MainBar.jsx",
a = n(1),
r = (n(617), n(737)),
s = n(17),
o = n(20),
l = o.urls,
c = a.createClass({
displayName: "MainBar",
getInitialState: function() {
return {
page: s.getActivePage()
}
},
componentWillMount: function() {
s.addChangeListener(this.pageStoreChanged)
},
componentWillUnmount: function() {
s.removeChangeListener(this.pageStoreChanged)
},
pageStoreChanged: function() {
this.setState({
page: s.getActivePage()
})
},
render: function() {
return l.isMailPage(this.state.page.get("url")), a.createElement(r, {
page: this.state.page,
incognito: this.props.incognito,
currentOS: this.props.currentOS,
searchEngines: this.props.searchEngines,
currentWindowstate: this.props.currentWindowstate,
__source: {
fileName: i,
lineNumber: 35
}
})
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_633
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/main/StatusInfo.jsx",
a = n(1),
r = n(9),
s = n(767),
o = n(5),
l = a.createClass({
displayName: "StatusInfo",
mixins: [r],
getInitialState: function() {
return {
status: s.getStatus(),
visible: !1
}
},
componentWillMount: function() {
s.addChangeListener(this.onStoreChange)
},
componentWillUnmount: function() {
s.removeChangeListener(this.onStoreChange)
},
onStoreChange: function() {
var e = s.getStatus();
this.setState({
status: "" === e ? this.state.status : e,
visible: "" !== e
})
},
render: function() {
return a.createElement("div", {
id: "status_info",
className: o({
status_info: !0,
visible: this.state.visible
}),
__source: {
fileName: i,
lineNumber: 35
}
}, a.createElement("span", {
__source: {
fileName: i,
lineNumber: 40
}
}, this.state.status))
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_634
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = n(1),
r = n(3),
s = n(7),
o = s.cloneDeep,
l = s.debounce,
c = ["THEMES_SYSTEM", "THEMES_USER", "THEMES_SCHEDULE", "THEMES_SCHEDULE_ENABLED"],
u = void 0,
A = a.createClass({
displayName: "ThemeScheduleDaemon",
componentWillMount: function() {
var e = o(r.getKeysSync(c)),
t = e.THEMES_SYSTEM.concat(e.THEMES_USER);
e.THEMES_SCHEDULE.map(function(e) {
return t.some(function(t) {
return t.name === e.themeName
}) ? e : Object.assign(e, {
themeName: t[t.length - 1].name
})
}), this.setState(e)
},
componentDidMount: function() {
var e = this;
c.forEach(function(t) {
return r.addListener(t, e.vivaldiSettingHandler)
}), r.getSync("THEMES_SCHEDULE_ENABLED") === !0 && (this.setTheme(), this.scheduleThemeChange())
},
componentWillUnmount: function() {
var e = this;
c.forEach(function(t) {
return r.removeListener(t, e.vivaldiSettingHandler)
})
},
getTimerByDate: function(e, t) {
for (var n = this.state.THEMES_SCHEDULE, i = 60 * e.getHours() + e.getMinutes(), a = o(n), r = o(n), s = 0; s < n.length; s++) a[s].hours -= 24, r[s].hours += 24;
if (n = n.concat(a, r), "current" === t) {
n.sort(function(e, t) {
return 60 * t.hours + t.minutes - (60 * e.hours + e.minutes)
});
for (var l = 0; l < n.length; l++) {
var c = 60 * n[l].hours + n[l].minutes;
if (c < i + 1) return n[l]
}
} else if ("next" === t) {
n.sort(function(e, t) {
return 60 * e.hours + e.minutes - (60 * t.hours + t.minutes)
});
for (var u = 0; u < n.length; u++) {
var A = 60 * n[u].hours + n[u].minutes;
if (A > i) return n[u]
}
}
},
scheduleThemeChange: function() {
var e = this,
t = new Date,
n = this.getTimerByDate(t, "next"),
i = n.minutes + 60 * n.hours,
a = i - 60 * t.getHours() - t.getMinutes(),
r = 60 * a - t.getSeconds(),
s = 1e3 * r;
u && clearTimeout(u), this.state.THEMES_SCHEDULE_ENABLED !== !1 && (u = setTimeout(function() {
e.setTheme(), e.scheduleThemeChange()
}, s))
},
setTheme: function() {
var e = this.getTimerByDate(new Date, "current"),
t = this.getTheme(e.themeName);
this.state.THEMES_SCHEDULE_ENABLED !== !1 && .1 === t.version && r.set({
THEME_CURRENT: t.name,
BROWSER_COLOR_BG: t.colors.baseBg,
BROWSER_COLOR_FG: t.colors.baseFg,
BROWSER_COLOR_HIGHLIGHT_BG: t.colors.highlightBg,
BROWSER_COLOR_ACCENT_BG: t.colors.accentBg,
TABCOLOR_BEHIND_TABS: t.settings.accentOnWindow,
USE_TABCOLOR: t.settings.accentFromPage,
USE_TAB_TRANSPARENT_TABS: t.settings.tabsTransparent,
BORDER_RADIUS: t.settings.borderRadius
})
},
getTheme: function(e) {
for (var t = this.state.THEMES_SYSTEM.concat(this.state.THEMES_USER), n = 0; n < t.length; n++) {
var i = t[n];
if (i.name === e) return i
}
},
handleNewSettings: l(function() {
this.setTheme(), this.scheduleThemeChange()
}, 200),
vivaldiSettingHandler: function(e, t, n) {
if (e !== t && this.state[n] !== t)
if ("THEMES_USER" === n) {
for (var a = t.concat(this.state.THEMES_SYSTEM), s = o(this.state.THEMES_SCHEDULE), l = !0, c = 0; c < s.length; c++) {
for (var u = !1, A = 0; A < a.length; A++)
if (s[c].themeName === a[A].name) {
u = !0;
break
}
u || (l = !1, s[c].themeName = a[a.length - 1].name)
}
l ? this.setState(i({}, n, t), this.handleNewSettings()) : r.set(i({
THEMES_SCHEDULE: s
}, n, t))
} else this.setState(i({}, n, t), this.handleNewSettings())
},
render: function() {
return null
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_635
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/main/TopMenu.jsx",
a = n(1),
r = n(9),
s = n(236),
o = n(52),
l = n(17),
c = n(4),
u = n(20),
A = u.urls,
d = n(2),
h = a.createClass({
displayName: "TopMenu",
mixins: [r],
getInitialState: function() {
return Object.assign({
menuItems: o.getHorizontalMenu(l.getPages())
}, this.getPageStoreState())
},
componentDidMount: function() {
l.addChangeListener(this._onPageStoreChange), o.addChangeListener(this._onCommandStoreChanged)
},
componentWillUnmount: function() {
l.removeChangeListener(this._onPageStoreChange), o.removeChangeListener(this._onCommandStoreChanged)
},
_onCommandStoreChanged: function() {
this.setState({
menuItems: o.getHorizontalMenu(l.getPages())
})
},
_onPageStoreChange: function() {
var e = this.getPageStoreState(),
t = e.pages;
(this.state.pages.size !== t.size || this.state.pages.some(function(e, n) {
var i = t.get(n);
return i !== e && i.title !== e.title
})) && (e.menuItems = o.getHorizontalMenu(t)), this.setState(e)
},
getPageStoreState: function() {
return {
activePage: l.getActivePage(),
pages: l.getPages()
}
},
getMenuItemsState: function(e) {
return {
menuItems: o.getHorizontalMenu(e)
}
},
close: function(e) {
e.stopPropagation();
var t = c.app.window.getAll();
c.app.window.current().close(), 1 === t.length && c.runtime.sendMessage({
action: "forceQuit"
})
},
render: function() {
return a.createElement("div", {
className: "topmenu",
__source: {
fileName: i,
lineNumber: 74
}
}, a.createElement("button", {
className: "vivaldi-horizontal-icon",
onDoubleClick: this.close,
title: d("Double Click to Close"),
tabIndex: "-1",
dangerouslySetInnerHTML: {
__html: n(1024)
},
__source: {
fileName: i,
lineNumber: 75
}
}), a.createElement(s, {
horizontal: !0,
platformPopups: !0,
items: this.state.menuItems,
__source: {
fileName: i,
lineNumber: 83
}
}), a.createElement("div", {
className: "horizontal-menu-pagetitle",
__source: {
fileName: i,
lineNumber: 86
}
}, A.getDisplayTitle(this.state.activePage)))
}
});
e.exports = h
}, function(e, t, n) {
// =========================
// Function_636
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/main/main.jsx",
r = n(1),
s = n(9),
o = n(69),
l = n(567),
c = n(365),
u = n(355),
A = n(389),
d = n(17),
h = n(111),
m = n(639),
p = n(37),
f = n(588),
g = n(586),
_ = n(15),
v = n(646),
b = n(131),
N = n(58),
E = n(632),
S = n(637),
T = n(685),
y = n(593),
C = n(592),
I = n(720),
O = n(378),
w = n(635),
D = n(716),
k = n(6),
M = n(3),
L = n(59),
P = n(739),
R = n(633),
x = n(631),
B = n(250),
U = n(2),
F = n(4),
H = n(382),
V = n(10),
W = n(5),
G = n(777),
K = G.tabSwitcherListener,
j = n(65),
z = n(25),
Y = n(235),
J = n(634),
Q = n(7),
Z = Q.isEqual,
q = n(72),
X = q.MESSAGE_START_DRAGGING,
$ = q.MESSAGE_END_DRAGGING,
ee = ["ADDRESS_BAR_POSITION", "BOOKMARK_BAR_DISPLAY", "BOOKMARK_BAR_POSITION", "BOOKMARK_BAR_VISIBLE", "DEFAULT_SEARCH_ENGINE", "FOCUS_CYCLE_TRAP", "KEY_ACCESS", "KEY_ACCESS_OS_DEFAULT", "LINUX_ALT_CONTROLS", "MINIMALISTIC_UI_RECOVER_INFO", "MINIMALISTIC_UI_SHOW", "PANEL_POSITION", "SEARCH_ENGINES", "SHOW_ADDRESS_BAR", "SHOW_TAB_BAR", "SHOW_VIVALDI_FOOTER", "SWITCH_TABS_AT_WINDOW_EDGE", "TABCOLOR_BEHIND_TABS", "TAB_POSITION", "USE_BISCUIT_MODE", "USE_TAB_TRANSPARENT_TABS", "TAB_STACKING", "USE_ANIMATION", "VIVALDI_MENU_POSITION"];
"MacIntel" === navigator.platform && (ee.push("vivaldi.apple_keyboard_ui_mode"), ee.push("vivaldi.apple_action_on_double_click"));
var te = r.createClass({
displayName: "MainWindow",
mixins: [c, s],
getInitialState: function() {
return Object.assign({
currentOS: L(),
startupDlg: null,
currentWindowstate: F.app.window.current().isMaximized() ? "maximized" : "normal",
previousWindowstate: null,
hasFocus: !0,
noVisualBlur: !1,
mainDialogType: {
key: null,
func: null
},
confirmOpenBookmarksOptions: null,
clearBrowsingHistoryDialog: null,
importData: null,
initialNativeView: !1,
incognito: !1,
macKeyUIMode: null,
macFrameDblClick: null,
defaultPageZoomLevel: 1,
saveSession: null,
openSession: null,
panelOpen: N.getPanelButtonsVisible(),
preventAppRegionDrag: !1
})
},
componentWillMount: function() {
var e = this;
A.addChangeListener(this._onMainStoreChanged), h.addChangeListener(this._onActiveWebViewStoreChanged), N.addChangeListener(this._onPanelStoreChanged), F.tabs.onZoomChange.addListener(this._onTabZoomChange), V.zoom.onDefaultZoomChanged.addListener(this.onDefaultZoomChanged), V.zoom.getDefaultZoom(function(t) {
e.setState({
defaultPageZoomLevel: t
})
}), M.get("USE_NATIVE_WINDOW_DECORATIONS", function(t) {
e.setState({
initialNativeView: t
})
}), M.addListener("MINIMALISTIC_UI_SHOW", this.handleToggleUI), M.addListener("DEFAULT_SEARCH_ENGINE", this.onDefaultSearchEngineChanged), M.addListener("SEARCH_ENGINES", this.onSearchEnginesChanged), F.windows.get(window.vivaldiWindowId, {}, function(t) {
t && e.setState({
incognito: t.incognito
})
}), F.runtime.onMessage.addListener(this.onMessageReceived), this._updateKeyUIMode()
},
onLoad: function() {
var e = F.app.window.current();
M.get("APPLICATION_STATE", function(t) {
"fullscreen" === t && e.fullscreen()
})
},
componentDidMount: function() {
var e = this;
this.gestures = new m, this.gestures.attachEvents(), p.attachEvents(), window.addEventListener("load", this.onLoad);
var t = F.app.window.current();
t.onMaximized.addListener(this.onMaximized), t.onFullscreened.addListener(this.onFullscreened), t.onRestored.addListener(this.onRestored), window.addEventListener("focus", this.onWindowFocus), window.addEventListener("blur", this.onWindowBlur), Object.keys(this.props.theme).forEach(function(t) {
document.body.style.setProperty("--" + t, e.props.theme[t])
}), F.contextMenus.removeAll(function() {
F.contextMenus.create({
id: "searchWebFor",
title: U("Search for “%s”"),
contexts: ["selection"]
}, function() {
F.runtime.lastError && console.warn("contextMenus.create failed:", F.runtime.lastError)
}), e.updateSearchMenu(!0), F.contextMenus.onClicked.addListener(function(t, n) {
if (e.state.hasFocus && !F.app.window.current().isMinimized()) switch (t.menuItemId) {
case "searchWebFor":
var i = e.props.vivaldiSettings.DEFAULT_SEARCH_ENGINE;
"number" != typeof i && (i = Number(i)), e._searchWithSelection(t.selectionText, i);
break;
default:
"selectSearchEngine" === t.parentMenuItemId ? e._searchWithSelection(t.selectionText, Number(t.menuItemId)) : console.log("Unknown context menu item:", t, "in", n)
}
})
}), this.showStartupDialog()
},
componentDidUpdate: function(e, t) {
var n = this;
Z(e.theme, this.props.theme) || Object.keys(this.props.theme).forEach(function(e) {
var t = "--" + e,
i = n.props.theme[e];
document.body.style.removeProperty(t), document.body.style.setProperty(t, i)
})
},
componentWillUnmount: function() {
this.gestures.detachEvents(), p.detachEvents(), window.removeEventListener("load", this.onLoad), window.removeEventListener("focus", this.onWindowFocus), window.removeEventListener("blur", this.onWindowBlur), A.removeChangeListener(this._onMainStoreChanged), N.removeChangeListener(this._onPanelStoreChanged), h.removeChangeListener(this._onActiveWebViewStoreChanged), F.tabs.onZoomChange.removeListener && F.tabs.onZoomChange.removeListener(this._onTabZoomChange), V.zoom.onDefaultZoomChanged.removeListener(this.onDefaultZoomChanged), M.removeListener("MINIMALISTIC_UI_SHOW", this.handleToggleUI), F.runtime.onMessage.removeListener(this.onMessageReceived)
},
onDefaultSearchEngineChanged: function(e, t) {
var n = this.props.vivaldiSettings.SEARCH_ENGINES;
this.updateSearchMenu(!1, n, t)
},
onSearchEnginesChanged: function(e, t) {
var n = this.props.vivaldiSettings.DEFAULT_SEARCH_ENGINE;
this.updateSearchMenu(!1, t, n)
},
updateSearchMenu: function(e, t, n) {
function i(e, t) {
F.contextMenus.create({
id: "selectSearchEngine",
title: U("Search with"),
contexts: ["selection"]
}, function() {
F.runtime.lastError && console.warn("contextMenus.create failed:", F.runtime.lastError), e.forEach(function(e) {
F.contextMenus.create({
parentId: "selectSearchEngine",
id: e.Id.toString(),
title: e.Name,
contexts: ["selection"]
})
})
})
}
e ? (t = this.props.vivaldiSettings.SEARCH_ENGINES, n = this.props.vivaldiSettings.DEFAULT_SEARCH_ENGINE, i(t, n)) : F.contextMenus.remove("selectSearchEngine", function() {
i(t, n)
})
},
_searchWithSelection: function(e, t) {
var n = this.props.vivaldiSettings.SEARCH_ENGINES.filter(function(e) {
return e.Id === t
}).map(function(e) {
return e.Url
});
n.length > 0 && j.goSearchURL(e, {
inCurrent: !1,
useSearchEngineURL: n[0]
})
},
_updateKeyUIMode: function() {
if (this.props.vivaldiSettings.KEY_ACCESS_OS_DEFAULT) {
var e = this.props.vivaldiSettings["vivaldi.apple_keyboard_ui_mode"];
2 === e && "0" !== this.props.vivaldiSettings.KEY_ACCESS ? M.set({
KEY_ACCESS: "0"
}) : 0 === e && "-1" !== this.props.vivaldiSettings.KEY_ACCESS && M.set({
KEY_ACCESS: "-1"
})
}
},
_onMainStoreChanged: function(e) {
switch (e.action) {
case "fullscreen":
this.toggleFullscreen();
break;
case "quickcommand":
this.showQuickCommand();
break;
case "confirmOpenBookmarks":
this.showConfirmOpenBookmarksDialog(e.options);
break;
case "importData":
this.showImportData();
break;
case "saveSession":
this.showSaveSession();
break;
case "openSession":
this.showOpenSession();
break;
case "showClearBrowsingHistory":
this.showClearBrowsingHistoryDialog(e.options)
}
switch (e.type) {
case k.MAIN_SHOW_KEYBOARDS_SHORTCUTS:
this.showShortcuts();
break;
case k.MAIN_ZOOM_IN:
this.doActionZoomIn();
break;
case k.MAIN_ZOOM_OUT:
this.doActionZoomOut();
break;
case k.MAIN_ZOOM_HALF:
this.doActionZoomHalf();
break;
case k.MAIN_ZOOM_DOUBLE:
this.doActionZoomDouble();
break;
case k.MAIN_ZOOM_RESET:
this.doActionZoomReset();
break;
case k.MAIN_TOGGLE_TAB_BAR:
this.toggleTabBar();
break;
case k.MAIN_TOGGLE_ADDRESS_BAR:
this.toggleAddressBar();
break;
case k.MAIN_TOGGLE_UI:
this.toggleUI()
}
},
toggleFullscreen: function() {
var e = F.app.window.current();
e.isFullscreen() ? (h.getActiveWebView() && h.getActiveWebView().setIsFullscreen(!1), e.restore()) : (e.fullscreen(), M.set({
APPLICATION_STATE: "fullscreen"
}))
},
showQuickCommand: function() {
var e = o(this.state, {
mainDialogType: this.state.mainDialogType && this.state.mainDialogType.key === k.MAIN_SHOW_QUICKCOMMANDS ? {
key: {
$set: null
},
func: {
$set: null
}
} : {
key: {
$set: k.MAIN_SHOW_QUICKCOMMANDS
},
func: {
$set: this.showQuickCommand
}
}
});
return this.setState(e), !1
},
showShortcuts: function() {
var e = o(this.state, {
mainDialogType: this.state.mainDialogType && this.state.mainDialogType.key === k.MAIN_SHOW_KEYBOARDS_SHORTCUTS ? {
key: {
$set: null
},
func: {
$set: null
}
} : {
key: {
$set: k.MAIN_SHOW_KEYBOARDS_SHORTCUTS
},
func: {
$set: this.showShortcuts
}
}
});
return this.setState(e), !1
},
toggleTabSwitcher: function() {
var e = o(this.state, {
mainDialogType: this.state.mainDialogType && this.state.mainDialogType.key === k.MAIN_SHOW_VISUAL_TAB_SWITCHER ? {
key: {
$set: null
},
func: {
$set: null
}
} : {
key: {
$set: k.MAIN_SHOW_VISUAL_TAB_SWITCHER
},
func: {
$set: this.toggleTabSwitcher
}
}
});
return this.setState(e), !1
},
handleTabSwitcherActivation: function(e) {
if (!e) {
var t = this.refs.mainDialog.refs.visualTabSwitcher.state.selected;
_.openPage(t)
}
this.toggleTabSwitcher()
},
switchTabVisualTabSwitcher: function(e, t) {
d.getPages().size > 1 && (this.state.mainDialogType.key !== k.MAIN_SHOW_VISUAL_TAB_SWITCHER && (this.toggleTabSwitcher(), K(e, this.handleTabSwitcherActivation)), t ? this.refs.mainDialog.refs.visualTabSwitcher.selectForward() : this.refs.mainDialog.refs.visualTabSwitcher.selectBack())
},
onMaximized: function() {
"maximized" !== this.state.currentWindowstate && (this.setState({
previousWindowstate: this.state.currentWindowstate
}), this.setState({
currentWindowstate: "maximized"
}))
},
onFullscreened: function() {
"fullscreen" !== this.state.currentWindowstate && (this.setState({
previousWindowstate: this.state.currentWindowstate
}), this.setState({
currentWindowstate: "fullscreen"
}))
},
onInnerFullscreened: function() {
"fullscreen inner" !== this.state.currentWindowstate && this.setState({
previousWindowstate: this.state.currentWindowstate,
currentWindowstate: "fullscreen inner"
})
},
onClosed: function() {
"closed" !== this.state.currentWindowstate && (this.setState({
previousWindowstate: this.state.currentWindowstate
}), this.setState({
currentWindowstate: "closed"
}))
},
onRestored: function() {
var e = F.app.window.current();
if (e.isMaximized()) return void this.onMaximized();
if (!e.isMinimized()) return e.isFullscreen() ? void this.onFullscreened() : void("fullscreen" === this.state.currentWindowstate && "normal" !== this.state.previousWindowstate || "normal" !== this.state.currentWindowstate && (this.setState({
previousWindowstate: this.state.currentWindowstate
}), this.setState({
currentWindowstate: "normal"
}), M.set({
APPLICATION_STATE: "normal"
})))
},
maybeFocusLastActiveElement: function() {
if (this._lastActiveElement)
if ("BODY" === this._lastActiveElement.tagName) {
var e = h.getActiveWebView(),
t = d.getActivePage();
"content" === B(t, t.get("url")) && e && e.focus()
} else this._lastActiveElement.focus(), this._lastActiveElement = null
},
onWindowFocus: function() {
var e = this;
this.state.noVisualBlur && this.setState({
noVisualBlur: !1
}), "mac" === this.state.currentOS && H.onFocus(), b.setActiveWindowId(window.vivaldiWindowId), this.setState({
hasFocus: !0
}, function() {
return e.maybeFocusLastActiveElement()
})
},
onWindowBlur: function() {
this._lastActiveElement = document.activeElement, "mac" === this.state.currentOS && H.onBlur(), b.setActiveWindowId(-1), this.state.noVisualBlur || this.setState({
hasFocus: !1
})
},
noVisualBlur: function() {
this.setState({
noVisualBlur: !0
})
},
onHTMLFullscreen: function(e) {
e.enterFullscreen === !0 ? this.onInnerFullscreened() : e.enterFullscreen === !1 && "mac" === this.state.currentOS && this.onFullscreened()
},
_onActiveWebViewStoreChanged: function() {
var e = this,
t = null;
F.tabs.getZoom(function(t) {
e.refs.statusToolbar.refs.zoomslider.forceZoomState(t)
});
var n = h.getActiveWebView();
if (t !== n) {
if (t && t.removeEventListener("fullscreen"), n && (n.addEventListener("fullscreen", this.onHTMLFullscreen), t = n), "fullscreen inner" === this.state.currentWindowstate) {
var i = d.getPages().find(function(e) {
return e.get("fullscreen") && !e.get("isRemoved")
});
void 0 === i && this.toggleFullscreen()
}
"mac" === this.state.currentOS && (d.getActivePage().get("fullscreen") === !0 ? this.onInnerFullscreened() : "fullscreen inner" === this.state.currentWindowstate && this.onFullscreened())
}
},
_onTabZoomChange: function(e) {
e.tabId === d.getActivePage().get("id") && this.refs.statusToolbar.refs.zoomslider.forceZoomState(e.newZoomFactor)
},
_onPanelStoreChanged: function() {
this.setState({
panelOpen: N.getPanelButtonsVisible()
})
},
onMessageReceived: function(e) {
e && (e.action === X ? this.clearAppRegion() : e.action === $ && this.restoreAppRegion())
},
clearAppRegion: function() {
this.setState({
preventAppRegionDrag: !0
})
},
restoreAppRegion: function() {
this.setState({
preventAppRegionDrag: !1
})
},
handleDoubleClick: function() {
if (F.app.window.current().isFullscreen()) this.toggleFullscreen();
else if (F.app.window.current().isMaximized()) F.app.window.current().restore();
else if ("mac" === this.state.currentOS && this.props.vivaldiSettings["vivaldi.apple_action_on_double_click"])
if ("Minimize" === this.props.vivaldiSettings["vivaldi.apple_action_on_double_click"]) F.app.window.current().minimize();
else {
if ("None" === this.props.vivaldiSettings["vivaldi.apple_action_on_double_click"]) return !1;
F.app.window.current().maximize()
}
else "linux" !== this.state.currentOS && F.app.window.current().maximize()
},
closeConfirmOpenBookmarksDialog: function() {
this.setState({
confirmOpenBookmarksOptions: null
})
},
showConfirmOpenBookmarksDialog: function(e) {
this.setState({
confirmOpenBookmarksOptions: e
})
},
showClearBrowsingHistoryDialog: function(e) {
this.setState({
clearBrowsingHistoryDialog: e
})
},
closeClearBrowsingHistoryDialog: function(e) {
this.setState({
clearBrowsingHistoryDialog: null
})
},
closeImportData: function() {
this.setState({
importData: null
})
},
showImportData: function() {
this.setState({
importData: this.refs.webpageview
})
},
closeSaveSession: function() {
this.setState({
saveSession: null
})
},
showSaveSession: function() {
this.setState({
saveSession: this.refs.webpageview
})
},
closeOpenSession: function() {
this.setState({
openSession: null
})
},
showOpenSession: function() {
this.setState({
openSession: this.refs.webpageview
})
},
doActionZoomIn: function() {
this.refs.statusToolbar.refs.zoomslider.zoomInStep()
},
doActionZoomOut: function() {
this.refs.statusToolbar.refs.zoomslider.zoomOutStep()
},
doActionZoomHalf: function() {
this.refs.statusToolbar.refs.zoomslider.zoomHalf()
},
doActionZoomDouble: function() {
this.refs.statusToolbar.refs.zoomslider.zoomDouble()
},
doActionZoomReset: function() {
var e = this;
V.zoom.getDefaultZoom(function(t) {
e.refs.statusToolbar.refs.zoomslider.setZoomLevel(t)
})
},
onDefaultZoomChanged: function(e) {
this.setState({
defaultPageZoomLevel: e
})
},
panelToggle: function() {
b.togglePanel()
},
hasHorizontalMenu: function() {
return Boolean("top" === this.props.vivaldiSettings.VIVALDI_MENU_POSITION && "mac" !== this.state.currentOS)
},
getBrowserClasses: function() {
var e, t = this.props.vivaldiSettings.TABCOLOR_BEHIND_TABS,
n = (e = {
"horizontal-menu": this.hasHorizontalMenu(),
"tabs-at-edge": this.props.vivaldiSettings.SWITCH_TABS_AT_WINDOW_EDGE,
"ui-transparent-tabs": this.props.vivaldiSettings.USE_TAB_TRANSPARENT_TABS,
"biscuit-mode": this.props.vivaldiSettings.USE_BISCUIT_MODE,
"color-behind-tabs-on": t,
"color-behind-tabs-off": !t,
"animation-on": this.props.vivaldiSettings.USE_ANIMATION,
"animation-off": !this.props.vivaldiSettings.USE_ANIMATION,
hasfocus: this.state.hasFocus,
isblurred: !this.state.hasFocus,
alt: this.props.vivaldiSettings.LINUX_ALT_CONTROLS,
"minimal-ui": !this.props.vivaldiSettings.MINIMALISTIC_UI_SHOW,
native: this.state.initialNativeView
}, i(e, this.state.currentOS, !0), i(e, "win10", window.navigator.appVersion.indexOf("Windows NT 10") > 0), i(e, "private", this.state.incognito), i(e, this.props.themeBg, !0), i(e, this.props.highlightBg, !0), i(e, this.props.accentBg, !0), i(e, "no-app-dragging", this.state.preventAppRegionDrag), e);
return n["address-" + (this.props.vivaldiSettings.SHOW_ADDRESS_BAR ? this.props.vivaldiSettings.ADDRESS_BAR_POSITION : "off")] = !0, n["tabs-" + (this.props.vivaldiSettings.SHOW_TAB_BAR ? this.props.vivaldiSettings.TAB_POSITION : "off")] = !0, n["stacks-" + this.props.vivaldiSettings.TAB_STACKING] = !0, n[this.state.currentWindowstate] = !0, n["bookmark-bar-" + (this.props.vivaldiSettings.BOOKMARK_BAR_VISIBLE ? this.props.vivaldiSettings.BOOKMARK_BAR_POSITION : "off")] = !0, W(n)
},
getFooterClasses: function() {
var e = {
footer: !0,
disabled: !this.props.vivaldiSettings.SHOW_VIVALDI_FOOTER || "off" === this.props.vivaldiSettings.SHOW_VIVALDI_FOOTER || "urls" === this.props.vivaldiSettings.SHOW_VIVALDI_FOOTER
};
return W(e)
},
showStartupDialog: function() {
var e = this;
M.get("CHECK_DEFAULT_BROWSER_STARTUP", function(t) {
t && V.importData.isVivaldiDefaultBrowser(function(t) {
"false" === t && e.setState({
startupDlg: e.refs.webpageview
})
})
})
},
closeStartupDialog: function(e) {
this.setState({
startupDlg: null
})
},
toggleTabBar: function() {
M.set({
SHOW_TAB_BAR: !this.props.vivaldiSettings.SHOW_TAB_BAR
})
},
toggleAddressBar: function() {
M.set({
SHOW_ADDRESS_BAR: !this.props.vivaldiSettings.SHOW_ADDRESS_BAR
})
},
handleToggleUI: function(e, t) {
t ? (M.set({
SHOW_TAB_BAR: this.props.vivaldiSettings.MINIMALISTIC_UI_RECOVER_INFO.SHOW_TAB_BAR,
SHOW_ADDRESS_BAR: this.props.vivaldiSettings.MINIMALISTIC_UI_RECOVER_INFO.SHOW_ADDRESS_BAR,
SHOW_VIVALDI_FOOTER: this.props.vivaldiSettings.MINIMALISTIC_UI_RECOVER_INFO.SHOW_VIVALDI_FOOTER,
BOOKMARK_BAR_VISIBLE: this.props.vivaldiSettings.MINIMALISTIC_UI_RECOVER_INFO.BOOKMARK_BAR_VISIBLE
}), this.props.vivaldiSettings.MINIMALISTIC_UI_RECOVER_INFO.SHOW_PANEL !== N.getPanelButtonsVisible() && b.togglePanel()) : (M.set({
MINIMALISTIC_UI_RECOVER_INFO: {
SHOW_TAB_BAR: this.props.vivaldiSettings.SHOW_TAB_BAR,
SHOW_ADDRESS_BAR: this.props.vivaldiSettings.SHOW_ADDRESS_BAR,
SHOW_VIVALDI_FOOTER: this.props.vivaldiSettings.SHOW_VIVALDI_FOOTER,
BOOKMARK_BAR_VISIBLE: this.props.vivaldiSettings.BOOKMARK_BAR_VISIBLE,
SHOW_PANEL: N.getPanelButtonsVisible()
}
}), M.set({
SHOW_VIVALDI_FOOTER: "urls",
SHOW_TAB_BAR: !1,
SHOW_ADDRESS_BAR: !1,
BOOKMARK_BAR_VISIBLE: !1
}), N.getPanelButtonsVisible() && b.togglePanel())
},
toggleUI: function() {
M.set({
MINIMALISTIC_UI_SHOW: !this.props.vivaldiSettings.MINIMALISTIC_UI_SHOW
})
},
render: function() {
return r.createElement("div", {
id: "browser",
ref: "browser",
lang: F.i18n.getUILanguage(),
className: this.getBrowserClasses(),
onContextMenu: this.onContextMenu,
__source: {
fileName: a,
lineNumber: 983
}
}, r.createElement(J, {
__source: {
fileName: a,
lineNumber: 988
}
}), r.createElement("div", {
id: "header",
onDoubleClick: this.handleDoubleClick,
__source: {
fileName: a,
lineNumber: 989
}
}, r.createElement(O, {
currentWindowstate: this.state.currentWindowstate,
currentOS: this.state.currentOS,
tabPosition: this.props.vivaldiSettings.SHOW_TAB_BAR ? this.props.vivaldiSettings.TAB_POSITION : "none",
onNoVisualBlur: this.noVisualBlur,
__source: {
fileName: a,
lineNumber: 990
}
}), this.hasHorizontalMenu() && r.createElement(w, {
__source: {
fileName: a,
lineNumber: 997
}
}), this.props.vivaldiSettings.SHOW_TAB_BAR && "top" === this.props.vivaldiSettings.TAB_POSITION && r.createElement(I, {
ref: "tabbar",
tabPosition: this.props.vivaldiSettings.TAB_POSITION,
switchTabVisualTabSwitcher: this.switchTabVisualTabSwitcher,
__source: {
fileName: a,
lineNumber: 1001
}
}), !this.props.vivaldiSettings.SHOW_TAB_BAR && r.createElement(I, {
ref: "tabbar",
tabPosition: "none",
switchTabVisualTabSwitcher: this.switchTabVisualTabSwitcher,
__source: {
fileName: a,
lineNumber: 1008
}
})), r.createElement("div", {
id: "main",
className: this.props.vivaldiSettings.PANEL_POSITION,
__source: {
fileName: a,
lineNumber: 1015
}
}, r.createElement(E, {
incognito: this.state.incognito,
currentOS: this.state.currentOS,
searchEngines: this.props.vivaldiSettings.SEARCH_ENGINES,
currentWindowstate: this.state.currentWindowstate,
__source: {
fileName: a,
lineNumber: 1016
}
}), this.props.vivaldiSettings.BOOKMARK_BAR_VISIBLE && r.createElement(l, {
display: this.props.vivaldiSettings.BOOKMARK_BAR_DISPLAY,
statusOff: "off" === this.props.vivaldiSettings.SHOW_VIVALDI_FOOTER,
keyAccess: this.props.vivaldiSettings.KEY_ACCESS,
__source: {
fileName: a,
lineNumber: 1023
}
}), r.createElement("div", {
className: "inner",
__source: {
fileName: a,
lineNumber: 1030
}
}, this.state.startupDlg && r.createElement(T, {
parentDiv: this.state.startupDlg,
onClose: this.closeStartupDialog,
__source: {
fileName: a,
lineNumber: 1033
}
}), this.state.confirmOpenBookmarksOptions && r.createElement(f, {
options: this.state.confirmOpenBookmarksOptions,
onClose: this.closeConfirmOpenBookmarksDialog,
ref: "confirmopenbookmarks",
__source: {
fileName: a,
lineNumber: 1039
}
}), this.state.clearBrowsingHistoryDialog && r.createElement(g, {
options: this.state.clearBrowsingHistoryDialog,
onClose: this.closeClearBrowsingHistoryDialog,
ref: "clearbrowsinghistory",
__source: {
fileName: a,
lineNumber: 1046
}
}), this.state.importData && r.createElement(u, {
dialogParentElement: this.state.importData,
onClose: this.closeImportData,
ref: "import",
__source: {
fileName: a,
lineNumber: 1053
}
}), this.state.saveSession && r.createElement(y, {
dialogParentElement: this.state.saveSession,
onClose: this.closeSaveSession,
ref: "savesession",
__source: {
fileName: a,
lineNumber: 1059
}
}), this.state.openSession && r.createElement(C, {
dialogParentElement: this.state.openSession,
onClose: this.closeOpenSession,
ref: "opensession",
__source: {
fileName: a,
lineNumber: 1065
}
}), r.createElement(v, {
key: "panel",
position: this.props.vivaldiSettings.PANEL_POSITION,
__source: {
fileName: a,
lineNumber: 1070
}
}), this.props.vivaldiSettings.SHOW_TAB_BAR && "left" === this.props.vivaldiSettings.TAB_POSITION && r.createElement(I, {
ref: "tabbar",
tabPosition: this.props.vivaldiSettings.TAB_POSITION,
switchTabVisualTabSwitcher: this.switchTabVisualTabSwitcher,
__source: {
fileName: a,
lineNumber: 1076
}
}), r.createElement("div", {
ref: "webpageview",
id: "webview-container",
__source: {
fileName: a,
lineNumber: 1082
}
}, r.createElement(P, {
hasFocus: this.state.hasFocus,
pages: this.state.pages,
cycleFocus: this.props.vivaldiSettings.FOCUS_CYCLE_TRAP,
__source: {
fileName: a,
lineNumber: 1083
}
}), "urls" === this.props.vivaldiSettings.SHOW_VIVALDI_FOOTER && r.createElement(R, {
ref: "statusinfo",
__source: {
fileName: a,
lineNumber: 1089
}
})), this.props.vivaldiSettings.SHOW_TAB_BAR && "right" === this.props.vivaldiSettings.TAB_POSITION && r.createElement(I, {
ref: "tabbar",
tabPosition: this.props.vivaldiSettings.TAB_POSITION,
switchTabVisualTabSwitcher: this.switchTabVisualTabSwitcher,
__source: {
fileName: a,
lineNumber: 1095
}
})), this.props.vivaldiSettings.SHOW_TAB_BAR && "bottom" === this.props.vivaldiSettings.TAB_POSITION && r.createElement(I, {
ref: "tabbar",
tabPosition: this.props.vivaldiSettings.TAB_POSITION,
switchTabVisualTabSwitcher: this.switchTabVisualTabSwitcher,
__source: {
fileName: a,
lineNumber: 1104
}
})), r.createElement("div", {
id: "footer",
className: this.getFooterClasses(),
__source: {
fileName: a,
lineNumber: 1111
}
}, "urls" !== this.props.vivaldiSettings.SHOW_VIVALDI_FOOTER && r.createElement(R, {
ref: "statusinfo",
__source: {
fileName: a,
lineNumber: 1115
}
}), r.createElement(x, {
__source: {
fileName: a,
lineNumber: 1118
}
}), r.createElement("button", {
className: "paneltogglefooter button-toolbar-small",
title: U(this.state.panelOpen ? "Hide Panel" : "Show Panel"),
tabIndex: this.props.vivaldiSettings.KEY_ACCESS,
onClick: this.panelToggle,
dangerouslySetInnerHTML: {
__html: n(1011)
},
__source: {
fileName: a,
lineNumber: 1120
}
}), r.createElement(D, {
ref: "statusToolbar",
keyAccess: this.props.vivaldiSettings.KEY_ACCESS,
__source: {
fileName: a,
lineNumber: 1127
}
})), this.state.mainDialogType && this.state.mainDialogType.key && r.createElement(S, {
ref: "mainDialog",
onClose: this.state.mainDialogType.func,
dialog: this.state.mainDialogType.key,
__source: {
fileName: a,
lineNumber: 1133
}
}), r.createElement("svg", {
version: "1.1",
width: "0",
height: "0",
dangerouslySetInnerHTML: {
__html: n(950)
},
__source: {
fileName: a,
lineNumber: 1139
}
}))
}
});
e.exports = Y(z(te, ee))
}, function(e, t, n) {
// =========================
// Function_637
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/main/mainDialog.jsx",
r = n(1),
s = n(6),
o = n(594),
l = n(669),
c = n(587),
u = n(34),
A = r.createClass({
displayName: "MainDialog",
getInitialState: function() {
return {
shown: !0
}
},
componentWillReceiveProps: function() {
this.setState({
shown: !0
})
},
handleClick: function() {
this.state.shown && this.props.onClose(function() {
this.setState({
shown: !this.state.shown
})
}.bind(this))
},
getLayeredComponentRootNode: function() {
return this.props.parentDiv
},
render: function() {
if (this.state.shown) {
var e = void 0;
return e = this.props.dialog === s.MAIN_SHOW_VISUAL_TAB_SWITCHER ? "modal-tabswitcher" : this.props.dialog === s.MAIN_SHOW_QUICKCOMMANDS ? "qc-modal float top" : "float", r.createElement(u, {
onRequestClose: this.handleClick,
ignoreEscape: !0,
viewMode: e,
__source: {
fileName: a,
lineNumber: 44
}
}, this.props.dialog === s.MAIN_SHOW_QUICKCOMMANDS && r.createElement(l, i({
key: s.MAIN_SHOW_QUICKCOMMANDS
}, this.props, {
__source: {
fileName: a,
lineNumber: 49
}
})), this.props.dialog === s.MAIN_SHOW_KEYBOARDS_SHORTCUTS && r.createElement(o, i({
key: s.MAIN_SHOW_KEYBOARDS_SHORTCUTS
}, this.props, {
__source: {
fileName: a,
lineNumber: 52
}
})), this.props.dialog === s.MAIN_SHOW_VISUAL_TAB_SWITCHER && r.createElement(c, i({
ref: "visualTabSwitcher",
key: s.MAIN_SHOW_VISUAL_TAB_SWITCHER
}, this.props, {
__source: {
fileName: a,
lineNumber: 55
}
})))
}
return null
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_638
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/main/popup.jsx",
r = n(1),
s = n(4),
o = n(370),
l = n(378),
c = n(59),
u = n(25),
A = n(5),
d = n(204),
h = d.noop,
m = n(235),
p = n(7),
f = p.isEqual,
g = ["LINUX_ALT_CONTROLS", "USE_ANIMATION", "USE_NATIVE_WINDOW_DECORATIONS"],
_ = r.createClass({
displayName: "PopupWindow",
getInitialState: function() {
var e = s.app.window.current();
return {
currentOS: c(),
currentWindowstate: e.isMaximized() ? "maximized" : "normal",
hasFocus: !0,
initialNativeView: !1
}
},
componentWillMount: function() {
var e = s.app.window.current();
e.onMaximized.addListener(this.onMaximized), e.onFullscreened.addListener(this.onFullscreened), e.onRestored.addListener(this.onRestored), window.addEventListener("focus", this.onFocus), window.addEventListener("blur", this.onBlur), this.setState({
initialNativeView: this.props.vivaldiSettings.USE_NATIVE_WINDOW_DECORATIONS
})
},
onMaximized: function() {
this.setState({
currentWindowstate: "maximized"
})
},
onFullscreened: function() {
this.setState({
currentWindowstate: "fullscreen"
})
},
onRestored: function() {
var e = s.app.window.current();
this.setState({
currentWindowstate: e.isMaximized() ? "maximized" : "normal"
})
},
onFocus: function(e) {
this.setState({
hasFocus: !0
})
},
onBlur: function() {
this.setState({
hasFocus: !1
})
},
_onWindowLoaded: function() {
try {
var e = s.app.window.current();
e ? e.show() : console.warn("Couldn't show hidden application window because missing current window")
} finally {
window.removeEventListener("load", this._onWindowLoaded)
}
},
componentDidMount: function() {
var e = this;
window.addEventListener("load", this._onWindowLoaded), Object.keys(this.props.theme).forEach(function(t) {
document.body.style.setProperty("--" + t, e.props.theme[t])
})
},
componentDidUpdate: function(e, t) {
var n = this;
f(e.theme, this.props.theme) || Object.keys(this.props.theme).forEach(function(e) {
var t = "--" + e,
i = n.props.theme[e];
document.body.style.removeProperty(t), document.body.style.setProperty(t, i)
})
},
render: function() {
var e, t = this.props.vivaldiSettings,
n = (e = {
popup: !0,
"animation-on": t.USE_ANIMATION,
"animation-off": !t.USE_ANIMATION,
hasfocus: this.state.hasFocus,
isblurred: !this.state.hasFocus,
native: this.state.initialNativeView,
alt: t.LINUX_ALT_CONTROLS,
win10: window.navigator.appVersion.indexOf("Windows NT 10") > 0
}, i(e, this.props.themeBg, !0), i(e, this.props.highlightBg, !0), i(e, this.props.accentBg, !0), e);
return n[this.state.currentOS] = !0, n[this.state.currentWindowstate] = !0, n["is-settingspage"] = !0, r.createElement("div", {
id: "browser",
className: A(n),
lang: s.i18n.getUILanguage(),
onContextMenu: this.onContextMenu,
__source: {
fileName: a,
lineNumber: 125
}
}, r.createElement("div", {
id: "header",
onDoubleClick: this.handleDoubleClick,
__source: {
fileName: a,
lineNumber: 129
}
}, r.createElement(l, {
currentWindowstate: this.state.currentWindowstate,
currentOS: this.state.currentOS,
tabPosition: "top",
onNoVisualBlur: h,
__source: {
fileName: a,
lineNumber: 131
}
})), r.createElement("div", {
className: "webpageview",
__source: {
fileName: a,
lineNumber: 136
}
}, r.createElement(o, {
__source: {
fileName: a,
lineNumber: 137
}
})))
}
});
e.exports = m(u(_, g))
}, function(e, t, n) {
// =========================
// Function_639
// =========================
"use strict";
function i(e, t) {
return e.altKey === !0 && e.ctrlKey === !1 && e.shiftKey === !1 && e.metaKey === !1 && t === !0
}
function a(e, t) {
return e.altKey === !1 && e.ctrlKey === !1 && e.shiftKey === !1 && e.metaKey === !1 && t === !0
}
function r(e, t) {
return e.altKey === !1 && e.shiftKey === !1 && ("MacIntel" === navigator.platform ? e.metaKey === !0 && e.ctrlKey === !1 : e.metaKey === !1 && e.ctrlKey) && t
}
function s() {
function e(e, t) {
var n = 2 * Math.PI / 4,
i = Math.atan2(t, e) + n / 2;
i < 0 && (i += 2 * Math.PI);
var a = Math.floor(i / (2 * Math.PI) * 100);
R.push(P[a])
}
function t() {
d.get("MOUSE_GESTURES_ENABLED", function(e) {
E = "boolean" == typeof e && e
}.bind(this));
var e = {
preferenceKey: "mousegestures_enabled",
preferenceValue: {
boolean: E
},
preferenceType: "boolean"
};
p.settings.setPreference(e)
}
function n() {
d.get("MOUSE_WHEEL_TAB_SWITCHING", function(e) {
"boolean" == typeof e && (S = e)
}.bind(this))
}
function s() {
d.get("MOUSE_WHEEL_PAGE_ZOOM", function(e) {
"boolean" == typeof e && (T = e)
}.bind(this))
}
function u() {
d.get("ALT_GESTURES_ENABLED", function(e) {
"boolean" == typeof e && (y = e)
}.bind(this))
}
function _(e) {
"mousegestures_enabled" === e.preferenceKey && d.set({
MOUSE_GESTURES_ENABLED: e.preferenceValue.boolean
})
}
function v() {
p.settings.getPreference("mousegestures_enabled", function(e) {
E = e.preferenceValue.boolean
})
}
function b() {
p.settings.getPreference("vivaldi.swipe_scroll_direction", function(e) {
C = e.preferenceValue.boolean
})
}
var N, E = !1,
S = !1,
T = !1,
y = !1,
C = Boolean("MacIntel" === navigator.platform),
I = !1,
O = !1,
w = [],
D = !1,
k = !1,
M = !1,
L = 5,
P = [],
R = [],
x = 2 * Math.PI / 100;
this.init = function() {
v(), "MacIntel" === navigator.platform && b(), n(), s(), u();
var e, t = 2 * Math.PI / 4;
for (e = -t / 2; e <= 2 * Math.PI - t / 2; e += x) N = 2 * Math.floor((e + t / 2) / t), P.push(N)
}, this.attachEvents = function() {
document.addEventListener("keydown", this.onMouseDown, !0), document.addEventListener("keyup", this.onMouseUp, !0), document.addEventListener("mousedown", this.onMouseDown, !0), document.addEventListener("mouseup", this.onMouseUp, !0), document.addEventListener("mousemove", this.onMouseMove, !0), document.addEventListener("wheel", this.onMouseWheel, !0), document.addEventListener("DOMMouseScroll", this.onMouseWheel, !0), document.addEventListener("contextmenu", this.onContextMenu, !0), d.addListener("MOUSE_GESTURES_ENABLED", t), d.addListener("ALT_GESTURES_ENABLED", u), d.addListener("MOUSE_WHEEL_TAB_SWITCHING", n), d.addListener("MOUSE_WHEEL_PAGE_ZOOM", s), p.settings.onChanged.addListener(_)
}, this.detachEvents = function() {
document.removeEventListener("keydown", this.onMouseDown), document.removeEventListener("keyup", this.onMouseUp), document.removeEventListener("mousedown", this.onMouseDown), document.removeEventListener("mouseup", this.onMouseUp), document.removeEventListener("mousemove", this.onMouseMove), document.removeEventListener("wheel", this.onMouseWheel), document.removeEventListener("DOMMouseScroll", this.onMouseWheel), document.removeEventListener("contextmenu", this.onContextMenu), d.removeListener("MOUSE_GESTURES_ENABLED", t), d.removeListener("ALT_GESTURES_ENABLED", u), d.removeListener("MOUSE_WHEEL_TAB_SWITCHING", n), d.removeListener("MOUSE_WHEEL_PAGE_ZOOM", s), p.settings.onChanged.removeListener(_)
}, this.init(), this.onContextMenu = function(e) {
(I || M) && (e.preventDefault(), I = !1, M = !1)
}, this.onMouseDown = function(e) {
if (E && !O && (2 === e.button || i(e, y))) {
M = !1, w.url = l.getTargetUrl();
var t = l.getActivePage();
t && t.get("url") && (w.source_url = t.get("url")), "mousedown" === e.type ? (D = e.x, k = e.y) : D = k = !1, O = !0
}
}, this.onMouseUp = function(e) {
if ((E || M) && (2 === e.button || a(e, y))) {
if (O = !1, M) 2 === e.button && e.preventDefault(), R = [], D = k = !1, M = !1;
else if (R.length > 0) {
a(e, y) || "win" !== m() || (e.preventDefault(), e.stopPropagation());
var t, n = o.getCommandsGestures(),
i = R.map(function(e, t, n) {
if (e !== n[t - 1] && e === n[t + 1]) return e
}).filter(function(e) {
return void 0 !== e
}).toString().split(",").join("");
for (var r in n) n.hasOwnProperty(r) && r === i && (t = r);
t && (n[t].function(null, w), e.preventDefault(), I = !0, c.setStatus(h("Gesture: $1", [n[t].label]), 2e3), "WEBVIEW" === e.target.tagName && e.target.resetGestureState())
}
w = [], R = [], D = k = !1
}
}, this.onMouseMove = function(t) {
if (E && O === !0) {
if (i(t, !0) && t.preventDefault(), "win" !== m() && 2 !== t.button && t.altKey !== !0) return O = !1, w = [], R = [], void(D = k = !1);
if (D === !1) return D = t.x, void(k = t.y);
var n = t.x - D,
a = t.y - k,
r = n * n + a * a,
s = L * L;
r > s && (D = t.x, k = t.y, e(n, a))
}
};
var B = .2,
U = 5,
F = !1,
H = !1,
V = !1;
this.delayTimeout = void 0, this.onMouseWheel = function(e) {
var t = r(e, T);
if (H === !1 ? (H = !0, F = t) : "inertial" !== g ? (H = !1, t || (F = !1)) : t || (F = !1), F && T) {
var n = l.getActivePage();
if (!A.isInternalPage(n)) {
var a;
a = e.wheelDelta < 0 ? -.1 : e.wheelDelta > 0 ? .1 : 0, V || "inertial" === g || (V = !0, f.tabs.getZoom(function(e) {
var t = Math.round(10 * e) / 10 + a;
!t < B && f.tabs.setZoom(Math.min(Math.max(Math.round(10 * t) / 10, B), U))
}), window.clearTimeout(this.delayTimeout), this.delayTimeout = setTimeout(function() {
V = !1
}, 100)), e.preventDefault()
}
} else {
if (!S) return null;
var s = !1;
for (var c in e.path)
if (e.path.hasOwnProperty(c) && "tabs-container" === e.path[c].id) {
var u = e.path[c].className;
if (u.indexOf("overflow") === -1) {
s = !0;
break
}
}
if (2 === e.buttons || i(e, !0) || s) {
if (e.preventDefault(), "inertial" === g) return;
var d, h, m = o.getCommands();
if (e.wheelDelta > 0) h = 1;
else {
if (!(e.wheelDelta < 0)) return;
h = -1
}
var p = C ? "COMMAND_TAB_SWITCH_BACK_SETTING" : "COMMAND_TAB_SWITCH_FORWARD_SETTING",
_ = C ? "COMMAND_TAB_SWITCH_BACK_ORDER" : "COMMAND_TAB_SWITCH_FORWARD_ORDER",
v = C ? "COMMAND_TAB_SWITCH_FORWARD_SETTING" : "COMMAND_TAB_SWITCH_BACK_SETTING",
b = C ? "COMMAND_TAB_SWITCH_FORWARD_ORDER" : "COMMAND_TAB_SWITCH_BACK_ORDER";
"trackpad" === g ? V || (V = !0, d = h > 0 ? 2 === e.buttons || e.altKey ? p : _ : 2 === e.buttons || e.altKey ? v : b, window.clearTimeout(this.delayTimeout), this.delayTimeout = setTimeout(function() {
V = !1
}, 300)) : d = h > 0 ? 2 === e.buttons || e.altKey ? p : _ : 2 === e.buttons || e.altKey ? v : b;
for (var N in m) m.hasOwnProperty(N) && m[N].name === d && m[N].action(null, e);
M = !0
}
}
}
}
var o = n(52),
l = n(17),
c = n(47),
u = n(20),
A = u.urls,
d = n(3),
h = n(2),
m = n(59),
p = n(10),
f = n(4),
g = "";
p.utilities.onScroll.addListener(function(e) {
1 === e ? g = "mouse" : 2 === e ? g = "trackpad" : 3 === e && (g = "inertial")
}), e.exports = s
}, function(e, t, n) {
// =========================
// Function_640
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/notes/notesAttachment.jsx",
a = n(1),
r = n(40),
s = n(2),
o = a.createClass({
displayName: "AttachmentItem",
onRemoveScreenshot: function() {
this.props.removeScreenshot(this.props.index)
},
onOpenScreenshot: function(e) {
this.props.openScreenshot(this.props.index, r.getOpenOptionsFromEvent(e))
},
render: function() {
return a.createElement("div", {
className: "screenshot",
style: {
backgroundImage: "url(" + this.props.item.content + ")"
},
__source: {
fileName: i,
lineNumber: 18
}
}, a.createElement("button", {
className: "screenshot-remove",
title: s("Remove screenshot"),
onClick: this.onRemoveScreenshot,
tabIndex: "-1",
__source: {
fileName: i,
lineNumber: 20
}
}), a.createElement("button", {
className: "screenshot-view",
title: s("View screenshot"),
onClick: this.onOpenScreenshot,
__source: {
fileName: i,
lineNumber: 24
}
}))
}
});
e.exports = o
}, function(e, t, n) {
// =========================
// Function_641
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/notes/notesAttachmentContainer.jsx",
a = n(1),
r = n(640),
s = n(15),
o = a.createClass({
displayName: "AttachmentContainer",
onOpenScreenshot: function(e, t) {
s.openURL(this.props.note.attachments[e].content, t)
},
onRemoveScreenshot: function(e) {
this.props.onRemoveAttachment(this.props.note.id, e)
},
render: function() {
if (!this.props.note) return null;
var e = 0,
t = this.props.note.attachments.map(function(t) {
return a.createElement(r, {
key: e,
item: t,
openScreenshot: this.onOpenScreenshot,
removeScreenshot: this.onRemoveScreenshot,
index: e++,
__source: {
fileName: i,
lineNumber: 23
}
})
}.bind(this));
return a.createElement("div", {
className: "screenshots-wrapper",
__source: {
fileName: i,
lineNumber: 31
}
}, t)
}
});
e.exports = o
}, function(e, t, n) {
// =========================
// Function_642
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/notes/notesPanel.jsx",
a = n(1),
r = n(11),
s = n(641),
o = n(167),
l = n(247),
c = n(643),
u = n(15),
A = n(58),
d = n(134),
h = n(136),
m = n(65),
p = n(97),
f = n(3),
g = n(13),
_ = n(2),
v = n(113),
b = n(26),
N = n(394),
E = n(7),
S = n(21),
T = n(46),
y = n(10),
C = 300,
I = 238,
O = 600,
w = "NotesPanel",
D = a.createClass({
displayName: "NotesPanel",
mixins: [g],
vivaldiSettingsKeys: ["NOTES_EDITOR_HEIGHT", "KEY_ACCESS"],
cancelableId: void 0,
getInitialState: function() {
return {
filter: "",
selectedNote: null,
selectedFolder: null,
folderName: "",
contentValue: "",
urlValue: "",
editUrl: void 0,
attachmentTools: !1,
hasNotes: l.hasNotes()
}
},
componentWillMount: function() {
l.addChangeListener(this._onStoreChange), A.addChangeListener(this._onPanelStoreChange), p.addChangeListener(this._onUrlbarStoreChanged), y.notes.onCreated.addListener(this._onNodeCreated), y.notes.onChanged.addListener(this._onNodeChanged)
},
componentDidUpdate: function(e, t) {
!e.open && this.props.open && this.refs.notesTree && (r.findDOMNode(this.refs.notesTree).focus(), this.onItemSelected(this.refs.notesTree.getSelectedItem()))
},
componentWillUnmount: function() {
l.removeChangeListener(this._onStoreChange), A.removeChangeListener(this._onPanelStoreChange), p.removeChangeListener(this._onUrlbarStoreChanged), y.notes.onCreated.removeListener(this._onNodeCreated), y.notes.onChanged.removeListener(this._onNodeChanged)
},
shouldComponentUpdate: function(e, t) {
return S(this, e, t)
},
_onStoreChange: function() {
var e = l.hasNotes();
e === !1 && this.state.hasNotes === !0 ? this.setState(this.getInitialState()) : this.setState({
hasNotes: e
})
},
_onPanelStoreChange: function(e) {
this.props.open && "setFocus" === e && !v(r.findDOMNode(this)) && r.findDOMNode(this.refs.notesTree).focus()
},
_onUrlbarStoreChanged: function() {
this.setState(p.getUrlfieldStateFromId(w))
},
_onNodeCreated: function(e) {
this.cancelableId = e, A.getIsActiveWindow() && (this.refs.notesTree.selectById(e), this._focusEmptyContentField())
},
_onNodeChanged: function(e) {
var t = this.state.selectedNote || this.state.selectedFolder;
t && e === t.id && this._setSelectedStateByNode(l.getNodeById(e), function() {})
},
onItemSelected: function(e) {
var t = this;
this._selectionWillChange(e, function() {
if (e) t.cancelableId !== e.id && (t.cancelableId = void 0), t._setSelectedStateByNode(e, function() {
t.cancelableId && t._focusEmptyContentField()
});
else {
var n = t.getInitialState();
n.filter = t.state.filter, t.setState(n)
}
})
},
_selectionWillChange: function(e, t) {
void 0 !== this.state.editUrl ? (this.handleUrlBlur(), this.setState({
editUrl: void 0
}, t)) : t()
},
unSelect: function() {
this.refs.notesTree.unSelectAll(), this.setState({
selectedNote: null,
selectedFolder: null,
folderName: "",
urlValue: ""
})
},
_setSelectedStateByNode: function(e, t) {
var n = this.isFolder(e);
this.setState({
selectedNote: n ? null : e,
selectedFolder: n ? e : null,
folderName: n ? e.title : "",
contentValue: n ? "" : e.content,
urlValue: n || void 0 === e.url ? "" : e.url
}, t)
},
_focusEmptyContentField: function() {
"" === this.state.contentValue && this.state.selectedNote ? this.refs.refContent.focus() : "" === this.state.folderName && this.state.selectedFolder && this.refs.refFolderName.focus()
},
isFolder: function(e) {
return E.has(e, "children")
},
onAddNote: function() {
this.refs.notesTree.onAdd(!1)
},
onAddFolder: function() {
this.refs.notesTree.onAdd(!0)
},
onDeleteNote: function() {
this.refs.notesTree.onDelete()
},
onTakeScreenshot: function() {
this.state.selectedNote && o.addScreenshot(this.state.selectedNote.id), this.hideAttachmentTools()
},
onTakeAreaCapture: function() {
this.state.selectedNote && o.addAreaCapture(this.state.selectedNote.id), this.hideAttachmentTools()
},
onAddImageFile: function(e) {
this.state.selectedNote && o.addImageFile(this.state.selectedNote.id, e.target.files[0]), this.refs.refFile.value = "", this.hideAttachmentTools()
},
onOpenUrl: function() {
this.state.urlValue && u.openURL(T.fixLink(this.state.urlValue))
},
handleFolderChange: function(e) {
this.cancelableId = void 0;
var t = e.target.value;
this.setState({
folderName: t
}), y.notes.update(this.state.selectedFolder.id.toString(), {
title: t
})
},
handleContentChange: function(e) {
this.cancelableId = void 0;
var t = e.target.value;
if (this.setState({
contentValue: t
}), this.state.hasNotes === !1) y.notes.create({
type: "note",
content: t
});
else if (this.state.selectedNote) {
var n = {
content: t
};
y.notes.update(this.state.selectedNote.id.toString(), n)
}
},
handleUrlBlur: function() {
if (this.cancelableId = void 0, this.state.selectedNote && void 0 !== this.state.editUrl) {
var e = this.state.editUrl.trim();
e.length > 0 && (e = T.ensureURLProtocol(e));
var t = {
url: e
};
y.notes.update(this.state.selectedNote.id, t, function() {
m.setUrlfieldState(w, {
editUrl: void 0
})
})
}
},
handleContentBlur: function() {
this.cancelableId = void 0
},
handleFilterChange: function(e) {
var t = e.target.value;
this.setState({
filter: t
})
},
onKeyDown: function(e) {
if ("Escape" === e.key)
if (e.target === this.refs.refSearch) "" === this.state.filter ? r.findDOMNode(this.refs.notesTree).focus() : this.setState({
filter: ""
});
else {
var t = this.state.selectedFolder || this.state.selectedNote;
t && this.cancelableId === t.id && l.isNodeEmpty(t.id) && (this.cancelableId = void 0, this.onDeleteNote()), e.target !== this.refs.refContent && e.target !== this.refs.refFolderName && e.target !== r.findDOMNode(this.refs.noteUrl) || r.findDOMNode(this.refs.notesTree).focus()
}
else "Enter" === e.key && (e.target === r.findDOMNode(this.refs.noteUrl) ? (e.stopPropagation(), e.preventDefault(), r.findDOMNode(this.refs.notesTree).focus()) : this.state.selectedFolder && r.findDOMNode(this.refs.notesTree).focus())
},
onSlidebarPosition: function(e, t) {
var n = r.findDOMNode(this.refs.noteEditor),
i = n.getBoundingClientRect(),
a = i.bottom - t;
a > O ? a = O : a < I && (a = I), f.set({
NOTES_EDITOR_HEIGHT: a
})
},
resizeToDefault: function() {
f.set({
NOTES_EDITOR_HEIGHT: C
})
},
isEditable: function() {
return this.state.selectedNote || this.state.selectedFolder && !this.state.selectedFolder.trash
},
showAttachmentTools: function() {
this.setState({
attachmentTools: !0
})
},
hideAttachmentTools: function() {
this.setState({
attachmentTools: !1
})
},
onContextMenu: function(e) {
this.refs.notesTree.unSelectAll(), b(this.refs.notesTree.getRootContextMenuItems)(e)
},
render: function() {
if (!this.props.open) return null;
var e = this.state.selectedNote ? N.dateTimeLong(this.state.selectedNote.dateAdded) : this.state.selectedFolder ? N.dateTimeLong(this.state.selectedFolder.dateAdded) : "";
return a.createElement("div", {
className: "panel",
ref: "notesPanelElement",
id: "notes-panel",
onKeyDown: this.onKeyDown,
__source: {
fileName: i,
lineNumber: 365
}
}, a.createElement("header", {
__source: {
fileName: i,
lineNumber: 367
}
}, a.createElement("h1", {
__source: {
fileName: i,
lineNumber: 368
}
}, _("Notes")), a.createElement("div", {
className: "toolbar icons",
__source: {
fileName: i,
lineNumber: 370
}
}, a.createElement("input", {
ref: "refSearch",
type: "search",
className: "notesearch",
placeholder: _("Search..."),
value: this.state.filter,
title: _("URL:\nCONTENT:\nlimits the search to urls or content"),
onChange: this.handleFilterChange,
__source: {
fileName: i,
lineNumber: 371
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 379
}
}, a.createElement("button", {
title: _("New Note"),
className: "button-toolbar note-new",
tabIndex: this.state.KEY_ACCESS,
onClick: this.onAddNote,
dangerouslySetInnerHTML: {
__html: n(80)
},
__source: {
fileName: i,
lineNumber: 380
}
}), a.createElement("button", {
title: _("New Folder"),
className: "button-toolbar note-folder",
tabIndex: this.state.KEY_ACCESS,
onClick: this.onAddFolder,
dangerouslySetInnerHTML: {
__html: n(216)
},
__source: {
fileName: i,
lineNumber: 386
}
}), a.createElement("button", {
title: _("other", "Delete"),
className: "button-toolbar note-delete",
tabIndex: this.state.KEY_ACCESS,
onClick: this.onDeleteNote,
dangerouslySetInnerHTML: {
__html: n(92)
},
__source: {
fileName: i,
lineNumber: 392
}
})))), a.createElement("section", {
onClick: this.unSelect,
onContextMenu: this.state.hasNotes === !0 && this.onContextMenu,
__source: {
fileName: i,
lineNumber: 402
}
}, this.state.hasNotes === !1 && a.createElement("div", {
className: "no-notes",
__source: {
fileName: i,
lineNumber: 406
}
}, a.createElement("div", {
className: "happy-note",
onClick: this.onAddNote,
__source: {
fileName: i,
lineNumber: 407
}
}, a.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(960)
},
__source: {
fileName: i,
lineNumber: 408
}
}), a.createElement("h1", {
__source: {
fileName: i,
lineNumber: 410
}
}, _("Write Your First Note")), a.createElement("p", {
__source: {
fileName: i,
lineNumber: 411
}
}, _("Add a new note to begin, or select text on any webpage\n and create note from contextual menu.")))), a.createElement(c, {
ref: "notesTree",
selectedFolderId: this.state.selectedFolder && this.state.selectedFolder.id,
filter: this.state.filter,
onDelete: this.onDeleteNote,
onItemSelected: this.onItemSelected,
__source: {
fileName: i,
lineNumber: 415
}
})), a.createElement("div", {
className: "notes-editor",
ref: "noteEditor",
style: {
height: this.state.NOTES_EDITOR_HEIGHT || C
},
__source: {
fileName: i,
lineNumber: 424
}
}, a.createElement(d, {
onSlidebarPosition: this.onSlidebarPosition,
onDoubleClick: this.resizeToDefault,
position: "bottom",
__source: {
fileName: i,
lineNumber: 427
}
}), a.createElement("div", {
className: "data notes-cardwrapper cardview",
__source: {
fileName: i,
lineNumber: 431
}
}, a.createElement("div", {
className: "add-attachments-wrapper",
__source: {
fileName: i,
lineNumber: 432
}
}, a.createElement("button", {
className: "notes-add-attachment",
onClick: this.onTakeScreenshot,
title: _("Add screenshot"),
dangerouslySetInnerHTML: {
__html: n(977)
},
__source: {
fileName: i,
lineNumber: 433
}
}), a.createElement("button", {
className: "notes-add-area-capture",
onClick: this.onTakeAreaCapture,
title: _("Add capture of selected area"),
dangerouslySetInnerHTML: {
__html: n(978)
},
__source: {
fileName: i,
lineNumber: 440
}
}), a.createElement("input", {
type: "file",
ref: "refFile",
id: "notesFileAttachment",
accept: "image/*",
disabled: !this.state.selectedNote,
onChange: this.onAddImageFile,
__source: {
fileName: i,
lineNumber: 447
}
}), a.createElement("label", {
htmlFor: "notesFileAttachment",
className: "notes-add-attachment",
title: _("Attach new file..."),
tabIndex: this.state.KEY_ACCESS,
dangerouslySetInnerHTML: {
__html: n(946)
},
__source: {
fileName: i,
lineNumber: 454
}
})), this.state.selectedNote && a.createElement("textarea", {
ref: "refContent",
className: "note editor",
placeholder: _("Note"),
title: _("Write a note"),
value: this.state.contentValue,
onBlur: this.handleContentBlur,
onChange: this.handleContentChange,
__source: {
fileName: i,
lineNumber: 463
}
}), this.state.selectedFolder && a.createElement("div", {
className: "note",
__source: {
fileName: i,
lineNumber: 474
}
}, a.createElement("input", {
ref: "refFolderName",
type: "text",
placeholder: _("Folder"),
title: _("Edit folder name"),
value: this.state.folderName,
onBlur: this.handleContentBlur,
onChange: this.handleFolderChange,
__source: {
fileName: i,
lineNumber: 475
}
})), !this.state.selectedNote && !this.state.selectedFolder && a.createElement("div", {
className: "note shim",
onClick: this.onAddNote,
__source: {
fileName: i,
lineNumber: 487
}
}, _("Add a new note")), a.createElement("div", {
className: "attachments-wrapper",
__source: {
fileName: i,
lineNumber: 492
}
}, a.createElement(s, {
ref: "attachmentcontainer",
note: this.state.selectedNote,
onRemoveAttachment: o.removeAttachment,
__source: {
fileName: i,
lineNumber: 493
}
})), a.createElement("div", {
className: "urlwrapper",
__source: {
fileName: i,
lineNumber: 498
}
}, a.createElement("button", {
className: "meta-icon url",
title: _("Go to Address"),
disabled: !this.state.selectedNote,
tabIndex: this.state.KEY_ACCESS,
onClick: this.onOpenUrl,
dangerouslySetInnerHTML: {
__html: n(947)
},
__source: {
fileName: i,
lineNumber: 499
}
}), a.createElement(h, {
ref: "noteUrl",
title: _("Enter webpage address"),
className: "cardview address",
disabled: !this.state.selectedNote,
onBlur: this.handleUrlBlur,
pageId: w,
displayUrl: this.state.urlValue,
editUrl: this.state.editUrl,
autocompletionEnabled: !0,
triggerTypedHistory: !1,
selectionStart: this.state.selectionStart,
selectionEnd: this.state.selectionEnd,
placeholder: this.state.selectedNote ? _("Address") : null,
__source: {
fileName: i,
lineNumber: 506
}
})), a.createElement("div", {
className: "dateCreated",
__source: {
fileName: i,
lineNumber: 520
}
}, a.createElement("div", {
className: "meta-icon date fieldset",
dangerouslySetInnerHTML: {
__html: n(458)
},
__source: {
fileName: i,
lineNumber: 521
}
}), a.createElement("span", {
title: _("Date created"),
__source: {
fileName: i,
lineNumber: 524
}
}, e)))))
}
});
e.exports = D
}, function(e, t, n) {
// =========================
// Function_643
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/notes/notesTree.jsx",
a = n(1),
r = n(40),
s = n(234),
o = n(167),
l = n(247),
c = n(15),
u = n(9),
A = n(47),
d = n(13),
h = n(109),
m = n(30),
p = n(10),
f = n(46),
g = f.fixLink,
_ = a.createClass({
displayName: "NotesTree",
mixins: [u, d],
initalSelectionDone: !1,
vivaldiSettingsKeys: ["SHOW_VIVALDI_FOOTER"],
getInitialState: function() {
return {
nodes: l.getRootNode().children
}
},
componentWillMount: function() {
l.addChangeListener(this._onStoreChange)
},
componentWillUnmount: function() {
l.removeChangeListener(this._onStoreChange)
},
componentDidUpdate: function() {
this.initalSelectionDone === !1 && (this.initalSelectionDone = !0, this.props.onItemSelected(this.getSelectedItem()))
},
componentWillReceiveProps: function(e) {
var t = this;
this.props.filter !== e.filter && ! function() {
var n = e.filter.length,
i = t.props.filter.length;
t.onFilterChange(e.filter, function() {
n > 0 ? t.expandAll() : i > 0 && 0 === n && t.collapseAll()
})
}()
},
onDelete: function() {
this.refs.treeList.onDelete()
},
delete: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
return Promise.all(e.map(function(e) {
return new Promise(function(t) {
p.notes.get(e, function(n) {
n && n.length > 0 && !n[0].trash && p.notes.remove(e), t()
})
})
}))
},
isFolder: function(e) {
return !!e && !!e.children
},
isTrash: function(e) {
return e.trash
},
isEditable: function() {
return !1
},
onItemDoubleClick: function(e) {
var t = this,
n = r.getOpenOptionsFromEvent(e),
i = this.refs.treeList.SelectionMixinGetAllSelected().map(function(e) {
return e.id
});
p.notes.get(i, function(e) {
var i = e.filter(function(e) {
return !!e.url
}).map(function(e) {
return g(e.url)
});
t._openUrls(i, n)
})
},
onNodesActivated: function(e, t) {
var n = [];
t.forEach(function(e) {
var t = l.getNodeById(e.id);
t && t.url && n.push(g(t.url))
}), this._openUrls(n, {})
},
_openUrls: function(e, t) {
t.inNewWindow ? c.openWindow(e, {
focused: !t.inBackground
}) : ! function() {
var n = e.length > 0 ? e[e.length - 1] : void 0;
e.forEach(function(e) {
if (t.inCurrent === !1)
if (t.inBackground === !0) c.openURL(e, t);
else {
var i = t;
i.inBackground = e !== n, c.openURL(e, i)
}
else c.openURL(e, t), t.inCurrent = !1
})
}()
},
onFilterChange: function(e, t) {
var n = this,
i = void 0;
if (e.length > 0) {
if ("tree" !== this.refs.treeList.getSearchStyle()) return void p.notes.search(e, function(e) {
n.setState({
nodes: e
}, t)
});
i = l.getFilteredTree(e)
} else i = l.getRootNode().children;
this.setState({
nodes: i
}, t)
},
_onStoreChange: function() {
this.onFilterChange(this.props.filter)
},
hasChildren: function(e) {
return !!e.children && e.children.length > 0
},
handleExpandClick: function() {
this.refs.treeList.toggleSelectedExpansion()
},
unSelectAll: function() {
this.refs.treeList.unSelectAll()
},
getSelectedItem: function() {
return this.refs.treeList.getSelectedItem()
},
expandNote: function(e) {
e.isExpanded || this.refs.treeList.toggleSelectedExpansion()
},
expandAll: function() {
this.refs.treeList.expandAll()
},
collapseAll: function() {
this.refs.treeList.collapseAll()
},
setSearchStyle: function(e) {
this.refs.treeList.setSearchStyle(e)
},
onSearchStyleChanged: function(e) {
var t = this;
this.props.filter && this.onFilterChange(this.props.filter, function() {
"tree" === e && t.expandAll()
})
},
isValidForClipboard: function(e) {
return !e.trash
},
isValidDragSource: function(e) {
return !e.trash
},
isValidAddTarget: function(e) {
return !this.isTrashed(e)
},
isTrashed: function(e) {
return !!e && (!!e.trash || !!e.parentId && this.isTrashed(this.refs.treeList.findTreeItem(e.parentId)))
},
onAdd: function(e) {
this.refs.treeList.onAdd(e)
},
selectById: function(e) {
this.refs.treeList.selectById(e)
},
getTargetSpec: function(e, t) {
var n = {
index: 0,
parentId: void 0
};
if (this.isTrash(e) && "on" !== t) {
var i = l.getLastTopNode();
i ? (n.parentId = i.parentId, n.index = i.index + 1) : n.parentId = l.getRootNode().id
} else this.isFolder(e) && "on" === t ? n.parentId = e.id : (n.parentId = e.parentId, n.index = e.index + ("below" === t ? 1 : 0));
return n
},
onCreate: function(e) {
var t = this;
return e = Array.isArray(e) ? e : [e], Promise.all(e.map(function(e) {
return new Promise(function(n) {
p.notes.create({
parentId: e.parentId.toString(),
attachments: e.attachments,
content: e.content,
title: e.title,
index: e.index,
type: t.isFolder(e) ? "folder" : "note"
}, function(i) {
if (t.hasChildren(e)) {
var a = !0,
r = !1,
s = void 0;
try {
for (var o, l = e.children[Symbol.iterator](); !(a = (o = l.next()).done); a = !0) {
var c = o.value;
c.parentId = i.id
}
} catch (e) {
r = !0, s = e
} finally {
try {
!a && l.return && l.return()
} finally {
if (r) throw s
}
}
t.onCreate(e.children).then(function() {
n(i)
})
} else n(i)
})
})
}))
},
onMove: function(e, t) {
return e = Array.isArray(e) ? e : [e], e = e.filter(function(e) {
return !e.trash
}), Promise.all(e.map(function(e) {
return new Promise(function(n) {
p.notes.move(e.id.toString(), t, function() {
n(e)
}), (t.parentId !== e.parentId || t.parentId === e.parentId && t.index < e.index) && t.index++
})
}))
},
getContextMenuItems: function(e) {
return e.trash ? [Object.assign({
handler: o.emptyTrash
}, m("Empty Trash")), {
name: "---"
}] : []
},
getRootContextMenuItems: function() {
return [Object.assign({
handler: this.onAdd.bind(this, !1)
}, m("New Note")), Object.assign({
handler: this.onAdd.bind(this, !0)
}, m("New Folder")), {
name: "---"
}, Object.assign({
handler: this.refs.treeList.collapseAll
}, m("Collapse All Folders")), Object.assign({
handler: this.refs.treeList.expandAll
}, m("Expand All Folders")), {
name: "---"
}, Object.assign({
items: [Object.assign({
type: "checkbox",
checked: "flat" === this.refs.treeList.getSearchStyle(),
handler: this.setSearchStyle.bind(this, "flat")
}, m("Flat Search")), Object.assign({
type: "checkbox",
checked: "tree" === this.refs.treeList.getSearchStyle(),
handler: this.setSearchStyle.bind(this, "tree")
}, m("Tree Search"))]
}, m("Settings"))]
},
getContextMenuItemProps: function(e) {
return {
showEdit: !1,
showRename: !e.trash,
showNewItem: !e.trash,
showNewFolder: !e.trash,
showCut: !e.trash,
showCopy: !e.trash,
showPaste: !e.trash,
showDelete: !e.trash,
showExpandCollapse: !0,
showSettings: !0
}
},
getContextMenuNewItemString: function() {
return m("New Note")
},
supportDropForNode: function(e, t) {
var n = l.getMimeType();
return e.dataTransfer.types.findIndex(function(e) {
return e === n
}) !== -1
},
getDragDataFromNode: function(e, t) {
return "text" === e || "title" === e ? this.isFolder(t) ? t.title : t.content : "text/uri-list" === e ? this.isFolder(t) ? "" : [t.url].join("\r\n") : ""
},
saveTitle: function(e, t) {
p.notes.update(e, {
title: t
})
},
handleMouseEnter: function(e) {
A.setStatus(e)
},
handleMouseLeave: function() {
A.clearStatus()
},
renderItemContent: function(e) {
var t = e.node,
r = 16 * (t.level + 1) + "px",
o = 16 * t.level + "px",
l = a.createElement("label", {
key: "0",
onMouseEnter: "off" === this.state.SHOW_VIVALDI_FOOTER ? null : this.handleMouseEnter.bind(this, t.url),
onMouseLeave: "off" === this.state.SHOW_VIVALDI_FOOTER ? null : this.handleMouseLeave,
__source: {
fileName: i,
lineNumber: 427
}
}, this.isFolder(t) && this.hasChildren(t) && a.createElement("span", {
className: "expand-icon",
style: {
marginLeft: o
},
onClick: this.handleExpandClick,
dangerouslySetInnerHTML: {
__html: n(311)
},
__source: {
fileName: i,
lineNumber: 433
}
}), this.isFolder(t) && a.createElement(s, {
trash: this.isTrash(t),
open: t.isExpanded,
selected: this.props.selectedFolderId === t.id,
leftMargin: this.hasChildren(t) ? 0 : r,
__source: {
fileName: i,
lineNumber: 441
}
}), !this.isFolder(t) && !t.url && a.createElement("span", {
style: {
marginLeft: r
},
className: "tree-icon",
selected: this.props.selectedFolderId === t.id,
dangerouslySetInnerHTML: {
__html: n(976)
},
__source: {
fileName: i,
lineNumber: 449
}
}), !this.isFolder(t) && !!t.url && a.createElement("span", {
style: {
marginLeft: r
},
className: "tree-icon",
dangerouslySetInnerHTML: {
__html: n(975)
},
__source: {
fileName: i,
lineNumber: 457
}
}), void 0 !== e.inlineEditText && a.createElement("input", {
ref: "input",
type: "text",
value: e.inlineEditText,
onChange: e.onChange,
onFocus: e.onFocus,
onBlur: e.onBlur,
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 464
}
}), void 0 === e.inlineEditText && a.createElement("span", {
__source: {
fileName: i,
lineNumber: 475
}
}, "" !== t.title ? t.title : t.content), this.hasChildren(t) && a.createElement("span", {
className: "folder-item-count",
__source: {
fileName: i,
lineNumber: 481
}
}, t.children.length));
return [l]
},
render: function() {
return a.createElement(h, {
ref: "treeList",
nodes: this.state.nodes,
onSelect: this.props.onItemSelected,
onItemDoubleClick: this.onItemDoubleClick,
onItemsActivated: this.onNodesActivated,
onCreate: this.onCreate,
onSearchStyleChanged: this.onSearchStyleChanged,
delete: this.delete,
onMove: this.onMove,
supportsInlineEdit: !0,
mimeType: l.getMimeType,
supportDropForItem: this.supportDropForNode,
getDragData: this.getDragDataFromNode,
isFolder: this.isFolder,
isEditable: this.isEditable,
hasChildren: this.hasChildren,
settings: "NOTES_TREE",
renderItemContent: this.renderItemContent,
getContextMenuItems: this.getContextMenuItems,
getContextMenuItemProps: this.getContextMenuItemProps,
getContextMenuNewItemString: this.getContextMenuNewItemString,
getTitle: l.getTitle,
saveTitle: this.saveTitle,
getTargetSpec: this.getTargetSpec,
isValidAddTarget: this.isValidAddTarget,
isValidDragSource: this.isValidDragSource,
isValidForClipboard: this.isValidForClipboard,
isValidToEdit: l.validateForEdit,
validateForDrag: l.validateForDrag,
validateForDeletion: l.validateForDeletion,
__source: {
fileName: i,
lineNumber: 492
}
})
}
});
e.exports = _
}, function(e, t, n) {
// =========================
// Function_644
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/page-actions/ActionItem.jsx",
a = n(1),
r = n(9),
s = a.createClass({
displayName: "ActionItem",
mixins: [r],
getInitialState: function() {
return {
name: null
}
},
onClicked: function(e) {
this.props.onItemClicked(this.props.name, e.target.checked)
},
render: function() {
return a.createElement("li", {
__source: {
fileName: i,
lineNumber: 19
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 20
}
}, a.createElement("input", {
type: "checkbox",
onChange: this.onClicked,
checked: this.props.checked,
__source: {
fileName: i,
lineNumber: 21
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 25
}
}, this.props.name)))
}
});
e.exports = s
}, function(e, t, n) {
// =========================
// Function_645
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/page-actions/PageActionChooser.jsx",
a = n(1),
r = n(9),
s = n(27),
o = n(644),
l = n(172),
c = n(231),
u = n(5),
A = n(39),
d = n(2),
h = a.createClass({
displayName: "PageActionChooser",
mixins: [A, r],
getInitialState: function() {
return Object.assign({
pageactionFiles: [],
drawerOpen: !1,
currentTarget: null
}, this.getContentScriptStoreState(this.props.pageId))
},
componentWillMount: function() {
l.addChangeListener(this._onContentScriptStoreChange)
},
componentWillUnmount: function() {
l.removeChangeListener(this._onContentScriptStoreChange)
},
componentWillReceiveProps: function(e) {
this.props.pageId !== e.pageId && this.setState(this.getContentScriptStoreState(e.pageId))
},
componentDidUpdate: function(e, t) {
t.drawerOpen === !0 && this.state.drawerOpen === !1 ? this.disableOnClickOutside() : t.drawerOpen === !1 && this.state.drawerOpen === !0 && this.enableOnClickOutside()
},
_onContentScriptStoreChange: function() {
this.setState(this.getContentScriptStoreState(this.props.pageId))
},
getContentScriptStoreState: function(e) {
return {
contentScripts: l.getContentScripts(),
pageScripts: l.getPageScripts(e)
}
},
onToggleOpenPageActions: function() {
this.setState({
drawerOpen: !this.state.drawerOpen
})
},
onItemClicked: function(e, t) {
t ? c.addContentScript(this.props.pageId, e) : c.removeContentScript(this.props.pageId, e)
},
isActive: function() {
return this.state.pageScripts !== s.Map()
},
isScriptEnabled: function(e) {
return Boolean(this.state.pageScripts.get(e))
},
handleClickOutside: function(e) {
this.setState({
drawerOpen: !1
})
},
render: function() {
var e = this;
return a.createElement("span", {
className: "pageactions",
title: d("Page Actions"),
ref: "pageactions",
__source: {
fileName: i,
lineNumber: 82
}
}, a.createElement("button", {
className: u("button-toolbar-small", "page-action", {
disabled: this.props.disabled,
active: this.state.drawerOpen,
attention: this.isActive()
}),
tabIndex: this.props.keyAccess,
onClick: this.onToggleOpenPageActions,
disabled: this.props.disabled,
dangerouslySetInnerHTML: {
__html: n(1010)
},
__source: {
fileName: i,
lineNumber: 86
}
}), this.state.drawerOpen && a.createElement("div", {
className: "callout",
__source: {
fileName: i,
lineNumber: 100
}
}, a.createElement("header", {
__source: {
fileName: i,
lineNumber: 102
}
}, a.createElement("h2", {
__source: {
fileName: i,
lineNumber: 103
}
}, d("Page Actions"))), a.createElement("ul", {
style: {
maxHeight: window.innerHeight - 150 + "px"
},
__source: {
fileName: i,
lineNumber: 105
}
}, this.state.contentScripts.map(function(t, n) {
return a.createElement(o, {
index: n,
key: n,
checked: e.isScriptEnabled(t.get("name")),
name: t.get("name"),
onItemClicked: e.onItemClicked,
__source: {
fileName: i,
lineNumber: 107
}
})
}))))
}
});
e.exports = h
}, function(e, t, n) {
// =========================
// Function_646
// =========================
"use strict";
function i() {
return {
selectedPanel: N.getSelectedPanel(),
panelWidth: N.getPanelWidth(),
panelButtonsVisible: N.getPanelButtonsVisible(),
panelSwitchVisible: N.getPanelSwitchVisible(),
panelContentVisible: N.getPanelContentVisible(),
focusContent: N.getFocusContent(),
isMailWindow: N.getIsMailWindow(),
regPanels: N.getRegPanels(),
webPanels: N.getWebPanels()
}
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/panels/panel.jsx",
r = n(1),
s = n(11),
o = n(520),
l = o.VelocityComponent,
c = n(9),
u = n(741),
A = n(566),
d = n(583),
h = n(596),
m = n(133),
p = n(245),
f = n(25),
g = n(66),
_ = n(50),
v = n(642),
b = n(131),
N = n(58),
E = n(391),
S = n(134),
T = n(132),
y = n(742),
C = n(612),
I = n(242),
O = n(2),
w = n(30),
D = n(395),
k = n(5),
M = n(26),
L = n(42),
P = L.ALL_MESSAGES_ACCOUNT_ID,
R = n(74),
x = 220,
B = 34,
U = "MacIntel" === navigator.platform ? 6 : 10,
F = .618,
H = ["WEB_PANEL_UI", "KEY_ACCESS", "TAB_COUNTER_DETECTION", "TAB_POSITION", "USE_ANIMATION", "DOWNLOAD_NOTIFICATIONS"],
V = r.createClass({
displayName: "Panel",
mixins: [c],
getInitialState: function() {
return Object.assign({
resizing: !1,
downloadItems: 0,
downloadProgress: 0,
webPanelData: []
}, i())
},
_onStoreChange: function() {
var e = i();
this.state.panelWidth !== e.panelWidth && this.freezeWebview();
var t = e.webPanels.length === this.state.webPanelData.length && this.state.selectedPanel === e.selectedPanel ? void 0 : e.selectedPanel;
this.setupWebPanelData(e.webPanels, t), this.setState(e)
},
componentWillMount: function() {
N.addChangeListener(this._onStoreChange), E.addChangeListener(this._onSearchListStoreChange)
},
componentWillUnmount: function() {
N.removeChangeListener(this._onStoreChange), E.removeChangeListener(this._onSearchListStoreChange)
},
_onSearchListStoreChange: function() {
var e = E.getCounters()[P];
this.setState({
unreadEmails: e ? e.unread : void 0
})
},
setSelected: function(e) {
b.toggleContent(e)
},
isWebPanelSelected: function() {
var e;
if (this.state.selectedPanel) {
var t = I.getPanelPrefix();
e = this.state.selectedPanel.substr(0, t.length) === t
}
return e
},
handleDoubleClick: function() {
this.handlePanelSwitch()
},
onSlidebarPosition: function(e, t) {
var n = s.findDOMNode(this.refs.panelsContainer).getBoundingClientRect(),
i = void 0;
switch (this.props.position) {
case "left":
i = e - n.left;
break;
case "right":
i = n.right - e;
break;
default:
throw new Error("Unknown tabbar position")
}
b.setWidth(this.state.selectedPanel, this.limitPanelWidth(i))
},
limitPanelWidth: function(e) {
var t = x,
n = window.innerWidth * F;
return Math.min(Math.max(e, t), n) || t
},
handlePanelSwitch: function() {
b.togglePanel()
},
showPanelIfHidden: function() {
this.state.panelContentVisible || this.handlePanelSwitch()
},
showPanelSettings: function() {
_.showSettings()
},
transfersUpdated: function(e, t) {
"number" != typeof t && (t = 0), this.setState({
downloadItems: e,
downloadProgress: t
})
},
getWebPanelDataById: function(e) {
for (var t = 0; t < this.state.webPanelData.length; t++) {
var n = this.state.webPanelData[t];
if (n.id === e) return n
}
return null
},
setupWebPanelData: function(e, t) {
if (this.state.webPanelData.length !== e.length || void 0 !== t) {
for (var n = [], i = 0; i < e.length; i++) {
var a = e[i],
r = this.getWebPanelDataById(a.id);
r ? (r.hasBeenActive !== !0 && a.id === t && (r.hasBeenActive = !0), n.push(r)) : n.push({
id: a.id,
title: "",
faviconUrl: I.getFaviconPrefix() + a.contentUrl,
hasBeenActive: a.id === t
})
}
this.setState({
webPanelData: n
})
}
},
isPanelOpen: function(e) {
return this.state.panelContentVisible && this.state.selectedPanel === e
},
isPanelAvailable: function(e) {
for (var t = this.state.regPanels, n = 0; n < t.length; n++)
if (t[n].id === e) return t[n].available !== !1;
t = this.state.webPanels;
for (var i = 0; i < t.length; i++)
if (t[i].id === e) return t[i].available !== !1;
return !1
},
setWebPanelResource: function(e, t, n) {
this.setupWebPanelData(this.state.webPanels, void 0);
for (var i = -1, a = 0; a < this.state.webPanelData.length; a++) {
var r = this.state.webPanelData[a];
if (r.id === e) {
"title" === t && r.title !== n ? i = a : "faviconUrl" === t && r.faviconUrl !== n ? i = a : "activeUrl" === t && r.activeUrl !== n && (i = a);
break
}
}
if (i !== -1) {
var s = [];
for (a = 0; a < this.state.webPanelData.length; a++) {
var o = this.state.webPanelData[a];
a === i && ("title" === t ? o.title = n : "faviconUrl" === t ? o.faviconUrl = n : "activeUrl" === t && (o.activeUrl = n)), s.push(o)
}
this.setState({
webPanelData: s
}), "title" === t ? I.setTitle(e, n) : "activeUrl" === t && I.setActiveUrl(e, n)
}
},
getPanelButtonMenu: function(e) {
var t = N.getResizableByPanel(e);
return [Object.assign({
type: "checkbox",
handler: b.setPanelResizable.bind(b, e, !t),
checked: t
}, w("Separate Width")), {
name: "---"
}, Object.assign({
items: this.getPanelSelectorMenu()
}, w("Panels"))]
},
getWebPanelButtonMenu: function(e) {
var t = N.getResizableByPanel(e.id);
return [Object.assign({
items: this.getOpenInPageMenu(e)
}, w("Open in...")), Object.assign({
handler: I.copyWebPanelAdress.bind(I, e.id)
}, w("Copy Web Panel Address")), {
name: "---"
}, Object.assign({
handler: I.setMobileMode.bind(I, e.id, !0),
visible: !Boolean(e.mobileMode === !0)
}, w("Show Mobile Version")), Object.assign({
handler: I.setMobileMode.bind(I, e.id, !1),
visible: Boolean(e.mobileMode === !0)
}, w("Show Desktop Version")), Object.assign({
type: "checkbox",
handler: b.setPanelResizable.bind(b, e.id, !t),
checked: t
}, w("Separate Width")), Object.assign({
items: this.getWebPanelContentMenu(e)
}, w("Toolbar")), {
name: "---"
}, Object.assign({
items: this.getPanelSelectorMenu()
}, w("Panels")), {
name: "---"
}, Object.assign({
handler: I.removeById.bind(I, e.id)
}, w("Remove Web Panel"))]
},
getPanelSelectorMenu: function() {
var e = [Object.assign({
handler: this.handlePanelSelector.bind(this, N.getBookmarkName()),
type: "checkbox",
checked: this.isPanelAvailable(N.getBookmarkName())
}, w("Bookmarks"))];
this.state.isMailWindow && (e = e.concat([Object.assign({
handler: this.handlePanelSelector.bind(this, N.getMailName()),
type: "checkbox",
checked: this.isPanelAvailable(N.getMailName())
}, w("Mail")), Object.assign({
handler: this.handlePanelSelector.bind(this, N.getContactName()),
type: "checkbox",
checked: this.isPanelAvailable(N.getContactName())
}, w("Contacts"))])), e = e.concat([Object.assign({
handler: this.handlePanelSelector.bind(this, N.getDownloadName()),
type: "checkbox",
checked: this.isPanelAvailable(N.getDownloadName())
}, w("Downloads")), Object.assign({
handler: this.handlePanelSelector.bind(this, N.getNotesName()),
type: "checkbox",
checked: this.isPanelAvailable(N.getNotesName())
}, w("Notes")), Object.assign({
handler: this.handlePanelSelector.bind(this, N.getHistoryName()),
type: "checkbox",
checked: this.isPanelAvailable(N.getHistoryName()),
visible: R.isEnabled(R.kNewHistoryPage)
}, w("History"))]);
var t = this.state.webPanels;
if (t && t.length > 0) {
e.push({
name: "---"
});
for (var n = 0; n < t.length; n++) {
var i = t[n];
e.push({
name: i.title || i.contentUrl || O("Unknown Web Panel"),
mnemonic: !1,
handler: this.handlePanelSelector.bind(this, i.id),
type: "checkbox",
checked: this.isPanelAvailable(i.id)
})
}
}
return e
},
getOpenInPageMenu: function(e) {
return [Object.assign({
handler: I.openInTab.bind(I, e.id, !0, !1)
}, w("Current Tab")), Object.assign({
handler: I.openInTab.bind(I, e.id, !1, !1)
}, w("open in", "New Tab")), Object.assign({
handler: I.openInTab.bind(I, e.id, !1, !0)
}, w("Background Tab")), {
name: "---"
}, Object.assign({
handler: I.openInWindow.bind(I, e.id, !1, !1)
}, w("open in", "New Window")), Object.assign({
handler: I.openInWindow.bind(I, e.id, !0, !1)
}, w("Background Window")), Object.assign({
handler: I.openInWindow.bind(I, e.id, !1, !0)
}, w("Private Window"))]
},
getWebPanelContentMenu: function(e) {
var t = this.props.vivaldiSettings.WEB_PANEL_UI;
return [Object.assign({
handler: I.setUIContent.bind(I, {
showToolbar: !0
}),
visible: !Boolean(t.showToolbar === !0)
}, w("Show")), Object.assign({
handler: I.setUIContent.bind(I, {
showToolbar: !1
}),
visible: Boolean(t.showToolbar === !0)
}, w("Hide")), Object.assign({
handler: I.setUIContent.bind(I, {
allControls: !t.allControls,
showToolbar: t.showToolbar || !t.allControls
}),
type: "checkbox",
checked: t.allControls
}, w("Display All Controls"))]
},
handlePanelSelector: function(e) {
var t = this.isPanelAvailable(e);
t ? (this.isPanelOpen(e) && (N.getAvailablePanelCount() > 1 ? N.getLastAvailablePanel() === e ? b.showNextPanel("previous") : b.showNextPanel("next") : b.setContentVisible(!1)), b.setAvailable(e, !1)) : (b.setAvailable(e, !0), b.toggleContent(e))
},
hideToolTip: function() {
T.clearTooltip()
},
handleWebPanelButtonUp: function(e, t) {
1 === t.button && 0 === t.buttons && this.handleWebPanelButtonClick(e, t)
},
handleWebPanelButtonClick: function(e, t) {
1 === t.button ? I.openInTab(e, !1, !0) : this.setSelected(e)
},
hadleSliderDown: function() {
this.setState({
resizing: !0
}), this.freezeWebview()
},
hadleSliderUp: function() {
this.setState({
resizing: !1
}), this.thawWebview()
},
freezeWebview: function() {
var e = document.getElementById("webview-container"),
t = document.querySelector("#main .inner"),
n = e.clientWidth.toString() + "px";
e.style.setProperty("flex", "0 0 " + n), ("right" === this.props.vivaldiSettings.TAB_POSITION && "left" === this.props.position || "left" === this.props.vivaldiSettings.TAB_POSITION && "right" === this.props.position) && t.classList.add("anchor-tabs"), "right" === this.props.position && t.classList.add("justify-end")
},
thawWebview: function() {
var e = document.getElementById("webview-container");
if (e.style.setProperty("flex", "1 1 100%"), "right" === this.props.vivaldiSettings.TAB_POSITION || "left" === this.props.vivaldiSettings.TAB_POSITION || "right" === this.props.position) {
var t = document.querySelector("#main .inner");
t.classList.remove("anchor-tabs", "justify-end")
}
},
renderWebPanel: function(e) {
var t = this.state.webPanels[e],
n = this.state.panelContentVisible && this.state.selectedPanel === t.id;
return r.createElement(y, {
key: t.id,
isVisible: n,
focusContent: this.state.focusContent && n,
id: t.id,
src: t.contentUrl,
mobileMode: t.mobileMode === !0,
ref: t.id,
panelUI: this.props.vivaldiSettings.WEB_PANEL_UI,
setWebPanelResource: this.setWebPanelResource,
__source: {
fileName: a,
lineNumber: 527
}
})
},
renderAllWebPanels: function() {
var e = [],
t = this.state.webPanels,
n = this.state.webPanelData;
if (n.length !== t.length) return e;
if (t)
for (var i = 0; i < t.length; i++) t[i].available !== !1 && n[i].hasBeenActive === !0 && e.push(this.renderWebPanel(i));
return e
},
renderWebPanelButton: function(e) {
var t, n, i = this.state.webPanels[e],
s = k({
webviewbtn: !0,
active: this.state.selectedPanel === i.id && this.state.panelContentVisible === !0
});
if (this.state.webPanelData && this.state.webPanelData.length > e) {
var o = this.state.webPanelData[e];
t = o.title, t.length > 0 && (t += "\n"), n = o.faviconUrl
}
var l = D(t, i.activeUrl, 9);
return t += i.contentUrl, r.createElement("button", {
key: "button_" + i.id,
title: t,
className: s,
tabIndex: this.props.vivaldiSettings.KEY_ACCESS,
onContextMenu: M(this.getWebPanelButtonMenu.bind(this, i), this.hideToolTip),
onMouseUp: this.handleWebPanelButtonUp.bind(this, i.id),
onClick: this.handleWebPanelButtonClick.bind(this, i.id),
__source: {
fileName: a,
lineNumber: 583
}
}, this.props.vivaldiSettings.TAB_COUNTER_DETECTION && l && r.createElement("span", {
className: "button-badge",
__source: {
fileName: a,
lineNumber: 594
}
}, l), r.createElement("img", {
src: n,
alt: "",
__source: {
fileName: a,
lineNumber: 598
}
}))
},
renderAllWebPanelButtons: function() {
var e = [],
t = this.state.webPanels;
if (t)
for (var n = 0; n < t.length; n++) t[n].available !== !1 && e.push(this.renderWebPanelButton(n));
return e
},
render: function() {
var e = this.state.panelWidth,
t = this.props.vivaldiSettings,
i = t.KEY_ACCESS,
s = t.DOWNLOAD_NOTIFICATIONS,
o = t.USE_ANIMATION,
c = k({
bookmarks: !0,
active: this.state.selectedPanel === N.getBookmarkName() && this.state.panelContentVisible === !0
}),
f = k({
contacts: !0,
active: this.state.selectedPanel === N.getContactName() && this.state.panelContentVisible === !0
}),
_ = k({
mail: !0,
active: this.state.selectedPanel === N.getMailName() && this.state.panelContentVisible === !0
}),
b = k({
downloads: !0,
"in-progress": this.state.downloadItems > 0,
active: this.state.selectedPanel === N.getDownloadName() && this.state.panelContentVisible === !0
}),
E = k({
notes: !0,
active: this.state.selectedPanel === N.getNotesName() && this.state.panelContentVisible === !0
}),
T = k({
history: !0,
active: this.state.selectedPanel === N.getHistoryName() && this.state.panelContentVisible === !0
}),
y = {
left: "left" === this.props.position,
right: "right" === this.props.position,
button: this.state.panelSwitchVisible,
switcher: e <= U,
icons: e > U && e <= 40
},
w = k(y),
D = "right" === this.props.position && e > U || "left" === this.props.position && e <= U ? "0 0 0 8 4 4" : "4 0 4 8 0 4",
L = O("Downloads"),
P = this.state.downloadItems;
return P > 0 && (L = L + " " + O("($1 active transfer)", "($1 active transfers)", [this.state.downloadItems])), r.createElement(l, {
animation: {
width: e
},
duration: o ? 100 : 0,
mock: this.state.resizing,
complete: this.state.resizing ? null : this.thawWebview,
__source: {
fileName: a,
lineNumber: 676
}
}, r.createElement(m, {
focusName: "focus_panel",
id: "panels-container",
ref: "panelsContainer",
className: w,
__source: {
fileName: a,
lineNumber: 681
}
}, r.createElement("div", {
id: "panels",
__source: {
fileName: a,
lineNumber: 686
}
}, this.state.panelSwitchVisible && r.createElement("div", {
id: "panel_switch",
title: O(this.state.panelButtonsVisible ? "Hide Panel" : "Show Panel"),
className: e <= U ? "on" : "off",
onClick: this.handlePanelSwitch,
__source: {
fileName: a,
lineNumber: 688
}
}, r.createElement("svg", {
version: "1.1",
xmlns: "http://www.w3.org/2000/svg",
width: "4px",
height: "8px",
viewBox: "0 0 4 8",
__source: {
fileName: a,
lineNumber: 694
}
}, r.createElement("polygon", {
points: D,
__source: {
fileName: a,
lineNumber: 696
}
}))), r.createElement("div", {
id: "switch",
onContextMenu: M(this.getPanelSelectorMenu, this.hideToolTip),
__source: {
fileName: a,
lineNumber: 700
}
}, this.isPanelAvailable(N.getBookmarkName()) ? r.createElement("button", {
title: O("Bookmarks"),
className: c,
tabIndex: i,
onContextMenu: M(this.getPanelButtonMenu.bind(this, N.getBookmarkName()), this.hideToolTip),
onClick: this.setSelected.bind(this, N.getBookmarkName()),
dangerouslySetInnerHTML: {
__html: n(979)
},
__source: {
fileName: a,
lineNumber: 704
}
}) : null, this.isPanelAvailable(N.getMailName()) && this.state.isMailWindow ? r.createElement("button", {
title: O("Mail"),
className: _,
tabIndex: i,
onContextMenu: M(this.getPanelButtonMenu.bind(this, N.getMailName()), this.hideToolTip),
onClick: this.setSelected.bind(this, N.getMailName()),
__source: {
fileName: a,
lineNumber: 720
}
}, r.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(471)
},
__source: {
fileName: a,
lineNumber: 728
}
}), this.state.unreadEmails > 0 && r.createElement("span", {
className: "button-badge",
__source: {
fileName: a,
lineNumber: 731
}
}, this.state.unreadEmails)) : null, this.isPanelAvailable(N.getContactName()) && this.state.isMailWindow ? r.createElement("button", {
title: O("Contacts"),
className: f,
tabIndex: i,
onContextMenu: M(this.getPanelButtonMenu.bind(this, N.getContactName()), this.hideToolTip),
onClick: this.setSelected.bind(this, N.getContactName()),
dangerouslySetInnerHTML: {
__html: n(980)
},
__source: {
fileName: a,
lineNumber: 740
}
}) : null, this.isPanelAvailable(N.getDownloadName()) ? r.createElement("button", {
title: L,
className: b,
tabIndex: i,
onContextMenu: M(this.getPanelButtonMenu.bind(this, N.getDownloadName()), this.hideToolTip),
onClick: this.setSelected.bind(this, N.getDownloadName()),
__source: {
fileName: a,
lineNumber: 754
}
}, r.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(981)
},
__source: {
fileName: a,
lineNumber: 763
}
}), r.createElement("div", {
className: "progress",
__source: {
fileName: a,
lineNumber: 765
}
}, r.createElement("div", {
className: "loaded",
style: {
width: this.state.downloadProgress + "%"
},
__source: {
fileName: a,
lineNumber: 766
}
}))) : null, this.isPanelAvailable(N.getNotesName()) ? r.createElement("button", {
title: O("Notes"),
className: E,
tabIndex: i,
onContextMenu: M(this.getPanelButtonMenu.bind(this, N.getNotesName()), this.hideToolTip),
onClick: this.setSelected.bind(this, N.getNotesName()),
dangerouslySetInnerHTML: {
__html: n(983)
},
__source: {
fileName: a,
lineNumber: 773
}
}) : null, R.isEnabled(R.kNewHistoryPage) && this.isPanelAvailable(N.getHistoryName()) ? r.createElement("button", {
title: O("History"),
className: T,
tabIndex: i,
onClick: this.setSelected.bind(this, N.getHistoryName()),
onDoubleClick: this.setSelected.bind(this, N.getHistoryName()),
dangerouslySetInnerHTML: {
__html: n(982)
},
__source: {
fileName: a,
lineNumber: 789
}
}) : null, this.renderAllWebPanelButtons(), r.createElement(u, {
addNew: I.addByUrl,
keyAccess: i,
__source: {
fileName: a,
lineNumber: 801
}
}), r.createElement("button", {
title: O("Settings"),
className: "preferences",
tabIndex: i,
onClick: this.showPanelSettings,
dangerouslySetInnerHTML: {
__html: n(984)
},
__source: {
fileName: a,
lineNumber: 805
}
})), r.createElement("div", {
className: "panel-group",
__source: {
fileName: a,
lineNumber: 813
}
}, r.createElement("div", {
style: {
display: "flex",
flex: 1,
minWidth: this.state.resizing ? "auto" : e - 1 - (B + (this.state.panelSwitchVisible ? U : 0))
},
__source: {
fileName: a,
lineNumber: 814
}
}, r.createElement(A, {
key: "panel-bookmarks",
keyAccess: i,
open: this.isPanelOpen(N.getBookmarkName()),
__source: {
fileName: a,
lineNumber: 819
}
}), this.state.isMailWindow ? r.createElement(g, {
key: "panel-mail",
keyAccess: i,
open: this.isPanelOpen(N.getMailName()),
__source: {
fileName: a,
lineNumber: 824
}
}) : null, this.state.isMailWindow ? r.createElement(d, {
key: "panel-contacts",
keyAccess: i,
open: this.isPanelOpen(N.getContactName()),
__source: {
fileName: a,
lineNumber: 830
}
}) : null, r.createElement(h, {
key: "panel-downloads",
keyAccess: i,
notifications: s,
open: this.isPanelOpen(N.getDownloadName()),
onTransfersUpdated: this.transfersUpdated,
__source: {
fileName: a,
lineNumber: 834
}
}), r.createElement(v, {
key: "panel-notes",
keyAccess: i,
open: this.isPanelOpen(N.getNotesName()),
__source: {
fileName: a,
lineNumber: 841
}
}), R.isEnabled(R.kNewHistoryPage) ? r.createElement(C, {
key: "panel-history",
keyAccess: this.state.KEY_ACCESS,
open: this.isPanelOpen(N.getHistoryName()),
page: {
id: p.getPanelResourceKey()
},
__source: {
fileName: a,
lineNumber: 847
}
}) : null, r.createElement("div", {
className: this.state.selectedPanel && this.isWebPanelSelected() ? "webpanel-stack" : "webpanel-stack hidden",
__source: {
fileName: a,
lineNumber: 853
}
}, this.renderAllWebPanels())))), r.createElement(S, {
onSlidebarPosition: this.onSlidebarPosition,
onStart: this.hadleSliderDown,
onStop: this.hadleSliderUp,
onDoubleClick: this.handleDoubleClick,
position: this.props.position,
__source: {
fileName: a,
lineNumber: 862
}
})))
}
});
e.exports = f(V, H)
}, function(e, t, n) {
// =========================
// Function_647
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/progress/PageloadProgress.jsx",
a = n(1),
r = n(9),
s = n(112),
o = n(25),
l = n(87),
c = n(183),
u = n(5),
A = {
bytes: 0,
bytesDisplayed: 0,
currentPageId: null,
elLoaded: 0,
elLoadedDisplayed: 0,
elTotal: 0,
isProgressing: !1,
isStarted: !1,
progress: 0,
stopped: !1
},
d = ["USE_ANIMATION", "ADDRESS_BAR_SHOW_PROGRESS"],
h = void 0,
m = a.createClass({
displayName: "PageloadProgress",
mixins: [r],
getInitialState: function() {
return A
},
componentWillMount: function() {
s.addChangeListener(this._onNavigationStoreChanged), l.addChangeListener(this._onWebpageviewStoreChanged)
},
componentWillUnmount: function() {
s.removeChangeListener(this._onNavigationStoreChanged), l.removeChangeListener(this._onWebpageviewStoreChanged)
},
componentWillReceiveProps: function(e) {
var t = e.page;
if (void 0 !== t && t.get("id") !== this.state.currentPageId) {
var n = s.getProgressInfo(t),
i = n.get("progress"),
a = n.get("loadedBytes"),
r = n.get("loadedElements"),
o = n.get("totalElements");
0 === i || 1 === i || void 0 === i ? this.setState(Object.assign({}, A, {
currentPageId: t.get("id")
})) : this.setState(Object.assign({}, A, {
currentPageId: t.get("id"),
progress: i,
bytes: a,
elLoaded: r,
elTotal: o
}))
}
},
_onNavigationStoreChanged: function() {
var e = this.props.page,
t = s.getProgressInfo(e),
n = t.get("progress"),
i = s.getNavigationInfo(e).get("trigger"),
a = t.get("loadedBytes"),
r = t.get("loadedElements"),
o = t.get("totalElements");
"start" === i ? this.setState(Object.assign({}, A, {
currentPageId: e.get("id"),
isProgressing: !0,
isStarted: !0
})) : "stop" === i ? this.setState(Object.assign({
isProgressing: !1
}, this.state.stopped && {} || {
progress: 1
})) : "commit" !== i || this.state.stopped || (this.setState({
bytes: a,
elLoaded: r,
elTotal: o,
isProgressing: !0,
isStarted: !0,
progress: n
}), this.updateCount())
},
_onWebpageviewStoreChanged: function(e) {
"PAGE_STOP" === e.type && 1 !== this.state.progress && this.setState({
isProgressing: !1,
stopped: !0
})
},
getIncrement: function(e, t) {
var n = t - e,
i = 0;
return n > 10 ? i = Math.floor(n / 5) : n > 4 ? i = 2 : n > 0 && (i = 1), e + i
},
updateCount: function() {
if (clearTimeout(h), this.isMounted()) {
var e = this.state.bytes,
t = this.state.bytesDisplayed,
n = this.state.elLoadedDisplayed,
i = this.state.elLoaded;
1 === this.state.progress && i < this.state.elTotal && (i = this.state.elTotal);
var a = this.getIncrement(t, e),
r = this.getIncrement(n, i);
if (this.props.vivaldiSettings.USE_ANIMATION === !1) return this.setState({
elLoadedDisplayed: i,
bytesDisplayed: e
}), !1;
i > n && this.setState({
elLoadedDisplayed: r
}), e > t && this.setState({
bytesDisplayed: a
}), !this.state.stopped && (i > r || e > a) && (h = setTimeout(this.updateCount, 80))
}
},
render: function() {
var e = this.state.progress,
t = this.state.bytesDisplayed,
n = this.state.elLoadedDisplayed,
r = this.state.elTotal,
s = this.state.isProgressing,
o = t > 1048576 ? 1 : 0,
l = this.state.isStarted,
A = this.state.stopped === !0,
d = u({
pageload: !0,
unstarted: !l,
progressing: s,
"progress-done": 1 === e || A,
stopped: A
});
return !!this.props.open && a.createElement("div", {
className: d,
__source: {
fileName: i,
lineNumber: 199
}
}, this.props.vivaldiSettings.ADDRESS_BAR_SHOW_PROGRESS && a.createElement("progress", {
className: "pageload-indicator",
value: 100 * this.state.progress,
max: 100,
__source: {
fileName: i,
lineNumber: 201
}
}), a.createElement("div", {
className: "pageload-ticker",
__source: {
fileName: i,
lineNumber: 206
}
}, c.filesize(t, 1024, o)), a.createElement("div", {
className: "pageload-ticker",
__source: {
fileName: i,
lineNumber: 209
}
}, n + "/" + r))
}
});
e.exports = o(m, d)
}, function(e, t, n) {
// =========================
// Function_648
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/progress/progress_indicator.jsx",
r = n(1),
s = i(r),
o = {
bar: function(e) {
return e === -1 && s.default.createElement("progress", {
__source: {
fileName: a,
lineNumber: 5
}
}) || s.default.createElement("progress", {
value: e,
max: "100",
__source: {
fileName: a,
lineNumber: 6
}
})
},
circular: function(e) {
return s.default.createElement("progress", {
value: e,
max: "100",
__source: {
fileName: a,
lineNumber: 7
}
})
},
text: function(e) {
return s.default.createElement("i", {
__source: {
fileName: a,
lineNumber: 8
}
}, e, " % ")
}
};
t.default = function(e) {
var t = e.currentSize,
n = e.totalSize,
i = e.type,
a = e.overridePercent;
return "function" == typeof o[i] && o[i](a !== -1 && a || n && t / n * 100 || -1)
}
}, function(e, t, n) {
// =========================
// Function_649
// =========================
(function(t) {
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/searchfield/searchfield.jsx",
r = n(55),
s = i(r),
o = n(88),
l = i(o),
c = n(1),
u = n(11),
A = n(40),
d = n(25),
h = n(37),
m = n(380),
p = n(379).OmniNavigation,
f = n(39),
g = n(232),
_ = n(390),
v = n(349),
b = n(248),
N = n(134),
E = n(171),
S = n(6),
T = n(570),
y = n(3),
C = n(87),
I = n(2),
O = n(5),
w = n(7),
D = 800,
k = 175,
M = n(9),
L = [],
P = w.throttle(function(e, t) {
var n = v.suggest(e, t);
L = w.takeRight(L.concat(n), 10)
}, 500, {
leading: !1
}),
R = ["SEARCH_FIELD_TYPED_HISTORY_ENABLED", "SEARCH_FIELD_WIDTH"],
x = c.createClass({
displayName: "SearchField",
mixins: [M, f],
propTypes: {
currentSearchEngine: c.PropTypes.object,
defaultSearchEngineId: c.PropTypes.string,
openInNewTab: c.PropTypes.bool,
searchEngines: c.PropTypes.array,
settings: c.PropTypes.object
},
getInitialState: function() {
return {
focused: !1,
isOmniDropdownOpen: !1,
results: [],
searchSuggestionStore: [],
showAll: !1,
typedHistoryStore: [],
typedHistoryStoreFiltered: []
}
},
componentWillMount: function() {
_.addChangeListener(this.onSearchFieldStoreChanged), b.addChangeListener(this._onSearchSuggestionsChanged), C.addChangeListener(this._onWebpageviewStoreChanged)
},
componentWillUnmount: function() {
_.removeChangeListener(this.onSearchFieldStoreChanged), b.removeChangeListener(this._onSearchSuggestionsChanged), C.removeChangeListener(this._onWebpageviewStoreChanged)
},
_onWebpageviewStoreChanged: function(e) {
var n = this;
e.type === S.WEBPAGEVIEW_ACTIONS && ("searchPasteAndGo" === e.action ? t.nextTick(function() {
return n._pasteAndGo(e.modifiers)
}) : "focusSearchField" === e.action && this.focusField())
},
_pasteAndGo: function(e) {
document.execCommand("paste"), this._search({
target: this.refs.search,
ctrlKey: e.ctrlKey,
altKey: e.altKey,
shiftKey: e.shiftKey
}, !0)
},
_onSearchSuggestionsChanged: function(e) {
var t = this,
n = e.suggestions,
i = e.query,
a = e.uid;
if (!(document.activeElement !== this.refs.search || !L.includes(a) || this.refs.searchEngines && this.refs.searchEngines.isExpanded())) {
var r = n.map(function(e) {
return {
id: e,
url: e,
type: E.OMNI_RESULT_SUGGEST
}
});
this.state.editText && i && (this.state.editText.startsWith(i) || i.startsWith(this.state.editText)) && this.setState({
results: r.concat(this.state.typedHistoryStoreFiltered),
searchSuggestionStore: r
}, function() {
return t._showDropdown()
})
}
},
onSearchFieldStoreChanged: function(e) {
var t = _.getSearchText(this.props.page),
n = (_.getTypedSearchHistory() || []).map(function(e) {
return Object.assign({}, e, {
type: E.OMNI_RESULT_TYPED_HISTORY_SEARCH
})
}),
i = t.trim() && n.filter(function(e) {
return e.url.toLowerCase().startsWith(t.toLowerCase())
}) || [],
a = this.state.searchSuggestionStore.concat(i);
!this.state.isOmniDropdownOpen && (this.state.showAll || a.length > 0) ? this.refs.search === document.activeElement && this._showDropdown() : this.state.isOmniDropdownOpen && !this.state.showAll && a.length < 1 && this._hideDropdown(), this.setState({
editText: t,
results: a,
typedHistoryStore: n,
typedHistoryStoreFiltered: i
})
},
_getDefaultSearchEngine: function() {
return w.find(this.props.searchEngines, {
Id: parseInt(this.props.defaultSearchEngineId)
})
},
_search: function(e, t) {
var n = e.target,
i = e.altKey,
a = e.shiftKey,
r = e.ctrlKey;
P.cancel && P.cancel(), this._hideDropdown(), document.activeElement === this.refs.search && this.refs.search.blur(), L = [], g.setState(this.props.page, {
editText: n.value
});
var s = {
addTypedSearchHistory: !0,
inCurrent: this.props.openInNewTab !== !0
};
if (t === !0)(e.ctrlKey || e.altKey || e.shiftKey) && Object.assign(s, A.getOpenOptionsFromEvent(e));
else {
var o = a && "shift" === this.props.openShortcutModifier || i && "alt" === this.props.openShortcutModifier;
o && (s.inCurrent = !1, s.inBackground = r)
}
n.value && n.value.length > 0 && this.props.onEnterPressed(n.value, this.props.currentSearchEngine && this.props.currentSearchEngine.Url || this._getDefaultSearchEngine().Url, s)
},
onKeyDowned: function(e) {
var t = e.key,
n = e.shiftKey;
("ArrowDown" === t && n || "Enter" === t && (0, l.default)(e)) && this.onKeyPressed(e)
},
onKeyPressed: function(e) {
var t = e.key,
n = e.shiftKey;
"Enter" === t ? (P.cancel && P.cancel(), this._search(e)) : n && "ArrowDown" === t ? this.state.typedHistoryStore.length > 0 && this.props.settings.SEARCH_FIELD_TYPED_HISTORY_ENABLED && this._showDropdown({
showAll: !0
}) : "Tab" === t && this._hideDropdown()
},
onSearchEngineChanged: function(e) {
this.refs.search.select();
var t = w.find(this.props.searchEngines, {
Id: e
}),
n = this.refs.search.value;
if (n.length > 0) {
var i = {
addTypedSearchHistory: !0,
inCurrent: this.props.openInNewTab !== !0
};
this.props.onEnterPressed(n, t.Url, i)
}
g.setState(this.props.page, {
searchEngine: t
}), this.setState({
searchSuggestionStore: []
})
},
onTypedSearchHistoryClicked: function(e) {
g.setState(this.props.page, {
editText: e
});
var t = this.props.currentSearchEngine && this.props.currentSearchEngine.Url || "";
if (!t) {
var n = w.find(this.props.searchEngines, {
Id: parseInt(this.props.defaultSearchEngineId)
});
t = n.Url
}
t && this.props.onEnterPressed(e, t)
},
onTypedSearchHistoryDeleted: function(e) {
g.deleteTypedSearchHistory(e)
},
_showDropdown: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
if (this._isPasting !== !0) {
var t = e.showAll;
"boolean" != typeof t && (t = !1);
var n = {
showAll: t
};
this.state.isOmniDropdownOpen !== !0 && (n.isOmniDropdownOpen = !0), this.setState(n)
}
},
_hideDropdown: function() {
this.state.isOmniDropdownOpen !== !1 && this.setState({
isOmniDropdownOpen: !1,
showAll: !1,
searchSuggestionStore: []
})
},
getDropdown: function() {
return this.refs.omniDropdown
},
getSelectionIndex: function() {
return this.state.dropdownSelectionIndex
},
setAutocompleteHighlight: function(e, t) {
if (this.setState({
dropdownSelectionIndex: e
}), this.refs.omniDropdown && (this.selIndex = e, t)) {
var n = this.refs.omniDropdown.getCurrentValue();
"" !== n && (u.findDOMNode(this.refs.search).value = n)
}
return !1
},
_esc: function() {
this.state.isOmniDropdownOpen === !0 ? this._hideDropdown() : this.state.editText ? g.setState(this.props.page, {
editText: ""
}) : s.default.doAction("focusWebView")
},
_onDelete: function() {
var e = this.refs.omniDropdown.deleteCurrentItem;
"function" == typeof e && e()
},
_initializeNavigation: function() {
var e = this;
this._isNavigationInitialized !== !0 && ! function() {
var t = new p(e, e._onOmniSaved);
e._up = t.up.bind(t), e._down = function(n) {
return e.state.isOmniDropdownOpen === !0 ? t.down.apply(t, n) : void e.refs.searchEngines.expand()
}, e._pageUp = t.pageUp.bind(t), e._pageDown = t.pageDown.bind(t), h.bind("up", e._up), h.bind("down", e._down), h.bind("pageup", e._pageUp), h.bind("pagedown", e._pageDown), h.bind("esc", e._esc), h.bind("shift+del", e._onDelete), e._isNavigationInitialized = !0
}()
},
_cleanupNavigation: function() {
if (this._isNavigationInitialized === !0) try {
h.unbind("up", this._up), h.unbind(["down", "shift+down"], this._down), h.unbind("pageup", this._pageUp), h.unbind("pagedown", this._pageDown), h.unbind("esc", this._esc), h.unbind("shift+del", this._onDelete), this._up = this._down = this._pageUp = this._pageDown = void 0
} finally {
this._isNavigationInitialized = !1
}
},
onFocus: function() {
this.setState({
focused: !0
}), this._initializeNavigation()
},
onBlur: function(e) {
this.setState({
focused: !1
}), e && e.relatedTarget && this._hideDropdown(), this._cleanupNavigation()
},
onPaste: function(e) {
var t = this;
this._isPasting = !0, setTimeout(function() {
return t._isPasting = !1
}, 5)
},
onChange: function(e) {
var t = e.target;
g.setState(this.props.page, {
editText: t.value
}), this.props.suggestEnabled === !0 && t.value.trim() && t.value.length > 1 ? P(t.value, this.props.currentSearchEngine || this._getDefaultSearchEngine()) : this.setState({
searchSuggestionStore: []
})
},
onClicked: function(e) {
var t = e.target,
n = e.target,
i = n.selectionStart,
a = n.selectionEnd;
i === a && t.select()
},
onToggleDropdownClicked: function(e) {
document.activeElement !== this.refs.search && this.refs.search.focus(), this.state.isOmniDropdownOpen || (this.onSearchFieldStoreChanged(), this._showDropdown({
showAll: !0
}))
},
handleClickOutside: function(e) {
this._hideDropdown()
},
onSlidebarPosition: function(e, t) {
var n = this.refs.searchfield.getBoundingClientRect();
y.set({
SEARCH_FIELD_WIDTH: n.right - e
})
},
getWidth: function() {
var e = this.props.settings.SEARCH_FIELD_WIDTH;
return e ? e < k ? e = k : e > D && (e = D) : e = k, e
},
focusField: function() {
if (this.refs.search) {
var e = this.refs.search;
e.focus(), "" !== e.value && e.select()
}
},
renderSearchEngines: function() {
var e = this,
t = w.clone(this.props.searchEngines);
parseInt(this.props.defaultSearchEngineId) > -1 && t.unshift(t.splice(w.indexOf(t, w.find(t, {
Id: parseInt(this.props.defaultSearchEngineId)
})), 1)[0]), this.props.currentSearchEngine && this.props.currentSearchEngine.Id >= 0 && t.unshift(t.splice(w.indexOf(t, w.find(t, function(t) {
return t.Id === e.props.currentSearchEngine.Id
})), 1)[0]);
var n = t.map(function(e) {
return {
name: e.Name,
icon: e.Image || e.FaviconUrl,
shortcut: e.Keyword,
noPrettifying: !0,
Id: e.Id,
url: e.Url
}
});
return c.createElement(T, {
keyAccess: this.props.keyAccess,
minWidth: this.getWidth() - 2,
onClose: this.focusField,
onItemClicked: this.onSearchEngineChanged,
ref: "searchEngines",
store: n,
type: "search",
value: null != this.props.currentSearchEngineId ? this.props.currentSearchEngineId : this.props.defaultSearchEngineId,
__source: {
fileName: a,
lineNumber: 530
}
})
},
onOmniDropdownItemClicked: function(e, t) {
var n = u.findDOMNode(this.refs.search);
n.value = e.url, this._search({
target: n,
altKey: t.altKey,
shiftKey: t.shiftKey
})
},
renderDropdown: function() {
var e = this.props.currentSearchEngine || this._getDefaultSearchEngine(),
t = this.state.showAll ? this.state.typedHistoryStore : this.state.results;
return c.createElement(m, {
ref: "omniDropdown",
defaultSearchEngine: e,
disableSearch: !0,
hideIcons: !0,
isOpen: t.length > 0,
onClose: this._hideDropdown,
onDeleteTypedHistoryItem: this.onTypedSearchHistoryDeleted,
onLinkItemClicked: this.onOmniDropdownItemClicked,
pattern: this.state.editText,
results: t,
selectionIndex: this.state.dropdownSelectionIndex,
setAutocompleteHighlight: this.setAutocompleteHighlight,
suggestEnabled: this.props.suggestEnabled,
__source: {
fileName: a,
lineNumber: 561
}
})
},
render: function() {
if (!this.props.searchEngines) return null;
var e = void 0;
e = this.props.currentSearchEngine && this.props.currentSearchEngine.Id >= 0 ? I("Search $1", [this.props.currentSearchEngine.Name]) : I("Search $1", [(w.find(this.props.searchEngines, {
Id: parseInt(this.props.defaultSearchEngineId)
}) || this.props.searchEngines[0]).Name]);
var t = O({
"iconmenu-container": !0,
focused: this.state.focused,
searchfield: !0
}),
i = O({
"searchfield-input": !0,
"vivaldi-searchfield": !0
}),
r = 0 === this.state.typedHistoryStore.length;
return c.createElement("div", {
ref: "searchfield",
className: t,
style: {
flexBasis: this.getWidth() + "px"
},
__source: {
fileName: a,
lineNumber: 611
}
}, c.createElement(N, {
onSlidebarPosition: this.onSlidebarPosition,
position: "right",
__source: {
fileName: a,
lineNumber: 615
}
}), this.renderSearchEngines(), c.createElement("input", {
ref: "search",
className: i,
onBlur: this.onBlur,
onChange: this.onChange,
onClick: this.onClicked,
onFocus: this.onFocus,
onKeyDown: this.onKeyDowned,
onKeyPress: this.onKeyPressed,
onPaste: this.onPaste,
placeholder: e,
type: "search",
value: this.props.value,
__source: {
fileName: a,
lineNumber: 623
}
}), this.state.isOmniDropdownOpen && this.renderDropdown(), this.props.settings.SEARCH_FIELD_TYPED_HISTORY_ENABLED && c.createElement("button", {
className: "button-addressfield input-dropdown search-history",
dangerouslySetInnerHTML: {
__html: n(314)
},
disabled: r,
onMouseDown: this.onToggleDropdownClicked,
tabIndex: this.props.keyAccess,
title: I("Show search history"),
__source: {
fileName: a,
lineNumber: 639
}
}))
}
});
e.exports = d(x, R, [], "settings")
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_650
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/sessions/SessionTree.jsx",
a = n(1),
r = n(11),
s = n(9),
o = n(109),
l = n(397),
c = window.navigator.language,
u = a.createClass({
displayName: "SessionTree",
mixins: [s],
getInitialState: function() {
return {
sessionSorting: []
}
},
componentDidMount: function() {
r.findDOMNode(this.refs.sessionTree).focus()
},
isFolder: function(e) {
return !1
},
isTrash: function(e) {
return !1
},
isEditable: function() {
return !1
},
hasChildren: function(e) {
return !1
},
isValidForClipboard: function(e) {
return !1
},
getContextMenuItems: function(e) {
return []
},
getSelectedSessions: function() {
var e = this,
t = this.refs.sessionTree.SelectionMixinGetAllSelected().map(function(e) {
return e.id
}),
n = [];
return t.forEach(function(t) {
var i = e.refs.sessionTree.findTreeItem(t);
i && n.push(i)
}), n
},
onKeyDown: function(e) {
"Enter" === l[e.keyCode] && this.props.onOpenSessions(), "Escape" === l[e.keyCode] && this.props.onClose(), "Up" !== l[e.keyCode] && "Down" !== l[e.keyCode] || this.props.onUpdateSelection(!0)
},
renderItemContent: function(e) {
var t = e.node,
n = [],
r = {
weekday: "long",
year: "numeric",
month: "long",
day: "numeric",
hour: "numeric",
minute: "numeric",
second: "numeric"
},
s = new Date(t.createDateJS).toLocaleDateString(c, r);
return n.push(a.createElement("label", {
key: "0",
title: t.name,
__source: {
fileName: i,
lineNumber: 85
}
}, t.name)), n.push(a.createElement("label", {
key: "1",
title: s,
__source: {
fileName: i,
lineNumber: 90
}
}, s)), n
},
render: function() {
return a.createElement(o, {
ref: "sessionTree",
nodes: this.props.nodes,
onItemMouseDown: this.props.onUpdateSelection,
onItemDoubleClick: this.props.onOpenSessions,
onKeyDown: this.onKeyDown,
isFolder: this.isFolder,
isTrash: this.isTrash,
isEditable: this.isEditable,
hasChildren: this.hasChildren,
renderItemContent: this.renderItemContent,
isValidForClipboard: this.isValidForClipboard,
sorting: this.props.sessionSorting,
multiSelect: "true",
__source: {
fileName: i,
lineNumber: 97
}
})
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_651
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/RestartBrowserDialog.jsx",
a = n(1),
r = n(34),
s = n(2),
o = a.createClass({
displayName: "RestartBrowserDialog",
getInitialState: function() {
return {
folderName: "",
shown: !0,
modalShown: !1,
parentFolderId: this.props.parentFolderId
}
},
getLayeredComponentRootNode: function() {
return this.props.parentDiv
},
handleClick: function() {
this.state.shown && this.props.onClose(), this.setState({
shown: !this.state.shown
})
},
onClose: function() {
this.state.shown && this.props.onClose(), this.setState({
shown: !this.state.shown
})
},
onFolderChange: function(e) {
this.setState({
folderName: e.target.value
})
},
keyDown: function(e) {
13 === event.keyCode ? this.onCreate() : 27 === event.keyCode && this.onCancel()
},
render: function() {
return this.state.shown ? a.createElement(r, {
onRequestClose: this.handleClick,
__source: {
fileName: i,
lineNumber: 50
}
}, a.createElement("div", {
className: "dialog-restart",
__source: {
fileName: i,
lineNumber: 51
}
}, a.createElement("header", {
className: "dialog-header",
__source: {
fileName: i,
lineNumber: 52
}
}, a.createElement("h1", {
className: "dialog-title",
__source: {
fileName: i,
lineNumber: 53
}
}, s("Restart required"))), a.createElement("div", {
className: "dialog-content",
__source: {
fileName: i,
lineNumber: 55
}
}, a.createElement("p", {
__source: {
fileName: i,
lineNumber: 56
}
}, s("Please restart the browser for this change to take effect."))), a.createElement("footer", {
className: "dialog-footer",
__source: {
fileName: i,
lineNumber: 60
}
}, a.createElement("input", {
type: "button",
className: "primary",
onClick: this.onClose,
value: s("Close"),
__source: {
fileName: i,
lineNumber: 61
}
})))) : null
}
});
e.exports = o
}, function(e, t, n) {
// =========================
// Function_652
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var r = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/addressbar/AddressBar.jsx",
s = n(653),
o = i(s),
l = n(41),
c = i(l),
u = n(1),
A = i(u),
d = n(3),
h = i(d),
m = n(13),
p = i(m),
f = n(2),
g = i(f),
_ = n(12),
v = i(_),
b = A.default.createClass({
displayName: "AddressBar",
mixins: [p.default],
vivaldiSettingsKeys: ["ADDRESS_BAR_AUTOCOMPLETE_ENABLED", "ADDRESS_BAR_AUTOCOMPLETE_TLD", "ADDRESS_BAR_AUTOCOMPLETE_PREFER_BOOKMARKS", "ADDRESS_BAR_CUTCOPY_ENCODED", "ADDRESS_BAR_OMNIDROPDOWN_ENABLED", "ADDRESS_BAR_POSITION", "ADDRESS_BAR_SELECT_ON_CLICK", "ADDRESS_BAR_SHOW_FULL_URL", "ADDRESS_BAR_URL_OPEN_SHORTCUT", "SHOW_ADDRESS_BAR", "ADDRESS_BAR_SHOW_PROGRESS", "SHOW_FFW_RWD_BUTTONS", "EXTENSIONS_TOOLBAR_TOGGLE_BUTTON_ENABLED"],
saveVivaldiSettingFromEvent: function(e, t, n) {
h.default.set(a({}, e, n.target[t]))
},
render: function() {
var e = A.default.createElement("section", {
__source: {
fileName: r,
lineNumber: 35
}
}, A.default.createElement("h2", {
__source: {
fileName: r,
lineNumber: 36
}
}, (0, g.default)("Address Bar")), A.default.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: r,
lineNumber: 38
}
}, A.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 39
}
}, A.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 40
}
}, A.default.createElement("input", {
type: "checkbox",
checked: this.state.SHOW_ADDRESS_BAR,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "SHOW_ADDRESS_BAR", "checked"),
__source: {
fileName: r,
lineNumber: 41
}
}), A.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 45
}
}, (0, g.default)("Show Address Bar"))))), A.default.createElement("div", {
className: "setting-group",
__source: {
fileName: r,
lineNumber: 50
}
}, A.default.createElement("h3", {
__source: {
fileName: r,
lineNumber: 51
}
}, (0, g.default)("Address Bar Position")), A.default.createElement(c.default, {
name: "addressbar-position",
value: this.state.ADDRESS_BAR_POSITION,
ref: "addressPositionGroup",
onChange: this.saveVivaldiSettingFromEvent.bind(this, "ADDRESS_BAR_POSITION", "value"),
className: "group",
__source: {
fileName: r,
lineNumber: 52
}
}, A.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 58
}
}, A.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 59
}
}, A.default.createElement("input", {
type: "radio",
value: "top",
__source: {
fileName: r,
lineNumber: 60
}
}), A.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 61
}
}, (0, g.default)("Top")))), A.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 64
}
}, A.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 65
}
}, A.default.createElement("input", {
type: "radio",
value: "bottom",
__source: {
fileName: r,
lineNumber: 66
}
}), A.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 67
}
}, (0, g.default)("Bottom")))))), A.default.createElement("div", {
className: "setting-group",
__source: {
fileName: r,
lineNumber: 73
}
}, A.default.createElement("h3", {
__source: {
fileName: r,
lineNumber: 74
}
}, (0, g.default)("Address Bar Options")), A.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 75
}
}, A.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 76
}
}, A.default.createElement("input", {
type: "checkbox",
checked: this.state.SHOW_FFW_RWD_BUTTONS,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "SHOW_FFW_RWD_BUTTONS", "checked"),
__source: {
fileName: r,
lineNumber: 77
}
}), A.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 81
}
}, (0, g.default)("Fast Forward and Rewind")))), A.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 84
}
}, A.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 85
}
}, A.default.createElement("input", {
type: "checkbox",
checked: this.state.ADDRESS_BAR_SHOW_FULL_URL,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "ADDRESS_BAR_SHOW_FULL_URL", "checked"),
__source: {
fileName: r,
lineNumber: 86
}
}), A.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 90
}
}, (0, g.default)("Show Full Address")))), A.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 93
}
}, A.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 94
}
}, A.default.createElement("input", {
type: "checkbox",
checked: this.state.ADDRESS_BAR_OMNIDROPDOWN_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "ADDRESS_BAR_OMNIDROPDOWN_ENABLED", "checked"),
__source: {
fileName: r,
lineNumber: 95
}
}), A.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 99
}
}, (0, g.default)("Show Address Popup Menu when Typing")))), A.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 102
}
}, A.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 103
}
}, A.default.createElement("input", {
type: "checkbox",
checked: this.state.ADDRESS_BAR_SELECT_ON_CLICK,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "ADDRESS_BAR_SELECT_ON_CLICK", "checked"),
__source: {
fileName: r,
lineNumber: 104
}
}), A.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 108
}
}, (0, g.default)("Select Address on Click")))), A.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 111
}
}, A.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 112
}
}, A.default.createElement("input", {
type: "checkbox",
checked: this.state.ADDRESS_BAR_SHOW_PROGRESS,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "ADDRESS_BAR_SHOW_PROGRESS", "checked"),
__source: {
fileName: r,
lineNumber: 113
}
}), A.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 117
}
}, (0, g.default)("Page Loading Progress Bar")))), A.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 121
}
}, A.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 122
}
}, A.default.createElement("input", {
type: "checkbox",
checked: this.state.ADDRESS_BAR_CUTCOPY_ENCODED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "ADDRESS_BAR_CUTCOPY_ENCODED", "checked"),
__source: {
fileName: r,
lineNumber: 123
}
}), A.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 127
}
}, (0, g.default)("Cut and Copy Encoded"))))), A.default.createElement(o.default, {
value: this.state.ADDRESS_BAR_URL_OPEN_SHORTCUT,
__source: {
fileName: r,
lineNumber: 132
}
}), A.default.createElement("div", {
className: "setting-group",
__source: {
fileName: r,
lineNumber: 134
}
}, A.default.createElement("h3", {
__source: {
fileName: r,
lineNumber: 135
}
}, (0, g.default)("Address Auto-Complete")), A.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 136
}
}, A.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 137
}
}, A.default.createElement("input", {
type: "checkbox",
checked: this.state.ADDRESS_BAR_AUTOCOMPLETE_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "ADDRESS_BAR_AUTOCOMPLETE_ENABLED", "checked"),
__source: {
fileName: r,
lineNumber: 138
}
}), A.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 142
}
}, (0, g.default)("Enabled")))), A.default.createElement("div", {
className: "setting-single pad-left",
__source: {
fileName: r,
lineNumber: 145
}
}, A.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 146
}
}, A.default.createElement("input", {
type: "checkbox",
checked: this.state.ADDRESS_BAR_AUTOCOMPLETE_PREFER_BOOKMARKS,
disabled: !this.state.ADDRESS_BAR_AUTOCOMPLETE_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "ADDRESS_BAR_AUTOCOMPLETE_PREFER_BOOKMARKS", "checked"),
__source: {
fileName: r,
lineNumber: 147
}
}), A.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 152
}
}, (0, g.default)("Always Prefer Bookmarks"))))), A.default.createElement("div", {
className: "setting-group",
__source: {
fileName: r,
lineNumber: 157
}
}, A.default.createElement("h3", {
__source: {
fileName: r,
lineNumber: 158
}
}, (0, g.default)("Domain Expansion")), A.default.createElement("p", {
className: "info pad-top",
__source: {
fileName: r,
lineNumber: 159
}
}, (0, g.default)("Top level domain to expand with Ctrl + Enter keys")), A.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 162
}
}, A.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 163
}
}, A.default.createElement("input", {
type: "text",
defaultValue: this.state.ADDRESS_BAR_AUTOCOMPLETE_TLD,
maxLength: "24",
placeholder: "com",
onBlur: this.saveVivaldiSettingFromEvent.bind(this, "ADDRESS_BAR_AUTOCOMPLETE_TLD", "value"),
__source: {
fileName: r,
lineNumber: 164
}
})))), A.default.createElement("div", {
className: "setting-group",
__source: {
fileName: r,
lineNumber: 173
}
}, A.default.createElement("h3", {
__source: {
fileName: r,
lineNumber: 174
}
}, (0, g.default)("Extensions")), A.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 175
}
}, A.default.createElement("label", {
title: (0, g.default)("Show toggle button to hide or reveal extension buttons"),
__source: {
fileName: r,
lineNumber: 176
}
}, A.default.createElement("input", {
type: "checkbox",
checked: this.state.EXTENSIONS_TOOLBAR_TOGGLE_BUTTON_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "EXTENSIONS_TOOLBAR_TOGGLE_BUTTON_ENABLED", "checked"),
__source: {
fileName: r,
lineNumber: 178
}
}), A.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 182
}
}, (0, g.default)("Extensions Toggle"))))));
return (0, v.default)(e, this.props.filter)
}
});
e.exports = b
}, function(e, t, n) {
// =========================
// Function_653
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
var n = t.target.value;
n !== e && A.default.set({
ADDRESS_BAR_URL_OPEN_SHORTCUT: n
})
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/addressbar/AddressBarShortcuts.jsx";
t.default = function(e) {
var t = e.value;
return c.default.createElement("div", {
className: "setting-group",
__source: {
fileName: r,
lineNumber: 17
}
}, c.default.createElement("h3", {
__source: {
fileName: r,
lineNumber: 18
}
}, (0, h.default)("Open Address in New Tab")), c.default.createElement(o.default, {
name: "urlfieldShortcut",
className: "setting-single",
value: t,
onChange: (0, p.default)(a, t),
__source: {
fileName: r,
lineNumber: 20
}
}, c.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 24
}
}, c.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 25
}
}, c.default.createElement("input", {
type: "radio",
value: "alt",
__source: {
fileName: r,
lineNumber: 26
}
}), c.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 27
}
}, "MacIntel" === navigator.platform ? "Option" : "Alt", " + Enter"))), c.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 35
}
}, c.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 36
}
}, c.default.createElement("input", {
type: "radio",
value: "shift",
__source: {
fileName: r,
lineNumber: 37
}
}), c.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 38
}
}, "Shift + Enter")))))
};
var s = n(41),
o = i(s),
l = n(1),
c = i(l),
u = n(3),
A = i(u),
d = n(2),
h = i(d),
m = n(302),
p = i(m)
}, function(e, t, n) {
// =========================
// Function_654
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/biscuit/biscuitMode.jsx",
r = n(1),
s = n(3),
o = n(2),
l = n(13),
c = r.createClass({
displayName: "BiscuitSettings",
mixins: [l],
vivaldiSettingsKeys: ["USE_BISCUIT_MODE"],
saveVivaldiSettingFromEvent: function(e, t, n) {
s.set(i({}, e, n.target[t]))
},
render: function() {
return "🐶" !== this.props.filter ? null : r.createElement("span", {
__source: {
fileName: a,
lineNumber: 22
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 23
}
}, "Biscuit Area 🐶"), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 24
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 25
}
}, "Biscuit Mode"), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 26
}
}, r.createElement("label", {
title: o("Woof!"),
__source: {
fileName: a,
lineNumber: 27
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.USE_BISCUIT_MODE,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "USE_BISCUIT_MODE", "checked"),
__source: {
fileName: a,
lineNumber: 29
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 33
}
}, o("Enable"))))))
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_655
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/bookmarks/bookmarkSettings.jsx",
r = n(1),
s = n(3),
o = n(2),
l = n(13),
c = n(12),
u = r.createClass({
displayName: "BookmarkSettings",
mixins: [l],
vivaldiSettingsKeys: ["BOOKMARKS_OPEN_IN_NEW_TAB", "BOOKMARKS_CONFIRM_BEFORE_OPEN", "BOOKMARKS_CONFIRM_THRESHOLD", "BOOKMARKS_SINGLE_CLICK_IN_TREE"],
minTreshold: 1,
maxTreshold: 99,
saveVivaldiSettingFromEvent: function(e, t, n) {
s.set(i({}, e, n.target[t]))
},
onThresholdChanged: function(e) {
var t = e.target.value;
t && t % 1 === 0 && t >= this.minTreshold && t <= this.maxTreshold && s.set({
BOOKMARKS_CONFIRM_THRESHOLD: e.target.value
})
},
render: function() {
var e = r.createElement("span", {
__source: {
fileName: a,
lineNumber: 33
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 34
}
}, o("Bookmarks")), r.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: a,
lineNumber: 35
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 36
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 37
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.BOOKMARKS_OPEN_IN_NEW_TAB,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "BOOKMARKS_OPEN_IN_NEW_TAB", "checked"),
__source: {
fileName: a,
lineNumber: 38
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 43
}
}, o("Open Bookmarks in New Tab")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 46
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 47
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.BOOKMARKS_SINGLE_CLICK_IN_TREE,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "BOOKMARKS_SINGLE_CLICK_IN_TREE", "checked"),
__source: {
fileName: a,
lineNumber: 48
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 52
}
}, o("Open Bookmark Panel Items with Single Click")))), r.createElement("div", {
className: "setting-single max-bookmarks",
__source: {
fileName: a,
lineNumber: 55
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 56
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.BOOKMARKS_CONFIRM_BEFORE_OPEN,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "BOOKMARKS_CONFIRM_BEFORE_OPEN", "checked"),
__source: {
fileName: a,
lineNumber: 57
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 63
}
}, o("Confirm Opening Bookmarks over Maximum of")), r.createElement("input", {
type: "number",
disabled: !this.state.BOOKMARKS_CONFIRM_BEFORE_OPEN,
defaultValue: this.state.BOOKMARKS_CONFIRM_THRESHOLD,
onChange: this.onThresholdChanged,
min: this.minTreshold,
max: this.maxTreshold,
__source: {
fileName: a,
lineNumber: 64
}
})))));
return c(e, this.props.filter)
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_656
// =========================
"use strict";
var i = n(6),
a = n(2),
r = function(e) {
switch (e) {
case i.CATEGORY_COMMAND_APPLICATION:
return "MacIntel" === navigator.platform ? a("mac", "Window") : a("win_linux", "Window");
case i.CATEGORY_COMMAND_APPEARANCE:
return "MacIntel" === navigator.platform ? a("mac", "View") : a("win_linux", "View");
case i.CATEGORY_COMMAND_TAB_ACTION:
return a("Tab");
case i.CATEGORY_COMMAND_WEBPAGE_NAVIGATION:
return a("Page");
case i.CATEGORY_COMMAND_MAIL:
return a("Mail");
default:
return "Unknown"
}
};
e.exports = r
}, function(e, t, n) {
// =========================
// Function_657
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/cookies/cookieItem.jsx",
a = n(1),
r = n(4),
s = n(183),
o = n(2),
l = a.createClass({
displayName: "CookieItem",
getInitialState: function() {
return {
viewCookies: !1,
viewInfo: !1
}
},
deleteCookie: function(e) {
var t = this,
n = Boolean(this.state.viewInfo);
n ? (this.removeChromeEntry(this.state.viewInfo), this.setState({
viewCookies: Boolean(this.props.count > 1),
viewInfo: !1
})) : (this.props.item.map(function(e) {
return t.removeChromeEntry(e)
}), this.setState({
viewCookies: !1,
viewInfo: !1
})), e.stopPropagation()
},
removeChromeEntry: function(e) {
var t = "http" + (e.secure ? "s" : "") + "://",
n = t + e.domain + e.path,
i = {
url: n,
name: e.name
};
r.cookies.remove(i, function(e) {
this.props.onCookieDelete(e)
}.bind(this))
},
showDetail: function() {
this.setState({
viewCookies: !this.state.viewCookies,
viewInfo: this.state.viewCookies !== !0 && this.state.viewInfo
})
},
showInfo: function(e) {
this.setState({
viewInfo: e
})
},
renderCookies: function() {
var e = this;
return this.props.item.map(function(t) {
return a.createElement("a", {
tabIndex: "0",
key: "cookie-" + t.name.toLowerCase(),
onFocus: e.showInfo.bind(e, t),
__source: {
fileName: i,
lineNumber: 61
}
}, t.name)
})
},
renderInfo: function() {
return a.createElement("dl", {
__source: {
fileName: i,
lineNumber: 71
}
}, a.createElement("dt", {
__source: {
fileName: i,
lineNumber: 72
}
}, o("Expires:")), a.createElement("dd", {
__source: {
fileName: i,
lineNumber: 73
}
}, s.date("Y/n/j H:i", this.state.viewInfo.expirationDate)), a.createElement("dt", {
__source: {
fileName: i,
lineNumber: 75
}
}, o("Path:")), a.createElement("dd", {
__source: {
fileName: i,
lineNumber: 76
}
}, this.state.viewInfo.path), a.createElement("dt", {
__source: {
fileName: i,
lineNumber: 77
}
}, o("Host Only:")), a.createElement("dd", {
__source: {
fileName: i,
lineNumber: 78
}
}, this.state.viewInfo.hostOnly.toString()), a.createElement("dt", {
__source: {
fileName: i,
lineNumber: 79
}
}, o("HTTP Only:")), a.createElement("dd", {
__source: {
fileName: i,
lineNumber: 80
}
}, this.state.viewInfo.httpOnly.toString()), a.createElement("dt", {
__source: {
fileName: i,
lineNumber: 81
}
}, o("Session:")), a.createElement("dd", {
__source: {
fileName: i,
lineNumber: 82
}
}, this.state.viewInfo.session.toString()), a.createElement("dt", {
__source: {
fileName: i,
lineNumber: 83
}
}, o("Secure:")), a.createElement("dd", {
__source: {
fileName: i,
lineNumber: 84
}
}, this.state.viewInfo.secure.toString()), a.createElement("dt", {
__source: {
fileName: i,
lineNumber: 85
}
}, o("Value:")), a.createElement("dd", {
__source: {
fileName: i,
lineNumber: 86
}
}, this.state.viewInfo.value))
},
render: function() {
return a.createElement("li", {
__source: {
fileName: i,
lineNumber: 93
}
}, a.createElement("div", {
className: "overview",
onClick: this.showDetail,
__source: {
fileName: i,
lineNumber: 94
}
}, a.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(313)
},
__source: {
fileName: i,
lineNumber: 95
}
}), this.props.domain, !this.state.viewCookies && a.createElement("span", {
className: "count",
__source: {
fileName: i,
lineNumber: 99
}
}, this.props.count), a.createElement("span", {
className: "controls",
__source: {
fileName: i,
lineNumber: 101
}
}, a.createElement("input", {
type: "button",
className: "circular clearkey",
title: o(this.state.viewInfo ? "Delete selected cookie" : "Delete cookies"),
onClick: this.deleteCookie,
__source: {
fileName: i,
lineNumber: 102
}
}))), this.state.viewCookies && a.createElement("div", {
className: "detail",
__source: {
fileName: i,
lineNumber: 110
}
}, this.renderCookies(), this.state.viewInfo && a.createElement("div", {
className: "info",
__source: {
fileName: i,
lineNumber: 113
}
}, this.renderInfo())))
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_658
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/cookies/cookieManagerDlg.jsx",
a = n(1),
r = n(366),
s = n(34),
o = a.createClass({
displayName: "CookieManagerDialog",
handleClick: function() {
var e = {
dialogText: this.state.value
};
this.state.shown && this.props.onCloseBM(e), this.setState({
shown: !this.state.shown
})
},
getInitialState: function() {
return {
msg: "",
shown: !0,
modalShown: !1
}
},
getLayeredComponentRootNode: function() {
return this.props.parentDiv
},
componentWillReceiveProps: function(e) {
this.setState({
shown: !0
})
},
render: function() {
return a.createElement(s, {
onRequestClose: this.handleClick,
dialogWidth: 600,
__source: {
fileName: i,
lineNumber: 29
}
}, a.createElement(r, {
onClose: this.handleClick,
__source: {
fileName: i,
lineNumber: 30
}
}))
}
});
e.exports = o
}, function(e, t, n) {
// =========================
// Function_659
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/cookies/cookieSettings.jsx",
a = n(1),
r = n(10),
s = n(41),
o = n(2),
l = n(12),
c = a.createClass({
displayName: "CookieSettings",
getInitialState: function() {
return {
cookieSetting: "",
blockThirdParty: null
}
},
componentWillMount: function() {
var e = this;
r.importData.getDefaultContentSettings("cookies", function(t) {
e.setState({
cookieSetting: t
})
}), r.importData.getBlockThirdPartyCookies(function(t) {
e.setState({
blockThirdParty: t
})
})
},
checkChange: function(e) {
var t = e.target.checked;
r.importData.setBlockThirdPartyCookies(t, function(e) {}.bind(this)), this.setState({
blockThirdParty: t
})
},
handleChange: function(e) {
var t = e.target.value;
this.setState({
cookieSetting: t
}), r.importData.setDefaultContentSettings("cookies", t, function(e) {})
},
showCookieManager: function() {
this.props.showCookieManager()
},
render: function() {
var e = a.createElement("span", {
__source: {
fileName: i,
lineNumber: 48
}
}, a.createElement("h2", {
__source: {
fileName: i,
lineNumber: 50
}
}, o("Cookies")), a.createElement("div", {
className: "setting-group",
__source: {
fileName: i,
lineNumber: 52
}
}, a.createElement("h3", {
__source: {
fileName: i,
lineNumber: 53
}
}, o("Accept Cookies")), a.createElement(s, {
className: "cookieSelection",
name: "cookieSelGroup",
ref: "cookieSelGroup",
value: this.state.cookieSetting,
onChange: this.handleChange,
__source: {
fileName: i,
lineNumber: 55
}
}, a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 60
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 61
}
}, a.createElement("input", {
type: "radio",
value: "allow",
__source: {
fileName: i,
lineNumber: 62
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 63
}
}, o("All")))), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 66
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 67
}
}, a.createElement("input", {
type: "radio",
value: "session_only",
__source: {
fileName: i,
lineNumber: 68
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 69
}
}, o("Session Only")))), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 72
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 73
}
}, a.createElement("input", {
type: "radio",
value: "block",
__source: {
fileName: i,
lineNumber: 74
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 75
}
}, o("Never")))))), a.createElement("div", {
className: "setting-group",
__source: {
fileName: i,
lineNumber: 81
}
}, a.createElement("h3", {
__source: {
fileName: i,
lineNumber: 82
}
}, o("Third-Party Cookies")), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 84
}
}, a.createElement("label", {
title: o("Block Third-Party Cookies"),
__source: {
fileName: i,
lineNumber: 85
}
}, null !== this.state.blockThirdParty && a.createElement("input", {
type: "checkbox",
checked: this.state.blockThirdParty,
onChange: this.checkChange,
__source: {
fileName: i,
lineNumber: 87
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 91
}
}, o("Block Third-Party Cookies"))))));
return l(e, this.props.filter)
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_660
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/defaultGlobalZoom/defaultGlobalZoom.jsx",
r = n(1),
s = n(3),
o = n(25),
l = n(72),
c = n(12),
u = n(243),
A = n(10),
d = n(2),
h = [l.kVivaldiTabZoom, "MOUSE_WHEEL_PAGE_ZOOM"],
m = r.createClass({
displayName: "DefaultGlobalZoom",
getInitialState: function() {
return {
defaultGlobalZoom: 1
}
},
componentWillMount: function() {
var e = this;
A.zoom.getDefaultZoom(function(t) {
e.setState({
defaultGlobalZoom: t
})
}), A.zoom.onDefaultZoomChanged.addListener(this.updateLocalState)
},
componentWillUnmount: function() {
A.zoom.onDefaultZoomChanged.removeListener(this.updateLocalState)
},
updateLocalState: function(e) {
this.setState({
defaultGlobalZoom: e
})
},
saveVivaldiSettingFromEvent: function(e, t, n) {
s.set(i({}, e, n.target[t]))
},
handleZoomUpdated: function(e) {
A.zoom.setDefaultZoom(e)
},
onZoomModeChange: function(e) {
var t = e.target.checked,
n = {
preferenceKey: l.kVivaldiTabZoom,
preferenceValue: {
boolean: t
},
preferenceType: "boolean"
};
A.settings.setPreference(n)
},
render: function() {
var e = r.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: a,
lineNumber: 63
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 64
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 65
}
}, d("Default Webpage Zoom")), r.createElement("div", {
id: "zoom_control",
__source: {
fileName: a,
lineNumber: 66
}
}, r.createElement(u, {
ref: "zoomslider",
maxLevel: 2,
minLevel: .5,
step: .05,
initialZoom: this.state.defaultGlobalZoom,
onZoomUpdated: this.handleZoomUpdated,
__source: {
fileName: a,
lineNumber: 67
}
}))), r.createElement("div", {
className: "setting-single pad-top",
__source: {
fileName: a,
lineNumber: 76
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 77
}
}, r.createElement("input", {
type: "checkbox",
checked: this.props.vivaldiSettings.MOUSE_WHEEL_PAGE_ZOOM,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "MOUSE_WHEEL_PAGE_ZOOM", "checked"),
__source: {
fileName: a,
lineNumber: 78
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 82
}
}, d("Use $1+Scroll to Zoom Page", ["MacIntel" === navigator.platform ? "⌘" : "CTRL"])))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 86
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 87
}
}, r.createElement("input", {
type: "checkbox",
checked: this.props.vivaldiSettings[l.kVivaldiTabZoom],
onChange: this.onZoomModeChange,
__source: {
fileName: a,
lineNumber: 88
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 91
}
}, d("Use Tab Zoom"))), r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 93
}
}, d("Retain zoom level when navigating between websites"))));
return c(e, this.props.filter)
}
});
e.exports = o(m, h)
}, function(e, t, n) {
// =========================
// Function_661
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/downloads/downloads.jsx",
r = n(1),
s = n(10),
o = n(2),
l = n(12),
c = n(3),
u = n(13),
A = r.createClass({
displayName: "DownloadSettings",
mixins: [u],
vivaldiSettingsKeys: ["AUTOMATICALLY_DOWNLOAD_FILES", "SHOW_DOWNLOADPANEL_FOR_NEW_DOWNLOADS", "DOWNLOAD_NOTIFICATIONS"],
getInitialState: function() {
return {
defaultDir: c.getSync("download.default_directory")
}
},
saveVivaldiSettingFromEvent: function(e, t, n) {
c.set(i({}, e, n.target[t]))
},
handleDownloadDirectoryChange: function(e) {
var t = e.target.value;
this.setState({
defaultDir: t
});
var n = {
preferenceKey: "download.default_directory",
preferenceValue: {
string: t
},
preferenceType: "string"
};
s.settings.setPreference(n)
},
render: function() {
var e = r.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: a,
lineNumber: 40
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 41
}
}, o("Downloads")), r.createElement("div", {
className: "setting-subgroup",
__source: {
fileName: a,
lineNumber: 42
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 43
}
}, o("Download Location")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 44
}
}, r.createElement("input", {
type: "text",
value: this.state.defaultDir,
title: o("Enter default download directory path"),
onChange: this.handleDownloadDirectoryChange,
__source: {
fileName: a,
lineNumber: 45
}
})), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 50
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 51
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.AUTOMATICALLY_DOWNLOAD_FILES,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "AUTOMATICALLY_DOWNLOAD_FILES", "checked"),
__source: {
fileName: a,
lineNumber: 52
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 56
}
}, o("Always Save Files to Default Download Location")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 59
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 60
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.SHOW_DOWNLOADPANEL_FOR_NEW_DOWNLOADS,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "SHOW_DOWNLOADPANEL_FOR_NEW_DOWNLOADS", "checked"),
__source: {
fileName: a,
lineNumber: 61
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 65
}
}, o("Open Download Panel Automatically")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 68
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 69
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.DOWNLOAD_NOTIFICATIONS,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "DOWNLOAD_NOTIFICATIONS", "checked"),
__source: {
fileName: a,
lineNumber: 70
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 74
}
}, o("Notify on Completed Downloads"))))));
return l(e, this.props.filter)
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_662
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/fonts/fonts.jsx",
r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
s = n(1),
o = n(10),
l = n(25),
c = n(2),
u = n(12),
A = n(4),
d = n(69),
h = 9,
m = 2,
p = 99,
f = "webkit.webprefs.minimum_font_size",
g = "webkit.webprefs.fonts.standard.Zyyy",
_ = "webkit.webprefs.fonts.fixed.Zyyy",
v = "webkit.webprefs.fonts.serif.Zyyy",
b = "webkit.webprefs.fonts.sansserif.Zyyy",
N = "webkit.webprefs.fonts.cursive.Zyyy",
E = "webkit.webprefs.fonts.fantasy.Zyyy",
S = {
standard: {
localizedFamily: c("Standard")
},
sansserif: {
localizedFamily: c("Sans-serif")
},
serif: {
localizedFamily: c("Serif")
},
fixed: {
localizedFamily: c("Monospaced")
},
cursive: {
localizedFamily: c("Cursive")
},
fantasy: {
localizedFamily: c("Fantasy")
}
},
T = [f],
y = s.createClass({
displayName: "Fonts",
getInitialState: function() {
return {
fontList: [],
fonts: {}
}
},
componentWillMount: function() {
var e = this;
A.fontSettings.onFontChanged.addListener(function(t) {
var n = d(e.state, {
fonts: {
$merge: i({}, t.genericFamily, {
font: t.fontId,
localizedFamily: S[t.genericFamily].localizedFamily
})
}
});
e.setState(n)
}), A.fontSettings.getFontList(function(t) {
e.setState({
fontList: t
})
}), this.mapObject(S, function(t, n) {
A.fontSettings.getFont({
genericFamily: t
}, function(a) {
var r = d(e.state, {
fonts: {
$merge: i({}, t, {
font: a.fontId,
localizedFamily: n.localizedFamily
})
}
});
e.setState(r)
})
})
},
mapObject: function(e, t) {
return Object.keys(e).map(function(n) {
return t(n, e[n])
})
},
handleFontSizeSetting: function(e) {
var t = e.target.checked;
t ? this.handleFontSizeChanged(h, !0) : this.handleFontSizeChanged(0, !0)
},
handleFontSizeChanged: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
n = void 0;
if (n = "object" === ("undefined" == typeof e ? "undefined" : r(e)) ? e.target.value : e, "number" == typeof parseInt(n) && (!t && n >= m && n <= p || t)) {
var i = {
preferenceKey: f,
preferenceValue: {
integer: parseInt(n)
},
preferenceType: "integer"
};
o.settings.setPreference(i)
}
},
changeHandler: function(e, t) {
var n = g;
switch (e) {
case "standard":
n = g;
break;
case "fantasy":
n = E;
break;
case "fixed":
n = _;
break;
case "sansserif":
n = b;
break;
case "serif":
n = v;
break;
case "cursive":
n = N
}
var i = {
preferenceKey: n,
preferenceValue: {
string: t.target.value
},
preferenceType: "string"
};
o.settings.setPreference(i)
},
renderOptions: function() {
var e = parseInt(this.props.vivaldiSettings[f]),
t = [9, 10, 11, 12, 14, 16, 18, 24];
return t.indexOf(e) === -1 && (t.push(e), t = t.sort(function(e, t) {
return e - t
})), t.map(function(e) {
return s.createElement("option", {
key: e,
__source: {
fileName: a,
lineNumber: 159
}
}, e)
})
},
render: function() {
var e = this,
t = this.props.vivaldiSettings[f],
n = this.state.fontList.map(function(e) {
return s.createElement("option", {
key: e.fontId,
value: e.fontId,
__source: {
fileName: a,
lineNumber: 165
}
}, e.displayName)
}),
i = s.createElement("div", {
className: "setting-group unlimited font-slider",
__source: {
fileName: a,
lineNumber: 169
}
}, s.createElement("h2", {
__source: {
fileName: a,
lineNumber: 170
}
}, c("Fonts")), s.createElement("div", {
className: "setting-double",
__source: {
fileName: a,
lineNumber: 171
}
}, s.createElement("h3", {
__source: {
fileName: a,
lineNumber: 172
}
}, c("Minimum Font Size")), s.createElement("label", {
__source: {
fileName: a,
lineNumber: 173
}
}, s.createElement("input", {
type: "checkbox",
onChange: this.handleFontSizeSetting,
checked: 0 !== t,
__source: {
fileName: a,
lineNumber: 174
}
}), s.createElement("span", {
__source: {
fileName: a,
lineNumber: 178
}
}, c("Limit minimum font size to")), s.createElement("span", {
className: "fake-dataset",
__source: {
fileName: a,
lineNumber: 179
}
}, s.createElement("input", {
type: "text",
value: 0 === t ? h : t,
onChange: this.handleFontSizeChanged,
disabled: 0 === t,
__source: {
fileName: a,
lineNumber: 180
}
}), s.createElement("select", {
value: t,
onChange: this.handleFontSizeChanged,
disabled: 0 === t,
__source: {
fileName: a,
lineNumber: 185
}
}, this.renderOptions())))), s.createElement("div", {
className: "setting-single pad-top font-face-list",
__source: {
fileName: a,
lineNumber: 194
}
}, s.createElement("h3", {
__source: {
fileName: a,
lineNumber: 195
}
}, c("Default Fonts")), this.mapObject(this.state.fonts, function(t, i) {
return s.createElement("label", {
key: t,
__source: {
fileName: a,
lineNumber: 198
}
}, s.createElement("span", {
__source: {
fileName: a,
lineNumber: 199
}
}, i.localizedFamily), s.createElement("select", {
onChange: e.changeHandler.bind(e, t),
value: i.font,
__source: {
fileName: a,
lineNumber: 200
}
}, n))
})));
return u(i, this.props.filter)
}
});
e.exports = l(y, T)
}, function(e, t, n) {
// =========================
// Function_663
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/history/HistorySetting.jsx",
a = n(1),
r = n(4),
s = n(12),
o = n(10),
l = n(2),
c = n(72),
u = n(3),
A = a.createClass({
displayName: "HistorySetting",
getInitialState: function() {
return {
numberOfDaysToKeepVisits: u.getSync(c.kVivaldiNumberOfDaysToKeepVisits),
updating: !1
}
},
saveSetting: function(e) {
var t = parseInt(e.target.value),
n = {
preferenceKey: c.kVivaldiNumberOfDaysToKeepVisits,
preferenceValue: {
integer: t
},
preferenceType: "integer"
};
o.settings.setPreference(n), r.runtime.lastError && console.warn("Error storing home page: " + r.runtime.lastError), this.setState({
numberOfDaysToKeepVisits: t,
updating: !1
})
},
render: function() {
var e = a.createElement("div", {
className: "setting-group",
__source: {
fileName: i,
lineNumber: 38
}
}, a.createElement("h3", {
__source: {
fileName: i,
lineNumber: 39
}
}, l("other", "Save Browsing History")), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 40
}
}, a.createElement("select", {
onChange: this.saveSetting,
value: this.state.numberOfDaysToKeepVisits,
__source: {
fileName: i,
lineNumber: 41
}
}, a.createElement("option", {
value: "1",
__source: {
fileName: i,
lineNumber: 44
}
}, l("One Day")), a.createElement("option", {
value: "7",
__source: {
fileName: i,
lineNumber: 45
}
}, l("One Week")), a.createElement("option", {
value: "31",
__source: {
fileName: i,
lineNumber: 46
}
}, l("One Month")), a.createElement("option", {
value: "90",
__source: {
fileName: i,
lineNumber: 47
}
}, l("Three Months")), a.createElement("option", {
value: "178",
__source: {
fileName: i,
lineNumber: 48
}
}, l("Six Months")), a.createElement("option", {
value: "356",
__source: {
fileName: i,
lineNumber: 49
}
}, l("One Year")), a.createElement("option", {
value: "3560",
__source: {
fileName: i,
lineNumber: 50
}
}, l("Forever")))));
return s(e, this.props.filter)
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_664
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/keyboardShortcuts/FullKeyAccess.jsx",
r = n(1),
s = n(2),
o = n(12),
l = n(41),
c = n(3),
u = n(13),
A = n(10),
d = r.createClass({
displayName: "FullKeyAccess",
mixins: [u],
vivaldiSettingsKeys: ["KEY_ACCESS", "KEY_ACCESS_OS_DEFAULT", "FOCUS_CYCLE_TRAP"],
getInitialState: function() {
return {
macKeyUIMode: null
}
},
componentWillMount: function() {
var e = this;
"MacIntel" === navigator.platform && A.settings.getPreference("vivaldi.apple_keyboard_ui_mode", function(t) {
e.setState({
macKeyUIMode: t.preferenceValue.number
})
})
},
saveVivaldiSettingFromEvent: function(e, t, n) {
c.set(i({}, e, n.target[t]))
},
handleDarwinKeyAccess: function(e) {
var t = e.target.checked;
t || "-1" === this.state.KEY_ACCESS ? t && 2 === this.state.macKeyUIMode && "0" !== this.state.KEY_ACCESS ? c.set({
KEY_ACCESS: "0"
}) : t && 0 === this.state.macKeyUIMode && "-1" !== this.state.KEY_ACCESS && c.set({
KEY_ACCESS: "-1"
}) : c.set({
KEY_ACCESS: "-1"
}), c.set({
KEY_ACCESS_OS_DEFAULT: t
})
},
render: function() {
var e = r.createElement("div", {
__source: {
fileName: a,
lineNumber: 59
}
}, r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 60
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 61
}
}, s("Full Keyboard Access")), "MacIntel" === navigator.platform && r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 64
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 65
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.KEY_ACCESS_OS_DEFAULT,
onChange: this.handleDarwinKeyAccess,
__source: {
fileName: a,
lineNumber: 66
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 69
}
}, s("Inherit from System Preferences")))), r.createElement(l, {
name: "keyAccessSetting",
ref: "keyAccessGroup",
className: "setting-single",
value: this.state.KEY_ACCESS,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "KEY_ACCESS", "value"),
__source: {
fileName: a,
lineNumber: 74
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 80
}
}, r.createElement("input", {
type: "radio",
value: "0",
disabled: this.state.KEY_ACCESS_OS_DEFAULT,
__source: {
fileName: a,
lineNumber: 81
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 83
}
}, s("Focus All Controls"))), r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 85
}
}, s("Press TAB key to focus all controls")), r.createElement("label", {
__source: {
fileName: a,
lineNumber: 89
}
}, r.createElement("input", {
type: "radio",
value: "-1",
disabled: this.state.KEY_ACCESS_OS_DEFAULT,
__source: {
fileName: a,
lineNumber: 90
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 92
}
}, s("Focus Input"))), r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 94
}
}, s("Press TAB key to focus text boxes and lists only")))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 100
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 101
}
}, s("Toolbar Focus Cycling")), r.createElement(l, {
name: "toolbarFocusCycling",
ref: "keyAccessGroup",
className: "setting-single",
value: this.state.FOCUS_CYCLE_TRAP,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "FOCUS_CYCLE_TRAP", "value"),
__source: {
fileName: a,
lineNumber: 102
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 108
}
}, r.createElement("input", {
type: "radio",
value: !0,
__source: {
fileName: a,
lineNumber: 109
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 110
}
}, s("Cycle in Component"))), r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 112
}
}, s("TAB key focus is bound to individual toolbars or webpage")), r.createElement("label", {
__source: {
fileName: a,
lineNumber: 115
}
}, r.createElement("input", {
type: "radio",
value: !1,
__source: {
fileName: a,
lineNumber: 116
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 117
}
}, s("Cycle All"))), r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 119
}
}, s("TAB key focus cycles through whole application")))));
return o(e, this.props.filter)
}
});
e.exports = d
}, function(e, t, n) {
// =========================
// Function_665
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/keyboardShortcuts/configureSingleKeyShortcuts.jsx",
r = n(1),
s = n(2),
o = n(12),
l = n(3),
c = n(13),
u = r.createClass({
displayName: "ConfigureSingleKeyShortcut",
mixins: [c],
vivaldiSettingsKeys: ["DISABLE_SINGLE_KEY_SHORTCUTS", "DISABLE_KEYBOARD_SHORTCUTS"],
saveReversedVivaldiSettingFromEvent: function(e, t, n) {
l.set(i({}, e, !n.target[t]))
},
render: function() {
var e = r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 23
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 24
}
}, s("Keyboard Shortcuts")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 26
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 27
}
}, r.createElement("input", {
type: "checkbox",
checked: !this.state.DISABLE_KEYBOARD_SHORTCUTS,
onChange: this.saveReversedVivaldiSettingFromEvent.bind(this, "DISABLE_KEYBOARD_SHORTCUTS", "checked"),
__source: {
fileName: a,
lineNumber: 28
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 32
}
}, s("Allow All Keyboard Shortcuts")))), r.createElement("div", {
className: "setting-single pad-left",
__source: {
fileName: a,
lineNumber: 35
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 36
}
}, r.createElement("input", {
type: "checkbox",
checked: !this.state.DISABLE_SINGLE_KEY_SHORTCUTS,
onChange: this.saveReversedVivaldiSettingFromEvent.bind(this, "DISABLE_SINGLE_KEY_SHORTCUTS", "checked"),
disabled: this.state.DISABLE_KEYBOARD_SHORTCUTS,
__source: {
fileName: a,
lineNumber: 37
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 42
}
}, s("Single Key Shortcuts")))));
return o(e, this.props.filter)
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_666
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/languageSetting.jsx",
a = n(1),
r = n(4),
s = n(10),
o = n(34),
l = n(2),
c = n(12),
u = a.createClass({
displayName: "LanguageSetting",
getInitialState: function() {
return {
initialLanguage: r.i18n.getUILanguage(),
language: r.i18n.getUILanguage(),
confirmation: !1
}
},
componentWillMount: function() {
this.locales = [{
key: "ar",
value: "العربية – " + l("Arabic")
}, {
key: "be",
value: "Беларуская – " + l("Belarusian")
}, {
key: "bg",
value: "български – " + l("Bulgarian")
}, {
key: "ca",
value: "Català – " + l("Catalan")
}, {
key: "cs",
value: "Čeština – " + l("Czech")
}, {
key: "da",
value: "Dansk – " + l("Danish")
}, {
key: "de",
value: "Deutsch – " + l("German")
}, {
key: "el",
value: "Ελληνικά – " + l("Greek")
}, {
key: "en-US",
value: "English – " + l("English")
}, {
key: "es",
value: "Español – " + l("Spanish")
}, {
key: "es-PE",
value: "Español (Perú) – " + l("Spanish (Peru)")
}, {
key: "et",
value: "Eesti keel – " + l("Estonian")
}, {
key: "eu",
value: "Euskara – " + l("Basque")
}, {
key: "fa",
value: "فارسی – " + l("Persian")
}, {
key: "fi",
value: "Suomi – " + l("Finnish")
}, {
key: "fr",
value: "Français – " + l("French")
}, {
key: "fy",
value: "Frysk – " + l("Frisian")
}, {
key: "gd",
value: "Gàidhlig – " + l("Scots Gaelic")
}, {
key: "gl",
value: "Galego – " + l("Galician")
}, {
key: "hu",
value: "Magyar – " + l("Hungarian")
}, {
key: "hr",
value: "Hrvatski – " + l("Croatian")
}, {
key: "hy",
value: "Հայերեն – " + l("Armenian")
}, {
key: "id",
value: "Bahasa Indonesia – " + l("Indonesian")
}, {
key: "io",
value: "Ido – " + l("Ido")
}, {
key: "is",
value: "Íslenska – " + l("Icelandic")
}, {
key: "it",
value: "Italiano – " + l("Italian")
}, {
key: "ja",
value: "日本語 – " + l("Japanese")
}, {
key: "jbo",
value: "lo banjubu'o – " + l("Lojban")
}, {
key: "ka",
value: "ქართული ენა – " + l("Georgian")
}, {
key: "ko",
value: "한국어 – " + l("Korean")
}, {
key: "ku",
value: "کوردی – " + l("Kurdish")
}, {
key: "lt",
value: "Lietuvių – " + l("Lithuanian")
}, {
key: "lv",
value: "Latviešu – " + l("Latvian")
}, {
key: "mk",
value: "Македонски – " + l("Macedonian")
}, {
key: "nb",
value: "Norsk (bokmål) – " + l("Norwegian (Bokmål)")
}, {
key: "nn",
value: "Norsk (nynorsk) – " + l("Norwegian (Nynorsk)")
}, {
key: "nl",
value: "Nederlands – " + l("Dutch")
}, {
key: "pl",
value: "Polski – " + l("Polish")
}, {
key: "pt-BR",
value: "Português (Brasil) – " + l("Portuguese (Brazil)")
}, {
key: "pt-PT",
value: "Português (Europeu) – " + l("Portuguese (Portugal)")
}, {
key: "ro",
value: "Română – " + l("Romanian")
}, {
key: "ru",
value: "Русский – " + l("Russian")
}, {
key: "sc",
value: "Sardu – " + l("Sardinian")
}, {
key: "sk",
value: "Slovenčina – " + l("Slovak")
}, {
key: "sl",
value: "Slovenski – " + l("Slovenian")
}, {
key: "sq",
value: "Shqip – " + l("Albanian")
}, {
key: "sr",
value: "Српски – " + l("Serbian")
}, {
key: "sv",
value: "Svenska – " + l("Swedish")
}, {
key: "tr",
value: "Türkçe – " + l("Turkish")
}, {
key: "uk",
value: "Українська – " + l("Ukrainian")
}, {
key: "vi",
value: "Tiếng Việt – " + l("Vietnamese")
}, {
key: "zh-CN",
value: "简体中文 – " + l("Chinese (Simplified)")
}, {
key: "zh-TW",
value: "正體中文 – " + l("Chinese (Traditional)")
}], this.locales.sort(function(e, t) {
return e.value.localeCompare(t.value)
})
},
langChanged: function(e) {
this.setState({
language: e.target.value
})
},
saveLanguage: function() {
var e = this;
s.importData.setVivaldiLanguage(this.state.language, function(t) {
e.setState({
initialLanguage: e.state.language,
confirmation: !1
})
})
},
confirmLanguageChange: function() {
this.setState({
confirmation: !0
})
},
onCancel: function() {
this.setState({
confirmation: !1
})
},
keyDownModal: function(e) {
27 === e.keyCode && this.onCancel()
},
renderModal: function() {
var e = this,
t = this.locales.find(function(t) {
return t.key === e.state.language
});
return a.createElement(o, {
dialogWidth: 400,
__source: {
fileName: i,
lineNumber: 113
}
}, a.createElement("div", {
className: "dialog-restore-shortcuts",
__source: {
fileName: i,
lineNumber: 114
}
}, a.createElement("header", {
className: "dialog-header",
__source: {
fileName: i,
lineNumber: 115
}
}, a.createElement("h1", {
className: "dialog-title",
__source: {
fileName: i,
lineNumber: 116
}
}, l("Save New Language?"))), a.createElement("div", {
className: "dialog-content",
onKeyDown: this.keyDownModal,
__source: {
fileName: i,
lineNumber: 120
}
}, a.createElement("p", {
__source: {
fileName: i,
lineNumber: 121
}
}, l("Vivaldi user interface language will be set to:")), a.createElement("p", {
__source: {
fileName: i,
lineNumber: 122
}
}, a.createElement("strong", {
__source: {
fileName: i,
lineNumber: 122
}
}, t.value)), a.createElement("p", {
__source: {
fileName: i,
lineNumber: 123
}
}, l("Browser restart is required for new setting to take effect."))), a.createElement("footer", {
className: "dialog-footer",
onKeyDown: this.keyDownModal,
__source: {
fileName: i,
lineNumber: 125
}
}, a.createElement("input", {
type: "button",
className: "danger",
onClick: this.saveLanguage,
value: l("Save Language"),
__source: {
fileName: i,
lineNumber: 126
}
}), a.createElement("input", {
type: "button",
onClick: this.onCancel,
value: l("Cancel"),
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 130
}
}))))
},
render: function() {
var e = a.createElement("div", {
__source: {
fileName: i,
lineNumber: 142
}
}, this.state.confirmation && this.renderModal(), a.createElement("h2", {
__source: {
fileName: i,
lineNumber: 145
}
}, l("Language")), a.createElement("form", {
className: "setting-group",
onSubmit: this.confirmLanguageChange,
__source: {
fileName: i,
lineNumber: 146
}
}, a.createElement("h3", {
__source: {
fileName: i,
lineNumber: 147
}
}, l("Change User Interface Language")), a.createElement("p", {
className: "info",
__source: {
fileName: i,
lineNumber: 148
}
}, l("This setting requires a restart to take full effect.")), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 151
}
}, a.createElement("select", {
onChange: this.langChanged,
value: this.state.language,
__source: {
fileName: i,
lineNumber: 152
}
}, this.locales.map(function(e) {
return a.createElement("option", {
key: e.key,
value: e.key,
__source: {
fileName: i,
lineNumber: 156
}
}, e.value)
})), a.createElement("input", {
type: "submit",
className: "primary",
disabled: this.state.language === this.state.initialLanguage,
value: l("Save Language"),
__source: {
fileName: i,
lineNumber: 159
}
}))));
return c(e, this.props.filter)
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_667
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/privacy/privacy.jsx",
r = n(1),
s = n(10),
o = n(2),
l = n(12),
c = n(3),
u = n(25),
A = n(15),
d = "webrtc.ip_handling_policy",
h = ["ADDRESS_BAR_SUGGEST_ENABLED", "DISABLE_DIAGNOSTICS", "SEARCH_FIELD_SUGGEST_ENABLED", "URLBAR_SEARCH_DISABLED", "URLFIELD_TYPED_HISTORY_ENABLED", "SEARCH_FIELD_TYPED_HISTORY_ENABLED", "alternate_error_pages.enabled", "safebrowsing.enabled", "safebrowsing.extended_reporting_enabled", "enable_do_not_track", d],
m = r.createClass({
displayName: "Privacy",
handleVivaldiSettingsChanged: function(e) {
c.set(i({}, e, !this.props.vivaldiSettings[e]))
},
toggleChromePrivacyWebRTCChange: function() {
var e = "default" !== this.props.vivaldiSettings[d] ? "default" : "disable_non_proxied_udp";
s.settings.setPreference({
preferenceKey: d,
preferenceType: "string",
preferenceValue: {
string: e
}
})
},
handleSettingsChange: function(e) {
s.settings.togglePreference(e)
},
openPrivacyPage: function() {
A.openURL("https://vivaldi.com/privacy"), event.preventDefault()
},
render: function() {
var e = this.props.vivaldiSettings,
t = "default" === e[d] || "default_public_interface_only" === e[d] || "default_public_and_private_interfaces" === e[d],
n = r.createElement("span", {
__source: {
fileName: a,
lineNumber: 63
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 64
}
}, o("Privacy")), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 66
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 67
}
}, o("Third Party Services")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 68
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 69
}
}, r.createElement("input", {
type: "checkbox",
checked: e["safebrowsing.enabled"],
onChange: this.handleSettingsChange.bind(this, "safebrowsing.enabled"),
__source: {
fileName: a,
lineNumber: 70
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 74
}
}, o("Google Phishing and Malware Protection")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 78
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 79
}
}, r.createElement("input", {
type: "checkbox",
checked: e["safebrowsing.extended_reporting_enabled"],
onChange: this.handleSettingsChange.bind(this, "safebrowsing.extended_reporting_enabled"),
__source: {
fileName: a,
lineNumber: 80
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 84
}
}, o("Report Safe Browsing Incidents to Google")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 88
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 89
}
}, r.createElement("input", {
type: "checkbox",
checked: !e.URLBAR_SEARCH_DISABLED,
onChange: this.handleVivaldiSettingsChanged.bind(this, "URLBAR_SEARCH_DISABLED"),
__source: {
fileName: a,
lineNumber: 90
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 94
}
}, o("Search in Address Field")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 98
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 99
}
}, r.createElement("input", {
type: "checkbox",
checked: e.ADDRESS_BAR_SUGGEST_ENABLED,
onChange: this.handleVivaldiSettingsChanged.bind(this, "ADDRESS_BAR_SUGGEST_ENABLED"),
__source: {
fileName: a,
lineNumber: 100
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 104
}
}, o("Search Suggestions in Address Field")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 108
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 109
}
}, r.createElement("input", {
type: "checkbox",
checked: e.SEARCH_FIELD_SUGGEST_ENABLED,
onChange: this.handleVivaldiSettingsChanged.bind(this, "SEARCH_FIELD_SUGGEST_ENABLED"),
__source: {
fileName: a,
lineNumber: 110
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 114
}
}, o("Search Suggestions in Search Field"))))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 120
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 121
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 122
}
}, o("Do Not Track")), r.createElement("label", {
__source: {
fileName: a,
lineNumber: 123
}
}, r.createElement("input", {
type: "checkbox",
checked: e.enable_do_not_track,
onChange: this.handleSettingsChange.bind(this, "enable_do_not_track"),
__source: {
fileName: a,
lineNumber: 124
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 128
}
}, o("Ask Websites Not to Track Me")))), r.createElement("div", {
className: "setting-single pad-top",
__source: {
fileName: a,
lineNumber: 132
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 133
}
}, o("Vivaldi Diagnostics")), r.createElement("label", {
__source: {
fileName: a,
lineNumber: 134
}
}, r.createElement("input", {
type: "checkbox",
checked: !e.DISABLE_DIAGNOSTICS,
onChange: this.handleVivaldiSettingsChanged.bind(this, "DISABLE_DIAGNOSTICS"),
__source: {
fileName: a,
lineNumber: 135
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 139
}
}, o("Report Diagnostics"))), r.createElement("p", {
className: "info",
onClick: this.openPrivacyPage,
__source: {
fileName: a,
lineNumber: 141
}
}, o("Help us to improve Vivaldi by providing anonymous usage and\n diagnostics reports. No personal information is transmitted.\n Please refer to Vivaldi Privacy Policy for details."))), r.createElement("div", {
className: "setting-single pad-top",
__source: {
fileName: a,
lineNumber: 148
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 149
}
}, o("Typed History")), r.createElement("label", {
__source: {
fileName: a,
lineNumber: 150
}
}, r.createElement("input", {
type: "checkbox",
checked: e.URLFIELD_TYPED_HISTORY_ENABLED,
onChange: this.handleVivaldiSettingsChanged.bind(this, "URLFIELD_TYPED_HISTORY_ENABLED"),
__source: {
fileName: a,
lineNumber: 151
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 155
}
}, o("Enable in Addressfield"))), r.createElement("label", {
__source: {
fileName: a,
lineNumber: 158
}
}, r.createElement("input", {
type: "checkbox",
checked: e.SEARCH_FIELD_TYPED_HISTORY_ENABLED,
onChange: this.handleVivaldiSettingsChanged.bind(this, "SEARCH_FIELD_TYPED_HISTORY_ENABLED"),
__source: {
fileName: a,
lineNumber: 159
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 163
}
}, o("Enable in Searchfield"))))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 169
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 170
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 171
}
}, o("WebRTC IP Handling")), r.createElement("label", {
__source: {
fileName: a,
lineNumber: 172
}
}, r.createElement("input", {
ref: "webRTCIPHandlingPolicy",
type: "checkbox",
checked: t,
onChange: this.toggleChromePrivacyWebRTCChange,
__source: {
fileName: a,
lineNumber: 173
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 177
}
}, o("Broadcast IP for Best WebRTC Performance"))))));
return l(n, this.props.filter)
}
});
e.exports = u(m, h)
}, function(e, t, n) {
// =========================
// Function_668
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/quickCommands/quickCommandItem.jsx",
a = n(1),
r = n(3),
s = n(367),
o = n(137),
l = n(5),
c = a.createClass({
displayName: "QuickCommandItem",
getInitialState: function() {
return {
keyValue: this.props.commandObj.command.shortcut
}
},
cancel: function() {
this.props.onCancel()
},
saveKey: function(e, t) {
var n = {};
n[e] = t, this.setState({
keyValue: t
}), r.set(n), this.props.onCancel()
},
handleClick: function(e) {
this.props.editing || this.props.onExecute(this.props.commandObj), e.stopPropagation(), e.preventDefault()
},
mouseOver: function(e) {
this.props.onMouseOver(e, this.props.commandObj), e.stopPropagation(), e.preventDefault()
},
handleEdit: function(e) {},
render: function() {
return a.createElement("li", {
"data-selected": this.props.selected ? "" : null,
className: l({
"quick-command": !0,
editing: this.props.editing
}),
onClick: this.handleClick,
onMouseOver: this.mouseOver,
__source: {
fileName: i,
lineNumber: 49
}
}, this.props.commandObj.imageUrl && a.createElement("img", {
className: "quick-command-favicon",
src: this.props.commandObj.imageUrl,
__source: {
fileName: i,
lineNumber: 57
}
}), a.createElement("span", {
className: "quick-command-title",
__source: {
fileName: i,
lineNumber: 60
}
}, this.props.commandObj.name), "" !== this.props.commandObj.url && a.createElement("span", {
className: "quick-command-url",
__source: {
fileName: i,
lineNumber: 64
}
}, this.props.commandObj.url), "" !== this.state.keyValue && a.createElement("span", {
className: "view quick-command-meta",
onClick: "command" === this.props.commandObj.type ? this.handleEdit : null,
__source: {
fileName: i,
lineNumber: 69
}
}, o(this.state.keyValue)), "" !== this.props.commandObj.meta && a.createElement("span", {
className: "view quick-command-meta",
__source: {
fileName: i,
lineNumber: 76
}
}, this.props.commandObj.meta), this.props.editing && a.createElement(s, {
setFocus: !0,
command: this.props.commandObj,
editing: this.props.editing,
onCancel: this.cancel,
onSave: this.saveKey,
key: this.props.commandObj.key,
__source: {
fileName: i,
lineNumber: 81
}
}))
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_669
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/quickCommands/quickCommandSearch.jsx",
a = n(1),
r = n(11),
s = n(40),
o = n(51),
l = n(73),
c = n(94),
u = n(52),
A = n(25),
d = n(45),
h = n(572),
m = n(15),
p = n(668),
f = n(574),
g = n(2),
_ = n(4),
v = n(46),
b = v.ensureURLProtocol,
N = v.isUrlNavigable,
E = n(20),
S = E.urls,
T = n(7),
y = g("Filter Quick Commands"),
C = ["SEARCH_ENGINES", "DEFAULT_SEARCH_ENGINE", "QUICK_COMMAND_OPEN_URL_IN_NEW_TAB", "QC_LAUNCH_BOOKMARK_ON_NICK_MATCH"],
I = a.createClass({
displayName: "QuickCommandSearch",
mixins: [h, f],
mouseX: 0,
mouseY: 0,
getInitialState: function() {
return {
quickCommandSearchValue: "",
typeAheadHint: y,
selected: "",
editingCommandId: null,
bookmarkCache: [],
bookmarkNicks: [],
bookmarkFolders: [],
historyArr: [],
currentSearchEngine: null,
openTabs: []
}
},
componentWillMount: function() {
var e = this;
this.setMultiSelectInMixin(!1), this.setState({
bookmarkCache: o.getBookmarksRootNode()
}), _.tabs.query({
windowType: "normal"
}, function(t) {
t.forEach(function(e) {
e.type = "openTab", e.command = l.tabToPage(e)
}), e.setState({
openTabs: t
}), t.length > 0 && e.selectById(t[0].id)
})
},
componentDidUpdate: function(e, t) {
if (t.quickCommandSearchValue !== this.state.quickCommandSearchValue && "/." === this.state.quickCommandSearchValue) return m.newPage("http://slashdot.org/"), void this.props.onClose()
},
componentWillUnmount: function() {
this.KeyboardNavigationMixinOnBlur()
},
componentWillUpdate: function(e, t) {
this.state.navigationModel.clear()
},
onCancel: function() {
this.setState({
editingCommandId: null
}), this.KeyboardNavigationMixinOnFocus(), this.refs.quickCommand.focus()
},
onQuickCommandSearchKeyDown: function(e) {
e.keyCode === d.KEY_ESCAPE && (e.stopPropagation(), e.preventDefault())
},
onQuickCommandSearchKeyUp: function(e) {
if (this.setState({
editingCommandId: null
}), e.keyCode === d.KEY_ESCAPE) this.state.quickCommandSearchValue.length > 0 ? this.setState({
quickCommandSearchValue: "",
typeAheadHint: y
}) : this.props.onClose(), e.stopPropagation(), e.preventDefault();
else if (e.keyCode === d.KEY_RETURN) {
var t = this.SelectionMixinGetSelected();
this.executeCommand(this.getCommandByStringId(t))
}
},
getCommandByStringId: function(e) {
for (var t = this.getActions(), n = 0; n < t.length; n++)
if (t[n].id === e) return t[n]
},
executeCommand: function(e) {
var t = this;
if (this.props.onClose(), e && e.hasOwnProperty("type"))
if ("openTab" === e.type) _.windows.update(e.command.get("windowId"), {
focused: !0
}, function() {
_.tabs.update(e.command.get("id"), {
active: !0
})
});
else if ("bookmarkNick" === e.type) {
var n = {
bookmarks: [{
url: e.command.url
}],
inCurrent: this.props.vivaldiSettings.QUICK_COMMAND_OPEN_URL_IN_NEW_TAB === !1
};
s.open(n, !1)
} else if ("url" === e.type) {
var i = e.name.trim();
i.toLowerCase().startsWith("javascript:") ? m.openURL(i, {
inCurrent: !0
}) : m.openURL(b(i), this.props.vivaldiSettings.QUICK_COMMAND_OPEN_URL_IN_NEW_TAB ? {} : {
inCurrent: !0
})
} else "search" === e.type ? m.newPage(e.value) : "command" === e.type ? c.executeActions(e.id) : "history" === e.type ? m.newPage(e.command.url) : "bookmarkFolders" === e.type && ! function() {
var n = [];
_.bookmarks.getSubTree(e.command.id, function(e) {
e[0].children.forEach(function(e) {
e.url && n.push(e)
});
var i = {
bookmarks: n,
inCurrent: t.props.vivaldiSettings.QUICK_COMMAND_OPEN_URL_IN_NEW_TAB === !1
};
s.open(i, !0)
})
}()
},
searchChange: function(e) {
var t = this,
n = null,
i = e.target.value,
a = this.props.vivaldiSettings.SEARCH_ENGINES;
if (i.length > 0 && i.indexOf(" ") >= 1)
for (var r = i.substring(0, i.indexOf(" ")), s = 0; s < a.length; s++)
if (a[s].Keyword === r) {
n = a[s];
break
}
_.history.search({
text: i,
maxResults: 10
}, function(e) {
t.setState({
historyArr: e
})
}), i.length > 0 && _.bookmarks.search(i, function(e) {
t.setState({
bookmarkNicks: e,
bookmarkFolders: e.filter(function(e) {
return !e.url
})
})
}), this.setState({
quickCommandSearchValue: i,
currentSearchEngine: n
});
var o = this.findNickName(this.state.bookmarkCache, i);
o.id ? (this.selectById(o.id), this.props.vivaldiSettings.QC_LAUNCH_BOOKMARK_ON_NICK_MATCH && this.executeCommand(this.getCommandByStringId(o.id))) : (this.resetSelectionModel(), this.hintChange(i))
},
findNickName: function(e, t) {
if (!e || !t) return !1;
if (e.nickname === t) return e;
if (e.children)
for (var n = 0; n < e.children.length; n++) {
var i = this.findNickName(e.children[n], t);
if (i) return i
}
return !1
},
hintChange: function(e) {
if (e === y || "" === e) this.setState({
typeAheadHint: y
});
else {
var t = this.SelectionMixinGetSelected(),
n = this.getCommandByStringId(t),
i = this.refs.quickCommand.value;
if (t === -1 || "search" === n.type || "url" === n.type) this.setState({
typeAheadHint: ""
});
else if ("" === i) this.setState({
typeAheadHint: n.name
});
else {
var a = void 0;
a = "bookmarkNick" === n.type && n.meta.toLowerCase() === i.toLowerCase() ? " – " + n.name : 0 === n.name.toLowerCase().indexOf(i.toLowerCase()) ? n.name.substring(i.length, n.name.length) : n.name.toLowerCase().indexOf(i) !== -1 ? n.name.substring(n.name.toLowerCase().indexOf(i.toLowerCase()) + i.length, n.name.length) : n.url.substring(n.url.toLowerCase().indexOf(i.toLowerCase()) + i.length, n.url.length), this.setState({
typeAheadHint: i + a
})
}
}
},
selectById: function(e) {
this.SelectionMixinSelectItem(e);
var t = this.getCommandByStringId(e),
n = this.refs.selected ? r.findDOMNode(this.refs.selected) : null;
if (n) {
var i = this.refs.quickCommands,
a = n.offsetTop - i.scrollTop;
a > 252 ? i.scrollTop = n.offsetTop - 252 : a < 0 && (i.scrollTop = n.offsetTop), this.hintChange(t.name ? t.name : "")
}
},
onEdit: function(e, t) {
this.SelectionMixinSelectItem(e.id, t.ctrlKey, t.shiftKey, 2 === t.button), this.setState({
editingCommandId: e.id
})
},
select: function(e, t, n) {
this.SelectionMixinSelectItem(n, t.ctrlKey, t.shiftKey, 2 === t.button), this.SelectionMixinIsSelected(n) && e.key !== this.state.editingCommandId && this.setState({
editingCommandId: null
})
},
over: function(e, t) {
this.mouseX === e.pageX && this.mouseY === e.pageY || (this.mouseX = e.pageX, this.mouseY = e.pageY, this.SelectionMixinSelectItem(t.id))
},
getActions: function(e) {
return this.getUrl().concat(this.getSearch(), this.getDefaultSearch(), this.getOpenPages(), this.getCommands(), this.getBookmarkNicks(), this.getBookmarkFolders(), this.getHistory())
},
getCommands: function() {
for (var e = u.getQuickCommands(), t = e.length, n = [], i = 0; i < t; i++) e[i].label.toLowerCase().indexOf(this.state.quickCommandSearchValue.toLowerCase()) > -1 && n.push({
id: e[i].name,
name: e[i].label,
type: "command",
faviconurl: "",
command: e[i],
searchString: e[i].label
});
return n
},
getOpenPages: function() {
var e = this;
return T.compact(this.state.openTabs.map(function(t) {
var n = t.command,
i = S.getDisplayTitle(n) + n.get("url"),
a = null;
if (e.state.quickCommandSearchValue && (a = new RegExp(e.state.quickCommandSearchValue.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"), "i")), !a || i.match(a)) return {
id: n.get("id"),
name: S.getDisplayTitle(n),
url: S.isInternalUrl(n.get("url")) ? "" : n.get("url"),
type: "openTab",
imageUrl: n.get("favIconUrl"),
searchString: i,
command: n
}
}))
},
getHistory: function() {
for (var e = this.state.historyArr.length, t = [], n = 0; n < e; n++)(this.state.historyArr[n].title + this.state.historyArr[n].url).toLowerCase().indexOf(this.state.quickCommandSearchValue.toLowerCase()) > -1 && t.push({
id: this.state.historyArr[n].id,
name: this.state.historyArr[n].title,
url: S.isInternalUrl(this.state.historyArr[n].url) ? "" : this.state.historyArr[n].url,
type: "history",
imageUrl: "chrome://favicon/" + this.state.historyArr[n].url,
searchString: this.state.historyArr[n].title + this.state.historyArr[n].url,
command: this.state.historyArr[n]
});
return t
},
getBookmarkNicks: function() {
for (var e = this, t = this.state.bookmarkNicks.length, n = [], i = 0; i < t; i++) this.state.bookmarkNicks[i].url && (this.state.bookmarkNicks[i].nickname + this.state.bookmarkNicks[i].url + this.state.bookmarkNicks[i].title).toLowerCase().indexOf(this.state.quickCommandSearchValue.toLowerCase()) > -1 && n.push({
id: this.state.bookmarkNicks[i].id,
name: this.state.bookmarkNicks[i].title,
url: this.state.bookmarkNicks[i].url,
meta: this.state.bookmarkNicks[i].nickname,
type: "bookmarkNick",
imageUrl: "chrome://favicon/" + this.state.bookmarkNicks[i].url,
searchString: this.state.bookmarkNicks[i].nickname + this.state.bookmarkNicks[i].url + this.state.bookmarkNicks[i].title,
command: this.state.bookmarkNicks[i]
});
return n.sort(function(t) {
return t.meta.toLowerCase() === e.state.quickCommandSearchValue.toLowerCase() ? -1 : 1
}), n
},
getBookmarkFolders: function() {
for (var e = this.state.bookmarkFolders.length, t = [], n = 0; n < e; n++) t.push({
id: this.state.bookmarkFolders[n].id,
name: this.state.bookmarkFolders[n].title,
url: "",
meta: this.state.bookmarkFolders[n].nickname,
type: "bookmarkFolders",
imageUrl: "/resources/folder@2x.png",
searchString: this.state.bookmarkFolders[n].nickname + this.state.bookmarkFolders[n].title,
command: this.state.bookmarkFolders[n]
});
return t
},
getUrl: function() {
var e = [];
return this.state.quickCommandSearchValue && e.push({
id: this.state.quickCommandSearchValue,
name: this.state.quickCommandSearchValue.trim(),
url: "",
meta: "",
type: "url",
imageUrl: "chrome://favicon/" + this.state.quickCommandSearchValue,
searchString: this.state.quickCommandSearchValue,
command: "fixed"
}), e
},
getSearch: function() {
var e = [];
if (this.state.currentSearchEngine) {
var t = this.state.quickCommandSearchValue.trim(),
n = t.substring(t.indexOf(" "), t.length),
i = this.state.currentSearchEngine.Url,
a = i.replace("%s", n.replace(" ", "+"));
e.push({
id: this.state.currentSearchEngine.Name,
name: g("Search “$1” on $2", [n.trim(), this.state.currentSearchEngine.Name]),
url: "",
meta: "",
type: "search",
imageUrl: this.state.currentSearchEngine.Image,
searchString: this.state.quickCommandSearchValue,
command: "fixed",
value: a
})
}
return e
},
getDefaultSearch: function() {
var e = [],
t = this.props.vivaldiSettings.SEARCH_ENGINES,
n = parseInt(this.props.vivaldiSettings.DEFAULT_SEARCH_ENGINE);
if (this.state.quickCommandSearchValue && n && !this.state.currentSearchEngine) {
for (var i = {}, a = 0; a < t.length; a++)
if (t[a].Id === n) {
i = t[a];
break
}
var r = encodeURIComponent(this.state.quickCommandSearchValue.trim()),
s = i.Url,
o = s.replace("%s", r);
e.push({
id: i.Name,
name: g("Search “$1” on $2", [this.state.quickCommandSearchValue.trim(), i.Name]),
url: "",
meta: "",
type: "search",
imageUrl: i.Image,
searchString: this.state.quickCommandSearchValue,
command: "fixed",
value: o
})
}
return e
},
renderActions: function(e) {
var t = this;
return e.map(function(e) {
t.KeyboardNavigationMixinAddToNavigationList(e.id);
var n = t.SelectionMixinIsSelected(e.id);
return a.createElement(p, {
ref: n ? "selected" : "",
key: e.id,
commandObj: e,
selected: n,
onSave: t.saveKey,
onExecute: t.executeCommand,
onEdit: t.onEdit,
editing: t.state.editingCommandId === e.id,
onCancel: t.onCancel,
onMouseOver: t.over,
__source: {
fileName: i,
lineNumber: 566
}
})
})
},
renderBookmarkNicks: function() {
return this.getBookmarkNicks().length > 0 ? a.createElement("span", {
__source: {
fileName: i,
lineNumber: 585
}
}, a.createElement("div", {
className: "quick-command-sectionheader",
__source: {
fileName: i,
lineNumber: 586
}
}, g("Bookmarks")), a.createElement("ul", {
className: "quick-commands-bookmarks",
__source: {
fileName: i,
lineNumber: 587
}
}, this.renderActions(this.getBookmarkNicks()))) : null
},
renderBookmarkFolders: function() {
return this.getBookmarkFolders().length > 0 ? a.createElement("span", {
__source: {
fileName: i,
lineNumber: 600
}
}, a.createElement("div", {
className: "quick-command-sectionheader",
__source: {
fileName: i,
lineNumber: 601
}
}, g("Open All Bookmarks in Folder")), a.createElement("ul", {
className: "quick-commands-bookmarks",
__source: {
fileName: i,
lineNumber: 604
}
}, this.renderActions(this.getBookmarkFolders()))) : null
},
renderUrl: function() {
var e = this.state.quickCommandSearchValue.trim().toLowerCase();
return this.getUrl().length > 0 && N(e) || e.startsWith("javascript:") ? a.createElement("span", {
__source: {
fileName: i,
lineNumber: 619
}
}, a.createElement("div", {
className: "quick-command-sectionheader",
__source: {
fileName: i,
lineNumber: 620
}
}, g("Go to Address")), a.createElement("ul", {
className: "quick-commands-bookmarks",
__source: {
fileName: i,
lineNumber: 623
}
}, this.renderActions(this.getUrl()))) : null
},
renderSearch: function() {
return this.getSearch().length > 0 ? a.createElement("span", {
__source: {
fileName: i,
lineNumber: 636
}
}, a.createElement("div", {
className: "quick-command-sectionheader",
__source: {
fileName: i,
lineNumber: 637
}
}, g("verb", "Search")), a.createElement("ul", {
className: "quick-commands-bookmarks",
__source: {
fileName: i,
lineNumber: 640
}
}, this.renderActions(this.getSearch()))) : null
},
renderDefaultSearch: function() {
return this.getDefaultSearch().length > 0 ? a.createElement("span", {
__source: {
fileName: i,
lineNumber: 653
}
}, a.createElement("div", {
className: "quick-command-sectionheader",
__source: {
fileName: i,
lineNumber: 654
}
}, g("Default Search")), a.createElement("ul", {
className: "quick-commands-bookmarks",
__source: {
fileName: i,
lineNumber: 657
}
}, this.renderActions(this.getDefaultSearch()))) : null
},
renderOpenTabs: function() {
return this.getOpenPages().length > 0 ? a.createElement("span", {
__source: {
fileName: i,
lineNumber: 670
}
}, a.createElement("div", {
className: "quick-command-sectionheader",
__source: {
fileName: i,
lineNumber: 671
}
}, g("Tabs")), a.createElement("ul", {
className: "quick-commands-tabs",
__source: {
fileName: i,
lineNumber: 672
}
}, this.renderActions(this.getOpenPages()))) : null
},
renderHistory: function() {
return this.getHistory().length > 0 ? a.createElement("span", {
__source: {
fileName: i,
lineNumber: 685
}
}, a.createElement("div", {
className: "quick-command-sectionheader",
__source: {
fileName: i,
lineNumber: 686
}
}, g("History")), a.createElement("ul", {
className: "quick-commands-history",
__source: {
fileName: i,
lineNumber: 687
}
}, this.renderActions(this.getHistory()))) : null
},
renderCommands: function() {
return this.getCommands().length > 0 ? a.createElement("span", {
__source: {
fileName: i,
lineNumber: 700
}
}, a.createElement("div", {
className: "quick-command-sectionheader",
__source: {
fileName: i,
lineNumber: 701
}
}, g("Commands")), a.createElement("ul", {
className: "quick-commands-actions",
__source: {
fileName: i,
lineNumber: 702
}
}, this.renderActions(this.getCommands()))) : null
},
render: function() {
return a.createElement("div", {
className: "quick-command-container",
onFocus: this.KeyboardNavigationMixinOnFocus,
__source: {
fileName: i,
lineNumber: 714
}
}, a.createElement("div", {
className: "qc-entry",
__source: {
fileName: i,
lineNumber: 716
}
}, a.createElement("input", {
tabIndex: "-1",
readOnly: !0,
ref: "quickCommandHint",
className: "quick-command-search-hint",
value: this.state.typeAheadHint,
__source: {
fileName: i,
lineNumber: 717
}
}), a.createElement("input", {
autoFocus: !0,
ref: "quickCommand",
className: "quick-command-search",
onKeyDown: this.onQuickCommandSearchKeyDown,
onKeyUp: this.onQuickCommandSearchKeyUp,
value: this.state.quickCommandSearchValue,
onChange: this.searchChange,
__source: {
fileName: i,
lineNumber: 723
}
})), a.createElement("div", {
className: "quick-commands",
ref: "quickCommands",
__source: {
fileName: i,
lineNumber: 733
}
}, this.renderUrl(), this.renderSearch(), this.renderDefaultSearch(), this.renderOpenTabs(), this.renderCommands(), this.state.quickCommandSearchValue && this.renderBookmarkNicks(), this.state.quickCommandSearchValue && this.renderBookmarkFolders(), this.state.quickCommandSearchValue && this.renderHistory()))
}
});
e.exports = A(I, C)
}, function(e, t, n) {
// =========================
// Function_670
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/savedpasswords/savedPasswordItem.jsx",
a = n(1),
r = n(2),
s = a.createClass({
displayName: "SavedPasswordItem",
render: function() {
return a.createElement("div", {
className: "setting-single controls",
__source: {
fileName: i,
lineNumber: 7
}
}, a.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(313)
},
__source: {
fileName: i,
lineNumber: 8
}
}), a.createElement("label", {
__source: {
fileName: i,
lineNumber: 10
}
}, a.createElement("input", {
type: "text",
value: this.props.savedPassword.origin,
tabIndex: "-1",
readOnly: !0,
__source: {
fileName: i,
lineNumber: 11
}
})), a.createElement("label", {
__source: {
fileName: i,
lineNumber: 16
}
}, a.createElement("input", {
type: "text",
value: this.props.savedPassword.username,
tabIndex: "-1",
readOnly: !0,
__source: {
fileName: i,
lineNumber: 17
}
})), a.createElement("input", {
type: "button",
className: "circular clearkey",
title: r("Delete Password"),
onClick: this.props.onDelete,
__source: {
fileName: i,
lineNumber: 22
}
}))
}
});
e.exports = s
}, function(e, t, n) {
// =========================
// Function_671
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/savedpasswords/savedPasswords.jsx",
a = n(1),
r = n(10),
s = n(25),
o = n(670),
l = n(34),
c = n(12),
u = n(2),
A = n(4),
d = n(36),
h = "profile.password_manager_enabled",
m = [h],
p = a.createClass({
displayName: "SavedPasswords",
getInitialState: function() {
return {
savedPasswordsData: [],
confirmation: !1,
toRemove: null
}
},
componentWillMount: function() {
this.getSavedPassords()
},
getSavedPassords: function() {
var e = this;
A.savedpasswords.getList(function(t) {
e.setState({
savedPasswordsData: t
})
})
},
handleSavePasswordChange: function(e) {
var t = e.target.checked,
n = {
preferenceKey: h,
preferenceValue: {
boolean: t
},
preferenceType: "boolean"
};
r.settings.setPreference(n)
},
deleteSavedPassword: function() {
var e = this;
A.savedpasswords.remove(this.state.toRemove.id, function() {
e.getSavedPassords()
}), this.setState({
confirmation: !1,
toRemove: null
})
},
onAskToDelete: function(e) {
this.setState({
confirmation: !0,
toRemove: e
})
},
onCancel: function() {
this.setState({
confirmation: !1,
toRemove: null
}), this.props.onClose()
},
renderModal: function() {
var e = d.parse(this.state.toRemove.origin).hostname;
return a.createElement(l, {
onRequestClose: this.onCancel,
dialogWidth: 400,
__source: {
fileName: i,
lineNumber: 76
}
}, a.createElement("div", {
className: "dialog-new-bookmark-folder",
__source: {
fileName: i,
lineNumber: 77
}
}, a.createElement("header", {
className: "dialog-header",
__source: {
fileName: i,
lineNumber: 78
}
}, a.createElement("h1", {
className: "dialog-title",
__source: {
fileName: i,
lineNumber: 79
}
}, u("Delete password for $1?", [e || this.state.toRemove.origin]))), a.createElement("div", {
className: "dialog-content",
__source: {
fileName: i,
lineNumber: 84
}
}, a.createElement("p", {
__source: {
fileName: i,
lineNumber: 85
}
}, u("Password for user “$1” on page “$2” will be removed.", [this.state.toRemove.username, this.state.toRemove.origin]))), a.createElement("footer", {
className: "dialog-footer",
__source: {
fileName: i,
lineNumber: 91
}
}, a.createElement("input", {
type: "button",
className: "primary",
onClick: this.deleteSavedPassword,
value: u("other", "Delete"),
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 92
}
}), a.createElement("input", {
type: "button",
onClick: this.onCancel,
value: u("Cancel"),
__source: {
fileName: i,
lineNumber: 97
}
}))))
},
render: function() {
var e = this,
t = a.createElement("div", {
className: "saved-passwords setting-group unlimited",
__source: {
fileName: i,
lineNumber: 108
}
}, a.createElement("h2", {
__source: {
fileName: i,
lineNumber: 109
}
}, u("Passwords")), a.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: i,
lineNumber: 110
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 111
}
}, a.createElement("input", {
type: "checkbox",
onChange: this.handleSavePasswordChange,
checked: this.props.vivaldiSettings[h],
__source: {
fileName: i,
lineNumber: 112
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 116
}
}, u("Save Webpage Passwords")))), this.state.confirmation && this.renderModal(), this.state.savedPasswordsData.length > 0 ? a.createElement("div", {
className: "saved-passwords",
__source: {
fileName: i,
lineNumber: 121
}
}, a.createElement("div", {
className: "header",
__source: {
fileName: i,
lineNumber: 122
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 123
}
}, u("Website")), a.createElement("label", {
__source: {
fileName: i,
lineNumber: 124
}
}, u("Account Name"))), a.createElement("div", {
className: "password_list",
__source: {
fileName: i,
lineNumber: 126
}
}, this.state.savedPasswordsData.map(function(t) {
return a.createElement(o, {
key: t.id,
savedPassword: t,
onDelete: e.onAskToDelete.bind(e, t),
__source: {
fileName: i,
lineNumber: 130
}
})
}))) : a.createElement("div", {
className: "saved-passwords",
__source: {
fileName: i,
lineNumber: 141
}
}, a.createElement("p", {
__source: {
fileName: i,
lineNumber: 142
}
}, u("No saved passwords found."))));
return c(t, this.props.filter)
}
});
e.exports = s(p, m)
}, function(e, t, n) {
// =========================
// Function_672
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/search/createSearchEngineDlg.jsx",
a = n(1),
r = n(369),
s = n(34),
o = a.createClass({
displayName: "CreateSearchEngineDlg",
getInitialState: function() {
return {
msg: "",
shown: !0,
modalShown: !1
}
},
componentWillReceiveProps: function() {
this.setState({
shown: !0
})
},
handleClose: function() {
var e = {
dialogText: this.state.value
};
this.state.shown && this.props.onClose(e), this.setState({
shown: !this.state.shown
})
},
getLayeredComponentRootNode: function() {
return this.props.parentDiv
},
render: function() {
return this.state.shown ? a.createElement(s, {
onRequestClose: this.handleClose,
__source: {
fileName: i,
lineNumber: 33
}
}, a.createElement("div", {
className: "dialog-addsearch",
__source: {
fileName: i,
lineNumber: 34
}
}, a.createElement(r, {
showAsDlg: !0,
onClose: this.handleClose,
name: this.props.name,
url: this.props.url,
__source: {
fileName: i,
lineNumber: 35
}
}))) : null
}
});
e.exports = o
}, function(e, t, n) {
// =========================
// Function_673
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var r = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/search/searchEngines.jsx",
s = n(1),
o = i(s),
l = n(3),
c = i(l),
u = n(13),
A = i(u),
d = n(369),
h = i(d),
m = n(2),
p = i(m),
f = n(7),
g = i(f),
_ = n(5),
v = i(_),
b = n(12),
N = i(b),
E = n(34),
S = i(E),
T = n(46),
y = o.default.createClass({
displayName: "SearchEngines",
mixins: [A.default],
vivaldiSettingsKeys: ["ADDRESS_BAR_SUGGEST_ENABLED", "ADDRESS_BAR_SUGGEST_NICKNAME_ENABLED", "DEFAULT_SEARCH_ENGINE", "SEARCH_ENGINES", "SEARCH_FIELD_ENABLED", "SEARCH_FIELD_OPEN_NEW_TAB", "SEARCH_FIELD_SUGGEST_ENABLED", "URLBAR_SEARCH_DISABLED"],
getInitialState: function() {
return {
SEARCH_ENGINES: [],
adding: !1,
defaultSearchEngineId: -1,
selectedSearchEngineId: -1,
foundSearchEngine: !1,
seUrl: "",
seSuggestUrl: "",
seName: "",
seKeyword: "",
seFavicon: "",
confirmation: !1
}
},
saveVivaldiSettingFromEvent: function(e, t, n) {
c.default.set(a({}, e, n.target[t]))
},
componentWillReceiveProps: function(e) {
if (this.state.SEARCH_ENGINES && this.state.SEARCH_ENGINES.length > 0 && e.filter && e.filter.length > 0) {
for (var t = this.state.SEARCH_ENGINES, n = 0; n < t.length; n++)
if ((t[n].Keyword + t[n].Url + t[n].Name).toLowerCase().indexOf(e.filter.toLowerCase()) > -1) return void this.setState({
foundSearchEngine: !0
});
this.setState({
foundSearchEngine: !1
})
}
},
onSearchEngineChanged: function() {
var e = this;
c.default.set({
SEARCH_ENGINES: this.state.SEARCH_ENGINES.map(function(t) {
return e.state.selectedSearchEngineId === t.Id && (t.Url = e.refs.urlInput.value, t.Name = e.refs.nameInput.value, t.Keyword = e.refs.keywordInput.value, t.SuggestUrl = e.refs.suggestInput.value, t.FaviconUrl = e.state.seFavicon), t
})
}), this.setState({
selectedSearchEngineId: -1,
seUrl: "",
seSuggestUrl: "",
seName: "",
seKeyword: "",
seFavicon: ""
})
},
deleteSearchEngine: function(e) {
var t = g.default.reject(g.default.map(this.state.SEARCH_ENGINES, function(e) {
return delete e._Text, e
}), function(t) {
return t.Id === e
});
c.default.set({
SEARCH_ENGINES: t
}), this.setState({
selectedSearchEngineId: -1
})
},
cancel: function() {
this.setState({
adding: !1,
selectedSearchEngineId: -1
})
},
createSearchEngine: function(e) {
var t = g.default.map(this.state.SEARCH_ENGINES, function(e) {
return delete e._Text, e
}),
n = Math.max.apply(Math, t.map(function(e) {
return e.Id
}));
t.push({
Id: n ? n + 1 : 0,
Name: e.name,
Keyword: e.keyword,
Url: e.url
}), this.setState({
adding: !1
}), c.default.set({
SEARCH_ENGINES: t
})
},
restoreSearchEngines: function() {
var e = c.default.getDefault("SEARCH_ENGINES"),
t = c.default.getDefault("DEFAULT_SEARCH_ENGINE");
c.default.set({
DEFAULT_SEARCH_ENGINE: t,
SEARCH_ENGINES: e
}), this.setState({
selectedSearchEngineId: -1,
adding: !1,
confirmation: !1
})
},
addNewSearchEngine: function() {
this.setState({
adding: !this.state.adding,
selectedSearchEngineId: -1
})
},
edit: function(e, t) {
this.setState({
adding: !1,
selectedSearchEngineId: e
}, function() {
t()
})
},
onSearchEngineSelected: function(e) {
if (this.state.selectedSearchEngineId === e) this.setState({
selectedSearchEngineId: -1,
seUrl: "",
seSuggestUrl: "",
seName: "",
seKeyword: "",
seFavicon: ""
});
else {
var t = g.default.find(this.state.SEARCH_ENGINES, {
Id: parseInt(e)
});
this.setState({
selectedSearchEngineId: e,
seUrl: t.Url,
seName: t.Name,
seSuggestUrl: t.SuggestUrl,
seKeyword: t.Keyword,
seFavicon: t.FaviconUrl
})
}
},
toggleSearchEnabled: function(e) {
var t = e.target.checked;
c.default.set({
SEARCH_FIELD_ENABLED: t
})
},
toggleUrlbarSearch: function(e) {
var t = e.target.checked;
c.default.set({
URLBAR_SEARCH_DISABLED: !t
})
},
setDefault: function(e) {
c.default.set({
DEFAULT_SEARCH_ENGINE: e.toString()
}), this.setState({
selectedSearchEngineId: -1,
adding: !1
})
},
confirmRestoreSearch: function() {
this.setState({
confirmation: !0
})
},
onCancel: function() {
this.setState({
confirmation: !1
})
},
keyDownModal: function(e) {
27 === e.keyCode && this.onCancel()
},
renderModal: function() {
return o.default.createElement(S.default, {
dialogWidth: 400,
__source: {
fileName: r,
lineNumber: 233
}
}, o.default.createElement("div", {
className: "dialog-restore-search",
__source: {
fileName: r,
lineNumber: 234
}
}, o.default.createElement("header", {
className: "dialog-header",
__source: {
fileName: r,
lineNumber: 235
}
}, o.default.createElement("h1", {
className: "dialog-title",
__source: {
fileName: r,
lineNumber: 236
}
}, (0, p.default)("Restore Default Search Engines?"))), o.default.createElement("div", {
className: "dialog-content",
onKeyDown: this.keyDownModal,
__source: {
fileName: r,
lineNumber: 240
}
}, o.default.createElement("p", {
__source: {
fileName: r,
lineNumber: 241
}
}, (0, p.default)("Search engines will be reset to default settings, which will\n also reset your custom search engines."))), o.default.createElement("footer", {
className: "dialog-footer",
onKeyDown: this.keyDownModal,
__source: {
fileName: r,
lineNumber: 246
}
}, o.default.createElement("input", {
type: "button",
className: "danger",
onClick: this.restoreSearchEngines,
value: (0, p.default)("Restore"),
__source: {
fileName: r,
lineNumber: 247
}
}), o.default.createElement("input", {
type: "button",
onClick: this.onCancel,
value: (0, p.default)("Cancel"),
autoFocus: !0,
__source: {
fileName: r,
lineNumber: 252
}
}))))
},
renderList: function() {
var e = this;
return this.state.SEARCH_ENGINES.map(function(t) {
var n = t.Id === parseInt(e.state.DEFAULT_SEARCH_ENGINE),
i = void 0;
return i = t.FaviconUrl ? t.FaviconUrl : "chrome://favicon/origin/" + t.Url, o.default.createElement("li", {
className: "controls",
key: t.Id,
onDoubleClick: e.onSearchEngineSelected.bind(e, t.Id),
__source: {
fileName: r,
lineNumber: 275
}
}, o.default.createElement("span", {
className: "favicon",
__source: {
fileName: r,
lineNumber: 278
}
}, o.default.createElement("img", {
src: i,
alt: "",
width: "16",
height: "16",
__source: {
fileName: r,
lineNumber: 279
}
})), o.default.createElement("span", {
className: "name",
__source: {
fileName: r,
lineNumber: 281
}
}, t.Name), o.default.createElement("span", {
className: "keyword",
title: (0, p.default)("Keyboard Shortcut"),
__source: {
fileName: r,
lineNumber: 282
}
}, t.Keyword), o.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 285
}
}, o.default.createElement("input", {
type: "button",
disabled: n,
className: "circular defaultkey",
title: n ? (0, p.default)("Default Search Engine") : (0, p.default)("searchengine", "Set as Default"),
onClick: e.setDefault.bind(e, t.Id),
__source: {
fileName: r,
lineNumber: 286
}
}), o.default.createElement("input", {
type: "button",
className: "circular editkey",
title: (0, p.default)("Edit Search Engine"),
onClick: e.onSearchEngineSelected.bind(e, t.Id),
__source: {
fileName: r,
lineNumber: 294
}
}), o.default.createElement("input", {
type: "button",
disabled: n,
className: "circular clearkey",
title: (0, p.default)("Remove Search Engine"),
onClick: e.deleteSearchEngine.bind(e, t.Id),
__source: {
fileName: r,
lineNumber: 298
}
})))
})
},
changeValue: function(e, t) {
var n = {};
n[e] = t.target.value, this.setState(n)
},
changeFavicon: function(e) {
var t = this,
n = (0, T.ensureURLProtocol)(e.target.value.trim());
if (n) {
var i = document.createElement("a");
i.href = n;
var a = i.protocol + "//" + i.host + "/favicon.ico";
this.getDataUri(a, function(e) {
t.setState({
seFavicon: e
})
})
}
},
getDataUri: function(e, t) {
var n = new Image;
n.onload = function() {
var n = document.createElement("canvas");
n.width = this.naturalWidth, n.height = this.naturalHeight, n.getContext("2d").drawImage(this, 0, 0), t(n.toDataURL(e))
}, n.src = e
},
render: function() {
if (!this.state.SEARCH_ENGINES || !this.state.DEFAULT_SEARCH_ENGINE) return null;
var e = o.default.createElement("section", {
__source: {
fileName: r,
lineNumber: 349
}
}, this.state.confirmation && this.renderModal(), o.default.createElement("h2", {
__source: {
fileName: r,
lineNumber: 351
}
}, (0, p.default)("noun", "Search")), o.default.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: r,
lineNumber: 352
}
}, o.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 353
}
}, o.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 354
}
}, o.default.createElement("input", {
type: "checkbox",
checked: this.state.SEARCH_FIELD_ENABLED,
onChange: this.toggleSearchEnabled,
__source: {
fileName: r,
lineNumber: 355
}
}), o.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 358
}
}, (0, p.default)("Show Search Field in Address Bar")))), o.default.createElement("div", {
className: "setting-single pad-left",
__source: {
fileName: r,
lineNumber: 361
}
}, o.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 362
}
}, o.default.createElement("input", {
type: "checkbox",
checked: this.state.SEARCH_FIELD_OPEN_NEW_TAB,
disabled: !this.state.SEARCH_FIELD_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "SEARCH_FIELD_OPEN_NEW_TAB", "checked"),
__source: {
fileName: r,
lineNumber: 363
}
}), o.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 368
}
}, (0, p.default)("Always open in new tab")))), o.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 372
}
}, o.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 373
}
}, o.default.createElement("input", {
type: "checkbox",
checked: this.state.URLBAR_SEARCH_DISABLED === !1,
onChange: this.toggleUrlbarSearch,
__source: {
fileName: r,
lineNumber: 374
}
}), o.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 377
}
}, (0, p.default)("Search in Address Field"))))), o.default.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: r,
lineNumber: 382
}
}, o.default.createElement("div", {
id: "searchSuggest",
className: "setting-group",
__source: {
fileName: r,
lineNumber: 383
}
}, o.default.createElement("h3", {
__source: {
fileName: r,
lineNumber: 384
}
}, (0, p.default)("Allow Search Suggestions in")), o.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 385
}
}, o.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 386
}
}, o.default.createElement("input", {
type: "checkbox",
checked: this.state.ADDRESS_BAR_SUGGEST_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "ADDRESS_BAR_SUGGEST_ENABLED", "checked"),
__source: {
fileName: r,
lineNumber: 387
}
}), o.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 391
}
}, (0, p.default)("Address Field")))), o.default.createElement("div", {
className: "setting-single pad-left",
__source: {
fileName: r,
lineNumber: 394
}
}, o.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 395
}
}, o.default.createElement("input", {
type: "checkbox",
checked: this.state.ADDRESS_BAR_SUGGEST_NICKNAME_ENABLED,
disabled: !this.state.ADDRESS_BAR_SUGGEST_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "ADDRESS_BAR_SUGGEST_NICKNAME_ENABLED", "checked"),
__source: {
fileName: r,
lineNumber: 396
}
}), o.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 401
}
}, (0, p.default)("Only when Using Search Engine Nickname")))), o.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 404
}
}, o.default.createElement("label", {
__source: {
fileName: r,
lineNumber: 405
}
}, o.default.createElement("input", {
type: "checkbox",
checked: this.state.SEARCH_FIELD_SUGGEST_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "SEARCH_FIELD_SUGGEST_ENABLED", "checked"),
__source: {
fileName: r,
lineNumber: 406
}
}), o.default.createElement("span", {
__source: {
fileName: r,
lineNumber: 410
}
}, (0, p.default)("Search Field")))))), o.default.createElement("div", {
className: (0, v.default)({
"setting-group": !0,
unlimited: !0,
"setting-search-engine": !0,
default: this.props.default
}),
__source: {
fileName: r,
lineNumber: 415
}
}, o.default.createElement("h3", {
__source: {
fileName: r,
lineNumber: 421
}
}, (0, p.default)("Search Engines")), o.default.createElement("div", {
className: "setting-subgroup",
__source: {
fileName: r,
lineNumber: 422
}
}, o.default.createElement("ul", {
className: "se-list",
__source: {
fileName: r,
lineNumber: 423
}
}, this.renderList()), parseInt(this.state.selectedSearchEngineId) > -1 && o.default.createElement("div", {
className: "setting-group unlimited search-engine-create pad-top",
__source: {
fileName: r,
lineNumber: 428
}
}, o.default.createElement("h3", {
__source: {
fileName: r,
lineNumber: 431
}
}, (0, p.default)("Edit Search Engine")), o.default.createElement("div", {
className: "setting-flexgroup",
__source: {
fileName: r,
lineNumber: 433
}
}, o.default.createElement("input", {
ref: "urlInput",
className: "searchengine_url setting-single-flex",
type: "text",
title: (0, p.default)("Search Engine Address"),
placeholder: (0, p.default)("URL"),
value: this.state.seUrl,
onChange: this.changeValue.bind(this, "seUrl"),
onBlur: this.changeFavicon,
__source: {
fileName: r,
lineNumber: 434
}
})), o.default.createElement("div", {
className: "setting-flexgroup",
__source: {
fileName: r,
lineNumber: 445
}
}, o.default.createElement("input", {
ref: "suggestInput",
className: "searchengine_url setting-single-flex",
type: "text",
title: (0, p.default)("Suggest Address"),
placeholder: (0, p.default)("Suggest URL"),
value: this.state.seSuggestUrl,
onChange: this.changeValue.bind(this, "seSuggestUrl"),
__source: {
fileName: r,
lineNumber: 446
}
})), o.default.createElement("div", {
className: "setting-flexgroup",
__source: {
fileName: r,
lineNumber: 456
}
}, o.default.createElement("input", {
className: "setting-single-flex",
type: "text",
ref: "nameInput",
placeholder: (0, p.default)("Description"),
value: this.state.seName,
onChange: this.changeValue.bind(this, "seName"),
__source: {
fileName: r,
lineNumber: 457
}
}), o.default.createElement("input", {
ref: "keywordInput",
className: "searchengine_keyword setting-single-noflex",
type: "text",
title: (0, p.default)("Shortcut for Search Engine"),
placeholder: (0, p.default)("Nickname"),
value: this.state.seKeyword,
onChange: this.changeValue.bind(this, "seKeyword"),
__source: {
fileName: r,
lineNumber: 464
}
})), o.default.createElement("div", {
className: "setting-flexgroup",
__source: {
fileName: r,
lineNumber: 474
}
}, o.default.createElement("input", {
type: "button",
className: "setting-single-noflex primary",
onClick: this.onSearchEngineChanged,
value: (0, p.default)("OK"),
__source: {
fileName: r,
lineNumber: 475
}
}), o.default.createElement("input", {
type: "button",
className: "setting-single-noflex",
onClick: this.cancel,
value: (0, p.default)("Cancel"),
__source: {
fileName: r,
lineNumber: 479
}
})))), this.state.adding === !0 && o.default.createElement(h.default, {
onClose: this.cancel,
onCreate: this.createSearchEngine,
__source: {
fileName: r,
lineNumber: 489
}
}), this.state.adding === !1 && o.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 495
}
}, o.default.createElement("input", {
type: "button",
onClick: this.addNewSearchEngine,
value: (0, p.default)("Add New Search Engine"),
__source: {
fileName: r,
lineNumber: 496
}
})), o.default.createElement("div", {
className: "setting-single",
__source: {
fileName: r,
lineNumber: 501
}
}, o.default.createElement("input", {
type: "button",
onClick: this.confirmRestoreSearch,
value: (0, p.default)("Restore Defaults"),
__source: {
fileName: r,
lineNumber: 502
}
}))));
return this.state.foundSearchEngine ? e : (0, N.default)(e, this.props.filter)
}
});
e.exports = y
}, function(e, t) {
// =========================
// Function_674
// =========================
"use strict";
function n(e) {
function t(e) {
var t, a = 0,
r = 0,
s = 0,
o = 0,
l = 0,
c = 0;
for (t = 0; t < e.length; t++) "0" === e[t] ? l += 1 : "4" === e[t] && (l -= 1), l > a && (a = l), l < r && (r = l);
for (t = 0; t < e.length; t++) "2" === e[t] ? c -= 1 : "6" === e[t] && (c += 1), c > s && (s = c), c < o && (o = c);
return r > 0 && (r = 0), o > 0 && (o = 0), (i - 2 * n) / Math.max(Math.abs(a - r), Math.abs(s - o))
}
var n = 40,
i = 200,
a = 8,
r = "#006ed7",
s = 50,
o = 4,
l = 4;
this.points = [], this.points_buffer = [], this.stopped = !0, this.canvas = e, this.init_points = function() {
this.points = [], this.points_buffer = [];
var e = {
x: n,
y: n
};
this.points.push(e);
var r, s = t(this.sequence);
for (r = 0; r < this.sequence.length; r++) {
var o = {};
"0" === this.sequence[r] ? (o.x = this.points[r].x + s, o.y = this.points[r].y) : "2" === this.sequence[r] ? (o.x = this.points[r].x, o.y = this.points[r].y + s) : "4" === this.sequence[r] ? (o.x = this.points[r].x - s, o.y = this.points[r].y) : "6" === this.sequence[r] && (o.x = this.points[r].x, o.y = this.points[r].y - s), this.points.push(o)
}
var l = this.points[0].x,
c = this.points[0].y,
u = this.points[0].x,
A = this.points[0].y;
for (r = 1; r < this.points.length; r++) this.points[r].x < l && (l = this.points[r].x), this.points[r].x > u && (u = this.points[r].x), this.points[r].y < c && (c = this.points[r].y), this.points[r].y > A && (A = this.points[r].y);
if (l < n) {
for (r = 0; r < this.points.length; r++) this.points[r].x += -(l - n);
u += -(l - n)
}
if (c < n) {
for (r = 0; r < this.points.length; r++) this.points[r].y += -(c - n);
A += -(c - n)
}
for (r = 0; r < this.points.length; r++) this.points[r].x += (i - n - u) / 2, this.points[r].y += (i - n - A - a) / 2;
for (r = 0; r < this.points.length; r++) {
var d = {
x: this.points[r].x,
y: this.points[r].y
};
this.points_buffer.push(d)
}
}, this.reset_points = function() {
var e;
for (e = 0; e < this.points_buffer.length; e++) this.points[e].x = this.points_buffer[e].x, this.points[e].y = this.points_buffer[e].y
}, this.draw_point = function(e) {
this.ctx.beginPath(), this.ctx.arc(e.x, e.y, a, 0, 2 * Math.PI, !0), this.ctx.closePath(), this.ctx.fillStyle = r, this.ctx.fill()
}, this.idx = 0, this.timeout = 0, this.draw_segment = function() {
if (!this.stopped) {
if (this.idx >= this.points.length) return this.timeout >= s ? (this.timeout = 0, this.idx = 0, this.reset_points(), void(this.requestId = window.requestAnimationFrame(this.draw_segment.bind(this)))) : (this.ctx.fillStyle = "rgba(255,255,255,0.15)", this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height), this.timeout++, void(this.requestId = window.requestAnimationFrame(this.draw_segment.bind(this))));
this.timeout = 0, this.ctx.fillStyle = "rgba(255,255,255,0.1)", this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height), this.draw_point(this.points[this.idx]), !this.points[this.idx + 1] || this.points[this.idx].x === this.points[this.idx + 1].x && this.points[this.idx].y === this.points[this.idx + 1].y ? (this.idx++, this.draw_segment()) : (this.points[this.idx].x < this.points[this.idx + 1].x ? this.points[this.idx].x += o : this.points[this.idx].x > this.points[this.idx + 1].x && (this.points[this.idx].x -= o), this.points[this.idx].y < this.points[this.idx + 1].y ? this.points[this.idx].y += l : this.points[this.idx].y > this.points[this.idx + 1].y && (this.points[this.idx].y -= l), this.requestId = window.requestAnimationFrame(this.draw_segment.bind(this)))
}
}, this.clear_canvas = function() {
this.ctx.fillStyle = "rgb(255,255,255)", this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height)
}, this.start = function(e) {
this.sequence = e, this.ctx = this.canvas.getContext("2d"), this.ctx.lineWidth = 3, this.clear_canvas(), this.init_points(), this.stopped && (this.stopped = !1, this.requestId = window.requestAnimationFrame(this.draw_segment.bind(this)))
}, this.stop = function() {
this.stopped = !0, this.current_point_index = 0, this.timeout = 0, this.idx = 0, window.cancelAnimationFrame(this.requestId)
}
}
e.exports = n
}, function(e, t, n) {
// =========================
// Function_675
// =========================
(function(t) {
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/MouseGestures.jsx",
r = n(1),
s = n(674),
o = n(52),
l = n(94),
c = n(2),
u = n(34),
A = n(12),
d = n(3),
h = n(13),
m = n(10),
p = r.createClass({
displayName: "MouseGestures",
mixins: [h],
vivaldiSettingsKeys: ["MOUSE_GESTURES_ENABLED", "ALT_GESTURES_ENABLED"],
selected: void 0,
getDefaultProps: function() {
return {
filter: ""
}
},
getInitialState: function() {
return {
commandArray: o.getUserEditableCommands(),
assignedArray: o.getCommandsGestures(),
rockerGestures: d.getSync("vivaldi.rocker_gestures_enabled"),
selectedCommand: null,
addingGesture: 0,
gestureExists: !1,
angleMap: this.populateAngleMap(),
confirmation: !1
}
},
componentWillMount: function() {
var e = this;
this.state.selectedCommand || (this.setState({
selectedCommand: this._getTopCommand()
}), "all" !== this.props.categoryTitle && t.nextTick(function() {
return e.refs.gestureList.focus()
}))
},
componentDidMount: function() {
o.addChangeListener(this._onCommandStoreChange)
},
componentWillUnmount: function() {
void 0 !== this.animation && this.animation.stop(), o.removeChangeListener(this._onCommandStoreChange)
},
_onCommandStoreChange: function() {
this.setState({
commandArray: o.getUserEditableCommands(),
assignedArray: o.getCommandsGestures(),
addingGesture: 0
})
},
_getCommandByGesture: function(e) {
return this.state.commandArray.find(function(t) {
if (t.gestures && t.gestures[0] === e) return t
})
},
_getTopCommand: function() {
return this.state.commandArray.find(function(e) {
return e.gestures
})
},
animation: void 0,
onGestureListChange: function(e) {
var t = this.state.selectedCommand,
n = e && "focus" === e.type && t && t.gestures[0] ? t.gestures[0] : e.target.value,
i = e && "focus" === e.type && t ? t : this._getCommandByGesture(n);
n && "number" == typeof parseInt(n) && (this.animation || (this.animation = new s(this.refs.gestureCanvas)), this.animation.stop(), this.animation.start(n), this.setState({
addingGesture: 0,
selectedCommand: i
}))
},
checkChange: function() {
var e = {
preferenceKey: "vivaldi.rocker_gestures_enabled",
preferenceValue: {
boolean: !this.state.rockerGestures
},
preferenceType: "boolean"
};
m.settings.setPreference(e), this.setState({
rockerGestures: !this.state.rockerGestures
})
},
addGesture: function() {
this.setState({
addingGesture: 1
})
},
onCancelGesture: function() {
this.moves = [], this.clearAnimation(), this.setState({
addingGesture: 0,
selectedCommand: this._getTopCommand()
})
},
removeGesture: function() {
var e = {
gestures: null,
shortcut: this.state.selectedCommand.shortcut,
showInQC: this.state.selectedCommand.showInQC
};
d.set(i({}, this.state.selectedCommand.name, e)), this.setState({
selectedCommand: null
})
},
editGesture: function(e) {
var t = this.state.selectedCommand;
e.target[0] && (t = this.state.commandArray.filter(function(t) {
if (t.name === e.target[0].value) return !0
})[0]), this.setState({
addingGesture: 2,
selectedCommand: t
})
},
restoreGestures: function() {
l.restoreCommandGestures(), this.setState({
confirmation: !1
})
},
confirmRestore: function() {
this.setState({
confirmation: !0
})
},
onCancel: function() {
this.setState({
confirmation: !1
})
},
keyDownModal: function(e) {
27 === e.keyCode && this.onCancel()
},
consolidateCommands: function() {
var e = this.state.commandArray.filter(function(e) {
return !e.gestures && e
});
return e
},
save: function() {
var e = this,
n = {
gestures: [this.moves],
shortcut: this.state.selectedCommand.shortcut,
showInQC: this.state.selectedCommand.showInQC
};
d.set(i({}, this.state.selectedCommand.name, n)), this.moves = [], t.nextTick(function() {
return e.refs.gestureList.focus()
})
},
saveVivaldiSettingFromEvent: function(e, t, n) {
d.set(i({}, e, n.target[t]))
},
paint: !1,
lastX: !1,
lastY: !1,
moves: [],
pointX: new Array,
pointY: new Array,
pointDrag: new Array,
populateAngleMap: function() {
var e = 2 * Math.PI / 4,
t = 2 * Math.PI / 100,
n = [],
i = void 0,
a = void 0;
for (i = -e / 2; i <= 2 * Math.PI - e / 2; i += t) a = 2 * Math.floor((i + e / 2) / e), n.push(a);
return n
},
addPoint: function(e, t, n) {
this.pointX.push(e), this.pointY.push(t), this.pointDrag.push(n)
},
addMove: function(e, t) {
var n = 2 * Math.PI / 4,
i = Math.atan2(t, e) + n / 2;
i < 0 && (i += 2 * Math.PI);
var a = Math.floor(i / (2 * Math.PI) * 100);
this.moves.push(this.state.angleMap[a])
},
redraw: function() {
var e = this.refs.gestureCanvas,
t = e.getContext("2d");
t.clearRect(0, 0, t.canvas.width, t.canvas.height), t.strokeStyle = "#df4b2b", t.lineJoin = "round", t.lineWidth = 16;
for (var n = 0; n < this.pointX.length; n++) t.beginPath(), this.pointDrag[n] && n ? t.moveTo(this.pointX[n - 1], this.pointY[n - 1]) : t.moveTo(this.pointX[n] - 1, this.pointY[n]), t.lineTo(this.pointX[n], this.pointY[n]), t.closePath(), t.stroke()
},
penDown: function(e) {
if (!(2 !== this.state.addingGesture || e.button && 0 !== e.button)) {
e.touches && (e = e.touches[0]), this.clearAnimation(), this.clearCanvas(), this.moves = [], this.paint = !0;
var t = e.target.getBoundingClientRect();
this.addPoint(e.pageX - t.left, e.pageY - t.top), this.redraw()
}
},
penMove: function(e) {
if (2 === this.state.addingGesture && (e.touches && (e = e.touches[0]), this.paint)) {
var t = e.target.getBoundingClientRect();
if (this.addPoint(e.pageX - t.left, e.pageY - t.top, !0), this.lastX === !1) return this.lastX = e.pageX - t.left, void(this.lastY = e.pageY - t.top);
var n = e.pageX - t.left - this.lastX,
i = e.pageY - t.top - this.lastY,
a = n * n + i * i,
r = 10,
s = r * r;
a > s && (this.lastX = e.pageX - t.left, this.lastY = e.pageY - t.top, this.addMove(n, i)), this.redraw()
}
},
penUp: function() {
if (2 === this.state.addingGesture && (this.paint = !1, !(this.moves && this.moves.length < 3))) {
var e = this.moves.map(function(e, t, n) {
if (e !== n[t - 1] && e === n[t + 1]) return e
}).filter(function(e) {
return void 0 !== e
});
e.length > 5 && (e = e.splice(e.length - 5, e.length)), this.moves = e.toString().split(",").join(""), this.animation = new s(this.refs.gestureCanvas), this.animation.start(this.moves), this.setState({
gestureExists: Boolean(this.state.assignedArray[this.moves])
})
}
},
penLeave: function() {
this.paint && (this.paint = !1, this.moves = [], this.forceUpdate())
},
clearAnimation: function() {
if (void 0 !== this.animation) {
this.animation.stop();
var e = this.refs.gestureCanvas,
t = e.getContext("2d");
t.clearRect(0, 0, e.width, e.height)
}
},
clearCanvas: function() {
this.paint = !1, this.pointX = new Array, this.pointY = new Array, this.pointDrag = new Array;
var e = this.refs.gestureCanvas,
t = e.getContext("2d");
t.clearRect(0, 0, e.width, e.height)
},
renderGesture: function() {
return r.createElement("canvas", {
ref: "gestureCanvas",
width: "200",
height: "200",
onTouchStart: this.penDown,
onTouchMove: this.penMove,
onTouchEnd: this.penUp,
onTouchCancel: this.penLeave,
onMouseDown: this.penDown,
onMouseMove: this.penMove,
onMouseUp: this.penUp,
onMouseLeave: this.penLeave,
__source: {
fileName: a,
lineNumber: 373
}
})
},
renderAvailableCommands: function() {
var e = this.consolidateCommands();
return e.map(function(e) {
return r.createElement("option", {
key: "id-command-" + e.name,
value: e.name,
__source: {
fileName: a,
lineNumber: 392
}
}, e.gestureOnLink ? e.label + " / " + e.gestureOnLink.replace(/\s*\(.*?\)\s*/g, "").trim() : e.label)
})
},
renderCommands: function() {
for (var e = [], t = 0; t < this.state.commandArray.length; t++) {
var n = this.state.commandArray[t];
if (n.gestures && (n.actualLabel = n.label, e.push(n), n.gestureOnLink)) {
var i = Object.create(n);
i.actualLabel = i.gestureOnLink, i.duplicate = !0, e.push(i)
}
}
return e.map(function(e) {
return r.createElement("option", {
key: "id-gesture-" + e.actualLabel.split(" ").join("_"),
disabled: e.duplicate,
value: e.duplicate ? e.gestures[0] + "i" : e.gestures[0],
__source: {
fileName: a,
lineNumber: 424
}
}, e.duplicate && "↳ ", e.actualLabel)
})
},
renderModal: function() {
return r.createElement(u, {
dialogWidth: 400,
__source: {
fileName: a,
lineNumber: 438
}
}, r.createElement("div", {
className: "dialog-restore-shortcuts",
__source: {
fileName: a,
lineNumber: 439
}
}, r.createElement("header", {
className: "dialog-header",
__source: {
fileName: a,
lineNumber: 440
}
}, r.createElement("h1", {
className: "dialog-title",
__source: {
fileName: a,
lineNumber: 441
}
}, c("Restore Gestures?"))), r.createElement("div", {
className: "dialog-content",
onKeyDown: this.keyDownModal,
__source: {
fileName: a,
lineNumber: 445
}
}, r.createElement("p", {
__source: {
fileName: a,
lineNumber: 446
}
}, c("All command gestures will be restored to default settings."))), r.createElement("footer", {
className: "dialog-footer",
onKeyDown: this.keyDownModal,
__source: {
fileName: a,
lineNumber: 450
}
}, r.createElement("input", {
type: "button",
className: "danger",
onClick: this.restoreGestures,
value: c("Restore"),
__source: {
fileName: a,
lineNumber: 451
}
}), r.createElement("input", {
type: "button",
onClick: this.onCancel,
value: c("Cancel"),
autoFocus: !0,
__source: {
fileName: a,
lineNumber: 456
}
}))))
},
render: function() {
var e = this.state.selectedCommand,
t = e && e.gestures ? e.gestures[0] : void 0,
i = !this.moves.length > 0,
s = r.createElement("div", {
__source: {
fileName: a,
lineNumber: 473
}
}, this.state.confirmation && this.renderModal(), r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 476
}
}, c("Mouse")), r.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: a,
lineNumber: 477
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 478
}
}, c("Gestures")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 480
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 481
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.MOUSE_GESTURES_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "MOUSE_GESTURES_ENABLED", "checked"),
__source: {
fileName: a,
lineNumber: 482
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 486
}
}, c("Allow Gestures"))), r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 488
}
}, c("Hold down right mouse button and perform\n a gesture to issue related command."))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 492
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 493
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.ALT_GESTURES_ENABLED,
disabled: !this.state.MOUSE_GESTURES_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "ALT_GESTURES_ENABLED", "checked"),
__source: {
fileName: a,
lineNumber: 494
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 499
}
}, c("Perform Gestures with ALT Key"))), r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 501
}
}, c("Use gestures with trackpad or other input\n device."))), r.createElement("div", {
className: "setting-single pad-top",
__source: {
fileName: a,
lineNumber: 505
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 506
}
}, c("Gesture Mapping")), r.createElement("div", {
className: "gesture-map setting-single",
__source: {
fileName: a,
lineNumber: 507
}
}, r.createElement("select", {
ref: "gestureList",
className: "gesture-list",
value: t,
onChange: this.onGestureListChange,
onFocus: this.onGestureListChange,
onBlur: this.clearAnimation,
size: "9",
__source: {
fileName: a,
lineNumber: 508
}
}, this.renderCommands()), r.createElement("div", {
className: 2 === this.state.addingGesture ? "active gesture" : "gesture",
__source: {
fileName: a,
lineNumber: 518
}
}, this.renderGesture())), r.createElement("div", {
className: "setting-single record-gesture",
__source: {
fileName: a,
lineNumber: 524
}
}, 0 === this.state.addingGesture && r.createElement("div", {
className: "toolbar icons",
__source: {
fileName: a,
lineNumber: 526
}
}, r.createElement("button", {
className: "button-toolbar add",
title: c("New gesture"),
onClick: this.addGesture,
dangerouslySetInnerHTML: {
__html: n(80)
},
__source: {
fileName: a,
lineNumber: 527
}
}), r.createElement("button", {
className: "button-toolbar delete",
title: c("Remove gesture"),
onClick: this.removeGesture,
disabled: !e,
dangerouslySetInnerHTML: {
__html: n(92)
},
__source: {
fileName: a,
lineNumber: 532
}
}), r.createElement("button", {
className: "button-toolbar edit",
title: c("Edit gesture"),
onClick: this.editGesture,
disabled: !e,
dangerouslySetInnerHTML: {
__html: n(217)
},
__source: {
fileName: a,
lineNumber: 538
}
}), r.createElement("input", {
type: "button",
value: c("Restore Default Gestures"),
onClick: this.confirmRestore,
__source: {
fileName: a,
lineNumber: 544
}
})), 1 === this.state.addingGesture && r.createElement("form", {
onSubmit: this.editGesture,
__source: {
fileName: a,
lineNumber: 551
}
}, r.createElement("h3", {
className: "pad-top",
__source: {
fileName: a,
lineNumber: 552
}
}, c("Pick a Command")), r.createElement("select", {
className: "command-list",
autoFocus: !0,
__source: {
fileName: a,
lineNumber: 553
}
}, this.renderAvailableCommands()), r.createElement("input", {
type: "submit",
value: c("Next..."),
__source: {
fileName: a,
lineNumber: 556
}
}), r.createElement("input", {
type: "button",
onClick: this.onCancelGesture,
value: c("Cancel"),
__source: {
fileName: a,
lineNumber: 558
}
})), 2 === this.state.addingGesture && r.createElement("div", {
className: "add-gesture",
__source: {
fileName: a,
lineNumber: 565
}
}, r.createElement("div", {
__source: {
fileName: a,
lineNumber: 566
}
}, r.createElement("h3", {
className: "pad-top",
__source: {
fileName: a,
lineNumber: 567
}
}, c("Recording “$1” Gesture", [e.gestureOnLink || e.label])), r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 572
}
}, c("Draw a new gesture in the\n highlighted gesture area above. Gesture may consist of\n horizontal and vertical lines, limited to maximum of five\n strokes. Once you are satisfied with the shape, add new\n gesture to your list."))), r.createElement("div", {
className: "save",
__source: {
fileName: a,
lineNumber: 578
}
}, r.createElement("input", {
type: "submit",
value: c("Save Gesture"),
onClick: this.save,
disabled: i || this.state.gestureExists,
__source: {
fileName: a,
lineNumber: 579
}
}), r.createElement("input", {
type: "button",
onClick: this.onCancelGesture,
value: c("Cancel"),
__source: {
fileName: a,
lineNumber: 583
}
}), this.state.gestureExists && r.createElement("p", {
className: "alert",
__source: {
fileName: a,
lineNumber: 587
}
}, c("This gesture already exists.")))))), null !== this.state.rockerGestures && r.createElement("div", {
className: "setting-single pad-top",
__source: {
fileName: a,
lineNumber: 599
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 600
}
}, c("Rocker Gestures")), r.createElement("label", {
__source: {
fileName: a,
lineNumber: 601
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.rockerGestures,
onChange: this.checkChange,
__source: {
fileName: a,
lineNumber: 602
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 605
}
}, c("Allow Rocker Gestures"))), r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 607
}
}, c("Press right mouse button followed by left\n mouse button click to go back in history. Press left mouse\n button followed by right click to advance forward in\n history.")))));
return A(s, this.props.filter)
}
});
e.exports = p
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_676
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/StartPage.jsx",
r = n(1),
s = n(5),
o = n(41),
l = n(3),
c = n(13),
u = n(12),
A = n(2),
d = [{
name: A("Mist"),
path: "../resources/bg.jpg"
}, {
name: A("Sunset"),
path: "../resources/bg_alt_1.jpg"
}, {
name: A("Starry Night"),
path: "../resources/bg_alt_2.jpg"
}, {
name: A("Pink Cloud"),
path: "../resources/bg_alt_3.jpg"
}, {
name: A("Jellyfish"),
path: "../resources/bg_alt_4.jpg"
}, {
name: A("Purple Lake"),
path: "../resources/bg_alt_5.jpg"
}, {
name: A("Wave"),
path: "../resources/bg_alt_6.jpg"
}],
h = [{
name: A("Default"),
hexValue: "#cccccc"
}, {
name: A("Blue"),
hexValue: "#bdd1de"
}, {
name: A("Pro"),
hexValue: "#313b41"
}],
m = r.createClass({
displayName: "Appearance",
mixins: [c],
vivaldiSettingsKeys: ["STARTPAGE_SHOW_IMAGE", "STARTPAGE_IMAGE", "STARTPAGE_IMAGE_USER_DEFINED", "STARTPAGE_IMAGE_STRETCH", "STARTPAGE_IMAGE_REPEAT", "STARTPAGE_BG_COLOR", "STARTPAGE_BG_COLOR_USER_DEFINED", "SPEEDDIAL_TITLES_VISIBLE", "SPEEDDIAL_ADDBUTTON_VISIBLE", "SPEEDDIAL_COLS"],
saveVivaldiSettingFromEvent: function(e, t, n) {
l.set(i({}, e, n.target[t]))
},
setStartpageImageStretch: function(e) {
var t = e.target.checked;
this.setState({
STARTPAGE_IMAGE_STRETCH: t,
STARTPAGE_IMAGE_REPEAT: !t && this.state.STARTPAGE_IMAGE_REPEAT
}), l.set({
STARTPAGE_IMAGE_STRETCH: t,
STARTPAGE_IMAGE_REPEAT: !t && this.state.STARTPAGE_IMAGE_REPEAT
})
},
setStartpageImageRepeat: function(e) {
var t = e.target.checked;
this.setState({
STARTPAGE_IMAGE_REPEAT: t,
STARTPAGE_IMAGE_STRETCH: !t && this.state.STARTPAGE_IMAGE_STRETCH
}), l.set({
STARTPAGE_IMAGE_REPEAT: t,
STARTPAGE_IMAGE_STRETCH: !t && this.state.STARTPAGE_IMAGE_STRETCH
})
},
setBackgroundImage: function(e) {
l.set({
STARTPAGE_SHOW_IMAGE: !0,
STARTPAGE_IMAGE: e
})
},
setBackgroundColor: function(e) {
l.set({
STARTPAGE_BG_COLOR: e,
STARTPAGE_SHOW_IMAGE: !1
})
},
setStartpageShowImage: function(e) {
var t = e.target.checked;
this.setState({
STARTPAGE_SHOW_IMAGE: t
}), l.set({
STARTPAGE_SHOW_IMAGE: t
})
},
setStartpageUserDefinedBgColor: function(e) {
var t = e.target.value;
this.setState({
STARTPAGE_BG_COLOR_USER_DEFINED: t
}), l.set({
STARTPAGE_BG_COLOR_USER_DEFINED: t
})
},
setStartpageUserDefinedImage: function(e) {
var t = e.target.files[0],
n = new FileReader;
n.onloadend = function(e) {
this.setState({
STARTPAGE_IMAGE_USER_DEFINED: e.target.result
}), l.set({
STARTPAGE_IMAGE_USER_DEFINED: e.target.result
})
}.bind(this), n.readAsDataURL(t)
},
handleColorClick: function() {
this.refs.bgColorPicker.click()
},
handleImageClick: function() {
this.refs.bgImagePicker.click()
},
render: function() {
var e = this,
t = s({
selectbox: !0,
"selectbox-selected": "user_defined" === this.state.STARTPAGE_BG_COLOR
}),
n = r.createElement("div", {
className: "settings-startpage",
__source: {
fileName: a,
lineNumber: 163
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 164
}
}, A("other", "Start Page")), r.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: a,
lineNumber: 166
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 167
}
}, A("Background Color")), h.map(function(t) {
var n = s({
selectbox: !0,
"selectbox-selected": e.state.STARTPAGE_BG_COLOR.toLowerCase() === t.hexValue
});
return r.createElement("button", {
key: t.name,
title: t.name,
className: n,
onClick: e.setBackgroundColor.bind(e, t.hexValue),
__source: {
fileName: a,
lineNumber: 177
}
}, r.createElement("div", {
className: "selectbox-image",
style: {
backgroundColor: t.hexValue
},
__source: {
fileName: a,
lineNumber: 182
}
}, r.createElement("svg", {
xmlns: "http://www.w3.org/2000/svg",
className: "selectbox-checkmark",
viewBox: "0 0 16 16",
__source: {
fileName: a,
lineNumber: 184
}
}, r.createElement("path", {
d: "M5.3 13.3L1.5 9.5 3 8l2.3 2.5L13 2.7 14.6 4l-8 8z",
__source: {
fileName: a,
lineNumber: 186
}
}))), r.createElement("div", {
className: "selectbox-title",
__source: {
fileName: a,
lineNumber: 189
}
}, t.name))
}), r.createElement("button", {
title: A("Custom"),
className: t,
onClick: this.setBackgroundColor.bind(this, "user_defined"),
__source: {
fileName: a,
lineNumber: 194
}
}, r.createElement("div", {
className: "selectbox-image",
style: {
backgroundColor: this.state.STARTPAGE_BG_COLOR_USER_DEFINED
},
__source: {
fileName: a,
lineNumber: 198
}
}, r.createElement("svg", {
xmlns: "http://www.w3.org/2000/svg",
className: "selectbox-checkmark",
viewBox: "0 0 16 16",
__source: {
fileName: a,
lineNumber: 200
}
}, r.createElement("path", {
d: "M5.3 13.3L1.5 9.5 3 8l2.3 2.5L13 2.7 14.6 4l-8 8z",
__source: {
fileName: a,
lineNumber: 202
}
}))), "user_defined" === this.state.STARTPAGE_BG_COLOR ? r.createElement("input", {
type: "button",
className: "startpage-colorpicker-trigger",
onClick: this.handleColorClick,
title: A("Change the Background Color"),
value: A("Change..."),
__source: {
fileName: a,
lineNumber: 206
}
}) : r.createElement("div", {
className: "selectbox-title",
__source: {
fileName: a,
lineNumber: 212
}
}, r.createElement("span", {
__source: {
fileName: a,
lineNumber: 213
}
}, A("Custom"))))), r.createElement("input", {
ref: "bgColorPicker",
type: "color",
value: this.state.STARTPAGE_BG_COLOR_USER_DEFINED,
onChange: this.setStartpageUserDefinedBgColor,
style: {
position: "absolute",
visibility: "hidden"
},
__source: {
fileName: a,
lineNumber: 220
}
}), r.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: a,
lineNumber: 225
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 226
}
}, A("Background Image")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 227
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 228
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.STARTPAGE_SHOW_IMAGE,
onChange: this.setStartpageShowImage,
__source: {
fileName: a,
lineNumber: 229
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 232
}
}, A("Show Background Image")))), d.map(function(t) {
var n = s({
selectbox: !0,
"selectbox-selected": t.path === e.state.STARTPAGE_IMAGE
});
return r.createElement("button", {
key: t.name,
title: t.name,
className: n,
onClick: e.setBackgroundImage.bind(e, t.path),
__source: {
fileName: a,
lineNumber: 244
}
}, r.createElement("div", {
className: "selectbox-image",
style: {
backgroundImage: "url(" + t.path + ")"
},
__source: {
fileName: a,
lineNumber: 249
}
}, r.createElement("svg", {
xmlns: "http://www.w3.org/2000/svg",
className: "selectbox-checkmark",
viewBox: "0 0 16 16",
__source: {
fileName: a,
lineNumber: 251
}
}, r.createElement("path", {
d: "M5.3 13.3L1.5 9.5 3 8l2.3 2.5L13 2.7 14.6 4l-8 8z",
__source: {
fileName: a,
lineNumber: 253
}
}))), r.createElement("div", {
className: "selectbox-title",
__source: {
fileName: a,
lineNumber: 256
}
}, t.name))
}), r.createElement("button", {
title: A("Custom"),
className: "selectbox " + ("user_defined" === this.state.STARTPAGE_IMAGE ? "selectbox-selected" : ""),
onClick: this.setBackgroundImage.bind(this, "user_defined"),
__source: {
fileName: a,
lineNumber: 261
}
}, r.createElement("div", {
className: "selectbox-image",
style: {
backgroundImage: "url(" + this.state.STARTPAGE_IMAGE_USER_DEFINED + ")"
},
__source: {
fileName: a,
lineNumber: 265
}
}, r.createElement("svg", {
xmlns: "http://www.w3.org/2000/svg",
className: "selectbox-checkmark",
viewBox: "0 0 16 16",
__source: {
fileName: a,
lineNumber: 267
}
}, r.createElement("path", {
d: "M5.3 13.3L1.5 9.5 3 8l2.3 2.5L13 2.7 14.6 4l-8 8z",
__source: {
fileName: a,
lineNumber: 269
}
}))), "user_defined" === this.state.STARTPAGE_IMAGE ? r.createElement("input", {
type: "button",
className: "startpage-colorpicker-trigger",
onClick: this.handleImageClick,
title: A("Change the Background Image"),
value: A("Change..."),
__source: {
fileName: a,
lineNumber: 273
}
}) : r.createElement("div", {
className: "selectbox-title",
__source: {
fileName: a,
lineNumber: 279
}
}, r.createElement("span", {
__source: {
fileName: a,
lineNumber: 280
}
}, A("Custom")))), r.createElement("input", {
type: "file",
disabled: !this.state.STARTPAGE_SHOW_IMAGE,
ref: "bgImagePicker",
onChange: this.setStartpageUserDefinedImage,
style: {
position: "absolute",
visibility: "hidden"
},
__source: {
fileName: a,
lineNumber: 285
}
})), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 291
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 292
}
}, A("Background Image Options")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 293
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 294
}
}, r.createElement("input", {
type: "checkbox",
disabled: !this.state.STARTPAGE_SHOW_IMAGE,
checked: this.state.STARTPAGE_IMAGE_STRETCH,
onChange: this.setStartpageImageStretch,
__source: {
fileName: a,
lineNumber: 295
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 299
}
}, A("Scale to Fit")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 302
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 303
}
}, r.createElement("input", {
type: "checkbox",
disabled: !this.state.STARTPAGE_SHOW_IMAGE,
checked: this.state.STARTPAGE_IMAGE_REPEAT,
onChange: this.setStartpageImageRepeat,
__source: {
fileName: a,
lineNumber: 304
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 308
}
}, A("Repeat"))))), r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 314
}
}, A("Speed Dial")), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 316
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 317
}
}, A("Show Speed Dial Titles")), r.createElement(o, {
name: "SpeedDialTitles",
value: this.state.SPEEDDIAL_TITLES_VISIBLE,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "SPEEDDIAL_TITLES_VISIBLE", "value"),
__source: {
fileName: a,
lineNumber: 319
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 324
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 325
}
}, r.createElement("input", {
type: "radio",
value: "always",
__source: {
fileName: a,
lineNumber: 326
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 327
}
}, A("Always")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 330
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 331
}
}, r.createElement("input", {
type: "radio",
value: "hover",
__source: {
fileName: a,
lineNumber: 332
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 333
}
}, A("When Needed")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 336
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 337
}
}, r.createElement("input", {
type: "radio",
value: "never",
__source: {
fileName: a,
lineNumber: 338
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 339
}
}, A("Never")))))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 346
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 347
}
}, A("Speed Dial Layout")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 348
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 349
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.SPEEDDIAL_ADDBUTTON_VISIBLE,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "SPEEDDIAL_ADDBUTTON_VISIBLE", "checked"),
__source: {
fileName: a,
lineNumber: 350
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 354
}
}, A("Show “Add” button"))), r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 356
}
}, A("When disabled, new bookmarks can be added\n by double-clicking the Speed Dial background.")))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 362
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 363
}
}, A("Maximum Columns")), r.createElement("select", {
className: "max-columns",
value: this.state.SPEEDDIAL_COLS,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "SPEEDDIAL_COLS", "value"),
title: A("Number of Speed Dial columns"),
__source: {
fileName: a,
lineNumber: 365
}
}, r.createElement("option", {
value: "1",
__source: {
fileName: a,
lineNumber: 370
}
}, "1"), r.createElement("option", {
value: "2",
__source: {
fileName: a,
lineNumber: 371
}
}, "2"), r.createElement("option", {
value: "3",
__source: {
fileName: a,
lineNumber: 372
}
}, "3"), r.createElement("option", {
value: "4",
__source: {
fileName: a,
lineNumber: 373
}
}, "4"), r.createElement("option", {
value: "5",
__source: {
fileName: a,
lineNumber: 374
}
}, "5"), r.createElement("option", {
value: "6",
__source: {
fileName: a,
lineNumber: 375
}
}, "6"))));
return u(n, this.props.filter)
}
});
e.exports = m
}, function(e, t, n) {
// =========================
// Function_677
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/TabPage.jsx",
a = n(1),
r = n(72),
s = n(3),
o = n(12),
l = n(41),
c = n(20),
u = c.urls,
A = n(2),
d = a.createClass({
displayName: "TabPageSetting",
vivaldiSettingsKeys: ["DEFAULT_TAB_PAGE", "DEFAULT_TAB_CUSTOM_PAGE"],
getInitialState: function() {
return {
tabPage: s.getSync("DEFAULT_TAB_PAGE") || u.internals.startpage,
tabCustomPage: s.getSync("DEFAULT_TAB_CUSTOM_PAGE"),
startpage: u.internals.startpage,
blankpage: u.internals.blankpage,
homepage: s.getSync(r.kVivaldiHomepage)
}
},
saveInternal: function(e) {
var t = e.target.value;
t !== this.state.DEFAULT_TAB_PAGE ? s.set({
DEFAULT_TAB_PAGE: t
}) : "custom" === t && s.set({
DEFAULT_TAB_PAGE: this.state.tabCustomPage
}), this.setState({
tabPage: t
})
},
saveCustom: function() {
var e = this.refs.tabCustomPage.value;
"" === e.trim() || e.match(/^[a-zA-Z]+:\/\//) || e.startsWith("vivaldi:") || e.startsWith("chrome:") || e.startsWith("chrome-extension:") || e.startsWith("about:") || (e = "http://" + e), s.set({
DEFAULT_TAB_PAGE: e,
DEFAULT_TAB_CUSTOM_PAGE: e
}, this.setState({
tabPage: e,
tabCustomPage: e
}))
},
tabCustomPageChanged: function() {
this.setState({
tabCustomPage: this.refs.tabCustomPage.value
})
},
render: function() {
var e = this.state.tabPage,
t = a.createElement("div", {
className: "setting-group new-tab-page",
__source: {
fileName: i,
lineNumber: 69
}
}, a.createElement("h3", {
__source: {
fileName: i,
lineNumber: 70
}
}, A("other", "New Tab Page")), a.createElement(l, {
name: "tabPageSettings",
ref: "tabPageSettingsGroup",
value: e,
onChange: this.saveInternal,
__source: {
fileName: i,
lineNumber: 71
}
}, a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 75
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 76
}
}, a.createElement("input", {
type: "radio",
value: this.state.startpage,
__source: {
fileName: i,
lineNumber: 77
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 78
}
}, A("noun", "Start Page")))), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 81
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 82
}
}, a.createElement("input", {
type: "radio",
value: this.state.homepage,
__source: {
fileName: i,
lineNumber: 83
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 84
}
}, A("noun", "Homepage")))), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 87
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 88
}
}, a.createElement("input", {
type: "radio",
value: this.state.blankpage,
__source: {
fileName: i,
lineNumber: 89
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 90
}
}, A("Blank Page")))), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 93
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 94
}
}, a.createElement("input", {
type: "radio",
className: "pad-top",
value: this.state.tabCustomPage,
__source: {
fileName: i,
lineNumber: 95
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 98
}
}, a.createElement("input", {
type: "text",
ref: "tabCustomPage",
placeholder: A("Specific Page"),
onChange: this.tabCustomPageChanged,
disabled: this.state.tabPage !== this.state.tabCustomPage,
value: this.state.tabCustomPage,
onBlur: this.saveCustom,
__source: {
fileName: i,
lineNumber: 99
}
}))))));
return o(t, this.props.filter)
}
});
e.exports = d
}, function(e, t, n) {
// =========================
// Function_678
// =========================
(function(t) {
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/appearance.jsx",
r = n(1),
s = n(41),
o = n(3),
l = n(13),
c = n(12),
u = n(243),
A = n(47),
d = n(10),
h = n(2),
m = r.createClass({
displayName: "Appearance",
mixins: [l],
vivaldiSettingsKeys: ["CONTRAST_MINIMUM", "DIM_BLURRED", "LINUX_ALT_CONTROLS", "USE_NATIVE_WINDOW_DECORATIONS", "SHOW_VIVALDI_FOOTER", "MINIMALISTIC_UI_SHOW", "USE_ANIMATION", "USE_SETTINGS_WINDOW_AS_TAB", "USE_BUTTONS_IN_RANGE_CONTROLS"],
getInitialState: function() {
return {
initialZoom: 1
}
},
componentWillMount: function() {
var e = this;
d.zoom.getVivaldiUIZoom(function(t) {
return e.setState({
initialZoom: t
})
})
},
saveVivaldiSettingFromEvent: function(e, t, n) {
o.set(i({}, e, n.target[t]))
},
reportStatusBar: function(e) {
this.saveVivaldiSettingFromEvent("SHOW_VIVALDI_FOOTER", "value", e), "urls" === e.target.value && t.nextTick(function() {
return A.setStatus(h("Status Info set to Overlay"), 2e3)
})
},
handleZoomUpdated: function(e) {
d.zoom.setVivaldiUIZoom(e), this.setState({
initialZoom: e
})
},
render: function() {
var e = r.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: a,
lineNumber: 63
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 64
}
}, h("Window Appearance")), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 66
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 67
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 68
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.USE_NATIVE_WINDOW_DECORATIONS,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "USE_NATIVE_WINDOW_DECORATIONS", "checked"),
__source: {
fileName: a,
lineNumber: 69
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 73
}
}, h("Use Native Window"))), r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 75
}
}, h("This setting requires a restart to take full effect."))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 80
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 81
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.USE_SETTINGS_WINDOW_AS_TAB,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "USE_SETTINGS_WINDOW_AS_TAB", "checked"),
__source: {
fileName: a,
lineNumber: 82
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 87
}
}, h("Open Settings in a Tab")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 91
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 92
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.MINIMALISTIC_UI_SHOW,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "MINIMALISTIC_UI_SHOW", "checked"),
__source: {
fileName: a,
lineNumber: 93
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 97
}
}, h("Show User Interface")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 101
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 102
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.USE_ANIMATION,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "USE_ANIMATION", "checked"),
__source: {
fileName: a,
lineNumber: 103
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 107
}
}, h("Use Animation")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 111
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 112
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.USE_BUTTONS_IN_RANGE_CONTROLS,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "USE_BUTTONS_IN_RANGE_CONTROLS", "checked"),
__source: {
fileName: a,
lineNumber: 113
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 117
}
}, h("Use Buttons in Range Controls"))))), "linux" === this.props.platform && r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 122
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 123
}
}, h("Window Controls Position")), r.createElement(s, {
className: "linuxAltControls",
ref: "linuxAltControls",
name: "linuxAltControls",
value: this.state.LINUX_ALT_CONTROLS,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "LINUX_ALT_CONTROLS", "value"),
__source: {
fileName: a,
lineNumber: 124
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 130
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 131
}
}, r.createElement("input", {
type: "radio",
value: !1,
__source: {
fileName: a,
lineNumber: 132
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 133
}
}, h("Right Side")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 136
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 137
}
}, r.createElement("input", {
type: "radio",
value: !0,
__source: {
fileName: a,
lineNumber: 138
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 139
}
}, h("Left Side")))))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 146
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 147
}
}, h("Status Bar")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 148
}
}, r.createElement(s, {
name: "StatusBar",
className: "group",
value: this.state.SHOW_VIVALDI_FOOTER,
onChange: this.reportStatusBar,
__source: {
fileName: a,
lineNumber: 149
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 153
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 154
}
}, r.createElement("input", {
type: "radio",
value: "on",
__source: {
fileName: a,
lineNumber: 155
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 156
}
}, h("Show Status Bar")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 159
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 160
}
}, r.createElement("input", {
type: "radio",
value: "urls",
__source: {
fileName: a,
lineNumber: 161
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 162
}
}, h("Show Status Info Overlay")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 165
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 166
}
}, r.createElement("input", {
type: "radio",
value: "off",
__source: {
fileName: a,
lineNumber: 167
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 168
}
}, h("Hide Status Bar"))))))), r.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: a,
lineNumber: 175
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 176
}
}, h("User Interface Zoom")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 177
}
}, r.createElement(u, {
maxLevel: 2,
minLevel: .5,
step: .05,
delay: !0,
initialZoom: this.state.initialZoom,
onZoomUpdated: this.handleZoomUpdated,
__source: {
fileName: a,
lineNumber: 178
}
}))), r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 188
}
}, h("Color")), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 190
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 191
}
}, h("Contrast Adjustment")), r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 192
}
}, h("Rebalances the color palette. May cause\n dramatic color shifts.")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 194
}
}, r.createElement(s, {
name: "contrastMinimum",
className: "group",
value: this.state.CONTRAST_MINIMUM,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "CONTRAST_MINIMUM", "value"),
__source: {
fileName: a,
lineNumber: 195
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 201
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 202
}
}, r.createElement("input", {
type: "radio",
value: "0",
__source: {
fileName: a,
lineNumber: 203
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 204
}
}, h("No Modifications")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 207
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 208
}
}, r.createElement("input", {
type: "radio",
value: "4.5",
__source: {
fileName: a,
lineNumber: 209
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 210
}
}, h("Medium (WCAG AA)")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 213
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 214
}
}, r.createElement("input", {
type: "radio",
value: "7",
__source: {
fileName: a,
lineNumber: 215
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 216
}
}, h("High (WCAG AAA)")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 219
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 220
}
}, r.createElement("input", {
type: "radio",
value: "12",
__source: {
fileName: a,
lineNumber: 221
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 222
}
}, h("Maximum"))))))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 229
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 230
}
}, h("Background Window Behavior")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 232
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 233
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.DIM_BLURRED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "DIM_BLURRED", "checked"),
__source: {
fileName: a,
lineNumber: 234
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 238
}
}, h("Fade Foreground Colors"))))));
return c(e, this.props.filter)
}
});
e.exports = m
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_679
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/bookmarkBar.jsx",
r = n(1),
s = n(54),
o = n(350),
l = n(41),
c = n(3),
u = n(13),
A = n(2),
d = n(12),
h = r.createClass({
displayName: "BookmarkBar",
mixins: [u],
vivaldiSettingsKeys: ["BOOKMARK_BAR_POSITION", "BOOKMARK_BAR_VISIBLE", "BOOKMARK_BAR_DISPLAY"],
handleShowBookmarkBar: function() {
c.set({
BOOKMARK_BAR_VISIBLE: !this.state.BOOKMARK_BAR_VISIBLE
})
},
saveVivaldiSettingFromEvent: function(e, t, n) {
c.set(i({}, e, n.target[t]))
},
onFolderChange: function(e) {
s.setBookmarkBarFolder(e.target.value)
},
render: function() {
var e = r.createElement("div", {
__source: {
fileName: a,
lineNumber: 36
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 37
}
}, A("Bookmark Bar")), r.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: a,
lineNumber: 39
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 40
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 41
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.BOOKMARK_BAR_VISIBLE,
onChange: this.handleShowBookmarkBar,
__source: {
fileName: a,
lineNumber: 42
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 45
}
}, A("Show Bookmark Bar"))))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 50
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 51
}
}, A("Select Bookmark Bar Folder")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 52
}
}, r.createElement(o, {
onChange: this.onFolderChange,
__source: {
fileName: a,
lineNumber: 53
}
}))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 58
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 59
}
}, A("Bookmark Bar Position")), r.createElement(l, {
name: "bookmark-position",
value: this.state.BOOKMARK_BAR_POSITION,
ref: "bookmarkPositionGroup",
onChange: this.saveVivaldiSettingFromEvent.bind(this, "BOOKMARK_BAR_POSITION", "value"),
__source: {
fileName: a,
lineNumber: 60
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 65
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 66
}
}, r.createElement("input", {
type: "radio",
value: "top",
__source: {
fileName: a,
lineNumber: 67
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 68
}
}, A("Top")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 71
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 72
}
}, r.createElement("input", {
type: "radio",
value: "bottom",
__source: {
fileName: a,
lineNumber: 73
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 74
}
}, A("Bottom")))))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 80
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 81
}
}, A("Bookmark Bar Display")), r.createElement(l, {
name: "bookmark_bar_display",
ref: "bookmark_bar_display",
value: this.state.BOOKMARK_BAR_DISPLAY,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "BOOKMARK_BAR_DISPLAY", "value"),
__source: {
fileName: a,
lineNumber: 83
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 88
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 89
}
}, r.createElement("input", {
type: "radio",
value: "default",
__source: {
fileName: a,
lineNumber: 90
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 91
}
}, A("Text and Icon")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 94
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 95
}
}, r.createElement("input", {
type: "radio",
value: "text",
__source: {
fileName: a,
lineNumber: 96
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 97
}
}, A("Text Only")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 100
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 101
}
}, r.createElement("input", {
type: "radio",
value: "icon",
__source: {
fileName: a,
lineNumber: 102
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 103
}
}, A("Icon Only")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 106
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 107
}
}, r.createElement("input", {
type: "radio",
value: "iconexceptfolders",
__source: {
fileName: a,
lineNumber: 108
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 109
}
}, A("Bookmark Icon Only")))))));
return d(e, this.props.filter)
}
});
e.exports = h
}, function(e, t, n) {
// =========================
// Function_680
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/homePageSetting.jsx",
a = n(4),
r = n(1),
s = n(12),
o = n(10),
l = n(2),
c = n(72),
u = n(3),
A = "about:blank",
d = r.createClass({
displayName: "HomePageSetting",
getInitialState: function() {
return {
homePage: u.getSync(c.kVivaldiHomepage),
initialPage: u.getSync(c.kVivaldiHomepage),
updating: !1
}
},
saveHomePage: function() {
var e = this.state.homePage;
"" === e ? e = A : e.match(/^[a-zA-Z]+:\/\//) || e.match(/^vivaldi:/) || e.match(/^about:/) || (e = "http://" + e);
var t = {
preferenceKey: c.kVivaldiHomepage,
preferenceValue: {
string: e
},
preferenceType: "string"
};
o.settings.setPreference(t), a.runtime.lastError && console.warn("Error storing home page: " + a.runtime.lastError), this.setState({
initialPage: this.refs.homePage.value,
updating: !1
})
},
homePageChange: function(e) {
var t = e.target.value;
this.setState({
homePage: t,
updating: t !== this.state.saved
})
},
render: function() {
var e = r.createElement("div", {
className: "setting-group homepage",
__source: {
fileName: i,
lineNumber: 56
}
}, r.createElement("h3", {
__source: {
fileName: i,
lineNumber: 57
}
}, l("other", "Homepage")), r.createElement("form", {
className: "setting-single",
onSubmit: this.saveHomePage,
__source: {
fileName: i,
lineNumber: 58
}
}, r.createElement("input", {
type: "text",
ref: "homePage",
placeholder: l("Address"),
onChange: this.homePageChange,
value: this.state.homePage,
__source: {
fileName: i,
lineNumber: 60
}
}), r.createElement("input", {
type: "submit",
value: l("Save"),
disabled: !this.state.updating,
__source: {
fileName: i,
lineNumber: 65
}
})));
return s(e, this.props.filter)
}
});
e.exports = d
}, function(e, t, n) {
// =========================
// Function_681
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/menuType.jsx",
r = n(1),
s = n(41),
o = n(3),
l = n(13),
c = n(2),
u = n(12),
A = r.createClass({
displayName: "MenuType",
mixins: [l],
vivaldiSettingsKeys: ["VIVALDI_MENU_POSITION"],
saveVivaldiSettingFromEvent: function(e, t, n) {
o.set(i({}, e, n.target[t]))
},
render: function() {
var e = r.createElement("span", {
__source: {
fileName: a,
lineNumber: 22
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 23
}
}, c("Menu")), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 24
}
}, r.createElement(s, {
name: "menuPosition",
ref: "menuPositionGroup",
value: this.state.VIVALDI_MENU_POSITION,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "VIVALDI_MENU_POSITION", "value"),
className: "group",
__source: {
fileName: a,
lineNumber: 25
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 31
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 32
}
}, r.createElement("input", {
type: "radio",
value: "top",
__source: {
fileName: a,
lineNumber: 33
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 34
}
}, c("Horizontal Menu")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 37
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 38
}
}, r.createElement("input", {
type: "radio",
value: "vivaldi",
__source: {
fileName: a,
lineNumber: 39
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 40
}
}, c("Vivaldi Button")))))));
return u(e, this.props.filter)
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_682
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/networkSettings.jsx",
a = n(1),
r = n(10),
s = n(2),
o = n(12),
l = a.createClass({
displayName: "NetworkSettings",
onClick: function() {
r.importData.launchNetworkSettings(function(e) {})
},
render: function() {
var e = a.createElement("span", {
__source: {
fileName: i,
lineNumber: 13
}
}, a.createElement("h2", {
__source: {
fileName: i,
lineNumber: 15
}
}, s("Network")), a.createElement("div", {
className: "setting-group",
__source: {
fileName: i,
lineNumber: 17
}
}, a.createElement("h3", {
__source: {
fileName: i,
lineNumber: 18
}
}, s("Proxies")), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 20
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 21
}
}, a.createElement("input", {
type: "button",
value: s("Proxy Settings"),
onClick: this.onClick,
__source: {
fileName: i,
lineNumber: 22
}
})))));
return o(e, this.props.filter)
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_683
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/panels.jsx",
r = n(1),
s = n(41),
o = n(3),
l = n(13),
c = n(2),
u = n(12),
A = r.createClass({
displayName: "Panels",
mixins: [l],
vivaldiSettingsKeys: ["SHOW_PANEL_SWITCH", "PANEL_POSITION", "SHOW_NOTESPANEL_FOR_NEW_NOTES", "NOTES_ADD_SCREENSHOT", "TAB_COUNTER_DETECTION"],
saveVivaldiSettingFromEvent: function(e, t, n) {
o.set(i({}, e, n.target[t]))
},
render: function() {
var e = r.createElement("span", {
__source: {
fileName: a,
lineNumber: 25
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 26
}
}, c("Panels")), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 27
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 28
}
}, c("Panel Position")), r.createElement(s, {
name: "panelPosition",
ref: "panelPositionGroup",
value: this.state.PANEL_POSITION,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "PANEL_POSITION", "value"),
className: "group",
__source: {
fileName: a,
lineNumber: 29
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 35
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 36
}
}, r.createElement("input", {
type: "radio",
value: "left",
__source: {
fileName: a,
lineNumber: 37
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 38
}
}, c("Left Side")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 42
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 43
}
}, r.createElement("input", {
type: "radio",
value: "right",
__source: {
fileName: a,
lineNumber: 44
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 45
}
}, c("Right Side")))))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 52
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 53
}
}, c("Panel Options")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 54
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 55
}
}, r.createElement("input", {
type: "checkbox",
title: c("Display a panel toggle button along the side"),
checked: this.state.SHOW_PANEL_SWITCH,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "SHOW_PANEL_SWITCH", "checked"),
__source: {
fileName: a,
lineNumber: 56
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 61
}
}, c("Show Panel Toggle"))))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 66
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 67
}
}, c("Notes")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 68
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 69
}
}, r.createElement("input", {
type: "checkbox",
title: c("Show panel content when adding a note from a page"),
checked: this.state.SHOW_NOTESPANEL_FOR_NEW_NOTES,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "SHOW_NOTESPANEL_FOR_NEW_NOTES", "checked"),
__source: {
fileName: a,
lineNumber: 70
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 75
}
}, c("Open Panel Automatically")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 79
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 80
}
}, r.createElement("input", {
type: "checkbox",
title: c("Add a screenshot when adding a note from a page"),
checked: this.state.NOTES_ADD_SCREENSHOT,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "NOTES_ADD_SCREENSHOT", "checked"),
__source: {
fileName: a,
lineNumber: 81
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 86
}
}, c("Fetch Screenshot for New Notes")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 90
}
}, r.createElement("label", {
title: c("Detect and display numeric notification from page title in Tabs and Web Panels"),
__source: {
fileName: a,
lineNumber: 91
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.TAB_COUNTER_DETECTION,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_COUNTER_DETECTION", "checked"),
__source: {
fileName: a,
lineNumber: 92
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 96
}
}, c("Detect Page Title Notifications"))))));
return u(e, this.props.filter)
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_684
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/quickCommands.jsx",
r = n(1),
s = n(3),
o = n(2),
l = n(13),
c = n(12),
u = r.createClass({
displayName: "QuickCommands",
mixins: [l],
vivaldiSettingsKeys: ["QUICK_COMMAND_OPEN_URL_IN_NEW_TAB", "QC_LAUNCH_BOOKMARK_ON_NICK_MATCH"],
saveVivaldiSettingFromEvent: function(e, t, n) {
s.set(i({}, e, n.target[t]))
},
render: function() {
var e = r.createElement("span", {
__source: {
fileName: a,
lineNumber: 22
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 23
}
}, o("Quick Commands")), r.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: a,
lineNumber: 24
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 25
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 26
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.QUICK_COMMAND_OPEN_URL_IN_NEW_TAB,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "QUICK_COMMAND_OPEN_URL_IN_NEW_TAB", "checked"),
__source: {
fileName: a,
lineNumber: 27
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 32
}
}, o("Open Pages in New Tab")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 35
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 36
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.QC_LAUNCH_BOOKMARK_ON_NICK_MATCH,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "QC_LAUNCH_BOOKMARK_ON_NICK_MATCH", "checked"),
__source: {
fileName: a,
lineNumber: 37
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 42
}
}, o("Open Bookmarks on Nickname Match"))))));
return c(e, this.props.filter)
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_685
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/setVivaldiDefaultBrowserDlg.jsx",
a = n(1),
r = n(371),
s = n(34),
o = n(2),
l = a.createClass({
displayName: "SetVivaldiDefaultBrowserDlg",
getInitialState: function() {
return {
msg: "",
shown: !0,
modalShown: !1
}
},
handleClick: function() {
var e = {
dialogText: this.state.value
};
this.state.shown && this.props.onClose(e), this.setState({
shown: !this.state.shown
})
},
componentWillReceiveProps: function() {
this.setState({
shown: !0
})
},
render: function() {
return this.state.shown ? a.createElement(s, {
onRequestClose: this.handleClick,
viewMode: "default-browser slide",
__source: {
fileName: i,
lineNumber: 31
}
}, a.createElement("header", {
className: "dialog-header",
__source: {
fileName: i,
lineNumber: 32
}
}, a.createElement("h1", {
className: "dialog-title",
__source: {
fileName: i,
lineNumber: 33
}
}, o("Default Browser"))), a.createElement("div", {
className: "dialog-content",
__source: {
fileName: i,
lineNumber: 36
}
}, a.createElement(r, {
onClose: this.handleClick,
startup: !0,
__source: {
fileName: i,
lineNumber: 37
}
})), a.createElement("footer", {
className: "dialog-footer",
__source: {
fileName: i,
lineNumber: 41
}
}, a.createElement("input", {
type: "button",
value: o("Cancel"),
onClick: this.handleClick,
__source: {
fileName: i,
lineNumber: 42
}
}))) : null
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_686
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/specificSession.jsx",
r = n(1),
s = n(4),
o = n(12),
l = n(687),
c = n(45),
u = n(2),
A = n(10),
d = n(20),
h = d.urls,
m = n(73),
p = r.createClass({
displayName: "SpecificSession",
getInitialState: function() {
return {
STARTUP_SESSION_URLS: [],
hasUrlInInput: !1
}
},
componentWillMount: function() {
var e = this;
A.settings.getPreference("session.startup_urls", function(t) {
var n = t.preferenceValue.array,
i = n.map(function(e, t) {
return {
url: e,
id: t
}
});
e.setState({
STARTUP_SESSION_URLS: i
})
})
},
handleInputChange: function(e) {
if (e.target.value.length > 2 ? this.setState({
hasUrlInInput: !0
}) : this.setState({
hasUrlInInput: !1
}), e.keyCode === c.KEY_ESCAPE) e.target.value = "", this.setState({
hasUrlInInput: !1
});
else {
if (e.keyCode !== c.KEY_RETURN && e.keyCode !== c.KEY_ENTER) return;
e.target.value.length > 2 && this.addUrl()
}
},
saveChanges: function() {
for (var e = [], t = this.state.STARTUP_SESSION_URLS, n = 0; n < t.length; n++) e.push(t[n].url);
var i = {
preferenceKey: "session.startup_urls",
preferenceValue: {
array: e
},
preferenceType: "array"
};
A.settings.setPreference(i)
},
addUrl: function() {
var e = this.refs.createUrlField.value.trim();
e.indexOf("://") === -1 && (e = "http://" + e), this.refs.createUrlField.value = "", this.setState({
hasUrlInInput: !1
});
var t = 0;
this.state.STARTUP_SESSION_URLS.length > 0 && (t = Math.max.apply(Math, this.state.STARTUP_SESSION_URLS.map(function(e) {
return e.id ? e.id : 0
}))), this.state.STARTUP_SESSION_URLS.push({
url: e,
id: t + 1
}), this.saveChanges()
},
save: function(e) {
for (var t = this.state.STARTUP_SESSION_URLS, n = 0; n < t.length; n++)
if (t[n].id === e.id) {
var i = e.url;
i.indexOf(":") === -1 && (i = "http://" + i), t[n].url = i;
break
}
this.setState({
STARTUP_SESSION_URLS: t
}, function() {
this.saveChanges()
}.bind(this))
},
deleteUrl: function(e) {
for (var t = this.state.STARTUP_SESSION_URLS, n = 0; n < t.length; n++)
if (t[n].url === e.url) {
t.splice(n, 1);
break
}
this.setState({
STARTUP_SESSION_URLS: t
}, function() {
this.saveChanges()
}.bind(this))
},
useCurrentPages: function() {
var e = this;
s.tabs.query({
windowType: "normal"
}, function(t) {
var n = t.map(function(e) {
return m.tabToPage(e)
}).filter(function(e) {
return !h.isInternalPage(e)
}).map(function(e, t) {
return {
id: t + 1,
url: e.get("url")
}
});
e.setState({
STARTUP_SESSION_URLS: n
}), e.saveChanges()
})
},
render: function() {
var e = this.state.STARTUP_SESSION_URLS.map(function(e) {
return r.createElement(l, i({
urlItem: e,
key: e.id,
onDelete: this.deleteUrl.bind(this, e),
onSave: this.save
}, this.props, {
__source: {
fileName: a,
lineNumber: 145
}
}))
}.bind(this)),
t = r.createElement("div", {
className: "setting-group setting-startup-specific-pages",
__source: {
fileName: a,
lineNumber: 154
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 155
}
}, u("Startup Pages")), e, r.createElement("div", {
className: "setting-flexgroup",
__source: {
fileName: a,
lineNumber: 158
}
}, r.createElement("input", {
className: "setting-single-flex",
type: "text",
ref: "createUrlField",
value: this.props.url,
onKeyUp: this.handleInputChange,
placeholder: u("Enter page URL"),
__source: {
fileName: a,
lineNumber: 159
}
}), r.createElement("input", {
className: "setting-single-noflex",
type: "button",
onClick: this.addUrl,
disabled: !this.state.hasUrlInInput,
value: u("Add"),
__source: {
fileName: a,
lineNumber: 164
}
})), r.createElement("input", {
type: "button",
onClick: this.useCurrentPages,
value: u("Use Current Pages"),
__source: {
fileName: a,
lineNumber: 169
}
}));
return o(t, this.props.filter)
}
});
e.exports = p
}, function(e, t, n) {
// =========================
// Function_687
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/specificSessionItem.jsx",
a = n(1),
r = n(12),
s = n(2),
o = a.createClass({
displayName: "SpecificSessionItem",
handleUrlChange: function(e) {
var t = this.props.urlItem;
t.url = e.target.value, this.props.onSave(t)
},
render: function() {
var e = a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 16
}
}, a.createElement("input", {
className: "edit",
type: "text",
ref: "editField",
value: this.props.urlItem.url,
onChange: this.handleUrlChange,
__source: {
fileName: i,
lineNumber: 17
}
}), a.createElement("input", {
type: "button",
tabIndex: "-1",
className: "circular clearkey",
onClick: this.props.onDelete,
title: s("Remove page"),
__source: {
fileName: i,
lineNumber: 20
}
}));
return r(e, this.props.filter)
}
});
e.exports = o
}, function(e, t, n) {
// =========================
// Function_688
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/startupSetting.jsx",
r = n(2),
s = n(25),
o = n(12),
l = n(9),
c = n(41),
u = n(1),
A = n(686),
d = n(10),
h = n(72),
m = [h.kDeferredTabLoadingAfterRestore, h.kAlwaysLoadPinnedTabAfterRestore],
p = u.createClass({
displayName: "StartupSetting",
mixins: [l],
getInitialState: function() {
return {
STARTUP_OPTIONS: "last"
}
},
componentWillMount: function() {
d.importData.getStartupAction(function(e) {
this.setState({
STARTUP_OPTIONS: e
})
}.bind(this))
},
toggleDeferredTabLoading: function() {
d.settings.togglePreference(h.kDeferredTabLoadingAfterRestore), this.setState({
deferredTabLoadingAfterRestore: !this.state.deferredTabLoadingAfterRestore
})
},
togglePinnedTabLoading: function() {
d.settings.togglePreference(h.kAlwaysLoadPinnedTabAfterRestore), this.setState({
alwaysLoadPinnedAfterRestore: !this.state.alwaysLoadPinnedAfterRestore
})
},
saveStartup: function(e) {
var t = e.target.value;
d.importData.setStartupAction(t, function(e) {
this.setState({
STARTUP_OPTIONS: e
})
}.bind(this))
},
render: function() {
var e = "urls" === this.state.STARTUP_OPTIONS ? u.createElement(A, i({}, this.props, {
__source: {
fileName: a,
lineNumber: 62
}
})) : null,
t = u.createElement("span", {
__source: {
fileName: a,
lineNumber: 65
}
}, u.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 66
}
}, u.createElement("h3", {
__source: {
fileName: a,
lineNumber: 67
}
}, r("Startup with")), u.createElement(c, {
name: "startupSettings",
ref: "startupSettingsGroup",
value: this.state.STARTUP_OPTIONS,
onChange: this.saveStartup,
__source: {
fileName: a,
lineNumber: 69
}
}, u.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 73
}
}, u.createElement("label", {
__source: {
fileName: a,
lineNumber: 74
}
}, u.createElement("input", {
type: "radio",
value: "last",
__source: {
fileName: a,
lineNumber: 75
}
}), u.createElement("span", {
__source: {
fileName: a,
lineNumber: 76
}
}, r("Last Session")))), u.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 79
}
}, u.createElement("label", {
__source: {
fileName: a,
lineNumber: 80
}
}, u.createElement("input", {
type: "radio",
value: "homepage",
__source: {
fileName: a,
lineNumber: 81
}
}), u.createElement("span", {
__source: {
fileName: a,
lineNumber: 82
}
}, r("radio", "Homepage")))), u.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 85
}
}, u.createElement("label", {
__source: {
fileName: a,
lineNumber: 86
}
}, u.createElement("input", {
type: "radio",
value: "speeddial",
__source: {
fileName: a,
lineNumber: 87
}
}), u.createElement("span", {
__source: {
fileName: a,
lineNumber: 88
}
}, r("radio", "Start Page")))), u.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 91
}
}, u.createElement("label", {
__source: {
fileName: a,
lineNumber: 92
}
}, u.createElement("input", {
type: "radio",
value: "urls",
__source: {
fileName: a,
lineNumber: 93
}
}), u.createElement("span", {
__source: {
fileName: a,
lineNumber: 94
}
}, r("Specific Pages"))))), u.createElement("div", {
className: "setting-group pad-top",
__source: {
fileName: a,
lineNumber: 99
}
}, u.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 100
}
}, u.createElement("label", {
title: r("Wait to load restored session content until tab is activated."),
__source: {
fileName: a,
lineNumber: 101
}
}, u.createElement("input", {
type: "checkbox",
checked: this.props.vivaldiSettings[h.kDeferredTabLoadingAfterRestore],
onChange: this.toggleDeferredTabLoading,
__source: {
fileName: a,
lineNumber: 103
}
}), u.createElement("span", {
__source: {
fileName: a,
lineNumber: 107
}
}, r("Lazy Load Restored Tabs")))), u.createElement("div", {
className: "setting-single pad-left",
__source: {
fileName: a,
lineNumber: 110
}
}, u.createElement("label", {
title: r("Load pinned tabs before they are activated."),
__source: {
fileName: a,
lineNumber: 111
}
}, u.createElement("input", {
type: "checkbox",
disabled: !this.props.vivaldiSettings[h.kDeferredTabLoadingAfterRestore],
checked: this.props.vivaldiSettings[h.kAlwaysLoadPinnedTabAfterRestore],
onChange: this.togglePinnedTabLoading,
__source: {
fileName: a,
lineNumber: 113
}
}), u.createElement("span", {
__source: {
fileName: a,
lineNumber: 119
}
}, r("Always Load Pinned Tabs")))))), e);
return o(t, this.props.filter)
}
});
e.exports = s(p, m)
}, function(e, t, n) {
// =========================
// Function_689
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/startupSettingSection.jsx",
r = n(1),
s = n(11),
o = n(2),
l = n(688),
c = n(371),
u = n(680),
A = r.createClass({
displayName: "StartupSettingSection",
componentDidUpdate: function() {
s.findDOMNode(this.refs.startUp).style.display = s.findDOMNode(this.refs.defaultBrowser) || s.findDOMNode(this.refs.homepageSettings) || s.findDOMNode(this.refs.startupSettings) ? "inline" : "none"
},
render: function() {
return r.createElement("span", {
ref: "startUp",
__source: {
fileName: a,
lineNumber: 16
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 17
}
}, o("Startup")), r.createElement(c, i({}, this.props, {
ref: "defaultBrowser",
__source: {
fileName: a,
lineNumber: 18
}
})), r.createElement(u, i({}, this.props, {
ref: "homepageSettings",
__source: {
fileName: a,
lineNumber: 19
}
})), r.createElement(l, i({}, this.props, {
ref: "startupSettings",
__source: {
fileName: a,
lineNumber: 20
}
})))
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_690
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/tabActivation.jsx",
r = n(1),
s = n(41),
o = n(3),
l = n(25),
c = n(2),
u = n(12),
A = ["TAB_ACTIVATION_PREFER_RELATED", "TAB_CLOSE_ACTIVATION", "TAB_POSITION", "TAB_CLOSE_ALIGN_NEXT", "USE_TAB_CLOSE_ON_DOUBLECLICK", "TAB_NEVER_CLOSE_LAST"],
d = r.createClass({
displayName: "TabActivation",
saveVivaldiSettingFromEvent: function(e, t, n) {
o.set(i({}, e, n.target[t]))
},
isHorizontal: function() {
var e = this.props.vivaldiSettings.TAB_POSITION;
return "top" === e || "bottom" === e
},
render: function() {
var e = this.props.vivaldiSettings,
t = r.createElement("span", {
__source: {
fileName: a,
lineNumber: 31
}
}, r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 32
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 33
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 34
}
}, c("Close Tab Activation")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 36
}
}, r.createElement("label", {
title: c("Activate tabs related by origin first"),
__source: {
fileName: a,
lineNumber: 37
}
}, r.createElement("input", {
type: "checkbox",
checked: e.TAB_ACTIVATION_PREFER_RELATED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_ACTIVATION_PREFER_RELATED", "checked"),
__source: {
fileName: a,
lineNumber: 39
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 45
}
}, c("Always Activate Related Tab")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 49
}
}, r.createElement(s, {
name: "tabActivate",
ref: "newTabActivation",
value: e.TAB_CLOSE_ACTIVATION,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_CLOSE_ACTIVATION", "value"),
__source: {
fileName: a,
lineNumber: 50
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 57
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 58
}
}, r.createElement("input", {
type: "radio",
value: "activation_order",
__source: {
fileName: a,
lineNumber: 59
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 60
}
}, c("Activate in Recently Used Order")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 64
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 65
}
}, r.createElement("input", {
type: "radio",
value: "left",
__source: {
fileName: a,
lineNumber: 66
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 67
}
}, c(this.isHorizontal() ? "Activate Left in Tab Order" : "Activate Above in Tab Order")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 73
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 74
}
}, r.createElement("input", {
type: "radio",
value: "right",
__source: {
fileName: a,
lineNumber: 75
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 76
}
}, c(this.isHorizontal() ? "Activate Right in Tab Order" : "Activate Below in Tab Order")))))))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 86
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 87
}
}, c("Tab Handling")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 88
}
}, r.createElement("label", {
title: c("Align the close buttons to easily close multiple tabs"),
__source: {
fileName: a,
lineNumber: 89
}
}, r.createElement("input", {
type: "checkbox",
checked: e.TAB_CLOSE_ALIGN_NEXT,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_CLOSE_ALIGN_NEXT", "checked"),
__source: {
fileName: a,
lineNumber: 91
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 97
}
}, c("Align Next Close Button")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 101
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 102
}
}, r.createElement("input", {
type: "checkbox",
checked: e.USE_TAB_CLOSE_ON_DOUBLECLICK,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "USE_TAB_CLOSE_ON_DOUBLECLICK", "checked"),
__source: {
fileName: a,
lineNumber: 103
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 108
}
}, c("Close Tab on Double Click")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 112
}
}, r.createElement("label", {
title: c("Prevents window closing along with last tab."),
__source: {
fileName: a,
lineNumber: 113
}
}, r.createElement("input", {
type: "checkbox",
checked: e.TAB_NEVER_CLOSE_LAST,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_NEVER_CLOSE_LAST", "checked"),
__source: {
fileName: a,
lineNumber: 114
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 118
}
}, c("Don’t Close Window with Last Tab"))))));
return u(t, this.props.filter)
}
});
e.exports = l(d, A)
}, function(e, t, n) {
// =========================
// Function_691
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/tabCycling.jsx",
r = n(1),
s = n(41),
o = n(3),
l = n(2),
c = n(12),
u = n(13),
A = r.createClass({
displayName: "TabCycling",
mixins: [u],
vivaldiSettingsKeys: ["TAB_SWITCH_VISUAL", "TAB_CYCLING_ORDER", "MOUSE_WHEEL_TAB_SWITCHING", "TAB_CLICK_ACTIVE_OPENS_PREVIOUS"],
getInitialState: function() {
return {
tabCyclingOrderSetting: "recently used"
}
},
saveVivaldiSettingFromEvent: function(e, t, n) {
o.set(i({}, e, n.target[t]))
},
render: function() {
var e = r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 30
}
}, r.createElement("h3", {
htmlFor: "tabSelection",
__source: {
fileName: a,
lineNumber: 31
}
}, l("Tab Cycling")), r.createElement(s, {
name: "tabCyclingOrder",
ref: "tabSelGroup",
value: this.state.TAB_CYCLING_ORDER,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_CYCLING_ORDER", "value"),
__source: {
fileName: a,
lineNumber: 33
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 38
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 39
}
}, r.createElement("input", {
type: "radio",
value: "recently used",
__source: {
fileName: a,
lineNumber: 40
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 41
}
}, l("Cycle in Recently Used Order")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 44
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 45
}
}, r.createElement("input", {
type: "radio",
value: "tab order",
__source: {
fileName: a,
lineNumber: 46
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 47
}
}, l("Cycle in Tab Order"))))), r.createElement("div", {
className: "setting-single pad-top",
__source: {
fileName: a,
lineNumber: 52
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 53
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.TAB_SWITCH_VISUAL,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_SWITCH_VISUAL", "checked"),
__source: {
fileName: a,
lineNumber: 54
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 58
}
}, l("Show Tab Cycler")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 62
}
}, r.createElement("label", {
title: l("Scroll over Tab Bar to switch tabs by order, or scroll anywhere else while holding ALT key to switch tabs per Tab Cycling setting."),
__source: {
fileName: a,
lineNumber: 63
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.MOUSE_WHEEL_TAB_SWITCHING,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "MOUSE_WHEEL_TAB_SWITCHING", "checked"),
__source: {
fileName: a,
lineNumber: 66
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 70
}
}, l("Switch Tabs by Scrolling")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 74
}
}, r.createElement("label", {
title: l("Click active tab to hide it and switch to previous tab."),
__source: {
fileName: a,
lineNumber: 75
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.TAB_CLICK_ACTIVE_OPENS_PREVIOUS,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_CLICK_ACTIVE_OPENS_PREVIOUS", "checked"),
__source: {
fileName: a,
lineNumber: 76
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 80
}
}, l("Minimize Active Tab")))));
return c(e, this.props.filter)
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_692
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/tabOpen.jsx",
r = n(1),
s = n(41),
o = n(3),
l = n(13),
c = n(2),
u = n(12),
A = r.createClass({
displayName: "TabOpen",
mixins: [l],
vivaldiSettingsKeys: ["TAB_NEW_PLACEMENT", "TAB_CLONE_PLACEMENT"],
saveVivaldiSettingFromEvent: function(e, t, n) {
o.set(i({}, e, n.target[t]))
},
render: function() {
var e = r.createElement("span", {
__source: {
fileName: a,
lineNumber: 22
}
}, r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 23
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 24
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 25
}
}, c("New Tab Position")), r.createElement(s, {
name: "tabOpen",
value: this.state.TAB_NEW_PLACEMENT,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_NEW_PLACEMENT", "value"),
__source: {
fileName: a,
lineNumber: 26
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 30
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 31
}
}, r.createElement("input", {
type: "radio",
value: "rightofcurrent",
__source: {
fileName: a,
lineNumber: 32
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 33
}
}, c("After Related Tabs")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 36
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 37
}
}, r.createElement("input", {
type: "radio",
value: "directrightofcurrent",
__source: {
fileName: a,
lineNumber: 38
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 39
}
}, c("After Active Tab")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 42
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 43
}
}, r.createElement("input", {
type: "radio",
value: "alwayslast",
__source: {
fileName: a,
lineNumber: 44
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 45
}
}, c("As Last Tab"))))))), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 52
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 53
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 54
}
}, c("Clone Tab Position")), r.createElement(s, {
name: "tabClone",
value: this.state.TAB_CLONE_PLACEMENT,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_CLONE_PLACEMENT", "value"),
__source: {
fileName: a,
lineNumber: 55
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 59
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 60
}
}, r.createElement("input", {
type: "radio",
value: "rightofcurrent",
__source: {
fileName: a,
lineNumber: 61
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 62
}
}, c("After Cloned Tab")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 65
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 66
}
}, r.createElement("input", {
type: "radio",
value: "alwayslast",
__source: {
fileName: a,
lineNumber: 67
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 68
}
}, c("As Last Tab"))))))));
return u(e, this.props.filter)
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_693
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/tabOptions.jsx",
r = n(1),
s = n(3),
o = n(13),
l = n(2),
c = n(12),
u = r.createClass({
displayName: "TabPosition",
mixins: [o],
vivaldiSettingsKeys: ["SWITCH_TABS_AT_WINDOW_EDGE", "TAB_CLOSEBUTTON_ENABLED", "TAB_COUNTER_DETECTION", "TAB_UNREAD_ENABLED", "TAB_THUMBNAILS_ENABLED", "USE_TOOLTIP"],
saveVivaldiSettingFromEvent: function(e, t, n) {
s.set(i({}, e, n.target[t]))
},
render: function() {
var e = r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 26
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 27
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 28
}
}, l("Tab Options")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 30
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 31
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.USE_TOOLTIP,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "USE_TOOLTIP", "checked"),
__source: {
fileName: a,
lineNumber: 32
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 37
}
}, l("Show Popup Thumbnails")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 41
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 42
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.TAB_THUMBNAILS_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_THUMBNAILS_ENABLED", "checked"),
__source: {
fileName: a,
lineNumber: 43
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 48
}
}, l("Show Tab Thumbnails")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 52
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 53
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.TAB_CLOSEBUTTON_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_CLOSEBUTTON_ENABLED", "checked"),
__source: {
fileName: a,
lineNumber: 54
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 58
}
}, l("Display Close Button")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 62
}
}, r.createElement("label", {
title: l("Detect and display numeric notification from page title in Tabs and Web Panels"),
__source: {
fileName: a,
lineNumber: 63
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.TAB_COUNTER_DETECTION,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_COUNTER_DETECTION", "checked"),
__source: {
fileName: a,
lineNumber: 64
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 68
}
}, l("Detect Page Title Notifications")))), "mac" !== this.props.platform && r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 74
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 75
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.SWITCH_TABS_AT_WINDOW_EDGE,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "SWITCH_TABS_AT_WINDOW_EDGE", "checked"),
disabled: "left" === this.state.TAB_POSITION || "right" === this.state.TAB_POSITION,
__source: {
fileName: a,
lineNumber: 76
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 84
}
}, l("Remove Tab Spacing in Maximized Windows")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 91
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 92
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.TAB_UNREAD_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_UNREAD_ENABLED", "checked"),
__source: {
fileName: a,
lineNumber: 93
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 97
}
}, l("Use Unread Indicators"))))));
return c(e, this.props.filter)
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_694
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/tabPinning.jsx",
r = n(1),
s = n(41),
o = n(3),
l = n(13),
c = n(2),
u = n(12),
A = r.createClass({
displayName: "TabPinning",
mixins: [l],
vivaldiSettingsKeys: ["CLOSABLE_PINNED_TABS"],
saveVivaldiSettingFromEvent: function(e, t, n) {
o.set(i({}, e, n.target[t]))
},
render: function() {
var e = r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 21
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 22
}
}, c("Pinned Tabs")), r.createElement(s, {
name: "closablePinnedTabs",
value: this.state.CLOSABLE_PINNED_TABS,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "CLOSABLE_PINNED_TABS", "value"),
__source: {
fileName: a,
lineNumber: 23
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 27
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 28
}
}, r.createElement("input", {
type: "radio",
value: "off",
__source: {
fileName: a,
lineNumber: 29
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 30
}
}, c("Don’t Close Pinned Tabs")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 33
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 34
}
}, r.createElement("input", {
type: "radio",
value: "bury",
__source: {
fileName: a,
lineNumber: 35
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 36
}
}, c("Minimize Instead of Close")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 39
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 40
}
}, r.createElement("input", {
type: "radio",
value: "on",
__source: {
fileName: a,
lineNumber: 41
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 42
}
}, c("Close as Other Tabs"))))));
return u(e, this.props.filter)
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_695
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/tabPosition.jsx",
r = n(1),
s = n(3),
o = n(25),
l = n(354),
c = n(2),
u = n(12),
A = "top",
d = "left",
h = "right",
m = "bottom",
p = ["TAB_POSITION", "SHOW_TAB_BAR"],
f = r.createClass({
displayName: "TabPosition",
saveVivaldiSettingFromEvent: function(e, t, n) {
s.set(i({}, e, n.target[t]))
},
setTabPosition: function(e) {
s.set({
TAB_POSITION: e
})
},
render: function() {
var e = this.props.vivaldiSettings,
t = e.TAB_POSITION,
n = r.createElement("div", {
style: {
display: "inline"
},
__source: {
fileName: a,
lineNumber: 33
}
}, r.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: a,
lineNumber: 34
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 35
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 36
}
}, r.createElement("input", {
type: "checkbox",
checked: e.SHOW_TAB_BAR,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "SHOW_TAB_BAR", "checked"),
__source: {
fileName: a,
lineNumber: 37
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 41
}
}, c("Show Tab Bar"))))), r.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: a,
lineNumber: 45
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 46
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 47
}
}, c("Tab Bar Position")), r.createElement(l, {
position: "top",
selected: t === A,
tabIndex: this.props.vivaldiSettings.KEY_ACCESS,
onClick: this.setTabPosition.bind(this, A),
__source: {
fileName: a,
lineNumber: 49
}
}), r.createElement(l, {
position: "left",
selected: t === d,
tabIndex: this.props.vivaldiSettings.KEY_ACCESS,
onClick: this.setTabPosition.bind(this, d),
__source: {
fileName: a,
lineNumber: 54
}
}), r.createElement(l, {
position: "right",
selected: t === h,
tabIndex: this.props.vivaldiSettings.KEY_ACCESS,
onClick: this.setTabPosition.bind(this, h),
__source: {
fileName: a,
lineNumber: 59
}
}), r.createElement(l, {
position: "bottom",
selected: t === m,
tabIndex: this.props.vivaldiSettings.KEY_ACCESS,
onClick: this.setTabPosition.bind(this, m),
__source: {
fileName: a,
lineNumber: 64
}
}))));
return u(n, this.props.filter)
}
});
e.exports = o(f, p)
}, function(e, t, n) {
// =========================
// Function_696
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/tabSelection.jsx",
r = n(1),
s = n(3),
o = n(13),
l = n(59),
c = n(2),
u = n(12),
A = "mac" === l(),
d = r.createClass({
displayName: "TabSelection",
mixins: [o],
vivaldiSettingsKeys: ["TAB_SELECTION_ENABLED", "TAB_SELECTION_INCLUDE_ACTIVE"],
saveVivaldiSettingFromEvent: function(e, t, n) {
s.set(i({}, e, n.target[t]))
},
render: function() {
var e = r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 23
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 24
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 25
}
}, c("Tab Selection")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 27
}
}, r.createElement("label", {
title: c(A ? "Select multiple tabs with ⌘ and ⇧" : "Select multiple tabs with Ctrl and Shift"),
__source: {
fileName: a,
lineNumber: 28
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.TAB_SELECTION_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_SELECTION_ENABLED", "checked"),
__source: {
fileName: a,
lineNumber: 32
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 38
}
}, c("Enable Tab Selection")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 42
}
}, r.createElement("label", {
title: c("The active tab will always be part of the initial tab selection"),
__source: {
fileName: a,
lineNumber: 43
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.TAB_SELECTION_INCLUDE_ACTIVE,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_SELECTION_INCLUDE_ACTIVE", "checked"),
__source: {
fileName: a,
lineNumber: 47
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 53
}
}, c("Include Active Tab in Initial Selection"))))));
return u(e, this.props.filter)
}
});
e.exports = d
}, function(e, t, n) {
// =========================
// Function_697
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/tabStacking.jsx",
r = n(1),
s = n(3),
o = n(13),
l = n(2),
c = n(12),
u = r.createClass({
displayName: "TabStacking",
mixins: [o],
vivaldiSettingsKeys: ["TAB_STACKING", "TAB_STACKING_OPEN_IN_CURRENT", "TAB_STACKING_ALLOW_RENAME"],
saveVivaldiSettingFromEvent: function(e, t, n) {
s.set(i({}, e, n.target[t]))
},
handleChange: function(e) {
s.set({
TAB_STACKING: e.target.checked ? "on" : "off"
})
},
render: function() {
var e = r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 28
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 29
}
}, l("Tab Stacking")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 31
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 32
}
}, r.createElement("input", {
type: "checkbox",
checked: "on" === this.state.TAB_STACKING,
onChange: this.handleChange,
__source: {
fileName: a,
lineNumber: 33
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 36
}
}, l("Enable Tab Stacking")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 40
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 41
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.TAB_STACKING_OPEN_IN_CURRENT,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_STACKING_OPEN_IN_CURRENT", "checked"),
__source: {
fileName: a,
lineNumber: 42
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 46
}
}, l("Open Tabs in Current Tab Stack")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 49
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 50
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.TAB_STACKING_ALLOW_RENAME,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "TAB_STACKING_ALLOW_RENAME", "checked"),
__source: {
fileName: a,
lineNumber: 51
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 55
}
}, l("Allow Tab Stack Renaming")))));
return c(e, this.props.filter)
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_698
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/startup/tabsSettingSection.jsx",
r = n(1),
s = n(11),
o = n(2),
l = n(690),
c = n(691),
u = n(692),
A = n(694),
d = n(695),
h = n(696),
m = n(697),
p = n(693),
f = n(677),
g = r.createClass({
displayName: "TabsSettingSection",
componentDidUpdate: function() {
s.findDOMNode(this.refs.start).style.display = s.findDOMNode(this.refs.tabposition) || s.findDOMNode(this.refs.tabpage) || s.findDOMNode(this.refs.tabopen) || s.findDOMNode(this.refs.tabactivation) || s.findDOMNode(this.refs.taboptions) || s.findDOMNode(this.refs.tabcycling) || s.findDOMNode(this.refs.tabselection) || s.findDOMNode(this.refs.tabstacking) || s.findDOMNode(this.refs.tabpinning) ? "inline" : "none"
},
render: function() {
return r.createElement("div", {
ref: "start",
__source: {
fileName: a,
lineNumber: 32
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 33
}
}, o("Tabs")), r.createElement(d, i({}, this.props, {
ref: "tabposition",
__source: {
fileName: a,
lineNumber: 34
}
})), r.createElement(f, i({}, this.props, {
ref: "tabpage",
__source: {
fileName: a,
lineNumber: 35
}
})), r.createElement(u, i({}, this.props, {
ref: "tabopen",
__source: {
fileName: a,
lineNumber: 36
}
})), r.createElement(l, i({}, this.props, {
ref: "tabactivation",
__source: {
fileName: a,
lineNumber: 37
}
})), r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 39
}
}, o("Tab Display")), r.createElement(p, i({}, this.props, {
ref: "taboptions",
__source: {
fileName: a,
lineNumber: 40
}
})), r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 42
}
}, o("Tab Features")), r.createElement(c, i({}, this.props, {
ref: "tabcycling",
__source: {
fileName: a,
lineNumber: 43
}
})), r.createElement(h, i({}, this.props, {
ref: "tabselection",
__source: {
fileName: a,
lineNumber: 44
}
})), r.createElement(m, i({}, this.props, {
ref: "tabstacking",
__source: {
fileName: a,
lineNumber: 45
}
})), r.createElement(A, i({}, this.props, {
ref: "tabpinning",
__source: {
fileName: a,
lineNumber: 46
}
})))
}
});
e.exports = g
}, function(e, t, n) {
// =========================
// Function_699
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/sync/sync.jsx",
a = n(1),
r = n(2),
s = n(3),
o = n(12),
l = a.createClass({
displayName: "Sync",
getInitialState: function() {
return {
syncServices: []
}
},
changeSelection: function(e) {
var t = this.state.syncServices.map(function(t) {
return {
id: t.id,
name: t.name,
selected: t.id === e ? !t.selected : t.selected
}
});
this.setState({
syncServices: t
}, function() {
s.set({
SYNC_SETTINGS: t
})
})
},
componentWillMount: function() {
s.get(["SYNC_SETTINGS"], function(e) {
this.setState({
syncServices: e.SYNC_SETTINGS
})
}.bind(this))
},
selectAll: function() {
var e = this.refs.selectAllRef.checked,
t = this.state.syncServices.map(function(t) {
return {
id: t.id,
selected: e,
name: t.name
}
});
this.setState({
syncServices: t
}, function() {
s.set({
SYNC_SETTINGS: t
})
})
},
render: function() {
var e = this.state.syncServices.map(function(e) {
return a.createElement("div", {
key: e.id,
className: "setting-single",
__source: {
fileName: i,
lineNumber: 52
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 53
}
}, a.createElement("input", {
type: "checkbox",
checked: e.selected,
onChange: this.changeSelection.bind(this, e.id),
__source: {
fileName: i,
lineNumber: 54
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 57
}
}, e.name)))
}.bind(this)),
t = a.createElement("span", {
__source: {
fileName: i,
lineNumber: 64
}
}, a.createElement("h2", {
__source: {
fileName: i,
lineNumber: 66
}
}, r("Sync settings")), a.createElement("div", {
className: "setting-group",
__source: {
fileName: i,
lineNumber: 68
}
}, a.createElement("h3", {
__source: {
fileName: i,
lineNumber: 69
}
}, r("Sync data across devices")), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 71
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 72
}
}, a.createElement("input", {
type: "checkbox",
ref: "selectAllRef",
onChange: this.selectAll,
__source: {
fileName: i,
lineNumber: 73
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 74
}
}, r("All")))), e));
return o(t, this.props.filter)
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_700
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/themes/HueIntegration.jsx",
r = n(1),
s = n(3),
o = n(25),
l = n(12),
c = n(7),
u = c.sortBy,
A = n(2),
d = ["HUE_ENABLED", "HUE_BRIDGE_IP", "HUE_USERNAME", "HUE_GROUPS", "HUE_LIGHTS", "HUE_LIGHTS_SELECTED"],
h = r.createClass({
displayName: "HueIntegration",
getInitialState: function() {
return {
validBridge: !1,
validUsername: !1,
waitingForButtonPress: !1,
givenUp: !1
}
},
componentWillMount: function() {
this.props.vivaldiSettings.HUE_ENABLED && this.props.vivaldiSettings.HUE_BRIDGE_IP && this.verifyBridge()
},
saveVivaldiSettingFromEvent: function(e, t, n) {
s.set(i({}, e, n.target[t]))
},
verifyBridge: function() {
var e = this,
t = this.props.vivaldiSettings,
n = t.HUE_BRIDGE_IP;
n ? fetch("http://" + n + "/description.xml").then(function(t) {
t.ok ? e.setState({
validBridge: !0
}, e.verifyUsername) : e.getBridge()
}).catch(function(t) {
e.getBridge()
}) : this.getBridge()
},
getBridge: function() {
var e = this;
fetch("https://www.meethue.com/api/nupnp").then(function(t) {
t.ok ? t.json().then(function(t) {
t && t[0] && t[0].internalipaddress ? s.set({
HUE_BRIDGE_IP: t[0].internalipaddress
}, e.verifyBridge) : e.setState({
givenUp: !0
})
}) : e.setState({
givenUp: !0
})
}).catch(function(t) {
e.setState({
givenUp: !0
})
})
},
verifyUsername: function() {
var e = this,
t = this.props.vivaldiSettings,
n = t.HUE_BRIDGE_IP,
i = t.HUE_USERNAME;
i ? fetch("http://" + n + "/api/" + i + "/").then(function(t) {
t.ok ? t.json().then(function(t) {
t[0] && t[0].error ? (s.set({
HUE_USERNAME: ""
}), e.getUsername) : t && t && t.config && ! function() {
var n = Object.keys(t.lights).map(function(e) {
var n = t.lights[e],
i = n.type.toLowerCase();
return i.includes("color light") ? n : null
}),
i = Object.keys(t.groups).map(function(e) {
return t.groups[e]
}).filter(function(e) {
if ("Room" === e.type && e.lights.length > 0 && (e.lights = e.lights.filter(function(e) {
return n[e - 1]
}), e.lights.some(function(e) {
return e
}))) return e
});
s.set({
HUE_GROUPS: u(i, "name"),
HUE_LIGHTS: n
}), e.setState({
validUsername: !0,
waitingForButtonPress: !1
})
}()
}) : e.setState({
givenUp: !0
})
}).catch(function(t) {
e.setState({
givenUp: !0
})
}) : this.getUsername()
},
getUsername: function() {
var e = this,
t = this.props.vivaldiSettings,
n = t.HUE_BRIDGE_IP;
fetch("http://" + n + "/api", {
method: "POST",
body: JSON.stringify({
devicetype: "vivaldi_browser#desktop_hue"
})
}).then(function(t) {
t.ok ? t.json().then(function(t) {
t[0] && t[0].success && t[0].success.username ? s.set({
HUE_USERNAME: t[0].success.username
}, e.verifyUsername) : t && t[0] && t[0].error && 101 === t[0].error.type && (e.setState({
waitingForButtonPress: !0
}), setTimeout(function() {
e.isMounted() && e.getUsername()
}, 1e3))
}) : e.setState({
givenUp: !0
})
}).catch(function(t) {
e.setState({
givenUp: !0
})
})
},
hueToggleLamp: function(e, t) {
var n = this.props.vivaldiSettings,
i = n.HUE_BRIDGE_IP,
a = n.HUE_USERNAME,
r = n.HUE_LIGHTS,
o = !1,
l = n.HUE_LIGHTS_SELECTED.filter(function(t) {
return t !== e ? t : void(o = !0)
});
r.forEach(function(t, n) {
t && t.uniqueid === e && fetch("http://" + i + "/api/" + a + "/lights/" + (n + 1) + "/state", {
method: "put",
body: JSON.stringify({
alert: "select"
})
})
}), o || l.push(e), s.set({
HUE_LIGHTS_SELECTED: l
})
},
hueBridgeReset: function() {
var e = this;
s.set({
HUE_BRIDGE_IP: ""
}, function() {
e.setState(e.getInitialState())
})
},
render: function() {
var e = this,
t = this.props.vivaldiSettings.HUE_ENABLED,
i = this.state.validBridge,
s = this.state.validUsername,
o = this.state.waitingForButtonPress,
c = this.props.vivaldiSettings.HUE_GROUPS,
u = this.props.vivaldiSettings.HUE_LIGHTS,
d = this.props.vivaldiSettings.HUE_LIGHTS_SELECTED,
h = r.createElement("div", {
__source: {
fileName: a,
lineNumber: 253
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 254
}
}, A("Philips Hue Theme Integration")), o && r.createElement("div", {
className: "hue-press-button",
dangerouslySetInnerHTML: {
__html: "" + n(961) + A("Press the button on your Bridge")
},
__source: {
fileName: a,
lineNumber: 257
}
}), r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 262
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 263
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 264
}
}, r.createElement("input", {
type: "checkbox",
checked: t,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "HUE_ENABLED", "checked"),
__source: {
fileName: a,
lineNumber: 265
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 269
}
}, A("Enable Hue"))), t && i ? r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 272
}
}, A("Connected to Hue Bridge at $1.", [this.props.vivaldiSettings.HUE_BRIDGE_IP])) : r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 277
}
}, A("Requires a Philips Hue lighting system on the local network.")))), t && r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 286
}
}, r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 287
}
}, i ? r.createElement("input", {
type: "button",
className: "danger",
value: A("Reset Bridge"),
onClick: this.hueBridgeReset,
__source: {
fileName: a,
lineNumber: 289
}
}) : r.createElement("input", {
type: "button",
className: "primary",
value: A("Find Bridge"),
onClick: this.getBridge,
__source: {
fileName: a,
lineNumber: 294
}
}))), t && s && c && u && c.length > 0 && u.length > 0 && c.map(function(t, n) {
return r.createElement("div", {
className: "setting-group",
key: n,
__source: {
fileName: a,
lineNumber: 307
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 308
}
}, t.name), t.lights.map(function(t) {
var n = u[t - 1],
i = n.state.reachable ? "" : " (" + A("Unreachable") + ")",
s = d && d.some(function(e) {
return e === n.uniqueid
});
return r.createElement("div", {
className: "setting-single",
key: n.uniqueid,
__source: {
fileName: a,
lineNumber: 318
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 319
}
}, r.createElement("input", {
type: "checkbox",
checked: s,
onChange: e.hueToggleLamp.bind(e, n.uniqueid),
__source: {
fileName: a,
lineNumber: 320
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 324
}
}, "" + n.name + i)))
}))
}));
return l(h, this.props.filter)
}
});
e.exports = o(h, d)
}, function(e, t, n) {
// =========================
// Function_701
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/themes/ThemeEditor.jsx",
r = n(1),
s = n(569),
o = n(25),
l = n(2),
c = n(180),
u = n(7),
A = u.cloneDeep,
d = u.isEqual,
h = u.debounce,
m = n(3),
p = ["TABCOLOR_BEHIND_TABS", "THEME_CURRENT", "THEMES_SYSTEM", "THEMES_USER", "BROWSER_COLOR_BG", "BROWSER_COLOR_FG", "BROWSER_COLOR_HIGHLIGHT_BG", "BROWSER_COLOR_ACCENT_BG", "USE_TAB_TRANSPARENT_TABS", "USE_TABCOLOR", "BORDER_RADIUS"],
f = {
baseBg: "BROWSER_COLOR_BG",
baseFg: "BROWSER_COLOR_FG",
highlightBg: "BROWSER_COLOR_HIGHLIGHT_BG",
accentBg: "BROWSER_COLOR_ACCENT_BG"
},
g = {
baseBg: l("Background"),
baseFg: l("Foreground"),
highlightBg: l("Highlight"),
accentBg: l("Accent")
},
_ = r.createClass({
displayName: "ThemeEditor",
getInitialState: function() {
return {
themeObject: null,
baseBgShowPicker: !1,
baseFgShowPicker: !1,
highlightBgShowPicker: !1,
accentBgShowPicker: !1
}
},
componentWillMount: function() {
if (this.props.themeObject && this.props.vivaldiSettings) {
var e = this.props.vivaldiSettings;
this.setState({
themeObject: {
name: e.THEME_CURRENT,
version: .1,
colors: {
baseBg: e.BROWSER_COLOR_BG,
baseFg: e.BROWSER_COLOR_FG,
highlightBg: e.BROWSER_COLOR_HIGHLIGHT_BG,
accentBg: e.BROWSER_COLOR_ACCENT_BG
},
settings: {
accentOnWindow: e.TABCOLOR_BEHIND_TABS,
accentFromPage: e.USE_TABCOLOR,
tabsTransparent: e.USE_TAB_TRANSPARENT_TABS,
borderRadius: e.BORDER_RADIUS
}
}
})
}
},
componentWillReceiveProps: function(e) {
!e.themeObject || null !== this.state.themeObject && this.state.themeObject.name === e.themeObject.name || this.setState({
themeObject: e.themeObject
})
},
setColorSetting: h(function(e, t) {
m.set(i({}, e, t))
}, 100, {
leading: !1
}),
saveThemeSetting: function(e, t, n, a) {
var r = A(this.state.themeObject);
r.settings[t] = a.target[n], this.setState({
themeObject: r
}), m.set(i({}, e, a.target[n]))
},
renameTheme: function(e) {
var t = A(this.state.themeObject);
t.name = e.target.value, this.setState({
themeObject: t
})
},
getTheme: function(e) {
if (this.props.vivaldiSettings)
for (var t = this.props.vivaldiSettings, n = t.THEMES_SYSTEM.concat(t.THEMES_USER), i = 0; i < n.length; i++) {
var a = n[i];
if (a.name === e) return a
}
},
resetTheme: function() {
if (this.props.vivaldiSettings) {
var e = this.getTheme(this.props.vivaldiSettings.THEME_CURRENT);
m.set({
BROWSER_COLOR_BG: e.colors.baseBg,
BROWSER_COLOR_FG: e.colors.baseFg,
BROWSER_COLOR_HIGHLIGHT_BG: e.colors.highlightBg,
BROWSER_COLOR_ACCENT_BG: e.colors.accentBg,
TABCOLOR_BEHIND_TABS: e.settings.accentOnWindow,
USE_TABCOLOR: e.settings.accentFromPage,
USE_TAB_TRANSPARENT_TABS: e.settings.tabsTransparent,
BORDER_RADIUS: e.settings.borderRadius
}), this.refs.baseBgInputHex.value = e.colors.baseBg, this.refs.baseFgInputHex.value = e.colors.baseFg, this.refs.highlightBgInputHex.value = e.colors.highlightBg, this.refs.accentBgInputHex.value = e.colors.accentBg, this.setState({
themeObject: e
})
}
},
saveTheme: function() {
if (this.props.vivaldiSettings) {
for (var e = this.props.vivaldiSettings, t = A(e.THEMES_USER), n = t.concat(e.THEMES_SYSTEM), i = this.refs.themeNameInput.value, a = 0; a < n.length; a++)
if (n[a].name.toLowerCase() === i.toLowerCase()) {
i = e.THEME_CURRENT, this.refs.themeNameInput.value = i;
break
}
for (var r = 0; r < t.length; r++) {
var s = t[r];
if (s.name === e.THEME_CURRENT) return Object.assign(s, this.state.themeObject), s.name = i, void m.set({
THEMES_USER: t,
THEME_CURRENT: s.name,
BROWSER_COLOR_BG: s.colors.baseBg,
BROWSER_COLOR_FG: s.colors.baseFg,
BROWSER_COLOR_HIGHLIGHT_BG: s.colors.highlightBg,
BROWSER_COLOR_ACCENT_BG: s.colors.accentBg,
TABCOLOR_BEHIND_TABS: s.settings.accentOnWindow,
USE_TABCOLOR: s.settings.accentFromPage,
USE_TAB_TRANSPARENT_TABS: s.settings.tabsTransparent,
BORDER_RADIUS: s.settings.borderRadius
})
}
}
},
setColor: function(e, t) {
var n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2],
a = A(this.state.themeObject);
a.colors[t] = e, this.setState({
themeObject: a
}), this.refs[t + "InputHex"].value = e, n ? this.setColorSetting(f[t], e) : m.set(i({}, f[t], e))
},
hexInputEvents: function(e) {
var t = e.currentTarget.dataset.colorname;
if ("change" === e.type || "keydown" === e.type && "Enter" === e.key) {
var n = A(this.state.themeObject),
i = c(e.currentTarget.value).hex();
n.colors[t] = i, this.setState({
themeObject: n
}), this.refs[t + "InputHex"].value = i, this.setColorSetting(f[t], i)
}
},
nameInputKeyDown: function(e) {
"Enter" === e.key && this.saveTheme()
},
showColorPicker: function(e) {
var t = e.currentTarget.dataset.pickername;
this.state[t] || this.setState(i({}, t, !0))
},
hideColorPicker: function(e) {
var t = e + "ShowPicker";
this.state[t] && (this.setState(i({}, t, !1)), this.refs[e + "ColorToggle"].focus())
},
render: function() {
var e = this,
t = this.state.themeObject;
if (!t || !this.props.themeObject) return null;
var n = d(this.props.themeObject, t),
i = Number(t.settings.borderRadius),
o = void 0;
return o = i < 0 ? l("Disabled") : 0 === i ? l("Default") : i + "px", r.createElement("div", {
className: "themes-edit",
__source: {
fileName: a,
lineNumber: 288
}
}, r.createElement("div", {
className: "setting-group unlimited theme-metadata",
__source: {
fileName: a,
lineNumber: 290
}
}, r.createElement("input", {
className: "theme-name",
type: "text",
ref: "themeNameInput",
onChange: this.renameTheme,
onKeyDown: this.nameInputKeyDown,
value: t.name,
__source: {
fileName: a,
lineNumber: 291
}
}), r.createElement("input", {
type: "button",
className: "primary",
onClick: this.saveTheme,
value: l("Save"),
disabled: n,
__source: {
fileName: a,
lineNumber: 299
}
}), r.createElement("input", {
type: "button",
onClick: this.resetTheme,
value: l("Reset"),
disabled: n,
__source: {
fileName: a,
lineNumber: 301
}
})), r.createElement("div", {
className: "setting-group unlimited theme-colors",
__source: {
fileName: a,
lineNumber: 305
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 306
}
}, l("Color Editor")), Object.keys(f).map(function(t) {
var n = e.state.themeObject.colors[t],
i = c(n).hex();
return r.createElement("div", {
key: t,
className: "theme-color-container",
__source: {
fileName: a,
lineNumber: 313
}
}, r.createElement("div", {
className: "color-name",
__source: {
fileName: a,
lineNumber: 314
}
}, g[t]), r.createElement("button", {
className: "color-preview ignore-onclickoutside-" + t,
tabIndex: 0,
ref: t + "ColorToggle",
onClick: e.showColorPicker,
"data-pickername": t + "ShowPicker",
style: {
backgroundColor: i
},
__source: {
fileName: a,
lineNumber: 315
}
}), e.state[t + "ShowPicker"] && r.createElement(s, {
key: t,
name: t,
color: n,
setColor: e.setColor,
hide: e.hideColorPicker,
__source: {
fileName: a,
lineNumber: 324
}
}), r.createElement("input", {
type: "text",
ref: t + "InputHex",
className: "color-hex",
value: i,
"data-colorname": t,
onChange: e.hexInputEvents,
__source: {
fileName: a,
lineNumber: 332
}
}))
})), r.createElement("div", {
className: "setting-group unlimited theme-settings",
__source: {
fileName: a,
lineNumber: 343
}
}, r.createElement("div", {
className: "setting-group pad-top",
__source: {
fileName: a,
lineNumber: 345
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 346
}
}, l("Theme Preferences")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 347
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 348
}
}, r.createElement("input", {
type: "checkbox",
tabIndex: this.props.keyAccess,
onChange: this.saveThemeSetting.bind(this, "USE_TABCOLOR", "accentFromPage", "checked"),
checked: t.settings.accentFromPage,
__source: {
fileName: a,
lineNumber: 349
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 354
}
}, l("Accent Color from Active Page")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 358
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 359
}
}, r.createElement("input", {
type: "checkbox",
tabIndex: this.props.keyAccess,
onChange: this.saveThemeSetting.bind(this, "TABCOLOR_BEHIND_TABS", "accentOnWindow", "checked"),
checked: t.settings.accentOnWindow,
__source: {
fileName: a,
lineNumber: 360
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 365
}
}, l("Apply Accent Color to Window")))), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 369
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 370
}
}, r.createElement("input", {
type: "checkbox",
tabIndex: this.props.keyAccess,
onChange: this.saveThemeSetting.bind(this, "USE_TAB_TRANSPARENT_TABS", "tabsTransparent", "checked"),
checked: t.settings.tabsTransparent,
__source: {
fileName: a,
lineNumber: 371
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 376
}
}, l("Transparent Tabs"))))), r.createElement("div", {
className: "setting-group pad-top",
__source: {
fileName: a,
lineNumber: 381
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 382
}
}, l("Corner Rounding")), r.createElement("div", {
className: "setting-single border-radius",
__source: {
fileName: a,
lineNumber: 383
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 384
}
}, r.createElement("input", {
type: "range",
title: l("Adjust interface corner rounding"),
min: -1,
max: 14,
value: i,
onChange: this.saveThemeSetting.bind(this, "BORDER_RADIUS", "borderRadius", "value"),
tabIndex: this.props.keyAccess,
__source: {
fileName: a,
lineNumber: 385
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 392
}
}, o))))))
}
});
e.exports = o(_, p)
}, function(e, t, n) {
// =========================
// Function_702
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/themes/ThemeScheduling.jsx",
r = n(1),
s = n(12),
o = n(3),
l = n(45),
c = n(5),
u = n(7),
A = u.cloneDeep,
d = n(2),
h = ["THEMES_SYSTEM", "THEMES_USER", "THEMES_SCHEDULE", "THEMES_SCHEDULE_ENABLED"],
m = r.createClass({
displayName: "ThemeScheduling",
getInitialState: function() {
return {
dragging: !1,
id: void 0
}
},
componentWillMount: function() {
for (var e = A(o.getKeysSync(h)), t = e.THEMES_SYSTEM.concat(e.THEMES_USER), n = e.THEMES_SCHEDULE, i = 0; i < n.length; i++) {
for (var a = !1, r = 0; r < t.length; r++)
if (n[i].themeName === t[r].name) {
a = !0;
break
}
a || (n[i].themeName = t[t.length - 1].name)
}
this.setState(e)
},
componentDidMount: function() {
var e = this;
window.addEventListener("mouseup", this.stopMouseReschedule), window.addEventListener("touchend", this.stopMouseReschedule), h.forEach(function(t) {
return o.addListener(t, e.vivaldiSettingHandler);
})
},
componentWillUnmount: function() {
var e = this;
window.removeEventListener("mouseup", this.stopMouseReschedule), window.removeEventListener("touchend", this.stopMouseReschedule), h.forEach(function(t) {
return o.removeListener(t, e.vivaldiSettingHandler)
})
},
saveVivaldiSettingFromEvent: function(e, t, n) {
o.set(i({}, e, n.target[t]))
},
vivaldiSettingHandler: function(e, t, n) {
if (e !== t && this.state[n] !== t)
if ("THEMES_USER" === n) {
for (var a = t.concat(this.state.THEMES_SYSTEM), r = A(this.state.THEMES_SCHEDULE), s = !0, l = 0; l < r.length; l++) {
for (var c = !1, u = 0; u < a.length; u++)
if (r[l].themeName === a[u].name) {
c = !0;
break
}
c || (s = !1, r[l].themeName = a[a.length - 1].name)
}
s ? this.setState(i({}, n, t)) : o.set({
THEMES_SCHEDULE: r
})
} else this.setState(i({}, n, t))
},
startMouseReschedule: function(e, t) {
t.persist(), t.preventDefault(), this.setState({
dragging: !0,
id: e
}, this.handleMouseReschedule.bind(this, t))
},
mouseReschedule: function(e) {
e.preventDefault(), this.state.dragging && this.handleMouseReschedule(e)
},
stopMouseReschedule: function(e) {
this.setState({
dragging: !1
})
},
handleMouseReschedule: function(e) {
var t = A(this.state.THEMES_SCHEDULE),
n = this.refs.scheduleTimeline.getBoundingClientRect(),
i = e.touches ? e.touches[0] : e,
a = i.clientX - n.left,
r = 5 * Math.floor(1439 / n.width * a / 5);
if (!(r < 0 || r > 1439)) {
for (var s = 0; s < t.length; s++) {
var l = t[s];
if (l.id === this.state.id) {
l.hours = Math.floor(r / 60), l.minutes = r - 60 * l.hours;
break
}
}
o.set({
THEMES_SCHEDULE: t
})
}
},
addSchedule: function() {
for (var e = A(this.state.THEMES_SCHEDULE), t = [], n = void 0, i = 0; i < e.length; i++) t.push(e[i].id);
t.sort(function(e, t) {
return e - t
});
for (var a = 0; a < t.length; a++)
if (!t.includes(a)) {
n = a;
break
}
void 0 === n && (n = t[t.length - 1] + 1), e.push({
id: n,
minutes: 0,
hours: 12,
themeName: "Light",
undeletable: !1
}), o.set({
THEMES_SCHEDULE: e
}), this.setState({
id: n
})
},
removeScheduleOnDelete: function(e) {
e.keyCode !== l.KEY_BACK_SPACE && e.keyCode !== l.KEY_DELETE || this.removeSchedule()
},
handleKeyboardReschedule: function(e, t) {
if (t.keyCode === l.KEY_LEFT || t.keyCode === l.KEY_RIGHT) {
for (var n = A(this.state.THEMES_SCHEDULE), i = 0; i < n.length; i++) {
var a = n[i];
if (a.id === e) {
var r = 60 * a.hours + a.minutes;
t.shiftKey ? t.keyCode === l.KEY_LEFT && r > 29 ? r -= 30 : t.keyCode === l.KEY_RIGHT && r < 1409 && (r += 30) : t.keyCode === l.KEY_LEFT && r > 4 ? r -= 5 : t.keyCode === l.KEY_RIGHT && r < 1434 && (r += 5), a.hours = Math.floor(r / 60), a.minutes = r - 60 * a.hours, this.setState({
id: e
});
break
}
}
o.set({
THEMES_SCHEDULE: n
})
} else t.keyCode !== l.KEY_BACK_SPACE && t.keyCode !== l.KEY_DELETE || this.removeSchedule()
},
updateScheduleName: function(e, t) {
for (var n = A(this.state.THEMES_SCHEDULE), i = 0; i < n.length; i++) {
var a = n[i];
if (a.id === e) {
a.themeName = t.target.value;
break
}
}
o.set({
THEMES_SCHEDULE: n
})
},
removeSchedule: function() {
for (var e = A(this.state.THEMES_SCHEDULE), t = this.state.id, n = 0; n < e.length; n++) {
var i = e[n];
if (i.undeletable === !1 && i.id === t) {
e.splice(n, 1);
break
}
}
o.set({
THEMES_SCHEDULE: e
}), this.setState({
id: void 0
})
},
getTheme: function(e) {
for (var t = this.state, n = t.THEMES_SYSTEM.concat(t.THEMES_USER), i = 0; i < n.length; i++) {
var a = n[i];
if (a.name === e) return a
}
},
indicatorFocus: function(e, t) {
t.stopPropagation(), this.setState({
id: e
})
},
indicatorBlur: function(e) {
this.setState({
id: void 0
})
},
render: function() {
var e = this,
t = A(this.state.THEMES_SCHEDULE),
i = new Date,
o = i.getMinutes() + 60 * i.getHours(),
l = o / 14.4 + "%",
u = this.state.THEMES_SCHEDULE_ENABLED ? "" : "schedule-disabled",
h = !0;
t.sort(function(e, t) {
return 60 * e.hours + e.minutes - (60 * t.hours + t.minutes)
}), t.unshift(A(t[t.length - 1])), t[0].minutes = 0, t[0].hours = 0;
for (var m = 0; m < t.length; m++) {
var p = t[m + 1];
p ? t[m].endMinutes = 60 * p.hours + p.minutes : t[m].endMinutes = 1440, this.state.id === t[m].id && t[m].undeletable && (h = !1), t[m].renderId = m
}
var f = r.createElement("div", {
className: "setting-group unlimited",
onMouseMove: this.mouseReschedule,
onTouchMove: this.mouseReschedule,
__source: {
fileName: a,
lineNumber: 355
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 359
}
}, d("Scheduled Themes")), r.createElement("p", {
className: "info",
__source: {
fileName: a,
lineNumber: 360
}
}, d("Drag the sliders below to adjust theme schedule time. Change the theme by selecting its name.")), r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 364
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 365
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.THEMES_SCHEDULE_ENABLED,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "THEMES_SCHEDULE_ENABLED", "checked"),
__source: {
fileName: a,
lineNumber: 366
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 370
}
}, d("Schedule Theme to Change")))), r.createElement("div", {
className: "theme-schedule-timeline " + u,
ref: "scheduleTimeline",
__source: {
fileName: a,
lineNumber: 374
}
}, r.createElement("span", {
className: "theme-schedule-now-indicator",
style: {
left: l
},
__source: {
fileName: a,
lineNumber: 376
}
}, d("Now")), t.map(function(n) {
var i = (60 * n.hours + n.minutes) / 14.4,
s = e.getTheme(n.themeName),
o = n.hours > 9 ? n.hours : "0" + n.hours,
l = n.minutes > 9 ? n.minutes : "0" + n.minutes;
return r.createElement("div", {
key: n.renderId,
className: c({
"theme-schedule-timeslice": !0,
"timeslice-selected": e.state.id === n.id
}),
style: {
backgroundImage: "linear-gradient(0deg,\n " + s.colors.accentBg + " 6px," + s.colors.baseBg + " 6px)",
width: n.endMinutes / 14.4 - i + "%",
left: i + "%"
},
__source: {
fileName: a,
lineNumber: 389
}
}, n !== t[0] && r.createElement("div", {
title: n.themeName,
className: "timeslice-bubble",
onFocus: e.indicatorFocus.bind(e, n.id),
onBlur: e.indicatorBlur.bind(e, n.id),
disabled: !e.state.THEMES_SCHEDULE_ENABLED,
onMouseDown: e.startMouseReschedule.bind(e, n.id),
onTouchStart: e.startMouseReschedule.bind(e, n.id),
onKeyDown: e.handleKeyboardReschedule.bind(e, n.id),
__source: {
fileName: a,
lineNumber: 402
}
}, r.createElement("div", {
__source: {
fileName: a,
lineNumber: 414
}
}, o + ":" + l)), n !== t[0] && r.createElement("div", {
className: "theme-schedule-timeslice-indicator",
__source: {
fileName: a,
lineNumber: 418
}
}, r.createElement("input", {
type: "button",
className: "theme-schedule-timeslice-draghandle",
title: n.themeName,
onFocus: e.indicatorFocus.bind(e, n.id),
onBlur: e.indicatorBlur.bind(e, n.id),
disabled: !e.state.THEMES_SCHEDULE_ENABLED,
onMouseDown: e.startMouseReschedule.bind(e, n.id),
onTouchStart: e.startMouseReschedule.bind(e, n.id),
onKeyDown: e.handleKeyboardReschedule.bind(e, n.id),
__source: {
fileName: a,
lineNumber: 419
}
})), r.createElement("div", {
className: "theme-schedule-timeslice-container",
__source: {
fileName: a,
lineNumber: 435
}
}, r.createElement("div", {
className: "theme-schedule-timeslice-text",
style: {
color: s.colors.baseFg
},
__source: {
fileName: a,
lineNumber: 436
}
}, n.themeName)), r.createElement("select", {
disabled: !e.state.THEMES_SCHEDULE_ENABLED,
value: n.themeName,
onFocus: e.indicatorFocus.bind(e, n.id),
onKeyDown: e.removeScheduleOnDelete,
onChange: e.updateScheduleName.bind(e, n.id),
__source: {
fileName: a,
lineNumber: 442
}
}, e.state.THEMES_SYSTEM.concat(e.state.THEMES_USER).map(function(e) {
return r.createElement("option", {
key: e.name,
value: e.name,
__source: {
fileName: a,
lineNumber: 450
}
}, e.name)
})))
})), r.createElement("div", {
className: "setting-group schedule-selector",
__source: {
fileName: a,
lineNumber: 460
}
}, r.createElement("div", {
className: "toolbar icons",
__source: {
fileName: a,
lineNumber: 461
}
}, r.createElement("button", {
disabled: !this.state.THEMES_SCHEDULE_ENABLED,
onClick: this.addSchedule,
className: "button-toolbar",
__source: {
fileName: a,
lineNumber: 462
}
}, r.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(80)
},
__source: {
fileName: a,
lineNumber: 466
}
}), r.createElement("span", {
className: "buttontext",
__source: {
fileName: a,
lineNumber: 468
}
}, d("Add"))), r.createElement("button", {
disabled: !this.state.THEMES_SCHEDULE_ENABLED || !h || void 0 === this.state.id,
onClick: this.removeSchedule,
className: "button-toolbar",
__source: {
fileName: a,
lineNumber: 472
}
}, r.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(92)
},
__source: {
fileName: a,
lineNumber: 477
}
}), r.createElement("span", {
className: "buttontext",
__source: {
fileName: a,
lineNumber: 479
}
}, d("Remove"))))));
return s(f, this.props.filter)
}
});
e.exports = m
}, function(e, t, n) {
// =========================
// Function_703
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/themes/Themes.jsx",
a = n(1),
r = n(700),
s = n(701),
o = n(372),
l = n(702),
c = n(12),
u = n(74),
A = n(3),
d = n(25),
h = n(45),
m = n(7),
p = m.cloneDeep,
f = m.compact,
g = n(26),
_ = n(5),
v = n(2),
b = ["THEMES_SYSTEM", "THEMES_USER", "THEME_CURRENT"],
N = a.createClass({
displayName: "Themes",
getInitialState: function() {
return {
editTheme: !1,
featureHueEnabled: u.isEnabled(u.kHueIntegration)
}
},
_setTheme: function(e) {
.1 === e.version && (this.state.editTheme && this._isSystemTheme(e) && this.setState({
editTheme: !1
}), A.set({
THEME_CURRENT: e.name,
BROWSER_COLOR_BG: e.colors.baseBg,
BROWSER_COLOR_FG: e.colors.baseFg,
BROWSER_COLOR_HIGHLIGHT_BG: e.colors.highlightBg,
BROWSER_COLOR_ACCENT_BG: e.colors.accentBg,
TABCOLOR_BEHIND_TABS: e.settings.accentOnWindow,
USE_TABCOLOR: e.settings.accentFromPage,
USE_TAB_TRANSPARENT_TABS: e.settings.tabsTransparent,
BORDER_RADIUS: e.settings.borderRadius
}))
},
_getTheme: function(e) {
for (var t = this.props.vivaldiSettings, n = t.THEMES_SYSTEM.concat(t.THEMES_USER), i = 0; i < n.length; i++) {
var a = n[i];
if (a.name === e) return a
}
},
_addTheme: function() {
for (var e = this.props.vivaldiSettings, t = p(e.THEMES_USER), n = v("New Theme"), i = 1; this._isUserThemeNameInUse(n + " " + i);) i += 1;
t.push({
version: .1,
name: n + " " + i,
colors: {
baseBg: A.getSync("BROWSER_COLOR_BG"),
baseFg: A.getSync("BROWSER_COLOR_FG"),
highlightBg: A.getSync("BROWSER_COLOR_HIGHLIGHT_BG"),
accentBg: A.getSync("BROWSER_COLOR_ACCENT_BG")
},
settings: {
accentOnWindow: A.getSync("TABCOLOR_BEHIND_TABS"),
accentFromPage: A.getSync("USE_TABCOLOR"),
tabsTransparent: A.getSync("USE_TAB_TRANSPARENT_TABS"),
borderRadius: A.getSync("BORDER_RADIUS")
}
}), this.state.editTheme || this.setState({
editTheme: !0
}), A.set({
THEMES_USER: t,
THEME_CURRENT: n + " " + i
})
},
_deleteTheme: function() {
for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.props.vivaldiSettings.THEME_CURRENT, t = this.props.vivaldiSettings, n = t.THEMES_SYSTEM, i = p(t.THEMES_USER), a = 0; a < i.length; a++) {
var r = void 0;
if (i[a].name === e) return i[a] = null, i = f(i), e === this.props.vivaldiSettings.THEME_CURRENT && (i[a] ? r = a : i[a - 1] && (r = a - 1), i.length > 0 ? this._setTheme(i[r]) : this._setTheme(n[n.length - 1])), void A.set({
THEMES_USER: i
})
}
},
_toggleEdit: function() {
this.setState({
editTheme: !this.state.editTheme
})
},
_isSystemTheme: function(e) {
for (var t = 0; t < this.props.vivaldiSettings.THEMES_SYSTEM.length; t++)
if (this.props.vivaldiSettings.THEMES_SYSTEM[t].name === e.name) return !0;
return !1
},
_isCurrentTheme: function(e) {
return e.name === this.props.vivaldiSettings.THEMES_CURRENT
},
_isUserThemeNameInUse: function(e) {
for (var t = this.props.vivaldiSettings.THEMES_USER, n = 0; n < t.length; n++)
if (t[n].name === e) return !0;
return !1
},
getThemeMenu: function(e) {
return [{
name: v("Apply $1", [e.name]),
visible: !this._isCurrentTheme(e),
handler: this._setTheme.bind(this, e)
}, {
name: v("Delete $1", [e.name]),
visible: !this._isSystemTheme(e),
handler: this._deleteTheme.bind(this, e.name)
}]
},
handleKeyDown: function(e, t) {
this._isSystemTheme(e) || t.keyCode !== h.KEY_BACK_SPACE && t.keyCode !== h.KEY_DELETE || this._deleteTheme(e.name)
},
render: function() {
var e = this,
t = this.props.vivaldiSettings,
u = this._getTheme(t.THEME_CURRENT);
if (!u || !u.colors) return null;
var A = this._isSystemTheme(u),
d = _({
active: this.state.editTheme,
"button-toolbar": !0,
edit: !0
}),
h = a.createElement("div", {
__source: {
fileName: i,
lineNumber: 243
}
}, a.createElement("h2", {
__source: {
fileName: i,
lineNumber: 244
}
}, v("Themes")), a.createElement("p", {
className: "info",
__source: {
fileName: i,
lineNumber: 245
}
}, v("Select one of the pre-defined themes. You may change it to your\n liking, or create a new theme using the tools below.")), a.createElement("div", {
className: "setting-group-unlimited",
__source: {
fileName: i,
lineNumber: 249
}
}, t.THEMES_SYSTEM.map(function(t) {
return a.createElement(o, {
key: t.name,
themeObject: t,
onContextMenu: g(e.getThemeMenu(t)),
onClick: e._setTheme.bind(e, t),
onKeyDown: e.handleKeyDown.bind(e, t),
__source: {
fileName: i,
lineNumber: 251
}
})
}), t.THEMES_USER.map(function(t) {
return a.createElement(o, {
key: t.name,
themeObject: t,
onContextMenu: g(e.getThemeMenu(t)),
onClick: e._setTheme.bind(e, t),
onKeyDown: e.handleKeyDown.bind(e, t),
__source: {
fileName: i,
lineNumber: 261
}
})
}), a.createElement("div", {
className: "toolbar icons",
__source: {
fileName: i,
lineNumber: 270
}
}, a.createElement("button", {
className: "button-toolbar add",
title: v("New Theme"),
onClick: this._addTheme,
dangerouslySetInnerHTML: {
__html: n(80)
},
__source: {
fileName: i,
lineNumber: 271
}
}), a.createElement("button", {
className: "button-toolbar delete",
title: v("Remove Theme"),
disabled: A,
onClick: this._deleteTheme.bind(this, void 0),
dangerouslySetInnerHTML: {
__html: n(92)
},
__source: {
fileName: i,
lineNumber: 277
}
}), a.createElement("button", {
className: d,
title: v("Edit Theme"),
onClick: A ? this._addTheme : this._toggleEdit,
dangerouslySetInnerHTML: {
__html: n(217)
},
__source: {
fileName: i,
lineNumber: 284
}
})), this.state.editTheme && a.createElement(s, {
themeObject: u,
__source: {
fileName: i,
lineNumber: 293
}
})), a.createElement(l, {
__source: {
fileName: i,
lineNumber: 298
}
}), this.state.featureHueEnabled && a.createElement(r, {
filter: this.props.filter,
__source: {
fileName: i,
lineNumber: 301
}
}));
return c(h, this.props.filter)
}
});
e.exports = d(N, b)
}, function(e, t, n) {
// =========================
// Function_704
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/webpages/TabToFocus.jsx",
a = n(1),
r = n(12),
s = n(41),
o = n(10),
l = n(3),
c = n(2),
u = a.createClass({
displayName: "TabToLinksSetting",
getInitialState: function() {
return {
tabsToLinks: l.getSync("vivaldi.tabs_to_links")
}
},
checkChange: function(e) {
var t = Boolean("true" === e.target.value),
n = {
preferenceKey: "vivaldi.tabs_to_links",
preferenceValue: {
boolean: t
},
preferenceType: "boolean"
};
o.settings.setPreference(n), this.setState({
tabsToLinks: t
})
},
render: function() {
var e = a.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: i,
lineNumber: 28
}
}, a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 29
}
}, a.createElement("h3", {
__source: {
fileName: i,
lineNumber: 30
}
}, c("Webpage Focus")), a.createElement("p", {
className: "info",
__source: {
fileName: i,
lineNumber: 31
}
}, c("This setting takes effect in new tabs or windows only.")), a.createElement(s, {
name: "tabToFocusSetting",
ref: "keyAccessGroup",
className: "setting-single",
value: this.state.tabsToLinks,
onChange: this.checkChange,
__source: {
fileName: i,
lineNumber: 34
}
}, a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 39
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 40
}
}, a.createElement("input", {
type: "radio",
value: !1,
__source: {
fileName: i,
lineNumber: 41
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 42
}
}, c("Focus Forms Only")))), a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 45
}
}, a.createElement("label", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 46
}
}, a.createElement("input", {
type: "radio",
value: !0,
__source: {
fileName: i,
lineNumber: 47
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 48
}
}, c("Focus All Controls and Links")))))));
return r(e, this.props.filter)
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_705
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/webpages/fullscreen.jsx",
r = n(1),
s = n(59),
o = n(10),
l = n(3),
c = n(13),
u = n(2),
A = n(12),
d = r.createClass({
displayName: "FullscreenSettings",
mixins: [c],
vivaldiSettingsKeys: ["SHOW_FULLSCREEN_BUBBLE", "vivaldi.hide_mouse_in_fullscreen"],
saveVivaldiSettingFromEvent: function(e, t, n) {
if ("vivaldi.hide_mouse_in_fullscreen" === e) {
var a = {
preferenceKey: e,
preferenceValue: {
boolean: n.target[t]
},
preferenceType: "boolean"
};
o.settings.setPreference(a)
}
l.set(i({}, e, n.target[t]))
},
render: function() {
var e = r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 33
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 34
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state.SHOW_FULLSCREEN_BUBBLE,
onChange: this.saveVivaldiSettingFromEvent.bind(this, "SHOW_FULLSCREEN_BUBBLE", "checked"),
__source: {
fileName: a,
lineNumber: 35
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 40
}
}, u("Show Fullscreen Reminder")))),
t = "mac" !== s(),
n = t ? r.createElement("div", {
className: "setting-single",
__source: {
fileName: a,
lineNumber: 48
}
}, r.createElement("label", {
__source: {
fileName: a,
lineNumber: 49
}
}, r.createElement("input", {
type: "checkbox",
checked: this.state["vivaldi.hide_mouse_in_fullscreen"],
onChange: this.saveVivaldiSettingFromEvent.bind(this, "vivaldi.hide_mouse_in_fullscreen", "checked"),
__source: {
fileName: a,
lineNumber: 50
}
}), r.createElement("span", {
__source: {
fileName: a,
lineNumber: 55
}
}, u("Hide the mouse cursor for page-initiated fullscreen")))) : null,
i = r.createElement("span", {
__source: {
fileName: a,
lineNumber: 61
}
}, r.createElement("div", {
className: "setting-group",
__source: {
fileName: a,
lineNumber: 62
}
}, r.createElement("h3", {
__source: {
fileName: a,
lineNumber: 63
}
}, u("Fullscreen Mode")), e, n));
return A(i, this.props.filter)
}
});
e.exports = d
}, function(e, t, n) {
// =========================
// Function_706
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/webpages/smoothscrolling.jsx",
a = n(1),
r = n(10),
s = n(25),
o = n(2),
l = n(12),
c = ["smooth_scrolling_enabled"],
u = a.createClass({
displayName: "SmoothScrollingSetting",
checkChange: function(e) {
var t = e.target.checked,
n = {
preferenceKey: "smooth_scrolling_enabled",
preferenceValue: {
boolean: t
},
preferenceType: "boolean"
};
r.settings.setPreference(n)
},
render: function() {
var e = a.createElement("div", {
className: "setting-group unlimited",
__source: {
fileName: i,
lineNumber: 25
}
}, a.createElement("div", {
className: "setting-single",
__source: {
fileName: i,
lineNumber: 26
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 27
}
}, a.createElement("input", {
type: "checkbox",
checked: this.props.vivaldiSettings.smooth_scrolling_enabled,
onChange: this.checkChange,
__source: {
fileName: i,
lineNumber: 28
}
}), a.createElement("span", {
__source: {
fileName: i,
lineNumber: 31
}
}, o("Smooth Scrolling"))), a.createElement("p", {
className: "info",
__source: {
fileName: i,
lineNumber: 33
}
}, o("This setting requires a restart to take full effect."))));
return l(e, this.props.filter)
}
});
e.exports = s(u, c)
}, function(e, t, n) {
// =========================
// Function_707
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/settings/webpages/webpagesSettingSection.jsx",
r = n(1),
s = n(11),
o = n(2),
l = n(706),
c = n(704),
u = n(705),
A = r.createClass({
displayName: "WebpagesSettingSection",
componentDidUpdate: function() {
s.findDOMNode(this.refs.webpages).style.display = s.findDOMNode(this.refs.smoothScrolling) || s.findDOMNode(this.refs.tabToLinks) || s.findDOMNode(this.refs.fullscreenInfo) ? "inline" : "none"
},
render: function() {
return r.createElement("div", {
ref: "webpages",
__source: {
fileName: a,
lineNumber: 20
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 21
}
}, o("Webpages")), r.createElement(l, i({}, this.props, {
ref: "smoothScrolling",
__source: {
fileName: a,
lineNumber: 22
}
})), r.createElement(c, i({}, this.props, {
ref: "tabToLinks",
__source: {
fileName: a,
lineNumber: 23
}
})), r.createElement(u, i({}, this.props, {
ref: "fullscreenInfo",
__source: {
fileName: a,
lineNumber: 24
}
})))
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_708
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function r(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function s(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
var o = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/speeddial/SpeedDial.jsx",
l = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
c = n(1),
u = i(c),
A = n(384),
d = i(A),
h = n(40),
m = i(h),
p = n(54),
f = i(p),
g = n(21),
_ = i(g),
v = n(598),
b = i(v),
N = n(373),
E = i(N),
S = n(15),
T = i(S),
y = n(47),
C = i(y),
I = n(170),
O = i(I),
w = n(96),
D = i(w),
k = n(2),
M = i(k),
L = n(4),
P = i(L),
R = n(5),
x = i(R),
B = n(26),
U = i(B),
F = n(30),
H = i(F),
V = function(e) {
function t(e) {
a(this, t);
var n = r(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
return n.draggableMoveHandler = n.draggableMoveHandler.bind(n), n.getContextMenuItems = n.getContextMenuItems.bind(n), n.handleMouseEnter = n.handleMouseEnter.bind(n), n.handleMouseLeave = n.handleMouseLeave.bind(n), n.handleRemoveDial = n.handleRemoveDial.bind(n), n.handleCutDial = n.handleCutDial.bind(n), n.handleCopyDial = n.handleCopyDial.bind(n), n.handlePasteDial = n.handlePasteDial.bind(n), n.handleRename = n.handleRename.bind(n), n.handleUpdateThumbnail = n.handleUpdateThumbnail.bind(n), n.mouseDownHandler = n.mouseDownHandler.bind(n), n.mouseUpHandler = n.mouseUpHandler.bind(n), n.cancelEvent = n.cancelEvent.bind(n), n.onBackgroundTaskStoreChange = n.onBackgroundTaskStoreChange.bind(n), n.openSpeedDialNode = n.openSpeedDialNode.bind(n), n.openSpeedDialNodeHandler = n.openSpeedDialNodeHandler.bind(n), n.onCut = n.onCut.bind(n), n.onCopy = n.onCopy.bind(n), n.onPaste = n.onPaste.bind(n), n.focusedElement = null, n.state = {
updating: D.default.isBookmarkThumbnailCapture(e.node.id),
mouseIsDown: !1
}, n
}
return s(t, e), l(t, [{
key: "componentWillMount",
value: function() {
d.default.addChangeListener(this.onBackgroundTaskStoreChange)
}
}, {
key: "componentWillUnmount",
value: function() {
d.default.removeChangeListener(this.onBackgroundTaskStoreChange)
}
}, {
key: "isFolder",
value: function() {
return !this.props.node.url
}
}, {
key: "isBookmark",
value: function() {
return !this.isFolder()
}
}, {
key: "handleRemoveDial",
value: function(e) {
e && e.stopPropagation(), f.default.removeBookmark(this.props.node)
}
}, {
key: "handleCutDial",
value: function(e) {
e && e.stopPropagation(), window.document.addEventListener("cut", this.onCut), window.document.execCommand("cut"), window.document.removeEventListener("cut", this.onCut)
}
}, {
key: "handleCopyDial",
value: function(e) {
e && e.stopPropagation(), window.document.addEventListener("copy", this.onCopy), window.document.execCommand("copy"), window.document.removeEventListener("copy", this.onCopy)
}
}, {
key: "handlePasteDial",
value: function(e) {
e && e.stopPropagation(), window.document.addEventListener("paste", this.onPaste), window.document.execCommand("paste"), window.document.removeEventListener("paste", this.onPaste)
}
}, {
key: "handleRename",
value: function(e) {
e && e.stopPropagation(), this.refs.title.enableEditing()
}
}, {
key: "handleUpdateThumbnail",
value: function(e) {
e && "function" == typeof e.stopPropagation && e.stopPropagation(), D.default.updateBookmarkThumbnail(this.props.node)
}
}, {
key: "onBackgroundTaskStoreChange",
value: function() {
this.setState({
updating: D.default.isBookmarkThumbnailCapture(this.props.node.id)
})
}
}, {
key: "openSpeedDialNodeHandler",
value: function(e) {
var t = "MacIntel" === navigator.platform ? e.metaKey : e.ctrlKey,
n = !1,
i = !1;
if (e.shiftKey && !e.altKey && t) return void T.default.openWindow(this.props.node.url, {
incognito: !1
});
if (!e.shiftKey || e.altKey || t)
if (e.shiftKey || e.altKey || !t) {
if (1 === e.button) n = !0, i = !0;
else if (2 === e.button) return
} else n = !0, i = !0;
else n = !0;
this.openSpeedDialNode(this.props.node, {
openInBackground: i,
openInNewTab: n
})
}
}, {
key: "openSpeedDialNode",
value: function(e, t) {
this.props.openSpeedDialNode(e, t)
}
}, {
key: "handleMouseEnter",
value: function() {
C.default.setStatus(this.props.node.url)
}
}, {
key: "handleMouseLeave",
value: function() {
C.default.clearStatus()
}
}, {
key: "draggableMoveHandler",
value: function(e, t, n) {
n = n || {}, n.isOver || P.default.bookmarks.get(t, function(i) {
i && i[0] && i[0].parentId && P.default.bookmarks.getChildren(i[0].parentId, function(i) {
var a = void 0;
for (a = 0; a < i.length && i[a].id !== t; a++);
n.isLeftOf || a++, P.default.bookmarks.move(e, {
index: a
}, function(e) {
P.default.runtime.lastError && console.warn("Error moving bookmark: ", P.default.runtime.lastError)
})
})
})
}
}, {
key: "mouseDownHandler",
value: function(e) {
1 === e.button && (navigator.platform.indexOf("Linux") !== -1 ? this.focusedElement = document.activeElement : this.cancelEvent(e)), 2 === e.button && "MacIntel" === navigator.platform && e.ctrlKey || this.setState({
mouseIsDown: !0
})
}
}, {
key: "mouseUpHandler",
value: function(e) {
var t = this;
this.state.mouseIsDown && (this.openSpeedDialNodeHandler(e), this.setState({
mouseIsDown: !1
}), this.focusedElement && setTimeout(function() {
t.focusedElement && t.focusedElement.focus(), t.focusedElement = null
}, 1))
}
}, {
key: "cancelEvent",
value: function(e) {
e.preventDefault(), e.stopPropagation()
}
}, {
key: "getContextMenuItems",
value: function(e) {
return [Object.assign({
handler: this.openSpeedDialNode.bind(this, e),
visible: this.isBookmark()
}, (0, H.default)("Open")), Object.assign({
handler: this.openSpeedDialNode.bind(this, e, {
openInNewTab: !0
}),
visible: this.isBookmark()
}, (0, H.default)("Open in New Tab")), Object.assign({
handler: this.openSpeedDialNode.bind(this, e, {
openInNewTab: !0,
openInBackground: !0
}),
visible: this.isBookmark()
}, (0, H.default)("Open in Background Tab")), {
name: "---"
}, Object.assign({
handler: this.openSpeedDialNode.bind(this, e, {
openInNewWindow: !0
}),
visible: this.isBookmark()
}, (0, H.default)("Open in New Window")), Object.assign({
handler: this.openSpeedDialNode.bind(this, e, {
openInNewWindow: !0,
incognito: !0
}),
visible: this.isBookmark()
}, (0, H.default)("Open in Private Window")), {
name: "---"
}, Object.assign({
handler: this.openSpeedDialNode.bind(this, e, {
openInBackground: !0
}),
visible: this.isFolder()
}, (0, H.default)("Open All Bookmarks")), {
name: "---"
}, Object.assign({
handler: this.handleUpdateThumbnail,
visible: this.isBookmark()
}, (0, H.default)("Reload")), {
name: "---"
}, Object.assign({
handler: this.handleRename
}, (0, H.default)("Rename")), {
name: "---"
}, Object.assign({
handler: this.handleCutDial
}, "MacIntel" === navigator.platform ? (0, H.default)("mac", "Cut") : (0, H.default)("win_linux", "Cut")), Object.assign({
handler: this.handleCopyDial
}, "MacIntel" === navigator.platform ? (0, H.default)("mac", "Copy") : (0, H.default)("win_linux", "Copy")), Object.assign({
handler: this.handlePasteDial
}, "MacIntel" === navigator.platform ? (0, H.default)("mac", "Paste") : (0, H.default)("win_linux", "Paste")), {
name: "---"
}, Object.assign({
handler: this.handleRemoveDial
}, (0, H.default)("other", "Delete"))]
}
}, {
key: "onDragOver",
value: function(e) {
var t = m.default.getMimeType();
e.dataTransfer.types.some(function(e) {
return "text/uri-list" === e || e === t
}) && (e.preventDefault(), e.stopPropagation(), e.dataTransfer.dropEffect = m.default.isCopyModifierPressed(e) ? "copy" : "move")
}
}, {
key: "onDrop",
value: function(e) {
var t = this;
e.preventDefault(), e.stopPropagation();
var n = m.default.getMimeType();
if (e.dataTransfer.types.findIndex(function(e) {
return e === n
}) !== -1) {
var i = JSON.parse(e.nativeEvent.dataTransfer.getData(n));
m.default.isCopyModifierPressed(e) ? f.default.copyBookmarks(i, this.props.node.id, 0) : f.default.moveBookmarksPromise(i, this.props.node.id, 0)
} else m.default.getUrlsFromEventPromise(e, !1).then(function(e) {
return f.default.createBookmarks(e, t.props.node.id, 0)
})
}
}, {
key: "shouldComponentUpdate",
value: function(e, t) {
return (0, _.default)(this, e, t)
}
}, {
key: "onCut",
value: function(e) {
f.default.cut(e, [this.props.node.id]), e.stopPropagation(), e.preventDefault()
}
}, {
key: "onCopy",
value: function(e) {
f.default.copy(e, [this.props.node.id]), e.stopPropagation(), e.preventDefault()
}
}, {
key: "onPaste",
value: function(e) {
f.default.pastePromise(e, this.props.node.id), e.stopPropagation(), e.preventDefault()
}
}, {
key: "render",
value: function() {
var e = this.props.node,
t = "off" === this.props.settings.SHOW_VIVALDI_FOOTER;
return u.default.createElement(b.default, {
tabIndex: "0",
ref: "draggable",
className: (0, x.default)({
draggable: !0,
dial: !0,
clicked: this.state.mouseIsDown,
folder: Boolean(this.props.node.children)
}),
style: this.props.style,
dragId: this.props.node.id,
onDraggableMove: this.draggableMoveHandler,
onContextMenu: (0, U.default)(this.getContextMenuItems.bind(this, e)),
dragImageSrc: "/resources/drag-and-drop.png",
onDoubleClick: this.cancelEvent,
__source: {
fileName: o,
lineNumber: 405
}
}, u.default.createElement("span", {
className: "thumbnail",
__source: {
fileName: o,
lineNumber: 421
}
}, this.props.node.children ? u.default.createElement("div", {
className: "thumbnail-image dial-folder-icon",
title: t ? this.props.node.url : null,
onMouseEnter: t ? null : this.handleMouseEnter,
onMouseLeave: t ? null : this.handleMouseLeave,
onMouseDown: this.mouseDownHandler,
onMouseUp: this.mouseUpHandler,
onDragOver: this.onDragOver.bind(this),
onDrop: this.onDrop.bind(this),
key: e.id,
dangerouslySetInnerHTML: {
__html: n(466)
},
__source: {
fileName: o,
lineNumber: 432
}
}) : u.default.createElement(O.default, {
title: t ? this.props.node.url : null,
onMouseEnter: t ? null : this.handleMouseEnter,
onMouseLeave: t ? null : this.handleMouseLeave,
onMouseDown: this.mouseDownHandler,
onMouseUp: this.mouseUpHandler,
key: e.id,
src: e.thumbnail,
__source: {
fileName: o,
lineNumber: 424
}
}), e.url && u.default.createElement("button", {
tabIndex: "-1",
onClick: this.handleUpdateThumbnail,
className: (0, x.default)({
circular: !0,
"update-thumbnail": !0,
updating: this.state.updating
}),
disabled: !!this.state.updating,
title: (0, M.default)("Update thumbnail"),
dangerouslySetInnerHTML: {
__html: n(474)
},
__source: {
fileName: o,
lineNumber: 448
}
}), u.default.createElement("button", {
tabIndex: "-1",
onClick: this.handleRemoveDial,
title: (0, M.default)("other", "Delete"),
className: "close circular",
dangerouslySetInnerHTML: {
__html: n(81)
},
__source: {
fileName: o,
lineNumber: 461
}
})), "never" !== this.props.settings.SPEEDDIAL_TITLES_VISIBLE && u.default.createElement(E.default, {
ref: "title",
howToEdit: "click",
className: "button-title",
setSpeedDialAwaitingEdit: this.props.setSpeedDialAwaitingEdit,
needsInitialEdit: this.props.awaitingInitialEditId === this.props.node.id,
getContextMenuItems: this.getContextMenuItems,
bookmark: this.props.node,
__source: {
fileName: o,
lineNumber: 471
}
}))
}
}]), t
}(u.default.Component);
e.exports = V
}, function(e, t, n) {
// =========================
// Function_709
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function r(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function s(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
var o = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/speeddial/SpeedDialAddButton.jsx",
l = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
c = n(1),
u = i(c),
A = n(5),
d = i(A),
h = function(e) {
function t() {
return a(this, t), r(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments))
}
return s(t, e), l(t, [{
key: "render",
value: function() {
var e = (0, d.default)({
dial: !0,
add: !0,
active: this.props.drawerIsOpen
});
return u.default.createElement("div", {
className: e,
style: this.props.style,
__source: {
fileName: o,
lineNumber: 12
}
}, u.default.createElement("button", {
ref: "openAddSpeedDial",
className: "thumbnail-image",
title: this.props.title,
onDragOver: this.props.onDragOver,
onDrop: this.props.onDrop,
onClick: this.props.handleClick,
__source: {
fileName: o,
lineNumber: 15
}
}))
}
}]), t
}(u.default.Component);
e.exports = h
}, function(e, t, n) {
// =========================
// Function_710
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function r(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function s(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);
}
var o = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/speeddial/SpeedDialDrawer.jsx",
l = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
c = n(1),
u = i(c),
A = n(11),
d = i(A),
h = n(136),
m = i(h),
p = n(97),
f = i(p),
g = n(711),
_ = i(g),
v = n(46),
b = n(96),
N = i(b),
E = n(4),
S = i(E),
T = n(10),
y = i(T),
C = n(2),
I = i(C),
O = function(e) {
function t(e, n) {
a(this, t);
var i = r(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e, n));
return i._onUrlbarStoreChanged = i._onUrlbarStoreChanged.bind(i), i.addSpeedDialFolder = i.addSpeedDialFolder.bind(i), i.drawerSubmitHandler = i.drawerSubmitHandler.bind(i), i.onUrlFieldChanged = i.onUrlFieldChanged.bind(i), i.toggleStartpageDrawer = i.toggleStartpageDrawer.bind(i), i.state = {
addSpeedDialTitle: "",
isSpeedDialURLValid: !1
}, i
}
return s(t, e), l(t, [{
key: "componentDidMount",
value: function() {
d.default.findDOMNode(this.refs.urlField).focus(), f.default.addChangeListener(this._onUrlbarStoreChanged)
}
}, {
key: "componentWillUnmount",
value: function() {
f.default.removeChangeListener(this._onUrlbarStoreChanged)
}
}, {
key: "_onUrlbarStoreChanged",
value: function() {
var e = f.default.getUrlfieldStateFromId("speedDialDrawer");
this.setState(e), this.onUrlFieldChanged()
}
}, {
key: "addSpeedDialFolder",
value: function() {
var e = this,
t = {
parentId: this.props.node.id,
title: (0, I.default)("New Folder")
};
S.default.bookmarks.create(t, function(t) {
S.default.runtime.lastError && console.warn("The computer tried to create a speed dial folder, but The Bookmark API said no. ", S.default.runtime.lastError.message), e.props.setSpeedDialAwaitingEdit(t.id), e.toggleStartpageDrawer(!1)
})
}
}, {
key: "toggleStartpageDrawer",
value: function(e) {
this.props.toggleStartpageDrawer(!1)
}
}, {
key: "drawerSubmitHandler",
value: function(e) {
e.stopPropagation(), e.preventDefault();
var t = (this.state.editUrl || this.state.url || "").trim();
0 !== t.length && (t = (0, v.ensureURLProtocol)(t), this.addSpeedDial(this.state.editUrl, this.state.editUrl), this.setState({
editUrl: ""
}))
}
}, {
key: "addSpeedDial",
value: function(e, t) {
var n = {
parentId: this.props.node.id,
title: e,
url: (0, v.ensureURLProtocol)(t)
},
i = "chrome://thumb/" + (0, v.ensureURLProtocol)(t);
y.default.thumbnails.isThumbnailAvailable("", i, function(e) {
e.hasThumbnail && (n.thumbnail = e.thumbnailUrl), S.default.bookmarks.create(n, function(e) {
S.default.runtime.lastError && console.warn("The computer tried to create a speed dial, but The Bookmark API said no. ", S.default.runtime.lastError.message), e && N.default.updateBookmarkThumbnail(e)
})
}), this.toggleStartpageDrawer(!1)
}
}, {
key: "isSpeedDialURLValid",
value: function() {
var e = this.refs.urlField && d.default.findDOMNode(this.refs.urlField) && d.default.findDOMNode(this.refs.urlField).value.trim();
return (0, v.isValidURL)((0, v.ensureURLProtocol)(e))
}
}, {
key: "onUrlFieldChanged",
value: function(e) {
this.setState({
isSpeedDialURLValid: this.isSpeedDialURLValid()
})
}
}, {
key: "render",
value: function() {
return u.default.createElement("aside", {
key: "drawer",
className: "startpage-drawer",
__source: {
fileName: o,
lineNumber: 114
}
}, u.default.createElement("section", {
className: "drawer-adddial",
__source: {
fileName: o,
lineNumber: 115
}
}, u.default.createElement("header", {
__source: {
fileName: o,
lineNumber: 116
}
}, u.default.createElement("h2", {
__source: {
fileName: o,
lineNumber: 117
}
}, (0, I.default)("Add Bookmark"))), u.default.createElement("form", {
className: "drawer-addform",
onSubmit: this.drawerSubmitHandler,
__source: {
fileName: o,
lineNumber: 119
}
}, u.default.createElement(m.default, {
ref: "urlField",
className: "address",
editUrl: this.state.editUrl,
autocompletionEnabled: !0,
selectionStart: this.state.selectionStart,
selectionEnd: this.state.selectionEnd,
pageId: "speedDialDrawer",
onUrlFieldChanged: this.onUrlFieldChanged,
title: (0, I.default)("Enter page address"),
triggerTypedHistory: !1,
__source: {
fileName: o,
lineNumber: 121
}
}), u.default.createElement("input", {
className: "add-dial-submit primary",
type: "submit",
disabled: !this.state.isSpeedDialURLValid,
value: (0, I.default)("Add"),
__source: {
fileName: o,
lineNumber: 131
}
})), u.default.createElement("div", {
className: "toolbar icons",
__source: {
fileName: o,
lineNumber: 137
}
}, u.default.createElement("button", {
className: "button-toolbar folder flex",
onClick: this.addSpeedDialFolder,
__source: {
fileName: o,
lineNumber: 138
}
}, u.default.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(216)
},
__source: {
fileName: o,
lineNumber: 140
}
}), u.default.createElement("span", {
className: "buttontext",
__source: {
fileName: o,
lineNumber: 142
}
}, (0, I.default)("New Folder"))))), u.default.createElement(_.default, {
toggleStartpageDrawer: this.toggleStartpageDrawer,
node: this.props.node,
__source: {
fileName: o,
lineNumber: 147
}
}))
}
}]), t
}(u.default.Component);
e.exports = O
}, function(e, t, n) {
// =========================
// Function_711
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function r(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function s(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
var o = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/speeddial/SpeedDialSuggestSection.jsx",
l = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
c = n(1),
u = i(c),
A = n(4),
d = i(A),
h = n(10),
m = i(h),
p = n(46),
f = n(96),
g = i(f),
_ = n(2),
v = i(_),
b = function(e) {
function t(e, n) {
a(this, t);
var i = r(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e, n));
return i.addSpeedDial = i.addSpeedDial.bind(i), i.toggleStartpageDrawer = i.toggleStartpageDrawer.bind(i), i.state = {
suggestions: []
}, i
}
return s(t, e), l(t, [{
key: "componentWillMount",
value: function() {
this.updateSuggestions()
}
}, {
key: "updateSuggestions",
value: function(e) {
var t = this;
d.default.topSites.get(function(e) {
t.setState({
suggestions: e.filter(function(e) {
return !((0, p.isInternalURL)(e.url) || (0, p.isIgnoredURL)(e.url))
})
})
})
}
}, {
key: "addSpeedDial",
value: function(e, t) {
var n = {
parentId: this.props.node.id,
title: e,
url: (0, p.ensureURLProtocol)(t)
},
i = "chrome://thumb/" + (0, p.ensureURLProtocol)(t);
m.default.thumbnails.isThumbnailAvailable("", i, function(e) {
e.hasThumbnail && (n.thumbnail = e.thumbnailUrl), d.default.bookmarks.create(n, function(e) {
d.default.runtime.lastError && console.warn("The computer tried to create a speed dial, but The Bookmark API said no. ", d.default.runtime.lastError.message), e && g.default.updateBookmarkThumbnail(e)
})
}), this.toggleStartpageDrawer(!1)
}
}, {
key: "toggleStartpageDrawer",
value: function(e) {
this.props.toggleStartpageDrawer(e)
}
}, {
key: "render",
value: function() {
return u.default.createElement("section", {
className: "drawer-suggestions",
__source: {
fileName: o,
lineNumber: 63
}
}, u.default.createElement("header", {
__source: {
fileName: o,
lineNumber: 64
}
}, u.default.createElement("h2", {
__source: {
fileName: o,
lineNumber: 65
}
}, (0, v.default)("Suggestions")), u.default.createElement("button", {
className: "close",
tabIndex: "-1",
dangerouslySetInnerHTML: {
__html: n(81)
},
onClick: this.toggleStartpageDrawer.bind(this, !1),
__source: {
fileName: o,
lineNumber: 66
}
})), u.default.createElement("div", {
className: "dials dial-suggestions",
__source: {
fileName: o,
lineNumber: 72
}
}, this.state.suggestions && this.state.suggestions.length ? this.state.suggestions.map(function(e, t) {
return u.default.createElement("button", {
key: t,
className: "dial",
title: e.title,
onClick: this.addSpeedDial.bind(this, e.title, e.url),
"data-dialurl": e.url,
__source: {
fileName: o,
lineNumber: 77
}
}, u.default.createElement("div", {
className: "dial-image",
style: {
backgroundImage: "url(chrome://thumb/" + (0, p.ensureURLProtocol)(e.url) + ")"
},
__source: {
fileName: o,
lineNumber: 82
}
}), u.default.createElement("div", {
className: "dial-title",
__source: {
fileName: o,
lineNumber: 85
}
}, e.title))
}, this) : u.default.createElement("p", {
__source: {
fileName: o,
lineNumber: 89
}
}, (0, v.default)("No history to choose from yet."))))
}
}]), t
}(u.default.Component);
b.propTypes = {
node: u.default.PropTypes.object.isRequired
}, e.exports = b
}, function(e, t, n) {
// =========================
// Function_712
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function r(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function s(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
var o = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/speeddial/SpeedDialView.jsx",
l = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
c = n(1),
u = i(c),
A = n(11),
d = i(A),
h = n(40),
m = i(h),
p = n(54),
f = i(p),
g = n(409),
_ = i(g),
v = n(21),
b = i(v),
N = n(708),
E = i(N),
S = n(709),
T = i(S),
y = n(2),
C = i(y),
I = n(5),
O = i(I),
w = n(4),
D = i(w),
k = n(7),
M = n(6),
L = i(M),
P = n(87),
R = i(P),
x = n(96),
B = i(x),
U = n(25),
F = i(U),
H = ["SPEEDDIAL_TITLES_VISIBLE", "SPEEDDIAL_ADDBUTTON_VISIBLE", "SPEEDDIAL_COLS", "USE_ANIMATION", "SPEEDDIAL_TITLES_VISIBLE", "SHOW_VIVALDI_FOOTER"],
V = 220,
W = 15,
G = null,
K = function(e) {
function t(e) {
a(this, t);
var n = r(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
return n._onWebpageViewStoreChanged = n._onWebpageViewStoreChanged.bind(n), n.openParentNode = n.openParentNode.bind(n), n.onDragOverAddButton = n.onDragOverAddButton.bind(n), n.onDropOnAddButton = n.onDropOnAddButton.bind(n), n._temporaryAnimationEl = null, n._animateBackward = !1, n.state = {
showDialOverlay: !1
}, n
}
return s(t, e), l(t, [{
key: "componentWillMount",
value: function() {
var e = this;
R.default.addChangeListener(this._onWebpageViewStoreChanged), this._io = new IntersectionObserver(function(t) {
e.isVisible(t)
})
}
}, {
key: "componentDidMount",
value: function() {
this.attachIntersectionObserver()
}
}, {
key: "componentWillUnmount",
value: function() {
this._io.disconnect(), R.default.removeChangeListener(this._onWebpageViewStoreChanged)
}
}, {
key: "_onWebpageViewStoreChanged",
value: function(e) {
e.type === L.default.PAGE_RELOAD && this.handleUpdateThumbnailFolder(this.props.speedDialNode.id)
}
}, {
key: "componentDidUpdate",
value: function() {
var e = this,
t = function t(n) {
"transform" === n.propertyName && e._temporaryAnimationEl && (e._temporaryAnimationEl.removeEventListener("webkitTransitionEnd", t), d.default.unmountComponentAtNode(e._temporaryAnimationEl), e._temporaryAnimationEl && e._temporaryAnimationEl.parentNode && e._temporaryAnimationEl.parentNode.removeChild(e._temporaryAnimationEl), e._temporaryAnimationEl = null, e._animateBackward = !1)
};
this._temporaryAnimationEl && (this._temporaryAnimationEl.addEventListener("webkitTransitionEnd", t), this._animateBackward === !0 ? d.default.findDOMNode(this).classList.add("pause-animations", "animateFront") : d.default.findDOMNode(this).classList.add("pause-animations", "animateBack"), setTimeout(function() {
e._temporaryAnimationEl && (e._animateBackward === !0 ? (d.default.findDOMNode(e).classList.remove("pause-animations", "animateFront"), e._temporaryAnimationEl && e._temporaryAnimationEl.firstChild && e._temporaryAnimationEl.firstChild.classList && e._temporaryAnimationEl.firstChild.classList.add("animateBack")) : (d.default.findDOMNode(e).classList.remove("pause-animations", "animateBack"), e._temporaryAnimationEl && e._temporaryAnimationEl.firstChild && e._temporaryAnimationEl.firstChild.classList && e._temporaryAnimationEl.firstChild.classList.add("animateFront")))
}, 5)), this.attachIntersectionObserver()
}
}, {
key: "attachIntersectionObserver",
value: function() {
this.refs.toParentFolder && null === this._io.root && this._io.observe(d.default.findDOMNode(this.refs.toParentFolder))
}
}, {
key: "isVisible",
value: function(e) {
var t = e[0];
0 === t.intersectionRatio ? t.target.classList.add("out-of-view") : t.target.classList.remove("out-of-view")
}
}, {
key: "componentWillReceiveProps",
value: function(e) {
var t = this;
this.props.speedDialSetNode && this.props.speedDialNode && e.speedDialSetNode && e.speedDialNode && this.props.speedDialSetNode.id === e.speedDialSetNode.id && this.props.speedDialNode.id !== e.speedDialNode.id && this.props.settings.USE_ANIMATION && (this.props.speedDialNode.id === e.speedDialNode.parentId ? this._saveCloneForAnimation() : e.speedDialNode.children && e.speedDialNode.children.find(function(e) {
return e.id === t.props.speedDialNode.id
}) && (this._saveCloneForAnimation(), this._animateBackward = !0))
}
}, {
key: "_saveCloneForAnimation",
value: function() {
if (d.default.findDOMNode(this) && (G && !this.refs.rootElement && (this.refs.rootElement = G), this.refs.rootElement)) {
var e = Object.keys(this.refs.rootElement).find(function(e) {
return e.startsWith("__reactInternalInstance")
}),
t = this.refs.rootElement[e];
if (t) {
var n = t._currentElement;
n && G !== n && (G = this.refs.rootElement);
var i = u.default.cloneElement(n, n.props);
this._temporaryAnimationEl = document.createElement("div"), d.default.render(i, this._temporaryAnimationEl), d.default.findDOMNode(this).parentNode.appendChild(this._temporaryAnimationEl)
}
}
}
}, {
key: "onDragOverHandler",
value: function(e) {
e.preventDefault(), e.stopPropagation()
}
}, {
key: "openSpeedDialNode",
value: function(e, t) {
this.props.openSpeedDialNode(e, t)
}
}, {
key: "openParentNode",
value: function(e) {
var t = this;
this.props.speedDialNode.parentId && D.default.bookmarks.getSubTree(this.props.speedDialNode.parentId, function(e) {
if (!D.default.runtime.lastError) {
var n = e[0];
n && t.openSpeedDialNode(n)
}
})
}
}, {
key: "isTopLevel",
value: function() {
return !this.props.speedDialNode || !this.props.speedDialSetNode || this.props.speedDialNode.id === this.props.speedDialSetNode.id
}
}, {
key: "renderNavigation",
value: function() {
return this.isTopLevel() ? null : u.default.createElement("nav", {
className: "startpage-folder-navigation",
ref: "toParentFolder",
__source: {
fileName: o,
lineNumber: 278
}
}, u.default.createElement("button", {
onClick: this.openParentNode,
title: (0, C.default)("Show Parent Folder"),
"data-name": "up-button",
className: "button-startpage up",
__source: {
fileName: o,
lineNumber: 279
}
}, u.default.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(459)
},
__source: {
fileName: o,
lineNumber: 284
}
}), this.props.speedDialNode.title))
}
}, {
key: "handleUpdateThumbnailFolder",
value: function(e) {
D.default.bookmarks.getChildren(e, function(e) {
return e.forEach(B.default.updateBookmarkThumbnail.bind(B.default))
})
}
}, {
key: "getSpeedDialColumns",
value: function() {
var e = V + 2 * W,
t = 6 * W,
n = this.props.settings.SPEEDDIAL_COLS;
return this.props.maxWidth >= 6 * e + t && n > 5 ? 6 : this.props.maxWidth >= 5 * e + t && n > 4 ? 5 : this.props.maxWidth >= 4 * e + t && n > 3 ? 4 : this.props.maxWidth >= 3 * e + t && n > 2 ? 3 : this.props.maxWidth >= 2 * e + t && n > 1 ? 2 : 1
}
}, {
key: "onDragOverAddButton",
value: function(e) {
var t = m.default.getMimeType();
e.dataTransfer.types.some(function(e) {
return "text/uri-list" === e || e === t
}) && (e.preventDefault(), e.stopPropagation(), e.dataTransfer.dropEffect = "copy")
}
}, {
key: "onDropOnAddButton",
value: function(e) {
var t = this.props.speedDialNode,
n = m.default.getMimeType();
if (e.dataTransfer.types.findIndex(function(e) {
return e === n
}) !== -1) {
var i = JSON.parse(e.nativeEvent.dataTransfer.getData(n));
f.default.copyBookmarks(i, t.id, 0)
} else m.default.getUrlsFromEventPromise(e, !1).then(function(e) {
return f.default.createBookmarks(e, t.id, t.children ? t.children.length : 0)
})
}
}, {
key: "shouldComponentUpdate",
value: function(e, t) {
return (0, b.default)(this, e, t)
}
}, {
key: "createFlexBoxLayout",
value: function(e, t, n) {
var i = e && e.children || [],
a = {
style: {
flexDirection: "row",
width: n,
flexWrap: "wrap"
},
children: i.map(function(e) {
return {
type: "bookmark",
key: e.id,
node: e,
style: {
width: t,
height: .9 * t,
marginRight: W,
marginBottom: 2 * W,
marginLeft: W
}
}
}).concat({
type: "button",
key: "button",
style: {
width: t,
height: .9 * t,
marginRight: W,
marginBottom: 2 * W,
marginLeft: W
}
})
};
return (0, _.default)(a), a
}
}, {
key: "getStyles",
value: function(e) {
return (e.children || []).map(function(e) {
return {
style: e.layout,
data: {
type: e.type,
node: e.node
},
key: e.key
}
})
}
}, {
key: "render",
value: function() {
var e = this,
t = this.props,
n = t.open,
i = t.settings,
a = t.maxWidth,
r = t.maxHeight,
s = t.speedDialSet;
if (n === !1 || !a || !r) return null;
var l = this.createFlexBoxLayout(this.props.speedDialNode, V, (V + 2 * W) * this.getSpeedDialColumns()),
c = this.getStyles(l),
A = (0, O.default)({
dials: !0,
speeddial: !0,
"sd-titles-onhover": "hover" === i.SPEEDDIAL_TITLES_VISIBLE
}),
d = {
width: (0, k.get)(l, ["layout", "width"], 0),
marginLeft: "auto",
marginRight: "auto"
},
h = s.length > 0;
return u.default.createElement("span", {
__source: {
fileName: o,
lineNumber: 426
}
}, this.renderNavigation(), u.default.createElement("div", {
className: A,
style: d,
ref: "rootElement",
__source: {
fileName: o,
lineNumber: 428
}
}, c.map(function(t, n) {
var a = t.key,
r = t.style,
s = t.data;
return "bookmark" === s.type ? u.default.createElement(E.default, {
key: n + "-" + s.node.id + "-" + (s.node.dateGroupModified || ""),
style: r,
node: s.node,
settings: i,
openSpeedDialNode: e.props.openSpeedDialNode,
awaitingInitialEditId: e.props.awaitingInitialEditId,
setSpeedDialAwaitingEdit: e.props.setSpeedDialAwaitingEdit,
__source: {
fileName: o,
lineNumber: 436
}
}) : "button" === s.type && i.SPEEDDIAL_ADDBUTTON_VISIBLE ? u.default.createElement(T.default, {
key: a,
style: r,
onDragOver: e.onDragOverAddButton,
onDrop: e.onDropOnAddButton,
drawerIsOpen: e.props.drawerIsOpen,
title: h ? (0, C.default)("Add Bookmark") : (0, C.default)("First add a new Speed Dial folder"),
handleClick: h ? e.props.toggleStartpageDrawer : e.props.createSpeedDialSet,
__source: {
fileName: o,
lineNumber: 449
}
}) : void 0
}).filter(Boolean)))
}
}]), t
}(u.default.Component);
e.exports = (0, F.default)(K, H, [], "settings")
}, function(e, t, n) {
// =========================
// Function_713
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/startpage/StartPage.jsx",
a = n(1),
r = n(11),
s = n(475),
o = n(54),
l = n(51),
c = n(565),
u = n(605),
A = n(610),
d = n(25),
h = n(50),
m = n(37),
p = n(15),
f = n(9),
g = n(374),
_ = n(710),
v = n(712),
b = n(714),
N = n(2),
E = n(4),
S = n(26),
T = n(30),
y = "1",
C = ["STARTPAGE_BG_COLOR", "STARTPAGE_BG_COLOR_USER_DEFINED", "STARTPAGE_SHOW_IMAGE", "STARTPAGE_IMAGE", "STARTPAGE_IMAGE_USER_DEFINED", "STARTPAGE_IMAGE_STRETCH", "STARTPAGE_IMAGE_REPEAT", "SPEEDDIAL_ADDBUTTON_VISIBLE", "BOOKMARKS_CONFIRM_BEFORE_OPEN", "BOOKMARKS_CONFIRM_THRESHOLD", "KEY_ACCESS"],
I = a.createClass({
displayName: "StartPage",
mixins: [f],
getInitialState: function() {
var e = l.getSpeeddialNodes(),
t = e && e[0] || null,
n = void 0;
return n = "bookmarks" === this.props.view ? g.Bookmarks : "history" === this.props.view ? g.History : g.SpeedDial, {
section: n,
speeddialNodes: e,
menuSpeeddial: t,
currentSpeeddial: t,
bookmarkRoot: l.getBookmarksRootNode(),
drawerIsOpen: !1,
awaitingInitialEditId: null
}
},
componentWillMount: function() {
l.addChangeListener(this._onStoreChange)
},
componentDidMount: function() {
this._setStartpageStyle()
},
componentWillUnmount: function() {
l.removeChangeListener(this._onStoreChange), m.unbind("esc", this.closeDrawerOnEsc)
},
componentDidUpdate: function(e, t) {
this._setStartpageStyle()
},
componentWillReceiveProps: function(e) {
if (e.view !== this.props.view) {
var t = void 0;
t = "bookmarks" === e.view ? g.Bookmarks : "history" === e.view ? g.History : g.SpeedDial, this.setState({
section: t
})
}
},
onFocus: function() {
m.bind("esc", this.closeDrawerOnEsc)
},
onBlur: function() {
m.unbind("esc", this.closeDrawerOnEsc)
},
_onStoreChange: function() {
var e = l.getSpeeddialNodes(),
t = e.length ? e[0] : null,
n = t,
i = void 0,
a = !0,
r = !1,
s = void 0;
try {
for (var o, c = e[Symbol.iterator](); !(a = (o = c.next()).done); a = !0) i = o.value, this.getUpdatedNode(i, this.state.currentSpeeddial) && (n = this.getUpdatedNode(i, this.state.currentSpeeddial)), this.getUpdatedNode(i, this.state.menuSpeeddial) && (t = this.getUpdatedNode(i, this.state.menuSpeeddial))
} catch (e) {
r = !0, s = e
} finally {
try {
!a && c.return && c.return()
} finally {
if (r) throw s
}
}
this.setState({
speeddialNodes: e,
menuSpeeddial: t,
currentSpeeddial: n
})
},
getUpdatedNode: function e(t, n) {
if (t && t.id && n && n.id) {
if (t.id === n.id) return t;
if (t.children) {
for (var i = 0; i < t.children.length; i++) {
var a = e(t.children[i], n);
if (a && a.id === n.id) return a
}
return null
}
return null
}
return null
},
closeDrawerOnEsc: function(e) {
e.preventDefault(), e.stopPropagation(), this.state.drawerIsOpen && this.toggleStartpageDrawer(!1)
},
addBookmarkOnDblClick: function(e) {
e.target === r.findDOMNode(this.refs.sdWrapper) && this.toggleStartpageDrawer()
},
toggleStartpageDrawer: function(e) {
var t = "boolean" == typeof e ? e : !this.state.drawerIsOpen;
this.setState({
drawerIsOpen: t
})
},
handlePaste: function() {
document.addEventListener("paste", this.onPaste), document.execCommand("paste"), document.removeEventListener("paste", this.onPaste)
},
onPaste: function(e) {
o.pastePromise(e, this.state.currentSpeeddial.id, !0), e.stopPropagation(), e.preventDefault()
},
createSpeedDialSet: function() {
E.bookmarks.create({
parentId: y,
title: N("New Folder")
}, function(e) {
E.bookmarks.update(e.id, {
speeddial: !0
}, function(e) {
this.setState({
initialEditSpeedDialSet: e.id
}), this.openMenuItem(g.SpeedDial, e)
}.bind(this))
}.bind(this))
},
openMenuItem: function(e, t, n) {
this.props.updatePageThumbnailWithActiveWebview(this.props.page, 1e3);
var i = t && t.id && t;
this.setState({
section: e,
menuSpeeddial: i,
currentSpeeddial: i
})
},
isFolder: function(e) {
return !e.url
},
openFolder: function(e, t) {
if (t = t || {}, t.openInBackground === !0) {
if (this.props.vivaldiSettings.BOOKMARKS_CONFIRM_BEFORE_OPEN && e.children.length > this.props.vivaldiSettings.BOOKMARKS_CONFIRM_THRESHOLD) {
var n = {
bookmarks: e.children,
inBackground: t.openInBackground,
newTab: t.openInNewTab
};
return void h.showConfirmOpenBookmarkDialog(n)
}
E.bookmarks.getChildren(e.id, function(e) {
e.forEach(function(e) {
p.openURL(e.url, {
inCurrent: !1,
inBackground: !0
})
})
})
} else this.setState({
currentSpeeddial: e
}), r.findDOMNode(this.refs.sdWrapper).scrollTop = 0
},
openSpeedDialNode: function(e, t) {
t = t || {}, this.isFolder(e) ? this.openFolder(e, t) : t.openInNewWindow ? p.openWindow(e.url, {
incognito: t.incognito
}) : p.openURL(e.url, {
inCurrent: !t.openInNewTab,
inBackground: t.openInBackground,
bookmarkId: e.id,
addOpenerTabId: !0
})
},
setSpeedDialAwaitingEdit: function(e) {
this.setState({
awaitingInitialEditId: e
})
},
_setStartpageStyle: function() {
if (this.props && this.props.open && this.props.vivaldiSettings) {
var e = this.props.vivaldiSettings,
t = this.refs.startpage.style,
n = e.STARTPAGE_IMAGE_STRETCH ? "cover" : "auto",
i = e.STARTPAGE_IMAGE_REPEAT ? "repeat" : "no-repeat",
a = "user_defined" === e.STARTPAGE_BG_COLOR ? e.STARTPAGE_BG_COLOR_USER_DEFINED : e.STARTPAGE_BG_COLOR,
r = void 0;
r = e.STARTPAGE_SHOW_IMAGE ? "user_defined" === e.STARTPAGE_IMAGE ? "url(" + e.STARTPAGE_IMAGE_USER_DEFINED + ")" : "url(" + e.STARTPAGE_IMAGE + ")" : "url(data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=)", t.backgroundColor = a, t.backgroundImage = r, t.backgroundSize = n, t.backgroundRepeat = i
}
},
renderSpeedDial: function() {
return a.createElement(v, {
open: !0,
isActive: !0,
speedDialNode: this.state.currentSpeeddial,
speedDialSetNode: this.state.menuSpeeddial,
speedDialSet: this.state.speeddialNodes,
drawerIsOpen: this.state.drawerIsOpen,
maxWidth: this.props.contentWidth,
maxHeight: this.props.contentHeight,
openSpeedDialNode: this.openSpeedDialNode,
toggleStartpageDrawer: this.toggleStartpageDrawer,
createSpeedDialSet: this.createSpeedDialSet,
setSpeedDialAwaitingEdit: this.setSpeedDialAwaitingEdit,
awaitingInitialEditId: this.state.awaitingInitialEditId,
__source: {
fileName: i,
lineNumber: 317
}
})
},
renderSection: function() {
return this.state.section === g.Bookmarks ? a.createElement(c, {
__source: {
fileName: i,
lineNumber: 337
}
}) : this.state.section === g.History ? a.createElement(u, {
page: this.props.page,
__source: {
fileName: i,
lineNumber: 339
}
}) : this.state.section === g.SpeedDial ? this.renderSpeedDial() : this.state.section === g.HistoryNew ? a.createElement(A, {
page: this.props.page,
__source: {
fileName: i,
lineNumber: 343
}
}) : (console.warn("Unknown Startpage Section: ", this.state.section), null)
},
getContextMenuItems: function() {
var e = this.state.drawerIsOpen === !1 && null !== this.state.currentSpeeddial;
return [Object.assign({
handler: this.toggleStartpageDrawer,
visible: e
}, T("Add Bookmark to Speed Dial")), {
name: "---"
}, Object.assign({
handler: this.handlePaste,
visible: e
}, "MacIntel" === navigator.platform ? T("mac", "Paste") : T("win_linux", "Paste")), {
name: "---"
}, Object.assign({
handler: h.fullScreen
}, T("Fullscreen"))]
},
render: function() {
if (!this.props.open) return null;
var e = this.state.speeddialNodes.length > 0 ? this.addBookmarkOnDblClick : this.createSpeedDialSet;
return a.createElement("div", {
key: this.props.id,
ref: "startpage",
tabIndex: "0",
onFocus: this.onFocus,
onBlur: this.onBlur,
className: "startpage",
__source: {
fileName: i,
lineNumber: 381
}
}, a.createElement(b, {
openMenuItem: this.openMenuItem,
section: this.state.section,
speedDialSet: this.state.speeddialNodes,
speedDialSetNode: this.state.menuSpeeddial,
createSpeedDialSet: this.createSpeedDialSet,
initialEditSpeedDialSet: this.state.initialEditSpeedDialSet,
keyAccess: this.props.vivaldiSettings.KEY_ACCESS,
__source: {
fileName: i,
lineNumber: 389
}
}), a.createElement("div", {
ref: "startpageContent",
className: "startpage-content",
onContextMenu: this.state.section === g.SpeedDial && S(this.getContextMenuItems),
onDoubleClick: this.state.section === g.SpeedDial && !this.props.vivaldiSettings.SPEEDDIAL_ADDBUTTON_VISIBLE && e,
__source: {
fileName: i,
lineNumber: 398
}
}, a.createElement("div", {
className: "sdwrapper",
ref: "sdWrapper",
__source: {
fileName: i,
lineNumber: 406
}
}, this.renderSection())), a.createElement(s, {
transitionEnterTimeout: 500,
transitionLeaveTimeout: 200,
transitionName: "startpage-drawer-transition",
component: "div",
className: "startpage-drawer-wrapper",
__source: {
fileName: i,
lineNumber: 413
}
}, this.state.drawerIsOpen && a.createElement(_, {
key: "drawer-" + this.props.id,
node: this.state.currentSpeeddial,
setSpeedDialAwaitingEdit: this.setSpeedDialAwaitingEdit,
toggleStartpageDrawer: this.toggleStartpageDrawer,
__source: {
fileName: i,
lineNumber: 420
}
})))
}
});
e.exports = d(I, C)
}, function(e, t, n) {
// =========================
// Function_714
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/startpage/startpage-topmenu.jsx",
a = n(1),
r = n(374),
s = n(373),
o = n(74),
l = n(2),
c = n(5),
u = n(30),
A = a.createClass({
displayName: "StartPageTopMenu",
getInitialState: function() {
return {
useNewHistory: o.isEnabled(o.kNewHistoryPage)
}
},
propTypes: {
openMenuItem: a.PropTypes.func,
createSpeedDialSet: a.PropTypes.func,
section: a.PropTypes.string,
speedDialSet: a.PropTypes.array,
speedDialSetNode: a.PropTypes.object
},
openMenuItem: function(e, t, n) {
this.props.openMenuItem(e, t, n)
},
getContextMenuItems: function(e, t) {
return [Object.assign({
handler: this.handleRename.bind(this, e)
}, u("Rename")), {
name: "---"
}, Object.assign({
handler: this.handleRemove.bind(this, e)
}, u("Remove from Speed Dial"))]
},
handleRename: function(e) {
this.refs[e].enableEditing()
},
handleRemove: function(e) {
this.refs[e].removeSpeedDial()
},
render: function() {
return a.createElement("nav", {
className: "startpage-navigation",
__source: {
fileName: i,
lineNumber: 53
}
}, a.createElement("div", {
className: "startpage-navigation-group",
__source: {
fileName: i,
lineNumber: 54
}
}, this.props.speedDialSet.map(function(e, t) {
var n = this.props.section === r.SpeedDial && this.props.speedDialSetNode && this.props.speedDialSetNode.id === e.id,
o = "title" + t;
return a.createElement(s, {
className: c({
active: n,
"button-startpage": !0
}),
ref: o,
key: e.id,
bookmark: e,
howToEdit: "doubleClick",
getContextMenuItems: this.getContextMenuItems.bind(this, o),
keyAccess: this.props.keyAccess,
onSelect: this.openMenuItem.bind(this, r.SpeedDial, e),
needsInitialEdit: this.props.initialEditSpeedDialSet === e.id,
__source: {
fileName: i,
lineNumber: 63
}
})
}, this), a.createElement("button", {
onClick: this.props.createSpeedDialSet,
className: "button-startpage add-set",
title: l("Add new Speed Dial folder"),
tabIndex: this.props.keyAccess,
dangerouslySetInnerHTML: {
__html: n(1009)
},
__source: {
fileName: i,
lineNumber: 81
}
})), a.createElement("div", {
className: "startpage-navigation-group",
__source: {
fileName: i,
lineNumber: 89
}
}, a.createElement("button", {
onClick: this.openMenuItem.bind(this, r.Bookmarks, null),
title: l("Bookmarks"),
tabIndex: this.props.keyAccess,
className: c({
"button-startpage": !0,
active: this.props.section === r.Bookmarks
}),
__source: {
fileName: i,
lineNumber: 90
}
}, l("Bookmarks")), a.createElement("button", {
onClick: this.openMenuItem.bind(this, r.History, null),
title: l("History"),
tabIndex: this.props.keyAccess,
className: c({
"button-startpage": !0,
active: this.props.section === r.History
}),
__source: {
fileName: i,
lineNumber: 98
}
}, l("History")), this.state.useNewHistory === !0 ? a.createElement("button", {
onClick: this.openMenuItem.bind(this, r.HistoryNew, null),
title: l("History"),
tabIndex: this.props.keyAccess,
className: c({
"button-startpage": !0,
active: this.props.section === r.HistoryNew
}),
__source: {
fileName: i,
lineNumber: 108
}
}, l("History in the Making")) : null))
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_715
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/statusbar/CaptureImages.jsx",
a = n(176),
r = n(5),
s = n(39),
o = n(9),
l = n(1),
c = n(2),
u = n(177),
A = u.showNotification,
d = l.createClass({
displayName: "CaptureImages",
mixins: [s, o],
getInitialState: function() {
return {
drawerOpen: !1,
captureInProgress: !1,
compressionFormat: "png",
activeCapturePage: "fullpage",
saveLocation: "file"
}
},
componentDidUpdate: function(e, t) {
t.drawerOpen === !0 && this.state.drawerOpen === !1 ? this.disableOnClickOutside() : t.drawerOpen === !1 && this.state.drawerOpen === !0 && this.enableOnClickOutside()
},
onToggleCaptureImagesActions: function() {
this.setState({
drawerOpen: !this.state.drawerOpen
})
},
onCaptureFullpage: function() {
var e = this;
this.setState({
captureInProgress: !0
}), a.captureFullpage(this.props.pageId, this.state.compressionFormat, this.state.saveLocation, function(t) {
"clipboard" === e.state.saveLocation && A({
title: c("Page Captured"),
body: c("Image stored in the clipboard.")
}), e.setState({
drawerOpen: !1,
captureInProgress: !1
})
})
},
onCaptureArea: function() {
var e = this;
this.setState({
drawerOpen: !1
}), a.captureArea(this.state.compressionFormat, this.state.saveLocation, !1, function(t) {
t ? e.setState({
drawerOpen: !0
}) : "clipboard" === e.state.saveLocation && A({
title: c("Area Captured"),
body: c("Image stored in the clipboard.")
})
})
},
handleClickOutside: function() {
this.setState({
drawerOpen: !1
})
},
onSelectPNG: function() {
this.setState({
compressionFormat: "png",
saveLocation: "file"
})
},
onSelectJPEG: function() {
this.setState({
compressionFormat: "jpg",
saveLocation: "file"
})
},
onSelectClipboard: function() {
this.setState({
saveLocation: "clipboard"
})
},
onSelectPageCapture: function() {
"fullpage" !== this.state.activeCapturePage && this.setState({
activeCapturePage: "fullpage"
})
},
onSelectAreaCapture: function() {
"area" !== this.state.activeCapturePage && this.setState({
activeCapturePage: "area"
})
},
renderFormatPicker: function() {
return l.createElement("ul", {
className: "capture-controls",
__source: {
fileName: i,
lineNumber: 103
}
}, l.createElement("li", {
__source: {
fileName: i,
lineNumber: 104
}
}, l.createElement("label", {
__source: {
fileName: i,
lineNumber: 104
}
}, l.createElement("input", {
type: "radio",
name: "capture-images-group",
checked: "png" === this.state.compressionFormat && "file" === this.state.saveLocation,
onChange: this.onSelectPNG,
__source: {
fileName: i,
lineNumber: 105
}
}), c("Save as PNG"))), l.createElement("li", {
__source: {
fileName: i,
lineNumber: 112
}
}, l.createElement("label", {
__source: {
fileName: i,
lineNumber: 112
}
}, l.createElement("input", {
type: "radio",
name: "capture-images-group",
checked: "jpg" === this.state.compressionFormat && "file" === this.state.saveLocation,
onChange: this.onSelectJPEG,
__source: {
fileName: i,
lineNumber: 113
}
}), c("Save as JPEG"))), l.createElement("li", {
__source: {
fileName: i,
lineNumber: 120
}
}, l.createElement("label", {
__source: {
fileName: i,
lineNumber: 120
}
}, l.createElement("input", {
type: "radio",
name: "capture-images-group",
checked: "clipboard" === this.state.saveLocation,
onChange: this.onSelectClipboard,
__source: {
fileName: i,
lineNumber: 121
}
}), c("Copy to Clipboard"))))
},
render: function() {
var e = this.props.isInternalPage === !1 ? this.state.activeCapturePage : "area",
t = r({
"button-toolbar-small": !0,
"capture-action": !0,
disabled: this.props.disabled
}),
a = r({
"capture-tab": !0,
active: "fullpage" === e
}),
s = r({
"capture-tab": !0,
active: "area" === e
});
return l.createElement("span", {
className: "captureactions",
__source: {
fileName: i,
lineNumber: 151
}
}, l.createElement("button", {
title: c("Capture Page"),
className: t,
tabIndex: this.props.keyAccess,
onClick: this.onToggleCaptureImagesActions,
dangerouslySetInnerHTML: {
__html: n(472)
},
__source: {
fileName: i,
lineNumber: 152
}
}), this.state.drawerOpen && l.createElement("div", {
className: "callout",
__source: {
fileName: i,
lineNumber: 161
}
}, l.createElement("header", {
__source: {
fileName: i,
lineNumber: 162
}
}, l.createElement("h2", {
__source: {
fileName: i,
lineNumber: 163
}
}, c("Capture"))), l.createElement("div", {
className: "capture-container",
__source: {
fileName: i,
lineNumber: 165
}
}, l.createElement("div", {
className: a,
onClick: this.onSelectPageCapture,
tabIndex: this.props.keyAccess && !this.props.isInternalPage,
style: {
opacity: this.props.isInternalPage ? .5 : 1
},
__source: {
fileName: i,
lineNumber: 166
}
}, l.createElement("h2", {
__source: {
fileName: i,
lineNumber: 170
}
}, c("Full Page"))), l.createElement("div", {
className: s,
onClick: this.onSelectAreaCapture,
tabIndex: this.props.keyAccess,
__source: {
fileName: i,
lineNumber: 172
}
}, l.createElement("h2", {
__source: {
fileName: i,
lineNumber: 175
}
}, c("Selection"))), "fullpage" === e && this.props.isInternalPage === !1 && l.createElement("form", {
className: "capture-content",
onSubmit: this.onCaptureFullpage,
__source: {
fileName: i,
lineNumber: 179
}
}, l.createElement("div", {
className: "capture-images-text",
__source: {
fileName: i,
lineNumber: 181
}
}, c("Capture the full page, including non-visible parts.")), this.renderFormatPicker(), l.createElement("div", {
className: "capture-button",
__source: {
fileName: i,
lineNumber: 185
}
}, this.state.captureInProgress === !1 && l.createElement("input", {
type: "submit",
value: c("Capture Page"),
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 187
}
}), this.state.captureInProgress === !0 && l.createElement("div", {
className: "capture-progress",
__source: {
fileName: i,
lineNumber: 192
}
}, l.createElement("p", {
className: "in-progress",
__source: {
fileName: i,
lineNumber: 193
}
}, c("Capture in progress..."))))), "area" === e && l.createElement("form", {
className: "capture-content",
onSubmit: this.onCaptureArea,
__source: {
fileName: i,
lineNumber: 202
}
}, l.createElement("div", {
className: "capture-images-text",
__source: {
fileName: i,
lineNumber: 204
}
}, c("Capture a selection of a web page or user interface.")), this.renderFormatPicker(), l.createElement("div", {
className: "capture-button",
__source: {
fileName: i,
lineNumber: 208
}
}, l.createElement("input", {
type: "submit",
value: c("Select Area"),
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 209
}
}))))))
}
});
e.exports = d
}, function(e, t, n) {
// =========================
// Function_716
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/statusbar/StatusToolbar.jsx",
a = n(1),
r = n(9),
s = n(17),
o = n(111),
l = n(645),
c = n(243),
u = n(717),
A = n(718),
d = n(715),
h = n(4),
m = n(20),
p = m.urls,
f = n(50),
g = function() {
return {
pages: s.getPages(),
activePage: s.getActivePage(),
isSelecting: s.isSelecting(),
pageSelection: s.getSelection()
}
},
_ = a.createClass({
displayName: "StatusToolbar",
mixins: [r],
getInitialState: function() {
return Object.assign({}, g())
},
componentDidMount: function() {
s.addChangeListener(this._onPageStoreChange)
},
componentWillUnmount: function() {
s.removeChangeListener(this._onPageStoreChange)
},
_onPageStoreChange: function() {
this.setState(g())
},
onPageZoomUpdated: function(e) {
o.getActiveWebView() && (p.isInternalPage(s.getActivePage()) || h.tabs.setZoom(e))
},
doActionZoomReset: function() {
f.zoomReset()
},
render: function() {
var e = p.isInternalPage(this.state.activePage);
return a.createElement("div", {
className: "status-toolbar",
__source: {
fileName: i,
lineNumber: 58
}
}, a.createElement(d, {
key: "capture-images",
ref: "captureimages",
keyAccess: this.props.keyAccess,
disableOnClickOutside: !0,
pageId: this.state.activePage.get("id"),
isInternalPage: e,
__source: {
fileName: i,
lineNumber: 60
}
}), this.state.activePage && a.createElement(A, {
key: "toggle-tiling",
ref: "tilingtoggle",
keyAccess: this.props.keyAccess,
disableOnClickOutside: !0,
page: this.state.activePage,
groupPages: s.getGroup(this.state.activePage.getIn(["extData", "group"]), this.state.pages),
tilePages: s.getTiles(this.state.activePage.getIn(["extData", "tiling", "id"]), this.state.pages),
isSelecting: this.state.isSelecting,
pageSelection: this.state.pageSelection,
__source: {
fileName: i,
lineNumber: 69
}
}), a.createElement(u, {
key: "toggle-images",
ref: "imagetoggle",
keyAccess: this.props.keyAccess,
disableOnClickOutside: !0,
pageId: this.state.activePage.get("id"),
disabled: !1,
__source: {
fileName: i,
lineNumber: 84
}
}), a.createElement(l, {
key: "pageaction-chooser",
keyAccess: this.props.keyAccess,
pageId: this.state.activePage.get("id"),
disableOnClickOutside: !0,
disabled: !1,
__source: {
fileName: i,
lineNumber: 92
}
}), a.createElement(c, {
key: "zoomslider",
ref: "zoomslider",
inFooter: "true",
keyAccess: this.props.keyAccess,
buttonClass: "button-toolbar-small",
page: this.state.activePage,
onZoomUpdated: this.onPageZoomUpdated,
onZoomReset: this.doActionZoomReset,
defaultZoomLevel: this.state.defaultPageZoomLevel,
maxLevel: 5,
minLevel: .2,
step: .1,
disabled: e,
__source: {
fileName: i,
lineNumber: 99
}
}))
}
});
e.exports = _
}, function(e, t, n) {
// =========================
// Function_717
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/statusbar/ToggleImages.jsx",
a = n(1),
r = n(9),
s = n(39),
o = n(5),
l = n(2),
c = n(10),
u = n(4),
A = a.createClass({
displayName: "ToggleImages",
mixins: [s, r],
getInitialState: function() {
return {
showImages: !0,
loadFromCacheOnly: !1,
drawerOpen: !1
}
},
componentWillReceiveProps: function(e) {
e.pageId !== this.props.pageId && this.onWebviewPageIDChanged(e.pageId)
},
componentDidUpdate: function(e, t) {
t.drawerOpen === !0 && this.state.drawerOpen === !1 ? this.disableOnClickOutside() : t.drawerOpen === !1 && this.state.drawerOpen === !0 && this.enableOnClickOutside()
},
onWebviewPageIDChanged: function(e) {
var t = this;
e && c.tabsPrivate.get(e, function(n) {
u.runtime.lastError || n && t.setState({
showImages: n.showImages,
loadFromCacheOnly: n.loadFromCacheOnly,
pageId: e
})
})
},
onShowAll: function() {
this.updatePageImageState(!0, !1, !0), this.setState({
drawerOpen: !1
})
},
onShowCached: function() {
this.updatePageImageState(!0, !0, !0), this.setState({
drawerOpen: !1
})
},
onHideAll: function() {
this.updatePageImageState(!1, !1, !1), this.setState({
drawerOpen: !1
})
},
updatePageImageState: function(e, t, n) {
this.setState({
showImages: e,
loadFromCacheOnly: t
}), c.tabsPrivate.update(this.props.pageId, {
showImages: e,
loadFromCacheOnly: t,
enablePlugins: n
})
},
handleClickOutside: function() {
this.setState({
drawerOpen: !1
})
},
onToggleOpenImageActions: function() {
this.setState({
drawerOpen: !this.state.drawerOpen
})
},
render: function() {
var e = this.state.showImages && !this.state.loadFromCacheOnly,
t = !this.state.showImages && !this.state.loadFromCacheOnly,
r = this.state.showImages && this.state.loadFromCacheOnly,
s = o({
"button-toolbar-small": !0,
"image-action": !0,
disabled: this.props.disabled,
noimages: t && !this.props.disabled,
cachedimages: r && !this.props.disabled
});
return a.createElement("span", {
title: l("Toggle images"),
className: "imageactions",
ref: "imageactions",
__source: {
fileName: i,
lineNumber: 101
}
}, a.createElement("button", {
className: s,
tabIndex: this.props.keyAccess,
onClick: this.onToggleOpenImageActions,
disabled: this.props.disabled,
dangerouslySetInnerHTML: {
__html: n(962)
},
__source: {
fileName: i,
lineNumber: 105
}
}), this.state.drawerOpen && a.createElement("div", {
className: "callout",
__source: {
fileName: i,
lineNumber: 114
}
}, a.createElement("header", {
__source: {
fileName: i,
lineNumber: 115
}
}, a.createElement("h2", {
__source: {
fileName: i,
lineNumber: 116
}
}, l("Load Images"))), a.createElement("form", {
__source: {
fileName: i,
lineNumber: 118
}
}, a.createElement("ul", {
__source: {
fileName: i,
lineNumber: 119
}
}, a.createElement("li", {
__source: {
fileName: i,
lineNumber: 120
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 120
}
}, a.createElement("input", {
type: "radio",
name: "toggle-images-group",
checked: e,
autoFocus: e,
onChange: this.onShowAll,
__source: {
fileName: i,
lineNumber: 121
}
}), l("Always"))), a.createElement("li", {
__source: {
fileName: i,
lineNumber: 128
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 128
}
}, a.createElement("input", {
type: "radio",
name: "toggle-images-group",
checked: r,
autoFocus: r,
onChange: this.onShowCached,
__source: {
fileName: i,
lineNumber: 129
}
}), l("From Cache"))), a.createElement("li", {
__source: {
fileName: i,
lineNumber: 136
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 136
}
}, a.createElement("input", {
type: "radio",
name: "toggle-images-group",
checked: t,
autoFocus: t,
onChange: this.onHideAll,
__source: {
fileName: i,
lineNumber: 137
}
}), l("Never")))))))
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_718
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/statusbar/ToggleTiling.jsx",
r = n(1),
s = n(9),
o = n(17),
l = n(15),
c = n(39),
u = n(27),
A = n(114),
d = n(2),
h = n(5),
m = r.createClass({
displayName: "ToggleTiling",
mixins: [s, c],
propTypes: {
page: r.PropTypes.instanceOf(A).isRequired,
groupPages: r.PropTypes.instanceOf(u.List).isRequired,
tilePages: r.PropTypes.instanceOf(u.List).isRequired,
isSelecting: r.PropTypes.bool.isRequired,
pageSelection: r.PropTypes.instanceOf(u.Set).isRequired
},
getInitialState: function() {
return {
drawerOpen: !1
}
},
componentWillReceiveProps: function(e) {
this.props.page.get("id") !== e.page.get("id") && this.closeDrawer()
},
componentDidUpdate: function(e, t) {
t.drawerOpen === !0 && this.state.drawerOpen === !1 ? this.disableOnClickOutside() : t.drawerOpen === !1 && this.state.drawerOpen === !0 && this.enableOnClickOutside()
},
closeDrawer: function() {
this.setState({
drawerOpen: !1
})
},
toggleDrawer: function() {
this.setState({
drawerOpen: !this.state.drawerOpen
})
},
setTiling: function(e) {
var t = this,
n = this.props.page.getIn(["extData", "group"]);
if (this.props.pageSelection.count() > 1) {
var i = this.props.pageSelection.map(function(e) {
return o.getPages().find(function(t) {
return t.get("id") === e
})
}).filter(Boolean).toList();
l.tilePages(i, e), l.clearSelection()
} else if (this.props.page.getIn(["extData", "tiling", "id"])) {
var a = o.getPages().filter(function(e) {
return e.getIn(["extData", "tiling", "id"]) === t.props.page.getIn(["extData", "tiling", "id"])
});
l.tilePages(a, e)
} else o.isGroup(n) && l.tileTabStack(n, e);
this.closeDrawer()
},
untile: function() {
l.untilePages(this.props.page.getIn(["extData", "tiling", "id"])), this.closeDrawer()
},
handleClickOutside: function() {
this.closeDrawer()
},
render: function() {
var e = this.props.page.getIn(["extData", "tiling", "layout"]),
t = "tile-" + (e || "none"),
s = h(i({
"button-toolbar-small": !0,
"tile-action": !0
}, t, !0)),
o = this.props.groupPages.count() > 1 || this.props.tilePages.count() > 1 || this.props.isSelecting;
return r.createElement("span", {
className: "tilingtoggle",
ref: "tilingtoggle",
title: o ? null : d("Page tiling") + "\n" + d("Select multiple tabs or create tab stack to tile pages"),
__source: {
fileName: a,
lineNumber: 105
}
}, r.createElement("button", {
ref: "tilingtogglebutton",
className: s,
tabIndex: this.props.keyAccess,
onMouseDown: this.toggleDrawer,
disabled: !o,
title: d("Page tiling"),
dangerouslySetInnerHTML: {
__html: n(160)
},
__source: {
fileName: a,
lineNumber: 111
}
}), this.state.drawerOpen && r.createElement("div", {
className: "callout",
__source: {
fileName: a,
lineNumber: 122
}
}, r.createElement("button", {
className: "tile-vertically",
disabled: "vertically" === e,
title: d("Tile vertically"),
onMouseUp: this.setTiling.bind(this, "vertically"),
dangerouslySetInnerHTML: {
__html: n(160)
},
__source: {
fileName: a,
lineNumber: 123
}
}), r.createElement("button", {
className: "tile-horizontally",
disabled: "horizontally" === e,
title: d("Tile horizontally"),
onMouseUp: this.setTiling.bind(this, "horizontally"),
dangerouslySetInnerHTML: {
__html: n(160)
},
__source: {
fileName: a,
lineNumber: 131
}
}), r.createElement("button", {
className: "tile-grid",
disabled: "grid" === e,
title: d("Tile to grid"),
onMouseUp: this.setTiling.bind(this, "grid"),
dangerouslySetInnerHTML: {
__html: n(160)
},
__source: {
fileName: a,
lineNumber: 139
}
}), r.createElement("button", {
className: "tile-none",
disabled: !this.props.page.getIn(["extData", "tiling", "id"]),
title: d("Untile pages"),
onMouseUp: this.untile,
dangerouslySetInnerHTML: {
__html: n(160)
},
__source: {
fileName: a,
lineNumber: 147
}
})))
}
});
e.exports = m
}, function(e, t, n) {
// =========================
// Function_719
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function r(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function s(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
var o = function() {
function e(e, t) {
var n = [],
i = !0,
a = !1,
r = void 0;
try {
for (var s, o = e[Symbol.iterator](); !(i = (s = o.next()).done) && (n.push(s.value), !t || n.length !== t); i = !0);
} catch (e) {
a = !0, r = e
} finally {
try {
!i && o.return && o.return()
} finally {
if (a) throw r
}
}
return n
}
return function(t, n) {
if (Array.isArray(t)) return t;
if (Symbol.iterator in Object(t)) return e(t, n);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
}
}(),
l = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/tabs/Tab.jsx",
c = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
u = n(1),
A = i(u),
d = n(375),
h = i(d),
m = n(54),
p = i(m),
f = n(51),
g = i(f),
_ = n(114),
v = (i(_), n(15)),
b = i(v),
N = n(17),
E = i(N),
S = n(721),
T = i(S),
y = n(170),
C = i(y),
I = n(132),
O = i(I),
w = n(174),
D = i(w),
k = n(55),
M = i(k),
L = n(4),
P = i(L),
R = n(5),
x = i(R),
B = n(26),
U = i(B),
F = n(89),
H = i(F),
V = n(401),
W = i(V),
G = n(3),
K = i(G),
j = n(88),
z = i(j),
Y = n(21),
J = i(Y),
Q = n(377),
Z = i(Q),
q = n(27),
X = n(400),
$ = n(46),
ee = n(115),
te = n(376),
ne = n(73),
ie = n(7),
ae = n(20),
re = n(2),
se = i(re),
oe = n(30),
le = i(oe),
ce = n(395),
ue = i(ce),
Ae = 250,
de = (0, X.createIdleListener)(),
he = function(e, t, n) {
P.default.tabs.query({}, function(i) {
var a = (0, q.Set)(i.map(ne.tabToPage).map(function(e) {
return e.getIn(["extData", "group"])
}).filter(Boolean)),
r = (0, ie.pickBy)(e, function(e, t) {
return a.includes(t)
});
n ? r[t] = n : delete r[t], K.default.set({
TAB_STACKING_NAME_MAP: r
})
})
},
me = function(e) {
function t(e) {
a(this, t);
var n = r(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
return n.state = {
dragOver: "none",
awaitingEdit: null
}, n.indicators = {}, n.bookmarkAllOpenPages = n.bookmarkAllOpenPages.bind(n), n.bookmarkTab = n.bookmarkTab.bind(n), n.cloneTab = n.cloneTab.bind(n), n.closeAllButTab = n.closeAllButTab.bind(n), n.closeTabStack = n.closeTabStack.bind(n), n.closeToLeft = n.closeToLeft.bind(n), n.closeToRight = n.closeToRight.bind(n), n.createGroup = n.createGroup.bind(n), n.createGroupByHost = n.createGroupByHost.bind(n), n.discardPages = n.discardPages.bind(n), n.disolveTabStack = n.disolveTabStack.bind(n), n.handleClose = n.handleClose.bind(n), n.onDropHandler = n.onDropHandler.bind(n), n.hideToolTip = n.hideToolTip.bind(n), n.isPinned = n.isPinned.bind(n), n.isTabStack = n.isTabStack.bind(n), n.keyDown = n.keyDown.bind(n), n.muteTab = n.muteTab.bind(n), n.newTab = n.newTab.bind(n), n.onClick = n.onClick.bind(n), n.onContextMenu = n.onContextMenu.bind(n), n.onTabIndicatorPress = n.onTabIndicatorPress.bind(n), n.onTabIndicatorClick = n.onTabIndicatorClick.bind(n), n.indicatorOnDragStart = n.indicatorOnDragStart.bind(n), n.indicatorOnDragEnd = n.indicatorOnDragEnd.bind(n), n.onDragEnterHandler = n.onDragEnterHandler.bind(n), n.onDragOverHandler = n.onDragOverHandler.bind(n), n.pinTab = n.pinTab.bind(n), n.reloadTab = n.reloadTab.bind(n), n.renameTabStack = n.renameTabStack.bind(n), n.removeFromTabStack = n.removeFromTabStack.bind(n), n.reopenClosedTab = n.reopenClosedTab.bind(n), n.stopPropagateHandler = n.stopPropagateHandler.bind(n), n.tileSelection = n.tileSelection.bind(n), n.tileTabStack = n.tileTabStack.bind(n), n.untilePages = n.untilePages.bind(n), n.mouseEnterHandler = n.mouseEnterHandler.bind(n), n.getDropSide = n.getDropSide.bind(n), n.renderCustomTabStackTitle = n.renderCustomTabStackTitle.bind(n), n
}
return s(t, e), c(t, [{
key: "shouldComponentUpdate",
value: function(e, t) {
return (0, J.default)(this, e, t)
}
}, {
key: "componentWillReceiveProps",
value: function(e) {
this.props.page.active === !0 && e.page.active === !1 && null !== this.state.awaitingEdit && this.setState({
awaitingEdit: null
})
}
}, {
key: "discardPages",
value: function(e) {
e.forEach(b.default.discardPage)
}
}, {
key: "cloneTab",
value: function(e) {
b.default.clonePage(e)
}
}, {
key: "reloadTab",
value: function(e) {
b.default.clearSelection(), b.default.reloadPage(e)
}
}, {
key: "renameTabStack",
value: function(e) {
var t = e.getIn(["extData", "group"]);
t && this.setState({
awaitingEdit: t
})
}
}, {
key: "pinTab",
value: function(e, t, n) {
b.default.clearSelection(), b.default.togglePinned(e, t, n)
}
}, {
key: "bookmarkAllOpenPages",
value: function() {
b.default.clearSelection(), p.default.bookmarkAllOpenPages(g.default.getRootNode().id)
}
}, {
key: "bookmarkTab",
value: function(e, t) {
b.default.clearSelection(), p.default.bookmarkPages(e, t, g.default.getRootNode().id)
}
}, {
key: "handleClose",
value: function(e, t) {
0 === t.button && (t.altKey ? this.closeAllButTab(e) : this.props.closePage(e, t))
}
}, {
key: "closeToLeft",
value: function(e, t) {
var n = !t;
b.default.closeToLeft(e, n)
}
}, {
key: "closeToRight",
value: function(e, t) {
var n = !t;
b.default.closeToRight(e, n)
}
}, {
key: "closeTabStack",
value: function(e) {
e && e.stopPropagation(), b.default.closeTabStack(this.props.page, !0)
}
}, {
key: "muteTab",
value: function(e) {
b.default.mutePage(e)
}
}, {
key: "closeAllButTab",
value: function(e, t) {
var n = !t;
b.default.closeOther(e, n)
}
}, {
key: "newTab",
value: function() {
b.default.openURL()
}
}, {
key: "createTab",
value: function(e) {
b.default.openURL(e)
}
}, {
key: "onClick",
value: function(e) {
1 === e.button && e.stopPropagation()
}
}, {
key: "stopPropagateHandler",
value: function(e) {
e.stopPropagation(), e.preventDefault()
}
}, {
key: "selectTab",
value: function(e, t) {
this.props.selectTab(e, t)
}
}, {
key: "reopenClosedTab",
value: function() {
this.props.reopenClosedTab()
}
}, {
key: "disolveTabStack",
value: function() {
b.default.clearSelection(), b.default.expandTabStack(this.props.page.getIn(["extData", "group"]))
}
}, {
key: "removeFromTabStack",
value: function() {
b.default.removeFromTabStack(this.props.page)
}
}, {
key: "isTabstackingEnabled",
value: function() {
return "on" === this.props.settings.TAB_STACKING
}
}, {
key: "isTabStack",
value: function(e) {
return this.isTabstackingEnabled() && (0, ee.isPageGrouped)(e)
}
}, {
key: "isPinned",
value: function(e) {
return e.get("pinned")
}
}, {
key: "tileTabStack",
value: function() {
var e = this.props.page.getIn(["extData", "group"]);
b.default.tileTabStack(e), b.default.clearSelection()
}
}, {
key: "isPageTiledWithType",
value: function(e) {
return (0, ee.isPageTiled)(this.props.page) && this.props.page.getIn(["extData", "tiling", "type"]) === e
}
}, {
key: "tileSelection",
value: function(e) {
var t = e.count() < 4 ? "vertically" : "grid";
b.default.tilePages(e.toList(), t), b.default.clearSelection()
}
}, {
key: "untilePages",
value: function() {
var e = this.props.page.getIn(["extData", "tiling", "id"]);
b.default.untilePages(e)
}
}, {
key: "mouseEnterHandler",
value: function() {
this.props.clearForceHover()
}
}, {
key: "indicatorOnDragStart",
value: function(e) {
this.props.setIsHiddenForDrag((0, q.Set)(e.map(function(e) {
return e.id
})))
}
}, {
key: "indicatorOnDragEnd",
value: function() {
this.props.setIsHiddenForDrag((0, q.Set)())
}
}, {
key: "onTabIndicatorPress",
value: function(e, t, n) {
n.preventDefault(), n.stopPropagation(), this.onTabIndicatorDragOut(e, t, n)
}
}, {
key: "onTabIndicatorClick",
value: function(e, t) {
t.preventDefault(), t.stopPropagation();
var n = this.props.settings;
0 === t.button ? (0, te.isSingleSelectEvent)(t, n, document.hasFocus()) ? b.default.setSelection(e, !1, !1) : (0, te.isMultiSelectEvent)(t, n, document.hasFocus()) ? b.default.setSelection(e, !0, !1) : (0, z.default)(t) || this.props.selectTab(e, t) : 1 === t.button && navigator.platform.indexOf("Linux") !== -1 && M.default.doAction("focusWebView")
}
}, {
key: "onTabIndicatorDragOut",
value: function(e, t, n) {
var i = this.props,
a = i.isSelecting,
r = i.pageSelection,
s = a && r.has(e.id),
o = s ? this.props.pageSelection.reduce(function(e, t) {
var n = E.default.getPages().find(function(e) {
return e.id === t
});
return n ? e.push(n) : e
}, (0, q.List)()).sortBy(function(e) {
return e.index
}).toArray() : [e];
(0, Z.default)(o, n, {
offsetLeft: 2,
offsetTop: 3,
offsetHeight: -6,
offsetWidth: -2,
onDragStart: this.indicatorOnDragStart,
onDragEnd: this.indicatorOnDragEnd,
element: this.indicators[t]
})
}
}, {
key: "renderTabGroupIndicator",
value: function() {
var e = this;
return A.default.createElement("div", {
className: "tab-group-indicator",
__source: {
fileName: l,
lineNumber: 379
}
}, this.props.stack.map(function(t) {
var n = (0, x.default)({
"tab-indicator": !0,
active: e.props.highlightId === t.id,
marked: e.props.isSelecting && e.props.pageSelection.contains(t.id),
unread: e.props.settings.TAB_UNREAD_ENABLED && e.props.page.getIn(["extData", "read"]) !== !0 && t.id !== e.props.highlightId
}),
i = e.props.isHiddenForDrag.has(t.id),
a = {
visibility: i ? "hidden" : "visible"
},
r = "stack-" + t.id;
return A.default.createElement("div", {
key: r,
ref: function(t) {
return e.indicators[r] = t
},
className: n,
style: a,
title: ae.urls.getDisplayTitle(t),
onContextMenu: e.onContextMenu.bind(e, t, !0),
onClick: e.onTabIndicatorClick.bind(e, t),
onMouseDown: e.onTabIndicatorPress.bind(e, t, r),
__source: {
fileName: l,
lineNumber: 400
}
})
}))
}
}, {
key: "hideToolTip",
value: function() {
O.default.clearTooltip()
}
}, {
key: "keyDown",
value: function(e) {
var t = e.keyCode;
13 === t && this.props.selectTab(this.props.page, e)
}
}, {
key: "createGroup",
value: function(e, t, n) {
t ? b.default.createTabStack(e, t.index, t.getIn(["extData", "group"])) : b.default.createTabStack(e)
}
}, {
key: "createGroupByHost",
value: function(e, t) {
var n = this.props.settings.TAB_STACKING_NAME_MAP || {},
i = (0, H.default)();
he(n, i, t), b.default.createTabStack(e, null, i)
}
}, {
key: "onContextMenu",
value: function(e, t, n) {
var i = this;
return n.persist(), n.preventDefault(), n.stopPropagation(), P.default.windows.getAll({
populate: !0,
windowTypes: ["normal"]
}, function(a) {
var r = a.filter(function(e) {
return !e.extData || "popup" !== JSON.parse(e.extData).windowType
}).filter(function(e) {
return !e.incognito
}).filter(function(e) {
return e.id !== window.vivaldiWindowId
});
(0, U.default)(i.getContextMenuItems(e, r, n, t), i.hideToolTip)(n)
}), !1
}
}, {
key: "isHorizontal",
value: function() {
var e = this.props.settings.TAB_POSITION;
return "top" === e || "bottom" === e
}
}, {
key: "getContextMenuItems",
value: function(e, t, n, i) {
var a = this,
r = !(e.pinned && "on" !== this.props.settings.CLOSABLE_PINNED_TABS),
s = this.props.isSelecting && this.props.pageSelection.has(e.id) && this.props.pageSelection.count() > 1,
l = this.props.pageSelection.reduce(function(e, t) {
var n = E.default.getPages().find(function(e) {
return e.id === t
});
return n ? e.push(n) : e
}, (0, q.List)()).sortBy(function(e) {
return e.index
}),
c = l.filter(function(e) {
return !(0, $.isInternalURL)(e.url)
}),
u = E.default.getPages().filter(function(e) {
return !l.find(function(t) {
return t.id === e.id
})
}),
A = void 0;
A = s ? l : !i && this.isTabStack(e) ? E.default.getGroup(e.getIn(["extData", "group"])) : q.List.of(e);
var d = [Object.assign({
handler: function() {
A.count() === E.default.getPages().count() && document.querySelectorAll("webview").forEach(function(e) {
return e.parentElement.removeChild(e)
}), b.default.detachPage(A, n.screenX, n.screenY)
}
}, (0, le.default)("move to", "New Window"))],
h = !i || s;
t.length > 0 && (d = d.concat({
name: "---"
}, t.map(function(t, n) {
var i = t.tabs.find(function(e) {
return e.active
}),
a = i ? i.title : n + 1;
return Object.assign({
handler: function() {
var n = s ? l : q.List.of(e);
n.count() === E.default.getPages().count() && document.querySelectorAll("webview").forEach(function(e) {
return e.parentElement.removeChild(e)
}), b.default.moveToWindow(n, t.id, h)
}
}, (0, le.default)("Window with $1 Active Tab ($2)", "Window with $1 Active Tabs ($2)", [t.tabs.length, a]))
})));
var m = !e.active && !e.discarded && e.url !== E.default.getDefaultStartpage(),
p = this.isTabStack(e) && E.default.getGroup(e.getIn(["extData", "group"])).some(function(e) {
return !e.active && !e.discarded && e.url !== E.default.getDefaultStartpage()
}),
f = 0 !== E.default.getDiscardablePages().count(),
g = E.default.getPages().count(),
_ = e.getIn(["extData", "group"]),
v = E.default.isGroup(_),
N = void 0;
N = i || !v ? g >= 2 : g - E.default.getGroup(_).count() >= 1;
var S = (0, W.default)(e, E.default.getTabs(!this.isTabstackingEnabled())),
T = o(S, 2),
y = T[0],
C = T[1],
I = e.mediastate;
return [Object.assign({
handler: this.newTab
}, (0, le.default)("command", "New Tab")), {
name: "---"
}, Object.assign({
handler: this.reloadTab.bind(this, e),
visible: !s
}, (0, le.default)("Reload Tab")), Object.assign({
handler: this.reloadTab.bind(this, l),
visible: s
}, (0, le.default)("Reload $1 Tab", "Reload $1 Tabs", [l.count()])), Object.assign({
handler: this.cloneTab.bind(this, e),
visible: !s
}, (0, le.default)("Clone Tab")), Object.assign({
handler: this.cloneTab.bind(this, l),
visible: s
}, (0, le.default)("Clone $1 Tab", "Clone $1 Tabs", [l.count()])), Object.assign({
handler: this.pinTab.bind(this, e, !0),
visible: !s && !this.isTabStack(e) && !e.pinned
}, (0, le.default)("Pin Tab")), Object.assign({
handler: this.pinTab.bind(this, l, !0),
visible: s && !l.some(this.isTabStack) && l.some(function(e) {
return !a.isPinned(e)
})
}, (0, le.default)("Pin $1 Tab", "Pin $1 Tabs", [l.filter(function(e) {
return !a.isPinned(e)
}).count()])), Object.assign({
handler: this.pinTab.bind(this, e, !1),
visible: !s && !this.isTabStack(e) && e.pinned
}, (0, le.default)("Unpin Tab")), Object.assign({
handler: this.pinTab.bind(this, l, !1),
visible: s && !l.some(this.isTabStack) && l.some(this.isPinned)
}, (0, le.default)("Unpin $1 Tab", "Unpin $1 Tabs", [l.filter(this.isPinned).count()])), Object.assign({
items: d,
visible: !s && e.incognito !== !0 && (i || !this.isTabStack(e))
}, (0, le.default)("Move Tab to")), Object.assign({
items: d,
visible: s && !l.some(function(t) {
return e.incognito
})
}, (0, le.default)("Move $1 Tab to", "Move $1 Tabs to", [l.count()])), {
name: "---"
}, Object.assign({
handler: this.muteTab.bind(this, e),
type: "checkbox",
checked: "muting" === I,
visible: !s && ("playing" === I || "muting" === I)
}, (0, le.default)("Mute Tab")), Object.assign({
handler: this.muteTab.bind(this, l),
type: "checkbox",
checked: l.every(function(e) {
return "muting" === e.mediastate
}),
visible: s && l.some(function(e) {
return "playing" === e.mediastate || "muting" === e.mediastate
})
}, (0, le.default)("Mute $1 Tab", "Mute $1 Tabs", [l.filter(function(t) {
return "playing" === t.mediastate || "muting" === e.mediastate
}).count()])), {
name: "---"
}, Object.assign({
handler: this.bookmarkTab.bind(this, e, !1),
visible: !s
}, (0, le.default)("Bookmark Tab")), Object.assign({
handler: this.bookmarkTab.bind(this, this.props.stack, !0),
visible: this.isTabStack(e)
}, (0, le.default)("Bookmark Tab Stack")), Object.assign({
handler: this.bookmarkTab.bind(this, l, !1),
visible: s && Boolean(c.count())
}, (0, le.default)("Bookmark $1 Tab", "Bookmark $1 Tabs", [c.count()])), Object.assign({
handler: this.bookmarkAllOpenPages
}, (0, le.default)("Bookmark All Open Pages")), {
name: "---"
}, Object.assign({
handler: this.createGroup.bind(this, l, e),
visible: s && this.isTabstackingEnabled() && this.props.isSelecting && l.count() > 1
}, (0, le.default)("New Tab Stack with Selection ($1 Tab)", "New Tab Stack with Selection ($1 Tabs)", [l.count()])), Object.assign({
handler: this.createGroupByHost.bind(this, C, y),
visible: !s && this.isTabstackingEnabled() && !this.isTabStack(e) && C.count() > 1
}, (0, le.default)("Stack Tabs by Host ($1 of $2)", [C.count(), y])), Object.assign({
handler: this.renameTabStack.bind(this, e),
visible: this.isTabStack(e) && this.props.settings.TAB_STACKING_ALLOW_RENAME
}, (0, le.default)("Rename Tab Stack")), Object.assign({
items: d,
visible: !s && e.incognito !== !0 && !i && this.isTabStack(e)
}, (0, le.default)("Move Tab Stack to")), Object.assign({
handler: this.removeFromTabStack,
visible: this.isTabStack(e)
}, (0, le.default)("Remove from Tab Stack")), Object.assign({
handler: this.disolveTabStack,
visible: this.isTabStack(e)
}, (0, le.default)("Ungroup Tab Stack")), {
name: "---"
}, Object.assign({
handler: this.tileTabStack,
visible: this.isTabStack(e) && !this.isPageTiledWithType("group") && !this.isPageTiledWithType("selection")
}, (0, le.default)("Tile Tab Stack")), Object.assign({
handler: this.untilePages,
visible: this.isTabStack(e) && (this.isPageTiledWithType("group") || this.isPageTiledWithType("selection"))
}, (0, le.default)("Untile Tab Stack")), Object.assign({
handler: this.tileSelection.bind(this, l),
visible: s && !this.isPageTiledWithType("selection") && this.props.isSelecting && l.count() > 1
}, (0, le.default)("Tile $1 Tab", "Tile $1 Tabs", [l.count()])), Object.assign({
handler: this.untilePages,
visible: this.isPageTiledWithType("selection") && !this.isTabStack(e)
}, (0, le.default)("Untile selection")), {
name: "---"
}, Object.assign({
handler: this.discardPages.bind(this, q.List.of(e)),
visible: !s && m && !this.isTabStack(e)
}, (0, le.default)("Hibernate Tab")), Object.assign({
handler: this.discardPages.bind(this, l.filter(function(e) {
return !e.active
})),
visible: Boolean(s && l.filter(function(e) {
return E.default.getDiscardablePages().find(function(t) {
return t.id === e.id
})
}).count())
}, (0, le.default)("Hibernate $1 Background Tab", "Hibernate $1 Background Tabs", [l.filter(function(e) {
return !e.active
}).count()])), Object.assign({
handler: this.discardPages.bind(this, E.default.getGroup(e.getIn(["extData", "group"]))),
visible: p
}, (0, le.default)("Hibernate Tab Stack")), Object.assign({
handler: this.discardPages.bind(this, E.default.getDiscardablePages()),
visible: f
}, (0, le.default)("Hibernate Background Tabs")), {
name: "---"
}, Object.assign({
handler: b.default.closePage.bind(null, e),
visible: !s && E.default.canClose() && r
}, (0, le.default)("Close Tab")), Object.assign({
handler: b.default.closePage.bind(null, l),
visible: s
}, (0, le.default)("Close $1 Tab", "Close $1 Tabs", [l.count()])), Object.assign({
handler: this.closeTabStack,
visible: this.isTabStack(e)
}, (0, le.default)("Close Tab Stack")), Object.assign({
handler: this.closeAllButTab.bind(this, e, i),
visible: !s && N
}, (0, le.default)("Close Other Tabs")), Object.assign({
handler: this.closeAllButTab.bind(this, l, i),
visible: s && u.count() > 0
}, (0, le.default)("Close Other ($1 Unselected Tab)", "Close Other ($1 Unselected Tabs)", [u.count()])), Object.assign({
handler: this.closeToLeft.bind(this, e, i),
visible: !s && N && E.default.getPages().takeUntil(function(t) {
return t.id === e.id
}).count()
}, this.isHorizontal() ? (0, le.default)("Close Tabs to the Left") : (0, le.default)("Close the Tabs Above")), Object.assign({
handler: this.closeToRight.bind(this, e, i),
visible: !s && N && E.default.getPages().skipUntil(function(t) {
return t.id === e.id
}).skip(1).count()
}, this.isHorizontal() ? (0, le.default)("Close Tabs to the Right") : (0, le.default)("Close the Tabs Below")), {
name: "---"
}, Object.assign({
handler: this.reopenClosedTab,
visible: Boolean(D.default.getTrash().length)
}, (0, le.default)("Reopen Closed Tab"))]
}
}, {
key: "isKnownDropMimeType",
value: function(e) {
return e.dataTransfer.types.some(function(e) {
return "vivaldi/x-tab-entries" === e || "text/uri-list" === e || "text/plain" === e
})
}
}, {
key: "onDragEnterHandler",
value: function(e) {
this.isKnownDropMimeType(e) && (e.preventDefault(), e.stopPropagation())
}
}, {
key: "onDragOverHandler",
value: function(e) {
var t = this;
this.isKnownDropMimeType(e) && (e.preventDefault(), e.stopPropagation()), e.dataTransfer.types.some(function(e) {
return "vivaldi/x-tab-entries" === e
}) && this.props.isExpectingDrop ? this.props.handleTabPosition(this.props.page.id, this.getDropSide(e)) : (e.dataTransfer.types.some(function(e) {
return "text/uri-list" === e || "text/plain" === e
}) && (e.dataTransfer.dropEffect = "copy"), de(e.screenX, e.screenY, Ae, function() {
return t.props.selectTab(t.props.page, e)
}))
}
}, {
key: "getDropSide",
value: function(e) {
var t = this.props,
n = t.settings,
i = t.page,
a = "on" === n.TAB_STACKING && !i.pinned,
r = this.refs.tab.getBoundingClientRect(),
s = e.pageX - r.left,
o = e.pageY - r.top,
l = void 0;
return "row" === this.props.direction ? l = a ? s < .15 * r.width ? "before" : s > .85 * r.width ? "after" : "over" : s < r.width / 2 ? "before" : "after" : "column" === this.props.direction && (l = a ? 7 < .15 * r.width ? "before" : o > .85 * r.width ? "after" : "over" : o < r.height / 2 ? "before" : "after"), l
}
}, {
key: "onDropHandler",
value: function(e) {
var t = this;
this.isKnownDropMimeType(e) && (e.preventDefault(), e.stopPropagation());
var n = e.dataTransfer.getData("vivaldi/x-tab-entries"),
i = e.dataTransfer.getData("text/uri-list"),
a = e.dataTransfer.getData("text/plain");
n ? this.props.droppedTabHandler(n) : i ? i.split("\n").forEach(function(e, n) {
return b.default.openURL(e, {
incognito: t.props.page.incognito,
inCurrent: 0 === n,
inSpecific: 0 === n ? t.props.page : void 0,
inBackground: 0 !== n
})
}) : a && (0, $.isValidURL)(a) && b.default.openURL(a, {
inCurrent: !0,
inSpecific: this.props.page,
incognito: this.props.page.incognito
})
}
}, {
key: "renderCustomTabStackTitle",
value: function(e) {
var t = this,
n = this.props.settings.TAB_STACKING_NAME_MAP || {},
i = this.props.page.getIn(["extData", "group"]),
a = n[i] || e,
r = function(e) {
"Enter" === e.nativeEvent.code ? (e.preventDefault(), e.stopPropagation(), he(n, i, e.target.value), t.setState({
awaitingEdit: null
})) : "Escape" === e.nativeEvent.code && (e.preventDefault(), e.stopPropagation(), t.setState({
awaitingEdit: null
}))
},
s = function(e) {
he(n, i, e.target.value)
},
o = function(e) {
e && document.activeElement !== e && (e.setSelectionRange(0, e.value.length), e.focus())
},
c = function(e) {},
u = function(e) {
t.setState({
awaitingEdit: null
})
},
d = this.state.awaitingEdit,
h = i && i === d;
return h ? A.default.createElement("input", {
className: "tab-title-edit",
defaultValue: a,
ref: o,
onFocus: c,
onBlur: u,
onChange: s,
onKeyDown: r,
__source: {
fileName: l,
lineNumber: 963
}
}) : a
}
}, {
key: "render",
value: function() {
var e = this,
t = this.props.page,
i = t.active,
a = Boolean(this.props.smallTab),
r = t.mediastate;
r && "none" !== r && !t.discarded || (r = "idle");
var s = this.isTabStack(t),
o = !s && this.props.isHiddenForDrag.has(t.id),
c = s && this.props.stack.every(function(t) {
return e.props.isHiddenForDrag.has(t.id)
}),
u = o || c,
d = (0, x.default)(this.props.className, {
tab: !0,
marked: !u && this.props.isSelecting && this.props.pageSelection.contains(t.id),
pinned: t.pinned,
active: i,
loading: t.getIn(["navigationState", "isLoading"]),
"tab-small": a && !t.pinned,
"force-hover": this.props.forceHover,
"tab-group": E.default.isGroup(t.getIn(["extData", "group"])),
"audio-on": "playing" === r,
"audio-muted": "muting" === r,
"button-off": !this.props.settings.TAB_CLOSEBUTTON_ENABLED,
unread: this.props.settings.TAB_UNREAD_ENABLED && t.getIn(["extData", "read"]) !== !0 && !i && !E.default.isGroup(t.getIn(["extData", "group"])) && !(0, $.isInternalURL)(t.url),
isdiscarded: t.discarded
}),
m = this.props.settings.TAB_CLOSEBUTTON_ENABLED && E.default.canClose(),
p = t.incognito ? t.favIcon : t.favIconUrl,
f = ae.urls.getDisplayTitle(t),
g = (0, ue.default)(f, t.get("url"), 9),
_ = s ? (0, se.default)("Tab stack with $1 tab", "Tab stack with $1 tabs", [this.props.stack.size]) : f,
v = this.isTabStack(t) && this.props.settings.TAB_STACKING_ALLOW_RENAME,
b = document.getElementById("browser").classList,
N = this.props.settings.BROWSER_COLOR_FG;
return a ? N = "#000000" : (t.active && b.contains("acc-light") && b.contains("theme-dark") || !t.active && b.contains("acc-dark") && b.contains("theme-light") && b.contains("color-behind-tabs-on") || t.active && b.contains("acc-dark") && b.contains("theme-light") && b.contains("color-behind-tabs-off")) && (N = this.props.settings.BROWSER_COLOR_BG), A.default.createElement("div", {
id: this.props.id,
className: d,
ref: "tab",
key: t.id,
title: this.props.settings.USE_TOOLTIP ? null : _,
onClick: this.onClick,
onContextMenu: this.onContextMenu.bind(this, t, !1),
onMouseEnter: this.mouseEnterHandler,
onDragEnter: this.onDragEnterHandler,
onDragOver: this.onDragOverHandler,
onDragLeave: this.props.onDragLeave,
onDrop: this.onDropHandler,
onKeyDown: this.keyDown,
tabIndex: this.props.settings.KEY_ACCESS,
__source: {
fileName: l,
lineNumber: 1052
}
}, A.default.createElement("div", {
className: "tab-header",
__source: {
fileName: l,
lineNumber: 1067
}
}, A.default.createElement(T.default, {
page: t,
__source: {
fileName: l,
lineNumber: 1068
}
}), A.default.createElement("span", {
className: "favicon",
style: {
backgroundImage: "url(" + p + ")"
},
dangerouslySetInnerHTML: "" === p ? {
__html: n(313)
} : null,
__source: {
fileName: l,
lineNumber: 1069
}
}), A.default.createElement("span", {
className: "title",
__source: {
fileName: l,
lineNumber: 1080
}
}, v ? this.renderCustomTabStackTitle(f) : f), m && A.default.createElement("span", {
className: "close",
onClick: this.handleClose.bind(this, t),
onMouseDown: this.stopPropagateHandler,
dangerouslySetInnerHTML: {
__html: n(81)
},
title: (0, se.default)("Close Tab") + "\n" + (0, se.default)("$1 click to close other tabs except this one", ["MacIntel" === navigator.platform ? (0, se.default)("key", "Option") : (0, se.default)("key", "Alt")]),
__source: {
fileName: l,
lineNumber: 1089
}
}), "idle" !== r && A.default.createElement("span", {
className: "tab-audio",
onClick: this.muteTab.bind(this, t),
onMouseDown: this.stopPropagateHandler,
__source: {
fileName: l,
lineNumber: 1100
}
}, A.default.createElement(h.default, {
color: N,
animated: this.props.settings.USE_ANIMATION,
mode: r,
__source: {
fileName: l,
lineNumber: 1103
}
})), this.props.settings.TAB_COUNTER_DETECTION && g && A.default.createElement("span", {
className: "button-badge",
__source: {
fileName: l,
lineNumber: 1110
}
}, g)), this.props.settings.TAB_THUMBNAILS_ENABLED && A.default.createElement(C.default, {
src: t.getIn(["extData", "thumbnail"]),
__source: {
fileName: l,
lineNumber: 1116
}
}), this.props.stack && this.renderTabGroupIndicator())
}
}]), t
}(A.default.Component);
me.displayName = "Tab", e.exports = me
}, function(e, t, n) {
// =========================
// Function_720
// =========================
(function(t) {
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/tabs/TabBar.jsx",
r = n(1),
s = n(11),
o = n(27),
l = o.is,
c = o.List,
u = o.Set,
A = n(115),
d = A.isPageTiled,
h = A.isPageVisible,
m = n(520),
p = m.VelocityComponent,
f = n(54),
g = n(51),
_ = n(722),
v = n(723),
b = n(26),
N = n(132),
E = n(134),
S = n(3),
T = n(25),
y = n(115),
C = y.isPageGrouped,
I = n(15),
O = n(17),
w = n(168),
D = n(174),
k = n(392),
M = n(170),
L = n(55),
P = n(20),
R = P.urls,
x = n(5),
B = n(178),
U = n(375),
F = n(251),
H = n(46),
V = H.isValidURL,
W = n(30),
G = n(377),
K = 30,
j = 150,
z = 181,
Y = 32,
J = 260,
Q = 32,
Z = 20,
q = ["active", "discarded", "extData", "favIcon", "faviconUrl", "id", "incognito", "pinned", "processexitstate", "target", "title", "url"],
X = ["thumbnail", "group", "tiling", "read"],
$ = ["ADDRESS_BAR_POSITION", "BROWSER_COLOR_FG", "BROWSER_COLOR_BG", "CLOSABLE_PINNED_TABS", "KEY_ACCESS", "KEY_NEXT_TAB", "KEY_PREVIOUS_TAB", "PANEL_POSITION", "SWITCH_TABS_AT_WINDOW_EDGE", "TABBAR_WIDTH", "TABS_HEIGHT", "TAB_CLICK_ACTIVE_OPENS_PREVIOUS", "TAB_CLOSEBUTTON_ENABLED", "TAB_COUNTER_DETECTION", "TAB_CYCLING_ORDER", "TAB_POSITION", "TAB_SELECTION_ENABLED", "TAB_STACKING", "TAB_STACKING_ALLOW_RENAME", "TAB_STACKING_NAME_MAP", "TAB_SWITCH_VISUAL", "TAB_THUMBNAILS_ENABLED", "TAB_UNREAD_ENABLED", "USE_ANIMATION", "USE_TAB_CLOSE_ON_DOUBLECLICK", "USE_TAB_TRANSPARENT_TABS", "USE_TOOLTIP", "TAB_NEVER_CLOSE_LAST", "TAB_CLOSE_ALIGN_NEXT"],
ee = function() {
var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
return {
tabs: O.getTabs(e),
pages: O.getPages(),
activePage: O.getActivePage(),
isSelecting: O.isSelecting(),
pageSelection: O.getSelection(),
pageHistory: O.getPageHistory()
}
},
te = r.createClass({
displayName: "TabBar",
getInitialState: function() {
var e = "off" === this.props.settings.TAB_STACKING;
return Object.assign({
tabsHeight: K,
tabsWidth: Y,
tabStripWidth: 0,
tabStripHeight: 0,
isResizing: !1,
tooltipHeight: 400,
tooltipWidth: 600,
tabStripOverflow: !1
}, ee(e))
},
componentWillUpdate: function(e, t) {
"top" !== e.settings.TAB_POSITION && "bottom" !== e.settings.TAB_POSITION || e.settings.TAB_THUMBNAILS_ENABLED !== !0 || this.props.settings.TAB_THUMBNAILS_ENABLED !== !1 || S.set({
TABS_HEIGHT: j
})
},
componentWillReceiveProps: function(e) {
if (this.props.settings.TAB_STACKING !== e.settings.TAB_STACKING) {
var t = "off" === e.settings.TAB_STACKING;
this.setState(ee(t))
}
},
shouldComponentUpdate: function(e, t) {
var n = function(e, t, n) {
var i = t[e],
a = n[e];
return !!(i === a || l(i, a) || "activePage" === e && q.every(function(e) {
return "extData" === e ? X.every(function(e) {
return l(i.getIn(["extData", e]), a.getIn(["extData", e]))
}) : l(i.get(e), a.get(e))
}))
};
return !F(e, this.props, n) || !F(t, this.state, n)
},
componentWillMount: function() {},
componentDidMount: function() {
O.addChangeListener(this._onPageStoreChange), k.addChangeListener(this.onTabStoreChange), this.updateDocumentTitle(this.state.activePage), this._isMounted = !0
},
updateDocumentTitle: function(e) {
var t = R.getDisplayTitle(e);
t !== document.title && (document.title = t)
},
componentWillUnmount: function() {
O.removeChangeListener(this._onPageStoreChange), k.removeChangeListener(this.onTabStoreChange), this._isMounted = !1, window.removeEventListener("mouseout", this.windowMouseOut)
},
_onPageStoreChange: function() {
var e = O.getActivePage();
e !== this.state.activePage && this.updateDocumentTitle(e);
var t = "off" === this.props.settings.TAB_STACKING;
this.setState(ee(t))
},
isSelecting: function() {
return Boolean(this.props.settings.TAB_SELECTION_ENABLED && this.state.isSelecting && this.state.pageSelection.count())
},
getSelectedPages: function() {
return this.isSelecting() ? this.state.pageSelection.reduce(function(e, t) {
var n = O.getPages().find(function(e) {
return e.id === t
});
return n ? e.push(n) : e
}, c()).sortBy(function(e) {
return e.index
}) : c()
},
onTabStoreChange: function(e) {
var n = this;
"newBackgroundTab" === e.action ? t.nextTick(function() {
return I.openURL(e.url, {
inBackground: !0
})
}) : "closeAllButActiveTab" === e.action ? t.nextTick(function() {
return n.closeAllButActiveTab()
}) : "switchTabBackBySetting" === e.action ? this.switchBackBySetting(e.maybeEvent) : "switchTabForwardBySetting" === e.action ? this.switchForwardBySetting(e.maybeEvent) : "switchTabBackByHistory" === e.action ? this.switchBackByHistory(e.maybeEvent) : "switchTabForwardByHistory" === e.action ? this.switchForwardByHistory(e.maybeEvent) : "switchTabBackByOrder" === e.action ? this.switchBackByOrder(e.maybeEvent) : "switchTabForwardByOrder" === e.action ? this.switchForwardByOrder(e.maybeEvent) : "viewPageSource" === e.action ? t.nextTick(function() {
return I.openURL("view-source:" + n.state.activePage.url)
}) : "stackUntile" === e.action ? t.nextTick(function() {
n.isSelecting() ? n.getSelectedPages().map(function(e) {
return e.getIn(["extData", "tiling", "id"])
}).filter(Boolean).toSet().forEach(I.untilePages) : t.nextTick(function() {
return I.untilePages(n.state.activePage.getIn(["extData", "tiling", "id"]))
})
}) : "stackTileGrid" === e.action ? t.nextTick(function() {
n.isSelecting() ? I.tilePages(n.getSelectedPages(), "grid") : I.tileTabStack(n.state.activePage.getIn(["extData", "group"]), "grid")
}) : "stackTileHorizontal" === e.action ? t.nextTick(function() {
n.isSelecting() ? I.tilePages(n.getSelectedPages(), "horizontally") : I.tileTabStack(n.state.activePage.getIn(["extData", "group"]), "horizontally")
}) : "stackTileVertical" === e.action ? t.nextTick(function() {
n.isSelecting() ? I.tilePages(n.getSelectedPages(), "vertically") : I.tileTabStack(n.state.activePage.getIn(["extData", "group"]), "vertically")
}) : "tabThumbnail" === e.action && this.switchTabViewAndEnablePreview()
},
selectTab: function(e, t) {
"MacIntel" === navigator.platform && 0 === t.button && t.ctrlKey || (N.clearTooltip(), e.active ? I.clearSelection() : (t.stopPropagation(), I.openPage(e)))
},
createTab: function(e) {
e && e.stopPropagation(), I.openURL()
},
createTabWithMiddleClick: function(e) {
1 === e.button && (e.preventDefault(), this.createTab())
},
closeAllButActiveTab: function() {
I.closeOther(O.getActivePage())
},
removeFromTabStack: function(e) {
I.removeFromTabStack(e)
},
muteTab: function(e, t) {
t && t.stopPropagation(), I.mutePage(e)
},
closeSingleTab: function(e, t) {
t && t.stopPropagation(), I.closePage(e)
},
switchBackBySetting: function(e) {
this.props.settings.TAB_SWITCH_VISUAL ? this.props.switchTabVisualTabSwitcher(e, !0) : "recently used" === this.props.settings.TAB_CYCLING_ORDER ? t.nextTick(function() {
return I.cycleByHistory(e, {
goBack: !0
})
}) : t.nextTick(function() {
return I.cycleByOrder(e, {
goBack: !0
})
})
},
switchForwardBySetting: function(e) {
this.props.settings.TAB_SWITCH_VISUAL ? this.props.switchTabVisualTabSwitcher(e, !1) : "recently used" === this.props.settings.TAB_CYCLING_ORDER ? t.nextTick(function() {
return I.cycleByHistory(e, {
goBack: !1
})
}) : t.nextTick(function() {
return I.cycleByOrder(e, {
goBack: !1
})
})
},
switchBackByHistory: function(e) {
t.nextTick(function() {
return I.cycleByHistory(e, {
goBack: !0
})
})
},
switchForwardByHistory: function(e) {
t.nextTick(function() {
return I.cycleByHistory(e, {
goBack: !1
})
})
},
switchBackByOrder: function(e) {
t.nextTick(function() {
return I.cycleByOrder(e, {
goBack: !0
})
})
},
switchForwardByOrder: function(e) {
t.nextTick(function() {
return I.cycleByOrder(e, {
goBack: !1
})
})
},
reopenClosedTab: function() {
w.undeletePrevious()
},
switchTabViewAndEnablePreview: function() {
var e = this.props.settings,
t = e.TAB_POSITION,
n = e.TABBAR_WIDTH,
i = e.TAB_THUMBNAILS_ENABLED,
a = "left" === t || "right" === t;
i ? a ? S.set({
TAB_THUMBNAILS_ENABLED: !1
}) : this.switchTabView() : (S.set({
TAB_THUMBNAILS_ENABLED: !0
}), a && n === Y && this.switchTabView())
},
switchTabViewEvent: function(e) {
e.stopPropagation(), e.preventDefault(), this.switchTabView()
},
switchTabView: function() {
var e = this.props.settings,
t = e.TAB_POSITION,
n = e.TABS_HEIGHT,
i = e.TABBAR_WIDTH;
if ("top" === t || "bottom" === t) {
var a = n < j / 2 ? j : K;
S.set({
TABS_HEIGHT: a
})
} else {
if ("left" !== t && "right" !== t) throw new Error("Unknown tab position", t);
var r = i !== z ? z : Y;
S.set({
TABBAR_WIDTH: r
})
}
this.freezeWebview()
},
onSlidebarPosition: function(e, t) {
var n = s.findDOMNode(this.resizeObserver).getBoundingClientRect();
switch (this.props.settings.TAB_POSITION) {
case "top":
S.set({
TABS_HEIGHT: t - n.top
});
break;
case "bottom":
S.set({
TABS_HEIGHT: n.bottom - t
});
break;
case "left":
S.set({
TABBAR_WIDTH: e - n.left
});
break;
case "right":
S.set({
TABBAR_WIDTH: n.right - e
});
break;
default:
throw new Error("Unknown tabbar position")
}
},
hadleSliderDown: function() {
this.setState({
isResizing: !0
}), this.freezeWebview()
},
hadleSliderUp: function() {
this.setState({
isResizing: !1
}), this.thawWebview(), this.snapToEdge()
},
freezeWebview: function() {
var e = document.getElementById("webview-container"),
t = document.querySelector("#main .inner"),
n = this.props.settings.TAB_POSITION;
if ("left" === n || "right" === n) {
var i = e.clientWidth.toString() + "px";
e.style.setProperty("flex", "0 0 " + i);
var a = this.props.settings.PANEL_POSITION;
("left" === n && "right" === a || "right" === n && "left" === a) && t.classList.add("anchor-panel"), "right" === n && t.classList.add("justify-end")
} else if ("top" === n || "bottom" === n) {
var r = e.clientHeight.toString() + "px";
e.style.setProperty("height", r)
} else console.warn("Unknown Tab position: ", n)
},
thawWebview: function() {
var e = document.getElementById("webview-container"),
t = this.props.settings.TAB_POSITION;
if (e.style.setProperty("flex", "1 1 100%"), e.style.setProperty("height", "auto"), "left" === t || "right" === t) {
var n = document.querySelector("#main .inner");
n.classList.remove("justify-end", "anchor-panel")
}
},
snapToEdge: function() {
var e = this.props.settings.TAB_POSITION;
if ("top" === e || "bottom" === e) {
var t = s.findDOMNode(this.tabsContainer),
n = parseInt(t.style.height);
n > K && n < K + Z ? n = K : n < j && n > j - Z && (n = j), S.set({
TABS_HEIGHT: n
})
}
},
getGroupHighlightId: function(e) {
return O.getGroupHighlightId(e)
},
getTabTooltipContextMenu: function(e) {
return [Object.assign({
handler: this.closeSingleTab.bind(this, e)
}, W("Close Tab")), {
name: "---",
handler: null
}, Object.assign({
handler: this.removeFromTabStack.bind(this, e),
visible: C(e)
}, W("Remove from Tab Stack"))]
},
getTabBarContextMenu: function() {
return [Object.assign({
handler: this.createTab
}, W("command", "New Tab")), Object.assign({
handler: f.bookmarkAllOpenPages.bind(this, g.getRootNode().id)
}, W("Bookmark All Open Pages")), {
name: "---",
handler: null
}, Object.assign({
handler: this.reopenClosedTab,
visible: Boolean(D.getTrash().length)
}, W("Reopen Closed Tab"))]
},
onMouseDown: function(e) {
1 === e.button && navigator.platform.indexOf("Linux") !== -1 && L.doAction("focusWebView")
},
onMouseUp: function(e) {
1 === e.button && 0 === e.buttons && this.createTab()
},
onDoubleClick: function(e) {
0 === e.button && "MacIntel" !== navigator.platform && this.createTab()
},
getTooltipPlacement: function() {
var e = {
top: "below",
bottom: "above",
left: "after",
right: "before"
};
return e[this.props.tabPosition]
},
getTooltipContent: function(e) {
var t = this,
i = this.props.settings,
s = void 0,
o = void 0,
l = C(e);
if ("on" === i.TAB_STACKING && l) {
var u = e.getIn(["extData", "group"]);
s = O.getGroup(u), o = this.getGroupHighlightId(u)
} else s = c.of(e), o = null;
var A = S.getSync("BROWSER_COLOR_FG"),
m = !l && (d(e) && h(e) || e.active),
p = r.createElement("div", {
className: x({
"tab-group": l,
"tab-solo": !l
}),
__source: {
fileName: a,
lineNumber: 657
}
}, s.map(function(e) {
return r.createElement("div", {
key: e.id,
className: x({
active: e.active,
"tooltip-item": !0,
"last-active": o && o === e.id
}),
onMouseDown: G.bind(t, [e]),
onContextMenu: b(t.getTabTooltipContextMenu.bind(t, e)),
onClick: t.selectTab.bind(t, e),
__source: {
fileName: a,
lineNumber: 661
}
}, !m && r.createElement(M, {
src: e.getIn(["extData", "thumbnail"]),
__source: {
fileName: a,
lineNumber: 673
}
}), r.createElement("div", {
className: "thumbnail-caption",
__source: {
fileName: a,
lineNumber: 676
}
}, r.createElement("span", {
className: "thumbnail-text",
__source: {
fileName: a,
lineNumber: 677
}
}, R.getDisplayTitle(e).length > 245 ? R.getDisplayTitle(e).substring(0, 240) + "..." : R.getDisplayTitle(e)), ("playing" === e.mediastate || "muting" === e.mediastate) && r.createElement("button", {
className: "tooltip-audio-button",
tabIndex: i.KEY_ACCESS,
onClick: t.muteTab.bind(t, e),
__source: {
fileName: a,
lineNumber: 685
}
}, r.createElement(U, {
color: A,
animated: i.USE_ANIMATION,
mode: e.mediastate,
__source: {
fileName: a,
lineNumber: 689
}
})), r.createElement("button", {
className: "close",
dangerouslySetInnerHTML: {
__html: n(81)
},
tabIndex: i.KEY_ACCESS,
onClick: t.closeSingleTab.bind(t, e),
__source: {
fileName: a,
lineNumber: 696
}
})))
})),
f = 1,
g = 226 + f,
_ = (m ? K : 190) + f,
v = window.innerWidth - ("left" === this.props.settings.TAB_POSITION || "right" === this.props.settings.TAB_POSITION ? this.getWidth() : 0),
N = s.count() * (g + f),
E = _ + f;
if (N > v) {
var T = Math.floor(v / g);
N = Math.floor(v / g) * (g + f), E = (_ + f) * Math.ceil(s.count() / T)
}
return {
width: N,
height: E,
content: p
}
},
getTabDirection: function() {
var e = this.props.settings.TAB_POSITION;
return "left" === e || "right" === e ? "column" : "row"
},
setOverflowClass: function(e) {
this.setState({
tabStripOverflow: e
})
},
onResize: function(e) {
var t = e[0].target;
this._isMounted && this.setState({
tabStripWidth: t.clientWidth,
tabStripHeight: t.clientHeight
})
},
onDragOver: function(e) {
e.dataTransfer.types.some(function(e) {
return "text/uri-list" === e || "text/plain" === e || "vivaldi/x-tab-entries" === e
}) && (e.preventDefault(), e.stopPropagation(), e.dataTransfer.types.some(function(e) {
return "text/uri-list" === e || "text/plain" === e
}) && (e.dataTransfer.dropEffect = "copy"))
},
dragEnterHandler: function(e) {
e.preventDefault(), e.stopPropagation()
},
onDrop: function(e) {
if (e.dataTransfer.types.some(function(e) {
return "text/uri-list" === e || "text/plain" === e || "vivaldi/x-tab-entries" === e
})) {
e.preventDefault(), e.stopPropagation();
var t = e.dataTransfer.getData("text/uri-list");
if (t.length > 0)
for (var n = t.split("\n"), i = 0; i < n.length; i++) I.openURL(n[i], {
inCurrent: !1,
inBackground: i > 0
});
else {
var a = e.dataTransfer.getData("text/plain");
a.length > 0 && V(a) && I.openURL(a, {
inCurrent: !1
})
}
}
},
getWidth: function() {
var e = this.props.settings.TABBAR_WIDTH,
t = Y,
n = J;
return Math.min(Math.max(e, t), n) || Y
},
getHeight: function() {
if (!this.props.settings.TAB_THUMBNAILS_ENABLED) return K;
var e = this.props.settings.TABS_HEIGHT,
t = K,
n = j;
return Math.min(Math.max(e, t), n) || K
},
render: function() {
var e, t = this,
n = this.props.settings,
s = n.TAB_POSITION,
o = "off" !== n.TAB_STACKING,
l = this.getTabDirection(),
c = "row" === l ? this.state.tabStripWidth - Q : this.state.tabStripWidth,
A = "column" === l ? this.state.tabStripHeight - Q : this.state.tabStripHeight,
d = this.isSelecting() ? this.state.pageSelection : u(),
h = n.TAB_THUMBNAILS_ENABLED && ("top" === n.TAB_POSITION || "bottom" === n.TAB_POSITION) || "left" === n.TAB_POSITION || "right" === n.TAB_POSITION;
return r.createElement(p, {
animation: "top" === n.TAB_POSITION || "bottom" === n.TAB_POSITION ? {
height: this.getHeight()
} : {
width: this.getWidth()
},
duration: n.USE_ANIMATION ? 100 : 0,
mock: this.state.isResizing === !0,
complete: this.state.isResizing ? null : this.thawWebview,
__source: {
fileName: a,
lineNumber: 847
}
}, r.createElement("div", {
id: "tabs-container",
ref: function(e) {
return t.tabsContainer = e
},
onMouseDown: this.onMouseDown,
onMouseUp: this.onMouseUp,
onDoubleClick: this.onDoubleClick,
onContextMenu: b(this.getTabBarContextMenu),
className: x((e = {
"tab-group-open": o && C(O.getActivePage())
}, i(e, n.TAB_THUMBNAILS_ENABLED ? "view-thumbs" : "no-thumbs", !0), i(e, this.props.tabPosition, !0), i(e, "overflow", this.state.tabStripOverflow), i(e, "tabs-at-edge", this.state.SWITCH_TABS_AT_WINDOW_EDGE && "left" !== s && "right" !== s), e)),
onDragOver: this.onDragOver,
onDragEnter: this.dragEnterHandler,
onDrop: this.onDrop,
__source: {
fileName: a,
lineNumber: 856
}
}, r.createElement(B, {
ref: function(e) {
return t.resizeObserver = e
},
className: "resize",
onResize: this.onResize,
__source: {
fileName: a,
lineNumber: 875
}
}, r.createElement(_, {
ref: "tabStrip",
className: "tab-strip",
maxWidth: c,
maxHeight: A,
direction: l,
selectTab: this.selectTab,
getTooltipContent: this.getTooltipContent,
getGroupHighlightId: this.getGroupHighlightId,
setOverflowClass: this.setOverflowClass,
settings: n,
reopenClosedTab: this.reopenClosedTab,
tabPosition: this.props.tabPosition,
isSelecting: this.isSelecting(),
pageSelection: d,
pages: this.state.pages,
tabs: this.state.tabs,
__source: {
fileName: a,
lineNumber: 880
}
})), r.createElement(v, {
keyAccess: n.KEY_ACCESS,
__source: {
fileName: a,
lineNumber: 902
}
}), h && r.createElement(E, {
onSlidebarPosition: this.onSlidebarPosition,
onStart: this.hadleSliderDown,
onStop: this.hadleSliderUp,
onDoubleClick: this.switchTabViewEvent,
position: this.props.tabPosition,
__source: {
fileName: a,
lineNumber: 905
}
})))
}
});
e.exports = T(te, $, [], "settings")
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_721
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/tabs/TabProgressIndicator.jsx",
a = n(1),
r = n(9),
s = n(112),
o = n(5),
l = a.createClass({
displayName: "TabProgressIndicator",
mixins: [r],
getInitialState: function() {
return {
isProgressing: !1,
progress: 0
}
},
componentWillMount: function() {
s.addChangeListener(this._onNavigationStoreChanged)
},
componentWillUnmount: function() {
s.removeChangeListener(this._onNavigationStoreChanged)
},
_onNavigationStoreChanged: function() {
var e = this.props.page,
t = s.getProgressInfo(e).get("progress"),
n = s.getNavigationInfo(e).get("trigger");
"start" === n ? this.setState({
isProgressing: !1,
progress: 0
}) : "stop" === n ? this.setState({
isProgressing: !1,
progress: 1
}) : "commit" !== n && "content" !== n || this.setState({
isProgressing: !0,
progress: t
})
},
render: function() {
var e = this.state.progress,
t = this.state.isProgressing,
n = o({
"progress-indicator": !0,
progressing: t,
"progress-done": 1 === e
});
return a.createElement("span", {
className: n,
style: {
transform: "scaleX(" + e + ")"
},
__source: {
fileName: i,
lineNumber: 59
}
})
}
});
e.exports = l
}, function(e, t, n) {
// =========================
// Function_722
// =========================
(function(t) {
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function r(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function s(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
function o(e, t) {
return w.default.getSync("USE_ANIMATION") ? (0, f.spring)(e, t) : e
}
var l = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/tabs/TabStrip.jsx",
c = function() {
function e(e, t) {
var n = [],
i = !0,
a = !1,
r = void 0;
try {
for (var s, o = e[Symbol.iterator](); !(i = (s = o.next()).done) && (n.push(s.value), !t || n.length !== t); i = !0);
} catch (e) {
a = !0, r = e
} finally {
try {
!i && o.return && o.return()
} finally {
if (a) throw r
}
}
return n
}
return function(t, n) {
if (Array.isArray(t)) return t;
if (Symbol.iterator in Object(t)) return e(t, n);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
}
}(),
u = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
},
A = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
d = n(1),
h = i(d),
m = n(11),
p = i(m),
f = n(1121),
g = n(37),
_ = i(g),
v = n(114),
b = (i(v), n(15)),
N = i(b),
E = n(17),
S = i(E),
T = n(719),
y = i(T),
C = n(724),
I = i(C),
O = n(3),
w = i(O),
D = n(55),
k = i(D),
M = n(4),
L = i(M),
P = n(409),
R = i(P),
x = n(88),
B = i(x),
U = n(212),
F = i(U),
H = n(21),
V = i(H),
W = n(224),
G = i(W),
K = n(788),
j = i(K),
z = n(10),
Y = i(z),
J = n(27),
Q = n(400),
Z = n(376),
q = n(46),
X = n(7),
$ = n(73),
ee = n(2),
te = i(ee),
ne = n(72),
ie = (0, Q.createIdleListener)(),
ae = 250,
re = 200,
se = 50,
oe = 180,
le = 150,
ce = 66,
ue = 30,
Ae = ue,
de = 7,
he = {
stiffness: 240,
damping: 26
},
me = {
stiffness: 300,
damping: 30
},
pe = function(e) {
return {
top: "below",
bottom: "above",
left: "after",
right: "before"
}[e]
},
fe = "MacIntel" === navigator.platform,
ge = function(e) {
function i(e) {
a(this, i);
var t = r(this, (i.__proto__ || Object.getPrototypeOf(i)).call(this, e));
return t.dragOverTimeoutId = null, t.removeYieldAnimationTimeoutId = null, t.currentHoveredId = 0, t.appRegionRestore = "", t.state = {
isScreenshotting: !1,
isDragging: !1,
isExpectingDrop: !1,
mouse: [0, 0],
delta: [0, 0],
start: [0, 0],
draggedActive: null,
draggedSet: (0, J.Set)(),
recoverTabInfo: null,
enterSide: "none",
hovered: -1,
hoverPercent: 0,
isHiddenForDrag: (0, J.Set)(),
isYielding: !1,
yieldBefore: null,
yieldAfter: null,
yieldOver: null,
freeze: null
}, t.handleEscKey = t.handleEscKey.bind(t), t.abortAndRevertDragging = t.abortAndRevertDragging.bind(t), t.getStyles = t.getStyles.bind(t), t.handleMouseMove = t.handleMouseMove.bind(t), t.handleMouseUp = t.handleMouseUp.bind(t), t.handleTouchMove = t.handleTouchMove.bind(t), t.handleMouseDown = t.handleMouseDown.bind(t), t.handleClick = t.handleClick.bind(t), t.handleDoubleClick = t.handleDoubleClick.bind(t), t.handleTabClickMouseUp = t.handleTabClickMouseUp.bind(t), t.handleTouchStart = t.handleTouchStart.bind(t), t.updateInternalDragging = t.updateInternalDragging.bind(t), t.detectInternalOverlap = t.detectInternalOverlap.bind(t), t.handleTabPosition = t.handleTabPosition.bind(t), t.onDragEnterHandler = t.onDragEnterHandler.bind(t), t.onDragLeaveHandler = t.onDragLeaveHandler.bind(t), t.onDragOverHandler = t.onDragOverHandler.bind(t), t.onDropHandler = t.onDropHandler.bind(t), t.droppedTabHandler = t.droppedTabHandler.bind(t), t.closeAndFreeze = t.closeAndFreeze.bind(t), t.freezeTabSize = t.freezeTabSize.bind(t), t.clearForceHover = t.clearForceHover.bind(t), t.onDragEndHandler = t.onDragEndHandler.bind(t), t.onMessageReceived = t.onMessageReceived.bind(t), t.startExpectingDrop = t.startExpectingDrop.bind(t), t.endExpectingDrop = t.endExpectingDrop.bind(t), t.switchToHTMLDrag = t.switchToHTMLDrag.bind(t), t.setIsHiddenForDrag = t.setIsHiddenForDrag.bind(t), t.maybeResetDragging = t.maybeResetDragging.bind(t), t.windowDragEnterHandler = t.windowDragEnterHandler.bind(t), t.windowDragLeaveHandler = t.windowDragLeaveHandler.bind(t), t.windowDragOverHandler = t.windowDragOverHandler.bind(t), t.windowDropHandler = t.windowDropHandler.bind(t), t.createFlexBoxLayout = (0, F.default)(1)(t.createFlexBoxLayout.bind(t)), t
}
return s(i, e), A(i, [{
key: "shouldComponentUpdate",
value: function(e, t) {
return (0, V.default)(this, e, t)
}
}, {
key: "componentWillMount",
value: function() {
L.default.runtime.onMessage.addListener(this.onMessageReceived)
}
}, {
key: "componentDidMount",
value: function() {
this.setOverflowClass(), window.addEventListener("dragenter", this.windowDragEnterHandler), window.addEventListener("dragleave", this.windowDragLeaveHandler), window.addEventListener("dragover", this.windowDragOverHandler), window.addEventListener("drop", this.windowDropHandler)
}
}, {
key: "componentWillUnmount",
value: function() {
L.default.runtime.onMessage.removeListener(this.onMessageReceived), window.removeEventListener("dragenter", this.windowDragEnterHandler), window.removeEventListener("dragleave", this.windowDragLeaveHandler), window.removeEventListener("dragover", this.windowDragOverHandler), window.removeEventListener("drop", this.windowDropHandler)
}
}, {
key: "componentWillReceiveProps",
value: function(e) {
(0, J.is)(e.pages, this.props.pages) || this.maybeResetDragging()
}
}, {
key: "componentDidUpdate",
value: function(e) {
this.props.tabs === e.tabs && this.props.maxWidth === e.maxWidth && this.props.maxHeight === e.maxHeight && this.props.settings.settings === e.settings || this.setOverflowClass()
}
}, {
key: "setOverflowClass",
value: function() {
if (("left" === this.props.settings.TAB_POSITION || "right" === this.props.settings.TAB_POSITION) && this.refs.tabs) {
var e = p.default.findDOMNode(this.refs.tabs);
e.clientHeight < e.scrollHeight ? this.props.setOverflowClass(!0) : this.props.setOverflowClass(!1)
}
}
}, {
key: "cancelEvent",
value: function(e) {
e && e.stopPropagation()
}
}, {
key: "onMessageReceived",
value: function(e) {
var t = e.action,
n = e.windowId;
t === ne.MESSAGE_START_DRAGGING ? this.startExpectingDrop() : t === ne.MESSAGE_END_DRAGGING ? this.endExpectingDrop() : "unmountWebViews" === t && n === window.vivaldiWindowId && (document.querySelectorAll("webview").forEach(function(e) {
return e.parentElement.removeChild(e)
}), L.default.runtime.sendMessage({
action: "afterUnmountWebview"
}))
}
}, {
key: "startExpectingDrop",
value: function() {
var e = S.default.isIncognito(),
t = !e;
this.setState({
isExpectingDrop: t
})
}
}, {
key: "endExpectingDrop",
value: function() {
this.setState({
isExpectingDrop: !1
})
}
}, {
key: "createTab",
value: function(e) {
e && e.stopPropagation(), N.default.openURL()
}
}, {
key: "closeAndFreeze",
value: function(e, t) {
this.props.settings.TAB_CLOSE_ALIGN_NEXT && this.freezeTabSize(e), N.default.closePage(e)
}
}, {
key: "freezeTabSize",
value: function e(t) {
var n = this,
i = function() {
n.setState({
freeze: null
}), window.removeEventListener("mousemove", a)
},
a = function(e) {
var t = p.default.findDOMNode(n.refs.tabs).getBoundingClientRect();
(t.left > e.clientX || t.left + t.width < e.clientX || t.top > e.clientY || t.top + t.height < e.clientY) && i()
},
e = function(e) {
var t = n.createFlexBoxLayout(n.props.tabs, n.props.direction, n.props.maxWidth, n.props.maxHeight, {
isHiddenForDrag: n.state.isHiddenForDrag,
freeze: n.state.freeze,
yieldBefore: n.state.yieldBefore,
yieldAfter: n.state.yieldAfter,
tabStackingEnabled: "on" === n.props.settings.TAB_STACKING,
isThumb: n.props.settings.TAB_THUMBNAILS_ENABLED
}),
i = t.children.filter(function(e) {
return "tab" === e.type
}).findIndex(function(t) {
return t.tab.page.id === e
}),
r = t.children[i],
s = t.children[i + 1];
r && (n.setState({
freeze: {
width: r.layout.width,
height: r.layout.height,
nextId: s.tab.page.id
}
}), window.addEventListener("mousemove", a))
},
r = this.props.tabs.getIn([-1, "page", "id"]);
t.id !== r ? e(t.id) : i()
}
}, {
key: "handleTouchStart",
value: function(e, t, n, i) {
this.startInternalDragging(i.touches[0], e, t, n)
}
}, {
key: "handleTouchMove",
value: function(e) {
e.preventDefault(), this.updateInternalDragging(e.touches[0])
}
}, {
key: "handleMouseMove",
value: function(e) {
e.preventDefault(), this.updateInternalDragging(e)
}
}, {
key: "handleMouseUp",
value: function(e) {
this.endInternalDragging(e)
}
}, {
key: "handleMouseDown",
value: function(e, t, n, i) {
0 === i.button ? (0, B.default)(i) || (this.props.selectTab(e, i), this.startInternalDragging(i, e, t, n)) : 1 === i.button && navigator.platform.indexOf("Linux") !== -1 && k.default.doAction("focusWebView")
}
}, {
key: "handleClick",
value: function(e, t) {
var n = this.props.settings;
(0, Z.isSingleSelectEvent)(t, n, document.hasFocus()) ? N.default.setSelection(e, !1, !1): (0, Z.isMultiSelectEvent)(t, n, document.hasFocus()) && N.default.setSelection(e, !0, !1)
}
}, {
key: "handleDoubleClick",
value: function(e, t) {
t.preventDefault(), t.stopPropagation();
var n = this.props.settings;
(0, Z.isSingleSelectEvent)(t, n, document.hasFocus()) ? N.default.toggleRelatedSelection(e): n.USE_TAB_CLOSE_ON_DOUBLECLICK && N.default.closePage(e)
}
}, {
key: "handleTabClickMouseUp",
value: function(e, t) {
1 === t.button && (t.preventDefault(), t.stopPropagation(), N.default.closePage(e))
}
}, {
key: "onDragEnterHandler",
value: function(e) {
return e.dataTransfer.types.some(function(e) {
return "vivaldi/x-tab-entries" === e
}) && this.state.isExpectingDrop ? (e.preventDefault(), void e.stopPropagation()) : void(e.dataTransfer.types.some(function(e) {
return "text/uri-list" === e || "text/plain" === e
}) && (e.preventDefault(), e.stopPropagation(), e.dataTransfer.dropEffect = "copy"))
}
}, {
key: "onDragLeaveHandler",
value: function(e) {
var t = this;
clearTimeout(this.removeYieldTimeoutId), this.removeYieldTimeoutId = setTimeout(function() {
t.setState({
yieldAfter: null,
yieldBefore: null,
yieldOver: null
}), clearTimeout(t.removeYieldAnimationTimeoutId), t.removeYieldAnimationTimeoutId = setTimeout(function() {
t.state.yieldBefore || t.state.yieldAfter || t.setState({
isYielding: !1
})
}, 2e3)
}, 200)
}
}, {
key: "onDragOverHandler",
value: function(e) {
var t = this;
return clearTimeout(this.removeYieldTimeoutId), e.dataTransfer.types.some(function(e) {
return "vivaldi/x-tab-entries" === e
}) && this.state.isExpectingDrop ? (e.preventDefault(), e.stopPropagation(), clearTimeout(this.removeYieldTimeoutId), void(this.removeYieldTimeoutId = setTimeout(function() {
return t.setState({
yieldAfter: null,
yieldBefore: null
})
}, 300))) : void(e.dataTransfer.types.some(function(e) {
return "text/uri-list" === e || "text/plain" === e
}) && (e.preventDefault(), e.stopPropagation(), e.dataTransfer.dropEffect = "copy"))
}
}, {
key: "onDropHandler",
value: function(e) {
e.preventDefault(), e.stopPropagation();
var t = e.dataTransfer.getData("vivaldi/x-tab-entries"),
n = e.dataTransfer.getData("text/uri-list"),
i = e.dataTransfer.getData("text/plain");
this.state.isExpectingDrop && t ? this.droppedTabHandler(t) : n ? n.split("\n").forEach(function(e, t) {
return N.default.openURL(e, {
inCurrent: !1,
inBackground: t > 0
})
}) : i && (0, q.isValidURL)(i) && N.default.openURL(i, {
inCurrent: !1
})
}
}, {
key: "droppedTabHandler",
value: function(e) {
var n = this,
i = this.state.yieldOver,
a = this.props.settings.TAB_STACKING,
r = JSON.parse(e),
s = r.ids.map(function(e) {
return parseInt(e)
}).sort(function(e, t) {
return e - t
}),
o = this.getYieldIndex(s[0]);
L.default.tabs.query({}, function(e) {
var l = (0, J.List)(e).filter(function(e) {
return s.some(function(t) {
return e.id === t
})
}).map($.tabToPage),
c = function() {
var e = i && S.default.getPages().find(function(e) {
return e.id === i && !e.pinned
});
if (e) {
var s = e.getIn(["extData", "group"]),
c = a && S.default.isGroup(s),
u = c ? l.concat(S.default.getGroup(s)) : l.push(e);
N.default.createTabStack(u, e.index, e.getIn(["extData", "group"]))
} else {
var A = function() {
return t.nextTick(n.maybeResetDragging)
},
d = r.active;
N.default.moveDroppedTabs(l, d, o, A)
}
L.default.windows.update(window.vivaldiWindowId, {
focused: !0
})
},
u = l.getIn([0, "windowId"]),
A = u !== window.vivaldiWindowId,
d = e.filter(function(e) {
return e.windowId === u
}),
h = d.length - l.count() === 0;
A && h ? ! function() {
var e = function e(t) {
t && "afterUnmountWebview" === t.action && (L.default.runtime.onMessage.removeListener(e), c())
};
L.default.runtime.onMessage.addListener(e), L.default.runtime.sendMessage({
action: "unmountWebViews",
windowId: u
})
}() : c()
})
}
}, {
key: "handleTabPosition",
value: function(e, t) {
var n = this;
clearTimeout(this.removeYieldTimeoutId), "before" === t ? this.setState({
isYielding: !0,
yieldBefore: e,
yieldAfter: null,
yieldOver: null
}) : "after" === t ? this.setState({
isYielding: !0,
yieldBefore: null,
yieldAfter: e,
yieldOver: null
}) : "over" === t ? this.setState({
yieldOver: e
}) : "none" === t && (this.setState({
yieldBefore: null,
yieldAfter: null,
yieldOver: null
}), setTimeout(function() {
var e = n.state,
t = e.yieldBefore,
i = e.yieldAfter,
a = e.yieldOver;
t || i || a || n.setState({
isYielding: !1
})
}, 1e3))
}
}, {
key: "setIsHiddenForDrag",
value: function(e) {
this.setState({
isHiddenForDrag: e
})
}
}, {
key: "windowDragEnterHandler",
value: function(e) {
e.dataTransfer.types.some(function(e) {
return "vivaldi/x-tab-entries" === e
}) && (e.preventDefault(), e.stopPropagation())
}
}, {
key: "windowDragLeaveHandler",
value: function(e) {
if (e.dataTransfer.types.some(function(e) {
return "vivaldi/x-tab-entries" === e
})) {
e.preventDefault(), e.stopPropagation();
var t = 0 === e.pageX && 0 === e.pageY;
t && this.handleTabPosition(-1, "none")
}
}
}, {
key: "windowDragOverHandler",
value: function(e) {
if (e.dataTransfer.types.some(function(e) {
return "vivaldi/x-tab-entries" === e
})) {
e.preventDefault(), e.stopPropagation(), this.delayedActivateWindow(e);
var t = this.state,
n = t.yieldBefore,
i = t.yieldAfter,
a = t.yieldOver;
if (!a && !n && !i) {
var r = this.props.pages.getIn([-1, "id"]);
r && !this.state.isHiddenForDrag.has(r) && this.handleTabPosition(r, "after")
}
}
}
}, {
key: "windowDropHandler",
value: function(e) {
var t = this;
e.dataTransfer.types.some(function(e) {
return "vivaldi/x-tab-entries" === e
}) && ! function() {
e.preventDefault(), e.stopPropagation();
var n = e.dataTransfer.getData("vivaldi/x-tab-entries"),
i = JSON.parse(n),
a = i.ids.map(function(e) {
return parseInt(e)
}).sort(function(e, t) {
return e - t
});
L.default.tabs.query({}, function(n) {
var r = n.find(function(e) {
return a.includes(e.id) && e.windowId !== window.vivaldiWindowId
});
if (r) ! function() {
var e = (0, J.List)(n).filter(function(e) {
return a.some(function(t) {
return e.id === t
})
}).map($.tabToPage),
t = function() {
N.default.moveDroppedTabs(e, i.active, -1)
},
r = e.getIn([0, "windowId"]),
s = n.filter(function(e) {
return e.windowId === r
}),
o = s.length - e.count() === 0;
o ? ! function() {
var e = function e(n) {
n && "afterUnmountWebview" === n.action && (L.default.runtime.onMessage.removeListener(e), t())
};
L.default.runtime.onMessage.addListener(e), L.default.runtime.sendMessage({
action: "unmountWebViews",
windowId: r
})
}() : t()
}();
else {
var s = a.map(function(e) {
return parseInt(e)
}).map(function(e) {
return S.default.getPages().find(function(t) {
return t.id === e
})
}).filter(Boolean);
if (s.length === S.default.getPages().count()) return void t.maybeResetDragging();
s.length ? N.default.detachPage(s, e.screenX, e.screenY) : (t.maybeResetDragging(), console.warn("Dropped Page(s) does not exist:", s.ids))
}
})
}()
}
}, {
key: "delayedActivateWindow",
value: function(e) {
var t = e.screenX,
n = e.screenY;
fe || ie(t, n, ae, function() {
return L.default.windows.update(window.vivaldiWindowId, {
focused: !0
})
})
}
}, {
key: "maybeResetDragging",
value: function() {
var e = this.state,
t = e.isHiddenForDrag,
n = e.isYielding,
i = e.yieldOver;
(!t.isEmpty() || n || i) && this.setState({
isYielding: !1,
yieldBefore: null,
yieldAfter: null,
yieldOver: null,
isHiddenForDrag: (0, J.Set)(),
hovered: -1
})
}
}, {
key: "handleEscKey",
value: function() {
this.abortAndRevertDragging()
}
}, {
key: "abortAndRevertDragging",
value: function() {
this.state.draggedSet.forEach(function(e) {
return N.default.moveToIndex(e, e.index)
}), this.cleanupInternalDragging(), this.maybeResetDragging()
}
}, {
key: "getYieldIndex",
value: function(e) {
var t = this.state,
n = t.yieldBefore,
i = t.yieldAfter,
a = t.yieldOver,
r = this.props.settings.TAB_STACKING;
if (n) {
var s = S.default.getPages().find(function(e) {
return e.id === n
});
if (!s) return -1;
var o = function() {
var t = s.getIn(["extData", "group"]),
n = r && S.default.isGroup(t),
i = n ? S.default.getGroup(t).first().id : s.id;
return {
v: S.default.getPages().filter(function(t) {
return t.id !== e
}).findIndex(function(e) {
return e.id === i
})
}
}();
if ("object" === ("undefined" == typeof o ? "undefined" : u(o))) return o.v
} else {
if (!i) {
if (a) {
var l = S.default.getPages().find(function(e) {
return e.id === a
});
return l ? l.index : -1
}
return -1
}
var c = S.default.getPages().find(function(e) {
return e.id === i
});
if (!c) return -1;
var A = function() {
var t = c.getIn(["extData", "group"]),
n = r && S.default.isGroup(t),
i = n ? S.default.getGroup(t).first().id : c.id;
return {
v: S.default.getPages().filter(function(t) {
return t.id !== e
}).findIndex(function(e) {
return e.id === i
}) + 1
}
}();
if ("object" === ("undefined" == typeof A ? "undefined" : u(A))) return A.v
}
}
}, {
key: "startInternalDragging",
value: function(e, t, n, i) {
var a = e.pageX,
r = e.pageY;
window.addEventListener("touchmove", this.handleTouchMove), window.addEventListener("mousemove", this.handleMouseMove), window.addEventListener("touchend", this.handleMouseUp), window.addEventListener("mouseup", this.handleMouseUp), _.default.bind("esc", this.handleEscKey);
var s = void 0,
o = this.props,
l = o.isSelecting,
c = o.pageSelection,
u = t.getIn(["extData", "group"]),
A = this.props.settings.TAB_STACKING,
d = A && S.default.isGroup(u),
h = l && c.has(t.id);
s = h ? c.reduce(function(e, t) {
var n = S.default.getPages().find(function(e) {
return e.id === t
});
return n ? e.add(n) : e
}, (0, J.Set)()) : d ? (0, J.Set)(S.default.getGroup(u)) : J.Set.of(t), this.setState({
draggedActive: t,
draggedSet: s,
start: [a, r],
delta: [a - n, r - i],
mouse: [n, i],
isScreenshotting: !1,
yieldBefore: null,
yieldAfter: null
})
}
}, {
key: "updateInternalDragging",
value: function(e) {
var t = e.pageX,
n = e.pageY,
i = this.state,
a = i.isDragging,
r = i.draggedActive,
s = i.start,
o = c(i.delta, 2),
l = o[0],
u = o[1],
A = this.props,
d = A.tabs,
h = A.direction,
m = A.maxWidth,
p = A.maxHeight,
f = A.settings,
g = c(s, 2),
_ = g[0],
v = g[1],
b = 5;
if (a) {
if (this.state.isScreenshotting) return
} else {
var N = Math.abs(_ - t) > b || Math.abs(v - n) > b;
if (!N) return;
a = !0
}
var E = this.createFlexBoxLayout(d, h, m, p, {
isHiddenForDrag: this.state.isHiddenForDrag,
freeze: this.state.freeze,
yieldBefore: this.state.yieldBefore,
yieldAfter: this.state.yieldAfter,
tabStackingEnabled: "on" === f.TAB_STACKING,
isThumb: f.TAB_THUMBNAILS_ENABLED
}),
S = d.find(function(e) {
return r && r.id === e.page.id
}),
T = E.children.find(function(e) {
return e.tab.id === S.id
}).layout,
y = 50,
C = t - l,
I = n - u,
O = S.getIn(["page", "incognito"]) === !1,
w = E.children.filter(function(e) {
return "tab" === e.type
}),
D = (0, X.first)(w).layout,
k = (0, X.last)(w).layout,
M = "column" === h && (C + y < D.left || C - y > k.left) || "row" === h && (I + y < D.top || I - y > k.top),
L = O && M;
L ? this.switchToHTMLDrag(S) : (C = "row" === h ? C : T.left, I = "column" === h ? I : T.top, C = (0, X.clamp)(C, D.left - 5, k.left + 5), I = (0, X.clamp)(I, D.top - 5, k.top + 5), this.setState({
mouse: [C, I],
isDragging: a
}), this.detectInternalOverlap(S, T, E, h, C, I))
}
}, {
key: "detectInternalOverlap",
value: function(e, t, n, i, a, r) {
var s = this;
this.dragOverTimeoutId && clearTimeout(this.dragOverTimeoutId);
var o = [a + t.width / 2, r + t.height / 2],
l = n.children.filter(function(e) {
return "tab" === e.type
}).filter(function(t) {
return t.tab.get("id") !== e.get("id")
}).filter(function(e) {
return !s.state.draggedSet.find(function(t) {
return t.id === e.tab.id
})
}).find(function(e) {
var t = e.layout;
return o[0] > t.left && o[0] < t.left + t.width && o[1] > t.top && o[1] < t.top + t.height
});
if (l) return void N.default.movePage(this.state.draggedSet.toList(), l.tab.page);
if ("on" === this.props.settings.TAB_STACKING) {
var c = function() {
var o = Object.assign({}, t, {
left: a,
top: r
}),
l = n.children.filter(function(e) {
var t = e.type;
return "tab" === t
}).filter(function(t) {
var n = t.tab;
return n.get("id") !== e.get("id")
}).find(function(e) {
var t = e.layout;
return (0, j.default)(t, o)
});
if (!l) return s.currentHoveredId = 0, s.setState({
enterSide: "none",
hovered: -1
}), {
v: void 0
};
var c = l.layout,
u = c.left,
A = c.width,
d = c.top,
h = c.height,
m = void 0;
m = "row" === i ? a < u + A / 2 ? "before" : "after" : r < d + h / 2 ? "before" : "after";
var p = s.state.enterSide;
s.currentHoveredId !== l.tab.page.id && s.setState({
enterSide: p = m
}), s.currentHoveredId = l.tab.page.id;
var f = (0, j.default)(l.layout, o) / (t.width * t.height) * 100;
if (p === m && f < 50 && f > 10) {
var g = se;
s.state.hovered === -1 && (clearTimeout(s.dragOverTimeoutId), s.dragOverTimeoutId = setTimeout(function() {
s.state.isDragging && s.setState({
hovered: l.tab.page.id,
hoverPercent: f
})
}, g))
} else s.setState({
hovered: -1,
hoverPercent: 0
})
}();
if ("object" === ("undefined" == typeof c ? "undefined" : u(c))) return c.v
}
}
}, {
key: "switchToHTMLDrag",
value: function(e) {
var t = this,
n = this.props.settings.TAB_STACKING,
i = this.state.draggedSet.toList(),
a = i.find(function(e) {
return e.active
}) || i.first(),
r = L.default.app.window.current();
r && ! function() {
var s = p.default.findDOMNode(t.refs.tabs).querySelector("#tab-" + e.id).getBoundingClientRect(),
o = a.getIn(["extData", "group"]),
l = n && S.default.isGroup(o),
c = l ? 4 : 0;
t.setState({
isScreenshotting: !0
}, function() {
return Y.default.zoom.getVivaldiUIZoom(function(e) {
return Y.default.thumbnails.captureUI({
appWindowId: r.id,
posX: Math.round(s.left * e),
posY: Math.round((s.top - c) * e),
width: Math.round(s.width * e),
height: Math.round((s.height + c) * e)
}, function(e) {
L.default.runtime.sendMessage({
action: ne.MESSAGE_START_DRAGGING
}), Y.default.tabsPrivate.onDragEnd.addListener(t.onDragEndHandler), Y.default.tabsPrivate.startDrag({
mimeType: "vivaldi/x-tab-entries",
customData: JSON.stringify({
ids: i.map(function(e) {
return e.id
}).toJS(),
active: a.id
}),
url: a.url,
title: a.title
}, {
image: e,
cursorX: 10,
cursorY: 10
}, !1), t.cleanupInternalDragging(), t.setState({
isHiddenForDrag: i.toSet().map(function(e) {
return e.id
})
})
})
})
})
}()
}
}, {
key: "endInternalDragging",
value: function() {
var e = this,
t = this.state.hovered !== -1 && S.default.getPages().find(function(t) {
return t.id === e.state.hovered
});
if (t) {
var n = void 0;
n = S.default.isGroup(t.getIn(["extData", "group"])) ? this.state.draggedSet.union(S.default.getGroup(t.getIn(["extData", "group"]))) : this.state.draggedSet.add(t), N.default.createTabStack(n.toList(), null, t.getIn(["extData", "group"]))
}
this.cleanupInternalDragging()
}
}, {
key: "cleanupInternalDragging",
value: function() {
window.removeEventListener("touchmove", this.handleTouchMove), window.removeEventListener("mousemove", this.handleMouseMove), window.removeEventListener("touchend", this.handleMouseUp), window.removeEventListener("mouseup", this.handleMouseUp), _.default.unbind("esc", this.handleEscKey), this.props.settings.TAB_CLICK_ACTIVE_OPENS_PREVIOUS && !this.state.isDragging && this.state.draggedActive && this.state.draggedActive.active && N.default.minimizePage(), this.setState({
isDragging: !1,
start: [0, 0],
delta: [0, 0],
mouse: [0, 0],
hovered: -1,
hoverPercent: 0
})
}
}, {
key: "onDragEndHandler",
value: function(e, t, n, i, a) {
var r = this;
if ("vivaldi/x-tab-entries" === e.mimeType) {
if (Y.default.tabsPrivate.onDragEnd.removeListener(this.onDragEndHandler), L.default.runtime.sendMessage({
action: ne.MESSAGE_END_DRAGGING
}), t) this.abortAndRevertDragging();
else if (n) {
var s = JSON.parse(e.customData).ids.map(function(e) {
return parseInt(e)
}).map(function(e) {
return S.default.getPages().find(function(t) {
return t.id === e
})
}).filter(Boolean);
if (s.length === S.default.getPages().count()) return void this.maybeResetDragging();
s.length ? N.default.detachPage(s, i, a) : (this.maybeResetDragging(), console.warn("Dropped Page(s) does not exist:", s.ids))
}
setTimeout(function() {
return r.maybeResetDragging()
}, 100)
}
}
}, {
key: "clearForceHover",
value: function() {
null !== this.state.freeze && this.setState({
freeze: Object.assign({}, this.state.freeze, {
nextId: -1
})
})
}
}, {
key: "getTabConfig",
value: function(e, t, n, i, a, r) {
var s = {
flex: 1,
zIndex: 0
};
return t ? (s.maxWidth = oe, s.maxHeight = le, s.minHeight = le, n && (s.minWidth = ue), i && (s.minWidth = Ae, s.maxWidth = Ae)) : (s.maxWidth = 260, s.maxHeight = ue, s.minHeight = ue, r && (s.maxHeight = le), n && (s.minHeight = ue), i && (s.minHeight = Ae, s.maxHeight = Ae), a && (s.minHeight = ue + de)), s
}
}, {
key: "createFlexBoxLayout",
value: function(e, t, n, i, a) {
var r = this,
s = "row" === t,
o = {
style: {
flexDirection: t,
width: n,
height: i
},
children: e.toArray().reduce(function(e, t) {
var n = t.page.pinned,
i = t.page.active,
o = a.tabStackingEnabled && "group" === t.type,
l = r.getTabConfig(t, s, i, n, o, a.isThumb);
a.freeze && !n && (l.width = l.maxWidth = l.minWidth = a.freeze.width, l.height = l.maxHeight = l.minHeight = a.freeze.height);
var c = r.state,
u = c.isDragging,
A = c.draggedSet,
d = c.draggedActive;
u && d && d.id !== t.page.id && A.find(function(e) {
return e.id === t.page.id
}) && (l.width = l.maxWidth = l.minWidth = 0, l.height = l.maxHeight = l.minheight = 0);
var h = !o && a.isHiddenForDrag.has(t.page.id),
m = o && t.pages.every(function(e) {
return a.isHiddenForDrag.has(e.id)
});
(h || m) && (l.width = l.maxWidth = l.minWidth = 0, l.height = l.maxHeight = l.minheight = 0);
var p = a.yieldBefore === t.page.id;
p && e.push({
type: "blank",
style: Object.assign({}, r.getTabConfig(t, s, i, !1, o, a.isThumb))
}), e.push({
type: "tab",
tab: t,
style: l
});
var f = a.yieldAfter === t.page.id;
return f && e.push({
type: "blank",
style: Object.assign({}, r.getTabConfig(t, s, i, !1, o, a.isThumb))
}), e
}, []).concat({
type: "button",
style: {
width: 30,
height: 30,
alignSelf: s ? "flex-end" : "center"
}
})
};
return (0, R.default)(o), o
}
}, {
key: "getTabStyle",
value: function(e, t, n, i, a) {
var r = this,
s = this.state,
l = s.mouse,
c = s.draggedActive,
A = s.draggedSet,
d = s.isDragging,
h = s.hovered,
m = s.yieldOver,
p = e.getIn(["page", "id"]),
g = c && c.id === p,
_ = h === p || m === p,
v = d && g,
b = d && !v && A.find(function(e) {
return e.id === p
}),
N = e.id,
E = {
type: "tab",
tab: e,
zIndex: 1
};
if (v) return {
key: N,
data: Object.assign(E, {
type: "tab",
tab: e,
zIndex: this.state.draggedSet.count() + 2
}),
style: {
x: l[0],
y: l[1],
width: t.width,
height: t.height,
brightness: 1,
contrast: 1,
opacity: .9
}
};
if (!b) {
var S = e.id,
T = {
type: "tab",
tab: e,
zIndex: g ? 2 : 1
},
y = {
x: o(t.left, he),
y: o(t.top, he),
width: "column" === i ? t.width : o(t.width, he),
height: "row" === i ? t.height : o(t.height, he),
brightness: _ ? o(.6, me) : o(1, me),
contrast: _ ? o(2, me) : o(1, me),
opacity: b ? o(.9, me) : o(1, me)
};
return {
key: S,
data: T,
style: y
}
}
var C = function() {
var t = r.state.draggedSet.toList().sort(function(e, t) {
return e.id === (c && c.id) ? -1 : e.index < t.index ? -1 : 1
}),
n = t.findIndex(function(e) {
return e.id === p
}) - 1,
s = t.get(n).id,
l = a.find(function(e) {
return e.key === s
});
if (l) return {
v: Object.assign({}, l, {
key: N,
data: Object.assign({}, l.data, {
type: "tab",
tab: e,
zIndex: r.state.draggedSet.count() - n
}),
styles: Object.assign({}, l.styles, {
x: o(l.x + ("row" === i ? 4 : 0), f.presets.wobbly),
y: o(l.y + ("column" === i ? 4 : 0), f.presets.wobbly)
})
})
}
}();
return "object" === ("undefined" == typeof C ? "undefined" : u(C)) ? C.v : void 0
}
}, {
key: "getStyles",
value: function(e) {
var t = this,
n = this.createFlexBoxLayout(this.props.tabs, this.props.direction, this.props.maxWidth, this.props.maxHeight, {
isHiddenForDrag: this.state.isHiddenForDrag,
freeze: this.state.freeze,
yieldBefore: this.state.yieldBefore,
yieldAfter: this.state.yieldAfter,
tabStackingEnabled: "on" === this.props.settings.TAB_STACKING,
isThumb: this.props.settings.TAB_THUMBNAILS_ENABLED
}),
i = n.children.map(function(n, i) {
var a = n.layout,
r = n.tab;
switch (n.type) {
case "tab":
return t.getTabStyle(r, a, i, t.props.direction, e);
case "blank":
return {
key: "space-" + i,
data: {
type: "space",
zIndex: 0
},
style: {
x: a.left,
y: a.top,
width: a.width,
height: a.height
}
};
case "button":
return {
key: "button",
data: {
type: "button",
zIndex: 0
},
style: {
x: a.left,
y: a.top,
width: a.width,
height: a.height
}
};
default:
console.warn("Unknown Element", n.type)
}
}).filter(Boolean);
return this.state.isDragging !== !1 || this.state.isYielding || i.forEach(function(e) {
return e.style = (0, G.default)(e.style), e
}), i
}
}, {
key: "render",
value: function() {
var e = this;
return this.props.maxWidth <= 0 || this.props.maxHeight <= 0 ? null : h.default.createElement(f.TransitionMotion, {
ref: "tabs",
styles: this.getStyles,
children: function(t) {
return h.default.createElement("div", {
className: e.props.className,
onDragEnter: e.onDragEnterHandler,
onDragLeave: e.onDragLeaveHandler,
onDragOver: e.onDragOverHandler,
onDrop: e.onDropHandler,
__source: {
fileName: l,
lineNumber: 1463
}
}, t.map(function(t) {
var i = t.style,
a = i.x,
r = i.y,
s = i.width,
o = i.height,
c = {
left: a,
top: r,
width: s,
height: o,
zIndex: t.data.zIndex,
WebkitFilter: "brightness(" + t.style.brightness + ") " + ("contrast(" + t.style.contrast + ") ") + ("opacity(" + t.style.opacity + ")")
};
if ("tab" === t.data.type) {
var u = t.data.tab,
A = u.get("page"),
d = "on" === e.props.settings.TAB_STACKING,
m = "group" === u.get("type"),
p = Boolean(e.state.isDragging && e.state.draggedActive && e.state.draggedActive.id === A.id),
f = Boolean(!e.props.settings.USE_TOOLTIP || e.state.isDragging || !e.state.isHiddenForDrag.isEmpty());
return h.default.createElement(I.default, {
key: t.key,
id: A.id,
disabled: f,
pointerEvents: d && m ? "auto" : "none",
placement: pe(e.props.tabPosition),
appearDelay: re,
disappearDelay: d ? re : 1,
content: e.props.getTooltipContent,
context: A,
__source: {
fileName: l,
lineNumber: 1498
}
}, h.default.createElement("div", {
className: "tab-position",
style: c,
onMouseDown: e.handleMouseDown.bind(e, A, a, r),
onClick: e.handleClick.bind(e, A),
onDoubleClick: e.handleDoubleClick.bind(e, A),
onTouchStart: e.handleTouchStart.bind(e, A, a, r),
onMouseUp: e.handleTabClickMouseUp.bind(e, A),
__source: {
fileName: l,
lineNumber: 1509
}
}, h.default.createElement(y.default, {
id: "tab-" + t.key,
key: t.key,
page: A,
stack: "group" === u.get("type") ? u.get("pages") : (0, J.List)(),
isDragged: p,
isExpectingDrop: e.state.isExpectingDrop,
isSelecting: e.props.isSelecting,
pageSelection: e.props.pageSelection,
isHiddenForDrag: e.state.isHiddenForDrag,
smallTab: t.style.width <= ce,
highlightId: d && u.get("page").id,
direction: e.props.direction,
settings: e.props.settings,
forceHover: Boolean(e.state.freeze && e.state.freeze.nextId === A.id),
clearForceHover: e.clearForceHover,
setIsHiddenForDrag: e.setIsHiddenForDrag,
closePage: e.closeAndFreeze,
selectTab: e.props.selectTab,
onDragLeave: e.onDragLeaveHandler,
droppedTabHandler: e.droppedTabHandler,
handleTabPosition: e.handleTabPosition,
reopenClosedTab: e.props.reopenClosedTab,
__source: {
fileName: l,
lineNumber: 1519
}
})))
}
return "space" === t.data.type ? h.default.createElement("div", {
key: t.key,
className: "tab-yield-space tab-position",
style: c,
onDragEnter: e.onDragEnterHandler,
onDragLeave: e.onDragLeaveHandler,
onDragOver: e.onDragOverHandler,
onDrop: e.onDropHandler,
__source: {
fileName: l,
lineNumber: 1550
}
}) : "button" === t.data.type ? h.default.createElement("button", {
key: t.key,
style: c,
className: "button-tabbar newtab",
tabIndex: e.props.settings.KEY_ACCESS,
onDragEnter: e.onDragEnterHandler,
onDragLeave: e.onDragLeaveHandler,
onDragOver: e.onDragOverHandler,
onDrop: e.onDropHandler,
onClick: e.createTab,
onDoubleClick: e.cancelEvent,
title: (0, te.default)("Open a new tab"),
dangerouslySetInnerHTML: {
__html: n(1021)
},
__source: {
fileName: l,
lineNumber: 1561
}
}) : void 0
}))
},
__source: {
fileName: l,
lineNumber: 1458
}
})
}
}]), i
}(h.default.Component);
ge.displayName = "TabStrip", e.exports = ge
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_723
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/tabs/Trash.jsx",
a = n(1),
r = n(9),
s = n(15),
o = n(17),
l = n(168),
c = n(174),
u = n(2),
A = n(5),
d = n(26),
h = n(30),
m = n(73),
p = m.tabToPage,
f = a.createClass({
displayName: "Trash",
mixins: [r],
getInitialState: function() {
return {
trash: c.getTrash(),
showTrashContextMenu: null,
isDragOver: !1
}
},
componentWillMount: function() {
c.addChangeListener(this.onTrashStoreChange)
},
componentWillUnmount: function() {
c.removeChangeListener(this.onTrashStoreChange)
},
onTrashStoreChange: function() {
this.setState({
trash: c.getTrash()
})
},
emptyTrash: function() {
l.emptyTrash()
},
undeleteTab: function(e) {
l.undelete(e)
},
undeleteWindow: function(e) {
l.restoreWindow(e)
},
trimTitle: function(e) {
return e.length > 70 && (e = e.substring(0, 70) + "..."), e
},
_tabToTitle: function(e) {
var t = p(e),
n = t.getIn(["extData", "historyCount"]),
i = n && n - 1;
return n && i ? u("$2 ($1 More in History)", "$2 ($1 More in History)", [i, this.trimTitle(e.title)]) : this.trimTitle(t.title)
},
onMouseUp: function(e) {
1 === e.button && 0 === e.buttons && this.onClick(e)
},
onClick: function(e) {
if (1 === e.button) {
if (e.stopPropagation(), this.state.trash.length > 0) {
var t = this.state.trash[0];
t.tab ? this.undeleteTab(t.tab) : t.window && this.undeleteWindow(t.window)
}
} else {
var n = this.getContextMenuHandler();
n && n(e)
}
},
onDoubleClick: function(e) {
e.stopPropagation()
},
onContextMenu: function(e) {
var t = this.getContextMenuHandler();
t ? t(e) : e.stopPropagation()
},
getContextMenuHandler: function() {
var e = this;
if (0 === this.state.trash.length) return null;
var t = this.state.trash.map(function(t, n) {
if (t.tab) {
var i = t.tab;
return {
mnemonic: !1,
name: e._tabToTitle(i),
url: i.url,
handler: e.undeleteTab.bind(e, i)
}
}
if (t.window) {
var a = t.window;
return Object.assign({
items: [Object.assign({
handler: e.undeleteWindow.bind(e, a)
}, h("All"))].concat(a.tabs.map(function(t) {
return {
mnemonic: !1,
name: e.trimTitle(t.title),
url: t.url,
handler: e.undeleteTab.bind(e, t)
}
}))
}, h("Window with $1 Tab", "Window with $1 Tabs", [a.tabs.length]))
}
}).filter(Boolean).concat([{
name: "---"
}, Object.assign({
handler: l.emptyTrash
}, h("Clear All"))]);
return d(t, null, "bottom", this.refs.trashButton)
},
dragEnterHandler: function(e) {
e.preventDefault(), e.stopPropagation(), this.setState({
isDragOver: !0
})
},
dragLeaveHandler: function(e) {
e.preventDefault(), e.stopPropagation(), this.setState({
isDragOver: !1
})
},
dragOverHandler: function(e) {
e.preventDefault(), e.stopPropagation()
},
dropHandler: function(e) {
e.preventDefault(), e.stopPropagation(), this.setState({
isDragOver: !1
});
var t = e.dataTransfer.getData("vivaldi/x-tab-entries");
JSON.parse(t).ids.map(function(e) {
return parseInt(e)
}).map(function(e) {
return o.getPages().find(function(t) {
return t.id === e
})
}).filter(Boolean).forEach(s.closePage)
},
render: function() {
var e = A({
"button-tabbar": !0,
"toggle-trash": !0,
"trash-is-empty": 0 === this.state.trash.length,
dragOver: this.state.isDragOver
});
return a.createElement("div", {
className: "trash",
__source: {
fileName: i,
lineNumber: 196
}
}, a.createElement("button", {
ref: "trashButton",
className: e,
tabIndex: this.props.keyAccess,
onMouseUp: this.onMouseUp,
onClick: this.onClick,
onDoubleClick: this.onDoubleClick,
onContextMenu: this.onContextMenu,
onDragEnter: this.dragEnterHandler,
onDragLeave: this.dragLeaveHandler,
onDragExit: this.dragLeaveHandler,
onDragOver: this.dragOverHandler,
onDrop: this.dropHandler,
title: u("Trash"),
dangerouslySetInnerHTML: {
__html: n(1022)
},
__source: {
fileName: i,
lineNumber: 198
}
}))
}
});
e.exports = f
}, function(e, t, n) {
// =========================
// Function_724
// =========================
(function(t) {
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/tooltip/Tooltip.jsx",
a = n(1),
r = n(11),
s = n(9),
o = n(132),
l = n(768),
c = n(5),
u = 4,
A = function() {
var e = document.getElementById("vivaldi-tooltip");
if (!e) {
e = document.createElement("div"), e.id = "vivaldi-tooltip";
var t = document.getElementById("app");
t && t.appendChild(e)
}
return e
};
l.addChangeListener(function() {
l.allHidden() && r.unmountComponentAtNode(A())
});
var d = a.createClass({
mixins: [s],
displayName: "Tooltip",
static: {
removeTimoutId: null
},
getDefaultProps: function() {
return {
appearDelay: 200,
disabled: !1
}
},
getInitialState: function() {
return {
show: l.getShowTooltip(this.props.id),
isDraggingOver: !1
}
},
componentWillMount: function() {
l.addChangeListener(this._onStoreChange)
},
componentWillUnmount: function() {
l.removeChangeListener(this._onStoreChange), t.nextTick(o.hideTooltip.bind(o, this.props.id))
},
componentDidMount: function() {
this.target = A(), this.renderToolTip()
},
componentDidUpdate: function() {
this.renderToolTip()
},
componentWillReceiveProps: function(e) {
var n = this;
!this.props.disabled && e.disabled && t.nextTick(function() {
return o.hideTooltip(n.props.id)
})
},
_onStoreChange: function() {
this.setState({
show: l.getShowTooltip(this.props.id)
})
},
onDragEnter: function() {
o.hideTooltip(this.props.id, 0), this.setState({
isDraggingOver: !0
})
},
onDragLeave: function() {
this.setState({
isDraggingOver: !1
})
},
onMouseEnter: function() {
if (!this.props.disabled && !this.state.isDraggingOver) {
var e = l.allHidden() ? this.props.appearDelay : 0;
o.showTooltip(this.props.id, e)
}
},
onMouseLeave: function() {
this.props.disabled || o.hideTooltip(this.props.id, this.props.disappearDelay)
},
tooltipIsOpen: function() {
return Boolean(this.target && this.target.firstChild && this.target.firstChild.classList.contains("tooltip"))
},
getPosition: function(e, t) {
var n = r.findDOMNode(this).firstChild.getBoundingClientRect(),
i = void 0,
a = void 0;
if ("above" === this.props.placement) {
var s = n.left + n.width / 2;
i = s - e / 2, a = n.top - t - u
} else if ("after" === this.props.placement) i = n.left + n.width + u, a = n.top;
else if ("before" === this.props.placement) i = n.left - e - u, a = n.top;
else {
var o = n.left + n.width / 2;
i = o - e / 2, a = n.top + n.height + u
}
return i < 0 && (i = 0), a < 0 && (a = 0), i + e > window.innerWidth && (i -= i + e - window.innerWidth), a + t > window.innerHeight && (a -= a + t - window.innerHeight), {
positionLeft: i,
positionTop: a
}
},
renderToolTip: function() {
if (this.state.show && this.isMounted()) {
var e;
e = "after" === this.props.placement || "before" === this.props.placement ? "top 150ms" : "left 150ms";
var t = this.props.content(this.props.context),
n = t.width,
s = t.height,
o = t.content,
l = this.getPosition(n, s),
u = l.positionLeft,
A = l.positionTop,
d = {
left: u,
top: A,
pointerEvents: this.props.pointerEvents,
width: n,
height: s,
transition: e
},
h = c(this.props.className, {
tooltip: !0
});
r.render(a.createElement("div", {
className: h,
style: d,
onMouseEnter: this.onMouseEnter,
onMouseLeave: this.onMouseLeave,
__source: {
fileName: i,
lineNumber: 191
}
}, o), this.target)
}
},
render: function() {
var e = a.Children.only(this.props.children);
return a.createElement("span", {
onDragEnter: this.onDragEnter,
onDragLeave: this.onDragLeave,
onMouseEnter: this.onMouseEnter,
onMouseLeave: this.onMouseLeave,
__source: {
fileName: i,
lineNumber: 202
}
}, e)
}
});
e.exports = d
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_725
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/BlockedContentNotificator.jsx",
a = n(1),
r = n(111),
s = n(95),
o = n(5),
l = n(2),
c = a.createClass({
displayName: "BlockedContentNotificator",
propTypes: {
page: a.PropTypes.object
},
onNotificatorClicked: function() {
r.getActiveWebView().allowBlockedInsecureContent(), s.resetPageHasBlockedContent(this.props.page)
},
render: function() {
var e = {
"button-addressfield": !0,
"permission-popup": !0,
"is-blocking": !0
},
t = a.createElement("button", {
className: o(e),
onClick: this.onNotificatorClicked,
title: l("Content from unauthenticated sources has been blocked. Click to allow loading."),
dangerouslySetInnerHTML: {
__html: n(986)
},
__source: {
fileName: i,
lineNumber: 39
}
});
return a.createElement("div", {
className: "popupblocker addressfield-popup-container",
__source: {
fileName: i,
lineNumber: 47
}
}, t)
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_726
// =========================
"use strict";
var i = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
},
a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/SiteInfoButton.jsx",
r = n(1),
s = n(111),
o = n(7),
l = o.omit,
c = n(9),
u = n(2),
A = n(10),
d = r.createClass({
displayName: "SiteInfoButton",
mixins: [c],
doActionShowPageInfo: function(e) {
var t = this;
s.getActiveWebView() && A.zoom.getVivaldiUIZoom(function(e) {
var n = t.refs.siteInfoButton,
i = n.getBoundingClientRect(),
a = i.left,
r = i.top;
a *= e, r *= e;
var o = n.offsetWidth * e,
l = n.offsetHeight * e,
c = a + window.screenX + Math.round(o / 2),
u = r + window.screenY + l;
s.getActiveWebView().showPageInfo({
left: Math.floor(c),
top: Math.floor(u)
})
})
},
render: function() {
var e = "internal";
this.props.isEditingUrl || (e = "security_error" === this.props.sslState ? "insecure" : "http_show_warning" === this.props.sslState ? "warning" : "secure_no_ev" === this.props.sslState ? "secure" : "secure_with_ev" === this.props.sslState ? "certified" : this.props.isInternal ? "internal" : "web");
var t = l(this.props, ["isEditingUrl", "isInternal", "sslIssuer", "sslState"]);
return r.createElement("button", i({
ref: "siteInfoButton",
className: "button-addressfield addressfield-siteinfo " + e,
title: u("Site info"),
onClick: this.doActionShowPageInfo
}, t, {
__source: {
fileName: a,
lineNumber: 61
}
}), r.createElement("div", {
className: "siteinfo-symbol",
__source: {
fileName: a,
lineNumber: 68
}
}, r.createElement("svg", {
height: "16",
width: "16",
viewBox: "0 0 16 16",
xmlns: "http://www.w3.org/2000/svg",
__source: {
fileName: a,
lineNumber: 70
}
}, ("web" === e || "warning" === e) && r.createElement("g", {
__source: {
fileName: a,
lineNumber: 77
}
}, r.createElement("path", {
d: "M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1m0 2a5 5 0 1 1 0 10A5 5 0 0 1 8 3",
__source: {
fileName: a,
lineNumber: 78
}
}), r.createElement("path", {
d: "M11 10.6v.4l-.5 1a1.3 1.3 0 0 1-.2.5L8.6 14v.2h.2c.2 0 .2 0 .2.2 0 0 0 .2-.2.2H8a.2.2 0 0 1-.2-.2v-2.2s0-.2.2-.2h.2a.2.2 0 0 0 .2-.3v-.2a.2.2 0 0 0-.2-.2H8a.2.2 0 0 1-.2-.2v-1a.2.2 0 0 0-.2 0h-.4a.7.7 0 0 1-.3 0L5 9a1.2 1.2 0 0 1-.3-.3l-.5-1a.4.4 0 0 0-.4 0A.4.4 0 0 1 4 7l-.4-1a1 1 0 0 1 0-.4V5s-.2-.3-.3 0H3a6 6 0 0 1 4.6-3v1.2l.5.3h1v2s0 .4.4.4h.3-1A.7.7 0 0 0 8 6l-.2.5a.5.5 0 0 0 0 .4v1h-.3a.2.2 0 0 1-.3 0V7a.2.2 0 0 0 0-.2h-.7a.2.2 0 0 0-.2.3v1a.5.5 0 0 0 .3.7L7 9a.7.7 0 0 0 .5.2h1.7l1.8 1v.4zm-.4-6.2a.7.7 0 0 1-.4 0 .2.2 0 0 1-.2 0v-.8a.2.2 0 0 0-.3-.2h-.3a.2.2 0 0 1-.2-.2v-1c1 0 2 .5 2.7 1 0 .2-2 1.2-2 1.2z",
__source: {
fileName: a,
lineNumber: 79
}
})), ("secure" === e || "certified" === e) && r.createElement("path", {
d: "M12.2 6.7C12.2 4 10.5 2 8 2 5.8 2 3.8 4 3.8 6.7V7H3v7h10V7h-.8v-.3zM10.7 8H5.3V6.7c0-1.7 1.4-3 2.8-3 1.7 0 2.8 1.3 2.8 3V8z",
__source: {
fileName: a,
lineNumber: 83
}
}), "insecure" === e && r.createElement("path", {
d: "M5.4 7v-.7c0-1.4 1-2.6 2.4-2.6 1 0 1-1.7 0-1.7h-.2c-2 0-3.8 2-3.8 4.3V7H3v7h10V7H5.4z",
__source: {
fileName: a,
lineNumber: 86
}
}), "internal" === e && r.createElement("path", {
d: "M10.4 5c-.4-.8 0-1.8 1-2 .7 0 1.5.4 1.6 1.2a1.4 1.4 0 0 1-.2 1l-4 7c-.3.5-.7.8-1.2.8-.6 0-1-.2-1.3-.7L3.8 7.8 2.2 5c-.5-.8 0-2 1-2 .7 0 1 .2 1.4.7l1 2 1 1.4a2 2 0 0 0 1.7 1.5 2.2 2.2 0 0 0 2.3-2V6c0-.3 0-.6-.2-1z",
__source: {
fileName: a,
lineNumber: 89
}
}))), "certified" === e && r.createElement("span", {
className: "siteinfo-text",
__source: {
fileName: a,
lineNumber: 95
}
}, this.props.sslIssuer), "warning" === e && r.createElement("span", {
className: "siteinfo-text",
__source: {
fileName: a,
lineNumber: 101
}
}, u("Not Secure")))
}
});
e.exports = d
}, function(e, t, n) {
// =========================
// Function_727
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/locationPermissionDialog.jsx",
a = n(1),
r = n(9),
s = n(2),
o = n(7),
l = n(39),
c = n(15),
u = n(241),
A = a.createClass({
displayName: "LocationPermissionDialog",
mixins: [l, r],
propTypes: {
onDialogClosed: a.PropTypes.func,
isBlocking: a.PropTypes.bool,
isDecided: a.PropTypes.bool,
onPermissionClicked: a.PropTypes.func,
url: a.PropTypes.string
},
handleClickOutside: function(e) {
this.props.onDialogClosed()
},
getTitle: function() {
return this.props.isDecided ? this.props.isBlocking ? s("Website “$1” has been denied location access.", [this.props.url]) : s("Website “$1” is accessing your location.", [this.props.url]) : s("Website “$1” would like to access your location.", [this.props.url])
},
_privacyNotice: function() {
c.openURL("https://location.services.mozilla.com/privacy")
},
change: function() {
c.openURL("chrome://settings/contentExceptions#location")
},
renderAllowDenyQuery: function() {
return a.createElement("section", {
__source: {
fileName: i,
lineNumber: 46
}
}, a.createElement("div", {
className: "geo-notice",
__source: {
fileName: i,
lineNumber: 47
}
}, a.createElement("a", {
href: "",
title: "Mozilla Location Service Privacy Notice",
onClick: this._privacyNotice,
__source: {
fileName: i,
lineNumber: 48
}
}, "Privacy Notice")), a.createElement("input", {
type: "button",
disabled: this.props.isAsking === !1,
onClick: o.partial(this.props.onPermissionClicked, !1),
value: s("Allow"),
__source: {
fileName: i,
lineNumber: 53
}
}), a.createElement("input", {
type: "button",
className: "primary",
onClick: o.partial(this.props.onPermissionClicked, !0),
value: s("Deny"),
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 54
}
}))
},
render: function() {
return a.createElement("section", {
className: "addressfield-popup",
__source: {
fileName: i,
lineNumber: 61
}
}, a.createElement("header", {
className: "addressfield-popup-header",
__source: {
fileName: i,
lineNumber: 62
}
}, a.createElement("h1", {
__source: {
fileName: i,
lineNumber: 63
}
}, this.getTitle())), a.createElement("section", {
className: "addressfield-popup-content",
__source: {
fileName: i,
lineNumber: 65
}
}, this.props.isDecided === !1 && this.renderAllowDenyQuery() || a.createElement(u, {
onDialogClosed: this.props.onDialogClosed,
onChange: this.change,
__source: {
fileName: i,
lineNumber: 68
}
})))
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_728
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/locationPermissionNotificator.jsx",
a = n(1),
r = n(9),
s = n(727),
o = n(95),
l = n(5),
c = a.createClass({
displayName: "LocationPermissionNotificator",
mixins: [r],
propTypes: {
page: a.PropTypes.object,
request: a.PropTypes.object
},
getInitialState: function() {
return {
isDialogOpen: null === this.props.request.get("blocked")
}
},
componentWillReceiveProps: function(e) {
null === this.props.request.get("blocked") && null === e.request.get("blocked") && this.setState({
isDialogOpen: !0
})
},
onNotificatorClicked: function(e) {
this.setState({
isDialogOpen: !this.state.isDialogOpen
})
},
onDialogClosed: function() {
this.setState({
isDialogOpen: !1
})
},
onPermissionClicked: function(e) {
var t = this.props.request.get("requestEvent");
e === !1 ? t.allow() : t.deny(), this.onDialogClosed(), o.setPermission(this.props.page, "geolocation", t, e)
},
render: function() {
var e = null === this.props.request.get("blocked") || this.props.request.get("blocked"),
t = {
"ignore-react-onclickoutside": !0,
"button-addressfield": !0,
"permission-location": !0,
"is-allowing": !e,
"is-blocking": e,
"is-dialog-open": this.state.isDialogOpen
},
r = null;
return this.state.isDialogOpen === !0 && (r = a.createElement(s, {
url: this.props.request.get("requestEvent").url,
onPermissionClicked: this.onPermissionClicked,
isBlocking: e,
isDecided: null !== this.props.request.get("blocked"),
onDialogClosed: this.onDialogClosed,
__source: {
fileName: i,
lineNumber: 63
}
})), a.createElement("div", {
className: "locationpermission addressfield-popup-container",
__source: {
fileName: i,
lineNumber: 74
}
}, a.createElement("button", {
className: l(t),
onClick: this.onNotificatorClicked,
dangerouslySetInnerHTML: {
__html: n(987)
},
__source: {
fileName: i,
lineNumber: 75
}
}), r)
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_729
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/mediaPermissionDialog.jsx",
a = n(1),
r = n(9),
s = n(2),
o = n(7),
l = n(39),
c = n(15),
u = n(241),
A = a.createClass({
displayName: "MediaPermissionDialog",
mixins: [l, r],
propTypes: {
url: a.PropTypes.string,
onDialogClosed: a.PropTypes.func,
onPermissionClicked: a.PropTypes.func,
isDecided: a.PropTypes.bool,
isBlocking: a.PropTypes.bool
},
handleClickOutside: function(e) {
this.props.onDialogClosed()
},
getTitle: function() {
return this.props.isDecided ? this.props.isBlocking ? s("Website “$1” has been denied camera access.", [this.props.url]) : s("Website “$1” is accessing your camera.", [this.props.url]) : s("Website “$1” would like to access your camera.", [this.props.url])
},
change: function() {
c.openURL("chrome://settings/contentExceptions#media-stream-camera")
},
renderAllowDenyQuery: function() {
return a.createElement("section", {
__source: {
fileName: i,
lineNumber: 40
}
}, a.createElement("input", {
type: "button",
className: "primary",
onClick: o.partial(this.props.onPermissionClicked, !1),
value: s("Allow"),
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 41
}
}), a.createElement("input", {
type: "button",
onClick: o.partial(this.props.onPermissionClicked, !0),
value: s("Deny"),
__source: {
fileName: i,
lineNumber: 46
}
}))
},
render: function() {
return a.createElement("div", {
className: "addressfield-popup",
__source: {
fileName: i,
lineNumber: 55
}
}, a.createElement("header", {
className: "addressfield-popup-header",
__source: {
fileName: i,
lineNumber: 56
}
}, a.createElement("h1", {
__source: {
fileName: i,
lineNumber: 57
}
}, this.getTitle())), a.createElement("div", {
className: "addressfield-popup-content",
__source: {
fileName: i,
lineNumber: 59
}
}, this.props.isDecided === !1 && this.renderAllowDenyQuery() || a.createElement(u, {
onDialogClosed: this.props.onDialogClosed,
onChange: this.change,
__source: {
fileName: i,
lineNumber: 63
}
})))
}
});
e.exports = A
}, function(e, t, n) {
// =========================
// Function_730
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/mediaPermissionNotificator.jsx",
a = n(1),
r = n(9),
s = n(729),
o = n(95),
l = n(5),
c = a.createClass({
displayName: "MediaPermissionNotificator",
mixins: [r],
propTypes: {
page: a.PropTypes.object,
request: a.PropTypes.object
},
getInitialState: function() {
var e = this.props.request.get("blocked");
return {
isDialogOpen: null === e
}
},
componentWillReceiveProps: function(e) {
null === this.props.request.get("blocked") && null === e.request.get("blocked") && this.setState({
isDialogOpen: !0
})
},
onNotificatorClicked: function(e) {
this.setState({
isDialogOpen: !this.state.isDialogOpen
})
},
onDialogClosed: function() {
this.setState({
isDialogOpen: !1
})
},
onPermissionClicked: function(e) {
var t = this.props.request.get("requestEvent");
e === !1 ? t.allow() : t.deny(), this.onDialogClosed(), o.setPermission(this.props.page, "media", t, e)
},
render: function() {
var e = null === this.props.request.get("blocked") || this.props.request.get("blocked"),
t = {
"ignore-react-onclickoutside": !0,
"button-addressfield": !0,
"permission-camera": !0,
"is-allowing": !e,
"is-blocking": e,
"is-dialog-open": this.state.isDialogOpen
},
r = null;
return this.state.isDialogOpen === !0 && (r = a.createElement(s, {
url: this.props.request.get("requestEvent").url,
onPermissionClicked: this.onPermissionClicked,
isBlocking: e,
isDecided: null !== this.props.request.get("blocked"),
onDialogClosed: this.onDialogClosed,
__source: {
fileName: i,
lineNumber: 64
}
})), a.createElement("div", {
className: "mediapermission addressfield-popup-container",
__source: {
fileName: i,
lineNumber: 75
}
}, a.createElement("button", {
className: l(t),
onClick: this.onNotificatorClicked,
dangerouslySetInnerHTML: {
__html: n(985)
},
__source: {
fileName: i,
lineNumber: 76
}
}), r)
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_731
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/navigateButton.jsx",
a = n(111),
r = n(173),
s = n(45),
o = n(15),
l = n(17),
c = n(9),
u = n(1),
A = n(2),
d = n(5),
h = n(26),
m = 750,
p = u.createClass({
displayName: "NavigateButton",
mixins: [c],
getInitialState: function() {
return {
currentIndex: -1,
timerId: 0
}
},
doMouseUp: function(e) {
if (clearTimeout(this.state.timerId), this.state.acceptMouseUp === !0) this.setState({
acceptMouseUp: !1
}), this.props.doAction();
else if (1 === e.button) switch (e.preventDefault(), this.props.type) {
case "Back":
this.openURLFromHistory(-1);
break;
case "Forward":
this.openURLFromHistory(1);
break;
case "Rewind":
var t = r.getRewindHistory(l.getActivePage());
t.length > 0 && o.openURL(t[0].url, {
inCurrent: !1,
inBackground: !0
})
}
},
doMouseDown: function(e) {
if ("-1" === this.props.keyAccess && e.preventDefault(), 0 === e.button) {
this.setState({
acceptMouseUp: !0
});
var t = setTimeout(function() {
this.setState({
acceptMouseUp: !1
}), this.showMenu(e, "bottom")
}.bind(this), m);
this.setState({
timerId: t
})
}
},
doKeyDown: function(e) {
e.keyCode === s.KEY_ESCAPE && (this.setState({
acceptMouseUp: !1
}), clearTimeout(this.state.timerId))
},
showContextMenu: function(e) {
e.persist(), e.preventDefault(), e.stopPropagation(), this.showMenu(e, "bottom")
},
showMenu: function(e, t) {
var n = this,
i = void 0;
! function() {
switch (n.props.type) {
case "Back":
case "Forward":
a.getActiveWebView().getPageHistory(function(n, a) {
var r = n;
"Back" === this.props.type ? (a = a.slice(0, n), a = a.reverse()) : "Forward" === this.props.type && (a = a.slice(n + 1));
var s = 0;
i = a.map(function(e) {
var t = a[s].index - r;
return {
name: e.name,
url: e.url,
handler: this.onMenuActivated.bind(this, t),
id: s++,
mnemonic: !1
}
}.bind(this)), h(i, null, t, this.refs.button, null)(e)
}.bind(n));
break;
case "Rewind":
var s = r.getRewindHistory(l.getActivePage()),
o = r.getRewindIndexes(l.getActivePage());
i = s.map(function(e, t) {
return {
name: e.name,
url: e.url,
handler: n.onMenuActivated.bind(n, o[t] * -1),
id: t,
mnemonic: !1
}
}), h(i, null, t, n.refs.button, null)(e);
break;
default:
throw new Error("Tried to create an unknown navigation button. Must be 'Back', 'Forward' or 'Rewind'.")
}
}()
},
openURLFromHistory: function(e) {
a.getActiveWebView().getPageHistory(function(t, n) {
var i = t + e;
(i >= 0 || i < n.length) && o.openURL(n[i].url, {
inCurrent: !1,
inBackground: !0
})
}.bind(this))
},
onMenuActivated: function(e) {
a.getActiveWebView().go(e)
},
render: function() {
var e = d({
"button-toolbar": !0,
back: "Back" === this.props.type,
forward: "Forward" === this.props.type,
rewind: "Rewind" === this.props.type
}),
t = void 0,
a = void 0;
if ("Back" === this.props.type) t = n(214), a = A("Go to previous page") + "\n" + A("Hold for history list");
else if ("Forward" === this.props.type) t = n(215), a = A("Go to next page") + "\n" + A("Hold for forward history list");
else {
if ("Rewind" !== this.props.type) throw new Error("Tried to create an unknown navigation button. Must be 'Back', 'Forward' or 'Rewind'.");
t = n(470), a = A("Rewind by visited domain") + "\n" + A("Hold for history domain list")
}
return u.createElement("button", {
className: e,
ref: "button",
onContextMenu: this.showContextMenu,
disabled: !this.props.canNavigate,
title: a,
tabIndex: this.props.keyAccess,
onMouseUp: this.doMouseUp,
onMouseDown: this.doMouseDown,
onKeyDown: this.doKeyDown,
dangerouslySetInnerHTML: {
__html: t
},
__source: {
fileName: i,
lineNumber: 190
}
})
}
});
e.exports = p
}, function(e, t, n) {
// =========================
// Function_732
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/notificationPermissionDialog.jsx",
a = n(1),
r = n(9),
s = n(2),
o = n(39),
l = n(15),
c = n(241),
u = a.createClass({
displayName: "NotificationPermissionDialog",
mixins: [o, r],
propTypes: {
onDialogClosed: a.PropTypes.func,
isBlocking: a.PropTypes.bool,
isDecided: a.PropTypes.bool,
onPermissionClicked: a.PropTypes.func,
url: a.PropTypes.string
},
handleClickOutside: function(e) {
this.props.onDialogClosed()
},
getTitle: function() {
return this.props.isDecided ? this.props.isBlocking ? s("Website “$1” has been denied showing notifications.", [this.props.url]) : s("Website “$1” is authorized to show notifications.", [this.props.url]) : s("Website “$1” would like to show notifications.", [this.props.url])
},
allow: function() {
this.props.onPermissionClicked(!1)
},
deny: function() {
this.props.onPermissionClicked(!0)
},
change: function() {
l.openURL("chrome://settings/contentExceptions#notifications")
},
renderAllowDenyQuery: function() {
return a.createElement("section", {
__source: {
fileName: i,
lineNumber: 49
}
}, a.createElement("input", {
type: "button",
disabled: this.props.isAsking === !1,
onClick: this.allow,
value: s("Allow"),
__source: {
fileName: i,
lineNumber: 50
}
}), a.createElement("input", {
type: "button",
className: "primary",
onClick: this.deny,
value: s("Deny"),
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 54
}
}))
},
render: function() {
return a.createElement("section", {
className: "addressfield-popup",
__source: {
fileName: i,
lineNumber: 64
}
}, a.createElement("header", {
className: "addressfield-popup-header",
__source: {
fileName: i,
lineNumber: 65
}
}, a.createElement("h1", {
__source: {
fileName: i,
lineNumber: 66
}
}, this.getTitle())), a.createElement("section", {
className: "addressfield-popup-content",
__source: {
fileName: i,
lineNumber: 68
}
}, this.props.isDecided === !1 && this.renderAllowDenyQuery() || a.createElement(c, {
onDialogClosed: this.props.onDialogClosed,
onChange: this.change,
__source: {
fileName: i,
lineNumber: 71
}
})))
}
});
e.exports = u
}, function(e, t, n) {
// =========================
// Function_733
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/notificationPermissionNotificator.jsx",
a = n(1),
r = n(9),
s = n(732),
o = n(95),
l = n(5),
c = a.createClass({
displayName: "NotificationPermissionNotificator",
mixins: [r],
propTypes: {
page: a.PropTypes.object,
request: a.PropTypes.object
},
getInitialState: function() {
return {
isDialogOpen: null === this.props.request.get("blocked")
}
},
componentWillReceiveProps: function(e) {
null === this.props.request.get("blocked") && null === e.request.get("blocked") && this.setState({
isDialogOpen: !0
})
},
onNotificatorClicked: function(e) {
this.setState({
isDialogOpen: !this.state.isDialogOpen
})
},
onDialogClosed: function() {
this.setState({
isDialogOpen: !1
})
},
onPermissionClicked: function(e) {
var t = this.props.request.get("requestEvent");
e === !1 ? t.allow() : t.deny(), this.onDialogClosed(), o.setPermission(this.props.page, "notifications", t, e)
},
render: function() {
var e = null === this.props.request.get("blocked") || this.props.request.get("blocked"),
t = {
"ignore-react-onclickoutside": !0,
"button-addressfield": !0,
"is-allowing": !e,
"is-blocking": e,
"is-dialog-open": this.state.isDialogOpen
},
r = null;
return this.state.isDialogOpen === !0 && (r = a.createElement(s, {
url: this.props.request.get("requestEvent").url,
onPermissionClicked: this.onPermissionClicked,
isBlocking: e,
isDecided: null !== this.props.request.get("blocked"),
onDialogClosed: this.onDialogClosed,
__source: {
fileName: i,
lineNumber: 62
}
})), a.createElement("div", {
className: "addressfield-popup-container",
__source: {
fileName: i,
lineNumber: 73
}
}, a.createElement("button", {
className: l(t),
onClick: this.onNotificatorClicked,
dangerouslySetInnerHTML: {
__html: n(988)
},
__source: {
fileName: i,
lineNumber: 74
}
}), r)
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_734
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/popupblockerDialog.jsx",
a = n(1),
r = n(2),
s = n(39),
o = a.createClass({
displayName: "PopupBlockerDialog",
mixins: [s],
propTypes: {
onDialogClosed: a.PropTypes.func,
onShouldBlockClicked: a.PropTypes.func,
blockedPopups: a.PropTypes.object,
shouldBlockPopups: a.PropTypes.bool,
onPopupAllowed: a.PropTypes.func
},
getInitialState: function() {
return {}
},
handleClickOutside: function(e) {
this.props.onDialogClosed()
},
onAllowBlockedClicked: function(e, t) {
t.preventDefault(), this.props.onPopupAllowed(e)
},
renderItem: function(e) {
return a.createElement("a", {
className: "popupblocker-blocked-page",
onClick: this.onAllowBlockedClicked.bind(this, e),
key: e.targetUrl + e.timeStamp,
title: e.targetUrl,
href: e.targetUrl,
__source: {
fileName: i,
lineNumber: 31
}
}, e.targetUrl)
},
renderItems: function(e) {
var t = this;
return a.createElement("div", {
className: "popupblocker-blocked-pages",
__source: {
fileName: i,
lineNumber: 43
}
}, e.map(function(e) {
return t.renderItem(e)
}))
},
onShouldBlockClicked: function(e) {
this.props.onShouldBlockClicked(e)
},
renderAlwaysBlockQuery: function() {
return a.createElement("section", {
className: "dialog-footer",
__source: {
fileName: i,
lineNumber: 55
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 56
}
}, a.createElement("input", {
type: "radio",
name: "blocked",
value: "false",
defaultChecked: this.props.shouldBlockPopups !== !1,
onChange: this.onShouldBlockClicked.bind(this, !0),
__source: {
fileName: i,
lineNumber: 57
}
}), r("Block Pop-ups")), a.createElement("label", {
__source: {
fileName: i,
lineNumber: 62
}
}, a.createElement("input", {
type: "radio",
name: "blocked",
value: "true",
defaultChecked: this.props.shouldBlockPopups === !1,
onChange: this.onShouldBlockClicked.bind(this, !1),
__source: {
fileName: i,
lineNumber: 63
}
}), r("Always Allow")))
},
render: function() {
return this.props.blockedPopups.size > 0 ? a.createElement("div", {
tabIndex: "0",
className: "addressfield-popup",
__source: {
fileName: i,
lineNumber: 75
}
}, a.createElement("header", {
className: "addressfield-popup-header",
__source: {
fileName: i,
lineNumber: 77
}
}, a.createElement("h1", {
__source: {
fileName: i,
lineNumber: 78
}
}, r("Blocked Pop-up Pages"))), a.createElement("div", {
className: "addressfield-popup-content",
__source: {
fileName: i,
lineNumber: 80
}
}, this.renderItems(this.props.blockedPopups)), this.renderAlwaysBlockQuery()) : null
}
});
e.exports = o
}, function(e, t, n) {
// =========================
// Function_735
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/popupblockerNotificator.jsx",
a = n(1),
r = n(734),
s = n(4),
o = n(36),
l = n(5),
c = a.createClass({
displayName: "PopupBlockerNotificator",
mixins: [],
propTypes: {
url: a.PropTypes.string,
blockedPopups: a.PropTypes.object,
onPopupAllowed: a.PropTypes.func,
onDialogClosed: a.PropTypes.func
},
getInitialState: function() {
return {
isDialogOpen: !1,
shouldBlockPopups: !0
}
},
componentWillMount: function() {
this.props.url && s.contentSettings.popups.get({
primaryUrl: this.props.url
}, function(e) {
if (s.runtime.lastError) return void console.warn("ERROR getting content settings for popups. Original message:\n" + s.runtime.lastError.message);
if (e) {
var t = "allow" !== e.setting;
this.setState({
shouldBlockPopups: t
})
}
}.bind(this))
},
onNotificatorClicked: function(e) {
this.setState({
isDialogOpen: !this.state.isDialogOpen
})
},
onDialogClosed: function() {
this.setState({
isDialogOpen: !1
})
},
onShouldBlockClicked: function(e) {
var t = o.parse(this.props.url),
n = [t.protocol];
t.slashes && n.push("//"), n.push(t.host), n.push("/*");
var i = n.join("");
t = null, s.contentSettings.popups.set({
primaryPattern: i,
setting: e === !1 ? "allow" : "block"
}, function() {
this.setState({
shouldBlockPopups: e
})
}.bind(this))
},
render: function() {
var e = {
"button-addressfield": !0,
"permission-popup": !0,
"is-blocking": this.state.shouldBlockPopups === !0,
"is-allowing": this.state.shouldBlockPopups === !1,
"is-dialog-open": this.state.isDialogOpen
},
t = null;
this.state.isDialogOpen === !0 && (t = a.createElement(r, {
shouldBlockPopups: this.state.shouldBlockPopups,
onShouldBlockClicked: this.onShouldBlockClicked,
blockedPopups: this.props.blockedPopups,
onPopupAllowed: this.props.onPopupAllowed,
onDialogClosed: this.onDialogClosed,
__source: {
fileName: i,
lineNumber: 84
}
}));
var s = null;
return this.props.blockedPopups.size > 0 && (s = a.createElement("button", {
className: l(e),
onClick: this.onNotificatorClicked,
dangerouslySetInnerHTML: {
__html: n(989)
},
__source: {
fileName: i,
lineNumber: 96
}
})), a.createElement("div", {
className: "popupblocker addressfield-popup-container",
__source: {
fileName: i,
lineNumber: 103
}
}, s, t)
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_736
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/typedhistory.jsx",
a = n(1),
r = n(11),
s = n(9),
o = n(171),
l = n(65),
c = n(39),
u = n(2),
A = n(7),
d = n(5),
h = a.createClass({
displayName: "TypedHistory",
mixins: [s, c],
_ignoreMouseMove: !1,
handleClickOutside: function(e) {
l.hideTypedHistory()
},
onLinkItemClicked: function(e, t) {
this.props.onLinkItemClicked(e)
},
onSearchClicked: function() {
this.props.defaultSearchEngine && this.props.defaultSearchEngine.Url && this.props.onSearchClicked(this.props.pattern, this.props.defaultSearchEngine.Url)
},
getNumberOfSelectableItems: function() {
return this.props.results.length || 0
},
getCurrentValue: function(e) {
var t = r.findDOMNode(this);
if (t) {
if ("number" != typeof e) {
var n = t.querySelector(".highlight");
return n && n.dataset.url ? n.dataset.url : this.props.displayUrl
}
var i = t.querySelectorAll(".omni-clickable");
if (e >= 0 && e < i.length) return i[e].dataset.url
}
return ""
},
onDeleteHistoryItem: function(e, t) {
t.preventDefault(), t.stopPropagation(), l.deleteTypedHistory(e)
},
deleteCurrentItem: function() {
l.deleteTypedHistory(this.getCurrentValue(this.props.selectionIndex))
},
onMouseOver: function(e) {
if (!this._ignoreMouseMove) {
var t = A.findIndex(document.getElementsByClassName("omni-clickable"), function(t) {
return t === e.target.parentNode
});
t >= 0 && this.props.setAutocompleteHighlight(t, !1)
}
},
onScrolled: function(e) {
var t = this;
this._ignoreMouseMove = !0, setTimeout(function() {
return t._ignoreMouseMove = !1
}, 100)
},
renderLinkItem: function(e) {
var t = d({
"omni-clickable": !0,
highlight: this._linkItemCount === this.props.selectionIndex
});
return this._linkItemCount++, a.createElement("div", {
key: e.url,
"data-type": o.OMNI_TYPE_TYPED_HISTORY,
"data-url": e.url,
className: t,
onMouseUp: this.onLinkItemClicked.bind(this, e),
__source: {
fileName: i,
lineNumber: 103
}
}, a.createElement("img", {
className: "favicon",
src: "chrome://favicon/" + e.url,
__source: {
fileName: i,
lineNumber: 110
}
}), a.createElement("span", {
className: "title",
__source: {
fileName: i,
lineNumber: 111
}
}, e.url), a.createElement("span", {
className: "erase-from-history",
title: u("Delete history item"),
onMouseUp: this.onDeleteHistoryItem.bind(this, e.url),
dangerouslySetInnerHTML: {
__html: n(81)
},
__source: {
fileName: i,
lineNumber: 112
}
}))
},
renderResults: function(e) {
return a.createElement("section", {
className: "filter-typedhistory",
__source: {
fileName: i,
lineNumber: 124
}
}, a.createElement("label", {
__source: {
fileName: i,
lineNumber: 125
}
}, u("Typed history")), e.map(this.renderLinkItem))
},
render: function() {
return Array.isArray(this.props.results) && 0 !== this.props.results.length ? (this._linkItemCount = 0, a.createElement("div", {
className: "urlSearch",
onMouseOver: this.onMouseOver,
onScroll: this.onScrolled,
__source: {
fileName: i,
lineNumber: 140
}
}, this.renderResults(this.props.results))) : null
}
});
e.exports = h
}, function(e, t, n) {
// =========================
// Function_737
// =========================
(function(t) {
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/urlfield/urlbar.jsx",
a = n(1),
r = n(11),
s = n(725),
o = n(40),
l = n(585),
c = n(603),
u = n(129),
A = n(173),
d = n(133),
h = n(27),
m = n(728),
p = n(389),
f = n(730),
g = n(731),
_ = n(95),
v = n(112),
b = n(733),
N = n(380),
E = n(15),
S = n(647),
T = n(735),
y = n(649),
C = n(390),
I = n(726),
O = n(392),
w = n(132),
D = n(736),
k = n(136),
M = n(65),
L = n(97),
P = n(6),
R = n(3),
x = n(13),
B = n(55),
U = n(87),
F = n(2),
H = n(4),
V = n(5),
W = n(778),
G = n(90),
K = n(179),
j = n(7),
z = n(250),
Y = n(251),
J = n(36),
Q = n(20).urls,
Z = n(772),
q = Z.isPath,
X = Z.win32PathToFileUrl,
$ = n(51),
ee = $.isTrashed,
te = n(46),
ne = te.isValidURL,
ie = ["id", "favIcon", "favIconUrl", "url", "active", "title", "extData"],
ae = ["thumbnail"],
re = "Win32" === navigator.platform,
se = G("urlbar"),
oe = 2e3,
le = a.createClass({
displayName: "UrlBar",
mixins: [x],
vivaldiSettingsKeys: ["ADDRESS_BAR_AUTOCOMPLETE_ENABLED", "ADDRESS_BAR_AUTOCOMPLETE_PREFER_BOOKMARKS", "ADDRESS_BAR_AUTOCOMPLETE_TLD", "ADDRESS_BAR_CUTCOPY_ENCODED", "ADDRESS_BAR_OMNIDROPDOWN_ENABLED", "ADDRESS_BAR_SELECT_ON_CLICK", "ADDRESS_BAR_SHOW_FULL_URL", "ADDRESS_BAR_SUGGEST_ENABLED", "ADDRESS_BAR_SUGGEST_NICKNAME_ENABLED", "ADDRESS_BAR_URL_OPEN_SHORTCUT", "DEFAULT_SEARCH_ENGINE", "EXTENSIONS_TOOLBAR_TOGGLE_BUTTON_ENABLED", "EXTENSIONS_TOOLBAR_VISIBLE", "KEY_ACCESS", "SEARCH_FIELD_ENABLED", "SEARCH_FIELD_OPEN_NEW_TAB", "SEARCH_FIELD_SUGGEST_ENABLED", "SEARCH_FIELD_TYPED_HISTORY", "SHOW_ADDRESS_BAR", "SHOW_FFW_RWD_BUTTONS", "URLBAR_SEARCH_DISABLED", "URLFIELD_TYPED_HISTORY_ENABLED"],
getInitialState: function() {
var e = this.props.page;
return Object.assign({
page: e,
createBookmarkCallout: !1,
showOmniDropdown: !1,
focused: !1,
isBookmarked: !1,
isReaderableActive: !1,
isReaderable: !1,
searchEnginesCleaned: Array.isArray(this.props.searchEngines) ? W(this.props.searchEngines) : void 0
}, this.getUrlbarStoreState(e), this.getSearchFieldStoreState(e), this.getNavigationStoreState(e), this.getFastForwardStoreState(e))
},
shouldComponentUpdate: function(e, t) {
var n = function(e, t, n) {
var i = t[e],
a = n[e];
return !!(i === a || h.is(i, a) || "page" === e && ie.every(function(e) {
return "extData" === e ? ae.every(function(e) {
return h.is(i.getIn(["extData", e]), a.getIn(["extData", e]))
}) : h.is(i.get(e), a.get(e))
}))
};
return !Y(e, this.props, n) || !Y(t, this.state, n)
},
componentWillReceiveProps: function(e) {
var n = this,
i = e.page,
a = this.state.page.url !== i.url,
r = this.state.page.id !== i.id;
r && this.prepareNewPage(i), this.setState({
page: i
}, function() {
a && (n._setBookmarkedState(i.url), r || t.nextTick(function() {
M.clearUrlfieldState(i.id), _.resetPermissions(i)
}))
}), Array.isArray(e.searchEngines) && this.props.searchEngines !== e.searchEngines && this.setState({
searchEnginesCleaned: W(e.searchEngines)
})
},
componentDidUpdate: function(e, t, n) {
this.state.page.get("id") !== t.page.get("id") && this.updateFocus(this.state.page, !0)
},
componentWillMount: function() {
p.addChangeListener(this._onMainStoreChanged), U.addChangeListener(this._onWebpageviewStoreChanged), O.addChangeListener(this._onTabStoreChanged), L.addChangeListener(this._onUrlbarStoreChanged), C.addChangeListener(this._onSearchFieldStoreChanged), v.addChangeListener(this._onNavigationStoreChanged), A.addChangeListener(this._onFastForwardStoreChanged), this._setBookmarkedState(this.state.page.get("url")), this.onSearchAddTypedHistory = j.partialRight(this.onSearch, {
addTypedHistory: !0
}), this.onSearchAddTypedSearchHistory = j.partialRight(this.onSearch, {
addTypedSearchHistory: !0
})
},
componentDidMount: function() {
this.updateFocus(this.state.page)
},
componentWillUnmount: function() {
p.removeChangeListener(this._onMainStoreChanged), U.removeChangeListener(this._onWebpageviewStoreChanged), O.removeChangeListener(this._onTabStoreChanged), L.removeChangeListener(this._onUrlbarStoreChanged), C.removeChangeListener(this._onSearchFieldStoreChanged), v.removeChangeListener(this._onNavigationStoreChanged), A.removeChangeListener(this._onFastForwardStoreChanged)
},
updateStoresForPage: function(e) {
this.setState(Object.assign({}, this.getUrlbarStoreState(e), this.getSearchFieldStoreState(e), this.getNavigationStoreState(e), this.getFastForwardStoreState(e)))
},
getUrlbarStoreState: function(e) {
return Object.assign({
showTypedHistory: L.showTypedHistory(),
typedHistory: L.getTypedHistory()
}, L.getUrlfieldState(e))
},
getSearchFieldStoreState: function(e) {
return {
searchText: C.getSearchText(e),
currentSearchEngine: C.getSearchEngine(e)
}
},
getNavigationStoreState: function(e) {
return {
navigationInfo: v.getNavigationInfo(e).delete("trigger"),
sslInfo: v.getSSLInfo(e),
blockedPopups: v.getBlockedPopups(e),
permissionInfo: v.getPermissionInfo(e),
blockedPageContent: v.getblockedPageContents(e)
}
},
getFastForwardStoreState: function(e) {
return {
forwardUrl: A.getFastForwardUrl(e),
rewindRelativeIndex: A.getRewindRelativeIndex(e)
}
},
_getFavIconKey: function() {
return this.state.page.get("incognito") ? "favIcon" : "favIconUrl"
},
_setBookmarkedState: function(e) {
var t = this;
return e ? void H.bookmarks.search({
url: e
}, function(e) {
t.isMounted() && (e && e.length > 0 && !ee(e[0]) ? t.setState({
isBookmarked: !0
}) : t.setState({
isBookmarked: !1
}))
}) : void this.setState({
isBookmarked: !1
})
},
_onUrlbarStoreChanged: function() {
this.setState(this.getUrlbarStoreState(this.state.page))
},
_onSearchFieldStoreChanged: function() {
this.setState(this.getSearchFieldStoreState(this.state.page))
},
_onNavigationStoreChanged: function() {
this.setState(this.getNavigationStoreState(this.state.page))
},
_onFastForwardStoreChanged: function() {
this.setState(this.getFastForwardStoreState(this.state.page))
},
focusAddressField: function() {
var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
if (this.isMounted()) {
var t = r.findDOMNode(this.refs.urlField);
se("focus addressfield. Select?", e, document.activeElement), document.activeElement !== t && t.focus(), e === !0 && t.select()
}
},
blurAddressField: function(e) {
if (this.isMounted()) {
var t = r.findDOMNode(this.refs.urlField);
t.blur()
}
this.hideDropdown()
},
getDisplayURL: function(e) {
if (e) {
var t = K(e.url);
if (t.length > oe && (t = t.substr(0, oe)), "" !== t) {
if (this.state.ADDRESS_BAR_SHOW_FULL_URL === !0) return t;
if (!e.url.match(/^https*:/)) return t;
var n = t.replace(/^(.*?:\/\/\/*)(.*)$/, "$2");
return this.state.focused !== !0 ? n.replace(/(.*?)\/*[#?].*/, "$1") : n
}
}
return ""
},
hideTooltip: function() {
w.clearTooltip()
},
onSearch: function(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
t && (n.useSearchEngineURL = t, M.goSearchURL(e, n), this.hideDropdown())
},
_onMainStoreChanged: function(e) {
switch (e.action) {
case "showPageInfo":
this.doActionShowPageInfo(e.event)
}
},
_onTabStoreChanged: function(e) {
"newTab" !== e.action && "closeTab" !== e.action || this.hideDropdown()
},
_onWebpageviewStoreChanged: function(e) {
var n = this;
e.type === P.WEBPAGEVIEW_ACTIONS ? "addBookmark" === e.action ? this.onCreateBookmarkCallout() : "focusAddressField" === e.action ? this.focusAddressField(!0) : "urlPasteAndGo" === e.action && this.urlPasteAndGo(e.modifiers) : e.type === P.URLFIELD_BLUR && t.nextTick(function() {
return n.hideDropdown()
})
},
updateFocus: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
if (e) switch (z(e, e.get("url"), t)) {
case "urlField":
this.focusAddressField();
break;
case "urlFieldSelected":
this.focusAddressField(!0)
}
},
_onPasteAndGoUrlPasted: function(e, n) {
var i = this;
t.nextTick(function() {
try {
var t = n.target.value.trim();
if (t) {
var a = {
addTypedHistory: !0,
addTypedSearchHistory: !1,
enableSearch: !0
};
e && Object.assign(a, o.getOpenOptionsFromEvent(e)), M.go(t, a)
}
} finally {
n.preventDefault(), n.stopPropagation(), n.target.removeEventListener("paste", i._onPasteAndGoUrlPasted, !0), n.target.parentNode.removeChild(n.target)
}
})
},
urlPasteAndGo: function(e) {
var t = document.createElement("input"),
n = r.findDOMNode(this.refs.urlField),
i = n.value,
a = n.selectionStart,
s = n.selectionEnd,
o = document.activeElement === n;
o && (t.value = i, t.setSelectionRange(a, s), this.blurAddressField()), t.style.width = t.style.height = "1px", t.style.position = "absolute", t.style.top = t.style.left = "-1px", t.addEventListener("paste", this._onPasteAndGoUrlPasted.bind(this, e), !0), document.body.appendChild(t), t.focus(), document.execCommand("paste")
},
onFocus: function() {
this.setState({
focused: !0
})
},
onBlur: function() {
this.setState({
focused: !1
})
},
maybeCopyScheme: function(e) {
var t = J.parse(e, !1, !0),
n = J.parse(K(this.state.page.url));
if (!t.protocol && n.protocol && n.protocol.startsWith("https")) {
var i = J.parse(n.protocol + (n.slashes ? "//" : "") + e);
if (i.host === n.host) return J.format(i)
}
return e
},
urlFieldGo: function(e, t) {
var n = r.findDOMNode(this.refs.urlField).value.trim();
if (n && 0 !== n.length) {
if ("/." === n) return M.go("http://slashdot.org", t), void this.updateFocus(this.state.page);
if (q(n, re)) return M.go(X(n), t), void this.updateFocus(this.state.page);
var i = Q.getUrl(n);
this.hideDropdown(), i.includes(" ") || (i = this.maybeCopyScheme(i));
var a = this._getTypedSearchEngine(this.props.searchEngines, this.state.editUrl),
s = a || this.state.URLBAR_SEARCH_DISABLED !== !0;
M.go(i, Object.assign({}, t, {
enableSearch: s,
addTypedHistory: !0,
addTypedSearchHistory: !1
}))
}
},
onUrlFieldDrop: function(e) {
var t = e.dataTransfer.getData("text/uri-list");
if (t.length > 0) {
var n = t.split("\n");
n.length > 0 && M.go(n)
} else {
var i = e.dataTransfer.getData("text/plain");
i.length > 0 && (ne(i) ? M.go(i) : (M.setUrlfieldState(this.state.page.id, {
editUrl: i,
selectionStart: 0,
selectionEnd: i.length
}), this.focusAddressField()))
}
},
doActionBack: function(e) {
B.back()
},
doActionForward: function(e) {
B.forward()
},
doActionFastForward: function(e) {
u.navigateFastforward(this.state.page)
},
doActionFastRewind: function(e) {
this.state.rewindRelativeIndex > 0 && B.go(this.state.rewindRelativeIndex * -1)
},
onReloadMouseUp: function(e) {
this.cancelPaste(e), 1 === e.button && 0 === e.buttons && this.doActionReload(e)
},
doActionReload: function(e) {
0 === e.button ? this.state.navigationInfo && (this.state.navigationInfo.get("isLoading") ? B.stop() : B.reload(), this.updateFocus(this.state.page)) : 1 === e.button && E.clonePage(this.props.page)
},
onHomeMouseUp: function(e) {
this.cancelPaste(e), 1 === e.button && 0 === e.buttons && this.doActionHome(e)
},
doActionHome: function(e) {
var t = {};
t.inCurrent = 1 !== e.button, t.inBackground = 1 === e.button, E.showHomepage(t)
},
cancelPaste: function(e) {
1 === e.button && e.preventDefault()
},
cancelDefault: function(e) {
"-1" === this.state.KEY_ACCESS && e.preventDefault()
},
setUrlDragEvent: function(e) {
var t = document.createElement("img");
t.src = this.state.page.get(this._getFavIconKey()) || "/resources/default_favicon_64.png", e.dataTransfer.setDragImage(t, t.width - t.width / 3, t.height - t.height / 3), e.dataTransfer.setData("text/uri-list", this.state.page.url), e.dataTransfer.setData("text/plain", this.state.page.url), e.dataTransfer.setData("vivaldi/x-title", this.state.page.get("title"))
},
setAutocompleteHighlight: function(e, t) {
if (this.refs.omniDropdown) {
if (t)
if (e !== -1) {
var n = this.refs.omniDropdown.getCurrentValue(e);
M.setUrlfieldState(this.state.page.id, {
editUrl: n,
selectionStart: n.length,
selectionEnd: n.length
})
} else {
var i = this.refs.urlField.getTypedURL();
M.setUrlfieldState(this.state.page.id, {
editUrl: i
})
}
return this.setState({
dropdownSelectionIndex: e
}), !0
}
return !1
},
showOmniDropdown: function(e, t) {
if (this.state.ADDRESS_BAR_OMNIDROPDOWN_ENABLED !== !1) {
var n = {};
document.activeElement === r.findDOMNode(this.refs.urlField) && (this.state.showOmniDropdown !== !0 && (se("showing dropdown"), this.state.showTypedHistory !== !1 && this.hideDropdown(), Object.assign(n, {
showOmniDropdown: !0
})), Object.assign(n, {
urlFieldSearchPattern: t,
urlFieldSearchResults: e,
dropdownSelectionIndex: -1
}), se("updating dropdown state", n), this.setState(n))
}
},
hideDropdown: function() {
this.state.showOmniDropdown !== !1 && (se("hiding dropdown"), this.setState({
showOmniDropdown: !1,
dropdownSelectionIndex: -1
})), this.state.showTypedHistory !== !1 && (this.setState({
showTypedHistory: !1,
dropdownSelectionIndex: -1
}), t.nextTick(function() {
return M.hideTypedHistory()
}))
},
onOmniDropdownItemClicked: function(e, t) {
this.refs.urlField.revertUrl(this.state.page.id), this.refs.urlField.refs.urlInput.blur(), Array.isArray(e.urls) ? M.go(e.urls) : M.go(e.url, {
enableSearch: !0,
addTypedHistory: !0
}), this.hideDropdown()
},
onOmniDropdownItemDelete: function(e) {
var t = this._getDropdown(),
n = t.deleteCurrentItem;
"function" == typeof n && n()
},
onDeleteHistoryItem: function(e) {
M.deleteHistory(e), this.setState({
urlFieldSearchResults: this.state.urlFieldSearchResults.filter(function(t) {
return t.url !== e
})
})
},
onDeleteTypedHistoryItem: function(e) {
M.deleteTypedHistory(e)
},
toggleShowTypedHistory: function(e) {
"function" == typeof e.preventDefault && e.preventDefault(), this.state.showTypedHistory === !0 ? M.hideTypedHistory() : (this.focusAddressField(), this.hideDropdown(), M.showTypedHistory())
},
onReaderableClicked: function(e) {
this.state.isReaderableActive === !0 ? M.readerableInactive(this.state.page) : M.readerableActive(this.state.page)
},
onCreateBookmarkCallout: function(e) {
var t = this.state.page;
if (t.get("active")) {
if (!Q.isBookmarkablePage(t)) return;
t.get("url") && this.setState({
createBookmarkCallout: !0
})
}
},
onCloseCreateBookmarkCallout: function() {
this._setBookmarkedState(this.state.page.get("url")), this.setState({
createBookmarkCallout: !1
})
},
prepareNewPage: function(e) {
this.updateStoresForPage(e), this.updateFocus(e, !0), this.hideDropdown()
},
forceRendering: function(e) {
this.setState({
pageUpdated: !0
})
},
_getTypedSearchEngine: function(e, t) {
if (!("string" != typeof t || t.length < 1)) return e.find(function(e) {
var n = e.Keyword;
return t.toLowerCase().startsWith(n.toLowerCase() + " ")
})
},
_getDefaultSearchEngine: function(e) {
var t = this;
return this.state.DEFAULT_SEARCH_ENGINE ? e.find(function(e) {
return e.Id === parseInt(t.state.DEFAULT_SEARCH_ENGINE)
}) : e[0]
},
onPopupAllowed: function(e) {
this.state.page && (_.removeBlockedPopupEvent(this.state.page, e), this.refs.popupBlockerNotificator.onDialogClosed(), e.window.accept(window.vivaldiWindowId))
},
toggleExtensionToolbar: function(e) {
e.preventDefault(), R.set({
EXTENSIONS_TOOLBAR_VISIBLE: !this.state.EXTENSIONS_TOOLBAR_VISIBLE
})
},
_isEditingUrl: function() {
if ("" === this.state.editUrl) return !0;
if (null == this.state.editUrl) return !1;
if (this.state.page && this.refs.urlField) {
var e = this.refs.urlField.getTypedURL();
return "string" == typeof e && "" !== e && this.getDisplayURL(this.state.page) !== e
}
return !1
},
_getDropdown: function() {
return this.refs.omniDropdown
},
render: function() {
var e = {
"bookmark-bar": !1,
toolbar: !0,
"toolbar-addressbar": !0,
search: this.state.SEARCH_FIELD_ENABLED
},
t = V({
"button-addressfield": !0,
"reader-mode": !0,
active: this.state.isReaderableActive
}),
r = this.state.searchEnginesCleaned || [],
o = this._getTypedSearchEngine(this.props.searchEngines, this.state.editUrl),
u = this._getDefaultSearchEngine(r),
A = Q.isBookmarkablePage(this.state.page),
h = Q.isInternalPage(this.state.page),
p = Q.isInternalPage(this.state.page),
_ = F(this.state.typedHistory.length > 0 ? "Show typed history" : "Enter an address to activate typed history");
return a.createElement(d, {
focusName: "focus_addressbar",
className: V(e),
ref: "urlbar",
__source: {
fileName: i,
lineNumber: 929
}
}, a.createElement(g, {
type: "Back",
ref: "webpageview_nav_back",
keyAccess: this.state.KEY_ACCESS,
canNavigate: this.state.navigationInfo.get("canGoBack"),
doAction: this.doActionBack,
__source: {
fileName: i,
lineNumber: 934
}
}), a.createElement(g, {
type: "Forward",
ref: "webpageview_nav_forward",
keyAccess: this.state.KEY_ACCESS,
canNavigate: this.state.navigationInfo.get("canGoForward"),
doAction: this.doActionForward,
__source: {
fileName: i,
lineNumber: 940
}
}), this.state.SHOW_FFW_RWD_BUTTONS && a.createElement(g, {
type: "Rewind",
ref: "webpageview_nav_rew",
keyAccess: this.state.KEY_ACCESS,
canNavigate: Number.isInteger(this.state.rewindRelativeIndex) && this.state.rewindRelativeIndex > 0,
doAction: this.doActionFastRewind,
__source: {
fileName: i,
lineNumber: 949
}
}), this.state.SHOW_FFW_RWD_BUTTONS && a.createElement("button", {
className: "button-toolbar next",
ref: "webpageview_nav_ffw",
tabIndex: this.state.KEY_ACCESS,
title: this.state.forwardUrl ? F("Fast Forward - $1", [this.state.forwardUrl]) : F("Fast Forward"),
onMouseDown: this.cancelDefault,
onMouseUp: this.cancelPaste,
onClick: this.doActionFastForward,
disabled: !this.state.forwardUrl,
dangerouslySetInnerHTML: {
__html: n(468)
},
__source: {
fileName: i,
lineNumber: 960
}
}), a.createElement("button", {
className: V("button-toolbar", "reload", {
loading: this.state.navigationInfo.get("isLoading") && !h
}),
tabIndex: this.state.KEY_ACCESS,
disabled: !p && (!this.state.navigationInfo.get("canNavigate") || h),
title: F(this.state.navigationInfo.get("isLoading") && !h ? "Stop" : "Reload current page"),
onMouseDown: this.cancelDefault,
onMouseUp: this.onReloadMouseUp,
onClick: this.doActionReload,
__source: {
fileName: i,
lineNumber: 974
}
}, this.state.navigationInfo.get("isLoading") && !h ? a.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(974)
},
__source: {
fileName: i,
lineNumber: 987
}
}) : a.createElement("span", {
dangerouslySetInnerHTML: {
__html: n(312)
},
__source: {
fileName: i,
lineNumber: 990
}
})), a.createElement("button", {
className: "button-toolbar home",
ref: "webpageview_nav_home",
title: F("Go to homepage"),
tabIndex: this.state.KEY_ACCESS,
onMouseDown: this.cancelDefault,
onMouseUp: this.onHomeMouseUp,
onClick: this.doActionHome,
dangerouslySetInnerHTML: {
__html: n(469)
},
__source: {
fileName: i,
lineNumber: 995
}
}), a.createElement("div", {
ref: "addressfield",
className: V({
addressfield: !0,
focused: this.state.focused
}),
__source: {
fileName: i,
lineNumber: 1004
}
}, a.createElement(S, {
page: this.state.page,
ref: "webpageview_loadprogress",
open: !h,
__source: {
fileName: i,
lineNumber: 1011
}
}), this.props.incognito === !0 && a.createElement("div", {
className: "private-window-indicator",
__source: {
fileName: i,
lineNumber: 1016
}
}, a.createElement("svg", {
viewBox: "0 0 16 16",
xmlns: "http://www.w3.org/2000/svg",
__source: {
fileName: i,
lineNumber: 1017
}
}, a.createElement("path", {
d: "M7 14h2v-1h1v-1H9v-1h1v-1H9V8h3V3H4v5h3v6zM6 5h4v1H6V5z",
__source: {
fileName: i,
lineNumber: 1018
}
}))), o ? a.createElement("img", {
className: "searchengine-icon",
src: o.Image,
__source: {
fileName: i,
lineNumber: 1024
}
}) : a.createElement(I, {
tabIndex: this.state.KEY_ACCESS,
isEditingUrl: this._isEditingUrl(),
draggable: !h,
isInternal: h,
sslIssuer: this.state.sslInfo.get("issuer"),
sslState: this.state.sslInfo.get("state"),
onDragStart: this.setUrlDragEvent,
__source: {
fileName: i,
lineNumber: 1026
}
}), a.createElement("form", {
__source: {
fileName: i,
lineNumber: 1036
}
}, a.createElement(k, {
displayUrl: this.getDisplayURL(this.state.page),
autocompletionEnabled: this.state.ADDRESS_BAR_AUTOCOMPLETE_ENABLED,
autocompletionPreferBookmarks: this.state.ADDRESS_BAR_AUTOCOMPLETE_PREFER_BOOKMARKS,
encodeCutCopy: this.state.ADDRESS_BAR_CUTCOPY_ENCODED,
editUrl: this.state.editUrl,
fieldGo: this.urlFieldGo,
hideDropdown: this.hideDropdown,
isActive: this.state.page.get("active") || !1,
isOmniDropdownOpen: this.state.showOmniDropdown,
isTypedHistoryOpen: this.state.showTypedHistory,
selectionIndex: this.state.dropdownSelectionIndex,
setAutocompleteHighlight: this.setAutocompleteHighlight,
onBlur: this.onBlur,
onDrop: this.onUrlFieldDrop,
onFocus: this.onFocus,
onDelete: this.onOmniDropdownItemDelete,
pageId: this.state.page.id,
ref: "urlField",
selectionEnd: this.state.selectionEnd,
selectionStart: this.state.selectionStart,
selectOnClick: this.state.ADDRESS_BAR_SELECT_ON_CLICK,
suggestEnabled: !(!this.state.ADDRESS_BAR_SUGGEST_ENABLED || !this.state.ADDRESS_BAR_OMNIDROPDOWN_ENABLED || this.state.ADDRESS_BAR_SUGGEST_NICKNAME_ENABLED === !0 && !o),
showDropdown: this.showOmniDropdown,
triggerTypedHistory: this.state.URLFIELD_TYPED_HISTORY_ENABLED,
autocompleteOnTitle: !0,
url: this.state.page.get("url") || "",
defaultSearchEngine: u,
typedSearchEngine: o,
getDropdown: this._getDropdown,
openShortcutModifier: this.state.ADDRESS_BAR_URL_OPEN_SHORTCUT,
autocompleteTLD: this.state.ADDRESS_BAR_AUTOCOMPLETE_TLD,
__source: {
fileName: i,
lineNumber: 1037
}
}), this.state.showTypedHistory === !0 ? a.createElement(D, {
ref: "omniDropdown",
setAutocompleteHighlight: this.setAutocompleteHighlight,
onLinkItemClicked: this.onOmniDropdownItemClicked,
displayUrl: this.state.page && K(this.state.page.url) || "",
results: this.state.typedHistory,
selectionIndex: this.state.dropdownSelectionIndex,
__source: {
fileName: i,
lineNumber: 1080
}
}) : this.state.ADDRESS_BAR_OMNIDROPDOWN_ENABLED !== !1 && a.createElement(N, {
defaultSearchEngine: u,
disableOnClickOutside: !0,
displayUrl: this.state.page && K(this.state.page.url) || "",
isOpen: this.state.showOmniDropdown,
isUrlbarSearchDisabled: this.state.URLBAR_SEARCH_DISABLED && !o,
onClose: this.hideDropdown,
onDeleteHistoryItem: this.onDeleteHistoryItem,
onDeleteTypedHistoryItem: this.onDeleteTypedHistoryItem,
onLinkItemClicked: this.onOmniDropdownItemClicked,
onSearchClicked: this.onSearchAddTypedHistory,
pattern: this.state.urlFieldSearchPattern,
ref: "omniDropdown",
results: this.state.urlFieldSearchResults,
selectionIndex: this.state.dropdownSelectionIndex,
setAutocompleteHighlight: this.setAutocompleteHighlight,
suggestEnabled: this.state.ADDRESS_BAR_SUGGEST_ENABLED,
typedSearchEngine: o,
__source: {
fileName: i,
lineNumber: 1087
}
})), this.state.permissionInfo.get("geolocation") && a.createElement(m, {
request: this.state.permissionInfo.get("geolocation"),
page: this.state.page,
__source: {
fileName: i,
lineNumber: 1111
}
}), this.state.permissionInfo.get("media") && a.createElement(f, {
request: this.state.permissionInfo.get("media"),
page: this.state.page,
__source: {
fileName: i,
lineNumber: 1117
}
}), this.state.permissionInfo.get("notifications") && a.createElement(b, {
request: this.state.permissionInfo.get("notifications"),
page: this.state.page,
__source: {
fileName: i,
lineNumber: 1123
}
}), this.state.SHOW_ADDRESS_BAR && a.createElement(c, {
showPageActions: !0,
showBrowserActions: !1,
incognito: this.props.incognito,
__source: {
fileName: i,
lineNumber: 1129
}
}), this.state.blockedPopups.size > 0 && a.createElement(T, {
ref: "popupBlockerNotificator",
url: this.state.page && this.state.page.get("url"),
blockedPopups: this.state.blockedPopups,
onPopupAllowed: this.onPopupAllowed,
__source: {
fileName: i,
lineNumber: 1136
}
}), this.state.blockedPageContent.size > 0 && a.createElement(s, {
page: this.state.page,
__source: {
fileName: i,
lineNumber: 1144
}
}), (this.state.isReaderable || this.state.isReaderableActive) && a.createElement("button", {
className: t,
title: F("Reader View"),
onClick: this.onReaderableClicked,
dangerouslySetInnerHTML: {
__html: n(1008)
},
__source: {
fileName: i,
lineNumber: 1149
}
}), this.state.URLFIELD_TYPED_HISTORY_ENABLED && a.createElement("button", {
className: "button-addressfield input-dropdown",
title: _,
tabIndex: this.state.KEY_ACCESS,
disabled: 0 === this.state.typedHistory.length,
onMouseDown: this.toggleShowTypedHistory,
dangerouslySetInnerHTML: {
__html: n(314)
},
__source: {
fileName: i,
lineNumber: 1157
}
}), this.state.page && A && a.createElement(l, {
ref: "bookmarkCallout",
keyAccess: this.state.KEY_ACCESS,
open: this.state.createBookmarkCallout,
onOpen: this.onCreateBookmarkCallout,
onClose: this.onCloseCreateBookmarkCallout,
title: this.state.page.get("title"),
url: this.state.page.get("url"),
isBookmarked: this.state.isBookmarked,
isBookmarkable: A,
isSearchOn: this.state.SEARCH_FIELD_ENABLED,
thumbnail: this.state.page.getIn(["extData", "thumbnail"]),
__source: {
fileName: i,
lineNumber: 1166
}
})), this.state.SEARCH_FIELD_ENABLED && a.createElement(y, {
currentSearchEngine: this.state.currentSearchEngine,
defaultSearchEngineId: this.state.DEFAULT_SEARCH_ENGINE,
keyAccess: this.state.KEY_ACCESS,
onEnterPressed: this.onSearchAddTypedSearchHistory,
openInNewTab: this.state.SEARCH_FIELD_OPEN_NEW_TAB,
openShortcutModifier: this.state.ADDRESS_BAR_URL_OPEN_SHORTCUT,
page: this.state.page,
ref: "search",
searchEngines: this.state.searchEnginesCleaned,
suggestEnabled: this.state.SEARCH_FIELD_SUGGEST_ENABLED,
value: this.state.searchText,
__source: {
fileName: i,
lineNumber: 1181
}
}), this.state.SHOW_ADDRESS_BAR && (!this.state.EXTENSIONS_TOOLBAR_TOGGLE_BUTTON_ENABLED || this.state.EXTENSIONS_TOOLBAR_VISIBLE) && a.createElement(c, {
showPageActions: !1,
showBrowserActions: !0,
incognito: this.props.incognito,
__source: {
fileName: i,
lineNumber: 1199
}
}), this.state.EXTENSIONS_TOOLBAR_TOGGLE_BUTTON_ENABLED && a.createElement("button", {
title: F("Toggle Extensions Visibility"),
onMouseDown: this.cancelDefault,
onClick: this.toggleExtensionToolbar,
tabIndex: this.state.KEY_ACCESS,
className: "button-toolbar toggle-extensions-group",
dangerouslySetInnerHTML: {
__html: n(956)
},
__source: {
fileName: i,
lineNumber: 1205
}
}))
}
});
e.exports = le
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_738
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/webpage/InternalPage.jsx",
a = n(1),
r = n(9),
s = (n(66), n(66), n(66), n(370)),
o = n(600),
l = n(564),
c = n(744),
u = n(713),
A = n(20).urls,
d = n(115),
h = d.isPageVisible,
m = a.createClass({
displayName: "InternalPage",
mixins: [r],
render: function() {
var e = this.props.page,
t = e.url,
n = [],
r = h(e),
d = Boolean(A.matchInternal("startpage", t)),
m = A.matchInternal("bookmarks", t),
p = A.matchInternal("history", t),
f = Boolean(A.matchInternal("welcome", t)),
g = Boolean(A.matchInternal("experiments", t)),
_ = Boolean(A.matchInternal("actionlog", t)),
v = void 0;
if (v = m ? "bookmarks" : p ? "history" : "speeddial", f || n.push(a.createElement(u, {
open: r && (d || m || p),
page: e,
contentWidth: this.props.contentWidth,
contentHeight: this.props.contentHeight,
view: v,
updatePageThumbnailWithActiveWebview: this.props.updatePageThumbnailWithActiveWebview,
key: "startpage",
__source: {
fileName: i,
lineNumber: 44
}
})), f && n.push(a.createElement(c, {
open: r,
page: e,
key: "welcome",
__source: {
fileName: i,
lineNumber: 58
}
})), A.matchInternal("settings", t) && n.push(a.createElement(s, {
page: e,
key: "settings",
__source: {
fileName: i,
lineNumber: 68
}
})), g && n.push(a.createElement(o, {
key: "experiments",
__source: {
fileName: i,
lineNumber: 75
}
})), _) n.push(a.createElement(l, {
key: "actionlog",
__source: {
fileName: i,
lineNumber: 82
}
}));
else if (A.matchUrl(A.internalUrl("mailpage", "composer"), t)) {
var b = A.getUrlParams(t);
b.path.substr("composer/".length);
n.push(a.createElement("div", {
key: "mail",
__source: {
fileName: i,
lineNumber: 90
}
}))
} else if (A.matchUrl(A.internalUrl("mailpage", "message"), t)) {
var N = A.getUrlParams(t).path,
E = N.split("/");
E[1], E.slice(2, E.length - 1).join("/"), parseInt(E[E.length - 1]);
n.push(a.createElement("div", {
key: "mailmessage",
__source: {
fileName: i,
lineNumber: 106
}
}))
} else A.matchInternal("mailpage", t) && n.push(a.createElement("div", {
key: "mailview",
__source: {
fileName: i,
lineNumber: 118
}
}));
return a.createElement("div", {
className: "internal-page",
__source: {
fileName: i,
lineNumber: 124
}
}, n)
}
});
e.exports = m
}, function(e, t, n) {
// =========================
// Function_739
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/webpage/WebPageCollection.jsx",
a = n(1),
r = n(9),
s = n(740),
o = n(178),
l = n(55),
c = n(17),
u = n(3),
A = n(115),
d = A.isPageVisible,
h = n(20),
m = h.urls,
p = n(7),
f = p.get,
g = n(4),
_ = function() {
return {
activePage: c.getActivePage(),
pages: c.getPages()
}
},
v = a.createClass({
displayName: "WebPageCollection",
mixins: [r],
getInitialState: function() {
var e = f(u.getSync("PANEL_STATE"), ["width"], 0);
return Object.assign({
contentWidth: window.innerWidth - e,
contentHeight: window.innerHeight
}, _())
},
componentDidMount: function() {
c.addChangeListener(this._onPageStoreChange)
},
componentWillUnmount: function() {
c.removeChangeListener(this._onPageStoreChange)
},
_onPageStoreChange: function() {
this.setState(_())
},
componentDidUpdate: function(e, t) {
this.state.pages.some(function(e) {
return e.get("isRemoved")
}) && g.tabs.query({
windowId: window.vivaldiWindowId
}, function(e) {
var t = c.getPages().filter(function(e) {
return e.isRemoved
}),
n = u.getSync("TAB_NEVER_CLOSE_LAST");
n && t.length === e.length || t.map(function(e) {
return e.id
}).forEach(function(e) {
return g.tabs.remove(e, function() {
g.runtime.lastError
})
})
})
},
onResize: function(e) {
var t = e[0].target,
n = void 0,
i = void 0;
if (t && t.clientWidth && t.clientHeight) n = t.clientWidth, i = t.clientHeight;
else {
var a = f(u.getSync("PANEL_STATE"), ["width"], 0);
n = window.innerWidth - a, i = window.innerHeight
}
this.setState({
contentWidth: n,
contentHeight: i
})
},
handleFocus: function(e) {
e && e.relatedTarget && "WEBVIEW" === e.relatedTarget.tagName && this.props.cycleFocus === !0 && l.doAction("focusWebView")
},
render: function() {
var e = this,
t = this.props.cycleFocus ? "0" : "-1";
return a.createElement(o, {
id: "webpage-stack",
onResize: this.onResize,
__source: {
fileName: i,
lineNumber: 102
}
}, a.createElement("span", {
tabIndex: t,
onFocus: this.handleFocus,
__source: {
fileName: i,
lineNumber: 106
}
}), this.state.pages.filter(function(e) {
return !Boolean(e.get("isRemoved"))
}).sortBy(function(e) {
return e.get("id")
}).map(function(t) {
return a.createElement(s, {
id: "page-component-" + t.get("id"),
key: "page-component-" + t.get("id"),
page: t,
contentWidth: e.state.contentWidth,
contentHeight: e.state.contentHeight,
tiles: c.getTiles(t.getIn(["extData", "tiling", "id"])),
isInternal: m.isInternalPage(t),
isVisible: d(t),
__source: {
fileName: i,
lineNumber: 111
}
})
}), a.createElement("span", {
tabIndex: t,
onFocus: this.handleFocus,
__source: {
fileName: i,
lineNumber: 123
}
}))
}
});
e.exports = v
}, function(e, t, n) {
// =========================
// Function_740
// =========================
(function(t) {
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/webpage/WebPageContent.jsx",
a = n(1),
r = n(11),
s = n(549),
o = n(51),
l = n(385),
c = n(348),
u = n(94),
A = n(589),
d = n(604),
h = n(27),
m = n(769),
p = n(738),
f = n(50),
g = n(36),
_ = n(95),
v = n(47),
b = n(15),
N = n(96),
E = n(65),
S = n(6),
T = n(3),
y = n(13),
C = n(55),
I = n(87),
O = n(112),
w = n(58),
D = w.getSelectedPanel,
k = w.getPanelWidth,
M = n(242),
L = n(129),
P = n(172),
R = n(4),
x = n(5),
B = n(89),
U = n(250),
F = n(7),
H = F.debounce,
V = n(10),
W = n(115),
G = W.isPageTiled,
K = n(20),
j = K.urls,
z = n(251),
Y = n(179),
J = ["id", "extData", "active", "url", "title", "incognito", "target", "processexitstate"],
Q = ["thumbnail", "tiling"],
Z = {
close: "handleOnClose",
contentload: "handleContentLoad",
contentsdiscarded: "handleOnContentsDiscarded",
createsearch: "handleOnCreateSearch",
contentblocked: "handleContentBlocked",
dialog: "handleOnJavascriptDialog",
exit: "handleOnProcessExit",
findupdate: "handleOnFindUpdate",
fullscreen: "handleOnFullscreen",
loadabort: "handleLoadAbort",
loadcommit: "handleLoadCommit",
loadprogress: "handleOnLoadProgress",
loadredirect: "handleLoadRedirected",
loadstart: "handleLoadStart",
loadstop: "handleLoadStop",
mediastatechanged: "handleOnMediaStateChanged",
newwindow: "handleOnNewWindow",
pasteandgo: "handleOnPasteAndGo",
simpleAction: "handleOnSimpleAction",
permissionrequest: "handleOnPermissionRequest",
requestpageinfo: "handleOnRequestPageInfo",
sslstatechanged: "handleOnSSLStateChanged",
targeturlchanged: "handleOnTargetURLChanged"
},
q = 330,
X = 270,
$ = a.createClass({
displayName: "WebPageContent",
mixins: [y],
_injectScript: !1,
_updateFocus: !1,
vivaldiSettingsKeys: ["SHOW_DOWNLOADPANEL_FOR_NEW_DOWNLOADS", "USE_BISCUIT_MODE", "VALIDATION_ENGINE"],
getInitialState: function() {
return Object.assign({
fullscreen_state_changed: null,
blockPopups: !0,
dialogParentElement: null,
initial_visibility_ensured: !1,
captureScheduled: !1
}, this.getContentScriptStoreState(this.props.page))
},
shouldComponentUpdate: function(e, t) {
var n = function(e, t, n) {
var i = t[e],
a = n[e];
return !!(i === a || h.is(i, a) || "activePage" === e && J.every(function(e) {
return "extData" === e ? Q.every(function(e) {
return h.is(i.getIn(["extData", e]), a.getIn(["extData", e]))
}) : h.is(i.get(e), a.get(e))
}))
};
return !z(e, this.props, n) || !z(t, this.state, n)
},
componentWillMount: function() {
I.addChangeListener(this._onWebpageviewStoreChanged), P.addChangeListener(this._onContentScriptStoreChanged)
},
componentDidMount: function() {
var e = this;
this.webview = this.refs.pagediv.firstChild, this.webview && this.webview.setVisible && this.webview.setVisible(this.props.isVisible), this.attachWebviewHandlers(), this.props.page.get("active") && t.nextTick(function() {
s.setActiveWebView(e.webview)
}), this.setState({
initial_visibility_ensured: !0
})
},
componentWillReceiveProps: function(e) {
var n = this,
i = this.props.page,
a = e.page,
r = i.get("active") === !1 && a.get("active") === !0;
r && this.webview && (t.nextTick(function() {
return s.setActiveWebView(n.webview)
}), O.getNavigationInfo(e.page).isLoading !== !0 && this.updateFocus(a, a.get("url"), !0)), e.page.get("url") !== this.props.page.get("url") && this.updateFocus(a, a.get("url")), this.updateViewUnchangedFlag(i, a), i.get("id") !== a.get("id") && this.setState(this.getContentScriptStoreState(a)), e.isVisible !== this.props.isVisible && this.webview && this.webview.setVisible && this.webview.setVisible(e.isVisible), a.get("target") && a.get("target") !== i.get("target") && (this.checkProcessExitState(), this.webview.src = e.page.getIn(["target", "url"]), e.page.getIn(["target", "isTyped"]) && (this.webview.wasTyped = "true"))
},
componentDidUpdate: function(e, t) {
var n = e.page,
i = this.props.page,
a = n.get("active") === !1 && i.get("active"),
r = !i.getIn(["extData", "thumbnail"]);
a && r && this.updatePageThumbnailWithActiveWebview(i, 0)
},
componentWillUnmount: function() {
b.markPageForUndelete(this.props.page, this.webview), I.removeChangeListener(this._onWebpageviewStoreChanged), P.removeChangeListener(this._onContentScriptStoreChanged), this.removeWebviewHandlers()
},
_onContentScriptStoreChanged: function() {
var e = this,
t = this.getContentScriptStoreState(this.props.page);
if (t.pageScripts !== this.state.pageScripts) {
var n = this.state.pageScripts.some(function(e, n) {
return e && !t.pageScripts.get(n)
});
if (n) return this.setState(t), void this.webview.reload();
var i = t.contentScripts.filter(function(n) {
return !e.state.pageScripts.get(n.get("name")) && t.pageScripts.get(n.get("name"))
});
this.injectUserContentScripts(i)
}
this.setState(t)
},
checkProcessExitState: function() {
var e = this;
this.props.page.get("processexitstate") && "normal" !== this.props.page.get("processexitstate") && (this.handleOnContentsDiscarded(), t.nextTick(function() {
return b.setProcessExitState(e.props.page.get("id"), void 0)
}))
},
getContentScriptStoreState: function(e) {
return {
contentScripts: P.getContentScripts(),
pageScripts: P.getPageScripts(e.get("id"))
}
},
viewUnchangedFlags: {},
updateViewUnchangedFlag: function(e, t) {
var n = ["extData", "tiling"];
e.get("active") === t.get("active") && e.getIn(n) === t.getIn(n) || (this.viewUnchangedFlags = {})
},
isInternalThumbnail_: function(e) {
return Boolean(e && 0 === e.indexOf("/resources/"))
},
updatePageThumbnailWithActiveWebview: function(e) {
var t = this,
n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
this.webview && ! function() {
var i = B();
t.viewUnchangedFlags[i] = t.props.page.get("active") === !0, setTimeout(function() {
j.isInternalUrl(e.url) ? t.viewUnchangedFlags[i] && N.getPageThumbnail(e, 50, t.webview, {
captureAsBase64: !0
}, function(n) {
t.props.page.get("active") && t.viewUnchangedFlags[i] && n && b.setThumbnail(e, n)
}) : t.captureTab(e.id, function(t, n) {
t === e.id ? b.setThumbnail(e, n) : console.warn("Got thumbnail for wrong tab (" + t + ", " + e.id + ")")
})
}, n);
var a = l.getQueue(e);
a && a.get("url") === e.get("url") && ! function() {
var n = a.get("id");
R.bookmarks.get(n, function(a) {
if (R.runtime.lastError) console.warn("chrome.bookmarks.get failed:", n, R.runtime.lastError);
else {
var r = a && 1 === a.length ? a[0] : null,
s = t.isInternalThumbnail_(r.thumbnail);
s === !1 && V.thumbnails.isThumbnailAvailable(r.id, "", function(n) {
if (n.hasThumbnail === !1) {
var a = "http://bookmark_thumbnail/" + r.id;
N.getPageThumbnail(e, 50, t.webview, {
thumbUrl: a,
captureAsBase64: !1,
incognito: !1
}, function(e) {
t.props.page.get("active") && t.viewUnchangedFlags[i] ? R.bookmarks.update(r.id, {
thumbnail: e
}) : console.warn("Cannot update thumbnail as page was not active")
})
}
})
}
}), c.remove(e, n, g)
}()
}()
},
attachWebviewHandlers: function() {
var e = this;
Object.keys(Z).forEach(function(t) {
return e.webview.addEventListener(t, e[Z[t]])
})
},
removeWebviewHandlers: function() {
var e = this;
Object.keys(Z).forEach(function(t) {
return e.webview.removeEventListener(t, e[Z[t]])
})
},
updateNavigationState: function(e, t, n, i) {
var a = j.isNavigatableUrl(e),
r = h.Map({
canGoBack: a && this.webview.canGoBack(),
canGoForward: this.webview.canGoForward(),
canNavigate: a,
isLoading: t,
reason: i,
trigger: n,
webviewUrl: e
});
_.setNavigationState(this.props.page, r)
},
handleContentLoad: function(e) {
this.updateNavigationState(e.url, !1, "content")
},
handleLoadCommit: function(e) {
var n = this;
if (e.isTopLevel) {
if (j.isInternalUrl(e.url) ? L.setFastForwardUrl(this.props.page.get("id"), "") : this._injectScript = !0, this._injectScript === !0) {
this.webview.executeScript({
file: "browser-bundle.js",
runAt: "document_start"
}, function() {
L.initTab(n.props.page), R.runtime.lastError
});
var i = this.state.contentScripts.filter(function(e) {
return Boolean(n.state.pageScripts.get(e.get("name")))
});
this.injectUserContentScripts(i), this._injectScript = !1
}
t.nextTick(function() {
return L.setRewindInfo(n.webview, n.props.page)
}), this.webview && this.webview.setVisible && this.webview.setVisible(this.props.isVisible), this.updateNavigationState(e.url, !0, "commit"), this._updateFocus && (E.clearSelection(this.props.page.get("id")), this.updateFocus(this.props.page, e.url), this._updateFocus = !1)
}
},
handleLoadStart: function(e) {
if (e.isTopLevel) {
this._hasRedirectedFromSame = !1;
var t = this.props.page,
n = t.getIn(["extData", "urlForThumbnail"]);
n !== e.url && b.setThumbnail(t, null), j.equalUrl(e.url, this.props.page.get("url"), !0) || _.resetPermissions(this.props.page), this.updateNavigationState(e.url, !0, "start"), this.setState({
captureScheduled: !1
}), j.isInternalUrl(e.url) || (this._injectScript = !0), this._updateFocus = !0
}
},
captureTab: function(e, t) {
var n = {
encodeFormat: "jpg",
encodeQuality: 80,
fullPage: !1,
width: q,
height: X
};
V.thumbnails.captureTab(e, n, function(e, n) {
R.runtime.lastError || t(e, n)
})
},
handleLoadStop: function(e) {
this.updateNavigationState(e.target.src, !1, "stop"), this.props.page.getIn(["extData", "thumbnail"]) || this.updatePageThumbnailWithActiveWebview(this.props.page, 0), this.state.captureScheduled === !1 && (this.setState({
captureScheduled: !0
}), this.updatePageThumbnailWithActiveWebview(this.props.page, 5e3))
},
handleLoadRedirected: function(e) {
if (e.isTopLevel) {
var t = e.newUrl,
n = e.oldUrl;
j.equalUrl(t, n, !1) && (this._hasRedirectedFromSame = !0), b.setThumbnail(this.props.page, null), this.setState({
captureScheduled: !1
}), c.update(this.props.page, n, t)
}
},
handleContentBlocked: function(e) {
"mixed-script" === e.blockedType && _.setPageHasBlockedContent(this.props.page, e.blockedType)
},
handleLoadAbort: function(e) {
if (e.preventDefault(), e.isTopLevel) {
var t = e.url;
"ERR_ABORTED" === e.reason && this._hasRedirectedFromSame && (t = j.internals.blankpage, R.tabs.update(this.props.page.get("id"), {
url: t
})), this.updateNavigationState(t, !1, "abort", e.reason)
}
},
handleOnLoadProgress: function(e) {
var t = h.Map({
url: e.url,
progress: e.progress,
loadedBytes: e.loadedBytes,
loadedElements: e.loadedElements,
totalElements: e.totalElements
});
_.setProgressState(this.props.page, t)
},
handleOnFindUpdate: function(e) {
b.setFindResults(this.props.page, e)
},
handleOnFullscreen: function(e) {
b.setFullscreen(this.props.page, e.enterFullscreen)
},
handleOnClose: function() {
b.closePage(this.props.page)
},
handleBlockedPopup: function(e) {
_.addBlockedPopupEvent(this.props.page, e)
},
injectUserContentScripts: function(e) {
var t = this,
n = function(e) {
e.forEach(function(e) {
var n = {
code: e.get("code"),
allFrames: "script" !== e.get("type"),
runAt: "document_start"
};
"script" === e.get("type") ? t.webview.executeScript(n, function() {
R.runtime.lastError
}) : "style" === e.get("type") && t.webview.insertCSS(n)
})
};
n(e)
},
_onNewPopupCallback: function(e, t) {
t !== !1 ? this.handleBlockedPopup(e) : e.window.accept(window.vivaldiWindowId + ";1")
},
onNewPopup: function(e) {
e.targetUrl || (e.targetUrl = "about:blank"), e.userGesture ? (this.setState({
blockPopups: !1
}), this._onNewPopupCallback(e, !1)) : R.contentSettings.popups.get({
primaryUrl: this.props.page.get("url")
}, function(t) {
if (R.runtime.lastError) return void console.warn("ERROR getting content settings for popups. Original message:\n" + R.runtime.lastError.message);
var n = !0;
t && (n = "allow" !== t.setting, this.setState({
blockPopups: n
})), this._onNewPopupCallback(e, n)
}.bind(this))
},
handleOnNewWindow: function(e) {
switch (e.windowOpenDisposition) {
case "current_tab":
e.preventDefault(), e.window.accept(window.vivaldiWindowId + ";1");
break;
case "new_background_tab":
e.preventDefault(), e.window.accept(window.vivaldiWindowId + ";0");
break;
case "new_foreground_tab":
e.preventDefault(), e.window.accept(window.vivaldiWindowId + ";1");
break;
case "new_window":
e.preventDefault(), b.openWindow(null, {}, function(t) {
e.window.accept(t.id + ";1")
});
break;
case "off_the_record":
e.preventDefault(), b.openWindow(e.targetUrl, {
incognito: !0
}, function(t) {
e.window.accept(t.id + ";1;I")
});
break;
case "new_popup":
e.preventDefault(), this.onNewPopup(e);
break;
case "ignore":
case "save_to_disk":
}
},
showDialog: function(e) {
e.webview = this.webview, this.setState({
dialogParentElement: this.refs.webpagecontainer,
customData: e
})
},
handleOnCloseDialog: function(e) {
this.setState({
dialogParentElement: null
})
},
handleOnJavascriptDialog: function() {
event.preventDefault(), event.dialogtype = "javascript", this.showDialog(event)
},
handleOnPermissionRequest: function(e) {
var t = this;
switch (e.preventDefault(), e.permission) {
case "geolocation":
case "media":
case "notifications":
var n = null;
_.setPermission(this.props.page, e.permission, e.request, n);
break;
case "loadplugin":
e.request.allow();
break;
case "download":
T.get("AUTOMATICALLY_DOWNLOAD_FILES", function(n) {
if (n) {
e.request.allow();
var i = D(),
a = k();
!t.state.SHOW_DOWNLOADPANEL_FOR_NEW_DOWNLOADS || "downloads" === i && a > 50 || u.executeActions("COMMAND_SHOW_DOWNLOADS_PANEL")
} else e.dialogtype = e.permission, t.showDialog(e)
});
break;
default:
e.dialogtype = e.permission, this.showDialog(e)
}
},
handleOnMediaStateChanged: function(e) {
b.setMediaState(this.props.page.get("id"), e.activeMediaType)
},
handleOnProcessExit: function(e) {
b.setProcessExitState(this.props.page.get("id"), e.reason)
},
handleOnSSLStateChanged: function(e) {
_.setSSLState(this.props.page, e.SSLState, e.issuerstring)
},
handleOnTargetURLChanged: function(e) {
var t = e.newUrl,
n = Y(t);
b.setTargetURL(n), v.setStatus(n)
},
handleOnCreateSearch: function() {
event.dialogtype = "createSearch", this.showDialog(event)
},
handleOnPasteAndGo: function(e) {
var t = {};
e.modifiers.includes("ctrl") && (t.ctrlKey = !0), e.modifiers.includes("shift") && (t.shiftKey = !0), e.modifiers.includes("alt") && (t.altKey = !0), "MacIntel" === navigator.platform && e.modifiers.includes("command") && (t.metaKey = !0), e.preventDefault(), "search" === e.pasteTarget ? C.doAction("searchPasteAndGo", t) : "url" === e.pasteTarget && C.doAction("urlPasteAndGo", t)
},
handleOnSimpleAction: function(e) {
if ("copyToNote" === e.command) V.notes.create({
type: "note",
content: e.text,
url: e.url
});
else if ("addActivePageToBookmarks" === e.command) C.doAction("addBookmark");
else if ("addUrlToBookmarks" === e.command) R.bookmarks.create({
parentId: o.getRootNode().id,
title: e.text,
url: e.url
});
else if ("addUrlToWebPanel" === e.command) M.addByUrl(e.url);
else if ("copyUrlToClipboard" === e.command) {
var t = function(t) {
t.clipboardData.setData("text/plain", e.url), t.preventDefault()
};
document.addEventListener("copy", t), document.execCommand("copy"), document.removeEventListener("copy", t)
} else if ("useImageAsBackground" === e.command) m.setStartpageBackgroundFromUrl(e.url);
else if ("validateUrl" === e.command) {
var n = T.getSync("VALIDATION_URL");
b.openURL(n.replace("%s", e.url), {
inCurrent: !1
})
} else "fullscreen" === e.command && f.fullScreen()
},
handleOnContentsDiscarded: function() {
this.removeWebviewHandlers(), r.findDOMNode(this.refs.pagediv).removeChild(this.webview);
var e = document.createElement("webview");
e.id = this.props.page.get("id"), e.partition = "persist:storage", e.tab_id = this.props.page.get("id"), r.findDOMNode(this.refs.pagediv).appendChild(e), this.webview = e, this.attachWebviewHandlers()
},
handleOnRequestPageInfo: function(e) {
f.showPageInfo(this.props.page, e)
},
_onWebpageviewStoreChanged: function(e) {
if (e.type === S.CLOSE_FIND_IN_PAGE_ACTION) this.props.page.get("active") && (this.webview.stopFinding("keep"), this.focusWebView());
else if (e.type === S.PAGE_GO) this.props.page.get("active") && this.webview.go(e.index);
else if (e.type === S.PAGE_BACK) this.props.page.get("active") && this.webview.back();
else if (e.type === S.PAGE_FORWARD) this.props.page.get("active") && this.webview.forward();
else if (e.type === S.PAGE_STOP) this.doActionStop();
else if (e.type === S.PAGE_RELOAD) this.checkProcessExitState(), this.props.page.get("active") && R.tabs.reload(this.props.page.get("id"), {
bypassCache: e.bypassCache
});
else if (e.type === S.WEBPAGEVIEW_ACTIONS) switch (e.action) {
case "exportSettings":
break;
case "focusWebView":
this.props.page.get("active") && this.focusWebView();
break;
case "pageScrollUp":
this.props.page.get("active") && this.pageScrollUp();
break;
case "pageScrollDown":
this.props.page.get("active") && this.pageScrollDown();
break;
case "pageScrollTop":
this.props.page.get("active") && this.pageScrollTop();
break;
case "pageScrollBottom":
this.props.page.get("active") && this.pageScrollBottom();
break;
case "print":
this.props.page.get("active") && this.webview.print();
break;
case "basicPrint":
V.utilities.basicPrint();
break;
case "savePage":
this.savePage();
break;
case "openPage":
this.openPage()
}
},
doActionStop: function() {
this.props.page.get("active") && this.webview.stop()
},
savePage: function() {
this.props.page.get("active") && V.importData.savePage(function(e) {})
},
openPage: function() {
this.props.page.get("active") && V.importData.openPage(function(e) {})
},
focusWebView: H(function(e) {
if (j.isInternalUrl(e)) {
var t = r.findDOMNode(this.refs.internal);
if (!t.contains(document.activeElement)) {
var n = t.querySelector('[tabindex="0"]');
n && n.focus()
}
} else this.webview.focus()
}, 16),
pageScrollUp: function() {
this.webview.executeScript({
code: "window.scrollBy(0, -window.innerHeight)"
}, function() {
R.runtime.lastError
})
},
pageScrollDown: function() {
this.webview.executeScript({
code: "window.scrollBy(0, window.innerHeight)"
}, function() {
R.runtime.lastError
})
},
pageScrollTop: function() {
this.webview.executeScript({
code: "window.scrollTo(0, 0)"
}, function() {
R.runtime.lastError
})
},
pageScrollBottom: function() {
this.webview.executeScript({
code: "window.scrollTo(0, document.documentElement.scrollHeight)"
}, function() {
R.runtime.lastError
})
},
onMouseDown: function() {
this.props.page.get("active") || b.openPage(this.props.page)
},
getTilingStyle: function() {
var e = this;
if (this.props.tiles.count() < 2) return {};
var t = this.props.page.getIn(["extData", "tiling"]),
n = this.props.tiles.count(),
i = this.props.tiles.findIndex(function(t) {
return t.id === e.props.page.id
});
if ("grid" === t.get("layout")) {
var a = Math.ceil(Math.sqrt(n)),
r = Math.ceil(n / a),
s = Math.floor(i / a),
o = i % a,
l = 100 / a,
c = 100 / r,
u = c;
return r - s > 1 && i + a * (r - s - 1) >= n && (u = 100 / (r - 1)), {
top: u * s + "%",
height: u + "%",
left: l * o + "%",
width: l + "%"
}
}
if ("horizontally" === t.get("layout")) {
var A = 100 / n;
return {
top: A * i + "%",
height: A + "%"
}
}
var d = 100 / n;
return {
left: d * i + "%",
width: d + "%"
}
},
updateFocus: function(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
i = U(e, t, n);
"findInPage" === i ? this.focusFindInPage() : "content" === i && this.focusWebView(t)
},
focusFindInPage: function() {
var e = this;
t.nextTick(function() {
return C.showFindInPageToolbar(e.props.page)
})
},
_onFindInPage: function(e, t) {
C.findInPage(this.props.page, e, t, this.webview)
},
_onFindNextInPage: function(e, t, n) {
C.findNextInPage(this.props.page, e, t, n, this.webview)
},
_stopFindInPage: function() {
this.webview.stopFinding()
},
render: function() {
var e = this.props.page,
t = Object.assign({
visibility: this.props.isVisible ? "visible" : "hidden",
zIndex: this.props.isVisible ? "initial" : "-1"
}, this.getTilingStyle()),
n = !!this.state.initial_visibility_ensured && this.props.isVisible,
r = {
webpageview: !0,
active: e.get("active"),
visible: n,
tiled: G(this.props.page)
};
return a.createElement("div", {
className: x(r),
ref: "webpageview",
style: t,
tabIndex: "-1",
onMouseDown: this.onMouseDown,
__source: {
fileName: i,
lineNumber: 1173
}
}, a.createElement("div", {
ref: "webpagecontainer",
__source: {
fileName: i,
lineNumber: 1179
}
}, a.createElement(d, {
ref: "findInPage",
page: e,
onFindInPage: this._onFindInPage,
onFindNextInPage: this._onFindNextInPage,
onStopFind: this._stopFindInPage,
__source: {
fileName: i,
lineNumber: 1180
}
}), this.state.USE_BISCUIT_MODE && a.createElement("div", {
className: "biscuit-setting-version",
__source: {
fileName: i,
lineNumber: 1188
}
}, navigator.userAgent.match(/(?:Vivaldi|Chrome)\/[0-9.]+/g).join(" ")), a.createElement("div", {
ref: "pagediv",
className: "webpage",
dangerouslySetInnerHTML: {
__html: ''
},
__source: {
fileName: i,
lineNumber: 1194
}
}), a.createElement(p, {
ref: "internal",
page: e,
hasFocus: this.props.hasFocus,
contentWidth: this.props.contentWidth,
contentHeight: this.props.contentHeight,
updatePageThumbnailWithActiveWebview: this.updatePageThumbnailWithActiveWebview,
__source: {
fileName: i,
lineNumber: 1204
}
}), this.state.dialogParentElement && a.createElement(A, {
dialogParentElement: this.state.dialogParentElement,
customData: this.state.customData,
closeDialog: this.handleOnCloseDialog,
__source: {
fileName: i,
lineNumber: 1214
}
})))
}
});
e.exports = $
}).call(t, n(16))
}, function(e, t, n) {
// =========================
// Function_741
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/webpanels/addWebPanelButton.jsx",
a = n(39),
r = n(17),
s = n(9),
o = n(1),
l = n(2),
c = n(5),
u = n(46).ensureURLProtocol,
A = n(20).urls,
d = n(136),
h = n(97),
m = n(65),
p = n(37),
f = o.createClass({
displayName: "AddWebPanelButton",
mixins: [a, s],
getInitialState: function() {
return {
drawerOpen: !1,
url: "",
editUrl: null
}
},
componentWillMount: function() {
h.addChangeListener(this._onUrlbarStoreChanged)
},
componentWillUnmount: function() {
h.removeChangeListener(this._onUrlbarStoreChanged)
},
_onUrlbarStoreChanged: function() {
var e = h.getUrlfieldStateFromId("AddWebPanel");
this.setState(e)
},
onDragOver: function(e) {
e.preventDefault(), e.stopPropagation(), e.dataTransfer.dropEffect = "copy"
},
onDrop: function(e) {
e.preventDefault(), e.stopPropagation();
var t = e.dataTransfer.getData("text/uri-list");
if (t.length > 0)
for (var n = t.split("\n"), i = 0; i < n.length; i++) {
var a = u(n[i]);
this.props.addNew(a)
}
},
handleClickOutside: function() {
this.closeDrawer()
},
onToggleCallout: function() {
if (this.state.drawerOpen) this.closeDrawer();
else {
document.getElementById("panels").classList.add("leak");
var e = r.getActivePage(),
t = e.get("url"),
n = {
drawerOpen: !0
};
A.isBookmarkablePage(e) && (n.url = t), m.setUrlfieldState("AddWebPanel", {
selectionStart: 0,
selectionEnd: t.length,
editUrl: null
}), this.setState(n), p.bind("esc", this.closeDrawer)
}
},
onAddWebpanel: function() {
var e = (this.state.editUrl || this.state.url || "").trim();
0 !== e.length && (e = u(e), this.props.addNew(e), this.setState(this.getInitialState()))
},
onUrlChange: function(e) {
this.setState({
url: e
})
},
closeDrawer: function(e) {
document.getElementById("panels").classList.remove("leak"), p.unbind("esc", this.closeDrawer), this.setState({
drawerOpen: !1
})
},
preventContextMenu: function(e) {
e.stopPropagation()
},
render: function() {
var e = c({
addwebpanelcallout: !0,
hidden: !this.state.drawerOpen
});
return o.createElement("div", {
className: "addwebpanel-wrapper",
__source: {
fileName: i,
lineNumber: 118
}
}, o.createElement("button", {
title: l("Add Web Panel"),
className: "addwebpanel",
tabIndex: this.props.keyAccess,
onClick: this.onToggleCallout,
onDragOver: this.onDragOver,
onDrop: this.onDrop,
dangerouslySetInnerHTML: {
__html: n(80)
},
__source: {
fileName: i,
lineNumber: 119
}
}), this.state.drawerOpen && o.createElement("div", {
className: e,
onContextMenu: this.preventContextMenu,
__source: {
fileName: i,
lineNumber: 130
}
}, o.createElement("form", {
__source: {
fileName: i,
lineNumber: 132
}
}, o.createElement("header", {
__source: {
fileName: i,
lineNumber: 133
}
}, o.createElement("h1", {
__source: {
fileName: i,
lineNumber: 134
}
}, l("Add Web Panel"))), o.createElement("div", {
className: "toolbar icons",
__source: {
fileName: i,
lineNumber: 136
}
}, o.createElement(d, {
ref: "input",
className: "address",
title: l("Enter webpage address"),
pageId: "AddWebPanel",
placeholder: "vivaldi.net",
displayUrl: this.state.url,
editUrl: this.state.editUrl,
autocompletionEnabled: !0,
triggerTypedHistory: !1,
selectionStart: this.state.selectionStart,
selectionEnd: this.state.selectionEnd,
onUrlFieldChanged: this.onUrlChange,
autoFocus: !0,
__source: {
fileName: i,
lineNumber: 137
}
}), o.createElement("button", {
className: "button-toolbar add",
onClick: this.onAddWebpanel,
dangerouslySetInnerHTML: {
__html: n(80)
},
__source: {
fileName: i,
lineNumber: 150
}
})))))
}
});
e.exports = f
}, function(e, t, n) {
// =========================
// Function_742
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/webpanels/webPanel.jsx",
a = n(1),
r = n(11),
s = n(15),
o = n(58),
l = n(9),
c = n(2),
u = n(4),
A = n(5),
d = n(113),
h = n(36),
m = n(116),
p = n(383),
f = p.uaspoofRules,
g = p.uaspoofRuleIds,
_ = '(function() {\n var faviconElement = document.querySelector(\n \'link[rel="icon"],link[rel="shortcut icon"]\');\n if (faviconElement) {\n return faviconElement.getAttribute(\'href\');\n } else {\n return "";\n }\n})()',
v = a.createClass({
displayName: "WebPanel",
mixins: [l],
getInitialState: function() {
return {
title: c("Loading..."),
canGoBack: !1,
canGoForward: !1,
canReload: !1,
lookupFavicon: !0
}
},
globalUASpooRulesEnabled: !0,
disableGlobalUASpoofRules: function() {
return this.globalUASpooRulesEnabled = !1, new Promise(function(e) {
return u.declarativeWebRequest.onRequest.removeRules(g, e)
})
},
enableGlobalUASpoofRules: function() {
this.globalUASpooRulesEnabled || (this.globalUASpooRulesEnabled = !0, u.declarativeWebRequest.onRequest.addRules(f))
},
componentDidMount: function() {
var e = this,
t = this.refs.webpanelwebview;
this.props.mobileMode && t.setUserAgentOverride(this.getMobileUAString()), t.addEventListener("contentload", this.handleContentLoad), t.addEventListener("loadstop", this.handleLoadStop), t.addEventListener("newwindow", this.handleNewWindow), t.addEventListener("dialog", this.handleDialog), this.disableGlobalUASpoofRules().then(function() {
return t.src = e.props.src
}), o.addChangeListener(this.onPanelStoreChange)
},
componentWillUnmount: function() {
var e = this.refs.webpanelwebview;
e.removeEventListener("contentload", this.handleContentLoad), e.removeEventListener("loadstop", this.handleLoadStop), e.removeEventListener("newwindow", this.handleNewWindow), e.removeEventListener("dialog", this.handleDialog), o.removeChangeListener(this.onPanelStoreChange)
},
componentDidUpdate: function() {
this.props.focusContent && (document.activeElement.blur(), this.refs.webpanelwebview.focus())
},
componentWillReceiveProps: function(e) {
var t = this.refs.webpanelwebview;
e.mobileMode !== t.isUserAgentOverridden() && (e.mobileMode ? t.setUserAgentOverride(this.getMobileUAString()) : t.setUserAgentOverride(navigator.userAgent), this.reload())
},
onPanelStoreChange: function(e) {
this.props.isVisible && "setFocus" === e && !d(r.findDOMNode(this)) && (document.activeElement.blur(), r.findDOMNode(this).querySelector("webview").focus())
},
getMobileUAString: function() {
var e = navigator.userAgent,
t = e.indexOf("("),
n = e.indexOf(")", t);
return t >= 0 && n > t && (e = e.substr(0, t + 1) + "Linux; Android 6.0.1; SM-G920F Build/MMB29K" + e.substr(n)), e = e.replace("Safari", "Mobile Safari")
},
handleNewWindow: function(e) {
switch (e.windowOpenDisposition) {
case "current_tab":
case "new_foreground_tab":
e.preventDefault(), e.window.accept(window.vivaldiWindowId + ";1");
break;
case "new_background_tab":
e.preventDefault(), e.window.accept(window.vivaldiWindowId + ";0");
break;
case "new_window":
e.preventDefault(), s.openWindow(e.targetUrl, {
focused: !0
});
break;
case "off_the_record":
e.preventDefault(), s.openWindow(e.targetUrl, {
focused: !0,
incognito: !0
});
break;
case "new_popup":
e.preventDefault();
break;
case "ignore":
case "save_to_disk":
}
},
handleDialog: function(e) {
"confirm" === e.messageType || "prompt" === e.messageType ? e.dialog.cancel() : "alert" === e.messageType && e.dialog.ok("")
},
getFaviconHost: function() {
var e = h.parse(this.refs.webpanelwebview.src);
return e.protocol + "//" + e.host + "/"
},
handleLoadStop: function(e) {
this.enableGlobalUASpoofRules();
var t = this.refs.webpanelwebview;
this.setState({
canGoBack: t.canGoBack(),
canGoForward: t.canGoForward(),
canReload: !0
}), this.props.setWebPanelResource(this.props.id, "activeUrl", this.refs.webpanelwebview.src), this.state.lookupFavicon && t.executeScript({
code: _
}, function(e) {
u.runtime.lastError && console.warn("query favicon:", u.runtime.lastError);
var t = void 0 === e ? void 0 : e[0];
if (t) {
var n = t.indexOf("data:");
0 !== n && (n = t.indexOf("//"), n === -1 ? t = this.getFaviconHost() + t : 0 === n && (t = "http:" + t), t = m(t, {
stripWWW: !1
})), this.props.setWebPanelResource(this.props.id, "faviconUrl", t), this.setState({
lookupFavicon: !1
})
}
}.bind(this)), t.setZoomMode("per-view"), t.setZoom(1)
},
handleContentLoad: function(e) {
this.refs.webpanelwebview.executeScript({
code: "document.title"
}, function(e) {
this.setState({
title: e[0]
}), this.props.setWebPanelResource(this.props.id, "title", e[0])
}.bind(this))
},
reload: function() {
this.setState({
title: c("Loading..."),
canReload: !1
}), this.refs.webpanelwebview.reload()
},
home: function() {
var e = this;
this.setState({
title: c("Loading..."),
canReload: !1
}), this.disableGlobalUASpoofRules().then(function() {
return e.refs.webpanelwebview.src = e.props.src
})
},
back: function() {
this.refs.webpanelwebview.back()
},
forward: function() {
this.refs.webpanelwebview.forward()
},
render: function() {
var e = A({
panel: !0,
webpanel: !0,
visible: this.props.isVisible
});
return a.createElement("div", {
className: e,
__source: {
fileName: i,
lineNumber: 252
}
}, this.props.isVisible && this.props.panelUI.showToolbar && a.createElement("header", {
className: "webpanel-header",
__source: {
fileName: i,
lineNumber: 254
}
}, a.createElement("h1", {
className: "webpanel-title",
title: this.state.title,
__source: {
fileName: i,
lineNumber: 255
}
}, this.state.title), a.createElement("div", {
className: "toolbar icons",
__source: {
fileName: i,
lineNumber: 258
}
}, this.props.panelUI.allControls ? a.createElement("button", {
className: "button-toolbar back",
title: c("navigation", "Back"),
onClick: this.back,
disabled: !this.state.canGoBack,
dangerouslySetInnerHTML: {
__html: n(214)
},
__source: {
fileName: i,
lineNumber: 260
}
}) : null, this.props.panelUI.allControls ? a.createElement("button", {
className: "button-toolbar forward",
title: c("navigation", "Forward"),
onClick: this.forward,
disabled: !this.state.canGoForward,
dangerouslySetInnerHTML: {
__html: n(215)
},
__source: {
fileName: i,
lineNumber: 267
}
}) : null, this.props.panelUI.allControls ? a.createElement("button", {
className: "button-toolbar reload",
title: c("Reload"),
onClick: this.reload,
disabled: !this.state.canReload,
dangerouslySetInnerHTML: {
__html: n(312)
},
__source: {
fileName: i,
lineNumber: 274
}
}) : null, a.createElement("button", {
className: "button-toolbar home",
title: c("Home"),
onClick: this.home,
disabled: !this.state.canReload,
dangerouslySetInnerHTML: {
__html: n(469)
},
__source: {
fileName: i,
lineNumber: 280
}
}))), a.createElement("section", {
className: "webpanel-content",
__source: {
fileName: i,
lineNumber: 289
}
}, a.createElement("webview", {
ref: "webpanelwebview",
name: "vivaldi-webpanel",
__source: {
fileName: i,
lineNumber: 290
}
})))
}
});
e.exports = v
}, function(e, t, n) {
// =========================
// Function_743
// =========================
"use strict";
var i = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/welcome/WelcomeStep.jsx",
a = n(1),
r = n(25),
s = n(2),
o = ["KEY_ACCESS"],
l = a.createClass({
displayName: "WelcomeStep",
render: function() {
var e = this.props.isCurrent ? this.props.vivaldiSettings.KEY_ACCESS : "-1";
return a.createElement("div", {
className: "step step-" + this.props.step,
__source: {
fileName: i,
lineNumber: 15
}
}, a.createElement("div", {
className: "step-wrap",
__source: {
fileName: i,
lineNumber: 17
}
}, this.props.goBackward && a.createElement("button", {
className: "welcome-button-back",
tabIndex: e,
onClick: this.props.goBackward,
__source: {
fileName: i,
lineNumber: 19
}
}), this.props.children, this.props.goForward && a.createElement("button", {
tabIndex: e,
className: "welcome-navigation",
onClick: this.props.goForward,
__source: {
fileName: i,
lineNumber: 28
}
}, s("Next:") + " ", a.createElement("strong", {
__source: {
fileName: i,
lineNumber: 33
}
}, this.props.nextText))))
}
});
e.exports = r(l, o)
}, function(e, t, n) {
// =========================
// Function_744
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
var a = "/home/builduser/bot/build/slave/Official_Linux_x64/build/vivaldi/vivapp/src/components/welcome/welcome.jsx",
r = n(1),
s = n(5),
o = n(3),
l = n(15),
c = n(17),
u = n(25),
A = n(372),
d = n(354),
h = n(743),
m = n(2),
p = [{
name: m("Mist"),
path: "../resources/bg.jpg"
}, {
name: m("Sunset"),
path: "../resources/bg_alt_1.jpg"
}, {
name: m("Starry Night"),
path: "../resources/bg_alt_2.jpg"
}, {
name: m("Pink Cloud"),
path: "../resources/bg_alt_3.jpg"
}, {
name: m("Jellyfish"),
path: "../resources/bg_alt_4.jpg"
}, {
name: m("Purple Lake"),
path: "../resources/bg_alt_5.jpg"
}, {
name: m("Wave"),
path: "../resources/bg_alt_6.jpg"
}],
f = encodeURIComponent(m("Friend's email")),
g = encodeURIComponent(m("Check out Vivaldi")),
_ = encodeURIComponent(m("Hey,\n\nCheck out this new browser I found! Vivaldi is super customizable and really fast.\n\nIt’s available as a free download at vivaldi.com\n\nThere are many really cool features, but here’s what I like about it:\n\n- Very cool Speed Dial\n- Tab Stacking (You can stack multiple tabs together to save space on tab bar)\n- Tab tiling (You can display multiple web pages side by side or in grid)\n- Web panels and integrated Notes\n- Customisable keyboard shortcuts\n\nYou should definitely try Vivaldi.\n\n\nCheers")),
v = ["THEMES_SYSTEM", "THEMES_USER", "THEME_CURRENT", "STARTPAGE_BG_COLOR", "STARTPAGE_BG_COLOR_USER_DEFINED", "STARTPAGE_FG_COLOR", "STARTPAGE_SHOW_IMAGE", "STARTPAGE_IMAGE", "STARTPAGE_IMAGE_USER_DEFINED", "STARTPAGE_IMAGE_STRETCH", "STARTPAGE_IMAGE_REPEAT", "TAB_POSITION", "STARTPAGE_IMAGE", "STARTPAGE_IMAGE_USER_DEFINED", "STARTPAGE_SHOW_IMAGE", "KEY_ACCESS"],
b = r.createClass({
displayName: "WelcomePage",
getInitialState: function() {
return {
currentPageIndex: 1
}
},
goForward: function() {
this.setState({
currentPageIndex: this.state.currentPageIndex + 1
})
},
goBackward: function() {
this.setState({
currentPageIndex: this.state.currentPageIndex - 1
})
},
goStart: function() {
l.openURL(c.getDefaultStartpage(), {
inCurrent: !0
})
},
goToStep: function(e) {
this.setState({
currentPageIndex: e
})
},
getStartpageStyle: function() {
var e = this.props.vivaldiSettings,
t = {
bgColor: e.STARTPAGE_BG_COLOR,
bgColorUser: e.STARTPAGE_BG_COLOR_USER_DEFINED,
imageStretch: e.STARTPAGE_IMAGE_STRETCH,
imageRepeat: e.STARTPAGE_IMAGE_REPEAT,
showImage: e.STARTPAGE_SHOW_IMAGE,
imageUrl: e.STARTPAGE_IMAGE,
imageUrlUser: e.STARTPAGE_IMAGE_USER_DEFINED
},
n = "user_defined" === t.bgColor ? t.bgColorUser : t.bgColor,
i = t.imageStretch ? "cover" : "auto",
a = t.imageRepeat ? "repeat" : "no-repeat",
r = void 0;
return r = t.showImage && "user_defined" === t.imageUrl ? "url(" + t.imageUrlUser + ")" : t.showImage ? "url(" + t.imageUrl + ")" : "url(data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=)", {
backgroundColor: n,
backgroundImage: r,
backgroundSize: i,
backgroundRepeat: a
}
},
setTabPosition: function(e) {
o.set({
TAB_POSITION: e
})
},
setBackground: function(e) {
o.set({
STARTPAGE_SHOW_IMAGE: !0,
STARTPAGE_IMAGE: e
})
},
_setTheme: function(e) {
.1 === e.version && o.set({
THEME_CURRENT: e.name,
BROWSER_COLOR_BG: e.colors.baseBg,
BROWSER_COLOR_FG: e.colors.baseFg,
BROWSER_COLOR_HIGHLIGHT_BG: e.colors.highlightBg,
BROWSER_COLOR_ACCENT_BG: e.colors.accentBg,
TABCOLOR_BEHIND_TABS: e.settings.accentOnWindow,
USE_TABCOLOR: e.settings.accentFromPage,
USE_TAB_TRANSPARENT_TABS: e.settings.tabsTransparent,
BORDER_RADIUS: e.settings.borderRadius
})
},
render: function() {
var e = this;
if (!this.props.open || !this.props.vivaldiSettings.THEMES_SYSTEM) return null;
var t = "mailto:" + f + "?subject=" + g + "&body=" + _,
o = this.props.vivaldiSettings,
c = o.THEMES_SYSTEM.concat(o.THEMES_USER),
u = o.TAB_POSITION,
v = o.STARTPAGE_IMAGE,
b = this.state.currentPageIndex,
N = s(i({
welcome: !0
}, "showstep-" + b, !0));
return r.createElement("div", {
className: N,
style: this.getStartpageStyle(),
__source: {
fileName: a,
lineNumber: 196
}
}, r.createElement("h2", {
__source: {
fileName: a,
lineNumber: 200
}
}, m("Welcome to Vivaldi")), r.createElement("h1", {
__source: {
fileName: a,
lineNumber: 201
}
}, m("Let’s Get You Started!")), r.createElement("div", {
className: "steps",
__source: {
fileName: a,
lineNumber: 203
}
}, r.createElement(h, {
goForward: this.goForward,
nextText: m("Tab Bar Position"),
isCurrent: 1 === b,
step: "1",
__source: {
fileName: a,
lineNumber: 205
}
}, r.createElement("p", {
__source: {
fileName: a,
lineNumber: 210
}
}, m("Spend one minute setting things up just the way you like\n it.")), r.createElement("p", {
__source: {
fileName: a,
lineNumber: 212
}
}, m("Let’s start with some appearance choices.\n Which one of these do you prefer?")), c.splice(0, 6).map(function(t) {
return r.createElement(A, {
tabIndex: 1 === b ? e.props.vivaldiSettings.KEY_ACCESS : "-1",
key: t.name,
themeObject: t,
onClick: e._setTheme.bind(e, t),
__source: {
fileName: a,
lineNumber: 216
}
})
})), r.createElement(h, {
goForward: this.goForward,
goBackward: this.goBackward,
nextText: m("Startpage Backgrounds"),
isCurrent: 2 === b,
step: "2",
__source: {
fileName: a,
lineNumber: 226
}
}, r.createElement("p", {
__source: {
fileName: a,
lineNumber: 232
}
}, m("Just as important, where do you like your tab bar\n positioned?")), r.createElement(d, {
position: "top",
selected: "top" === u,
tabIndex: 2 === b ? this.props.vivaldiSettings.KEY_ACCESS : "-1",
onClick: this.setTabPosition.bind(this, "top"),
__source: {
fileName: a,
lineNumber: 234
}
}), r.createElement(d, {
position: "left",
selected: "left" === u,
tabIndex: 2 === b ? this.props.vivaldiSettings.KEY_ACCESS : "-1",
onClick: this.setTabPosition.bind(this, "left"),
__source: {
fileName: a,
lineNumber: 239
}
}), r.createElement(d, {
position: "right",
selected: "right" === u,
tabIndex: 2 === b ? this.props.vivaldiSettings.KEY_ACCESS : "-1",
onClick: this.setTabPosition.bind(this, "right"),
__source: {
fileName: a,
lineNumber: 244
}
}), r.createElement(d, {
position: "bottom",
selected: "bottom" === u,
tabIndex: 2 === b ? this.props.vivaldiSettings.KEY_ACCESS : "-1",
onClick: this.setTabPosition.bind(this, "bottom"),
__source: {
fileName: a,
lineNumber: 249
}
})), r.createElement(h, {
goForward: this.goForward,
goBackward: this.goBackward,
nextText: m("Get in Touch"),
isCurrent: 3 === b,
step: "3",
__source: {
fileName: a,
lineNumber: 256
}
}, r.createElement("p", {
__source: {
fileName: a,
lineNumber: 262
}
}, m("Pick a background picture for your Start Page.")), p.map(function(t) {
var n = s({
selectbox: !0,
"selectbox-selected": t.path === v
});
return r.createElement("button", {
key: t.name,
title: t.name,
tabIndex: 3 === b ? e.props.vivaldiSettings.KEY_ACCESS : "-1",
className: n,
onClick: e.setBackground.bind(e, t.path),
__source: {
fileName: a,
lineNumber: 270
}
}, r.createElement("div", {
className: "selectbox-image",
style: {
backgroundImage: "url(" + t.path + ")"
},
__source: {
fileName: a,
lineNumber: 277
}
}, r.createElement("svg", {
xmlns: "http://www.w3.org/2000/svg",
className: "selectbox-checkmark",
viewBox: "0 0 16 16",
__source: {
fileName: a,
lineNumber: 279
}
}, r.createElement("path", {
d: "M5.3 13.3L1.5 9.5 3 8l2.3 2.5L13 2.7 14.6 4l-8 8z",
__source: {
fileName: a,
lineNumber: 281
}
}))), r.createElement("div", {
className: "selectbox-title",
__source: {
fileName: a,
lineNumber: 284
}
}, t.name))
})), r.createElement(h, {
goBackward: this.goBackward,
isCurrent: 4 === b,
step: "4",
__source: {
fileName: a,
lineNumber: 290
}
}, r.createElement("button", {
className: "welcome-cta-button",
tabIndex: 4 === b ? this.props.vivaldiSettings.KEY_ACCESS : "-1",
onClick: l.openURL.bind(this, "http://vvld.in/v-tutorials", {
inCurrent: !1,
inBackground: !1
}),
__source: {
fileName: a,
lineNumber: 294
}
}, r.createElement("div", {
dangerouslySetInnerHTML: {
__html: n(1031)
},
__source: {
fileName: a,
lineNumber: 302
}
}), r.createElement("div", {
__source: {
fileName: a,
lineNumber: 304
}
}, m("Watch video tutorials"))), r.createElement("button", {
className: "welcome-cta-button",
tabIndex: 4 === b ? this.props.vivaldiSettings.KEY_ACCESS : "-1",
onClick: this.goStart,
__source: {
fileName: a,
lineNumber: 306
}
}, r.createElement("div", {
dangerouslySetInnerHTML: {
__html: n(1029)
},
__source: {
fileName: a,
lineNumber: 310
}
}), r.createElement("div", {
__source: {
fileName: a,
lineNumber: 312
}
}, m("Start browsing"))), r.createElement("button", {
className: "welcome-cta-button",
tabIndex: 4 === b ? this.props.vivaldiSettings.KEY_ACCESS : "-1",
onClick: l.openURL.bind(this, "http://vvld.in/v-community", {
inCurrent: !1,
inBackground: !1
}),
__source: {
fileName: a,
lineNumber: 314
}
}, r.createElement("div", {
dangerouslySetInnerHTML: {
__html: n(1026)
},
__source: {
fileName: a,
lineNumber: 322
}
}), r.createElement("div", {
__source: {
fileName: a,
lineNumber: 324
}
}, m("Join the community"))), r.createElement("button", {
className: "welcome-cta-button",
tabIndex: 4 === b ? this.props.vivaldiSettings.KEY_ACCESS : "-1",
onClick: l.openURL.bind(this, "http://vvld.in/v-social", {
inCurrent: !1,
inBackground: !1
}),
__source: {
fileName: a,
lineNumber: 326
}
}, r.createElement("div", {
dangerouslySetInnerHTML: {
__html: n(1028)
},
__source: {
fileName: a,
lineNumber: 334
}
}), r.createElement("div", {
__source: {
fileName: a,
lineNumber: 336
}
}, m("Follow us around the Web"))), r.createElement("button", {
className: "welcome-cta-button",
tabIndex: 4 === b ? this.props.vivaldiSettings.KEY_ACCESS : "-1",
onClick: l.openURL.bind(this, t, {
inBackground: !0
}),
__source: {
fileName: a,
lineNumber: 338
}
}, r.createElement("div", {
dangerouslySetInnerHTML: {
__html: n(1030)
},
__source: {
fileName: a,
lineNumber: 344
}
}), r.createElement("div", {
__source: {
fileName: a,
lineNumber: 346
}
}, m("Tell your friends"))), r.createElement("button", {
className: "welcome-cta-button",
tabIndex: 4 === b ? this.props.vivaldiSettings.KEY_ACCESS : "-1",
onClick: l.openURL.bind(this, "http://vvld.in/v-webmail", {
inCurrent: !1,
inBackground: !1
}),
__source: {
fileName: a,
lineNumber: 348
}
}, r.createElement("div", {
dangerouslySetInnerHTML: {
__html: n(1027)
},
__source: {
fileName: a,
lineNumber: 356
}
}), r.createElement("div", {
__source: {
fileName: a,
lineNumber: 358
}
}, m("Get free Email"))))))
}
});
e.exports = u(b, v)
}, function(e, t) {
// =========================
// Function_745
// =========================
"use strict";
var n = function(e, t, n, i, a, r) {
this.id = e, this.title = n, this.style = i, this.description = a, this.menuItems = r, this.progress = 0, this.text = t
};
e.exports = n
}, function(e, t) {
// =========================
// Function_746
// =========================
"use strict";
e.exports = {
SETTINGS_MIGRATION_VERSION: 0,
ADDRESS_BAR_AUTOCOMPLETE_ENABLED: !0,
ADDRESS_BAR_AUTOCOMPLETE_TLD: "com",
ADDRESS_BAR_AUTOCOMPLETE_PREFER_BOOKMARKS: !0,
ADDRESS_BAR_CUTCOPY_ENCODED: !1,
ADDRESS_BAR_OMNIDROPDOWN_ENABLED: !0,
ADDRESS_BAR_POSITION: "top",
ADDRESS_BAR_SELECT_ON_CLICK: !0,
ADDRESS_BAR_SHOW_PROGRESS: !0,
ADDRESS_BAR_URL_OPEN_SHORTCUT: "alt",
ALT_GESTURES_ENABLED: !1,
BOOKMARKS_BAR_BOOKMARKSSORT: {
sortOrder: 1,
sortField: "manually"
},
BOOKMARKS_BAR_FOLDER_IDS: ["1"],
BOOKMARKS_MANAGER_BOOKMARKSSORT: {
sortOrder: 1,
sortField: "manually"
},
BOOKMARKS_OPEN_IN_NEW_TAB: !1,
BOOKMARKS_PANEL_BOOKMARKSSORT: {
sortOrder: 1,
sortField: "manually"
},
BOOKMARK_BAR_DISPLAY: "default",
BOOKMARK_BAR_POSITION: "top",
BOOKMARK_BAR_VISIBLE: !1,
BORDER_RADIUS: 0,
BROWSER_COLOR_BG: "#ececec",
BROWSER_COLOR_FG: "#111111",
BROWSER_COLOR_ACCENT_BG: "#c83838",
BROWSER_COLOR_HIGHLIGHT_BG: "#006ed7",
CHECK_DEFAULT_BROWSER_STARTUP: !1,
CLOSABLE_PINNED_TABS: "off",
COMMAND_ADD_BOOKMARK: {
shortcut: ["ctrl+d"],
showInQC: !0
},
COMMAND_BASIC_PRINT: {
shortcut: ["ctrl+shift+p"],
showInQC: !0
},
COMMAND_CAPTURE_PAGE_TO_DISK: {
showInQC: !0
},
COMMAND_CAPTURE_PAGE_TO_CLIPBOARD: {
showInQC: !0
},
COMMAND_CAPTURE_AREA_TO_DISK: {
showInQC: !0
},
COMMAND_CAPTURE_AREA_TO_CLIPBOARD: {
showInQC: !0
},
COMMAND_CLIPBOARD_PASTE_AS_NOTE: {
showInQC: !0
},
COMMAND_CLIPBOARD_PASTE_AS_PLAIN_TEXT: {
showInQC: !0
},
COMMAND_CLIPBOARD_PASTE_AS_PLAIN_TEXT_OR_PASTE_AND_GO: {
shortcut: ["ctrl+shift+v"],
showInQC: !0
},
COMMAND_CLONE_TAB: {
showInQC: !0
},
COMMAND_CLOSE_ALL_BUT_ACTIVE_TAB: {
showInQC: !0
},
COMMAND_CLOSE_TAB: {
shortcut: ["ctrl+w", "ctrl+f4"],
gestures: ["20"],
showInQC: !0
},
COMMAND_CLOSE_TAB_TO_LEFT: {
showInQC: !0
},
COMMAND_CLOSE_TAB_TO_RIGHT: {
showInQC: !0
},
COMMAND_CLOSE_WINDOW: {
showInQC: !0
},
COMMAND_COPY_SELECTION_TO_NOTE: {
shortcut: ["ctrl+shift+c"],
showInQC: !0
},
COMMAND_DEVELOPER_TOOLS: {
shortcut: ["ctrl+shift+i", "f12"],
showInQC: !0
},
COMMAND_DOWNLOAD_EXTENSIONS: {
showInQC: !0
},
COMMAND_EXPORT_DATA: {
showInQC: !0
},
COMMAND_EXPORT_SETTINGS: {
showInQC: !0
},
COMMAND_FIND_IN_PAGE: {
shortcut: ["ctrl+f", "."],
showInQC: !0
},
COMMAND_FIND_NEXT_IN_PAGE: {
shortcut: ["f3", "ctrl+g"],
showInQC: !0
},
COMMAND_FIND_PREVIOUS_IN_PAGE: {
shortcut: ["shift+f3", "ctrl+shift+g"],
showInQC: !0
},
COMMAND_PAGE_SCROLL_UP: {
showInQC: !0
},
COMMAND_PAGE_SCROLL_DOWN: {
showInQC: !0
},
COMMAND_PAGE_SCROLL_TOP: {
showInQC: !0
},
COMMAND_PAGE_SCROLL_BOTTOM: {
showInQC: !0
},
COMMAND_FOCUS_ADDRESSFIELD: {
shortcut: ["f8", "ctrl+l"],
showInQC: !0
},
COMMAND_FOCUS_PANEL: {
shortcut: ["f7"],
showInQC: !0
},
COMMAND_FOCUS_SEARCHFIELD: {
shortcut: ["ctrl+k", "ctrl+e"],
showInQC: !0
},
COMMAND_FOCUS_WEBVIEW: {
shortcut: ["f9"],
showInQC: !0
},
COMMAND_FULLSCREEN: {
shortcut: ["f11"],
showInQC: !0
},
COMMAND_IMPORT_DATA: {
showInQC: !0
},
COMMAND_IMPORT_SETTINGS: {
showInQC: !0
},
COMMAND_MAIL_REPLY: {
shortcut: ["r"],
showInQC: !0
},
COMMAND_MAIL_FORWARD: {
shortcut: ["f"],
showInQC: !0
},
COMMAND_MAIN_TOGGLE_ADDRESS_BAR: {
shortcut: [],
showInQC: !0
},
COMMAND_MAIN_TOGGLE_TAB_BAR: {
shortcut: [],
showInQC: !0
},
COMMAND_MAIN_TOGGLE_UI: {
shortcut: ["ctrl+f11"],
showInQC: !0
},
COMMAND_MAIN_ZOOM_DOUBLE: {
shortcut: ["8", "numpad8"],
showInQC: !0
},
COMMAND_MAIN_ZOOM_HALF: {
shortcut: ["7", "numpad7"],
showInQC: !0
},
COMMAND_MAIN_ZOOM_IN: {
shortcut: ["0", "numpad0", "+", "ctrl+=", "ctrl++"],
showInQC: !0
},
COMMAND_MAIN_ZOOM_OUT: {
shortcut: ["9", "numpad9", "-", "ctrl+-"],
showInQC: !0
},
COMMAND_MAIN_ZOOM_RESET: {
shortcut: ["ctrl+0", "ctrl+numpad0", "6", "numpad6", "*", "ctrl+*"],
showInQC: !0
},
COMMAND_MOVE_TAB_TO_NEW_WINDOW: {
showInQC: !0
},
COMMAND_NEW_BACKGROUND_TAB: {
gestures: ["26"],
showInQC: !0
},
COMMAND_NEW_PRIVATE_WINDOW: {
shortcut: ["ctrl+shift+n"],
showInQC: !0
},
COMMAND_NEW_TAB: {
shortcut: ["ctrl+t"],
gestures: ["2"],
showInQC: !0
},
COMMAND_NEW_WINDOW: {
shortcut: ["ctrl+n"],
showInQC: !0
},
COMMAND_OPEN_PAGE: {
shortcut: ["ctrl+o"],
showInQC: !0
},
COMMAND_OPEN_SESSION: {
showInQC: !0
},
COMMAND_PAGE_BACK: {
shortcut: ["backspace", "ctrl+left", "alt+left", "z"],
gestures: ["4"],
showInQC: !0
},
COMMAND_PAGE_DISABLE_KEYBOARD_SHORTCUTS: {
showInQC: !0
},
COMMAND_PAGE_FAST_FORWARD: {
showInQC: !0,
gestures: ["06"]
},
COMMAND_PAGE_FORWARD: {
shortcut: ["ctrl+right", "alt+right", "x"],
gestures: ["0"],
showInQC: !0
},
COMMAND_PAGE_TOGGLE_MUTE: {
showInQC: !0
},
COMMAND_PAGE_MUTE_OTHER: {
showInQC: !0
},
COMMAND_PAGE_MUTE_ALL: {
showInQC: !0
},
COMMAND_PAGE_UNMUTE_OTHER: {
showInQC: !0
},
COMMAND_PAGE_UNMUTE_ALL: {
showInQC: !0
},
COMMAND_PAGE_REFRESH: {
shortcut: ["ctrl+r", "f5"],
gestures: ["62"],
showInQC: !0
},
COMMAND_PAGE_RELOAD_NOCACHE: {
shortcut: ["ctrl+shift+r", "ctrl+f5"],
showInQC: !0
},
COMMAND_PAGE_REWIND: {
showInQC: !0,
gestures: ["42"]
},
COMMAND_PASTE_AND_GO: {
showInQC: !0
},
COMMAND_PIN_TAB: {
showInQC: !0
},
COMMAND_PRINT_PAGE: {
shortcut: ["ctrl+p"],
showInQC: !0
},
COMMAND_READERVIEW_TOGGLE: {
shortcut: [],
showInQC: !0
},
COMMAND_SAVE_PAGE: {
shortcut: ["ctrl+s"],
showInQC: !0
},
COMMAND_SAVE_SESSION: {
showInQC: !0
},
COMMAND_SHOW_BOOKMARKS: {
shortcut: ["ctrl+b"],
showInQC: !0
},
COMMAND_SHOW_BOOKMARK_BAR: {
shortcut: ["ctrl+shift+b"],
showInQC: !0
},
COMMAND_SHOW_BOOKMARK_PANEL: {
shortcut: ["f6"],
showInQC: !0
},
COMMAND_SHOW_CLEAR_PRIVATE_DATA: {
shortcut: ["ctrl+shift+del"],
showInQC: !0
},
COMMAND_SHOW_CONTACTS_PANEL: {
showInQC: !0
},
COMMAND_SHOW_DOWNLOADS_PANEL: {
shortcut: ["ctrl+shift+d"],
showInQC: !0
},
COMMAND_SHOW_EXTENSIONS: {
shortcut: ["ctrl+shift+e"],
showInQC: !0
},
COMMAND_SHOW_HELP: {
shortcut: ["f1"],
showInQC: !0
},
COMMAND_SHOW_HISTORY: {
shortcut: ["ctrl+h"],
showInQC: !0
},
COMMAND_SHOW_HOMEPAGE: {
shortcut: ["alt+home"],
showInQC: !0
},
COMMAND_SHOW_KEYBOARDSHORTCUTS: {
shortcut: ["ctrl+f1"],
showInQC: !0
},
COMMAND_SHOW_MAIL_PANEL: {
shortcut: ["ctrl+shift+m"],
showInQC: !0
},
COMMAND_SHOW_NEXT_PANEL: {
shortcut: ["alt+f7"],
showInQC: !0
},
COMMAND_SHOW_NOTES_PANEL: {
shortcut: ["ctrl+shift+o"],
showInQC: !0
},
COMMAND_SHOW_PLUGINS: {
showInQC: !0
},
COMMAND_SHOW_PREVIOUS_PANEL: {
shortcut: ["alt+shift+f7"],
showInQC: !0
},
COMMAND_SHOW_QUICK_COMMANDS: {
shortcut: ["f2"],
showInQC: !1
},
COMMAND_SHOW_SETTINGS: {
shortcut: ["alt+p"],
showInQC: !0
},
COMMAND_SHOW_WEB_PANEL_1: {
showInQC: !0
},
COMMAND_SHOW_WEB_PANEL_2: {
showInQC: !0
},
COMMAND_SHOW_WEB_PANEL_3: {
showInQC: !0
},
COMMAND_SHOW_WEB_PANEL_4: {
showInQC: !0
},
COMMAND_SHOW_WEB_PANEL_5: {
showInQC: !0
},
COMMAND_SHOW_WEB_PANEL_6: {
showInQC: !0
},
COMMAND_SHOW_WEB_PANEL_7: {
showInQC: !0
},
COMMAND_SHOW_WEB_PANEL_8: {
showInQC: !0
},
COMMAND_SHOW_WEB_PANEL_9: {
showInQC: !0
},
COMMAND_SHOW_WELCOME: {
showInQC: !0
},
COMMAND_SPATNAV_DOWN: {
shortcut: ["shift+down", "s"]
},
COMMAND_SPATNAV_LEFT: {
shortcut: ["shift+left", "a"]
},
COMMAND_SPATNAV_RIGHT: {
shortcut: ["shift+right", "d"]
},
COMMAND_SPATNAV_UP: {
shortcut: ["shift+up", "w"]
},
COMMAND_STOP_PAGE: {
shortcut: ["esc"],
gestures: ["6"],
showInQC: !0
},
COMMAND_TAB_REOPEN_RECENTLY_CLOSED: {
shortcut: ["ctrl+z", "ctrl+shift+t"],
gestures: ["60"],
showInQC: !0
},
COMMAND_TAB_STACK_TILE_GRID: {
shortcut: ["ctrl+f7"],
showInQC: !0
},
COMMAND_TAB_STACK_TILE_HORIZONTAL: {
shortcut: ["ctrl+f8"],
showInQC: !0
},
COMMAND_TAB_STACK_TILE_VERTICAL: {
shortcut: ["ctrl+f9"],
showInQC: !0
},
COMMAND_TAB_STACK_UNTILE: {
shortcut: ["ctrl+f6"],
showInQC: !0
},
COMMAND_TAB_SWITCH_BACK_HISTORY: {
shortcut: ["3", "numpad3"],
showInQC: !0
},
COMMAND_TAB_SWITCH_BACK_ORDER: {
shortcut: ["ctrl+pagedown", "2", "numpad2"],
showInQC: !0
},
COMMAND_TAB_SWITCH_BACK_SETTING: {
shortcut: ["ctrl+tab"],
showInQC: !1
},
COMMAND_TAB_SWITCH_FORWARD_HISTORY: {
shortcut: ["4", "numpad4"],
showInQC: !0
},
COMMAND_TAB_SWITCH_FORWARD_ORDER: {
shortcut: ["ctrl+pageup", "1", "numpad1"],
showInQC: !0
},
COMMAND_TAB_SWITCH_FORWARD_SETTING: {
shortcut: ["ctrl+shift+tab"],
showInQC: !1
},
COMMAND_TAB_SWITCH_1: {
shortcut: ["ctrl+1", "ctrl+numpad1"],
showInQC: !1
},
COMMAND_TAB_SWITCH_2: {
shortcut: ["ctrl+2", "ctrl+numpad2"],
showInQC: !1
},
COMMAND_TAB_SWITCH_3: {
shortcut: ["ctrl+3", "ctrl+numpad3"],
showInQC: !1
},
COMMAND_TAB_SWITCH_4: {
shortcut: ["ctrl+4", "ctrl+numpad4"],
showInQC: !1
},
COMMAND_TAB_SWITCH_5: {
shortcut: ["ctrl+5", "ctrl+numpad5"],
showInQC: !1
},
COMMAND_TAB_SWITCH_6: {
shortcut: ["ctrl+6", "ctrl+numpad6"],
showInQC: !1
},
COMMAND_TAB_SWITCH_7: {
shortcut: ["ctrl+7", "ctrl+numpad7"],
showInQC: !1
},
COMMAND_TAB_SWITCH_8: {
shortcut: ["ctrl+8", "ctrl+numpad8"],
showInQC: !1
},
COMMAND_TAB_SWITCH_LAST: {
shortcut: ["ctrl+9", "ctrl+numpad9"],
showInQC: !1
},
COMMAND_TAB_VIEW_PAGE_SOURCE: {
shortcut: ["ctrl+u"],
showInQC: !0
},
COMMAND_TAB_THUMBNAIL: {
shortcut: [],
showInQC: !0
},
COMMAND_TASK_MANAGER: {
shortcut: ["shift+esc"],
showInQC: !0
},
COMMAND_TOGGLE_FOOTER: {
shortcut: ["ctrl+shift+s"],
showInQC: !0
},
COMMAND_TOGGLE_INTERFACE_COLOR: {
showInQC: !0
},
COMMAND_TOGGLE_MENU_POSITION: {
shortcut: ["ctrl+m"],
showInQC: !0
},
COMMAND_TOGGLE_PANEL: {
shortcut: ["f4"],
showInQC: !0
},
CONTRAST_MINIMUM: 0,
DEFAULT_TAB_PAGE: "",
DEFAULT_TAB_CUSTOM_PAGE: "",
DEFAULT_SEARCH_ENGINE: "1",
DIM_BLURRED: !1,
DISABLE_KEYBOARD_SHORTCUTS: !1,
DISABLE_SINGLE_KEY_SHORTCUTS: !0,
EXPAND_BOOKMARKS_MANAGER: {},
EXPAND_BOOKMARKS_PANEL: {},
EXTENSIONS_TOOLBAR_VISIBLE: !0,
EXTENSIONS_TOOLBAR_TOGGLE_BUTTON_ENABLED: !1,
FOCUS_CYCLE_TRAP: !0,
HUE_BRIDGE_IP: "",
HUE_ENABLED: !1,
HUE_GROUPS: [],
HUE_LIGHTS: [],
HUE_LIGHTS_SELECTED: [],
HUE_USERNAME: "",
KEY_ACCESS: "-1",
KEY_ACCESS_OS_DEFAULT: !1,
KEY_VIVALDI_MENU_POSITION: "f2",
LINUX_ALT_CONTROLS: !1,
MAIL_IMAP_LOGS_ON: !1,
MAIL_IS_TURNED_OFF: !1,
MAIL_CHECK_INTERVAL: 15,
MAIL_COMPOSE_HEADERS_HIDDEN: [],
MAIL_READ_HEADERS_HIDDEN: [],
MAIL_SEARCH_ASCENDING: !1,
MAIL_SEARCH_THREADING: !1,
MAIL_SEND_OR_QUEUE: "send",
MAIL_VIEW_LAYOUT: "top",
MAIL_VIEW_POS: {
width: 400,
height: 240
},
MINIMALISTIC_UI_RECOVER_INFO: {
SHOW_PANEL: "",
SHOW_ADDRESS_BAR: "",
SHOW_TAB_BAR: "",
SHOW_VIVALDI_FOOTER: ""
},
MINIMALISTIC_UI_SHOW: !0,
MOUSE_GESTURES_ENABLED: !0,
MOUSE_WHEEL_TAB_SWITCHING: !1,
MOUSE_WHEEL_PAGE_ZOOM: !0,
NOTES_ADD_SCREENSHOT: !0,
OPEN_SAFE_FILES: !1,
PANEL_POSITION: "left",
QUICK_COMMAND_OPEN_URL_IN_NEW_TAB: !1,
QC_LAUNCH_BOOKMARK_ON_NICK_MATCH: !1,
BOOKMARKS_CONFIRM_BEFORE_OPEN: !0,
BOOKMARKS_CONFIRM_THRESHOLD: "20",
BOOKMARKS_SINGLE_CLICK_IN_TREE: !1,
URLFIELD_TYPED_HISTORY_ENABLED: !0,
SEARCH_FIELD_TYPED_HISTORY_ENABLED: !0,
SEARCH_FIELD_ENABLED: !0,
SEARCH_FIELD_SUGGEST_ENABLED: !1,
SHOW_ADDRESS_BAR: !0,
SHOW_DOWNLOADPANEL_FOR_NEW_DOWNLOADS: !0,
DOWNLOAD_NOTIFICATIONS: !0,
SHOW_FFW_RWD_BUTTONS: !0,
SHOW_FULLSCREEN_BUBBLE: !0,
SHOW_NOTESPANEL_FOR_NEW_NOTES: !1,
SHOW_PANEL: !0,
SHOW_PANEL_SWITCH: !1,
SHOW_TAB_BAR: !0,
SHOW_VIVALDI_FOOTER: "on",
SPEEDDIAL_ADDBUTTON_VISIBLE: !0,
SPEEDDIAL_COLS: 6,
SPEEDDIAL_TITLES_VISIBLE: "always",
STARTPAGE_BG_COLOR: "#cccccc",
STARTPAGE_BG_COLOR_USER_DEFINED: "#bfb8b0",
STARTPAGE_IMAGE: "./../resources/bg.jpg",
STARTPAGE_IMAGE_REPEAT: !1,
STARTPAGE_IMAGE_STRETCH: !0,
STARTPAGE_IMAGE_USER_DEFINED: "./../resources/bg.jpg",
STARTPAGE_SHOW_IMAGE: !0,
STARTUP_SESSION_URLS: [],
SWITCH_TABS_AT_WINDOW_EDGE: !1,
SYNC_SETTINGS: [{
id: 1,
name: "Apps",
selected: !1
}, {
id: 2,
name: "Autofill",
selected: !1
}, {
id: 3,
name: "Bookmarks",
selected: !1
}, {
id: 4,
name: "Extensions",
selected: !1
}, {
id: 5,
name: "History",
selected: !1
}, {
id: 6,
name: "Passwords",
selected: !1
}, {
id: 7,
name: "Settings",
selected: !1
}, {
id: 8,
name: "Themes",
selected: !1
}, {
id: 9,
name: "Open tabs",
selected: !1
}, {
id: 10,
name: "Notes",
selected: !1
}],
TABBAR_WIDTH: 180,
TABCOLOR_BEHIND_TABS: !1,
TAB_ACTIVATION_PREFER_RELATED: !0,
TAB_CLICK_ACTIVE_OPENS_PREVIOUS: !1,
TAB_CLONE_PLACEMENT: "rightofcurrent",
TAB_CLOSEBUTTON_ENABLED: !0,
TAB_CLOSE_ACTIVATION: "activation_order",
TAB_CLOSE_ALIGN_NEXT: !0,
TAB_COUNTER_DETECTION: !0,
TAB_CYCLING_ORDER: "recently used",
TAB_NEVER_CLOSE_LAST: !0,
TAB_NEW_PLACEMENT: "rightofcurrent",
TAB_POSITION: "top",
TAB_SCROLLING: "off",
TAB_SELECTION_ENABLED: !0,
TAB_SELECTION_INCLUDE_ACTIVE: !0,
TAB_STACKING: "on",
TAB_STACKING_ALLOW_RENAME: !1,
TAB_STACKING_OPEN_IN_CURRENT: !0,
TAB_SWITCH_VISUAL: !1,
TAB_THUMBNAILS_ENABLED: !0,
TAB_UNREAD_ENABLED: !0,
THEME_CURRENT: "Light",
THEMES_SCHEDULE: [{
id: 0,
minutes: 30,
hours: 7,
themeName: "Light",
undeletable: !0
}, {
id: 1,
minutes: 0,
hours: 20,
themeName: "Dark",
undeletable: !0
}],
THEMES_SCHEDULE_ENABLED: !1,
THEMES_SYSTEM: [{
version: .1,
name: "Light",
colors: {
baseBg: "#ececec",
baseFg: "#3b3b3b",
highlightBg: "#006ed7",
accentBg: "#c83838"
},
settings: {
accentFromPage: !0,
accentOnWindow: !1,
tabsTransparent: !1,
borderRadius: 0
}
}, {
version: .1,
name: "Subtle",
colors: {
baseBg: "#f6f6f6",
baseFg: "#333333",
highlightBg: "#006ed7",
accentBg: "#cccccc"
},
settings: {
accentFromPage: !1,
accentOnWindow: !0,
tabsTransparent: !1,
borderRadius: 0
}
}, {
version: .1,
name: "Redmond",
colors: {
baseBg: "#f5f4f6",
baseFg: "#1e1e1e",
highlightBg: "#0070da",
accentBg: "#0070da"
},
settings: {
accentFromPage: !0,
accentOnWindow: !0,
tabsTransparent: !1,
borderRadius: 2
}
}, {
version: .1,
name: "Hot Pink",
colors: {
baseBg: "#412d38",
baseFg: "#f5dbef",
highlightBg: "#ff368f",
accentBg: "#b63e62"
},
settings: {
accentFromPage: !0,
accentOnWindow: !0,
tabsTransparent: !1,
borderRadius: 4
}
}, {
version: .1,
name: "Olive",
colors: {
baseBg: "#daded3",
baseFg: "#192419",
highlightBg: "#ff7700",
accentBg: "#566e49"
},
settings: {
accentFromPage: !1,
accentOnWindow: !0,
tabsTransparent: !1,
borderRadius: 5
}
}, {
version: .1,
name: "Dark",
colors: {
baseBg: "#26272A",
baseFg: "#ececec",
highlightBg: "#006ed7",
accentBg: "#c83838"
},
settings: {
accentFromPage: !0,
accentOnWindow: !1,
tabsTransparent: !1,
borderRadius: 0
}
}, {
version: .1,
name: "Human",
colors: {
baseBg: "#41403b",
baseFg: "#e4e4dc",
highlightBg: "#ed773d",
accentBg: "#e95421"
},
settings: {
accentFromPage: !0,
accentOnWindow: !0,
tabsTransparent: !1,
borderRadius: 0
}
}, {
version: .1,
name: "Blueprint",
colors: {
baseBg: "#2e3a50",
baseFg: "#ffffff",
highlightBg: "#ffb608",
accentBg: "#ffb608"
},
settings: {
accentFromPage: !0,
accentOnWindow: !1,
tabsTransparent: !1,
borderRadius: 0
}
}],
THEMES_USER: [],
URLBAR_SEARCH_DISABLED: !1,
USE_ANIMATION: !0,
USE_BUTTONS_IN_RANGE_CONTROLS: !1,
USE_CLOSE_ON_DOUBLECLICK: !1,
USE_NATIVE_WINDOW_DECORATIONS: !1,
USE_SETTINGS_WINDOW_AS_TAB: !1,
USE_TABCOLOR: !0,
USE_TAB_TRANSPARENT_TABS: !1,
USE_TOOLTIP: !0,
VIVALDI_MENU_POSITION: "vivaldi",
WEB_PANEL_UI: {
showToolbar: !0,
allControls: !1
},
SEARCH_ENGINES: [{
Id: 1,
Name: "Bing",
Keyword: "b",
Url: "https://www.bing.com/search?pc=cosp&ptag=AD6C08C471A&form=CONBDF&conlogo=CT3210127&q=%s",
FaviconUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABR1BMVEUAgnIAgnEAfWwAf28AgXEIhnZAoZUVjH0Ae2oAfGsAgHAMiXnp9PPo9PKbzcdQp5wOiHgLiHji8O7////I5OAIhnXh8O7n8/EMiHgAe2sAfm4JhndHpJkmlYdltKr3+/q93tpls6kYjH0HhnYIhXbo9PPr9fSz2dRWq6AQiHkAeWiSycPj8e+l0sxJpJkKhXYwmo3J5OEMh3cCgXCt1tHt9vYQiXoAgXACgXFKpZq229bx+Pfn8/IPiXoAdGMdjX/D4t4NhnZ1u7Ls9vXs9fUQintaraLX6+nU6ucLhXbe7+xCopa02tX6/fyYzMUdjn8AgG/5/Py43Nc7nZAAemkAf27i8O/W6+hdrqMAfm0AfGwKh3ft9vV2u7INh3cAemoBgHBFopbB4d3+//8jkYMDgnJgr6XZ7eq939pAn5MSiXp8v7Zjs6nfb/V1AAAAAWJLR0QTDLtclgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAP9JREFUOMtjYKAWYGRixivPwsrGzsHJhVsBFzcPLx+/AAtuBYJCwsLCIqIsuBWIARWIS3DhVyAmSAcFklKMeBVIy8hKcTDjUcAiJ6+gqMQkyYVLgbKKqrCwmrqGJid6qMLcoKUtDAI6unr6LFgVcBgIQ4GhERc2BczGJlAFpmZYFXCZW1haWYMU2NhiV8DAbGfvgEcBM4ejkzPYChdXbAoYmNzcoW7w8GTBVODl7QOV9vXzD8DizUCYH4OCQ0LRAypMGA7CIyKjMII62gYmHRMbF48l5SUkJoGlk/1SQrAnCs7UtHRh4YxMSSlcaYYlJCs7x4KTAQ8I4OBkYRgAAADZQSnp408zDAAAAABJRU5ErkJggg==",
SuggestUrl: "https://www.bing.com/osjson.aspx?query=%s"
}, {
Id: 3,
Name: "Yahoo!",
Keyword: "y",
Url: "https://us.search.yahoo.com/yhs/search?hspart=iry&hsimp=yhs-fullyhosted_009&type=dpp_vvldnu_00_00¶m1=1¶m2=pa%3Ddowncoll&p=%s",
FaviconUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABMEAYAAACXB41oAAAqaElEQVR4Ae2dB3hVRffuZ5%2BWTggl9B4g9Bp6Cb2G3ps0KUqRqiAgCCIgSBVCERAUBASkCwhSNfQOCaEEklASCOnllL3vb44crx%2Bf3%2F%2B79z43JNHM86wzu8yesuadd62ZXY7SdYMQe301TWSHbA2kgwYM4rIQ2vZ0yDk7y2wNoAGDOMbvwmxdZGsgfTRg0H6CwT5Nn8yzc83WgEHsQQkfZisiWwPpowGD2AGDjU6fzLNzzdaAQfsOJQzOVkS2BtJHAwaxEQbrmz6ZZ%2BearQGDWAvAOv0DFKG80UZn9g1IPsQF8URMiA6RaRMRC%2FIcSUESXu8TCblqmL1yKDXxX4NBW0Wa1v81XdZNUJ6q50I%2BABNnhbBNJwY46mmOAS7tPrKA7S3IPSQVsSH1kfxgTYKsL7gDcMol4hPERREvhDzFLSQGkelU5E0gc%2BifHJROrYT4oc%2FfYCVfdqyUKkhu%2BvpHgONBv59guynkNFSs0tUQIo8okc%2BlJNgZW6K%2BSxT714p96QKbuXl6jTRMJYsAnZcyF5wFJuyyrgE7nSMHp90W4lmFh3WTuwsRVezenZR9QiQfS3tlBYT6wlzTEjIcAPj%2B7MsmUQ8Jun844AzaIjoCRWW54DBTFag5DGWfrMAoFhjJ9ohDP%2BYb6zxPCL%2FOAbnz1hSiZvuAEO%2BeQhT9pOIF91oAqmeuAQY9wDhgHKCbQB5HlCWiOXjwILc25LdEe1fcAJwdbP5aaaxkQMJFG8ef3g0dnJxDiGtTj1R5QfqgAj90fh4hRIR3qFdSMoALJ4%2FqxL8Sc50WRN7PXmv3Hwg2pSMjb3tQFmSwBnRaASGsP9OJdWGor1w66Vg0btpr0PlCBiFafj68eRFXmGpVqbyuLMWoc9RYbSjgUy2fyk5XtigvlbawzjJ9P7GNvC4p9RUAiC%2BWz%2B6LddXStENcN1XdI%2FpRxgO1pzab9DX0AQqAMjQzHlFgtLilUe%2BZMbVnvL7v%2FKy3EAeuLZ33KEGIlyWf%2BaXCpiaYVPcO%2BToj1EukIdIE%2F0OC0iFSiG1JWQdgSkXAkVsIcyP6aYUQhdaWjnHHhxo4beHnZWGNSrmamXLTqdZPLTptMcAIsE3UutC3M5xW6Z5wTW3rOu0mwOj8vF7aWEzg9ciTacPw6bfF7LQ0J72XNl9bJ4TrRs9dBqMQXh8VfM85gNi9wH2nUgCmkvNZHXWwrElbq8JQ4r64LaI5vt25t66HEJHxwT8nXRBi0%2BqPgkNIf7XO0eUvNgphnAjQ2pF%2BNFIZge3sJpTo7xyUDiMAWJFMDDDHbA0zJ7wBFixgmyyEb8e6HvjZ4v1Wa0ZV2s4pvxLeLjCS%2BVLKNZVONDZy3qWD5ZKevOpn6SDE5eBD%2B6ODhTg3%2B8flz2G%2BR12ubkw4wuSwU8xA814AeSuto4avJllLPAaQ3YyzlCEALTBnS8MYIQrP863mPg%2BTq%2B840bsF8foO3vnWYordCrR2om7m3qlX1NVcd8G0SVnGvk%2BKReUe76alk71CfhPieINNh8Mx30YYTFeYMvoyUMoSSz%2Ftb8xoSsBzIb5vkkkBBriUOnQAszmzNFfHhfAZXr2%2BZy4hJlzb%2BrjqUSFybs7%2F2MkFgPhaumkwkeG0cbDyNRbvyIHAaDpwZ4v5ve9h0h4%2BvtYnXkdenyIX8ZE%2BpqMnkX839r8knonUYpu8pCnTApGbCGAT88HAK7YPIhuQUUIU%2FLnkRDcA06HkuG4lYKpGp%2FoYCgJk0ruKOPKqrfQRjABtqVZOXBViXdXR52%2FvEuKXAlvuRwBcE2XoAaJMK8zI3zQoATDY1oGZEGA50bgTHduETrqGa1TW%2B6VpthBTfffMqZkoRJGmFd73mAOwwsxRKmlgneXS7Oxs%2B%2FniewBnb9slyQ9Pcr3FVlLe0DcuB1CAROBzCl8EcNg7VyWW4U0H3MGcjuOSddyRO0gM5Q6V%2Fhl1A6iijxD%2Bk%2Fq2KwRQB6yat8S3GlWv4HbBkJdz4eKeRnrzmZTlKj7bgkPdllz%2BmWzG%2FtY3BhNrBOC69qS79Xu%2B%2F1YPDmflYNCmoaRCmbAJQdTpGXVrp3irK4Tofmza1z7eQhQbWXlmDkxUmiH5orQsuor6%2FQrg%2BVY%2F9UAw7dg%2FLXDrQ5xu0xLOAQLjPLDzknxuI8T2DnSARgLm%2FzZI4OWAfQCcso9tT8RNiGN9vjsQ%2Fg6u1Q9xba3Ue2TFNbsrwYLG5U6xui34%2BOs8mhguC9HfMC%2BqLIz22S8dDBdg5NRycVZrefI6hZwhLyviAD2bWT0o7RnR3y3PRAyWB5VipiyMehXfpWJsg9a5GwjxUaHdPn6zODdaeSRgCKO7UxNdHSEODf3qXNhZITY0%2BWjbbTrMmAKwMI1KLGlHIORjXzwlSpfgTK56BMdervqnYj5tmPMO60f2KBkOoJ5%2Fvsn3B4kbS1utEcwW55pHbxJi8%2B0pPe8cFmJPpWVd72PyTQPJRubxBIGh%2Fy5BaQflf7stEwHsHKqFAWxdlRXSNI4vvMmzOqavtm%2FnGfl7cbyRVWh0RMSK2%2F4JY4SYNapNv3NFYY7QuGaWuYALH0kpQx5PEa57aybHlbIMsGQYsfTz1hlGMb8Ukytv%2B7EmDFV1WYuReQGj7VfbWU0nRLTukXfyUSFmPGzm8dsCJhs%2BL5ebO1H%2FeKp8j%2BslPTvMNJtZNSjtOjCajmUCgKF0CQYrrMMSpyhywVfvHgyAGhx1qwdonLa6euqZgen9DGN1LC8EDnov9hoMd8ztuzmPYQynCZyjg%2BTiqHjxe15vDVwU90coyRZm09wbBp7OssmpBh3yxMHAll2X%2FPAhldo6k%2FIFTHvB6aGuhBArXIeUuvpQiJOB2%2B%2BH0w5TZdpxijzk4JDmMosHg%2FYRHQpFZ3iQDjEsYANgtmNCVLA2%2FCb3Nvzqcl55jXSWdaxlktYKcnN7cDCpK7PEMgfGP28IaZyn02A8eX9RwySJ9kjuDGzNa%2F%2FO2Jp61RQi2DvowEt3bnPeuLg3FlYqN7f%2Bs1x7OXdIGS8w7dVqtxqS11uIU3O2Tw1PoQ0MNA0mlEsy0tfL6sEgJtMgr0zQDGfqgGKVocSYt9K96sR4nWG7i5gmFyb1uwzbFFgqOPpsjZj3hIjtGWtIBWCm2piVu6SjM7X8xJkl4CeKYUxGbltttl8g1grHDdG0r0KuhoNyX2LAfGdZreFTlvCtEuxZjnnC%2B%2B5TjUxCUnImzrXiP%2BqYcconXewOfxY2lQYtkwBMa4cyd2LqKht%2B0VOn%2FC1LfuQGE9mmWsdpbVB4hP4zhfWiB59eqx0bhd4Z4eo7gOpXQFmLayOQBCSzhNeMrAykQgyU%2B7OvTY2tBLBWm%2BurDBBtpYgV%2FbGmQ7xrOsFkOccXjDV9wMJw4l1hXkmbWAKRdyzsa2QwX1YNdgazP86SUS3AJEhfSTuN%2BAGwSPdyujmYxh%2B9kox3OOah9hIzANMiLVHrjHO8MrxtMr6LMkB8LLZzrZwUjEEyG8Awi8JIPfEXRVcms7siBqeYYLTDKa5qQZh3gUtB3VLiIJeJegaWu8hd3AhrqS7IYBgb10UvXZdUJCsDTJtCJ2akD%2BYAmARTKEy1w%2FSuXIk3LOIphwcot4z4Ti4DqB%2BqNzX8qzSP5JJynUn4kN4faYncZD8aoUMzTXCiJgbElfr1g4hKpQyX905VJ%2Bt5NZDjh0RbHQyl1NHpxEGSJpj66GaSdpUYKh8A%2FcM3ZmKTpQFm98EkFWdUeA0wUR6llkSXY615VZxdW0NrUfVbKpVblJB11PXSbVfYN3m4bNclkTYfcobzp4ilOYpEpB%2BXWYIbFQHw2ofIRQBU3rmDMph2zDUUVGiruCbC5Oq9lk%2FtI5ZhOhMtFWxfcZw2aQnEt4llv2R1gNkZzJuGZFR4PesSrGVp89Dnh4m15IN8yfvjSlgAmvJxsXcE5kK3Q%2F9c%2BiS5qxQa6VwEJugpdqv4ZNoQzoVR%2BccI5iXTBAl62EvFkVd9eRrDUtDi1JoBst0lRH%2BXc4HcEX3FgrJ3mq9tI2urpWJHmy9z%2FGdEguwKIvslqwMMT0ZoBWhIBgcFMImZuBx1zSMsk1gU3%2Fa4RRJOcckW1QbktHCuIQ89F2bWtbDy7Jyr2G%2BOXKPuOREJxP7sZ4J2UIvfgwS7ASY%2BBMCYUZYYXDkyJ5MS4yjTBt1aGKuz5bF82Sa%2B7Yuu5h%2BYFXd8cj4VwHEX4rz02QTHtCfEKpKlZ5HTqH8hGpHRAcdXeKD4Uuh0uxChTy5UjqkjRL26nY8UPszxBLOXitkpd7He7DyzSdrLY5IJxac8T8hlWUfHfALI7pCHDZGdksFBe58K%2FASg9uoG63bwCJhXkwjvGKp2VOshRuHAPzCWl77m4%2Fm3jXEHAFq32BJpczl%2BQZxXfOiTqYjUSRYPBjlD04plglYw2uUbPbpAYn%2FWjTxPPYo6AYBuxP9iXSxnVMYtynQek1lWZqB7KAuUUS2%2FzzdUiBOldopHgMsZ%2F0a%2FgGsdDr%2FD9HLorYYilJYD0wfApA9Zbmf1j3M3Yq4yqtbWXG0ZKM%2FMenUJpvK4s1mPeb%2FifdTtWXuOh4htth60AcbT1yMPGOzv8ECiQZsJwErSmIwOEhAIDzAL5QHPb9W5kfzKS4gQj%2FOLXwCoyn2bVMsXRF2bq2vkDDJg9PtDSy%2FkHnPvQ2GRmBRzp%2BSBNsClG8710neBLeyvm72tdr2eNWq1KRBm0uVXkqSJ69hw7OOyeRgAhd03G2BiWyvLK20zj1TviVyXnMYdCbcjpqcNafdj6l2C9sHgWnHysCA2JIsHg5hDg3BCM0tQvqEmtfBtb1gP2hKYzY9Ym%2F%2FeQ56qGNP4jLc%2FOo%2B1hMv6lu7otzQXwOpSetwXvsy%2BNl3%2FTFy%2FzzoanauHKRRYT7RAkhAzkl7BQMY6RIJBo94qbLSINwHT%2Bkb6fEFTgtq3LvgueNmYOk0dgMm87XxR9xTmLb7lRVgUvqYW2SEBE2kCbPp48qDNWnrWlyLeZjBo2H37M%2BJvs9T%2Fg7LkbRMdZuJ8q5%2FqRDK6Ly48tOsJnVl7UkBq4fpgJjrV2TZDiE5tPljj%2Byt3l4o%2FGJ%2BA6TmyZ%2BuXD94DaDvpMBNAe4ZMpEDY5P%2FrSr8n%2BUnWOgggYNjUEWCsuhA12jYeVaAQDx7enWOtUolzH2hlxF7qUF23S75cEtc16mKaH%2B7ZmvWG%2B7FczwRAbCXdVeLhyG0kGvmbBKV5ASFWNcgET1O8qdAiHMCXsV7Cl2HEF85dulYOTOasufteNmG0e1XOX8UZU6MWsg3RnOncapaRaj6eCzN97HeVzj40%2FuudoTCIgqOtYHYNTADkozD2p1IBnh1s5ONgHrb%2BOkh2ksENkddJ0XMZLKuuon6JxLBk3bXtLhZJ4R2Bhsua1%2FJnEtI%2B123T95xvZDmmFqcOS5VLSmvi3rozYjf1q7Y27d5cITZ2n%2B55ZQIAi7ackV850pUjjTdlwMZyGSOrB6UZo2fl5EwIMKlZTI6ojRSGsYbRqXRM7bmtfy7M8Ynj1lep1xmTc9qlpZ4Rry1S9VpjOihE10d5wUsW%2FbbMfAgL7ri8aMwtABA5%2BsGchPmcpxPFMQAHq%2Bik38NMjTcif2cSBpv94UEJKlhJcL1WBfmKsk8R9ybGAZcr8XnW54twBbABl9%2Fz9e1G%2FM6IS2VgVP0Wk78umHQXLHNVTKPwE%2B0EZWCqX0lTraxQbirtwGlVl%2FF6mG6%2F28qrIQdw28wfz78MWLUEyzwxhbpVJS3ttgNN%2BpMySD81iwWlWV0hvjqYSQEmlSmVKsWK4N%2Bk4TPaDgvR2LfrxOKsNb3fZenPtWA6lyke7Y03SbbRbFEBg0lxbqp3wtc3Pg1NieR5q1479oXR1qAt%2B5eF9%2BFR%2Bc9u1YoHEMnbEiLM5GeronloSymDPOSTqbpK4ooCi7qMcJ1laMPN9%2BGll3l8AF5qt55VyJP3L3v37lSiHEtvo0vV9AjDx%2Foq7WsbPp%2F6TJ2iwUhMMp7an%2BnSs54vAesICcA2jSatUe4pHalnY5eZel%2BAVn9Vl5AvAVqnqepljmtPLTO0cdTDj7QlufgeAuCzGsiUpld46E3LxACTLCYDpknBNIkQlA9jmWcBiv0QT3RjjwI4xsNDF7Xyy8eb2%2FPLRXr6cP5pyhHbA9JPV%2FbI70wY9zq9px%2FE8ZMpBWw3%2BATApvCQpKI8X3bvYUDCbtah1kcvScOkacFae20klrSEV1Onany%2Bwq3YFLeTMi7e1%2F0XAOfr8cK4DSCr5s%2FkLS010lZQi4MRe5oi5GtyrM9%2FKf09237LQTWA8%2F3UI1pZjlcUjewfWqEI9qSJ%2Fh1ogcodpQPN83eZoa%2FEi7tTA5NCJvGkzsUpX146TuJDli6SOXVNEYAomVW%2BRJJVgKY0HQ7A2mZigMnO%2BHMwsiOB5ozg9Ju70pmYmlw3vZe4lGJW6Tb2vfIlmED%2BNqCCD23jSwB6EybIesxcR71Eh8fYKmmYUOWIbogSRlbjDD2URuznUD5VFpBnTu4HkLdWQbuiLSf9z7bHGqBWQ22u2nPSeekmyRmq4TNTOV1PmOto6nxbKyHOfr5n2%2BNwXg5a%2Fev1qB95Fj9iumtVynPb5VnIOIPyl1uaqwAdp76Z%2FY6D9gbQlimX7aazsctUfXUhDp9Yr4WO5o6SYeLcC59S%2FhFzf%2B0WIBtIHTDTDhOe2YGmNHUSYvm3WQhg6NYeFH6lMOolM9gqA4pFxHS2ulaI4t3KB3nBNE3695xQgo6t1ajt%2BcI5MXV5in%2FjMQXG2OFcTA%2FziE1KhOhGfEJsEA%2BJk3hOC19JNOZpLYAKIx2XjwLZplpuq5T18vzTiilLuEt16MSlp%2FN4z3Hk1sgHMOEtr9OfROGYp9YXU61wVMOEdobimLgPmgf2rMcEwWWpe17DWIA211JLBUCiOje7ChD%2Fb6DF2E3nIuU3pQ316%2BuyWo%2FJPXxv%2FbBQ9gOnT%2FQ6n0Q9tpq7aOcZGCNovj%2FX30UYMJkVaEoTlgKWO2VBgKHTP4I0Oh4Ig8VuQlG4tRxAw6yqZ%2BhDGCiHziPAuTHP%2BjeucN%2FTl9ffDpaNzvkKbKrFvnWPxSQG5BrFF3iErqMSouzCN%2Fs%2B4bClDH0XFHE2aSY%2B28XQRnE472Ftr9ePBWAxs6LdkkeRdwBlbsYEn%2BXayWx%2FSF83xFeU%2FiDOfL2qbUcVBZjjzqz%2Bvv5KgHbLfaSBSYL1Y4uvSh0BWgv7JOBNoC1QTslZp6m%2Fyyq5rne4yganUAC3KnbC%2BvOAS%2F3YXIGvZtjL1AFA2e4%2FljfkwMskQWnSS4hlE7I4wKQyJcj%2BHGAN%2B5LCc%2BJEOmQdSWA3%2BdkBtQLixb68ZhaAaIbY2J5NLFkrF%2BdII5YSV0VWcLw0AjAMX9OpYQinFRd%2BpNmDweyvmknmMyJ65AGCr2QHWkuAltjmYdFqAK3j6gL1SwG0eI9FRga3dbylmOpD2hqi5V8CbZ7yi0K9TWNddugxyUcabugaSh1Xbps4%2FZyB9rRIeyVNuX4m9elEPg6gZRKQKU2c0WPU3wBg6PZ%2FDLLTJSokKOgY%2B20kZqZywmBf7YfF7MdU4j8xopKHfQlWT0QyZBoiwWh5HRP9ZYA9ZTlaGDFMKb8xZsNRrxfYpl1RADY%2BaPW4%2Bt9QnWoe941MOqwDLa5qftL6iVaiELGD0RK5mjLxEA8qMJhpvssF%2FUiA1n3D16Hkv7LexGrnFpN3pbQQ9TOANp%2B0Pbg%2BFIHJMzoo%2Fr8AsFH%2FAIBllKYl0CS4HyOAOO0SYMJJrzuhdVxR%2FMbxtjWTG6Ty6Ng0D38j4LZ2t1jUnKT147uThYn%2FDDQYUvlE2SsZ17TY5Yp%2BLECbvtElFN9s1fhJ0ee43rYzZZ%2FamHTMaJWtXM8gkss7GRUU%2F2lCLEnNBli6d8BrRrM%2FeRsH0A4DhooArXHrqXagDVsT1GAoQNvsMdYIk1nbW2JVV2pVi8%2Fh%2FRlorychSnNlsOIDA571qG4sI8Tuhksm3nokxGqnj4qd2wx5Noew%2Fbne4ZuymRHBwCyJbwdkRNH%2F0DJfM5pTXohtqhC%2FLv5p7qNyENWtd4O1HHw1qOba6g3PAbTTHoeNdQCaZjmgRqCr2rzxWYT4Nq%2B5RHFtGUMLZQfrd4EvqqWGsT58KmjE80mc55jd5B8kxsfL6Nml4g%2BdLlmUzWB0xdsNDtP5nGKZhKQCCGtpGG1xqwlFuQU1IXJN%2FYY3AVrFHGWNgzlntnyqPoSZHhpb6mCllI2J3axLhFi8YGS1M5jesz%2FvfxC2ATcRcyhvg%2F2LWdTebtP%2BXJri7w%2FAFmcD7M9KeavbDqBJhzwZoG0BTDj5dbu28i56HaCFrGnY8DLLLAVzf%2BDEEkjCxldx5vEAa%2BaI%2FGdgsrMXDtQMw9eSX180%2FEYecqIgzWIG%2B17UwB6yAebQREbHRiogJwPMOOVsNhU%2FylqQWeeOVvHF5gkxtOrnL%2F2YzW54NSP54lreCxm7v0IYzOVUFGCd5RpvRM52MwmwqIk9GBwb2XEGa8BC%2BXL5g%2FU5uZTi3Bvg4HtdeHE4R%2FgRPlg3MMgj6kusaUhcgrk6wAJ8hpmklcDCd8tswKJG9qBzbGTHmUQDDqAxCZCMpAc8uvX47Z4Aqyb7TMoUZv72RdlMDCyHNrMB5tBEZosdQJMM5Q7IfgJY%2BFyiGCLXyTKZKaRGfxmyAfaXasmEB6X5zMAF0%2F9Xjbw9gEnlyOmydGTlfTJGpf3Wi9yW8t%2BCdGDljMvhDGdRhf%2B3Zv7bedlDUj%2BO%2BN8S%2FIcDjqUJfDX7bS7JenLhVh53nGMzvUP6A8wBrF5Aqga38PYxEGcxS%2BL%2BmXUnbV1EE48hcnotfQpHcADqPgeYwqcVJj2KsYTiC0uQduLltSrEBRDP17G8%2Fk0FOvZxnO3g9CGW%2Fo1j33GeQ%2Fbg2Jf3HeUUyJFe1kcec5yXsQzShMllgaJILsTRkSXZlvcx5Tnu9%2F5xHZv%2FEhz5ybRy0LE0IVf71fZcQu%2FYAIjamZj81B5IP47LdHcRaTJlmbJujnwc7ZL5cdyMjq1dEXSjHuBYN4Sb7nY2dLSB3fQK6Q8wqQw6hi%2FLuKsAo7Ffh2CfskL01o8pXOMog7ONrpD9wyf%2BpFvyp2Y%2BZzuR6xqgi6FCdDYN3V4lH6%2BDzehbRT5QyAsey7QIAIfSbC9Q5DLiEK6pjRRHJDhk6%2FyRMqQvTh%2FQIakA2voD%2B%2BQh9%2B1PQ5QidnRQTbaLcX4Bh6hn6irS7yFv1qe0TZyjLqIe25WJP6PcMZw7zQAIIt0lYtJY2xN%2FS8ztIOtx8vqctHIp4QEiZ4muiKybgsjyAKeVfXUX%2BfUlP67LsSbPeOdnPF603mdhrlrEtX1aeZnB64ncQ5xHkg5dWilfPhKkBpMHaez%2BGToV7KtTxGmtCM%2BlPQ7o6sOyR9l91Yp7TyfvQ5yTg1kOBAnGdA6ymekbpBIJfK%2F0mYYiX118WS75Kz7%2Bd3RunQZ0ZJ3Edv2Ko6g0gGSVo3EQUhcFwjI2WK7C53X7FKTDxmxZOtAfxSetidtiHkj6IqKtZLRK79TZVHAAj1VNaDi3CExoo5Ptj7%2BkkY%2BVbUArX9rI1TT%2FDbd1%2FIfR3h67fGexPyD%2FaDcJtBOcB0B29oRp5CDQ6CDPIbmDXPqR%2Fp0ezXw7Q7D5iy73eJ96wZq2DaTvr98uO7W2X4uZxb2F6HVpbETNr%2FkDjy%2FG3fHjfHeX9ytWI33ZBtXKe1MncwzXeZA3A0K%2BnOJgEvMFjg8DY8%2FLLvQazOM8%2FkuVJteEeKfl9Fe1B6KKQx0CSySD6Ukdhpd8F%2FWkfHKyTh8eZGz45dmm9fkrHWupxTl3k3958qF9agj5d2NMH3U%2FZmCQjh24pG0TBliTFT02lAFwFnRiQ7dCDioZp3OQ4zx9QyLZ09nG47hfjPQrx89q8qWLHzutevcarDPs1NwaDX7iDecXJ2qHz5aMkdDFQq2M24xT9P58b37q%2FJsNFvLSxvCdcfeK8eBpn%2F3G0Aaw%2F1antibiSePXVGjRFIWGuXgZNDrAUCV1cxxFJic7W0lvhTnUl8zqXcpU9izBV50DN99pw7AavbdJpR2beEbv7rPlCSchlLbUD2axBZC%2BP1%2FxUQu3kM%2FiTw%2FdNLnNRj7i275T5z20I9Yp3paylD%2BEyL82pBXlJHaPXZoGUA%2BU2VTh5mPuDarRjVNDsdynSwZ7%2FiLEu%2BM%2Bm1D%2FJu9s9Lp2PBrmW9twWpezPgDic9uvVjq%2BUnCdxELk9%2FGOjWmtaMeWngv6X2zFe5PVvj1yuznpYs0bbACYZyu6yEdwTN2dushHcgLyDLFUusifkJzZO7xjIR5l%2B77%2FR4fI71bXy2nPJkFQR10nugyByHc6VdHt5%2Bmdl1fKR2%2BANAG0IgfyfURF0jmg6nQOCvlLCUcYxcZKNJr97xot2HKhCUBplGOiCRD2ODpmWfXrdBBslspobNtrQIXyG7F2L8rvz71IiPWLZub59RwAKIFeuks3wj%2BoyFTyqmUYJz9UZ3U3l5cvgdTq22pQMVpl%2BZ60kRT9hHLn0lHDk1%2FKPzxI80v9UPoj5qLJwko9FEa0%2FCMH%2B7oSZkO%2B8iafzbcsTblog8nSxqeutlZlcb108ivp%2F42fu6RyUzOmqpRnXyfyWVBsZNzRGbhOa053j4QBw9cHe78C0Gf2H7TeTxJi3qR3449Sfqsn%2FeuXq8n38w3Doiv3pN5ppqn6jgyQ2YEnmh%2FkbSfjoZFhH%2FIV0T3r812lntoEc3%2BxC0ABLgkoU1HiLzm%2BL20Xj3OL72NX%2Bl%2B6QbmuZ9tEtuGW0vJVLZtXYKD9aKphQNcuM1ynmObQjoDU5%2FJ1v3uDrreJxjzqAZXuGO1NQCTLp3NIf4A5GpDKBp0pX49XaOiL3tHfJGpCbKz26YCgLgAsapxH9Vf4aHeajCxNhwz4dNrJ2nTU9uTF4y%2BTLuzhg7iY5wCUTtAHCtHmk4HvVCCfEx%2FunB3KiDx4e0PqLQDVrtvgCRWDUKJZlFVKU%2BYd5Blgq2UrKT9Nabtk2Sm%2F%2F5DimbTZcgkd00nWkQCOTrb1Ir7N%2FnucX5k821KY%2FXOpla1DwV%2FFou08awnRYHTHy6Xo7N0NAzde86QDX1hVmzsAgPUM%2B6hbdcoGiC7kayzJG%2BdtI1fFAcRTN3ZuvAdrdMg37Hol6lG7erPtxfPgW80pu8YLX%2B9o4tZcwWFcI3UkB8Z31HsgchmRg%2FM88ojjeuKVpFtPOgB4uOamyncor8yqao3zYh59F1d7mg8QueRyb2ZsyZvk%2Fi9mpIxBBd88nBaPydbHUr8D5IFO7UKUnuHtAczRiqNswAxON%2BkQQPfTqG%2FX3RnGx04q3Lr6Mhq%2FOX7XNwHN8LXyx8eYtzGik1eMusqI0zMKdYvpkIMlAqXPUfFo3aoFAMKxWVvrBv%2BGCd28Ky60Eq7FvCoD8m7hu2L1yi3PEwFYesN4dIzWT3MV35CHk%2F6kUgXfvnvHa6U%2B5u2jsC6Rvk74KNu7tClTjs%2BOTe7y1JfObHS8yz0frhOdxZcyfQG1%2BMQcAF%2FfX%2F9MNxDgxD%2BcED%2Be%2FYLkCVDtIHhFTOfaO%2B51rFRkn%2Fo%2BXBI84mUZJpbWgkPcv%2BaPGY41rFz4OAAelrJBMmtM%2FNNLSbPIj3PKZ1yDbv7y6zqyTjGUCQAl075YFX4x0YfB0cl2RvuAd5S9fETOjriUK%2FJcdKb9Dy7f1L8ozn30kLQYcwGuAdRSD28rvH2AKb83Tb50Kv%2BbJ%2FVo2hYLo37zgbkzzgMUl2HuU0yTMQE%2FLqxyaSc%2BT5W4EslX6Dc6XT0IABb28fOFlaJyhfdNaMKMvtjj5nGD2A9%2FeimRDnzsHjwwhlHe9oNBeSr8CMDwU9TFlBnPP3anEJfgyfXcHDtmPSz%2FdlndwFs668FEG8tNjbqpR81Ntd10WCPzIXU46YPEXS2MOCeLDi7EJhYdJItE8IruK2IZXrfp9503fm3sS7Z4qJ2SwGCmV9H%2BHf8m%2BFTUV5RX6tiXWkpi%2BGTnO4D1P%2BVJsj8e2S4r6ije7HfnLahqFBWkVZdf7M45Ot8kl4WYxnZXCrzw5zhgk38haF%2FaSCB%2BS%2BHtA8zRMEyIXO%2BR%2F86hewkB5Aut8KoGOAh96ZSCiQureWvnS0aybg%2F9h9nIkeKmuRQFYL59VviuY%2BS3T7knH2vpnzSxUS0jsy7rR5%2FXrgmgclrW2ABio%2Btd6%2FvMYrZY232Q60oUvFjrr8EUapqtrHZdiN%2BKHij0ECf9WPf950Ka8vrZzX3hd%2FfzyYHv998JGceqQty%2BhQ8AOGy7QprYpzFhk%2BMxNbbDtqoqx%2FOfLdEhx7vsS%2BCXJF1ZRHb0a%2BZyPElq%2F86sH77kwHILcl%2BDcQo9DUqEaa5%2BdWZSBOU4%2BbvUN9RiUnG1oLsbgJWfJpCfBbWvbcGs%2FxZKcSQvxQBOvr8t8voV%2FcC9K9agj8FZB3AerwhVXj1hNWSO90DX1ezPvPs4piV6DEePMJj9L3bi%2Fy3XdDuQcQCTI1TKKuQ0ChpmeipNoD7YEKTbio%2BR13RZn4iPdAKlD8CkNe1wtCQd4h7g%2BYNpGaZ078DIwy94rdFpTrdzQ4nXzD59%2FjD%2B%2FOyBz47Q8boo3TT56n8TtduSMmfJ46Vtk0pH6scaJuhgFJcDbgeNnhBSA8reQEePID7CPh1sgNGc27tVlC9jmCY75zec4uM8Fx8Hxv0K8Orve%2F9Bc17wHTqyZpUO1LOR%2FqXeHcBTV9t0WQ4dTzkpgNvihe%2B2o8DQHJj%2BRl90WecDY%2B%2F9NXDDDUzbuSPH0sIeMbBWhHzw6imTAOd%2BX5RvzTWwuQ1AyjUxjbrZ%2F3owPzHmWy5Gyz%2B412BFSzDbX%2BGLzhtoKA%2B4Q3dfSYnqzEtF7a9WivqUem8x9jfcp95fPCwbx8DTU5YiB4xkUylvKejeUjn%2FsRj%2BkMD%2BpWjDGOMPOka%2FIcZYXdcGhUQaB%2Bl2syZpNh41XRKiZ8T44Bqf8IjxxP3fPPySgTjxSbM4FGv7xlpVAyBqM2spFZBE%2FxidmPA1zv%2B7O8qHTuQT9X3GtKoKMPNMKlLaPRJA3DG11F2lA7a67jE8oGw6Tv4Xt8PM2T92MpfzXzj30NcBeC2c3zF8CyCLu601BvDfpSljLxwDyEm6%2BG5mmHSiz8o1zWey3NCjbqGCvfERC%2FtGeQGoBg3a%2FFRqFOcrBVZqPgdn%2FMCme7eXArAuX7e4cRemnZsWI9e%2FFv40suwx0tU63%2FJMsWasp20aGV0DJtOfcEnVrQa4gMQGc5pDiEejnxC3z%2BQnCvpdGlvcrw9f3rrd4GihzeRz9P3cx%2BhNa6plrm0bvu3p74y3jXxm49SDAwkzyA%2BmlX8U9gfDsvk2QsY9cKineSjEwmi05WOgFqrZKx%2BMsO7bC%2FF9XZh2V2uZfxcj9OrF0zsjYaza%2B5r%2FUAwlhX51dXd0ExTXJWJlwnUUdwxsSBaMQ1LJi7QStHlO5u%2FkhhNfNrZGy3zfYCq2By%2BJeQcAtC%2F7ysuJyeWEC6%2Be03Gxc6Kt8gVa3R3y8UL%2FdJrmxjJEA68aznsAzoV6fQpSn9DpV3pGwS7PDE8Kx8N8hkW6GP0WnPWgxnsLw5CFipSyeZ4iD5t%2Bq1z2sDZPK63e5I6O99UzUSnEVa7eeD6O65IoC6AqU5BQgHOFOg%2FHNdxT5mRumtBp1ft3Kt8mTZzuY%2FlnWVFfhYcnpHFiOJ85ri9fYi%2FyzGMA17VJ22LbxXrihpWWa21Z1tp93%2BcFeTZo1uxkKRP%2FkfrRh%2FNrruCP3z7qs%2BXQh6jnpxc5U4qSry%2Flor%2B3xWQZBzDJnQrKXUhb6ZA8loKD3WCepqE9d5RtiSmqtufMfQAUsetBldgv6Pi5yGIA9T2C4vUSEHQwf2jA6uLvedlZqCnbMJsK22lcJ9e8bAdIvwTJxX4b9rnWCBj0mCxdEPkAIAFL2l8tq0SMbydfttUq0pEct1lIP%2FL3PHRDST%2BEc3SiGMsAacF5f%2FYBhdaVc%2BEIjKXBllpfrllDGbMBljfxIK4pgFAn%2B4sZEjiNkdLUiwGifoesRrgmZ33P867kn%2BNi3knORvLarc2Rf80cfy76XAqDKnZw%2FMSUl%2BQPC8uPDNtnngHMIR6VHZsrnpX%2FBR0elOS6PbpVJ67nZ%2BwFJCZYOK7URdDH2zKTGQcw2mgPtfktjlKb02aVDoWlbHSi9LP0DVEeSlbeI82vCMq0fzfCSiw7x4YA0n8J2us9CQDJks4IipZrcPb0BmIJbtjOfsz8%2Bvib%2BTjSSfDJvGR5AO3fypXnZNoSiKQgT0SW%2BQxJQCKQVwht%2B8tOlfWVAmvab6YXJYZJ5Xdc5V%2FrqB2IZf7uv5%2FXHaHJ1FV%2BKEU5wbH7yAukOeJLEwuQvhNVbc02g82JASz%2FaVd%2B6VEuOIswJAZ5SyHjAeZQvActdkZQkv0zR1Jx0YhURjIiQfEmCDj0tw9vttkxgN5suAOoDj2WIQGsKVnPDnKHnt%2B8Lp335djI2OAAThLVkCxxCXn8pyo5zv%2Fp0D9q8z8B6k0lSCBKSUSkHmEt%2B%2BIvUUYG2X3ZIVsD6aaBbIClm2qzM5YayAZYNg7SVQPZAEtX9WZnng2wbAykqwayAZau6s3O%2FH8BsHhkmA5DmLIAAAAASUVORK5CYII%3D"
}, {
Id: 7,
Name: "Startpage",
Keyword: "s",
Url: "https://www.startpage.com/rvd/search?query=%s&language=auto",
FaviconUrl: "data:image/png;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2jkj+9YtD/vWLQ/71i0P+9otD/vaLRP72i0T+9YtE/vWLRP72i0T+9otD/vaNRP72jUT+9otF/vaLRf73kkv+9Yc///WJP//1iT//9Yk///rAmf/94Mz/+sCa//aRTv/1iUH/9ok///aJP//2i0H/9otB//aJQv/2iUL/9otC//aNRP/2jUT/9o1E//aNRP/6wpv////////////96dr/95dQ//aNRP/2kET/9pBG//aQRv/2kEb/9pBG//aRR//3lEz/95BH//mueP/7xJ3/959g//efYf/4p23//vDm//3p2//3kEr/95FJ//aRSf/niFH/95FK//aRSv/2mE//95hS/vq4iP/////////////////81bj/95xZ//q4iP//////+bF+//eZT//njFT/PSqi/2xGjv/2mVD/951V/vedVv783cX///////vQrf/++PP///////748//+8uj///////m3gf/olFr/PSuj/w8Pt/9sSJD/951V//eeWf73oVv++8ul///////5sXf/+KRi//vRsf////////////3r3v/olF//Piyk/w8Pt/9sSJH/+J5Z//ieWv/3oV/++KZf/vihXP/97N7//vn0//zTs//6wJP/+bBy//q6iP/onW//Piyl/w8Pt/8fGbH/m2iB/+icY//4pGD/96hl/viqZf74pmD/+Kxr//3iy/////////n1//ivbP/onGj/Pi2m/w8Pt/8uJKz/fFeQ/x8Zsf8+Lqb/6J9r//ivbP74rm3++Klm//mpZv/5q2f/+bR9//m0e//poW7/Pi6n/w8Pt/9sTZj/+Ktp//ira/+rd4P/Dw+3/4xijv/5snH++LN1/vmvbf/5r23/+a5t//mvb//4r2//TTuk/w8Pt/8fGrL/6ah1//ivcP/4r3P/q3yI/w8Pt/+MZpP/+bN5/vm4ev75t3X/+bV1//m1df/5t3X/+Ld3/8qUhP98XZn/Hxqz/+mse//5t3f/2p+B/x8as/8PD7f/u4qK//m7fv76u4D++bl7//m3fP/5uXz/+bl8//m5fP/5t3z/+bl//x8as/9NPKf/fWCb/x8as/8PD7f/bVOh//q5f//6v4X++sGI/vm9g//5voX/+b6F//m9hf/6vYX/+r6F//nCh/+bepr/Hxu0/w8Pt/8PD7f/fWOh//q+hf/6wof/+saN/vrGjf75xIv/+ceL//nEi//5xIv/+sSL//rHi//6x43/+ceN/+m7kP+7lpj/6ruQ//rHkP/6x43/+seQ//rLlf76ypT++seR//rJkf/6yZH/+seR//rJkf/6yZH/+8mR//vJlP/7yZT/+smU//rJlP/6yZT/+8yV//rJlf/6zpn+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
SuggestUrl: "https://www.startpage.com/cgi-bin/csuggest?query=%s&limit=10&lang=english&format=json"
}, {
Id: 4,
Name: "DuckDuckGo",
Keyword: "d",
Url: "https://duckduckgo.com/?q=%s&t=vivaldi",
FaviconUrl: "data:image/png;base64,AAABAAQAQEAAAAEAIAAoQAAARgAAACAgAAABACAAKBAAAG5AAAAYGAAAAQAgACgJAACWUAAAEBAAAAEAIAAoBAAAvlkAACgAAABAAAAAgAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoSM8gKEXSYChE0YAlRNK/JUTSvydE0e8nRNH/J0TR/ydE0f8nRNH/J0TR7yVE0r8lRNK/KETRgChF0mAoSM8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkPSUCZD0J8jQ9HfJ0TR/ydE0f8nRNH/J0TR/ydE0f8nRNH/J0TR/ydE0f8nRNH/J0TR/ydE0f8nRNH/J0TR/ydE0f8nRNH/J0TR/yND0d8mQ9CfJkPSUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAzxAoRtGAI0PS3ydF0v8nRdL/J0XS/ydF0v8nRdL/J0XS/ydF0v8nRdL/J0XS/ydF0v8nRdL/J0XS/ydF0v8nRdL/J0XS/ydF0v8nRdL/J0XS/ydF0v8nRdL/J0XS/ydF0v8jQ9LfKEbRgCBAzxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEDPECZD0p8nRdL/J0XS/ydF0v8nRdL/J0XS/ydF0v8jQ9LfJkPSn3aI4K+ToemA6Or6j////4D///+A/v7+v/7+/r/+/v6//v7+v+3x/c+2wvC/lKLp30lk2r8jQ9LfJ0XS/ydF0v8nRdL/J0XS/ydF0v8nRdL/JkPSnyBAzxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKEbTgCdF0u8nRdL/J0XS/ydF0v8nRdL/I0PS3ydG0o8lRdUw////UP/////////////////////////////////////////////////////////////////////+/v6/AAAAACVF1TAnRtKPI0PS3ydF0v8nRdL/J0XS/ydF0v8nRdLvKEbTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlRdUwJ0PRzydF0/8nRdP/J0XT/ydF0/8lRdK/JkbSUAAAAACvr68QtbW1YPHx8c/o9+z/gNCU/7rmxf/z+/X/////////////////////////////////////////////////uMHw7ydG0o8lRdUwAAAAAAAAAAAmRtJQJUXSvydF0/8nRdP/J0XT/ydF0/8nQ9HPJUXVMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnR9RwJ0XT/ydF0/8nRdP/J0XT/yVF0r8oRNNAAAAAACBAzxAoRtOAUGPK37W1tf/6+vr/o92y/0a7ZP9Gu2T/Ur9u/6Pdsv/z+/X//////////////////////////////////////0Jd2f8nRdP/J0XT/yND1N8oRtOAIEDPEAAAAAAoRNNAJUXSvydF0/8nRdP/J0XT/ydF0/8nR9RwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmR9SfJ0bT/ydG0/8nRtP/J0bT7ydH1HAAAAAAIEDPECZH1J8nRtP/J0bT/25+xP++vr7//////3TMi/9Gu2T/Rrtk/0a7ZP9Gu2T/Ur9u/2e0aP9EoUP/RKFD/2ezZv+i0KH//////6667/8rVcX/NXmi/z6egP9Gu2T/Qqxy/ydG0/8mR9SfIEDPEAAAAAAnR9RwJ0bT7ydG0/8nRtP/J0bT/yZH1J8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAzxAlRdS/J0bU/ydG1P8nRtT/J0bRzyhI1yAAAAAAKEbTgCdG1O8nRtT/J0bU/ydG1P+Jkr//zMzM//////90zIv/Rrtk/0a7ZP9Gu2T/Rrtk/0a2Xv9EpEf/Rrli/0a7ZP9Gu2T/Rrli/4DPkv9OsXz/Rrtk/0a7ZP9Gu2T/Rrtk/0a7ZP8nRtT/J0bU/ydG1O8oRtOAAAAAAChI1yAnRtHPJ0bU/ydG1P8nRtT/JUXUvyBAzxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAzxAnRtHPJ0bU/ydG1P8nRtT/JkfUnwAAAAAoSNcgJ0bRzydG1P8nRtT/J0bU/ydG1P8nRtT/o6e5/9ra2v//////aciB/0a7ZP9Gu2T/Rrtk/0a7ZP9GtVz/RahL/0a7ZP9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/0a7ZP9Gu2T/K1XG/ydG1P8nRtT/J0bU/ydG0c8oSNcgAAAAACZH1J8nRtT/J0bU/ydG1P8nRtHPIEDPEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlRdS/J0bU/ydG1P8nRtT/KEXVYAAAAAAmRtZQJ0bU7ydG1P8nRtT/J0bU/ydG1P8nRtT/OVTQ/7W1tf/t7e3//////0a7ZP9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/0WoS/9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/y9juP8nRtT/J0bU/ydG1P8nRtT/J0bU7yZG1lAAAAAAKEXVYCdG1P8nRtT/J0bU/yVF1L8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmR9WfJ0fV/ydH1f8nR9X/KEjVYAAAAAAoSNVgJ0fV/ydH1f8nR9X/J0fV/ydH1f8nR9X/J0fV/1Npy/+1tbX///////////9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/0a7ZP9FqEv/Rrtk/0a7ZP9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/0a7ZP8tXcD/J0fV/ydH1f8nR9X/J0fV/ydH1f8nR9X/KEjVYAAAAAAoSNVgJ0fV/ydH1f8nR9X/JkfVnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnR9ZwJ0fV/ydH1f8nR9X/KEjVYAAAAAAoSNVgJ0fV/ydH1f8nR9X/J0fV/ydH1f8nR9X/J0fV/ydH1f9ufsX/w8PD////////////Rrtk/0a7ZP9Gu2T/Rrtk/0a7ZP9Gu2T/aL51/1K/bv9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/0a7ZP9Gu2T/J0fV/ydH1f8nR9X/J0fV/ydH1f8nR9X/J0fV/ydH1f8oSNVgAAAAAChI1WAnR9X/J0fV/ydH1f8nR9ZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlRdUwJ0fV/ydH1f8nR9X/JkfVnwAAAAAoSNVgJ0fV/ydH1f8nR9X/J0fV/ydH1f8nR9X/J0fV/ydH1f8nR9X/kpq9/9HR0f///////////0a7ZP9Gu2T/Rrtk/0a7ZP+A0JT/0e7Y///////z+/X/xerP/22vp/83gZ3/M3Or/ziIlf9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/ydH1f8nR9X/J0fV/ydH1f8nR9X/J0fV/ydH1f8nR9X/J0fV/yhI1WAAAAAAJkfVnydH1f8nR9X/J0fV/yVF1TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ0fWzydH1v8nR9b/J0fWzwAAAAAmRtZQJ0fW/ydH1v8nR9b/J0fW/ydH1v8nR9b/J0fW/ydH1v8nR9b/J0fW/7W1tf/f39////////////+A0JT/dMyL/67hu//o9+z///////////////////////////9ddeD/J0fW/ydH1v8nR9b/L2S5/0Ktcv9Gu2T/Rrtk/0Clef8nR9b/J0fW/ydH1v8nR9b/J0fW/ydH1v8nR9b/J0fW/ydH1v8nR9b/JkbWUAAAAAAnR9bPJ0fW/ydH1v8nR9bPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKEjVgCdH1v8nR9b/J0fW7yhI1yAoSNcgJ0fW7ydH1v8nR9b/J0fW/ydH1v8nR9b/J0fW/ydH1v8nR9b/J0fW/0Fc0P+1tbX/8fHx///////////////////////////////////////////////////////k6Pr/J0fW/ydH1v8nR9b/J0fW/ydH1v8pT8//NoGd/0Ktcv82gZ3/J0fW/ydH1v8nR9b/J0fW/ydH1v8nR9b/J0fW/ydH1v8nR9b/J0fW/ydH1u8oSNcgKEjXICdH1u8nR9b/J0fW/yhI1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFDPECZH1u8mSNb/JkjW/ydJ1nAAAAAAJkfWzyZI1v8mSNb/JkjW/yZI1v8mSNb/JkjW/yZI1v8mSNb/JkjW/yZI1v9cccr/tbW1////////////////////////////////////////////////////////////oK/t/yZI1v8mSNb/JkjW/yZI1v8mSNb/JkjW/yZI1v8mSNb/JkjW/yZI1v8mSNb/JkjW/yZI1v8mSNb/JkjW/yZI1v8mSNb/JkjW/yZI1v8mSNb/JkfWzwAAAAAnSdZwJkjW/yZI1v8mR9bvIFDPEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVH2I8mSNf/JkjX/yZH1s8AAAAAJ0nWcCZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/doXE/8jIyP///////////////////////////////////////////////////////////09q3v8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8nSdZwAAAAACZH1s8mSNf/JkjX/yVH2I8AAAAAAAAAAAAAAAAAAAAAAAAAACBQzxAmR9jvJkjX/yZI1/8oSNdAIFDPECZH2O8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/5qhu//V1dX///////////////////////////////////////////////////////H0/f8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkfY7yBQzxAoSNdAJkjX/yZI1/8mR9jvIFDPEAAAAAAAAAAAAAAAAAAAAAAmSNeAJkjX/yZI1/8lSNa/AAAAACZI1Z8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/+1tbX/6Ojo//////////////////////////////////////////////////////+7xvP/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNWfAAAAACVI1r8mSNf/JkjX/yZI14AAAAAAAAAAAAAAAAAAAAAAI0nY3yZJ2P8mSdj/JknWUCBQ3xAmSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P9KZM//tbW1//b29v//////////////////////////////////////////////////////k6Tr/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yBQ3xAmSdZQJknY/yZJ2P8jSdjfAAAAAAAAAAAAAAAAKEjXQCZJ2P8mSdj/I0nY3wAAAAAmSteAJknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/ZXjJ/7q6uv///////////////////////////////////////////////////////////3eN5/8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSteAAAAAACNJ2N8mSdj/JknY/yhI10AAAAAAAAAAACVJ2I8mSdj/JknY/yVJ2I8AAAAAI0nY3yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/3+Nwv/IyMj///////////////////////////////////////////////////////////9cd+L/JknY/yZJ2P8mSdj/JknY/x9r4f8Yjur/ELDz/wvJ+v8J0vz/CdL8/wnS/P8J0vz/ELDz/xiO6v8hY9//JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/I0nY3wAAAAAlSdiPJknY/yZJ2P8lSdiPAAAAAAAAAAAjSdjfJknY/yZJ2P8lStowJUraMCZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P+jqLn/2tra////////////////////////////////////////////////////////////aoLk/yZJ2P8ddOP/FJ/v/wvJ+v8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/xCw8/8fa+H/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8lStowJUraMCZJ2P8mSdj/I0nY3wAAAAAoSNcgJknZ/yZJ2f8jSdnfAAAAACZK2YAmSdn/JknZ/yZJ2f8mSdn/JknZ/yZJ2f8mSdn/JknZ/yZJ2f8mSdn/JknZ/yZJ2f8vUNf/tbW1/+3t7f///////////////////////////////////////////////////////////1vG9v8Lyfr/CdL8/wnS/P8J0vz/CdL8/wnS/P8QsPP/ELDz/xCw8/8OuPX/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/xt85v8mSdn/JknZ/yZJ2f8mSdn/JknZ/yZJ2f8mSdn/JkrZgAAAAAAjSdnfJknZ/yZJ2f8oSNcgJknZUCZK2f8mStn/JErZrwAAAAAlSdq/JkrZ/yZK2f8mStn/JkrZ/yZK2f8mStn/JkrZ/yZK2f8mStn/JkrZ/yZK2f8mStn/SmXQ/7W1tf/6+vr//////////////////////////////////////////////////////2Xj/f8J0vz/CdL8/wnS/P8J0vz/ELDz/x9s4v8mStn/JkrZ/yZK2f8mStn/JkrZ/yZK2f8hZOD/G33m/xaX7f8OufX/CdL8/wnS/P8SqPH/JkrZ/yZK2f8mStn/JkrZ/yZK2f8mStn/JkrZ/yVJ2r8AAAAAJErZryZK2f8mStn/JknZUCZK2YAmStn/JkrZ/ydL2HAAAAAAJkrZ/yZK2f8mStn/JkrZ/yZK2f8mStn/JkrZ/yZK2f8mStn/JkrZ/yZK2f8mStn/JkrZ/26Ax/++vr7//////////////////////////////////////////////////////6Pu/v8J0vz/CdL8/wnS/P8J0vz/ELDz/yZK2f8mStn/JkrZ/yZK2f8mStn/JkrZ/yZK2f8mStn/JkrZ/yZK2f8mStn/JkrZ/yZK2f8hZOD/JkrZ/yZK2f8mStn/JkrZ/yZK2f8mStn/JkrZ/yZK2f8mStn/AAAAACdL2HAmStn/JkrZ/yZK2YAkStuvJkra/yZK2v8oTNtAJUraMCZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v+IlMH/zMzM//////////////////////////////////////////////////////9W4P3/CdL8/wnS/P8J0vz/CdL8/xSf7/8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yVK2jAoTNtAJkra/yZK2v8kStuvJUnavyZK2v8mStr/KEjXIChM20AmStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/o6i6/9ra2v//////////////////////////////////////////////////////R939/wnS/P8J0vz/CdL8/wnS/P8J0vz/GI7r/x115f8Yjuv/GI7r/xiO6/8Yjuv/H2zj/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8oTNtAKEjXICZK2v8mStr/JUnavyNL2t8mS9r/Jkva/wAAAAAnS9twJkva/yZL2v8mS9r/Jkva/yZL2v8mS9r/Jkva/yZL2v8mS9r/Jkva/yZL2v8mS9r/OFjV/7W1tf/t7e3//////////////////////////////////////////////////////8L0/v8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8Lyvr/FJ/v/x115f8mS9r/Jkva/yZL2v8mS9r/Jkva/yZL2v8mS9r/Jkva/yZL2v8mS9r/Jkva/yZL2v8mS9r/J0vbcAAAAAAmS9r/Jkva/yNL2t8mS9v/Jkvb/yZL2/8AAAAAJkzbgCZL2/8mS9v/Jkvb/yZL2/8mS9v/Jkvb/yZL2/8mS9v/Jkvb/yZL2/8mS9v/Jkvb/1Nsz/+1tbX/////////////////////////////////////////////////////////////////svH+/xjV/P8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/DcH4/xaX7f8iXN//Jkvb/yZL2/8mS9v/Jkvb/yZL2/8mS9v/Jkvb/yZL2/8mS9v/Jkvb/yZM24AAAAAAJkvb/yZL2/8mS9v/Jkvb/yZL2/8mS9v/AAAAACZM24AmS9v/Jkvb/yZL2/8mS9v/Jkvb/yZL2/8mS9v/Jkvb/yZL2/8mS9v/Jkvb/yZL2/9ugMj/w8PD///////////////////////////////////////////////////////////////////////w/P//ZeP9/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/xCw9P8ddeX/Jkvb/yZL2/8mS9v/Jkvb/yZL2/8mS9v/Jkvb/yZL2/8mTNuAAAAAACZL2/8mS9v/Jkvb/yZL2/8mS9v/Jkvb/wAAAAAmTNuAJkvb/yZL2/8mS9v/Jkvb/yZL2/8mS9v/Jkvb/yZL2/8mS9v/Jkvb/yZL2/8mS9v/kZu//9HR0f/////////////////////////////////////////////////////////////////////////////////w/P//wvT+/4Tp/v+E6f7/hOn+/1bg/f8o2Pz/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/w3B+P8fbeP/Jkvb/yZL2/8mS9v/Jkvb/yZL2/8mS9v/JkzbgAAAAAAmS9v/Jkvb/yZL2/8mS9z/Jkvc/yZL3P8AAAAAJkzbgCZL3P8mS9z/Jkvc/yZL3P8mS9z/Jkvc/yZL3P8mS9z/Jkvc/yZL3P8mS9z/Jkvc/6yut//f39///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4Gr7/8bfuj/FJ/w/w3B+P8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/CdL8/x9t5P8mS9z/Jkvc/yZL3P8mS9z/Jkvc/yZM24AAAAAAJkvc/yZL3P8mS9z/I0vc3yZM3P8mTNz/AAAAACdL3XAmTNz/Jkzc/yZM3P8mTNz/Jkzc/yZM3P8mTNz/Jkzc/yZM3P8mTNz/Jkzc/y9T2v+1tbX/7e3t//////////////////j08v+xhm7/qnth/9W9sP////////////////////////////////////////////////////////////////////////////////+Tpu7/Jkzc/yZM3P8mTNz/Il3g/xmH6v8SqPL/CdL8/wnS/P8J0vz/CdL8/wvK+v8hZeL/Jkzc/yZM3P8mTNz/Jkzc/yZM3P8nS91wAAAAACZM3P8mTNz/I0vc3yVM3L8mTNz/Jkzc/yVK2jAoTNtAJkzc/yZM3P8mTNz/Jkzc/yZM3P8mTNz/Jkzc/yZM3P8mTNz/Jkzc/yZM3P9KZtL/tbW1//////////////////////+xhm7/jk8s/45PLP+OTyz/6t7X///////////////////////////////////////////////////////j08r/6t7X////////////k6bu/yZM3P8mTNz/Jkzc/yZM3P8mTNz/Jkzc/yJd4P8fbuT/H27k/x9u5P8mTNz/Jkzc/yZM3P8mTNz/Jkzc/yZM3P8mTNz/KEzbQCVK2jAmTNz/Jkzc/yVM3L8kStyvJkzd/yZM3f8oTNtAKFDfICZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/boHJ/76+vv//////////////////////lVo5/45PLP+qe2H/uJF7/86yo/////////////////////////////////////////////////+jcFT/jk8s/45PLP/cyL3//////5Om7v8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yhQ3yAoTNtAJkzd/yZM3f8kStyvJkzdgCZM3f8mTN3/JkzdgAAAAAAmTN3/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/26Byf/IyMj//////////////////////7+ciP+OTyz/sYZu/86yo//x6eX/////////////////////////////////////////////////jk8s/45PLP+/nIj/x6eW//////9ceeb/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8AAAAAJkzdgCZM3f8mTN3/JkzdgCZN3FAmTd3/Jk3d/yRN3a8AAAAAJU3evyZN3f8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f9ugcn/1dXV////////////////////////////1b2w/8enlv/x6eX//////////////////////////////////////////////////////6NwVP+OTyz/3Mi9/9W9sP//////NFjf/yZN3f8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8lTd6/AAAAACRN3a8mTd3/Jk3d/yZN3FAgUN8QJk3d/yZN3f8mStrvAAAAACdN3XAmTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8mTd3/boHJ/9ra2v/////////////////////////////////////////////////////////////////////////////////////////////////49PL/zrKj/+PTyv//////1t75/yZN3f8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8mTd3/J03dcAAAAAAmStrvJk3d/yZN3f8gUN8QAAAAACZO3c8mTd7/Jk3e/yVK3zAlSt8wJk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/26Byv/a2tr////////////ly8P//////////////////////////////////////////////////////////////////////////////////////////////////////4Wb7P8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yVK3zAlSt8wJk3e/yZN3v8mTt3PAAAAAAAAAAAlTd2PJk3e/yZN3v8lTd2PAAAAACZO3c8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v9TbtH/2tra////////////zZ6Q/929tf////////////////////////////////////////////////////////////////////////////////////////////////9BY+L/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZO3c8AAAAAJU3djyZN3v8mTd7/JU3djwAAAAAAAAAAJUrfMCZN3v8mTd7/Jkrb7wAAAAAnTd9wJk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/L1Tb/8jIyP////////////Hk4P/DjH3/s25e/7h5bP/DjoP/////////////////////////////////////////////////6dTN/+PIwP/q1tL/4cfC/8+lnP+uvPP/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8nTd9wAAAAACZK2+8mTd7/Jk3e/yVK3zAAAAAAAAAAAAAAAAAjS9zfJk7f/yZO3/8lTd9gIFDfECZL3O8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/+Nmcf////////////////////////////////////////////////////////////////////////////////////////////Tq6D/v4V3/76Fef/t3dr/QWTj/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mS9zvIFDfECVN32AmTt//Jk7f/yNL3N8AAAAAAAAAAAAAAAAAAAAAJ03fcCZO3/8mTt//Jk7dzwAAAAAmTt+AJk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//SmjV/+jo6P//////////////////////////////////////////////////////////////////////////////////////////////////////oLLx/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7fgAAAAAAmTt3PJk7f/yZO3/8nTd9wAAAAAAAAAAAAAAAAAAAAACBQ3xAmS9zvJk7f/yZO3/8mTd9QIFDfECZL3O8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/+EltX/////////////////////////////////////////////////////////////////////////////////////////////////5On7/zRZ4f8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jkvc7yBQ3xAmTd9QJk7f/yZO3/8mS9zvIFDfEAAAAAAAAAAAAAAAAAAAAAAAAAAAJk7fgCZO4P8mTuD/I0vg3wAAAAAlTd9gJk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/5uq4f//////////////////////////////////////////////////////////////////////////////////////8fT9/09v5v8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yVN32AAAAAAI0vg3yZO4P8mTuD/Jk7fgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBQ3xAmS+DvJk7g/yZO4P8mTt+AAAAAACVN4L8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/ZYHl/+Tp+///////////////////////////////////////////////////////////////////////8fT9/05v5v8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yVN4L8AAAAAJk7fgCZO4P8mTuD/Jkvg7yBQ3xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJVDfYCVP4P8lT+D/JU/g/yVQ3zAgUN8QJUzg7yVP4P8lT+D/JU/g/yVP4P8lT+D/JU/g/yVP4P8lT+D/JU/g/yVP4P8lT+D/d5Hs/7vI9f/x9P3////////////////////////////////////////////W3vn/hJzu/zNa4v8lT+D/JU/g/yVP4P8lT+D/JU/g/yVP4P8lT+D/JU/g/yVP4P8lT+D/JU/g/yVP4P8lT+D/JU/g/yVP4P8lT+D/JU/g/yVM4O8gUN8QJVDfMCVP4P8lT+D/JU/g/yVQ32AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlTeK/JU/h/yVP4f8iTuHPIFDfECVQ3zAlT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/W3XQ/0lp1v9Jadb/SWnW/22Cy/9tgsv/qLPX/+Tm7////////////////////////////+Tp+/8zWuP/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lUN8wIFDfECJO4c8lT+H/JU/h/yVN4r8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKFDfICVM4e8lT+H/JU/h/yNP4Z8AAAAAJVDiYCVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/7G51P/t7e3/7e3t/+3t7f/29vb//////////////////////////////////////9be+f8zWuP/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lUOJgAAAAACNP4Z8lT+H/JU/h/yVM4e8oUN8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlUOJgJU/h/yVP4f8lT+H/I0/hnwAAAAAlUOJgJU/h/yVP4f8lT+H/JU/h/yVP4f8uVd7/hJzu/9bb7f//////////////////////////////////////8fT9/4Sc7v8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lUOJgAAAAACNP4Z8lT+H/JU/h/yVP4f8lUOJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVQ4Y8lUOL/JVDi/yVQ4v8jUOKfAAAAACVQ4mAlUOL/JVDi/yVQ4v8lUOL/W3bR/6200P/x8fH////////////////////////////J0/j/d5Lt/zNb4/8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOJgAAAAACNQ4p8lUOL/JVDi/yVQ4v8lUOGPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI1DinyVQ4v8lUOL/JVDi/yNQ4p8AAAAAJVDkMCVQ4u8lUOL/JVDi/y5W3/9cfOn/kqjx/5Ko8f+SqPH/d5Lt/1x86f8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4u8lUOQwAAAAACNQ4p8lUOL/JVDi/yVQ4v8jUOKfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjUOKfJVDi/yVQ4v8lUOL/JFDgryBQ3xAgUN8QJFDgryVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yRQ4K8gUN8QIFDfECRQ4K8lUOL/JVDi/yVQ4v8jUOKfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNQ4p8lUOL/JVDi/yVQ4v8iUOHPJVDkMAAAAAAmUOJQI1Di3yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/I1Di3yZQ4lAAAAAAJVDkMCJQ4c8lUOL/JVDi/yVQ4v8jUOKfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJlDjgCVQ4/8lUOP/JVDj/yVQ4/8mUuOAIFDfECBQ3xAmUOOAJVDj7yVQ4/8lUOP/JVDj/yVQ4/8lUOP/JVDj/yVQ4/8lUOP/JVDj/yVQ4/8lUOP/JVDj/yVQ4/8lUOP/JVDj/yVQ4/8lUOP/JVDj/yVQ4/8lUOP/JVDj/yVQ4/8lUOPvJlDjgCBQ3xAgUN8QJlLjgCVQ4/8lUOP/JVDj/yVQ4/8mUOOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmUOJQJVHj7yVR4/8lUeP/JVHj/yNR5N8lUOJgAAAAAAAAAAAlUOJgIlHhzyVR4/8lUeP/JVHj/yVR4/8lUeP/JVHj/yVR4/8lUeP/JVHj/yVR4/8lUeP/JVHj/yVR4/8lUeP/JVHj/yVR4/8lUeP/JVHj/yJR4c8lUOJgAAAAAAAAAAAlUOJgI1Hk3yVR4/8lUeP/JVHj/yVR4+8mUOJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChQ3yAlUeK/JVHj/yVR4/8lUeP/JVHj/yNR5N8lUORgIFDfEAAAAAAoUN8gJFLkcCRS468jUeTfJVHj/yVR4/8lUeP/JVHj/yVR4/8lUeP/JVHj/yVR4/8lUeP/JVHj/yNR5N8kUuOvJFLkcChQ3yAAAAAAIFDfECVQ5GAjUeTfJVHj/yVR4/8lUeP/JVHj/yVR4r8oUN8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVQ5GAjUeTfJVHk/yVR5P8lUeT/JVHk/yVR5O8jUuSfJlDmUAAAAAAAAAAAAAAAACBQ3xAkUONAJFDjQCRS5HAmUuOAJlLjgCRS5HAkUONAJFDjQCBQ3xAAAAAAAAAAAAAAAAAmUOZQI1LknyVR5O8lUeT/JVHk/yVR5P8lUeT/I1Hk3yVQ5GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFDfECZS44AlUeTvJVHk/yVR5P8lUeT/JVHk/yVR5P8lUeT/JVHkvyZS44AlUORgJFDjQCBQ3xAAAAAAAAAAAAAAAAAAAAAAIFDfECRQ40AlUORgJlLjgCVR5L8lUeT/JVHk/yVR5P8lUeT/JVHk/yVR5P8lUeTvJlLjgCBQ3xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVQ5GAiU+HPJVLk/yVS5P8lUuT/JVLk/yVS5P8lUuT/JVLk/yVS5P8lUuT/JVLk/yVS5P8lUuT/JVLk/yVS5P8lUuT/JVLk/yVS5P8lUuT/JVLk/yVS5P8lUuT/JVLk/yJT4c8lUORgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChQ5yAkUuZwJVHmvyVS5f8lUuX/JVLl/yVS5f8lUuX/JVLl/yVS5f8lUuX/JVLl/yVS5f8lUuX/JVLl/yVS5f8lUuX/JVLl/yVS5f8lUea/JFLmcChQ5yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJFTjQCRS5nAlUuSPJVHmvyVR5r8lUea/JVLl/yVS5f8lUea/JVHmvyVR5r8lUuSPJFLmcCRU40AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoSM8gJ0TRcCdE0K8jQ9HfJ0TR/ydE0f8nRNH/J0TR/yND0d8nRNCvJ0TRcChIzyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoRNNAJUXSvydF0v8nRdL/J0XS/11z3f9dc93/eIvj/5Oi6f+Toun/a3/g/zVQ1f8nRdL/J0XS/yVF0r8oRNNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQM8QJ0TTrydF0/8nRdP/JUXSvyhF0mDr7vuv/v7+v/7+/r/9/f3P///////////+/v6/ydHzgChF0mAlRdK/J0XT/ydF0/8nRNOvIEDPEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJUXVMCdG0+8nRtP/J0bRzyhE00AAAAAAx8fHQNrx4Z+U2KTf6Pfs//////////////////Dy/N8nRtKPJUXVMAAAAAAoRNNAJ0bRzydG0/8nRtPvJUXVMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChF1WAnRtT/J0bU/yhG04AAAAAAJkbWUCND1N/IyMj/xerP/0a7ZP9Gu2T/f8iK/3O/ev+Ly5L/iaTX/zNyqv88lof/M3ik3yZG1lAAAAAAKEbTgCdG1P8nRtT/KEXVYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlRdUwJ0fV/ydH1f8oRdVgIEDPECdH068nR9X/QlvP/9ra2v+j3bL/Rrtk/0a7ZP9Fs1r/Rrtk/0a7ZP9Gu2T/Rrtk/0a7ZP8+noD/J0fV/ydH068gQM8QKEXVYCdH1f8nR9X/JUXVMAAAAAAAAAAAAAAAAAAAAAAAAAAAIEDPECdH1e8nR9X/KEjVYCBAzxAnR9XPJ0fV/ydH1f9ccMn/7e3t/6Pdsv9Gu2T/Rrtk/0WuVP9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/z6egP8nR9X/J0fV/ydH1c8gQM8QKEjVYCdH1f8nR9XvIEDPEAAAAAAAAAAAAAAAAAAAAAAnR9avJ0fW/yhI1YAgUM8QJ0fWzydH1v8nR9b/J0fW/4CMwf/6+vr/o92y/0a7ZP9dxHf/otuv/67hu/8+noH/Pp6B/0a7ZP9Gu2T/OpCP/ydH1v8nR9b/J0fW/ydH1s8gUM8QKEjVgCdH1v8nR9avAAAAAAAAAAAAAAAAKEjXQCZI1v8mR9bPAAAAACRH1q8mSNb/JkjW/yZI1v8mSNb/o6rE///////o9+z/0e7Y////////////1t33/yZI1v8mSNb/LmW6/zyXiP8yc6z/JkjW/yZI1v8mSNb/JkjW/yRH1q8AAAAAJkfWzyZI1v8oSNdAAAAAAAAAAAAlSNa/JkjX/yhI10AmSdZQJkjX/yZI1/8mSNf/JkjX/yZI1//R0dH///////////////////////////+TpOv/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZJ1lAoSNdAJkjX/yVI1r8AAAAAKEjXICZJ2P8mR9jPAAAAACNJ2N8mSdj/JknY/yZJ2P8mSdj/SmTP/9/f3////////////////////////////1x34v8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/I0nY3wAAAAAmR9jPJknY/yhI1yAnSdhwJknY/yVI12AlStowJknY/yZJ2P8mSdj/JknY/yZJ2P9leMn/7e3t////////////////////////////XHfi/x104/8Un+//DcH4/wnS/P8J0vz/CdL8/xCw8/8bfOb/JknY/yZJ2P8mSdj/JUraMCVI12AmSdj/J0nYcCRK2a8mStn/KEjXICVJ2o8mStn/JkrZ/yZK2f8mStn/JkrZ/4iTwP///////////////////////////9H3/v8Y1fz/CdL8/w659f8Yjuv/GI7r/xiO6/8QsPP/C8r6/wnS/P8Zhej/JkrZ/yZK2f8lSdqPKEjXICZK2f8kStmvI0ra3yNK2d8AAAAAJUnavyZK2v8mStr/Jkra/yZK2v8mStr/sbbH////////////////////////////KNj8/wnS/P8Lyvr/Jkra/yZK2v8mStr/Jkra/yZK2v8mStr/Ilve/yZK2v8mStr/Jkra/yVJ2r8AAAAAI0rZ3yNK2t8mStr/JUnavwAAAAAmR9jvJkra/yZK2v8mStr/Jkra/y9R2P/R0dH///////////////////////////8o2Pz/CdL8/wnS/P8QsPT/ELD0/xCw9P8Un+//HXXl/yZK2v8mStr/Jkra/yZK2v8mStr/JkfY7wAAAAAlSdq/Jkra/yZL2/8lSdq/AAAAACZL2/8mS9v/Jkvb/yZL2/8mS9v/SmbS/+Pj4////////////////////////////+D5//9H3f3/CdL8/wnS/P8J0vz/CdL8/wnS/P8J0vz/C8r6/xaX7v8iXN//Jkvb/yZL2/8mS9v/AAAAACVJ2r8mS9v/Jkvc/yVJ3L8AAAAAJkvc/yZL3P8mS9z/Jkvc/yZL3P9ugMj/8fHx///////////////////////////////////////R9/7/wvT+/6Pu/v9n2vv/Drn2/wnS/P8J0vz/CdL8/wnS/P8Yj+z/Jkvc/yZL3P8AAAAAJUncvyZL3P8mTNz/JUzcvwAAAAAmSdnvJkzc/yZM3P8mTNz/Jkzc/4iUwf///////////6p7Yf+VWjn/8enl///////////////////////x6eX/8enl/8nS9v8mTNz/JFTe/xt+6P8SqPL/ELH0/x125v8mTNz/JknZ7wAAAAAlTNy/Jkzc/yNL3N8mSdrvAAAAACVM3r8mTN3/Jkzd/yZM3f8mTN3/n6nN////////////lVo5/7+ciP/q3tf//////////////////////45PLP+4kXv/ydL2/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8lTN6/AAAAACNL3N8jS9zfJE3dryZN3f8oUN8gJU3djyZN3f8mTd3/Jk3d/yZN3f+krdL////////////x6eX/6t7X////////////////////////////sYZu/+PTyv+gsfD/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yVN3Y8oUN8gJk3d/yRN3a8nTd9wJk3e/ydN33AlSt8wJk3e/yZN3v8mTd7/Jk3e/6Su0v//////0qea/////////////////////////////////////////////////09u5P8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8mTd7/JUrfMCdN33AmTd7/J03fcChQ3yAmTt//Jk7dzwAAAAAlTd6/Jk7f/yZO3/8mTt//hJbV///////n0cr/0qmg/+fSzv//////////////////////2ret/7yAcv+xpcX/Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yVN3r8AAAAAJk7dzyZO3/8oUN8gAAAAACRP3a8mTt//KFDfQChQ30AmTt//Jk7f/yZO3/84W9r/6Ov0/////////////////////////////////////////////////1x65/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//KFDfQChQ30AmTt//JE/drwAAAAAAAAAAKFDfQCZO4P8mTuDPAAAAACZP4Z8mTuD/Jk7g/yZO4P9Ob+b/5On7//////////////////////////////////////93kez/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZP4Z8AAAAAJk7gzyZO4P8oUN9AAAAAAAAAAAAAAAAAI0/hnyVP4f8lTuGPIFDfECJO4M8lT+H/JU/h/0lp1v9Jadb/m6vh//Hx8f////////////////+gsvL/TnDm/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8iTuDPIFDfECVO4Y8lT+H/I0/hnwAAAAAAAAAAAAAAAAAAAAAgUN8QJUzh7yVP4f8lUOJgIFDfECJO4c8lT+H/pLTr///////////////////////x9P3/aYbq/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/Ik7hzyBQ3xAlUOJgJU/h/yVM4e8gUN8QAAAAAAAAAAAAAAAAAAAAAAAAAAAlUN8wJVDi7yVQ4v8lUOJgIFDfECNQ4p+Jm9v/ydP4/8nT+P+tvfT/d5Lt/zNb5P8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yNQ4p8gUN8QJVDiYCVQ4v8lUOLvJVDfMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlUOQwJVDi7yVQ4v8lUOKPAAAAACRQ40AlUOK/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4r8kUONAAAAAACVQ4o8lUOL/JVDi7yVQ5DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlUOQwI1Hk3yVR4/8jUeTfJFDjQAAAAAAlUOQwJlLjgCVR4r8jUeTfJVHj/yVR4/8jUeTfJVHivyZS44AlUOQwAAAAACRQ40AjUeTfJVHj/yNR5N8lUOQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgUN8QI1LknyVR5P8lUeT/I1Hk3yRS5HAoUOcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKFDnICRS5HAjUeTfJVHk/yVR5P8jUuSfIFDfEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJFDjQCNS5J8lUuT/JVLk/yVS5P8lUuTvJVHkvyVR5L8lUeS/JVHkvyVS5O8lUuT/JVLk/yVS5P8kUuOvJFDjQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBQ3xAlUuRgI1LlnyJT5c8lUuX/JVLl/yVS5f8lUuX/IlPlzyNS5Z8lUuRgIFDfEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVE0XslQNL8I0HS/yE/0v8gP9L/ID/R/yFA0f8jQtL/JT/P/SVE0XsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmRtRqJkTT/yRC0/8ePtSwFjbXOQAAAAAAAAAAAAAAAAAAAAAaN9U8Ij/UsiZD1P8nRNP/JkbUagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRG1MsnRtT/J0XTngAAAAAAAAAAxMvRztPyyf////////////////95gvB0AAAAAAAAAAAnRdWeJ0bU/yRG1MsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ0bV5CdG1f8qR9UrAAAAABw+1Zk8UND/4PzL/yy9RP9SwF3/S7pO/53anP8wjIT/OZx8/yM83JoAAAAAKkfVKydG1f8nRtXkAAAAAAAAAAAAAAAAAAAAAAAAAAAlR9WxJ0fV/yBAzxArVdUGI0TV/xk61/9ib8f/z/vI/ya1Rf8qqz7/MrtM/z65UP9FzUv/Q7pj/yM74P8mRNj/K1XVBiBAzxAnR9X/JUfVsQAAAAAAAAAAAAAAACdJ2DsmSNb/JkjWSgAAAAAlR9b/IETW/xE31/+gosj/2PvT/2nMfv/h+d//wOq//yJesf9AtWT/QrBs/yM+3/8lRdj/JkjW/wAAAAAmSNZKJkjW/ydJ2DsAAAAAAAAAACZF1P0jSNXYAAAAACNE1PIlR9f/HkLX/wsy1v/W09H/////////////////qa33/xEr3/8gON//KU7N/yVA2/8mRdj/JkfX/yNE1PIAAAAAI0jV2CZF1P0AAAAAKErXJiZJ2P8oQ9cTJkrZZCZJ2P8kSNj/HEHY/w830//5893/////////////////T2Tg/xYx1v8jOdj/JzvY/yc+1/8nQtf/JkbX/yZI2P8mStlkKEPXEyZJ2P8oStcmJUnakCZJ2f8AAAAAJknW/iZI2f8jRtn/GD7Z/zNPyf////H/////////////////LD3W/xVQ2/8Ujez/EKny/xWY7v8hXN7/J0LX/yZG2P8mSNb+AAAAACZJ2f8lSdqQJkvZ2yZL2ZMAgP8CJkrZ/yVJ2f8iR9n/FDzY/1twv//////////////////z////AMH5/wC79/8Xf+f/GYTo/xOj7/8J0Pv/IGfh/ydG2P8mSdj/AID/AiZL2ZMmS9nbJkva/ydL204oS9tHJkva/yVK2v8gRtr/DznZ/6CoxP////////////////9q6P7/ANT+/wd75/8WZuD/H1jd/ysw0/8qNtT/KD/X/ydG2P8mStn/KEvbRydL204mS9r/Jkvb/ylL3CwnS9tpJkvb/yVK2/8eRdv/CjXa/9jWz///////////////////////O+D//wDV//8A3///AOr//wLe//8Tnu//I1Hd/ydD2f8mSNr/J0nbaSlL3CwmS9v/Jkzc/yRN2zInS91iJkzc/yRL3P8cRNz/FD3X//354///////28W3////////////////////////////MYLs/wqg8f8D4v//APf//yNa3/8mSdv/J0vdYiRN2zImTNz/Jkzd/yZM3F4kTd84Jkzd/yRK3f8bQ93/MVLP////9//jzLr/fDEI///+/v///////////3wxCP/wv5j/PVXj/x842v8nPdn/KEHa/ydG2/8mStz/JEnfOCZM3F4mTN3/Jk3eySZL3rAAAAAAJk3e/yRL3v8bRN7/NVbO//////////////78//////////////////Thz///+N3/DTfe/x5D3f8lSN3/Jkrd/yZL3f8mTN7/AAAAACZL3rAmTd7JJkzdciZN3v8AAAAAJk3c1iRL3v8cRd3/Fz/X////9f//7+L////////////////////////+6f+svfP/EDzd/yBI3f8lS93/Jkzd/yZM3v8mTdzWAAAAACZN3v8mTN1yAFX/AyZO3/8nTt9IKUvcLCVN3/8gSd//Djve/8HH3P////////////////////////////////8fSeD/GUTe/yNM3v8mTt//Jk7f/yZO3/8pS9wsJ07fSCZO3/8AVf8DAAAAACZM38UlT+D/AAAAACNP3rQhTOD/FELf/wY22v+Bldj/6ert////////////w83x/y5X4f8TQd7/H0vf/yRO4P8lT+D/JU/g/yNP3rQAAAAAJU/g/yZM38UAAAAAAAAAACRJ2wclT+H/Jk7howAAAAAhTd7dGEXh/5Kg0v////n//////////P9Wduj/Bzfd/xZC3/8fSuD/I03h/yRO4f8lT+H/IU7e3QAAAAAmTuGjJU/h/yRJ2wcAAAAAAAAAAAAAAAAkUONcJVDi/yRP4nEAAAAAHkvhtT1h3f9gfuf/Mlrk/wg53v8SQd//G0jh/yFN4f8jT+L/JFDi/yVQ4v8lUOG1AAAAACRP4nElUOL/JFDjXAAAAAAAAAAAAAAAAAAAAAAAAAAAI1DkgyVQ4/8kT+SeAAAAABxK4y0aR+PXGkfi/x1J4v8gTOL/I07j/yRP4/8lT+P/JE/j1ydO4y4AAAAAJVDjnSVQ4/8jUOSDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVQ4mAlUeP/JFDj/yRQ40AAAAAAAAAAACJO4jQjT+JXJlLiVydT4jQAAAAAAAAAACRQ40AlUeP/JVHj/yVQ4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnTusNJVHk0SVR5P8lUOT/JlHkqiRQ41wlT+M3JU/jNyRQ41wmUeSqJVHk/yVR5P8lUeTRJ07rDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRJ2wclUuR9JVDlziVS5f8lUuX/JVLl/yVS5f8lUOXOJVLkfSRJ2wcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABAAAAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANdUYAC7OqAAm0PcAI9L/ACPS/wAn0PcALtGoADXVGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8zeAjXS/6Cv8///////////////////////o7D7/wQ11/8AM9LeAAAAAAAAAAAAAAAAAAAAAAAAAAAAMs7zUnbg///////Iyv7/j/i3/yG0C/9e0Tz/id2P/8Dil///////WHrl/wAyzvMAAAAAAAAAAAAAAAAAMNPdaYjl//P1/f9RceT/cYbv/1jlmf9FvS7/S8I5/yfAQf8cgwD/W3Xy//Xz//9piOb/ADDT3QAAAAAHOtdGEUPX//////9Ga+D/ABnQ/7G99v///////////8K7//8AIdf/DD2m/wAj3P9Oa+P//////xJD1/8HOtdGADbVpK6/8v+kuPD/ACfS/wAd0f/v8P7///////////9/g+3/AEHi/wGE8P8Ba+f/ADDW/6e07/+uvfL/ADPVpAAy1v//////Ml7f/wAt1f8AMNf////////////8////AND+/wCm9f8FiOz/ALj3/wCd8P82Vtz//////wAx1f8AMdj//////wM62f8ALtf/OGTi////////////3v///wDQ//8Atfn/ALX3/wGW7/8GOtn/BCzX//////8AMNf/ADLZ//////8AMNn/ACzZ/5Cq8/////v/3MGx////////////0f///0XG/P8Azv3/APz//wB86P//////ADDY/wA12v//////L17i/wAp2v+Mqvf//+/U/41JIP/Yvq///////69kNP+wqM7/ASna/wIq2P83WeD//////wA02v8CO9rTrr/0/6a69P8AJdr/iaj2//+8lv/m1Mb//fv5////7v/1vp//jqfy/wAz3f8AL9r/q7v0/6+/9P8CO9rTC0HdQxBI4P//////Qm3n/wA54P//////////////////////0d///wAt4P8AMt7/Unjp//////8RSOD/C0HdQwAAAAADOuDzZors//f4//9pje3/5uz9////////////Qm/p/wAl3f8ALd7/a47t//////9oi+z/Azrg8wAAAAAAAAAAAAAAAAE94P9Kden//////9zk/P9zku7/ACrd/wAj3P84Z+f/scP2//////9Peer/Aj3g/wAAAAAAAAAAAAAAAAAAAAAAAAAABDzg8wVA4f+bs/P/+/3+/////////////////6a89P8LReL/BUHg8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALReVGA0DjpAA64/8AOOL/ADnj/wA85P8FQeOkD0XlRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
SuggestUrl: "https://ac.duckduckgo.com/ac/?q=%s&type=list"
}, {
Id: 2,
Name: "Wikipedia",
Keyword: "w",
Url: "https://en.wikipedia.org/wiki/Special:Search?search=%s",
FaviconUrl: "data:image/png;base64,AAABAAMAMDAQAAEABABoBgAANgAAACAgEAABAAQA6AIAAJ4GAAAQEBAAAQAEACgBAACGCQAAKAAAADAAAABgAAAAAQAEAAAAAAAABgAAAAAAAAAAAAAQAAAAAAAAAAEBAQAXFxcAMDAwAEdHRwBYWFgAZ2dnAHZ2dgCHh4cAlZWVAKmpqQC3t7cAx8fHANfX1wDo6OgA/v7+AAAAAAD////+7u7u7u7u7u7u7u7u7u7u7u///////+7u7u7u7u7u7u7u7u7u7u7u7u7u/////u7u7u7u7u7u7u7u7u7u7u7u7u7u7///7u7u7u7u7u7u7u7u7u7u7u7u7u7u7v/+7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u/+7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u/+7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u/u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7sa+7u7u7u1b7u7u7u7u7u7u7u7u7u7u7p9u7u7u7ugG7u7u7u7u7u7u7u7u7u7u7TAa7u7u7tQBzu7u7u7u7u7u7u7u7u7u6wAF7u7u7pAAju7u7u7u7u7u7u7u7u7u1AAAru7u7U//Le7u7u7u7u7u7u7u7u7uz/8RPe7u6gAB+e7u7u7u7u7u7u7u7u7ubw94Ce7u1QAIIu7u7u7u7u7u7u7u7u7tH/G+Mt7usAAtcL7u7u7u7u7u7u7u7u7n8ATun47uQACO0T7u7u7u7u7u7u7u7u7hDxnu4x3sAPLO5Qzu7u7u7u7u7u7u7u6P/z7u6wXk/wfu7ATu7u7u7u7u7u7u7u4QAY7u7kCQADzu7kDO7u7u7u7u7u7u7uoA8u7u7sAAAG7u7r9e7u7u7u7u7u7u7uIPB+7u7uUAAs7u7uMd7u7u7u7u7u7u7rEAHe7u7uQABu7u7un37u7u7u7u7u7u7kAAXu7u7sAPHe7u7u4S3u7u7u7u7u7u7BAA3u7u7k8AHO7u7u6Aju7u7u7u7u7u5g/07u7u7B8BBe7u7u7RLu7u7u7u7u7u0v/87u7u5QAGQa7u7u7nCe7u7u7u7u7ugAA+7u7uwQ8dsE7u7u7rBO7u7u7u7u7tP/++7u7uYAB+5Qnu7u7tQa7u7u7u7u7pH/Lu7u7sLwHe6xPe7u7ur27u7u7u7u7V//ru7u7mAAju7n+e7u7u0yvu7u7u7u6h8C3u7u6yAB3u7rEs7u7u6Pfu7u7u7u1AAE7u7u5g/27u7tQG3u7u6QHO7u7u7tbwAB3u7ukfAH7u7sIAju7u5wA97u7utiAAAAF76lAA/wWeyDAA84zqUAABfO7uMiNERDIm4iNERDIrkiNEQybiI0RDJO7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7+7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u/+7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u/+7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u//7u7u7u7u7u7u7u7u7u7u7u7u7u7u7v///u7u7u7u7u7u7u7u7u7u7u7u7u7u7////+7u7u7u7u7u7u7u7u7u7u7u7u7u///////+7u7u7u7u7u7u7u7u7u7u7u/////+AAAAAH8AAPAAAAAADwAA4AAAAAAHAADAAAAAAAMAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAwAAAAAADAADgAAAAAAcAAPAAAAAADwAA/gAAAAB/AAAoAAAAIAAAAEAAAAABAAQAAAAAAIACAAAAAAAAAAAAABAAAAAAAAAAAQEBABYWFgAnJycANTU1AEdHRwBZWVkAZWVlAHh4eACIiIgAmZmZAK6urgDMzMwA19fXAOnp6QD+/v4AAAAAAP//7u7u7u7u7u7u7u7u////7u7u7u7u7u7u7u7u7u7//u7u7u7u7u7u7u7u7u7u7/7u7u7u7u7u7u7u7u7u7u/u7u7u7u7u7u7u7u7u7u7u7u7u7u7X3u7u7I7u7u7u7u7u7u7uYF7u7uIK7u7u7u7u7u7u7QAM7u6vBO7u7u7u7u7u7ucABe7uMA/O7u7u7u7u7u7R8q/O6gCEbu7u7u7u7u7ukAnibuTx6g3u7u7u7u7u7hAe6gzP+O4Y7u7u7u7u7urwju4mXx7uge7u7u7u7u7jAd7uoACO7tCe7u7u7u7uoPfu7uEB3u7mPu7u7u7u7k8N7u7QBu7u6wru7u7u7uwAXu7ufwbu7u407u7u7u7lAM7u7RBQzu7ur87u7u7u0ATu7ucA0l7u7uFu7u7u7n/67u7RB+oL7u7nHe7u7u0fPu7ucA3uJO7u7Qju7u7o/67u7Q9u7q+u7u5R3u7u0Q/e7ub/vu7PLO7uX13u4w//Be4v/xnoH/+ekv//Xu7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7+7u7u7u7u7u7u7u7u7u7v/u7u7u7u7u7u7u7u7u7u7//u7u7u7u7u7u7u7u7u7v///+7u7u7u7u7u7u7u7v//8AAAD8AAAAOAAAABgAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAAAABwAAAA/AAAA8oAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAABAAAAAAAAAAAQEBABcXFwAnJycAOzs7AElJSQBpaWkAeXl5AIaGhgCVlZUApqamALOzswDMzMwA2dnZAObm5gD+/v4AAAAAAP/u7u7u7u7//u7u7u7u7u/u7uzu7t7u7u7u4Y7lTu7u7u6QTtA77u7u7iaoctXu7u7qDOQZ5d7u7uRO5R7rbu7uv77iLu5O7u5D7pGn7pju7QrtKOTe4+6z+OT40z2RTO7u7u7u7u7u7u7u7u7u7u7+7u7u7u7u7//u7u7u7u7/wAMAD4ABAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA+AAQAPwAMADw==",
SuggestUrl: "https://en.wikipedia.org/w/api.php?action=opensearch&search=%s"
}, {
Id: 0,
Name: "Google",
Keyword: "g",
Url: "https://www.google.com/search?q=%s",
FaviconUrl: "data:image/png;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAASCwAAEgsAAAAAAAAAAAAA9IVCSvSFQuf0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hULk9IVCSvSFQub0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQuf0hUL/9IVC//SFQv/0hUL/9Y1O//rIq//+7+f//eXX//vUvf/7z7X/96Fu//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//vYwv/97OH/9ZRZ//SFQv/0hUL/9IhG//zbx//3om7/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/97uX/+buW//SFQv/0hUL/9IVC//SFQv/5upT/+9O6//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/+b6b//zezP/0iEf/9IVC//SFQv/1klf//ezh//vPtP/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/3qXr/+siq//m8lv/5wqD//vTu//3t4//1klb/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0h0b//vbx//zi0//1j1H/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/2nmn/+bmS/////v/4sIX/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/5uJH///v5//eoef/1jU//+82y//afav/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL//vXw//vOs//0hUL/9IVC//ekcf/96+D/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//728v/4sIX/9IVC//SFQv/4s4n///v4//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/6yKn/+byX//SFQv/0hkT//eTV//vWv//0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IZE//m6lP/5u5b//OHQ///+/f/6y6//96d3//SFQv/0hUL/9IVC//SFQv/0hULm9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hULm9IVCSfSFQub0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hULm9IVCSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAASCwAAEgsAAAAAAAAAAAAA9IVCAPSFQif0hUKt9IVC8vSFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQvL0hUKt9IVCJ/SFQgD0hUIo9IVC7/SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hULv9IVCKPSFQq30hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUKt9IVC8fSFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQvP0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9YtL//i2jv/828f//vLr///7+P///Pv//vTu//3n2v/6zbH/96Nw//SFQ//0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//ekcv/+8+z////////////+9fD/+9K5//m9mf/4to7/+buV//vSuf/++PT//OPT//aYYP/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/2l13///r3/////////fv/+b2Z//SIRv/0hUL/9IVC//SFQv/0hUL/9IVC//WNT//84M///vXv//aZYf/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//vPtP////////////i0i//0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//WQUv///Pr//OPU//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL//eTV///////+9O7/9IVD//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//3m2P//////9ppi//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/718H///////3s4f/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL//vDn///////4soj/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//erff////////38//WTWP/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//iziv////////////iwhf/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//rMsP///////eXW//WSVv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/4sYb///z7/////////Pv/9ZFV//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//ixhv/+8Of//vn1//rMsP/4rH//9plh//WQUv/1j1L/+s2x//////////////////m9mf/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SGQ//2nmn/+buW//vNsv/82sb//e3j/////////////////////v/5wZ//9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/83Mj////////////++fb/+K+C//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9ZRZ/////////////vTt//aaYv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/1lFr////////////6xqf/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//ehbf/70bj//end//3o2////v3///////3l1//0iEb/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/5wqD////////////96t7/96Z2//WOUP/2nWf//NvH//zcyP/1i0z/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/96l6/////////////vLr//WPUf/0hUL/9IVC//SFQv/0h0b//end//3k1f/0iUn/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/8387////////////4sYf/9IVC//SFQv/0hUL/9IVC//SFQv/6w6L///////nBn//0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC///69////////vj1//SIR//0hUL/9IVC//SFQv/0hUL/9IVC//m+mv///////e3j//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL///r3///////8387/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/+syw///////++fb/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/95NX///////vUvP/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/97OH///////7y6//0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//i2jv///////N/O//SFQv/0hUL/9IVC//SFQv/0hUL/96Nx////////////+s2x//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IdF//zh0P//+/j/9ZJW//SFQv/0hUL/9IVC//SKSv/96t7///////738v/1k1f/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9YxN//vUvf/96+D/96Z0//WNT//3om///ebY/////////Pv/+LKI//WVW//0h0X/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//agbP/7zbL//enc//749P////////////////////////////3r4P/3p3f/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hULx9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC8/SFQq30hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUKt9IVCJ/SFQu/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC7/SFQif0hUIA9IVCJfSFQq30hULx9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC8fSFQq30hUIl9IVCAIAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAB"
}],
VALIDATION_URL: "http://validator.w3.org/check?uri=%s&charset=%28detect+automatically%29&doctype=Inline&group=0"
}
}, function(e, t, n) {
// =========================
// Function_747
// =========================
"use strict";
var i = n(10),
a = n(7),
r = a.omit;
e.exports = function(e, t) {
return new Promise(function(n, a) {
if (void 0 !== t.DEFAULT_HOME) {
var s = {
preferenceKey: "vivaldi.home_page",
preferenceValue: {
string: t.DEFAULT_HOME
},
preferenceType: "string"
};
i.settings.setPreference(s), e.remove(["DEFAULT_HOME"], n.bind(void 0, r(t, "DEFAULT_HOME")))
} else n(t)
})
}
}, function(e, t) {
// =========================
// Function_748
// =========================
"use strict";
e.exports = function(e, t) {
return new Promise(function(n, i) {
var a = {};
"keep_relations" === t.TAB_CLOSE_ACTIVATION ? (a.TAB_CLOSE_ACTIVATION = "activation_order", a.TAB_ACTIVATION_PREFER_RELATED = !0) : "activation_order" === t.TAB_CLOSE_ACTIVATION && void 0 === t.TAB_ACTIVATION_PREFER_RELATED && (a.TAB_ACTIVATION_PREFER_RELATED = !1), Object.keys(a) ? e.set(a, n.bind(void 0, Object.assign({}, t, a))) : n(t)
})
}
}, function(e, t, n) {
// =========================
// Function_749
// =========================
"use strict";
var i = n(7),
a = i.keyBy;
e.exports = function(e, t) {
return new Promise(function(n, i) {
var r = {};
t.SEARCH_ENGINES && Array.isArray(t.SEARCH_ENGINES) && t.SEARCH_ENGINES.length > 0 ? ! function() {
var i = a(e.getDefault("SEARCH_ENGINES"), "Id"),
s = !1,
o = t.SEARCH_ENGINES.map(function(e) {
var t = e.Id;
return e.url === i.url && null == e.SuggestUrl && i[t] && i[t].SuggestUrl ? (s = !0, Object.assign({}, e, {
SuggestUrl: i[t].SuggestUrl
})) : e
});
s === !0 ? (console.log("Migrating Search Engines from", t.SEARCH_ENGINES, "to", o), r.SEARCH_ENGINES = o, e.set(r, n.bind(void 0, Object.assign({}, t, r)))) : n(t)
}() : n(t)
})
}
}, function(e, t) {
// =========================
// Function_750
// =========================
"use strict";
function n(e, t) {
var n = this;
return new Promise(function(i, a) {
var r = {
"https://www.vivaldi.rocks/Results.aspx?gd=SY1000190&ctid=&ISID=1D83D349-F886-40D4-B0E0-D0186D90911A&SearchSource=58&UM=8&D=090215&q=%s": "https://www.bing.com/search?pc=cosp&ptag=A9AF7AAEA7E&form=CONBDF&conlogo=CT3210127&q=%s",
"https://www.vivaldi.rocks/Results.aspx?gd=SY1000191&ctid=&ISID=6607C819-705B-493E-B85F-75D5FF8ECA5D&SearchSource=58&UM=8&D=091115&q=%s": "https://search.yahoo.com/search;?q=%s"
},
s = !1,
o = {};
t.SEARCH_ENGINES && (o = {
SEARCH_ENGINES: t.SEARCH_ENGINES.map(function(e) {
return r[e.Url] ? (s = !0, Object.assign({}, e, {
Url: r[e.Url]
})) : e
})
}), s && Object.keys(o) ? e.set(o, i.bind(n, Object.assign({}, t, o))) : i(t)
})
}
e.exports = n
}, function(e, t) {
// =========================
// Function_751
// =========================
"use strict";
function n(e, t) {
var n = this;
return new Promise(function(i, a) {
var r = {
"https://www.bing.com/search?pc=cosp&ptag=A9AF7AAEA7E&form=CONBDF&conlogo=CT3210127&q=%s": "https://www.bing.com/search?pc=cosp&ptag=AD6C08C471A&form=CONBDF&conlogo=CT3210127&q=%s"
},
s = !1,
o = {};
t.SEARCH_ENGINES && (o = {
SEARCH_ENGINES: t.SEARCH_ENGINES.map(function(e) {
return r[e.Url] ? (s = !0, Object.assign({}, e, {
Url: r[e.Url]
})) : e
})
}), s && Object.keys(o) ? e.set(o, i.bind(n, Object.assign({}, t, o))) : i(t)
})
}
e.exports = n
}, function(e, t) {
// =========================
// Function_752
// =========================
"use strict";
function n(e, t) {
var n = this;
return new Promise(function(i, a) {
var r = !1,
s = {};
"on" === t.TABCOLOR_BEHIND_TABS ? (r = !0, s = {
TABCOLOR_BEHIND_TABS: !0
}) : "off" === t.TABCOLOR_BEHIND_TABS && (r = !0, s = {
TABCOLOR_BEHIND_TABS: !1
}), r && Object.keys(s).length > 0 ? e.set(s, i.bind(n, Object.assign({}, t, s))) : i(t)
})
}
e.exports = n
}, function(e, t, n) {
// =========================
// Function_753
// =========================
"use strict";
function i(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
function a(e, t) {
var n = t[r] || 0;
return Object.keys(s).filter(function(e) {
return e > n
}).sort(function(e, t) {
return e - t
}).reduce(function(t, n) {
return t.then(s[n].bind(null, e))
}, Promise.resolve(t)).then(function(t) {
return e.set(i({}, r, Object.keys(s).length)), t
})
}
var r = "SETTINGS_MIGRATION_VERSION",
s = {
1: n(747),
2: n(748),
3: n(749),
4: n(750),
5: n(751),
6: n(752),
7: n(381),
8: n(381)
};
e.exports = a
}, function(e, t) {
// =========================
// Function_754
// =========================
"use strict";
e.exports = {
COMMAND_ADD_BOOKMARK: {
shortcut: ["meta+d"],
showInQC: !0
},
COMMAND_CLIPBOARD_PASTE_AS_PLAIN_TEXT_OR_PASTE_AND_GO: {
shortcut: ["shift+meta+v"],
showInQC: !0
},
COMMAND_CLOSE_TAB: {
shortcut: ["meta+w"],
gestures: ["20"],
showInQC: !0
},
COMMAND_COPY_SELECTION_TO_NOTE: {
shortcut: ["shift+meta+c"],
showInQC: !0
},
COMMAND_MOVE_TAB_TO_NEW_WINDOW: {
showInQC: !0
},
COMMAND_DEVELOPER_TOOLS: {
shortcut: ["shift+meta+i", "f12"],
showInQC: !0
},
COMMAND_EXIT: {
shortcut: ["meta+q"],
showInQC: !0
},
COMMAND_FIND_IN_PAGE: {
shortcut: ["meta+f", "."],
showInQC: !0
},
COMMAND_FIND_NEXT_IN_PAGE: {
shortcut: ["f3", "meta+g"],
showInQC: !0
},
COMMAND_FIND_PREVIOUS_IN_PAGE: {
shortcut: ["shift+f3", "shift+meta+g"],
showInQC: !0
},
COMMAND_FOCUS_ADDRESSFIELD: {
shortcut: ["meta+l", "f8"],
showInQC: !0
},
COMMAND_FOCUS_SEARCHFIELD: {
shortcut: ["meta+k"],
showInQC: !0
},
COMMAND_FULLSCREEN: {
shortcut: ["ctrl+meta+f", "f11"],
showInQC: !1
},
COMMAND_MAIL_MARK_SELECTED_UNREAD: {
shortcut: ["shift+k"],
showInQC: !1
},
COMMAND_MAIN_ZOOM_IN: {
shortcut: ["meta+=", "meta++", "0", "+"],
showInQC: !0
},
COMMAND_MAIN_ZOOM_OUT: {
shortcut: ["meta+-", "9", "-"],
showInQC: !0
},
COMMAND_MAIN_ZOOM_RESET: {
shortcut: ["meta+0", "6", "*"],
showInQC: !0
},
COMMAND_MAIN_TOGGLE_UI: {
shortcut: ["meta+f11"],
showInQC: !0
},
COMMAND_SHOW_KEYBOARDSHORTCUTS: {
shortcut: ["meta+f1"],
showInQC: !0
},
COMMAND_NEW_TAB: {
shortcut: ["meta+t"],
gestures: ["2"],
showInQC: !0
},
COMMAND_NEW_WINDOW: {
shortcut: ["meta+n"],
showInQC: !0
},
COMMAND_NEW_PRIVATE_WINDOW: {
shortcut: ["shift+meta+n"],
showInQC: !0
},
COMMAND_CLOSE_WINDOW: {
shortcut: ["shift+meta+w"],
showInQC: !0
},
COMMAND_OPEN_PAGE: {
shortcut: ["meta+o"],
showInQC: !0
},
COMMAND_STOP_PAGE: {
shortcut: ["esc", "meta+."],
gestures: ["6"],
showInQC: !0
},
COMMAND_PAGE_BACK: {
shortcut: ["backspace", "meta+left", "z"],
gestures: ["4"],
showInQC: !0
},
COMMAND_PAGE_FORWARD: {
shortcut: ["meta+right", "x"],
gestures: ["0"],
showInQC: !0
},
COMMAND_PAGE_REFRESH: {
shortcut: ["meta+r", "f5"],
gestures: ["62"],
showInQC: !0
},
COMMAND_PAGE_RELOAD_NOCACHE: {
shortcut: ["shift+meta+r", "meta+f5"],
showInQC: !0
},
COMMAND_PRINT_PAGE: {
shortcut: ["meta+p"],
showInQC: !0
},
COMMAND_SAVE_PAGE: {
shortcut: ["meta+s"],
showInQC: !0
},
COMMAND_SHOW_BOOKMARK_BAR: {
shortcut: ["shift+meta+b"],
showInQC: !0
},
COMMAND_SHOW_BOOKMARK_PANEL: {
shortcut: ["alt+meta+b"],
showInQC: !0
},
COMMAND_SHOW_CONTACTS_PANEL: {
shortcut: ["alt+meta+t"],
showInQC: !0
},
COMMAND_SHOW_DOWNLOADS_PANEL: {
shortcut: ["alt+meta+l"],
showInQC: !0
},
COMMAND_SHOW_MAIL_PANEL: {
shortcut: ["alt+meta+m"],
showInQC: !0
},
COMMAND_SHOW_NOTES_PANEL: {
shortcut: ["alt+meta+n"],
showInQC: !0
},
COMMAND_SHOW_EXTENSIONS: {
shortcut: ["ctrl+meta+e"],
showInQC: !0
},
COMMAND_SHOW_HELP: {
shortcut: ["shift+meta+?"],
showInQC: !0
},
COMMAND_SHOW_HISTORY: {
shortcut: ["meta+y"],
showInQC: !0
},
COMMAND_SHOW_BOOKMARKS: {
shortcut: ["ctrl+meta+b"],
showInQC: !0
},
COMMAND_SHOW_CLEAR_PRIVATE_DATA: {
shortcut: ["shift+meta+del"],
showInQC: !0
},
COMMAND_SHOW_QUICK_COMMANDS: {
shortcut: ["meta+e", "f2"],
showInQC: !1
},
COMMAND_SHOW_SETTINGS: {
shortcut: ["meta+,"],
showInQC: !0
},
COMMAND_SHOW_HOMEPAGE: {
shortcut: ["shift+meta+h"],
showInQC: !0
},
COMMAND_TAB_REOPEN_RECENTLY_CLOSED: {
shortcut: ["meta+z", "shift+meta+t"],
gestures: ["60"],
showInQC: !0
},
COMMAND_TAB_STACK_TILE_GRID: {
shortcut: ["meta+f7"],
showInQC: !0
},
COMMAND_TAB_STACK_TILE_HORIZONTAL: {
shortcut: ["meta+f8"],
showInQC: !0
},
COMMAND_TAB_STACK_TILE_VERTICAL: {
shortcut: ["meta+f9"],
showInQC: !0
},
COMMAND_TAB_STACK_UNTILE: {
shortcut: ["meta+f6"],
showInQC: !0
},
COMMAND_TAB_SWITCH_BACK_HISTORY: {
shortcut: ["3", "numpad3"],
showInQC: !0
},
COMMAND_TAB_SWITCH_BACK_ORDER: {
shortcut: ["shift+meta+]", "2"],
showInQC: !0
},
COMMAND_TAB_SWITCH_BACK_SETTING: {
shortcut: ["ctrl+tab", "shift+meta+right"],
showInQC: !1
},
COMMAND_TAB_SWITCH_FORWARD_HISTORY: {
shortcut: ["4", "numpad4"],
showInQC: !0
},
COMMAND_TAB_SWITCH_FORWARD_ORDER: {
shortcut: ["shift+meta+[", "1"],
showInQC: !0
},
COMMAND_TAB_SWITCH_FORWARD_SETTING: {
shortcut: ["ctrl+shift+tab", "shift+meta+left"],
showInQC: !1
},
COMMAND_TAB_SWITCH_1: {
shortcut: ["meta+1"],
showInQC: !1
},
COMMAND_TAB_SWITCH_2: {
shortcut: ["meta+2"],
showInQC: !1
},
COMMAND_TAB_SWITCH_3: {
shortcut: ["meta+3"],
showInQC: !1
},
COMMAND_TAB_SWITCH_4: {
shortcut: ["meta+4"],
showInQC: !1
},
COMMAND_TAB_SWITCH_5: {
shortcut: ["meta+5"],
showInQC: !1
},
COMMAND_TAB_SWITCH_6: {
shortcut: ["meta+6"],
showInQC: !1
},
COMMAND_TAB_SWITCH_7: {
shortcut: ["meta+7"],
showInQC: !1
},
COMMAND_TAB_SWITCH_8: {
shortcut: ["meta+8"],
showInQC: !1
},
COMMAND_TAB_SWITCH_LAST: {
shortcut: ["meta+9"],
showInQC: !1
},
COMMAND_TAB_VIEW_PAGE_SOURCE: {
shortcut: ["meta+u"],
showInQC: !0
},
COMMAND_TASK_MANAGER: {
showInQC: !0
},
COMMAND_TOGGLE_FOOTER: {
shortcut: ["meta+/"],
showInQC: !0
},
COMMAND_TOGGLE_MENU_POSITION: {
showInQC: !1
},
COMMAND_TOGGLE_PANEL: {
shortcut: ["alt+meta+p", "f4"],
showInQC: !0
},
COMMAND_SHOW_NEXT_PANEL: {
shortcut: ["alt+meta+down"],
showInQC: !0
},
COMMAND_SHOW_PREVIOUS_PANEL: {
shortcut: ["alt+meta+up"],
showInQC: !0
},
DIM_BLURRED: !0,
TAB_NEVER_CLOSE_LAST: !1
}
}, function(e, t) {
// =========================
// Function_755
// =========================
"use strict";
e.exports = {
COMMAND_CLOSE_WINDOW: {
shortcut: ["ctrl+shift+w"],
showInQC: !0
},
COMMAND_EXIT: {
shortcut: ["ctrl+q"],
showInQC: !0
}
}
}, function(e, t) {
// =========================
// Function_756
// =========================
"use strict";
e.exports = {
COMMAND_EXIT: {
showInQC: !0
}
}
}, function(e, t, n) {
// =========================
// Function_757
// =========================
"use strict";
var i = n(4),
a = n(3),
r = n(54),
s = "en-US",
o = "./default-bookmarks/",
l = function() {
var e = i.i18n.getUILanguage();
return ["be", "de", "en-GB", "en-US", "es", "fr", "is", "it", "ja", "nb", "nn", "pl", "ru", "sv", "tr", "uk"].indexOf(e) === -1 ? s : e
},
c = function(e, t, n) {
if (e && e.length) {
var a = e[0];
i.bookmarks.create({
title: a.title,
url: a.url,
thumbnail: a.thumbnail,
description: a.description,
speeddial: Boolean(a.speeddial),
parentId: t
}, function(i) {
c(a.children, i.id, function() {
c(e.slice(1), t, n)
})
})
} else "function" == typeof n && n()
},
u = function(e, t) {
var n = o + e + ".json";
fetch(n, {
method: "GET"
}).then(function(e) {
return e.json()
}).then(function(e) {
return c(e, "1", t)
}).catch(function(e) {
console.log("Error loading default bookmarks: ", e), t()
})
};
e.exports = function() {
return new Promise(function(e, t) {
var n = l();
a.get("VIVALDI_FIRSTRUN_DONE", function(t) {
t !== !0 ? (r.disableBookmarkMutationHandlers(), u(n, function() {
r.enableBookmarkMutationHandlers(), e()
}), a.set({
VIVALDI_FIRSTRUN_DONE: !0
})) : e()
})
})
}
}, function(e, t, n) {
// =========================
// Function_758
// =========================
(function(t) {
"use strict";
e.exports = function() {
if (Boolean(t.env.ENABLE_LIVERELOAD)) {
var e = n(4);
! function() {
var t = "localhost:",
n = 35729,
i = new WebSocket("ws://" + t + n + "/livereload");
i.onerror = function(e) {
console.log("reload connection got error" + JSON.stringify(e))
}, i.onmessage = function(t) {
if (t.data) {
var n = JSON.parse(t.data);
n && n.path && !n.path.match(/\.css$/) && "reload" === n.command && e.runtime.reload()
}
}
}()
}
}
}).call(t, n(16))
}, , function(e, t, n) {
// =========================
// Function_760
// =========================
"use strict";
function i() {
a.declarativeWebRequest.onRequest.removeRules(), a.declarativeWebRequest.onRequest.addRules(s)
}
Object.defineProperty(t, "__esModule", {
value: !0
}), t.loadUASpoof = i;
var a = n(4),
r = n(383),
s = r.uaspoofRules
}, function(e, t, n) {
// =========================
// Function_761
// =========================
"use strict";
function i() {
"function" == typeof s.bookmarksPrivate.updateSpeedDialsForWindowsJumplist && (o(), r.addChangeListener(o))
}
function a() {
"function" == typeof s.bookmarksPrivate.updateSpeedDialsForWindowsJumplist && r.removeChangeListener(o)
}
var r = n(51),
s = n(10),
o = function() {
var e = "function" == typeof s.bookmarksPrivate.updateSpeedDialsForWindowsJumplist;
if (e) {
var t = r.getSpeeddialNodes();
if (t && 0 !== t.length && t[0].children) {
var n = t[0].children,
i = n.filter(function(e) {
return e.url
}).map(function(e) {
return {
title: e.title,
url: e.url
}
});
s.bookmarksPrivate.updateSpeedDialsForWindowsJumplist(i)
}
}
};
e.exports = {
start: i,
stop: a
}
}, function(e, t, n) {
// =========================
// Function_762
// =========================
"use strict";
function i() {
return a.register(function(e) {
var t = e.action,
n = new Date,
i = n.toLocaleString("is") + ": ";
switch (t.actionType) {
case r.STATUS_SET_STATUS:
l.push(i + t.status);
break;
case r.MAIL_ADD_MESSAGES:
case r.MAIL_REMOVE_MESSAGES:
case r.MAIL_UPDATE_MESSAGES:
case r.MAIL_CHECK_NEW_DELETED_MODIFIED:
case r.MAIL_RESCAN_UNREAD_FLAGS:
l.push(i + " " + t.actionType + ": " + t.accountId + ", " + t.path);
break;
case r.MAIL_MARK_SEEN:
l.push(i + t.actionType + ": " + t.sle.accountId + ", " + t.sle.path);
break;
case r.MAIL_ADD_FILTER:
case r.MAIL_REMOVE_FILTER:
case r.MAIL_ADD_FOLDERS:
case r.MAIL_SELECT_FOLDER:
case r.MAIL_REPLACE_FOLDERS:
case r.MAIL_SEARCH_SET_OPTIONS:
case r.MAIL_FILTERS_INIT:
case r.MAIL_MESSAGES_INIT:
case r.MAIL_CONNECT_IMAP_CLIENTS:
case r.MAIL_DISCONNECT_IMAP_CLIENTS:
case r.CONTACT_INITIALIZE:
case r.CONTACT_SAVE_CONTACT:
case r.CONTACT_ADD_CONTACTS:
case r.CONTACT_SELECT_CONTACT:
case r.CONTACT_DELETE_CONTACT:
l.push(i + t.actionType);
break;
default:
l.push(i + t.actionType)
}
c.emitChange()
})
}
var a = n(8),
r = n(6),
s = n(18).EventEmitter,
o = "change",
l = [],
c = Object.assign({}, s.prototype, {
id: 0,
getAction: function() {
for (; l.length > 500;) l.shift();
return l.join("\r\n")
},
clear: function() {
l = [], this.emitChange()
},
emitChange: function(e) {
this.emit(o, e)
},
addChangeListener: function(e) {
0 === this.listeners(o).length && (this.id = i()), this.on(o, e)
},
removeChangeListener: function(e) {
1 === this.listeners(o).length && a.unregister(this.id), this.removeListener(o, e)
}
});
e.exports = c
}, function(e, t, n) {
// =========================
// Function_763
// =========================
"use strict";
var i = n(18).EventEmitter,
a = n(8),
r = n(6),
s = "change",
o = void 0,
l = Object.assign({}, i.prototype, {
getActiveMessage: function() {
return o && o.state.message
},
emitChange: function() {
this.emit(s)
},
addChangeListener: function(e, t) {
this.on(s, e)
},
removeChangeListener: function(e) {
this.removeListener(s, e)
}
});
a.register(function(e) {
var t = e.action;
switch (t.actionType) {
case r.MAIL_SET_ACTIVE_MESSAGE:
o !== t.mailDetail && (o = t.mailDetail, l.emitChange());
break;
case r.MAIL_CLEAR_IF_ACTIVE:
o === t.mailDetail && (o = void 0, l.emitChange())
}
}), e.exports = l
}, function(e, t, n) {
// =========================
// Function_764
// =========================
"use strict";
function i(e) {
return e && e.__esModule ? e : {
default: e
}
}
function a(e) {
d.emitChangeParam("browsingDataRemoved", e)
}
var r = n(18),
s = i(r),
o = n(8),
l = i(o),
c = n(6),
u = i(c),
A = "change",
d = Object.assign({}, s.default.prototype, {
emitChangeParam: function(e, t) {
this.emit(A, e, t)
},
addChangeListener: function(e) {
this.on(A, e)
},
removeChangeListener: function(e) {
this.removeListener(A, e)
}
});
l.default.register(function(e) {
var t = e.action;
switch (t.actionType) {
case u.default.BROWSING_DATA_REMOVED:
a(t);
break;
default:
return !0
}
}), e.exports = d
}, function(e, t, n) {
// =========================
// Function_765
// =========================
"use strict";
var i = n(8),
a = n(6),
r = n(18).EventEmitter,
s = "change",
o = void 0,
l = Object.assign({}, r.prototype, {
getSelected: function() {
return o
},
emitChange: function(e) {
this.emit(s, e)
},
addChangeListener: function(e) {
this.on(s, e)
},
removeChangeListener: function(e) {
this.removeListener(s, e)
}
}),
c = function(e) {
o = e, l.emitChange()
};
i.register(function(e) {
var t = e.action;
switch (t.actionType) {
case a.CONTACT_SELECT_CONTACT:
c(t.contact)
}
}), e.exports = l
}, function(e, t, n) {
// =========================
// Function_766
// =========================
"use strict";
var i = n(8),
a = n(6),
r = n(388),
s = n(765),
o = n(18).EventEmitter,
l = "change",
c = {},
u = void 0,
A = "",
d = Object.assign({}, o.prototype, {
getOptions: function() {
return c
},
getOptionsFilter: function() {
if (c.toggleFromMessage) {
var e = c.toggleFromMessage;
u = !u && e && e.from.length > 0 ? e.from[0].address : void 0, delete c.toggleFromMessage
} else c.fromContact && (u = s.getSelected().address);
return c.hasOwnProperty("from") && (u = c.from), c.hasOwnProperty("subject") && (A = c.subject),
function(e) {
return (!u || e.from.length > 0 && e.from[0].address.startsWith(u)) && (!A || e.subject.length > 0 && e.subject.toLowerCase().startsWith(A))
}
},
getOptionsQuery: function() {
return c.query || ""
},
emitChange: function(e) {
this.emit(l, e)
},
addChangeListener: function(e) {
this.on(l, e)
},
addOneTimeChangeListener: function(e) {
this.once(l, e)
},
removeChangeListener: function(e) {
this.removeListener(l, e)
}
});
d.dispatchToken = i.register(function(e) {
var t = e.action;
switch (t.actionType) {
case a.MAIL_SELECT_FOLDER:
i.waitFor([r.dispatchToken]), c = {}, u = void 0, d.emitChange();
break;
case a.MAIL_SEARCH_SET_OPTIONS:
c = t.options, c.clearFrom && (u = void 0), d.emitChange()
}
}), e.exports = d
}, function(e, t, n) {
// =========================
// Function_767
// =========================
"use strict";
function i() {
c = "", u.emitChange()
}
function a(e) {
c = e, u.emitChange()
}
var r = n(18).EventEmitter,
s = n(8),
o = n(6),
l = "change",
c = "",
u = Object.assign({}, r.prototype, {
getStatus: function(e) {
return c
},
emitChange: function() {
this.emit(l)
},
addChangeListener: function(e) {
this.on(l, e)
},
removeChangeListener: function(e) {
this.removeListener(l, e)
}
});
s.register(function(e) {
var t = e.action;
switch (t.actionType) {
case o.STATUS_SET_STATUS:
a(t.status, t.timeout);
break;
case o.STATUS_CLEAR_STATUS:
i();
break;
default:
return !0
}
}), e.exports = u
}, function(e, t, n) {
// =========================
// Function_768
// =========================
"use strict";
function i() {
u = {}, A.emitChange()
}
function a(e, t) {
u[e] = t, A.emitChange()
}
function r(e) {
var t = ["focusSearchField", "focusAddressField"];
t.indexOf(e.action) > -1 && i()
}
var s = n(8),
o = n(6),
l = n(18).EventEmitter,
c = "change",
u = {},
A = Object.assign({}, l.prototype, {
allHidden: function() {
return 0 === Object.keys(u).filter(function(e) {
return Boolean(u[e])
}).length
},
getShowTooltip: function(e) {
return Boolean(u[e])
},
emitChange: function() {
this.emit(c)
},
addChangeListener: function(e) {
this.on(c, e)
},
removeChangeListener: function(e) {
this.removeListener(c, e)
}
});
s.register(function(e) {
var t = e.action;
switch (t.actionType) {
case o.PAGE_CLOSE:
case o.TOOLTIP_CLEAR:
case o.URLFIELD_SET_STATE:
i();
break;
case o.WEBPAGEVIEW_ACTIONS:
r(t.action);
break;
case o.TOOLTIP_SHOW:
a(t.id, !0);
break;
case o.TOOLTIP_HIDE:
a(t.id, !1);
break;
default:
return !0
}
}), e.exports = window.TooltipStore = A
}, function(e, t, n) {
// =========================
// Function_769
// =========================
"use strict";
var i = n(3),
a = {
setStartpageBackgroundFromUrl: function(e) {
var t = new XMLHttpRequest,
n = new FileReader;
t.open("GET", e, !0), t.responseType = "blob", t.addEventListener("load", function() {
200 === t.status && (n.onload = function(e) {
i.set({
STARTPAGE_IMAGE_USER_DEFINED: e.target.result,
STARTPAGE_IMAGE: "user_defined",
STARTPAGE_SHOW_IMAGE: !0
})
}, n.readAsDataURL(t.response))
}, !1), t.send()
}
};
e.exports = a
}, function(e, t) {
// =========================
// Function_770
// =========================
"use strict";
var n = function(e, t, n) {
var i = {};
for (var a in e) e.hasOwnProperty(a) && Array.prototype.indexOf.call(arguments, a, 1) === -1 && (i[a] = e[a]);
return i
};
e.exports = n
}, function(e, t) {
// =========================
// Function_771
// =========================
"use strict";
function n(e) {
return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&")
}
e.exports = n
}, function(e, t, n) {
// =========================
// Function_772
// =========================
"use strict";
function i(e) {
if ("string" != typeof e) throw new TypeError("Paramter `path` must be a string");
var t = o.resolve(e).replace(/\\/g, "/");
return "/" !== t[0] && (t = "/" + t), encodeURI("file://" + t)
}
function a(e) {
return 1 === e.indexOf(":") && e.match(/^[a-z]/gi) || 0 === e.indexOf("/") || 0 === e.indexOf("\\")
}
function r(e) {
return 0 === e.indexOf("/")
}
function s(e, t) {
if ("string" != typeof e) throw new TypeError("Paramter `path` must be a string");
return t ? a(e) : r(e)
}
var o = n(938);
t.isPath = s, t.win32PathToFileUrl = i
}, function(e, t, n) {
// =========================
// Function_773
// =========================
(function(t) {
"use strict";
function i(e, t) {
for (var n = t.length - 1; n >= 0; n--) {
if (t[t[n]]) {
var i = t[t[n]].replace(o, "$1" + s);
t[t[n]] = i
}
t[t[n]] && e.push(t[n] + ":" + t[t[n]] + ";")
}
}
function a(e, t) {
for (var n = t.length - 1; n >= 0; n--) {
var r = t[n];
if (1 === r.type && r.selectorText) e.push(r.selectorText + "{"), r.style && i(e, r.style), e.push("}");
else if (r.type === r.MEDIA_RULE) e.push("@media " + r.media.mediaText + "{"), a(e, r.cssRules), e.push("}");
else if (r.type === r.FONT_FACE_RULE) e.push("@font-face {"), r.style && i(e, r.style), e.push("}");
else if (r.type === r.KEYFRAMES_RULE) {
e.push("@keyframes " + r.name + "{");
for (var s = r.cssRules.length - 1; s >= 0; s--) {
var o = r.cssRules[s];
8 === o.type && o.keyText && (e.push(o.keyText + "{"), o.style && i(e, o.style), e.push("}"))
}
e.push("}")
}
}
}
var r = n(805),
s = "https://240.0.0.0/?url=",
o = /(url\("?)(?!data:)/gim,
l = function(e, t) {
if ("style" === t.tagName) {
var n = [];
a(n, e.sheet.cssRules), e.textContent = n.join("\n")
}
},
c = ["action", "background", "poster", "src"],
u = !1,
A = function(e) {
if (c.forEach(function(t) {
e.hasAttribute(t) && !/^data:image\//.test(e.getAttribute(t)) && (u = !0, e.removeAttribute(t))
}), e.hasAttribute("style")) {
for (var t = e.style, n = [], i = t.length - 1; i >= 0; i--) {
if (e.style[t[i]] && o.test(e.style[t[i]])) {
var a = e.style[t[i]].replace(o, "$1" + s);
e.style[t[i]] = a
}
n.push(t[i] + ":" + e.style[t[i]] + ";")
}
n.length ? e.setAttribute("style", n.join("")) : e.removeAttribute("style")
}
},
d = function(e) {
"target" in e && e.setAttribute("target", "_blank"), e.hasAttribute("target") || !e.hasAttribute("xlink:href") && !e.hasAttribute("href") || e.setAttribute("xlink:show", "new")
},
h = function(e, n) {
var i = e[n.src];
if (i) {
var a = new t(i.content.buffer).toString("base64");
n.setAttribute("src", "data:" + i.mimeType + ";base64," + a)
}
};
e.exports = {
sanitize: function(e, t) {
var n = t && t.attachments || {},
i = !0;
t && t.hasOwnProperty("blockHTTPLeaks") && (i = t.blockHTTPLeaks), r.addHook("afterSanitizeAttributes", d), r.addHook("afterSanitizeAttributes", h.bind(void 0, n)), i && (r.addHook("afterSanitizeAttributes", A), r.addHook("uponSanitizeElement", l)), u = !1;
var a = r.sanitize(e, {
ALLOW_UNKNOWN_PROTOCOLS: !0,
FORBID_TAGS: i ? ["svg"] : [],
WHOLE_DOCUMENT: !0
});
return r.removeHooks("afterSanitizeAttributes"), r.removeHooks("uponSanitizeElement"), {
sanitized: a,
leakPrevented: u
}
},
htmlToText: function(e) {
return r.sanitize(e, {
ALLOWED_TAGS: []
}).replace(/( {2})+/g, "").replace(/\n\n+/g, "\n\n").replace(/ /g, "\t").trim()
}
}
}).call(t, n(252).Buffer)
}, function(e, t) {
// =========================
// Function_774
// =========================
"use strict";
function n(e, t) {
return t = t.replace(/^https?\:\/\/(www+\.)?/, ""), 0 === t.indexOf(e)
}
e.exports = n
}, function(e, t, n) {
// =========================
// Function_775
// =========================
"use strict";
var i = n(52),
a = n(59),
r = n(10),
s = "",
o = "",
l = function(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t.charAt(n).toUpperCase();
if (" " !== i && "-" !== i) {
var a = e.indexOf(i);
if (a === -1) return n
}
}
return -1
},
c = function e(t) {
for (var n = "", i = 0; i < t.length; i++) {
var a = t[i];
if ("---" !== a.name && a.mnemonic !== !1) {
var r = a.name.indexOf("&");
r !== -1 && r + 1 < a.name.length ? (a.nameWithMnemonic = a.name, n += a.name.charAt(r + 1).toUpperCase()) : a.nameWithMnemonic = void 0
} else if (a.mnemonic === !1) {
var s = a.name.indexOf("&");
s !== -1 && (a.nameWithMnemonic = a.name.replace(/\&/g, "&&"))
}
}
for (var o = 0; o < t.length; o++) {
var c = t[o];
if ("---" !== c.name && c.mnemonic !== !1) {
if (void 0 === c.nameWithMnemonic) {
var u = l(n, c.name);
u >= 0 && (n += c.name.charAt(u).toUpperCase(), c.nameWithMnemonic = c.name.slice(0, u) + "&" + c.name.slice(u));
}
c.items && e(c.items)
}
}
},
u = function(e) {
var t = 0,
l = {},
u = function(e, t) {
"function" == typeof l[t] && l[t].call(this, e)
},
A = function e(a) {
if (!a) return null;
0 === s.length && (s = btoa(n(406))), 0 === o.length && (o = btoa(n(405)));
var r;
a.items && a.bookmarkFolder === !0 ? r = s : a.url ? r = o : a.iconName && (r = i.getIconByName(a.iconName));
var c = a.visible !== !1;
"function" == typeof a.testVisibility && (c = a.testVisibility());
var u = void 0 !== a.tag ? a.tag : t++,
A = a.nameWithMnemonic ? a.nameWithMnemonic : a.name;
return l[u] = a.handler, {
id: u,
name: void 0 === A ? "" : A,
visible: c,
items: a.items ? a.items.map(e) : null,
type: a.type ? a.type : "normal",
checked: !!a.checked && a.checked,
emphasized: a.emphasized,
shortcut: a.shortcut,
parameter: a.parameter,
url: a.url,
icon: r
}
};
return function(t) {
var n = "function" == typeof e ? e() : e,
i = a();
"mac" !== i && c(n), r.showMenu.create({
mode: t,
left: -1,
top: -1,
items: n.map(A)
}, u.bind(this, event))
}
};
e.exports = u
}, function(e, t, n) {
// =========================
// Function_776
// =========================
"use strict";
function i(e) {
return e && e.id ? void u.runtime.sendMessage({
getNavigationState: {
tabId: e.id
}
}, function(t) {
void 0 !== t && ! function() {
var n = r.tabToPage({
id: e.id
});
s.copyFastForwardState(n, t.fastForwardState), l.setNavigationState(n, new d(t.navigationState)), l.setSSLState(n, t.sslInfo.state, t.sslInfo.issuer), t.blockedPopups.forEach(function(e) {
return l.addBlockedPopupEvent(n, e)
})
}()
}) : void console.warn("Need a tab to sync")
}
function a(e, t, n) {
var i = r.tabToPage({
id: e
});
u.runtime.sendMessage({
setNavigationState: {
blockedPopups: c.getBlockedPopups(i),
fastForwardState: o.getState(i),
navigationState: c.getNavigationInfo(i),
sslInfo: c.getSSLInfo(i),
tabId: e
}
})
}
var r = n(73),
s = n(129),
o = n(173),
l = n(95),
c = n(112),
u = n(4),
A = n(27),
d = A.Map;
t.syncDetachedTabInformation = i, t.storeDetachedTabInformation = a
}, function(e, t, n) {
// =========================
// Function_777
// =========================
"use strict";
var i = n(45),
a = n(396),
r = a.modifierIsUp,
s = function() {
var e = !1;
return function(t, n, a) {
function s(t) {
t.keyCode === i.KEY_ESCAPE && (e = !1, n.call(this, !0), document.removeEventListener("keydown", s), document.removeEventListener("keyup", o), document.removeEventListener("mouseup", l))
}
function o(a) {
(a.keyCode === i.KEY_RETURN || a.keyCode === i.KEY_ENTER || r(t, a)) && (e = !1, n.call(this, !1), document.removeEventListener("keydown", s), document.removeEventListener("keyup", o), document.removeEventListener("mouseup", l))
}
function l(t) {
2 !== t.button && (0 !== t.button || 0 !== t.buttons && 2 !== t.buttons) || (e = !1, n.call(this, !1), document.removeEventListener("keydown", s), document.removeEventListener("keyup", o), document.removeEventListener("mouseup", l))
}
if (a = a || null, "keydown" === t.type) {
if (!t.ctrlKey || t.altKey) return
} else {
if ("wheel" !== t.type) return;
if (!t.altKey && (0 !== t.button || 2 !== t.buttons)) return
}
e !== !0 && (e = !0, document.addEventListener("keydown", s), document.addEventListener("keyup", o), document.addEventListener("mouseup", l))
}
}();
t.tabSwitcherListener = s
}, function(e, t) {
// =========================
// Function_778
// =========================
"use strict";
var n = function(e) {
return e.FaviconUrl ? Object.assign(e, {
Image: e.FaviconUrl
}) : e
},
i = function(e) {
return e.map(n)
};
e.exports = i
}, function(e, t, n) {
// =========================
// Function_779
// =========================
(function(t) {
"use strict";
function n(e) {
var n = e.match(/^(data:)(.*?)?(;charset=.*?)?(;base64)?,(.*)$/);
if (!n) return e;
for (var i = n[2], a = n[5], r = new t(a, "base64").toString("binary"), s = new Array(r.length), o = 0; o < r.length; o++) s[o] = r.charCodeAt(o);
var l = new Uint8Array(s),
c = new Blob([l], {
type: i
});
return window.URL.createObjectURL(c)
}
e.exports = n
}).call(t, n(252).Buffer)
}, function(e, t, n) {
// =========================
// Function_780
// =========================
"use strict";
function i(e) {
return new Promise(function(e, t) {
return s.init(e)
})
}
var a = n(4),
r = n(7),
s = {
init: function(e) {
this.cb = e, this.pageactionFiles = [], a.runtime.getPackageDirectoryEntry(this.gotPackageDirectory.bind(this))
},
fireCallback: function() {
this.cb(this.pageactionFiles)
},
gotPackageDirectory: function(e) {
var t = e.createReader();
t.readEntries(this.gotPackageEntries.bind(this))
},
gotPackageEntries: function(e) {
var t = this;
e.forEach(function(e) {
if ("user_files" === e.name && e.isDirectory) {
var n = e.createReader();
n.readEntries(t.findPageActionFiles.bind(t))
}
})
},
findPageActionFiles: function(e) {
var t = this;
this.executeWhenAllEntriesLoaded = r.after(e.length, function() {
t.fireCallback()
}), e.forEach(function(e, t) {
var n = function(t) {
this.pushNewEntry(t, e.name)
}.bind(this);
e.file(n)
}.bind(this))
},
pushNewEntry: function(e, t) {
var n = new FileReader,
i = t.lastIndexOf("."),
a = "style";
i !== -1 && ("css" === t.substr(i + 1) ? a = "style" : "js" === t.substr(i + 1) && (a = "script")), t = t.substr(0, i), n.type = a, n.filename = t.replace(/_/g, " "), n.onload = this.onFileRead.bind(this), n.readAsText(e)
},
onFileRead: function(e) {
var t = {
name: e.target.filename,
type: e.target.type,
code: e.target.result
};
"string" == typeof e.target.filename && e.target.filename.length && this.pageactionFiles.push(t), "function" == typeof this.executeWhenAllEntriesLoaded && this.executeWhenAllEntriesLoaded()
}
};
e.exports = i
}, function(e, t, n) {
// =========================
// Function_781
// =========================
"use strict";
var i = n(4),
a = n(454),
r = a(function() {
return i.i18n.getUILanguage()
});
e.exports = r
}, function(e, t) {
// =========================
// Function_782
// =========================
"use strict";
var n = function(e, t) {
switch (e) {
case "onCreated":
case "onActivated":
return t[0].windowId;
case "onUpdated":
return t[2].windowId;
case "onRemoved":
case "onMoved":
return t[1].windowId;
case "onDetached":
return t[1].oldWindowId;
case "onAttached":
return t[1].newWindowId;
default:
return
}
};
e.exports = n
}, , function(e, t) {
// =========================
// Function_784
// =========================
"use strict";
var n = function() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
return new Promise(function(t) {
return window.requestIdleCallbackPromise ? window.requestIdleCallback(t, e) : t()
})
};
e.exports = n
}, function(e, t) {
// =========================
// Function_785
// =========================
"use strict";
function n(e, t) {
if (!t || !e || "string" != typeof t.url || "string" != typeof e.url) throw TypeError("Needs both target and current");
if (t.score === e.score) {
var n = t.url.length,
i = e.url.length;
return n <= i
}
return (t.score || 0) > (e.score || 0)
}
e.exports = n
}, , , function(e, t) {
// =========================
// Function_788
// =========================
"use strict";
e.exports = function(e, t) {
return Math.max(0, Math.min(e.left + e.width, t.left + t.width) - Math.max(e.left, t.left)) * Math.max(0, Math.min(e.top + e.height, t.top + t.height) - Math.max(e.top, t.top))
}
}, function(e, t, n) {
// =========================
// Function_789
// =========================
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), t.combineLists = t.rotateList = t.moveToStart = t.moveToEnd = void 0;
n(27), t.moveToEnd = function(e, t) {
var n = e.indexOf(t);
return (n === -1 ? e : e.delete(n)).push(t)
}, t.moveToStart = function(e, t) {
var n = e.indexOf(t);
return (n === -1 ? e : e.delete(n)).unshift(t)
}, t.rotateList = function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
return t === !0 ? e.shift().push(e.first()) : e.pop().unshift(e.last())
}, t.combineLists = function(e, t) {
var n = t.asMutable();
return n = e.reduce(function(e, t) {
return e.contains(t) ? e : e.push(t)
}, n), n = n.reduce(function(t, n) {
return e.contains(n) ? t : t.filter(function(e) {
return e !== n
})
}, n), n.asImmutable()
}
}, function(e, t) {
// =========================
// Function_790
// =========================
"use strict";
function n(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function i(e) {
var t = e.data,
n = t.id,
i = t.results,
o = t.batch,
l = t.total,
c = t.index,
u = t.error;
if ("undefined" == typeof n) throw new Error("Invalid message, missing id: " + JSON.stringify(e.data));
"undefined" != typeof u ? s(n, u) : "undefined" != typeof o ? r(n, o, l, c) : a(n, i)
}
function a(e, t) {
var n = l[e].resolve;
n(t), delete l[e]
}
function r(e, t, n, i) {
var a = l[e];
if (a.batches || (a.batches = [], a.received = 0), a.batches[i] = t, a.received++, a.received === n) {
var r = a.batches.reduce(function(e, t) {
return e.concat(t)
}, []);
a.resolve(r), delete l[e]
}
}
function s(e, t) {
var n = l[e].reject;
n(t), delete l[e]
}
var o = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
l = {},
c = 0,
u = function() {
function e(t) {
var a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ["worker"];
n(this, e), this.workers = a.reduce(function(e, n) {
var a = new t;
return a.onmessage = i, a.onerror = console.error, e[n] = a, e
}, {})
}
return o(e, [{
key: "work",
value: function(e, t) {
var n = this,
i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "worker";
if (!this.workers[i]) throw new Error("Invalid workerId " + i);
return new Promise(function(a, r) {
var s = c;
c += 1, l[s] = {
resolve: a,
reject: r
}, n.workers[i].postMessage({
id: s,
func: e,
args: t
})
})
}
}]), e
}();
e.exports = u
}, function(e, t, n) {
// =========================
// Function_791
// =========================
"use strict";
function i(e) {
if (Array.isArray(e)) {
for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t];
return n
}
return Array.from(e)
}
function a(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
var r = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
s = n(361);
e.exports = function() {
function e() {
a(this, e)
}
return r(e, [{
key: "postMessage",
value: function(e) {
var t = this,
n = e.id,
a = e.func,
r = e.args;
s[a].apply(s, i(r)).then(function(e) {
t.onmessage({
data: {
id: n,
results: e
}
})
})
}
}]), e
}()
}, function(e, t) {
// =========================
// Function_792
// =========================
"use strict";
e.exports = function() {
var e = window.location,
t = e.protocol,
n = e.origin;
return !!t && !!n && "chrome-extension" === t && n.replace(t + "//", "").length > 0
}
}, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t) {
// =========================
// Function_946
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_947
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_948
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_949
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_950
// =========================
e.exports = '\n\n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n\n'
}, function(e, t) {
// =========================
// Function_951
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_952
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_953
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_954
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_955
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_956
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_957
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_958
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_959
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_960
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_961
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_962
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_963
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_964
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_965
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_966
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_967
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_968
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_969
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_970
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_971
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_972
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_973
// =========================
e.exports = '';
}, function(e, t) {
// =========================
// Function_974
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_975
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_976
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_977
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_978
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_979
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_980
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_981
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_982
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_983
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_984
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_985
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_986
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_987
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_988
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_989
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_990
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_991
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_992
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_993
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_994
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_995
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_996
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_997
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_998
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_999
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1000
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1001
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1002
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1003
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1004
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1005
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1006
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1007
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1008
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1009
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1010
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_1011
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_1012
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_1013
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1014
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_1015
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1016
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_1017
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_1018
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_1019
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1020
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_1021
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_1022
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1023
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1024
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1025
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_1026
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1027
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1028
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1029
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1030
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1031
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1032
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_1033
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1034
// =========================
e.exports = ''
}, function(e, t) {
// =========================
// Function_1035
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1036
// =========================
e.exports = '\n'
}, function(e, t) {
// =========================
// Function_1037
// =========================
e.exports = '\n'
}, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t, n) {
// =========================
// Function_1286
// =========================
e.exports = function() {
return new Worker(n.p + "m3dao-worker-bundle.js")
}
}]);