diff --git a/app/assets/javascripts/controllers/editor.js b/app/assets/javascripts/controllers/editor.js index 8537461ae..350654d7c 100644 --- a/app/assets/javascripts/controllers/editor.js +++ b/app/assets/javascripts/controllers/editor.js @@ -1004,7 +1004,7 @@ class EditorCtrl extends PureCtrl { }); this.setState({ - state: components + componentStack: components }); } diff --git a/app/assets/templates/directives/permissions-modal.pug b/app/assets/templates/directives/permissions-modal.pug index f9973a5b6..cbed6941f 100644 --- a/app/assets/templates/directives/permissions-modal.pug +++ b/app/assets/templates/directives/permissions-modal.pug @@ -14,7 +14,7 @@ | {{ctrl.permissionsString}} .sk-panel-row p.sk-p - | Extensions use an offline messaging system to communicate. Learn more at + | Extensions use an offline messaging system to communicate. Learn more at a.sk-a.info( href='https://standardnotes.org/permissions', rel='noopener', diff --git a/app/assets/templates/editor.pug b/app/assets/templates/editor.pug index 8f4f25f9e..ce2d43d68 100644 --- a/app/assets/templates/editor.pug +++ b/app/assets/templates/editor.pug @@ -231,11 +231,11 @@ | There was an error decrypting this item. Ensure you are running the | latest version of this app, then sign out and sign back in to try again. #editor-pane-component-stack(ng-show='self.state.note') - #component-stack-menu-bar.sk-app-bar.no-edges(ng-if='self.componentStack.length') + #component-stack-menu-bar.sk-app-bar.no-edges(ng-if='self.state.componentStack.length') .left .sk-app-bar-item( ng-click='self.toggleStackComponentForCurrentItem(component)', - ng-repeat='component in self.componentStack' + ng-repeat='component in self.state.componentStack' ) .sk-app-bar-item-column .sk-circle.small( @@ -248,6 +248,6 @@ component='component', manual-dealloc='true', ng-if='component.active', - ng-repeat='component in self.componentStack', + ng-repeat='component in self.state.componentStack', ng-show='!component.hidden' ) diff --git a/dist/javascripts/app.js b/dist/javascripts/app.js index 7ea321619..8afcd6ee2 100644 --- a/dist/javascripts/app.js +++ b/dist/javascripts/app.js @@ -1,72816 +1,4 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./app/assets/javascripts/index.js"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./app/assets/javascripts/app.js": -/*!***************************************!*\ - !*** ./app/assets/javascripts/app.js ***! - \***************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js"); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _routes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./routes */ "./app/assets/javascripts/routes.js"); -/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./state */ "./app/assets/javascripts/state.js"); -/* harmony import */ var _controllers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./controllers */ "./app/assets/javascripts/controllers/index.js"); -/* harmony import */ var _directives_functional__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./directives/functional */ "./app/assets/javascripts/directives/functional/index.js"); -/* harmony import */ var _directives_views__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./directives/views */ "./app/assets/javascripts/directives/views/index.js"); -/* harmony import */ var _filters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./filters */ "./app/assets/javascripts/filters/index.js"); -/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./services */ "./app/assets/javascripts/services/index.js"); - - - - - - - - - - -angular__WEBPACK_IMPORTED_MODULE_0___default.a.module('app', ['ngSanitize']); // Config - -angular__WEBPACK_IMPORTED_MODULE_0___default.a.module('app').config(_routes__WEBPACK_IMPORTED_MODULE_1__["configRoutes"]).constant('appVersion', "3.3.0"); // Controllers - -angular__WEBPACK_IMPORTED_MODULE_0___default.a.module('app').directive('root', function () { - return new _controllers__WEBPACK_IMPORTED_MODULE_3__["Root"](); -}).directive('tagsPanel', function () { - return new _controllers__WEBPACK_IMPORTED_MODULE_3__["TagsPanel"](); -}).directive('notesPanel', function () { - return new _controllers__WEBPACK_IMPORTED_MODULE_3__["NotesPanel"](); -}).directive('editorPanel', function () { - return new _controllers__WEBPACK_IMPORTED_MODULE_3__["EditorPanel"](); -}).directive('footer', function () { - return new _controllers__WEBPACK_IMPORTED_MODULE_3__["Footer"](); -}).directive('lockScreen', function () { - return new _controllers__WEBPACK_IMPORTED_MODULE_3__["LockScreen"](); -}); // Directives - Functional - -angular__WEBPACK_IMPORTED_MODULE_0___default.a.module('app').directive('snAutofocus', ['$timeout', _directives_functional__WEBPACK_IMPORTED_MODULE_4__["autofocus"]]).directive('clickOutside', ['$document', _directives_functional__WEBPACK_IMPORTED_MODULE_4__["clickOutside"]]).directive('delayHide', _directives_functional__WEBPACK_IMPORTED_MODULE_4__["delayHide"]).directive('elemReady', _directives_functional__WEBPACK_IMPORTED_MODULE_4__["elemReady"]).directive('fileChange', _directives_functional__WEBPACK_IMPORTED_MODULE_4__["fileChange"]).directive('infiniteScroll', ['$rootScope', '$window', '$timeout', _directives_functional__WEBPACK_IMPORTED_MODULE_4__["infiniteScroll"]]).directive('lowercase', _directives_functional__WEBPACK_IMPORTED_MODULE_4__["lowercase"]).directive('selectOnClick', ['$window', _directives_functional__WEBPACK_IMPORTED_MODULE_4__["selectOnClick"]]).directive('snEnter', _directives_functional__WEBPACK_IMPORTED_MODULE_4__["snEnter"]); // Directives - Views - -angular__WEBPACK_IMPORTED_MODULE_0___default.a.module('app').directive('accountMenu', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["AccountMenu"](); -}).directive('actionsMenu', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["ActionsMenu"](); -}).directive('componentModal', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["ComponentModal"](); -}).directive('componentView', ["$rootScope", "componentManager", "desktopManager", "$timeout", function ($rootScope, componentManager, desktopManager, $timeout) { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["ComponentView"]($rootScope, componentManager, desktopManager, $timeout); -}]).directive('conflictResolutionModal', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["ConflictResolutionModal"](); -}).directive('editorMenu', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["EditorMenu"](); -}).directive('inputModal', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["InputModal"](); -}).directive('menuRow', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["MenuRow"](); -}).directive('panelResizer', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["PanelResizer"](); -}).directive('passwordWizard', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["PasswordWizard"](); -}).directive('permissionsModal', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["PermissionsModal"](); -}).directive('privilegesAuthModal', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["PrivilegesAuthModal"](); -}).directive('privilegesManagementModal', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["PrivilegesManagementModal"](); -}).directive('revisionPreviewModal', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["RevisionPreviewModal"](); -}).directive('sessionHistoryMenu', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["SessionHistoryMenu"](); -}).directive('syncResolutionMenu', function () { - return new _directives_views__WEBPACK_IMPORTED_MODULE_5__["SyncResolutionMenu"](); -}); // Filters - -angular__WEBPACK_IMPORTED_MODULE_0___default.a.module('app').filter('trusted', ['$sce', _filters__WEBPACK_IMPORTED_MODULE_6__["trusted"]]); // Services - -angular__WEBPACK_IMPORTED_MODULE_0___default.a.module('app').service('appState', _state__WEBPACK_IMPORTED_MODULE_2__["AppState"]).service('preferencesManager', _services__WEBPACK_IMPORTED_MODULE_7__["PreferencesManager"]).service('actionsManager', _services__WEBPACK_IMPORTED_MODULE_7__["ActionsManager"]).service('archiveManager', _services__WEBPACK_IMPORTED_MODULE_7__["ArchiveManager"]).service('authManager', _services__WEBPACK_IMPORTED_MODULE_7__["AuthManager"]).service('componentManager', _services__WEBPACK_IMPORTED_MODULE_7__["ComponentManager"]).service('dbManager', _services__WEBPACK_IMPORTED_MODULE_7__["DBManager"]).service('desktopManager', _services__WEBPACK_IMPORTED_MODULE_7__["DesktopManager"]).service('httpManager', _services__WEBPACK_IMPORTED_MODULE_7__["HttpManager"]).service('keyboardManager', _services__WEBPACK_IMPORTED_MODULE_7__["KeyboardManager"]).service('migrationManager', _services__WEBPACK_IMPORTED_MODULE_7__["MigrationManager"]).service('modelManager', _services__WEBPACK_IMPORTED_MODULE_7__["ModelManager"]).service('nativeExtManager', _services__WEBPACK_IMPORTED_MODULE_7__["NativeExtManager"]).service('passcodeManager', _services__WEBPACK_IMPORTED_MODULE_7__["PasscodeManager"]).service('privilegesManager', _services__WEBPACK_IMPORTED_MODULE_7__["PrivilegesManager"]).service('sessionHistory', _services__WEBPACK_IMPORTED_MODULE_7__["SessionHistory"]).service('singletonManager', _services__WEBPACK_IMPORTED_MODULE_7__["SingletonManager"]).service('statusManager', _services__WEBPACK_IMPORTED_MODULE_7__["StatusManager"]).service('storageManager', _services__WEBPACK_IMPORTED_MODULE_7__["StorageManager"]).service('syncManager', _services__WEBPACK_IMPORTED_MODULE_7__["SyncManager"]).service('alertManager', _services__WEBPACK_IMPORTED_MODULE_7__["AlertManager"]).service('themeManager', _services__WEBPACK_IMPORTED_MODULE_7__["ThemeManager"]); - -/***/ }), - -/***/ "./app/assets/javascripts/controllers/abstract/pure_ctrl.js": -/*!******************************************************************!*\ - !*** ./app/assets/javascripts/controllers/abstract/pure_ctrl.js ***! - \******************************************************************/ -/*! exports provided: PureCtrl */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PureCtrl", function() { return PureCtrl; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); - - - - -var PureCtrl = -/*#__PURE__*/ -function () { - function PureCtrl($timeout) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, PureCtrl); - - if (!$timeout) { - throw 'Invalid PureCtrl construction.'; - } - - this.$timeout = $timeout; - this.state = {}; - this.props = {}; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(PureCtrl, [{ - key: "setState", - value: function () { - var _setState = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee(state) { - var _this = this; - - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", new Promise(function (resolve) { - _this.$timeout(function () { - _this.state = Object.freeze(Object.assign({}, _this.state, state)); - resolve(); - }); - })); - - case 1: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - function setState(_x) { - return _setState.apply(this, arguments); - } - - return setState; - }() - }, { - key: "initProps", - value: function initProps(props) { - if (Object.keys(this.props).length > 0) { - throw 'Already init-ed props.'; - } - - this.props = Object.freeze(Object.assign({}, this.props, props)); - } - }]); - - return PureCtrl; -}(); - -/***/ }), - -/***/ "./app/assets/javascripts/controllers/constants.js": -/*!*********************************************************!*\ - !*** ./app/assets/javascripts/controllers/constants.js ***! - \*********************************************************/ -/*! exports provided: PANEL_NAME_NOTES, PANEL_NAME_TAGS */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PANEL_NAME_NOTES", function() { return PANEL_NAME_NOTES; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PANEL_NAME_TAGS", function() { return PANEL_NAME_TAGS; }); -var PANEL_NAME_NOTES = 'notes'; -var PANEL_NAME_TAGS = 'tags'; - -/***/ }), - -/***/ "./app/assets/javascripts/controllers/editor.js": -/*!******************************************************!*\ - !*** ./app/assets/javascripts/controllers/editor.js ***! - \******************************************************/ -/*! exports provided: EditorPanel */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EditorPanel", function() { return EditorPanel; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js"); -/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js"); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! snjs */ "./node_modules/snjs/dist/snjs.js"); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(snjs__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/utils */ "./app/assets/javascripts/utils.js"); -/* harmony import */ var _services_keyboardManager__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/services/keyboardManager */ "./app/assets/javascripts/services/keyboardManager.js"); -/* harmony import */ var _services_privilegesManager__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/services/privilegesManager */ "./app/assets/javascripts/services/privilegesManager.js"); -/* harmony import */ var _editor_pug__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! %/editor.pug */ "./app/assets/templates/editor.pug"); -/* harmony import */ var _editor_pug__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_editor_pug__WEBPACK_IMPORTED_MODULE_14__); -/* harmony import */ var _Controllers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @Controllers */ "./app/assets/javascripts/controllers/index.js"); -/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/state */ "./app/assets/javascripts/state.js"); -/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/strings */ "./app/assets/javascripts/strings.js"); -/* harmony import */ var _services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/services/preferencesManager */ "./app/assets/javascripts/services/preferencesManager.js"); - - - - - - - - - - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - - - - - - - - - - -var NOTE_PREVIEW_CHAR_LIMIT = 80; -var MINIMUM_STATUS_DURATION = 400; -var SAVE_TIMEOUT_DEBOUNCE = 350; -var SAVE_TIMEOUT_NO_DEBOUNCE = 100; -var EDITOR_DEBOUNCE = 200; -var APP_DATA_KEY_PINNED = 'pinned'; -var APP_DATA_KEY_LOCKED = 'locked'; -var APP_DATA_KEY_ARCHIVED = 'archived'; -var APP_DATA_KEY_PREFERS_PLAIN_EDITOR = 'prefersPlainEditor'; -var ELEMENT_ID_NOTE_TEXT_EDITOR = 'note-text-editor'; -var ELEMENT_ID_NOTE_TITLE_EDITOR = 'note-title-editor'; -var ELEMENT_ID_EDITOR_CONTENT = 'editor-content'; -var ELEMENT_ID_NOTE_TAGS_COMPONENT_CONTAINER = 'note-tags-component-container'; -var DESKTOP_MONOSPACE_FAMILY = "Menlo,Consolas,'DejaVu Sans Mono',monospace"; -var WEB_MONOSPACE_FAMILY = "monospace"; -var SANS_SERIF_FAMILY = "inherit"; - -var EditorCtrl = -/*#__PURE__*/ -function (_PureCtrl) { - EditorCtrl.$inject = ["$timeout", "$rootScope", "alertManager", "appState", "authManager", "actionsManager", "componentManager", "desktopManager", "keyboardManager", "modelManager", "preferencesManager", "privilegesManager", "sessionHistory", "syncManager"]; - - _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default()(EditorCtrl, _PureCtrl); - - /* @ngInject */ - function EditorCtrl($timeout, $rootScope, alertManager, appState, authManager, actionsManager, componentManager, desktopManager, keyboardManager, modelManager, preferencesManager, privilegesManager, sessionHistory - /** Unused below, required to load globally */ - , syncManager) { - var _this; - - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, EditorCtrl); - - _this = _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default()(this, _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default()(EditorCtrl).call(this, $timeout)); - - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6___default()(_this), "editorMenuOnSelect", function (component) { - if (!component || component.area === 'editor-editor') { - /** If plain editor or other editor */ - _this.setMenuState('showEditorMenu', false); - - var editor = component; - - if (_this.state.selectedEditor && editor !== _this.state.selectedEditor) { - _this.disassociateComponentWithCurrentNote(_this.state.selectedEditor); - } - - if (editor) { - var prefersPlain = _this.state.note.getAppDataItem(APP_DATA_KEY_PREFERS_PLAIN_EDITOR) === true; - - if (prefersPlain) { - _this.state.note.setAppDataItem(APP_DATA_KEY_PREFERS_PLAIN_EDITOR, false); - - _this.modelManager.setItemDirty(_this.state.note); - } - - _this.associateComponentWithCurrentNote(editor); - } else { - /** Note prefers plain editor */ - if (!_this.state.note.getAppDataItem(APP_DATA_KEY_PREFERS_PLAIN_EDITOR)) { - _this.state.note.setAppDataItem(APP_DATA_KEY_PREFERS_PLAIN_EDITOR, true); - - _this.modelManager.setItemDirty(_this.state.note); - } - - _this.reloadFont(); - } - - _this.setState({ - selectedEditor: editor - }); - } else if (component.area === 'editor-stack') { - _this.toggleStackComponentForCurrentItem(component); - } - /** Dirtying can happen above */ - - - _this.syncManager.sync(); - }); - - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6___default()(_this), "onPanelResizeFinish", function (width, left, isMaxWidth) { - if (isMaxWidth) { - _this.preferencesManager.setUserPrefValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__["PREF_EDITOR_WIDTH"], null); - } else { - if (width !== undefined && width !== null) { - _this.preferencesManager.setUserPrefValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__["PREF_EDITOR_WIDTH"], width); - - _this.leftResizeControl.setWidth(width); - } - } - - if (left !== undefined && left !== null) { - _this.preferencesManager.setUserPrefValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__["PREF_EDITOR_LEFT"], left); - - _this.rightResizeControl.setLeft(left); - } - - _this.preferencesManager.syncUserPreferences(); - }); - - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6___default()(_this), "onEditorLoad", function (editor) { - _this.desktopManager.redoSearch(); - }); - - _this.$rootScope = $rootScope; - _this.alertManager = alertManager; - _this.appState = appState; - _this.actionsManager = actionsManager; - _this.authManager = authManager; - _this.componentManager = componentManager; - _this.desktopManager = desktopManager; - _this.keyboardManager = keyboardManager; - _this.modelManager = modelManager; - _this.preferencesManager = preferencesManager; - _this.privilegesManager = privilegesManager; - _this.syncManager = syncManager; - _this.state = { - componentStack: [], - editorDebounce: EDITOR_DEBOUNCE, - isDesktop: Object(_utils__WEBPACK_IMPORTED_MODULE_11__["isDesktopApplication"])(), - spellcheck: true, - mutable: { - tagsString: '' - } - }; - _this.leftResizeControl = {}; - _this.rightResizeControl = {}; - - _this.addAppStateObserver(); - - _this.addSyncEventHandler(); - - _this.addSyncStatusObserver(); - - _this.addMappingObservers(); - - _this.registerComponentHandler(); - - _this.registerKeyboardShortcuts(); - /** Used by .pug template */ - - - _this.prefKeyMonospace = _services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__["PREF_EDITOR_MONOSPACE_ENABLED"]; - _this.prefKeySpellcheck = _services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__["PREF_EDITOR_SPELLCHECK"]; - _this.prefKeyMarginResizers = _services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__["PREF_EDITOR_RESIZERS_ENABLED"]; - return _this; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(EditorCtrl, [{ - key: "addAppStateObserver", - value: function addAppStateObserver() { - var _this2 = this; - - this.appState.addObserver(function (eventName, data) { - if (eventName === _state__WEBPACK_IMPORTED_MODULE_16__["APP_STATE_EVENT_NOTE_CHANGED"]) { - _this2.handleNoteSelectionChange(_this2.appState.getSelectedNote(), data.previousNote); - } else if (eventName === _state__WEBPACK_IMPORTED_MODULE_16__["APP_STATE_EVENT_PREFERENCES_CHANGED"]) { - _this2.loadPreferences(); - } - }); - } - }, { - key: "handleNoteSelectionChange", - value: function () { - var _handleNoteSelectionChange = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee(note, previousNote) { - var associatedEditor; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - this.setState({ - note: this.appState.getSelectedNote(), - showExtensions: false, - showOptionsMenu: false, - altKeyDown: false, - noteStatus: null - }); - - if (note) { - _context.next = 3; - break; - } - - return _context.abrupt("return"); - - case 3: - associatedEditor = this.editorForNote(note); - - if (associatedEditor && associatedEditor !== this.state.selectedEditor) { - /** - * Setting note to not ready will remove the editor from view in a flash, - * so we only want to do this if switching between external editors - */ - this.setState({ - noteReady: false, - selectedEditor: associatedEditor - }); - } else if (!associatedEditor) { - /** No editor */ - this.setState({ - selectedEditor: null - }); - } - - _context.next = 7; - return this.setState({ - noteReady: true - }); - - case 7: - this.reloadTagsString(); - this.loadPreferences(); - - if (note.dummy) { - this.focusEditor(); - } - - if (previousNote && previousNote !== note) { - if (previousNote.dummy) { - this.performNoteDeletion(previousNote); - } - } - - this.reloadComponentContext(); - - case 12: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function handleNoteSelectionChange(_x, _x2) { - return _handleNoteSelectionChange.apply(this, arguments); - } - - return handleNoteSelectionChange; - }() - }, { - key: "addMappingObservers", - value: function addMappingObservers() { - var _this3 = this; - - this.modelManager.addItemSyncObserver('editor-note-observer', 'Note', function (allItems, validItems, deletedItems, source) { - if (!_this3.state.note) { - return; - } - - if (_this3.state.note.deleted || _this3.state.note.content.trashed) { - return; - } - - if (!snjs__WEBPACK_IMPORTED_MODULE_10__["SFModelManager"].isMappingSourceRetrieved(source)) { - return; - } - - var matchingNote = allItems.find(function (item) { - return item.uuid === _this3.state.note.uuid; - }); - - if (!matchingNote) { - return; - } - - _this3.reloadTagsString(); - }); - this.modelManager.addItemSyncObserver('editor-tag-observer', 'Tag', function (allItems, validItems, deletedItems, source) { - if (!_this3.state.note) { - return; - } - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = allItems[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var tag = _step.value; - - if (!_this3.state.note.savedTagsString || tag.deleted || tag.hasRelationshipWithItem(_this3.state.note)) { - _this3.reloadTagsString(); - - break; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - }); - this.modelManager.addItemSyncObserver('editor-component-observer', 'SN|Component', function (allItems, validItems, deletedItems, source) { - if (!_this3.state.note) { - return; - } - /** Reload componentStack in case new ones were added or removed */ - - - _this3.reloadComponentStackArray(); - /** Observe editor changes to see if the current note should update its editor */ - - - var editors = allItems.filter(function (item) { - return item.isEditor(); - }); - - if (editors.length === 0) { - return; - } - /** Find the most recent editor for note */ - - - var editor = _this3.editorForNote(_this3.state.note); - - _this3.setState({ - selectedEditor: editor - }); - - if (!editor) { - _this3.reloadFont(); - } - }); - } - }, { - key: "addSyncEventHandler", - value: function addSyncEventHandler() { - var _this4 = this; - - this.syncManager.addEventHandler(function (eventName, data) { - if (!_this4.state.note) { - return; - } - - if (eventName === 'sync:taking-too-long') { - _this4.setState({ - syncTakingTooLong: true - }); - } else if (eventName === 'sync:completed') { - _this4.setState({ - syncTakingTooLong: false - }); - - if (_this4.state.note.dirty) { - /** if we're still dirty, don't change status, a sync is likely upcoming. */ - } else { - var savedItem = data.savedItems.find(function (item) { - return item.uuid === _this4.state.note.uuid; - }); - var isInErrorState = _this4.state.saveError; - - if (isInErrorState || savedItem) { - _this4.showAllChangesSavedStatus(); - } - } - } else if (eventName === 'sync:error') { - /** - * Only show error status in editor if the note is dirty. - * Otherwise, it means the originating sync came from somewhere else - * and we don't want to display an error here. - */ - if (_this4.state.note.dirty) { - _this4.showErrorStatus(); - } - } - }); - } - }, { - key: "addSyncStatusObserver", - value: function addSyncStatusObserver() { - var _this5 = this; - - this.syncStatusObserver = this.syncManager.registerSyncStatusObserver(function (status) { - if (status.localError) { - _this5.$timeout(function () { - _this5.showErrorStatus({ - message: "Offline Saving Issue", - desc: "Changes not saved" - }); - }, 500); - } - }); - } - }, { - key: "editorForNote", - value: function editorForNote(note) { - return this.componentManager.editorForNote(note); - } - }, { - key: "setMenuState", - value: function setMenuState(menu, state) { - this.setState(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()({}, menu, state)); - this.closeAllMenus({ - exclude: menu - }); - } - }, { - key: "toggleMenu", - value: function toggleMenu(menu) { - this.setMenuState(menu, !this.state[menu]); - } - }, { - key: "closeAllMenus", - value: function closeAllMenus() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - exclude = _ref.exclude; - - var allMenus = ['showOptionsMenu', 'showEditorMenu', 'showExtensions', 'showSessionHistory']; - var menuState = {}; - - for (var _i = 0, _allMenus = allMenus; _i < _allMenus.length; _i++) { - var candidate = _allMenus[_i]; - - if (candidate !== exclude) { - menuState[candidate] = false; - } - } - - this.setState(menuState); - } - }, { - key: "hasAvailableExtensions", - value: function hasAvailableExtensions() { - return this.actionsManager.extensionsInContextOfItem(this.state.note).length > 0; - } - }, { - key: "performFirefoxPinnedTabFix", - value: function performFirefoxPinnedTabFix() { - /** - * For Firefox pinned tab issue: - * When a new browser session is started, and SN is in a pinned tab, - * SN is unusable until the tab is reloaded. - */ - if (document.hidden) { - window.location.reload(); - } - } - }, { - key: "saveNote", - value: function saveNote(_ref2) { - var _this6 = this; - - var bypassDebouncer = _ref2.bypassDebouncer, - updateClientModified = _ref2.updateClientModified, - dontUpdatePreviews = _ref2.dontUpdatePreviews; - this.performFirefoxPinnedTabFix(); - var note = this.state.note; - note.dummy = false; - - if (note.deleted) { - this.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_17__["STRING_DELETED_NOTE"] - }); - return; - } - - if (!this.modelManager.findItem(note.uuid)) { - this.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_17__["STRING_INVALID_NOTE"] - }); - return; - } - - this.showSavingStatus(); - - if (!dontUpdatePreviews) { - var text = note.text || ''; - var truncate = text.length > NOTE_PREVIEW_CHAR_LIMIT; - var substring = text.substring(0, NOTE_PREVIEW_CHAR_LIMIT); - var previewPlain = substring + (truncate ? _strings__WEBPACK_IMPORTED_MODULE_17__["STRING_ELLIPSES"] : ''); - note.content.preview_plain = previewPlain; - note.content.preview_html = null; - } - - this.modelManager.setItemDirty(note, true, updateClientModified); - - if (this.saveTimeout) { - this.$timeout.cancel(this.saveTimeout); - } - - var noDebounce = bypassDebouncer || this.authManager.offline(); - var syncDebouceMs = noDebounce ? SAVE_TIMEOUT_NO_DEBOUNCE : SAVE_TIMEOUT_DEBOUNCE; - this.saveTimeout = this.$timeout(function () { - _this6.syncManager.sync().then(function (response) { - if (response && response.error && !_this6.didShowErrorAlert) { - _this6.didShowErrorAlert = true; - - _this6.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_17__["STRING_GENERIC_SAVE_ERROR"] - }); - } - }); - }, syncDebouceMs); - } - }, { - key: "showSavingStatus", - value: function showSavingStatus() { - this.setStatus({ - message: "Saving..." - }, false); - } - }, { - key: "showAllChangesSavedStatus", - value: function showAllChangesSavedStatus() { - this.setState({ - saveError: false, - syncTakingTooLong: false - }); - var status = "All changes saved"; - - if (this.authManager.offline()) { - status += " (offline)"; - } - - this.setStatus({ - message: status - }); - } - }, { - key: "showErrorStatus", - value: function showErrorStatus(error) { - if (!error) { - error = { - message: "Sync Unreachable", - desc: "Changes saved offline" - }; - } - - this.setState({ - saveError: true, - syncTakingTooLong: false - }); - this.setStatus(error); - } - }, { - key: "setStatus", - value: function setStatus(status) { - var _this7 = this; - - var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - var waitForMs; - - if (!this.state.noteStatus || !this.state.noteStatus.date) { - waitForMs = 0; - } else { - waitForMs = MINIMUM_STATUS_DURATION - (new Date() - this.state.noteStatus.date); - } - - if (!wait || waitForMs < 0) { - waitForMs = 0; - } - - if (this.statusTimeout) { - this.$timeout.cancel(this.statusTimeout); - } - - this.statusTimeout = this.$timeout(function () { - status.date = new Date(); - - _this7.setState({ - noteStatus: status - }); - }, waitForMs); - } - }, { - key: "contentChanged", - value: function contentChanged() { - this.saveNote({ - updateClientModified: true - }); - } - }, { - key: "onTitleEnter", - value: function onTitleEnter($event) { - $event.target.blur(); - this.onTitleChange(); - this.focusEditor(); - } - }, { - key: "onTitleChange", - value: function onTitleChange() { - this.saveNote({ - dontUpdatePreviews: true, - updateClientModified: true - }); - } - }, { - key: "focusEditor", - value: function focusEditor() { - var element = document.getElementById(ELEMENT_ID_NOTE_TEXT_EDITOR); - - if (element) { - this.lastEditorFocusEventSource = _state__WEBPACK_IMPORTED_MODULE_16__["EVENT_SOURCE_SCRIPT"]; - element.focus(); - } - } - }, { - key: "focusTitle", - value: function focusTitle() { - document.getElementById(ELEMENT_ID_NOTE_TITLE_EDITOR).focus(); - } - }, { - key: "clickedTextArea", - value: function clickedTextArea() { - this.setMenuState('showOptionsMenu', false); - } - }, { - key: "onNameFocus", - value: function onNameFocus() { - this.editingName = true; - } - }, { - key: "onContentFocus", - value: function onContentFocus() { - this.appState.editorDidFocus(this.lastEditorFocusEventSource); - this.lastEditorFocusEventSource = null; - } - }, { - key: "onNameBlur", - value: function onNameBlur() { - this.editingName = false; - } - }, { - key: "selectedMenuItem", - value: function selectedMenuItem(hide) { - if (hide) { - this.setMenuState('showOptionsMenu', false); - } - } - }, { - key: "deleteNote", - value: function () { - var _deleteNote = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(permanently) { - var _this8 = this; - - var run, requiresPrivilege; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!this.state.note.dummy) { - _context2.next = 3; - break; - } - - this.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_17__["STRING_DELETE_PLACEHOLDER_ATTEMPT"] - }); - return _context2.abrupt("return"); - - case 3: - run = function run() { - if (_this8.state.note.locked) { - _this8.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_17__["STRING_DELETE_LOCKED_ATTEMPT"] - }); - - return; - } - - var title = _this8.state.note.safeTitle().length ? "'".concat(_this8.state.note.title, "'") : "this note"; - var text = Object(_strings__WEBPACK_IMPORTED_MODULE_17__["StringDeleteNote"])({ - title: title, - permanently: permanently - }); - - _this8.alertManager.confirm({ - text: text, - destructive: true, - onConfirm: function onConfirm() { - if (permanently) { - _this8.performNoteDeletion(_this8.state.note); - } else { - _this8.state.note.content.trashed = true; - - _this8.saveNote({ - bypassDebouncer: true, - dontUpdatePreviews: true - }); - } - - _this8.appState.setSelectedNote(null); - - _this8.setMenuState('showOptionsMenu', false); - } - }); - }; - - _context2.next = 6; - return this.privilegesManager.actionRequiresPrivilege(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_13__["PrivilegesManager"].ActionDeleteNote); - - case 6: - requiresPrivilege = _context2.sent; - - if (requiresPrivilege) { - this.privilegesManager.presentPrivilegesModal(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_13__["PrivilegesManager"].ActionDeleteNote, function () { - run(); - }); - } else { - run(); - } - - case 8: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function deleteNote(_x3) { - return _deleteNote.apply(this, arguments); - } - - return deleteNote; - }() - }, { - key: "performNoteDeletion", - value: function performNoteDeletion(note) { - this.modelManager.setItemToBeDeleted(note); - - if (note === this.state.note) { - this.setState({ - note: null - }); - } - - if (note.dummy) { - this.modelManager.removeItemLocally(note); - return; - } - - this.syncManager.sync(); - } - }, { - key: "restoreTrashedNote", - value: function restoreTrashedNote() { - this.state.note.content.trashed = false; - this.saveNote({ - bypassDebouncer: true, - dontUpdatePreviews: true - }); - this.appState.setSelectedNote(null); - } - }, { - key: "deleteNotePermanantely", - value: function deleteNotePermanantely() { - this.deleteNote(true); - } - }, { - key: "getTrashCount", - value: function getTrashCount() { - return this.modelManager.trashedItems().length; - } - }, { - key: "emptyTrash", - value: function emptyTrash() { - var _this9 = this; - - var count = this.getTrashCount(); - this.alertManager.confirm({ - text: Object(_strings__WEBPACK_IMPORTED_MODULE_17__["StringEmptyTrash"])({ - count: count - }), - destructive: true, - onConfirm: function onConfirm() { - _this9.modelManager.emptyTrash(); - - _this9.syncManager.sync(); - } - }); - } - }, { - key: "togglePin", - value: function togglePin() { - this.state.note.setAppDataItem(APP_DATA_KEY_PINNED, !this.state.note.pinned); - this.saveNote({ - bypassDebouncer: true, - dontUpdatePreviews: true - }); - } - }, { - key: "toggleLockNote", - value: function toggleLockNote() { - this.state.note.setAppDataItem(APP_DATA_KEY_LOCKED, !this.state.note.locked); - this.saveNote({ - bypassDebouncer: true, - dontUpdatePreviews: true - }); - } - }, { - key: "toggleProtectNote", - value: function toggleProtectNote() { - var _this10 = this; - - this.state.note.content.protected = !this.state.note.content.protected; - this.saveNote({ - bypassDebouncer: true, - dontUpdatePreviews: true - }); - /** Show privilegesManager if protection is not yet set up */ - - this.privilegesManager.actionHasPrivilegesConfigured(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_13__["PrivilegesManager"].ActionViewProtectedNotes).then(function (configured) { - if (!configured) { - _this10.privilegesManager.presentPrivilegesManagementModal(); - } - }); - } - }, { - key: "toggleNotePreview", - value: function toggleNotePreview() { - this.state.note.content.hidePreview = !this.state.note.content.hidePreview; - this.saveNote({ - bypassDebouncer: true, - dontUpdatePreviews: true - }); - } - }, { - key: "toggleArchiveNote", - value: function toggleArchiveNote() { - this.state.note.setAppDataItem(APP_DATA_KEY_ARCHIVED, !this.state.note.archived); - this.saveNote({ - bypassDebouncer: true, - dontUpdatePreviews: true - }); - } - }, { - key: "reloadTagsString", - value: function reloadTagsString() { - this.setState({ - mutable: _objectSpread({}, this.state.mutable, { - tagsString: this.state.note.tagsString() - }) - }); - } - }, { - key: "addTag", - value: function addTag(tag) { - var strings = this.state.note.tags.map(function (currentTag) { - return currentTag.title; - }); - strings.push(tag.title); - this.saveTags({ - strings: strings - }); - } - }, { - key: "removeTag", - value: function removeTag(tag) { - var strings = this.state.note.tags.map(function (currentTag) { - return currentTag.title; - }).filter(function (title) { - return title !== tag.title; - }); - this.saveTags({ - strings: strings - }); - } - }, { - key: "saveTags", - value: function saveTags() { - var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - strings = _ref3.strings; - - if (!strings && this.state.mutable.tagsString === this.state.note.tagsString()) { - return; - } - - if (!strings) { - strings = this.state.mutable.tagsString.split('#').filter(function (string) { - return string.length > 0; - }).map(function (string) { - return string.trim(); - }); - } - - this.state.note.dummy = false; - var toRemove = []; - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = this.state.note.tags[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var tag = _step2.value; - - if (strings.indexOf(tag.title) === -1) { - toRemove.push(tag); - } - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return != null) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - for (var _i2 = 0, _toRemove = toRemove; _i2 < _toRemove.length; _i2++) { - var tagToRemove = _toRemove[_i2]; - tagToRemove.removeItemAsRelationship(this.state.note); - } - - this.modelManager.setItemsDirty(toRemove); - var tags = []; - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = strings[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var tagString = _step3.value; - - var existingRelationship = _.find(this.state.note.tags, { - title: tagString - }); - - if (!existingRelationship) { - tags.push(this.modelManager.findOrCreateTagByTitle(tagString)); - } - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return != null) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - for (var _i3 = 0, _tags = tags; _i3 < _tags.length; _i3++) { - var _tag = _tags[_i3]; - - _tag.addItemAsRelationship(this.state.note); - } - - this.modelManager.setItemsDirty(tags); - this.syncManager.sync(); - this.reloadTagsString(); - } - }, { - key: "loadPreferences", - value: function loadPreferences() { - var monospaceEnabled = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__["PREF_EDITOR_MONOSPACE_ENABLED"], true); - var spellcheck = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__["PREF_EDITOR_SPELLCHECK"], true); - var marginResizersEnabled = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__["PREF_EDITOR_RESIZERS_ENABLED"], true); - this.setState({ - monospaceEnabled: monospaceEnabled, - spellcheck: spellcheck, - marginResizersEnabled: marginResizersEnabled - }); - - if (!document.getElementById(ELEMENT_ID_EDITOR_CONTENT)) { - /** Elements have not yet loaded due to ng-if around wrapper */ - return; - } - - this.reloadFont(); - - if (this.state.marginResizersEnabled) { - var width = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__["PREF_EDITOR_WIDTH"], null); - - if (width != null) { - this.leftResizeControl.setWidth(width); - this.rightResizeControl.setWidth(width); - } - - var left = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__["PREF_EDITOR_LEFT"], null); - - if (left != null) { - this.leftResizeControl.setLeft(left); - this.rightResizeControl.setLeft(left); - } - } - } - }, { - key: "reloadFont", - value: function reloadFont() { - var editor = document.getElementById(ELEMENT_ID_NOTE_TEXT_EDITOR); - - if (!editor) { - return; - } - - if (this.state.monospaceEnabled) { - if (this.state.isDesktop) { - editor.style.fontFamily = DESKTOP_MONOSPACE_FAMILY; - } else { - editor.style.fontFamily = WEB_MONOSPACE_FAMILY; - } - } else { - editor.style.fontFamily = SANS_SERIF_FAMILY; - } - } - }, { - key: "toggleKey", - value: function () { - var _toggleKey = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3(key) { - var _this11 = this; - - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - this[key] = !this[key]; - this.preferencesManager.setUserPrefValue(key, this[key], true); - this.reloadFont(); - - if (!(key === _services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__["PREF_EDITOR_SPELLCHECK"])) { - _context3.next = 10; - break; - } - - _context3.next = 6; - return this.setState({ - noteReady: false - }); - - case 6: - this.setState({ - noteReady: true - }); - this.reloadFont(); - _context3.next = 11; - break; - - case 10: - if (key === _services_preferencesManager__WEBPACK_IMPORTED_MODULE_18__["PREF_EDITOR_RESIZERS_ENABLED"] && this[key] === true) { - this.$timeout(function () { - _this11.leftResizeControl.flash(); - - _this11.rightResizeControl.flash(); - }); - } - - case 11: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function toggleKey(_x4) { - return _toggleKey.apply(this, arguments); - } - - return toggleKey; - }() - /** @components */ - - }, { - key: "registerComponentHandler", - value: function registerComponentHandler() { - var _this12 = this; - - this.componentManager.registerHandler({ - identifier: 'editor', - areas: ['note-tags', 'editor-stack', 'editor-editor'], - activationHandler: function activationHandler(component) { - if (component.area === 'note-tags') { - _this12.setState({ - tagsComponent: component.active ? component : null - }); - } else if (component.area === 'editor-editor') { - if (component === _this12.state.selectedEditor && !component.active) { - _this12.setState({ - selectedEditor: null - }); - } else if (_this12.state.selectedEditor) { - if (_this12.state.selectedEditor.active && _this12.state.note) { - if (component.isExplicitlyEnabledForItem(_this12.state.note) && !_this12.state.selectedEditor.isExplicitlyEnabledForItem(_this12.state.note)) { - _this12.setState({ - selectedEditor: component - }); - } - } - } else if (_this12.state.note) { - var enableable = component.isExplicitlyEnabledForItem(_this12.state.note) || component.isDefaultEditor(); - - if (component.active && enableable) { - _this12.setState({ - selectedEditor: component - }); - } else { - /** - * Not a candidate, and no qualified editor. - * Disable the current editor. - */ - _this12.setState({ - selectedEditor: null - }); - } - } - } else if (component.area === 'editor-stack') { - _this12.reloadComponentContext(); - } - }, - contextRequestHandler: function contextRequestHandler(component) { - if (component === _this12.state.selectedEditor || component === _this12.state.tagsComponent || _this12.state.componentStack.includes(component)) { - return _this12.state.note; - } - }, - focusHandler: function focusHandler(component, focused) { - if (component.isEditor() && focused) { - _this12.closeAllMenus(); - } - }, - actionHandler: function actionHandler(component, action, data) { - if (action === 'set-size') { - var setSize = function setSize(element, size) { - var widthString = typeof size.width === 'string' ? size.width : "".concat(data.width, "px"); - var heightString = typeof size.height === 'string' ? size.height : "".concat(data.height, "px"); - element.setAttribute('style', "width: ".concat(widthString, "; height: ").concat(heightString, ";")); - }; - - if (data.type === 'container') { - if (component.area === 'note-tags') { - var container = document.getElementById(ELEMENT_ID_NOTE_TAGS_COMPONENT_CONTAINER); - setSize(container, data); - } - } - } else if (action === 'associate-item') { - if (data.item.content_type === 'Tag') { - var tag = _this12.modelManager.findItem(data.item.uuid); - - _this12.addTag(tag); - } - } else if (action === 'deassociate-item') { - var _tag2 = _this12.modelManager.findItem(data.item.uuid); - - _this12.removeTag(_tag2); - } else if (action === 'save-items') { - var includesNote = data.items.map(function (item) { - return item.uuid; - }).includes(_this12.state.note.uuid); - - if (includesNote) { - _this12.showSavingStatus(); - } - } - } - }); - } - }, { - key: "reloadComponentStackArray", - value: function reloadComponentStackArray() { - var components = this.componentManager.componentsForArea('editor-stack').sort(function (a, b) { - return a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1; - }); - this.setState({ - state: components - }); - } - }, { - key: "reloadComponentContext", - value: function reloadComponentContext() { - this.reloadComponentStackArray(); - - if (this.state.note) { - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = this.state.componentStack[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var component = _step4.value; - - if (component.active) { - this.componentManager.setComponentHidden(component, !component.isExplicitlyEnabledForItem(this.state.note)); - } - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4.return != null) { - _iterator4.return(); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - } - - this.componentManager.contextItemDidChangeInArea('note-tags'); - this.componentManager.contextItemDidChangeInArea('editor-stack'); - this.componentManager.contextItemDidChangeInArea('editor-editor'); - } - }, { - key: "toggleStackComponentForCurrentItem", - value: function toggleStackComponentForCurrentItem(component) { - if (component.hidden || !component.active) { - this.componentManager.setComponentHidden(component, false); - this.associateComponentWithCurrentNote(component); - - if (!component.active) { - this.componentManager.activateComponent(component); - } - - this.componentManager.contextItemDidChangeInArea('editor-stack'); - } else { - this.componentManager.setComponentHidden(component, true); - this.disassociateComponentWithCurrentNote(component); - } - } - }, { - key: "disassociateComponentWithCurrentNote", - value: function disassociateComponentWithCurrentNote(component) { - var _this13 = this; - - component.associatedItemIds = component.associatedItemIds.filter(function (id) { - return id !== _this13.state.note.uuid; - }); - - if (!component.disassociatedItemIds.includes(this.state.note.uuid)) { - component.disassociatedItemIds.push(this.state.note.uuid); - } - - this.modelManager.setItemDirty(component); - this.syncManager.sync(); - } - }, { - key: "associateComponentWithCurrentNote", - value: function associateComponentWithCurrentNote(component) { - var _this14 = this; - - component.disassociatedItemIds = component.disassociatedItemIds.filter(function (id) { - return id !== _this14.state.note.uuid; - }); - - if (!component.associatedItemIds.includes(this.state.note.uuid)) { - component.associatedItemIds.push(this.state.note.uuid); - } - - this.modelManager.setItemDirty(component); - this.syncManager.sync(); - } - }, { - key: "registerKeyboardShortcuts", - value: function registerKeyboardShortcuts() { - var _this15 = this; - - this.altKeyObserver = this.keyboardManager.addKeyObserver({ - modifiers: [_services_keyboardManager__WEBPACK_IMPORTED_MODULE_12__["KeyboardManager"].KeyModifierAlt], - onKeyDown: function onKeyDown() { - _this15.setState({ - altKeyDown: true - }); - }, - onKeyUp: function onKeyUp() { - _this15.setState({ - altKeyDown: false - }); - } - }); - this.trashKeyObserver = this.keyboardManager.addKeyObserver({ - key: _services_keyboardManager__WEBPACK_IMPORTED_MODULE_12__["KeyboardManager"].KeyBackspace, - notElementIds: [ELEMENT_ID_NOTE_TEXT_EDITOR, ELEMENT_ID_NOTE_TITLE_EDITOR], - modifiers: [_services_keyboardManager__WEBPACK_IMPORTED_MODULE_12__["KeyboardManager"].KeyModifierMeta], - onKeyDown: function onKeyDown() { - _this15.deleteNote(); - } - }); - this.deleteKeyObserver = this.keyboardManager.addKeyObserver({ - key: _services_keyboardManager__WEBPACK_IMPORTED_MODULE_12__["KeyboardManager"].KeyBackspace, - modifiers: [_services_keyboardManager__WEBPACK_IMPORTED_MODULE_12__["KeyboardManager"].KeyModifierMeta, _services_keyboardManager__WEBPACK_IMPORTED_MODULE_12__["KeyboardManager"].KeyModifierShift, _services_keyboardManager__WEBPACK_IMPORTED_MODULE_12__["KeyboardManager"].KeyModifierAlt], - onKeyDown: function onKeyDown(event) { - event.preventDefault(); - - _this15.deleteNote(true); - } - }); - } - }, { - key: "onSystemEditorLoad", - value: function onSystemEditorLoad() { - var _this16 = this; - - if (this.loadedTabListener) { - return; - } - - this.loadedTabListener = true; - /** - * Insert 4 spaces when a tab key is pressed, - * only used when inside of the text editor. - * If the shift key is pressed first, this event is - * not fired. - */ - - var editor = document.getElementById(ELEMENT_ID_NOTE_TEXT_EDITOR); - this.tabObserver = this.keyboardManager.addKeyObserver({ - element: editor, - key: _services_keyboardManager__WEBPACK_IMPORTED_MODULE_12__["KeyboardManager"].KeyTab, - onKeyDown: function onKeyDown(event) { - if (_this16.state.note.locked || event.shiftKey) { - return; - } - - event.preventDefault(); - /** Using document.execCommand gives us undo support */ - - var insertSuccessful = document.execCommand('insertText', false, '\t'); - - if (!insertSuccessful) { - /** document.execCommand works great on Chrome/Safari but not Firefox */ - var start = editor.selectionStart; - var end = editor.selectionEnd; - var spaces = ' '; - /** Insert 4 spaces */ - - editor.value = editor.value.substring(0, start) + spaces + editor.value.substring(end); - /** Place cursor 4 spaces away from where the tab key was pressed */ - - editor.selectionStart = editor.selectionEnd = start + 4; - } - - var note = _this16.state.note; - note.text = editor.value; - - _this16.setState({ - note: note - }); - - _this16.saveNote({ - bypassDebouncer: true - }); - } - }); - /** - * Handles when the editor is destroyed, - * (and not when our controller is destroyed.) - */ - - angular__WEBPACK_IMPORTED_MODULE_9___default.a.element(editor).on('$destroy', function () { - if (_this16.tabObserver) { - _this16.keyboardManager.removeKeyObserver(_this16.tabObserver); - - _this16.loadedTabListener = false; - } - }); - } - }]); - - return EditorCtrl; -}(_Controllers__WEBPACK_IMPORTED_MODULE_15__["PureCtrl"]); - -var EditorPanel = function EditorPanel() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, EditorPanel); - - this.restrict = 'E'; - this.scope = {}; - this.template = _editor_pug__WEBPACK_IMPORTED_MODULE_14___default.a; - this.replace = true; - this.controller = EditorCtrl; - this.controllerAs = 'self'; - this.bindToController = true; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/controllers/footer.js": -/*!******************************************************!*\ - !*** ./app/assets/javascripts/controllers/footer.js ***! - \******************************************************/ -/*! exports provided: Footer */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Footer", function() { return Footer; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _services_privilegesManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/services/privilegesManager */ "./app/assets/javascripts/services/privilegesManager.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils */ "./app/assets/javascripts/utils.js"); -/* harmony import */ var _footer_pug__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! %/footer.pug */ "./app/assets/templates/footer.pug"); -/* harmony import */ var _footer_pug__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_footer_pug__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/state */ "./app/assets/javascripts/state.js"); -/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/strings */ "./app/assets/javascripts/strings.js"); - - - - - - - - - - - -var FooterCtrl = -/*#__PURE__*/ -function () { - FooterCtrl.$inject = ["$rootScope", "$timeout", "alertManager", "appState", "authManager", "componentManager", "modelManager", "nativeExtManager", "passcodeManager", "privilegesManager", "statusManager", "syncManager"]; - - /* @ngInject */ - function FooterCtrl($rootScope, $timeout, alertManager, appState, authManager, componentManager, modelManager, nativeExtManager, passcodeManager, privilegesManager, statusManager, syncManager) { - var _this = this; - - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, FooterCtrl); - - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "toggleSyncResolutionMenu", function () { - _this.showSyncResolution = !_this.showSyncResolution; - }); - - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "closeAccountMenu", function () { - _this.showAccountMenu = false; - }); - - this.$rootScope = $rootScope; - this.$timeout = $timeout; - this.alertManager = alertManager; - this.appState = appState; - this.authManager = authManager; - this.componentManager = componentManager; - this.modelManager = modelManager; - this.nativeExtManager = nativeExtManager; - this.passcodeManager = passcodeManager; - this.privilegesManager = privilegesManager; - this.statusManager = statusManager; - this.syncManager = syncManager; - this.rooms = []; - this.themesWithIcons = []; - this.showSyncResolution = false; - this.addAppStateObserver(); - this.updateOfflineStatus(); - this.addSyncEventHandler(); - this.findErrors(); - this.registerMappingObservers(); - this.registerComponentHandler(); - this.addRootScopeListeners(); - this.authManager.checkForSecurityUpdate().then(function (available) { - _this.securityUpdateAvailable = available; - }); - this.statusManager.addStatusObserver(function (string) { - _this.$timeout(function () { - _this.arbitraryStatusMessage = string; - }); - }); - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(FooterCtrl, [{ - key: "addRootScopeListeners", - value: function addRootScopeListeners() { - var _this2 = this; - - this.$rootScope.$on("security-update-status-changed", function () { - _this2.securityUpdateAvailable = _this2.authManager.securityUpdateAvailable; - }); - this.$rootScope.$on("reload-ext-data", function () { - _this2.reloadExtendedData(); - }); - this.$rootScope.$on("new-update-available", function () { - _this2.$timeout(function () { - _this2.onNewUpdateAvailable(); - }); - }); - } - }, { - key: "addAppStateObserver", - value: function addAppStateObserver() { - var _this3 = this; - - this.appState.addObserver(function (eventName, data) { - if (eventName === _state__WEBPACK_IMPORTED_MODULE_8__["APP_STATE_EVENT_EDITOR_FOCUSED"]) { - if (data.eventSource === _state__WEBPACK_IMPORTED_MODULE_8__["EVENT_SOURCE_USER_INTERACTION"]) { - _this3.closeAllRooms(); - - _this3.closeAccountMenu(); - } - } else if (eventName === _state__WEBPACK_IMPORTED_MODULE_8__["APP_STATE_EVENT_BEGAN_BACKUP_DOWNLOAD"]) { - _this3.backupStatus = _this3.statusManager.addStatusFromString("Saving local backup..."); - } else if (eventName === _state__WEBPACK_IMPORTED_MODULE_8__["APP_STATE_EVENT_ENDED_BACKUP_DOWNLOAD"]) { - if (data.success) { - _this3.backupStatus = _this3.statusManager.replaceStatusWithString(_this3.backupStatus, "Successfully saved backup."); - } else { - _this3.backupStatus = _this3.statusManager.replaceStatusWithString(_this3.backupStatus, "Unable to save local backup."); - } - - _this3.$timeout(function () { - _this3.backupStatus = _this3.statusManager.removeStatus(_this3.backupStatus); - }, 2000); - } - }); - } - }, { - key: "addSyncEventHandler", - value: function addSyncEventHandler() { - var _this4 = this; - - this.syncManager.addEventHandler(function (syncEvent, data) { - _this4.$timeout(function () { - if (syncEvent === "local-data-loaded") { - if (_this4.offline && _this4.modelManager.noteCount() === 0) { - _this4.showAccountMenu = true; - } - } else if (syncEvent === "enter-out-of-sync") { - _this4.outOfSync = true; - } else if (syncEvent === "exit-out-of-sync") { - _this4.outOfSync = false; - } else if (syncEvent === 'sync:completed') { - _this4.syncUpdated(); - - _this4.findErrors(); - - _this4.updateOfflineStatus(); - } else if (syncEvent === 'sync:error') { - _this4.findErrors(); - - _this4.updateOfflineStatus(); - } - }); - }); - } - }, { - key: "registerMappingObservers", - value: function registerMappingObservers() { - var _this5 = this; - - this.modelManager.addItemSyncObserver('room-bar', 'SN|Component', function (allItems, validItems, deletedItems, source) { - _this5.rooms = _this5.modelManager.components.filter(function (candidate) { - return candidate.area === 'rooms' && !candidate.deleted; - }); - - if (_this5.queueExtReload) { - _this5.queueExtReload = false; - - _this5.reloadExtendedData(); - } - }); - this.modelManager.addItemSyncObserver('footer-bar-themes', 'SN|Theme', function (allItems, validItems, deletedItems, source) { - var themes = _this5.modelManager.validItemsForContentType('SN|Theme').filter(function (candidate) { - return !candidate.deleted && candidate.content.package_info && candidate.content.package_info.dock_icon; - }).sort(function (a, b) { - return a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1; - }); - - var differ = themes.length !== _this5.themesWithIcons.length; - _this5.themesWithIcons = themes; - - if (differ) { - _this5.reloadDockShortcuts(); - } - }); - } - }, { - key: "registerComponentHandler", - value: function registerComponentHandler() { - var _this6 = this; - - this.componentManager.registerHandler({ - identifier: "roomBar", - areas: ["rooms", "modal"], - activationHandler: function activationHandler(component) {}, - actionHandler: function actionHandler(component, action, data) { - if (action === "set-size") { - component.setLastSize(data); - } - }, - focusHandler: function focusHandler(component, focused) { - if (component.isEditor() && focused) { - _this6.closeAllRooms(); - - _this6.closeAccountMenu(); - } - } - }); - } - }, { - key: "reloadExtendedData", - value: function reloadExtendedData() { - var _this7 = this; - - if (this.reloadInProgress) { - return; - } - - this.reloadInProgress = true; - /** - * A reload consists of opening the extensions manager, - * then closing it after a short delay. - */ - - var extWindow = this.rooms.find(function (room) { - return room.package_info.identifier === _this7.nativeExtManager.extManagerId; - }); - - if (!extWindow) { - this.queueExtReload = true; - this.reloadInProgress = false; - return; - } - - this.selectRoom(extWindow); - this.$timeout(function () { - _this7.selectRoom(extWindow); - - _this7.reloadInProgress = false; - - _this7.$rootScope.$broadcast('ext-reload-complete'); - }, 2000); - } - }, { - key: "getUser", - value: function getUser() { - return this.authManager.user; - } - }, { - key: "updateOfflineStatus", - value: function updateOfflineStatus() { - this.offline = this.authManager.offline(); - } - }, { - key: "openSecurityUpdate", - value: function openSecurityUpdate() { - this.authManager.presentPasswordWizard('upgrade-security'); - } - }, { - key: "findErrors", - value: function findErrors() { - this.error = this.syncManager.syncStatus.error; - } - }, { - key: "accountMenuPressed", - value: function accountMenuPressed() { - this.showAccountMenu = !this.showAccountMenu; - this.closeAllRooms(); - } - }, { - key: "hasPasscode", - value: function hasPasscode() { - return this.passcodeManager.hasPasscode(); - } - }, { - key: "lockApp", - value: function lockApp() { - this.$rootScope.lockApplication(); - } - }, { - key: "refreshData", - value: function refreshData() { - var _this8 = this; - - this.isRefreshing = true; - this.syncManager.sync({ - force: true, - performIntegrityCheck: true - }).then(function (response) { - _this8.$timeout(function () { - _this8.isRefreshing = false; - }, 200); - - if (response && response.error) { - _this8.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_9__["STRING_GENERIC_SYNC_ERROR"] - }); - } else { - _this8.syncUpdated(); - } - }); - } - }, { - key: "syncUpdated", - value: function syncUpdated() { - this.lastSyncDate = Object(_utils__WEBPACK_IMPORTED_MODULE_6__["dateToLocalizedString"])(new Date()); - } - }, { - key: "onNewUpdateAvailable", - value: function onNewUpdateAvailable() { - this.newUpdateAvailable = true; - } - }, { - key: "clickedNewUpdateAnnouncement", - value: function clickedNewUpdateAnnouncement() { - this.newUpdateAvailable = false; - this.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_9__["STRING_NEW_UPDATE_READY"] - }); - } - }, { - key: "reloadDockShortcuts", - value: function reloadDockShortcuts() { - var shortcuts = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = this.themesWithIcons[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var theme = _step.value; - var name = theme.content.package_info.name; - var icon = theme.content.package_info.dock_icon; - - if (!icon) { - continue; - } - - shortcuts.push({ - name: name, - component: theme, - icon: icon - }); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - this.dockShortcuts = shortcuts.sort(function (a, b) { - /** Circles first, then images */ - var aType = a.icon.type; - var bType = b.icon.type; - - if (aType === bType) { - return 0; - } else if (aType === 'circle' && bType === 'svg') { - return -1; - } else if (bType === 'circle' && aType === 'svg') { - return 1; - } - }); - } - }, { - key: "initSvgForShortcut", - value: function initSvgForShortcut(shortcut) { - var id = 'dock-svg-' + shortcut.component.uuid; - var element = document.getElementById(id); - var parser = new DOMParser(); - var svg = shortcut.component.content.package_info.dock_icon.source; - var doc = parser.parseFromString(svg, 'image/svg+xml'); - element.appendChild(doc.documentElement); - } - }, { - key: "selectShortcut", - value: function selectShortcut(shortcut) { - this.componentManager.toggleComponent(shortcut.component); - } - }, { - key: "onRoomDismiss", - value: function onRoomDismiss(room) { - room.showRoom = false; - } - }, { - key: "closeAllRooms", - value: function closeAllRooms() { - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = this.rooms[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var room = _step2.value; - room.showRoom = false; - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return != null) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - } - }, { - key: "selectRoom", - value: function () { - var _selectRoom = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee(room) { - var _this9 = this; - - var run, requiresPrivilege; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - run = function run() { - _this9.$timeout(function () { - room.showRoom = !room.showRoom; - }); - }; - - if (room.showRoom) { - _context.next = 8; - break; - } - - _context.next = 4; - return this.privilegesManager.actionRequiresPrivilege(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_5__["PrivilegesManager"].ActionManageExtensions); - - case 4: - requiresPrivilege = _context.sent; - - if (requiresPrivilege) { - this.privilegesManager.presentPrivilegesModal(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_5__["PrivilegesManager"].ActionManageExtensions, run); - } else { - run(); - } - - _context.next = 9; - break; - - case 8: - run(); - - case 9: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function selectRoom(_x) { - return _selectRoom.apply(this, arguments); - } - - return selectRoom; - }() - }, { - key: "clickOutsideAccountMenu", - value: function clickOutsideAccountMenu() { - if (this.privilegesManager.authenticationInProgress()) { - return; - } - - this.showAccountMenu = false; - } - }]); - - return FooterCtrl; -}(); - -var Footer = function Footer() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, Footer); - - this.restrict = 'E'; - this.scope = {}; - this.template = _footer_pug__WEBPACK_IMPORTED_MODULE_7___default.a; - this.controller = FooterCtrl; - this.replace = true; - this.controllerAs = 'ctrl'; - this.bindToController = true; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/controllers/index.js": -/*!*****************************************************!*\ - !*** ./app/assets/javascripts/controllers/index.js ***! - \*****************************************************/ -/*! exports provided: PureCtrl, EditorPanel, Footer, NotesPanel, TagsPanel, Root, LockScreen */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _abstract_pure_ctrl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abstract/pure_ctrl */ "./app/assets/javascripts/controllers/abstract/pure_ctrl.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PureCtrl", function() { return _abstract_pure_ctrl__WEBPACK_IMPORTED_MODULE_0__["PureCtrl"]; }); - -/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./editor */ "./app/assets/javascripts/controllers/editor.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EditorPanel", function() { return _editor__WEBPACK_IMPORTED_MODULE_1__["EditorPanel"]; }); - -/* harmony import */ var _footer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./footer */ "./app/assets/javascripts/controllers/footer.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Footer", function() { return _footer__WEBPACK_IMPORTED_MODULE_2__["Footer"]; }); - -/* harmony import */ var _notes_notes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./notes/notes */ "./app/assets/javascripts/controllers/notes/notes.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NotesPanel", function() { return _notes_notes__WEBPACK_IMPORTED_MODULE_3__["NotesPanel"]; }); - -/* harmony import */ var _tags__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tags */ "./app/assets/javascripts/controllers/tags.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagsPanel", function() { return _tags__WEBPACK_IMPORTED_MODULE_4__["TagsPanel"]; }); - -/* harmony import */ var _root__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./root */ "./app/assets/javascripts/controllers/root.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Root", function() { return _root__WEBPACK_IMPORTED_MODULE_5__["Root"]; }); - -/* harmony import */ var _lockScreen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lockScreen */ "./app/assets/javascripts/controllers/lockScreen.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LockScreen", function() { return _lockScreen__WEBPACK_IMPORTED_MODULE_6__["LockScreen"]; }); - - - - - - - - - -/***/ }), - -/***/ "./app/assets/javascripts/controllers/lockScreen.js": -/*!**********************************************************!*\ - !*** ./app/assets/javascripts/controllers/lockScreen.js ***! - \**********************************************************/ -/*! exports provided: LockScreen */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LockScreen", function() { return LockScreen; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _lock_screen_pug__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! %/lock-screen.pug */ "./app/assets/templates/lock-screen.pug"); -/* harmony import */ var _lock_screen_pug__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lock_screen_pug__WEBPACK_IMPORTED_MODULE_2__); - - - -var ELEMENT_ID_PASSCODE_INPUT = 'passcode-input'; - -var LockScreenCtrl = -/*#__PURE__*/ -function () { - LockScreenCtrl.$inject = ["$scope", "alertManager", "authManager", "passcodeManager"]; - - /* @ngInject */ - function LockScreenCtrl($scope, alertManager, authManager, passcodeManager) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, LockScreenCtrl); - - this.$scope = $scope; - this.alertManager = alertManager; - this.authManager = authManager; - this.passcodeManager = passcodeManager; - this.formData = {}; - this.addVisibilityObserver(); - this.addDestroyHandler(); - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(LockScreenCtrl, [{ - key: "addDestroyHandler", - value: function addDestroyHandler() { - var _this = this; - - this.$scope.$on('$destroy', function () { - _this.passcodeManager.removeVisibilityObserver(_this.visibilityObserver); - }); - } - }, { - key: "addVisibilityObserver", - value: function addVisibilityObserver() { - var _this2 = this; - - this.visibilityObserver = this.passcodeManager.addVisibilityObserver(function (visible) { - if (visible) { - var input = _this2.passcodeInput; - - if (input) { - input.focus(); - } - } - }); - } - }, { - key: "submitPasscodeForm", - value: function submitPasscodeForm($event) { - var _this3 = this; - - if (!this.formData.passcode || this.formData.passcode.length === 0) { - return; - } - - this.passcodeInput.blur(); - this.passcodeManager.unlock(this.formData.passcode, function (success) { - if (!success) { - _this3.alertManager.alert({ - text: "Invalid passcode. Please try again.", - onClose: function onClose() { - _this3.passcodeInput.focus(); - } - }); - } else { - _this3.onSuccess()(); - } - }); - } - }, { - key: "forgotPasscode", - value: function forgotPasscode() { - this.formData.showRecovery = true; - } - }, { - key: "beginDeleteData", - value: function beginDeleteData() { - var _this4 = this; - - this.alertManager.confirm({ - text: "Are you sure you want to clear all local data?", - destructive: true, - onConfirm: function onConfirm() { - _this4.authManager.signout(true).then(function () { - window.location.reload(); - }); - } - }); - } - }, { - key: "passcodeInput", - get: function get() { - return document.getElementById(ELEMENT_ID_PASSCODE_INPUT); - } - }]); - - return LockScreenCtrl; -}(); - -var LockScreen = function LockScreen() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, LockScreen); - - this.restrict = 'E'; - this.template = _lock_screen_pug__WEBPACK_IMPORTED_MODULE_2___default.a; - this.controller = LockScreenCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; - this.scope = { - onSuccess: '&' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/controllers/notes/note_utils.js": -/*!****************************************************************!*\ - !*** ./app/assets/javascripts/controllers/notes/note_utils.js ***! - \****************************************************************/ -/*! exports provided: SORT_KEY_CREATED_AT, SORT_KEY_UPDATED_AT, SORT_KEY_CLIENT_UPDATED_AT, SORT_KEY_TITLE, filterAndSortNotes, filterNotes, sortNotes */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SORT_KEY_CREATED_AT", function() { return SORT_KEY_CREATED_AT; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SORT_KEY_UPDATED_AT", function() { return SORT_KEY_UPDATED_AT; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SORT_KEY_CLIENT_UPDATED_AT", function() { return SORT_KEY_CLIENT_UPDATED_AT; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SORT_KEY_TITLE", function() { return SORT_KEY_TITLE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filterAndSortNotes", function() { return filterAndSortNotes; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filterNotes", function() { return filterNotes; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortNotes", function() { return sortNotes; }); -var SORT_KEY_CREATED_AT = 'created_at'; -var SORT_KEY_UPDATED_AT = 'updated_at'; -var SORT_KEY_CLIENT_UPDATED_AT = 'client_updated_at'; -var SORT_KEY_TITLE = 'title'; -function filterAndSortNotes(_ref) { - var notes = _ref.notes, - selectedTag = _ref.selectedTag, - showArchived = _ref.showArchived, - hidePinned = _ref.hidePinned, - filterText = _ref.filterText, - sortBy = _ref.sortBy, - reverse = _ref.reverse; - var filtered = filterNotes({ - notes: notes, - selectedTag: selectedTag, - showArchived: showArchived, - hidePinned: hidePinned, - filterText: filterText - }); - var sorted = sortNotes({ - notes: filtered, - sortBy: sortBy, - reverse: reverse - }); - return sorted; -} -function filterNotes(_ref2) { - var notes = _ref2.notes, - selectedTag = _ref2.selectedTag, - showArchived = _ref2.showArchived, - hidePinned = _ref2.hidePinned, - filterText = _ref2.filterText; - return notes.filter(function (note) { - var canShowArchived = showArchived; - var canShowPinned = !hidePinned; - var isTrash = selectedTag.content.isTrashTag; - - if (!isTrash && note.content.trashed) { - return false; - } - - var isSmartTag = selectedTag.isSmartTag(); - - if (isSmartTag) { - canShowArchived = canShowArchived || selectedTag.content.isArchiveTag || isTrash; - } - - if (note.archived && !canShowArchived || note.pinned && !canShowPinned) { - return false; - } - - return noteMatchesQuery({ - note: note, - query: filterText - }); - }); -} - -function noteMatchesQuery(_ref3) { - var note = _ref3.note, - query = _ref3.query; - - if (query.length === 0) { - return true; - } - - var title = note.safeTitle().toLowerCase(); - var text = note.safeText().toLowerCase(); - var lowercaseText = query.toLowerCase(); - var quotedText = stringBetweenQuotes(lowercaseText); - - if (quotedText) { - return title.includes(quotedText) || text.includes(quotedText); - } - - if (stringIsUuid(lowercaseText)) { - return note.uuid === lowercaseText; - } - - var words = lowercaseText.split(" "); - var matchesTitle = words.every(function (word) { - return title.indexOf(word) >= 0; - }); - var matchesBody = words.every(function (word) { - return text.indexOf(word) >= 0; - }); - return matchesTitle || matchesBody; -} - -function stringBetweenQuotes(text) { - var matches = text.match(/"(.*?)"/); - return matches ? matches[1] : null; -} - -function stringIsUuid(text) { - var matches = text.match(/\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b/); - return !!matches; -} - -function sortNotes(_ref4) { - var _ref4$notes = _ref4.notes, - notes = _ref4$notes === void 0 ? [] : _ref4$notes, - sortBy = _ref4.sortBy, - reverse = _ref4.reverse; - - var sortValueFn = function sortValueFn(a, b) { - var pinCheck = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - if (a.dummy) { - return -1; - } - - if (b.dummy) { - return 1; - } - - if (!pinCheck) { - if (a.pinned && b.pinned) { - return sortValueFn(a, b, true); - } - - if (a.pinned) { - return -1; - } - - if (b.pinned) { - return 1; - } - } - - var aValue = a[sortBy] || ''; - var bValue = b[sortBy] || ''; - var vector = 1; - - if (reverse) { - vector *= -1; - } - - if (sortBy === SORT_KEY_TITLE) { - aValue = aValue.toLowerCase(); - bValue = bValue.toLowerCase(); - - if (aValue.length === 0 && bValue.length === 0) { - return 0; - } else if (aValue.length === 0 && bValue.length !== 0) { - return 1 * vector; - } else if (aValue.length !== 0 && bValue.length === 0) { - return -1 * vector; - } else { - vector *= -1; - } - } - - if (aValue > bValue) { - return -1 * vector; - } else if (aValue < bValue) { - return 1 * vector; - } - - return 0; - }; - - var result = notes.sort(function (a, b) { - return sortValueFn(a, b); - }); - return result; -} - -/***/ }), - -/***/ "./app/assets/javascripts/controllers/notes/notes.js": -/*!***********************************************************!*\ - !*** ./app/assets/javascripts/controllers/notes/notes.js ***! - \***********************************************************/ -/*! exports provided: NotesPanel */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NotesPanel", function() { return NotesPanel; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js"); -/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js"); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _notes_pug__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! %/notes.pug */ "./app/assets/templates/notes.pug"); -/* harmony import */ var _notes_pug__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_notes_pug__WEBPACK_IMPORTED_MODULE_11__); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! snjs */ "./node_modules/snjs/dist/snjs.js"); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(snjs__WEBPACK_IMPORTED_MODULE_12__); -/* harmony import */ var _services_keyboardManager__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/services/keyboardManager */ "./app/assets/javascripts/services/keyboardManager.js"); -/* harmony import */ var _Controllers__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @Controllers */ "./app/assets/javascripts/controllers/index.js"); -/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/state */ "./app/assets/javascripts/state.js"); -/* harmony import */ var _services_preferencesManager__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/services/preferencesManager */ "./app/assets/javascripts/services/preferencesManager.js"); -/* harmony import */ var _controllers_constants__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/controllers/constants */ "./app/assets/javascripts/controllers/constants.js"); -/* harmony import */ var _note_utils__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./note_utils */ "./app/assets/javascripts/controllers/notes/note_utils.js"); - - - - - - - - - - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - - - - - - - - - - -/** - * This is the height of a note cell with nothing but the title, - * which *is* a display option - */ - -var MIN_NOTE_CELL_HEIGHT = 51.0; -var DEFAULT_LIST_NUM_NOTES = 20; -var ELEMENT_ID_SEARCH_BAR = 'search-bar'; -var ELEMENT_ID_SCROLL_CONTAINER = 'notes-scrollable'; - -var NotesCtrl = -/*#__PURE__*/ -function (_PureCtrl) { - NotesCtrl.$inject = ["$timeout", "$rootScope", "appState", "authManager", "desktopManager", "keyboardManager", "modelManager", "preferencesManager", "privilegesManager", "syncManager"]; - - _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default()(NotesCtrl, _PureCtrl); - - /* @ngInject */ - function NotesCtrl($timeout, $rootScope, appState, authManager, desktopManager, keyboardManager, modelManager, preferencesManager, privilegesManager, syncManager) { - var _this; - - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, NotesCtrl); - - _this = _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default()(this, _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default()(NotesCtrl).call(this, $timeout)); - - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6___default()(_this), "onPanelResize", function (newWidth, lastLeft, isAtMaxWidth, isCollapsed) { - _this.preferencesManager.setUserPrefValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_16__["PREF_NOTES_PANEL_WIDTH"], newWidth); - - _this.preferencesManager.syncUserPreferences(); - - _this.appState.panelDidResize({ - name: _controllers_constants__WEBPACK_IMPORTED_MODULE_17__["PANEL_NAME_NOTES"], - collapsed: isCollapsed - }); - }); - - _this.$rootScope = $rootScope; - _this.appState = appState; - _this.authManager = authManager; - _this.desktopManager = desktopManager; - _this.keyboardManager = keyboardManager; - _this.modelManager = modelManager; - _this.preferencesManager = preferencesManager; - _this.privilegesManager = privilegesManager; - _this.syncManager = syncManager; - _this.state = { - notes: [], - renderedNotes: [], - selectedNote: null, - tag: null, - sortBy: null, - showArchived: null, - hidePinned: null, - sortReverse: null, - panelTitle: null, - mutable: { - showMenu: false - }, - noteFilter: { - text: '' - } - }; - _this.panelController = {}; - - window.onresize = function (event) { - _this.resetPagination({ - keepCurrentIfLarger: true - }); - }; - - _this.addAppStateObserver(); - - _this.addSignInObserver(); - - _this.addSyncEventHandler(); - - _this.addMappingObserver(); - - _this.reloadPreferences(); - - _this.resetPagination(); - - _this.registerKeyboardShortcuts(); - - angular__WEBPACK_IMPORTED_MODULE_10___default.a.element(document).ready(function () { - _this.reloadPreferences(); - }); - return _this; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(NotesCtrl, [{ - key: "addAppStateObserver", - value: function addAppStateObserver() { - var _this2 = this; - - this.appState.addObserver(function (eventName, data) { - if (eventName === _state__WEBPACK_IMPORTED_MODULE_15__["APP_STATE_EVENT_TAG_CHANGED"]) { - _this2.handleTagChange(_this2.appState.getSelectedTag(), data.previousTag); - } else if (eventName === _state__WEBPACK_IMPORTED_MODULE_15__["APP_STATE_EVENT_NOTE_CHANGED"]) { - _this2.handleNoteSelection(_this2.appState.getSelectedNote()); - } else if (eventName === _state__WEBPACK_IMPORTED_MODULE_15__["APP_STATE_EVENT_PREFERENCES_CHANGED"]) { - _this2.reloadPreferences(); - - _this2.reloadNotes(); - } else if (eventName === _state__WEBPACK_IMPORTED_MODULE_15__["APP_STATE_EVENT_EDITOR_FOCUSED"]) { - _this2.setShowMenuFalse(); - } - }); - } - }, { - key: "addSignInObserver", - value: function addSignInObserver() { - var _this3 = this; - - this.authManager.addEventHandler(function (event) { - if (event === snjs__WEBPACK_IMPORTED_MODULE_12__["SFAuthManager"].DidSignInEvent) { - /** Delete dummy note if applicable */ - if (_this3.state.selectedNote && _this3.state.selectedNote.dummy) { - _this3.modelManager.removeItemLocally(_this3.state.selectedNote); - - _this3.selectNote(null).then(function () { - _this3.reloadNotes(); - }); - /** - * We want to see if the user will download any items from the server. - * If the next sync completes and our notes are still 0, - * we need to create a dummy. - */ - - - _this3.createDummyOnSynCompletionIfNoNotes = true; - } - } - }); - } - }, { - key: "addSyncEventHandler", - value: function addSyncEventHandler() { - var _this4 = this; - - this.syncManager.addEventHandler(function (syncEvent, data) { - if (syncEvent === 'local-data-loaded') { - if (_this4.state.notes.length === 0) { - _this4.createNewNote(); - } - } else if (syncEvent === 'sync:completed') { - if (_this4.createDummyOnSynCompletionIfNoNotes && _this4.state.notes.length === 0) { - _this4.createDummyOnSynCompletionIfNoNotes = false; - - _this4.createNewNote(); - } - } - }); - } - }, { - key: "addMappingObserver", - value: function addMappingObserver() { - var _this5 = this; - - this.modelManager.addItemSyncObserver('note-list', '*', - /*#__PURE__*/ - function () { - var _ref = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee(allItems, validItems, deletedItems, source, sourceKey) { - var selectedNote, discarded, notIncluded, notes, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, note; - - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return _this5.reloadNotes(); - - case 2: - selectedNote = _this5.state.selectedNote; - - if (selectedNote) { - discarded = selectedNote.deleted || selectedNote.content.trashed; - notIncluded = !_this5.state.notes.includes(selectedNote); - - if (notIncluded || discarded) { - _this5.selectNextOrCreateNew(); - } - } else { - _this5.selectFirstNote(); - } - /** Note has changed values, reset its flags */ - - - notes = allItems.filter(function (item) { - return item.content_type === 'Note'; - }); - _iteratorNormalCompletion = true; - _didIteratorError = false; - _iteratorError = undefined; - _context.prev = 8; - - for (_iterator = notes[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - note = _step.value; - - _this5.loadFlagsForNote(note); - - note.cachedCreatedAtString = note.createdAtString(); - note.cachedUpdatedAtString = note.updatedAtString(); - } - - _context.next = 16; - break; - - case 12: - _context.prev = 12; - _context.t0 = _context["catch"](8); - _didIteratorError = true; - _iteratorError = _context.t0; - - case 16: - _context.prev = 16; - _context.prev = 17; - - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - - case 19: - _context.prev = 19; - - if (!_didIteratorError) { - _context.next = 22; - break; - } - - throw _iteratorError; - - case 22: - return _context.finish(19); - - case 23: - return _context.finish(16); - - case 24: - case "end": - return _context.stop(); - } - } - }, _callee, null, [[8, 12, 16, 24], [17,, 19, 23]]); - })); - - return function (_x, _x2, _x3, _x4, _x5) { - return _ref.apply(this, arguments); - }; - }()); - } - }, { - key: "handleTagChange", - value: function () { - var _handleTagChange = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(tag, previousTag) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!(this.state.selectedNote && this.state.selectedNote.dummy)) { - _context2.next = 5; - break; - } - - this.modelManager.removeItemLocally(this.state.selectedNote); - - if (previousTag) { - lodash__WEBPACK_IMPORTED_MODULE_9___default.a.remove(previousTag.notes, this.state.selectedNote); - } - - _context2.next = 5; - return this.selectNote(null); - - case 5: - _context2.next = 7; - return this.setState({ - tag: tag - }); - - case 7: - this.resetScrollPosition(); - this.setShowMenuFalse(); - this.setNoteFilterText(''); - this.desktopManager.searchText(); - this.resetPagination(); - _context2.next = 14; - return this.reloadNotes(); - - case 14: - if (this.state.notes.length > 0) { - this.selectFirstNote(); - } else if (this.syncManager.initialDataLoaded()) { - if (!tag.isSmartTag() || tag.content.isAllTag) { - this.createNewNote(); - } else if (this.state.selectedNote && !this.state.notes.includes(this.state.selectedNote)) { - this.selectNote(null); - } - } - - case 15: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function handleTagChange(_x6, _x7) { - return _handleTagChange.apply(this, arguments); - } - - return handleTagChange; - }() - }, { - key: "resetScrollPosition", - value: function resetScrollPosition() { - var scrollable = document.getElementById(ELEMENT_ID_SCROLL_CONTAINER); - - if (scrollable) { - scrollable.scrollTop = 0; - scrollable.scrollLeft = 0; - } - } - /** - * @template - * @internal - */ - - }, { - key: "selectNote", - value: function () { - var _selectNote = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3(note) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - this.appState.setSelectedNote(note); - - case 1: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function selectNote(_x8) { - return _selectNote.apply(this, arguments); - } - - return selectNote; - }() - }, { - key: "removeNoteFromList", - value: function () { - var _removeNoteFromList = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee4(note) { - var notes; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - notes = this.state.notes; - - lodash__WEBPACK_IMPORTED_MODULE_9___default.a.pull(notes, note); - - _context4.next = 4; - return this.setState({ - notes: notes, - renderedNotes: notes.slice(0, this.notesToDisplay) - }); - - case 4: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function removeNoteFromList(_x9) { - return _removeNoteFromList.apply(this, arguments); - } - - return removeNoteFromList; - }() - }, { - key: "reloadNotes", - value: function () { - var _reloadNotes = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee5() { - var notes, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, note; - - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - if (this.state.tag) { - _context5.next = 2; - break; - } - - return _context5.abrupt("return"); - - case 2: - notes = Object(_note_utils__WEBPACK_IMPORTED_MODULE_18__["filterAndSortNotes"])({ - notes: this.state.tag.notes, - selectedTag: this.state.tag, - showArchived: this.state.showArchived, - hidePinned: this.state.hidePinned, - filterText: this.state.noteFilter.text, - sortBy: this.state.sortBy, - reverse: this.state.sortReverse - }); - _iteratorNormalCompletion2 = true; - _didIteratorError2 = false; - _iteratorError2 = undefined; - _context5.prev = 6; - - for (_iterator2 = notes[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - note = _step2.value; - - if (note.errorDecrypting) { - this.loadFlagsForNote(note); - } - - note.shouldShowTags = this.shouldShowTagsForNote(note); - } - - _context5.next = 14; - break; - - case 10: - _context5.prev = 10; - _context5.t0 = _context5["catch"](6); - _didIteratorError2 = true; - _iteratorError2 = _context5.t0; - - case 14: - _context5.prev = 14; - _context5.prev = 15; - - if (!_iteratorNormalCompletion2 && _iterator2.return != null) { - _iterator2.return(); - } - - case 17: - _context5.prev = 17; - - if (!_didIteratorError2) { - _context5.next = 20; - break; - } - - throw _iteratorError2; - - case 20: - return _context5.finish(17); - - case 21: - return _context5.finish(14); - - case 22: - _context5.next = 24; - return this.setState({ - notes: notes, - renderedNotes: notes.slice(0, this.notesToDisplay) - }); - - case 24: - this.reloadPanelTitle(); - - case 25: - case "end": - return _context5.stop(); - } - } - }, _callee5, this, [[6, 10, 14, 22], [15,, 17, 21]]); - })); - - function reloadNotes() { - return _reloadNotes.apply(this, arguments); - } - - return reloadNotes; - }() - }, { - key: "setShowMenuFalse", - value: function setShowMenuFalse() { - this.setState({ - mutable: _objectSpread({}, this.state.mutable, { - showMenu: false - }) - }); - } - }, { - key: "handleNoteSelection", - value: function () { - var _handleNoteSelection = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee6(note) { - var previousNote; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - if (!(this.state.selectedNote === note)) { - _context6.next = 2; - break; - } - - return _context6.abrupt("return"); - - case 2: - previousNote = this.state.selectedNote; - - if (previousNote && previousNote.dummy) { - this.modelManager.removeItemLocally(previousNote); - this.removeNoteFromList(previousNote); - } - - _context6.next = 6; - return this.setState({ - selectedNote: note - }); - - case 6: - if (note) { - _context6.next = 8; - break; - } - - return _context6.abrupt("return"); - - case 8: - this.selectedIndex = Math.max(0, this.displayableNotes().indexOf(note)); - - if (note.content.conflict_of) { - note.content.conflict_of = null; - this.modelManager.setItemDirty(note); - this.syncManager.sync(); - } - - if (this.isFiltering()) { - this.desktopManager.searchText(this.state.noteFilter.text); - } - - case 11: - case "end": - return _context6.stop(); - } - } - }, _callee6, this); - })); - - function handleNoteSelection(_x10) { - return _handleNoteSelection.apply(this, arguments); - } - - return handleNoteSelection; - }() - }, { - key: "reloadPreferences", - value: function reloadPreferences() { - var viewOptions = {}; - var prevSortValue = this.state.sortBy; - var sortBy = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_16__["PREF_SORT_NOTES_BY"], _note_utils__WEBPACK_IMPORTED_MODULE_18__["SORT_KEY_CREATED_AT"]); - - if (sortBy === _note_utils__WEBPACK_IMPORTED_MODULE_18__["SORT_KEY_UPDATED_AT"]) { - /** Use client_updated_at instead */ - sortBy = _note_utils__WEBPACK_IMPORTED_MODULE_18__["SORT_KEY_CLIENT_UPDATED_AT"]; - } - - viewOptions.sortBy = sortBy; - viewOptions.sortReverse = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_16__["PREF_SORT_NOTES_REVERSE"], false); - viewOptions.showArchived = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_16__["PREF_NOTES_SHOW_ARCHIVED"], false); - viewOptions.hidePinned = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_16__["PREF_NOTES_HIDE_PINNED"], false); - viewOptions.hideNotePreview = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_16__["PREF_NOTES_HIDE_NOTE_PREVIEW"], false); - viewOptions.hideDate = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_16__["PREF_NOTES_HIDE_DATE"], false); - viewOptions.hideTags = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_16__["PREF_NOTES_HIDE_TAGS"], false); - this.setState(_objectSpread({}, viewOptions)); - - if (prevSortValue && prevSortValue !== sortBy) { - this.selectFirstNote(); - } - - var width = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_16__["PREF_NOTES_PANEL_WIDTH"]); - - if (width) { - this.panelController.setWidth(width); - - if (this.panelController.isCollapsed()) { - this.appState.panelDidResize({ - name: _controllers_constants__WEBPACK_IMPORTED_MODULE_17__["PANEL_NAME_NOTES"], - collapsed: this.panelController.isCollapsed() - }); - } - } - } - }, { - key: "paginate", - value: function paginate() { - this.notesToDisplay += this.pageSize; - this.reloadNotes(); - - if (this.searchSubmitted) { - this.desktopManager.searchText(this.state.noteFilter.text); - } - } - }, { - key: "resetPagination", - value: function resetPagination() { - var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - keepCurrentIfLarger = _ref2.keepCurrentIfLarger; - - var clientHeight = document.documentElement.clientHeight; - this.pageSize = clientHeight / MIN_NOTE_CELL_HEIGHT; - - if (this.pageSize === 0) { - this.pageSize = DEFAULT_LIST_NUM_NOTES; - } - - if (keepCurrentIfLarger && this.notesToDisplay > this.pageSize) { - return; - } - - this.notesToDisplay = this.pageSize; - } - }, { - key: "reloadPanelTitle", - value: function reloadPanelTitle() { - var title; - - if (this.isFiltering()) { - var resultCount = this.state.notes.length; - title = "".concat(resultCount, " search results"); - } else if (this.state.tag) { - title = "".concat(this.state.tag.title); - } - - this.setState({ - panelTitle: title - }); - } - }, { - key: "optionsSubtitle", - value: function optionsSubtitle() { - var base = ""; - - if (this.state.sortBy === 'created_at') { - base += " Date Added"; - } else if (this.state.sortBy === 'client_updated_at') { - base += " Date Modified"; - } else if (this.state.sortBy === 'title') { - base += " Title"; - } - - if (this.state.showArchived) { - base += " | + Archived"; - } - - if (this.state.hidePinned) { - base += " | – Pinned"; - } - - if (this.state.sortReverse) { - base += " | Reversed"; - } - - return base; - } - }, { - key: "loadFlagsForNote", - value: function loadFlagsForNote(note) { - var flags = []; - - if (note.pinned) { - flags.push({ - text: "Pinned", - class: 'info' - }); - } - - if (note.archived) { - flags.push({ - text: "Archived", - class: 'warning' - }); - } - - if (note.content.protected) { - flags.push({ - text: "Protected", - class: 'success' - }); - } - - if (note.locked) { - flags.push({ - text: "Locked", - class: 'neutral' - }); - } - - if (note.content.trashed) { - flags.push({ - text: "Deleted", - class: 'danger' - }); - } - - if (note.content.conflict_of) { - flags.push({ - text: "Conflicted Copy", - class: 'danger' - }); - } - - if (note.errorDecrypting) { - flags.push({ - text: "Missing Keys", - class: 'danger' - }); - } - - if (note.deleted) { - flags.push({ - text: "Deletion Pending Sync", - class: 'danger' - }); - } - - note.flags = flags; - return flags; - } - }, { - key: "displayableNotes", - value: function displayableNotes() { - return this.state.notes; - } - }, { - key: "getFirstNonProtectedNote", - value: function getFirstNonProtectedNote() { - var displayableNotes = this.displayableNotes(); - var index = 0; - var note = displayableNotes[index]; - - while (note && note.content.protected) { - index++; - - if (index >= displayableNotes.length) { - break; - } - - note = displayableNotes[index]; - } - - return note; - } - }, { - key: "selectFirstNote", - value: function selectFirstNote() { - var note = this.getFirstNonProtectedNote(); - - if (note) { - this.selectNote(note); - } - } - }, { - key: "selectNextNote", - value: function selectNextNote() { - var displayableNotes = this.displayableNotes(); - var currentIndex = displayableNotes.indexOf(this.state.selectedNote); - - if (currentIndex + 1 < displayableNotes.length) { - this.selectNote(displayableNotes[currentIndex + 1]); - } - } - }, { - key: "selectNextOrCreateNew", - value: function selectNextOrCreateNew() { - var note = this.getFirstNonProtectedNote(); - - if (note) { - this.selectNote(note); - } else if (!this.state.tag || !this.state.tag.isSmartTag()) { - this.createNewNote(); - } else { - this.selectNote(null); - } - } - }, { - key: "selectPreviousNote", - value: function selectPreviousNote() { - var displayableNotes = this.displayableNotes(); - var currentIndex = displayableNotes.indexOf(this.state.selectedNote); - - if (currentIndex - 1 >= 0) { - this.selectNote(displayableNotes[currentIndex - 1]); - return true; - } else { - return false; - } - } - }, { - key: "createNewNote", - value: function createNewNote() { - if (this.state.selectedNote && this.state.selectedNote.dummy) { - return; - } - - var title = "Note" + (this.state.notes ? " " + (this.state.notes.length + 1) : ""); - var newNote = this.modelManager.createItem({ - content_type: 'Note', - content: { - text: '', - title: title - } - }); - newNote.client_updated_at = new Date(); - newNote.dummy = true; - this.modelManager.addItem(newNote); - this.modelManager.setItemDirty(newNote); - var selectedTag = this.appState.getSelectedTag(); - - if (!selectedTag.isSmartTag()) { - selectedTag.addItemAsRelationship(newNote); - this.modelManager.setItemDirty(selectedTag); - } - - this.selectNote(newNote); - } - }, { - key: "isFiltering", - value: function isFiltering() { - return this.state.noteFilter.text && this.state.noteFilter.text.length > 0; - } - }, { - key: "setNoteFilterText", - value: function () { - var _setNoteFilterText = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee7(text) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee7$(_context7) { - while (1) { - switch (_context7.prev = _context7.next) { - case 0: - _context7.next = 2; - return this.setState({ - noteFilter: _objectSpread({}, this.state.noteFilter, { - text: text - }) - }); - - case 2: - case "end": - return _context7.stop(); - } - } - }, _callee7, this); - })); - - function setNoteFilterText(_x11) { - return _setNoteFilterText.apply(this, arguments); - } - - return setNoteFilterText; - }() - }, { - key: "clearFilterText", - value: function () { - var _clearFilterText = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee8() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee8$(_context8) { - while (1) { - switch (_context8.prev = _context8.next) { - case 0: - _context8.next = 2; - return this.setNoteFilterText(''); - - case 2: - this.onFilterEnter(); - this.filterTextChanged(); - this.resetPagination(); - - case 5: - case "end": - return _context8.stop(); - } - } - }, _callee8, this); - })); - - function clearFilterText() { - return _clearFilterText.apply(this, arguments); - } - - return clearFilterText; - }() - }, { - key: "filterTextChanged", - value: function () { - var _filterTextChanged = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee9() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee9$(_context9) { - while (1) { - switch (_context9.prev = _context9.next) { - case 0: - if (this.searchSubmitted) { - this.searchSubmitted = false; - } - - _context9.next = 3; - return this.reloadNotes(); - - case 3: - if (!this.state.notes.includes(this.state.selectedNote)) { - this.selectFirstNote(); - } - - case 4: - case "end": - return _context9.stop(); - } - } - }, _callee9, this); - })); - - function filterTextChanged() { - return _filterTextChanged.apply(this, arguments); - } - - return filterTextChanged; - }() - }, { - key: "onFilterEnter", - value: function onFilterEnter() { - /** - * For Desktop, performing a search right away causes - * input to lose focus. We wait until user explicity hits - * enter before highlighting desktop search results. - */ - this.searchSubmitted = true; - this.desktopManager.searchText(this.state.noteFilter.text); - } - }, { - key: "selectedMenuItem", - value: function selectedMenuItem() { - this.setShowMenuFalse(); - } - }, { - key: "togglePrefKey", - value: function togglePrefKey(key) { - this.preferencesManager.setUserPrefValue(key, !this.state[key]); - this.preferencesManager.syncUserPreferences(); - } - }, { - key: "selectedSortByCreated", - value: function selectedSortByCreated() { - this.setSortBy(_note_utils__WEBPACK_IMPORTED_MODULE_18__["SORT_KEY_CREATED_AT"]); - } - }, { - key: "selectedSortByUpdated", - value: function selectedSortByUpdated() { - this.setSortBy(_note_utils__WEBPACK_IMPORTED_MODULE_18__["SORT_KEY_CLIENT_UPDATED_AT"]); - } - }, { - key: "selectedSortByTitle", - value: function selectedSortByTitle() { - this.setSortBy(_note_utils__WEBPACK_IMPORTED_MODULE_18__["SORT_KEY_TITLE"]); - } - }, { - key: "toggleReverseSort", - value: function toggleReverseSort() { - this.selectedMenuItem(); - this.preferencesManager.setUserPrefValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_16__["PREF_SORT_NOTES_REVERSE"], !this.state.sortReverse); - this.preferencesManager.syncUserPreferences(); - } - }, { - key: "setSortBy", - value: function setSortBy(type) { - this.preferencesManager.setUserPrefValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_16__["PREF_SORT_NOTES_BY"], type); - this.preferencesManager.syncUserPreferences(); - } - }, { - key: "shouldShowTagsForNote", - value: function shouldShowTagsForNote(note) { - if (this.state.hideTags || note.content.protected) { - return false; - } - - if (this.state.tag.content.isAllTag) { - return note.tags && note.tags.length > 0; - } - - if (this.state.tag.isSmartTag()) { - return true; - } - /** - * Inside a tag, only show tags string if - * note contains tags other than this.state.tag - */ - - - return note.tags && note.tags.length > 1; - } - }, { - key: "getSearchBar", - value: function getSearchBar() { - return document.getElementById(ELEMENT_ID_SEARCH_BAR); - } - }, { - key: "registerKeyboardShortcuts", - value: function registerKeyboardShortcuts() { - var _this6 = this; - - /** - * In the browser we're not allowed to override cmd/ctrl + n, so we have to - * use Control modifier as well. These rules don't apply to desktop, but - * probably better to be consistent. - */ - this.newNoteKeyObserver = this.keyboardManager.addKeyObserver({ - key: 'n', - modifiers: [_services_keyboardManager__WEBPACK_IMPORTED_MODULE_13__["KeyboardManager"].KeyModifierMeta, _services_keyboardManager__WEBPACK_IMPORTED_MODULE_13__["KeyboardManager"].KeyModifierCtrl], - onKeyDown: function onKeyDown(event) { - event.preventDefault(); - - _this6.createNewNote(); - } - }); - this.nextNoteKeyObserver = this.keyboardManager.addKeyObserver({ - key: _services_keyboardManager__WEBPACK_IMPORTED_MODULE_13__["KeyboardManager"].KeyDown, - elements: [document.body, this.getSearchBar()], - onKeyDown: function onKeyDown(event) { - var searchBar = _this6.getSearchBar(); - - if (searchBar === document.activeElement) { - searchBar.blur(); - } - - _this6.selectNextNote(); - } - }); - this.nextNoteKeyObserver = this.keyboardManager.addKeyObserver({ - key: _services_keyboardManager__WEBPACK_IMPORTED_MODULE_13__["KeyboardManager"].KeyUp, - element: document.body, - onKeyDown: function onKeyDown(event) { - _this6.selectPreviousNote(); - } - }); - this.searchKeyObserver = this.keyboardManager.addKeyObserver({ - key: "f", - modifiers: [_services_keyboardManager__WEBPACK_IMPORTED_MODULE_13__["KeyboardManager"].KeyModifierMeta, _services_keyboardManager__WEBPACK_IMPORTED_MODULE_13__["KeyboardManager"].KeyModifierShift], - onKeyDown: function onKeyDown(event) { - var searchBar = _this6.getSearchBar(); - - if (searchBar) { - searchBar.focus(); - } - - ; - } - }); - } - }]); - - return NotesCtrl; -}(_Controllers__WEBPACK_IMPORTED_MODULE_14__["PureCtrl"]); - -var NotesPanel = function NotesPanel() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, NotesPanel); - - this.scope = {}; - this.template = _notes_pug__WEBPACK_IMPORTED_MODULE_11___default.a; - this.replace = true; - this.controller = NotesCtrl; - this.controllerAs = 'self'; - this.bindToController = true; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/controllers/root.js": -/*!****************************************************!*\ - !*** ./app/assets/javascripts/controllers/root.js ***! - \****************************************************/ -/*! exports provided: Root */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Root", function() { return Root; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! snjs */ "./node_modules/snjs/dist/snjs.js"); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(snjs__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils */ "./app/assets/javascripts/utils.js"); -/* harmony import */ var _root_pug__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! %/root.pug */ "./app/assets/templates/root.pug"); -/* harmony import */ var _root_pug__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_root_pug__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/state */ "./app/assets/javascripts/state.js"); -/* harmony import */ var _controllers_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/controllers/constants */ "./app/assets/javascripts/controllers/constants.js"); -/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/strings */ "./app/assets/javascripts/strings.js"); - - - - - - - - - - - -/** How often to automatically sync, in milliseconds */ - -var AUTO_SYNC_INTERVAL = 30000; - -var RootCtrl = -/*#__PURE__*/ -function () { - RootCtrl.$inject = ["$location", "$rootScope", "$scope", "$timeout", "alertManager", "appState", "authManager", "dbManager", "modelManager", "passcodeManager", "preferencesManager", "themeManager", "statusManager", "storageManager", "syncManager"]; - - /* @ngInject */ - function RootCtrl($location, $rootScope, $scope, $timeout, alertManager, appState, authManager, dbManager, modelManager, passcodeManager, preferencesManager, themeManager - /** Unused below, required to load globally */ - , statusManager, storageManager, syncManager) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, RootCtrl); - - this.$rootScope = $rootScope; - this.$scope = $scope; - this.$location = $location; - this.$timeout = $timeout; - this.dbManager = dbManager; - this.syncManager = syncManager; - this.statusManager = statusManager; - this.storageManager = storageManager; - this.appState = appState; - this.authManager = authManager; - this.modelManager = modelManager; - this.alertManager = alertManager; - this.preferencesManager = preferencesManager; - this.passcodeManager = passcodeManager; - this.defineRootScopeFunctions(); - this.handleAutoSignInFromParams(); - this.initializeStorageManager(); - this.addAppStateObserver(); - this.addDragDropHandlers(); - this.defaultLoad(); - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(RootCtrl, [{ - key: "defineRootScopeFunctions", - value: function defineRootScopeFunctions() { - var _this = this; - - this.$rootScope.lockApplication = function () { - /** Reloading wipes current objects from memory */ - window.location.reload(); - }; - - this.$rootScope.safeApply = function (fn) { - var phase = _this.$scope.$root.$$phase; - - if (phase === '$apply' || phase === '$digest') { - _this.$scope.$eval(fn); - } else { - _this.$scope.$apply(fn); - } - }; - } - }, { - key: "defaultLoad", - value: function defaultLoad() { - var _this2 = this; - - this.$scope.platform = Object(_utils__WEBPACK_IMPORTED_MODULE_6__["getPlatformString"])(); - - if (this.passcodeManager.isLocked()) { - this.$scope.needsUnlock = true; - } else { - this.loadAfterUnlock(); - } - - this.$scope.onSuccessfulUnlock = function () { - _this2.$timeout(function () { - _this2.$scope.needsUnlock = false; - - _this2.loadAfterUnlock(); - }); - }; - - this.$scope.onUpdateAvailable = function () { - _this2.$rootScope.$broadcast('new-update-available'); - }; - } - }, { - key: "initializeStorageManager", - value: function initializeStorageManager() { - this.storageManager.initialize(this.passcodeManager.hasPasscode(), this.authManager.isEphemeralSession()); - } - }, { - key: "addAppStateObserver", - value: function addAppStateObserver() { - var _this3 = this; - - this.appState.addObserver(function (eventName, data) { - if (eventName === _state__WEBPACK_IMPORTED_MODULE_8__["APP_STATE_EVENT_PANEL_RESIZED"]) { - if (data.panel === _controllers_constants__WEBPACK_IMPORTED_MODULE_9__["PANEL_NAME_NOTES"]) { - _this3.notesCollapsed = data.collapsed; - } - - if (data.panel === _controllers_constants__WEBPACK_IMPORTED_MODULE_9__["PANEL_NAME_TAGS"]) { - _this3.tagsCollapsed = data.collapsed; - } - - var appClass = ""; - - if (_this3.notesCollapsed) { - appClass += "collapsed-notes"; - } - - if (_this3.tagsCollapsed) { - appClass += " collapsed-tags"; - } - - _this3.$scope.appClass = appClass; - } - }); - } - }, { - key: "loadAfterUnlock", - value: function loadAfterUnlock() { - this.openDatabase(); - this.authManager.loadInitialData(); - this.preferencesManager.load(); - this.addSyncStatusObserver(); - this.configureKeyRequestHandler(); - this.addSyncEventHandler(); - this.addSignOutObserver(); - this.loadLocalData(); - } - }, { - key: "openDatabase", - value: function openDatabase() { - var _this4 = this; - - this.dbManager.setLocked(false); - this.dbManager.openDatabase({ - onUpgradeNeeded: function onUpgradeNeeded() { - /** - * New database, delete syncToken so that items - * can be refetched entirely from server - */ - _this4.syncManager.clearSyncToken(); - - _this4.syncManager.sync(); - } - }); - } - }, { - key: "addSyncStatusObserver", - value: function addSyncStatusObserver() { - var _this5 = this; - - this.syncStatusObserver = this.syncManager.registerSyncStatusObserver(function (status) { - if (status.retrievedCount > 20) { - var text = "Downloading ".concat(status.retrievedCount, " items. Keep app open."); - _this5.syncStatus = _this5.statusManager.replaceStatusWithString(_this5.syncStatus, text); - _this5.showingDownloadStatus = true; - } else if (_this5.showingDownloadStatus) { - _this5.showingDownloadStatus = false; - var _text = "Download Complete."; - _this5.syncStatus = _this5.statusManager.replaceStatusWithString(_this5.syncStatus, _text); - setTimeout(function () { - _this5.syncStatus = _this5.statusManager.removeStatus(_this5.syncStatus); - }, 2000); - } else if (status.total > 20) { - _this5.uploadSyncStatus = _this5.statusManager.replaceStatusWithString(_this5.uploadSyncStatus, "Syncing ".concat(status.current, "/").concat(status.total, " items...")); - } else if (_this5.uploadSyncStatus) { - _this5.uploadSyncStatus = _this5.statusManager.removeStatus(_this5.uploadSyncStatus); - } - }); - } - }, { - key: "configureKeyRequestHandler", - value: function configureKeyRequestHandler() { - var _this6 = this; - - this.syncManager.setKeyRequestHandler( - /*#__PURE__*/ - _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { - var offline, authParams, keys; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - offline = _this6.authManager.offline(); - - if (!offline) { - _context.next = 5; - break; - } - - _context.t0 = _this6.passcodeManager.passcodeAuthParams(); - _context.next = 8; - break; - - case 5: - _context.next = 7; - return _this6.authManager.getAuthParams(); - - case 7: - _context.t0 = _context.sent; - - case 8: - authParams = _context.t0; - - if (!offline) { - _context.next = 13; - break; - } - - _context.t1 = _this6.passcodeManager.keys(); - _context.next = 16; - break; - - case 13: - _context.next = 15; - return _this6.authManager.keys(); - - case 15: - _context.t1 = _context.sent; - - case 16: - keys = _context.t1; - return _context.abrupt("return", { - keys: keys, - offline: offline, - auth_params: authParams - }); - - case 18: - case "end": - return _context.stop(); - } - } - }, _callee); - }))); - } - }, { - key: "addSyncEventHandler", - value: function addSyncEventHandler() { - var _this7 = this; - - var lastShownDate; - this.syncManager.addEventHandler(function (syncEvent, data) { - _this7.$rootScope.$broadcast(syncEvent, data || {}); - - if (syncEvent === 'sync-session-invalid') { - /** Don't show repeatedly; at most 30 seconds in between */ - var SHOW_INTERVAL = 30; - var lastShownSeconds = (new Date() - lastShownDate) / 1000; - - if (!lastShownDate || lastShownSeconds > SHOW_INTERVAL) { - lastShownDate = new Date(); - setTimeout(function () { - _this7.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_10__["STRING_SESSION_EXPIRED"] - }); - }, 500); - } - } else if (syncEvent === 'sync-exception') { - _this7.alertManager.alert({ - text: Object(_strings__WEBPACK_IMPORTED_MODULE_10__["StringSyncException"])(data) - }); - } - }); - } - }, { - key: "loadLocalData", - value: function loadLocalData() { - var _this8 = this; - - var encryptionEnabled = this.authManager.user || this.passcodeManager.hasPasscode(); - this.syncStatus = this.statusManager.addStatusFromString(encryptionEnabled ? "Decrypting items..." : "Loading items..."); - - var incrementalCallback = function incrementalCallback(current, total) { - var notesString = "".concat(current, "/").concat(total, " items..."); - var status = encryptionEnabled ? "Decrypting ".concat(notesString) : "Loading ".concat(notesString); - _this8.syncStatus = _this8.statusManager.replaceStatusWithString(_this8.syncStatus, status); - }; - - this.syncManager.loadLocalItems({ - incrementalCallback: incrementalCallback - }).then(function () { - _this8.$timeout(function () { - _this8.$rootScope.$broadcast("initial-data-loaded"); - - _this8.syncStatus = _this8.statusManager.replaceStatusWithString(_this8.syncStatus, "Syncing..."); - - _this8.syncManager.sync({ - performIntegrityCheck: true - }).then(function () { - _this8.syncStatus = _this8.statusManager.removeStatus(_this8.syncStatus); - }); - - setInterval(function () { - _this8.syncManager.sync(); - }, AUTO_SYNC_INTERVAL); - }); - }); - } - }, { - key: "addSignOutObserver", - value: function addSignOutObserver() { - var _this9 = this; - - this.authManager.addEventHandler(function (event) { - if (event === snjs__WEBPACK_IMPORTED_MODULE_5__["SFAuthManager"].DidSignOutEvent) { - _this9.modelManager.handleSignout(); - - _this9.syncManager.handleSignout(); - } - }); - } - }, { - key: "addDragDropHandlers", - value: function addDragDropHandlers() { - var _this10 = this; - - /** - * Disable dragging and dropping of files (but allow text) into main SN interface. - * both 'dragover' and 'drop' are required to prevent dropping of files. - * This will not prevent extensions from receiving drop events. - */ - window.addEventListener('dragover', function (event) { - if (event.dataTransfer.files.length > 0) { - event.preventDefault(); - } - }, false); - window.addEventListener('drop', function (event) { - if (event.dataTransfer.files.length > 0) { - event.preventDefault(); - - _this10.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_10__["STRING_DEFAULT_FILE_ERROR"] - }); - } - }, false); - } - }, { - key: "handleAutoSignInFromParams", - value: function handleAutoSignInFromParams() { - var _this11 = this; - - var urlParam = function urlParam(key) { - return _this11.$location.search()[key]; - }; - - var autoSignInFromParams = - /*#__PURE__*/ - function () { - var _ref2 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2() { - var server, email, pw; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - server = urlParam('server'); - email = urlParam('email'); - pw = urlParam('pw'); - - if (_this11.authManager.offline()) { - _context2.next = 18; - break; - } - - _context2.next = 6; - return _this11.syncManager.getServerURL(); - - case 6: - _context2.t1 = _context2.sent; - _context2.t2 = server; - _context2.t0 = _context2.t1 === _context2.t2; - - if (!_context2.t0) { - _context2.next = 11; - break; - } - - _context2.t0 = _this11.authManager.user.email === email; - - case 11: - if (!_context2.t0) { - _context2.next = 15; - break; - } - - return _context2.abrupt("return"); - - case 15: - /** Sign out */ - _this11.authManager.signout(true).then(function () { - window.location.reload(); - }); - - case 16: - _context2.next = 19; - break; - - case 18: - _this11.authManager.login(server, email, pw, false, false, {}).then(function (response) { - window.location.reload(); - }); - - case 19: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); - - return function autoSignInFromParams() { - return _ref2.apply(this, arguments); - }; - }(); - - if (urlParam('server')) { - autoSignInFromParams(); - } - } - }]); - - return RootCtrl; -}(); - -var Root = function Root() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, Root); - - this.template = _root_pug__WEBPACK_IMPORTED_MODULE_7___default.a; - this.controller = RootCtrl; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/controllers/tags.js": -/*!****************************************************!*\ - !*** ./app/assets/javascripts/controllers/tags.js ***! - \****************************************************/ -/*! exports provided: TagsPanel */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TagsPanel", function() { return TagsPanel; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js"); -/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! snjs */ "./node_modules/snjs/dist/snjs.js"); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(snjs__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var _tags_pug__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! %/tags.pug */ "./app/assets/templates/tags.pug"); -/* harmony import */ var _tags_pug__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_tags_pug__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/state */ "./app/assets/javascripts/state.js"); -/* harmony import */ var _controllers_constants__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/controllers/constants */ "./app/assets/javascripts/controllers/constants.js"); -/* harmony import */ var _services_preferencesManager__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/services/preferencesManager */ "./app/assets/javascripts/services/preferencesManager.js"); -/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/strings */ "./app/assets/javascripts/strings.js"); -/* harmony import */ var _Controllers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @Controllers */ "./app/assets/javascripts/controllers/index.js"); - - - - - - - - - - - - - - - - - -var TagsPanelCtrl = -/*#__PURE__*/ -function (_PureCtrl) { - TagsPanelCtrl.$inject = ["$rootScope", "$timeout", "alertManager", "appState", "componentManager", "modelManager", "preferencesManager", "syncManager"]; - - _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default()(TagsPanelCtrl, _PureCtrl); - - /* @ngInject */ - function TagsPanelCtrl($rootScope, $timeout, alertManager, appState, componentManager, modelManager, preferencesManager, syncManager) { - var _this; - - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, TagsPanelCtrl); - - _this = _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default()(this, _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default()(TagsPanelCtrl).call(this, $timeout)); - - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6___default()(_this), "onPanelResize", function (newWidth, lastLeft, isAtMaxWidth, isCollapsed) { - _this.preferencesManager.setUserPrefValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_13__["PREF_TAGS_PANEL_WIDTH"], newWidth, true); - - _this.appState.panelDidResize({ - name: _controllers_constants__WEBPACK_IMPORTED_MODULE_12__["PANEL_NAME_TAGS"], - collapsed: isCollapsed - }); - }); - - _this.$rootScope = $rootScope; - _this.alertManager = alertManager; - _this.appState = appState; - _this.componentManager = componentManager; - _this.modelManager = modelManager; - _this.preferencesManager = preferencesManager; - _this.syncManager = syncManager; - _this.panelController = {}; - - _this.addSyncEventHandler(); - - _this.addAppStateObserver(); - - _this.addMappingObserver(); - - _this.loadPreferences(); - - _this.registerComponentHandler(); - - _this.state = { - smartTags: _this.modelManager.getSmartTags(), - noteCounts: {} - }; - return _this; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(TagsPanelCtrl, [{ - key: "$onInit", - value: function $onInit() { - this.selectTag(this.state.smartTags[0]); - } - }, { - key: "addSyncEventHandler", - value: function addSyncEventHandler() { - var _this2 = this; - - this.syncManager.addEventHandler( - /*#__PURE__*/ - function () { - var _ref = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee(syncEvent, data) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!(syncEvent === 'local-data-loaded' || syncEvent === 'sync:completed' || syncEvent === 'local-data-incremental-load')) { - _context.next = 4; - break; - } - - _context.next = 3; - return _this2.setState({ - tags: _this2.modelManager.tags, - smartTags: _this2.modelManager.getSmartTags() - }); - - case 3: - _this2.reloadNoteCounts(); - - case 4: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - return function (_x, _x2) { - return _ref.apply(this, arguments); - }; - }()); - } - }, { - key: "addAppStateObserver", - value: function addAppStateObserver() { - var _this3 = this; - - this.appState.addObserver(function (eventName, data) { - if (eventName === _state__WEBPACK_IMPORTED_MODULE_11__["APP_STATE_EVENT_PREFERENCES_CHANGED"]) { - _this3.loadPreferences(); - } else if (eventName === _state__WEBPACK_IMPORTED_MODULE_11__["APP_STATE_EVENT_TAG_CHANGED"]) { - _this3.setState({ - selectedTag: _this3.appState.getSelectedTag() - }); - } - }); - } - }, { - key: "addMappingObserver", - value: function addMappingObserver() { - var _this4 = this; - - this.modelManager.addItemSyncObserver('tags-list-tags', 'Tag', function (allItems, validItems, deletedItems, source, sourceKey) { - _this4.reloadNoteCounts(); - - if (!_this4.state.selectedTag) { - return; - } - /** If the selected tag has been deleted, revert to All view. */ - - - var selectedTag = allItems.find(function (tag) { - return tag.uuid === _this4.state.selectedTag.uuid; - }); - - if (selectedTag && selectedTag.deleted) { - _this4.selectTag(_this4.state.smartTags[0]); - } - }); - } - }, { - key: "reloadNoteCounts", - value: function reloadNoteCounts() { - var allTags = []; - - if (this.state.tags) { - allTags = allTags.concat(this.state.tags); - } - - if (this.state.smartTags) { - allTags = allTags.concat(this.state.smartTags); - } - - var noteCounts = {}; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = allTags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var tag = _step.value; - var validNotes = snjs__WEBPACK_IMPORTED_MODULE_9__["SNNote"].filterDummyNotes(tag.notes).filter(function (note) { - return !note.archived && !note.content.trashed; - }); - noteCounts[tag.uuid] = validNotes.length; - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - this.setState({ - noteCounts: noteCounts - }); - } - }, { - key: "loadPreferences", - value: function loadPreferences() { - var width = this.preferencesManager.getValue(_services_preferencesManager__WEBPACK_IMPORTED_MODULE_13__["PREF_TAGS_PANEL_WIDTH"]); - - if (width) { - this.panelController.setWidth(width); - - if (this.panelController.isCollapsed()) { - this.appState.panelDidResize({ - name: _controllers_constants__WEBPACK_IMPORTED_MODULE_12__["PANEL_NAME_TAGS"], - collapsed: this.panelController.isCollapsed() - }); - } - } - } - }, { - key: "registerComponentHandler", - value: function registerComponentHandler() { - var _this5 = this; - - this.componentManager.registerHandler({ - identifier: 'tags', - areas: ['tags-list'], - activationHandler: function activationHandler(component) { - _this5.component = component; - }, - contextRequestHandler: function contextRequestHandler(component) { - return null; - }, - actionHandler: function actionHandler(component, action, data) { - if (action === 'select-item') { - if (data.item.content_type === 'Tag') { - var tag = _this5.modelManager.findItem(data.item.uuid); - - if (tag) { - _this5.selectTag(tag); - } - } else if (data.item.content_type === 'SN|SmartTag') { - var smartTag = new snjs__WEBPACK_IMPORTED_MODULE_9__["SNSmartTag"](data.item); - - _this5.selectTag(smartTag); - } - } else if (action === 'clear-selection') { - _this5.selectTag(_this5.state.smartTags[0]); - } - } - }); - } - }, { - key: "selectTag", - value: function () { - var _selectTag = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(tag) { - var _this6 = this; - - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (tag.isSmartTag()) { - Object.defineProperty(tag, 'notes', { - get: function get() { - return _this6.modelManager.notesMatchingSmartTag(tag); - } - }); - } - - if (tag.content.conflict_of) { - tag.content.conflict_of = null; - this.modelManager.setItemDirty(tag); - this.syncManager.sync(); - } - - this.appState.setSelectedTag(tag); - - case 3: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function selectTag(_x3) { - return _selectTag.apply(this, arguments); - } - - return selectTag; - }() - }, { - key: "clickedAddNewTag", - value: function clickedAddNewTag() { - if (this.state.editingTag) { - return; - } - - var newTag = this.modelManager.createItem({ - content_type: 'Tag' - }); - this.setState({ - previousTag: this.state.selectedTag, - selectedTag: newTag, - editingTag: newTag, - newTag: newTag - }); - this.modelManager.addItem(newTag); - } - }, { - key: "tagTitleDidChange", - value: function tagTitleDidChange(tag) { - this.setState({ - editingTag: tag - }); - } - }, { - key: "saveTag", - value: function () { - var _saveTag = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3($event, tag) { - var matchingTag, alreadyExists; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - $event.target.blur(); - _context3.next = 3; - return this.setState({ - editingTag: null - }); - - case 3: - if (!(!tag.title || tag.title.length === 0)) { - _context3.next = 7; - break; - } - - if (this.state.editingTag) { - tag.title = this.editingOriginalName; - this.editingOriginalName = null; - } else if (this.state.newTag) { - this.modelManager.removeItemLocally(tag); - this.setState({ - selectedTag: this.state.previousTag - }); - } - - this.setState({ - newTag: null - }); - return _context3.abrupt("return"); - - case 7: - this.editingOriginalName = null; - matchingTag = this.modelManager.findTag(tag.title); - alreadyExists = matchingTag && matchingTag !== tag; - - if (!(this.state.newTag === tag && alreadyExists)) { - _context3.next = 15; - break; - } - - this.alertManager.alert({ - text: "A tag with this name already exists." - }); - this.modelManager.removeItemLocally(tag); - this.setState({ - newTag: null - }); - return _context3.abrupt("return"); - - case 15: - this.modelManager.setItemDirty(tag); - this.syncManager.sync(); - this.modelManager.resortTag(tag); - this.selectTag(tag); - this.setState({ - newTag: null - }); - - case 20: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function saveTag(_x4, _x5) { - return _saveTag.apply(this, arguments); - } - - return saveTag; - }() - }, { - key: "selectedRenameTag", - value: function () { - var _selectedRenameTag = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee4($event, tag) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - this.editingOriginalName = tag.title; - _context4.next = 3; - return this.setState({ - editingTag: tag - }); - - case 3: - document.getElementById('tag-' + tag.uuid).focus(); - - case 4: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function selectedRenameTag(_x6, _x7) { - return _selectedRenameTag.apply(this, arguments); - } - - return selectedRenameTag; - }() - }, { - key: "selectedDeleteTag", - value: function selectedDeleteTag(tag) { - this.removeTag(tag); - this.selectTag(this.state.smartTags[0]); - } - }, { - key: "removeTag", - value: function removeTag(tag) { - var _this7 = this; - - this.alertManager.confirm({ - text: _strings__WEBPACK_IMPORTED_MODULE_14__["STRING_DELETE_TAG"], - destructive: true, - onConfirm: function onConfirm() { - _this7.modelManager.setItemToBeDeleted(tag); - - _this7.syncManager.sync(); - } - }); - } - }]); - - return TagsPanelCtrl; -}(_Controllers__WEBPACK_IMPORTED_MODULE_15__["PureCtrl"]); - -var TagsPanel = function TagsPanel() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, TagsPanel); - - this.restrict = 'E'; - this.scope = {}; - this.template = _tags_pug__WEBPACK_IMPORTED_MODULE_10___default.a; - this.replace = true; - this.controller = TagsPanelCtrl; - this.controllerAs = 'self'; - this.bindToController = true; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/functional/autofocus.js": -/*!*******************************************************************!*\ - !*** ./app/assets/javascripts/directives/functional/autofocus.js ***! - \*******************************************************************/ -/*! exports provided: autofocus */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "autofocus", function() { return autofocus; }); -autofocus.$inject = ["$timeout"]; - -/* @ngInject */ -function autofocus($timeout) { - return { - restrict: 'A', - scope: { - shouldFocus: '=' - }, - link: function link($scope, $element) { - $timeout(function () { - if ($scope.shouldFocus) { - $element[0].focus(); - } - }); - } - }; -} - -/***/ }), - -/***/ "./app/assets/javascripts/directives/functional/click-outside.js": -/*!***********************************************************************!*\ - !*** ./app/assets/javascripts/directives/functional/click-outside.js ***! - \***********************************************************************/ -/*! exports provided: clickOutside */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clickOutside", function() { return clickOutside; }); -clickOutside.$inject = ["$document"]; - -/* @ngInject */ -function clickOutside($document) { - return { - restrict: 'A', - replace: false, - link: function link($scope, $element, attrs) { - var didApplyClickOutside = false; - $element.bind('click', function (e) { - didApplyClickOutside = false; - - if (attrs.isOpen) { - e.stopPropagation(); - } - }); - $document.bind('click', function () { - // Ignore click if on SKAlert - if (event.target.closest(".sk-modal")) { - return; - } - - if (!didApplyClickOutside) { - $scope.$apply(attrs.clickOutside); - didApplyClickOutside = true; - } - }); - } - }; -} - -/***/ }), - -/***/ "./app/assets/javascripts/directives/functional/delay-hide.js": -/*!********************************************************************!*\ - !*** ./app/assets/javascripts/directives/functional/delay-hide.js ***! - \********************************************************************/ -/*! exports provided: delayHide */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delayHide", function() { return delayHide; }); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js"); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__); -delayHide.$inject = ["$timeout"]; - -/* @ngInject */ - -function delayHide($timeout) { - return { - restrict: 'A', - scope: { - show: '=', - delay: '@' - }, - link: function link(scope, elem, attrs) { - showElement(false); // This is where all the magic happens! - // Whenever the scope variable updates we simply - // show if it evaluates to 'true' and hide if 'false' - - scope.$watch('show', function (newVal) { - newVal ? showSpinner() : hideSpinner(); - }); - - function showSpinner() { - if (scope.hidePromise) { - $timeout.cancel(scope.hidePromise); - scope.hidePromise = null; - } - - showElement(true); - } - - function hideSpinner() { - scope.hidePromise = $timeout(showElement.bind(this, false), getDelay()); - } - - function showElement(show) { - show ? elem.css({ - display: '' - }) : elem.css({ - display: 'none' - }); - } - - function getDelay() { - var delay = parseInt(scope.delay); - return angular__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(delay) ? delay : 200; - } - } - }; -} - -/***/ }), - -/***/ "./app/assets/javascripts/directives/functional/elemReady.js": -/*!*******************************************************************!*\ - !*** ./app/assets/javascripts/directives/functional/elemReady.js ***! - \*******************************************************************/ -/*! exports provided: elemReady */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elemReady", function() { return elemReady; }); -elemReady.$inject = ["$parse"]; - -/* @ngInject */ -function elemReady($parse) { - return { - restrict: 'A', - link: function link($scope, elem, attrs) { - elem.ready(function () { - $scope.$apply(function () { - var func = $parse(attrs.elemReady); - func($scope); - }); - }); - } - }; -} - -/***/ }), - -/***/ "./app/assets/javascripts/directives/functional/file-change.js": -/*!*********************************************************************!*\ - !*** ./app/assets/javascripts/directives/functional/file-change.js ***! - \*********************************************************************/ -/*! exports provided: fileChange */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fileChange", function() { return fileChange; }); -/* @ngInject */ -function fileChange() { - return { - restrict: 'A', - scope: { - handler: '&' - }, - link: function link(scope, element) { - element.on('change', function (event) { - scope.$apply(function () { - scope.handler({ - files: event.target.files - }); - }); - }); - } - }; -} - -/***/ }), - -/***/ "./app/assets/javascripts/directives/functional/index.js": -/*!***************************************************************!*\ - !*** ./app/assets/javascripts/directives/functional/index.js ***! - \***************************************************************/ -/*! exports provided: autofocus, clickOutside, delayHide, elemReady, fileChange, infiniteScroll, lowercase, selectOnClick, snEnter */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _autofocus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./autofocus */ "./app/assets/javascripts/directives/functional/autofocus.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "autofocus", function() { return _autofocus__WEBPACK_IMPORTED_MODULE_0__["autofocus"]; }); - -/* harmony import */ var _click_outside__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./click-outside */ "./app/assets/javascripts/directives/functional/click-outside.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clickOutside", function() { return _click_outside__WEBPACK_IMPORTED_MODULE_1__["clickOutside"]; }); - -/* harmony import */ var _delay_hide__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./delay-hide */ "./app/assets/javascripts/directives/functional/delay-hide.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delayHide", function() { return _delay_hide__WEBPACK_IMPORTED_MODULE_2__["delayHide"]; }); - -/* harmony import */ var _elemReady__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./elemReady */ "./app/assets/javascripts/directives/functional/elemReady.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elemReady", function() { return _elemReady__WEBPACK_IMPORTED_MODULE_3__["elemReady"]; }); - -/* harmony import */ var _file_change__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./file-change */ "./app/assets/javascripts/directives/functional/file-change.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fileChange", function() { return _file_change__WEBPACK_IMPORTED_MODULE_4__["fileChange"]; }); - -/* harmony import */ var _infiniteScroll__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./infiniteScroll */ "./app/assets/javascripts/directives/functional/infiniteScroll.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "infiniteScroll", function() { return _infiniteScroll__WEBPACK_IMPORTED_MODULE_5__["infiniteScroll"]; }); - -/* harmony import */ var _lowercase__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lowercase */ "./app/assets/javascripts/directives/functional/lowercase.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lowercase", function() { return _lowercase__WEBPACK_IMPORTED_MODULE_6__["lowercase"]; }); - -/* harmony import */ var _selectOnClick__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./selectOnClick */ "./app/assets/javascripts/directives/functional/selectOnClick.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectOnClick", function() { return _selectOnClick__WEBPACK_IMPORTED_MODULE_7__["selectOnClick"]; }); - -/* harmony import */ var _snEnter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./snEnter */ "./app/assets/javascripts/directives/functional/snEnter.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "snEnter", function() { return _snEnter__WEBPACK_IMPORTED_MODULE_8__["snEnter"]; }); - - - - - - - - - - - -/***/ }), - -/***/ "./app/assets/javascripts/directives/functional/infiniteScroll.js": -/*!************************************************************************!*\ - !*** ./app/assets/javascripts/directives/functional/infiniteScroll.js ***! - \************************************************************************/ -/*! exports provided: infiniteScroll */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "infiniteScroll", function() { return infiniteScroll; }); -infiniteScroll.$inject = ["$rootScope", "$window", "$timeout"]; - -/* @ngInject */ -function infiniteScroll($rootScope, $window, $timeout) { - return { - link: function link(scope, elem, attrs) { - var offset = parseInt(attrs.threshold) || 0; - var e = elem[0]; - elem.on('scroll', function () { - if (scope.$eval(attrs.canLoad) && e.scrollTop + e.offsetHeight >= e.scrollHeight - offset) { - scope.$apply(attrs.infiniteScroll); - } - }); - } - }; -} - -/***/ }), - -/***/ "./app/assets/javascripts/directives/functional/lowercase.js": -/*!*******************************************************************!*\ - !*** ./app/assets/javascripts/directives/functional/lowercase.js ***! - \*******************************************************************/ -/*! exports provided: lowercase */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lowercase", function() { return lowercase; }); -/* @ngInject */ -function lowercase() { - return { - require: 'ngModel', - link: function link(scope, element, attrs, modelCtrl) { - var lowercase = function lowercase(inputValue) { - if (inputValue === undefined) inputValue = ''; - var lowercased = inputValue.toLowerCase(); - - if (lowercased !== inputValue) { - modelCtrl.$setViewValue(lowercased); - modelCtrl.$render(); - } - - return lowercased; - }; - - modelCtrl.$parsers.push(lowercase); - lowercase(scope[attrs.ngModel]); - } - }; -} - -/***/ }), - -/***/ "./app/assets/javascripts/directives/functional/selectOnClick.js": -/*!***********************************************************************!*\ - !*** ./app/assets/javascripts/directives/functional/selectOnClick.js ***! - \***********************************************************************/ -/*! exports provided: selectOnClick */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "selectOnClick", function() { return selectOnClick; }); -selectOnClick.$inject = ["$window"]; - -/* @ngInject */ -function selectOnClick($window) { - return { - restrict: 'A', - link: function link(scope, element, attrs) { - element.on('focus', function () { - if (!$window.getSelection().toString()) { - /** Required for mobile Safari */ - this.setSelectionRange(0, this.value.length); - } - }); - } - }; -} - -/***/ }), - -/***/ "./app/assets/javascripts/directives/functional/snEnter.js": -/*!*****************************************************************!*\ - !*** ./app/assets/javascripts/directives/functional/snEnter.js ***! - \*****************************************************************/ -/*! exports provided: snEnter */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "snEnter", function() { return snEnter; }); -/* @ngInject */ -function snEnter() { - return function (scope, element, attrs) { - element.bind('keydown keypress', function (event) { - if (event.which === 13) { - scope.$apply(function () { - scope.$eval(attrs.snEnter, { - event: event - }); - }); - event.preventDefault(); - } - }); - }; -} - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/accountMenu.js": -/*!****************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/accountMenu.js ***! - \****************************************************************/ -/*! exports provided: AccountMenu */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AccountMenu", function() { return AccountMenu; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/utils */ "./app/assets/javascripts/utils.js"); -/* harmony import */ var _services_privilegesManager__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/services/privilegesManager */ "./app/assets/javascripts/services/privilegesManager.js"); -/* harmony import */ var _directives_account_menu_pug__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! %/directives/account-menu.pug */ "./app/assets/templates/directives/account-menu.pug"); -/* harmony import */ var _directives_account_menu_pug__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_directives_account_menu_pug__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! snjs */ "./node_modules/snjs/dist/snjs.js"); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(snjs__WEBPACK_IMPORTED_MODULE_11__); -/* harmony import */ var _Controllers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @Controllers */ "./app/assets/javascripts/controllers/index.js"); -/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/strings */ "./app/assets/javascripts/strings.js"); - - - - - - - - - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - - - - - - -var ELEMENT_ID_IMPORT_PASSWORD_INPUT = 'import-password-request'; -var ELEMENT_NAME_AUTH_EMAIL = 'email'; -var ELEMENT_NAME_AUTH_PASSWORD = 'password'; -var ELEMENT_NAME_AUTH_PASSWORD_CONF = 'password_conf'; - -var AccountMenuCtrl = -/*#__PURE__*/ -function (_PureCtrl) { - AccountMenuCtrl.$inject = ["$scope", "$rootScope", "$timeout", "alertManager", "archiveManager", "appVersion", "authManager", "modelManager", "passcodeManager", "privilegesManager", "storageManager", "syncManager"]; - - _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default()(AccountMenuCtrl, _PureCtrl); - - /* @ngInject */ - function AccountMenuCtrl($scope, $rootScope, $timeout, alertManager, archiveManager, appVersion, authManager, modelManager, passcodeManager, privilegesManager, storageManager, syncManager) { - var _this; - - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3___default()(this, AccountMenuCtrl); - - _this = _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5___default()(this, _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6___default()(AccountMenuCtrl).call(this, $timeout)); - _this.$scope = $scope; - _this.$rootScope = $rootScope; - _this.$timeout = $timeout; - _this.alertManager = alertManager; - _this.archiveManager = archiveManager; - _this.authManager = authManager; - _this.modelManager = modelManager; - _this.passcodeManager = passcodeManager; - _this.privilegesManager = privilegesManager; - _this.storageManager = storageManager; - _this.syncManager = syncManager; - _this.state = { - appVersion: 'v' + (window.electronAppVersion || appVersion), - user: _this.authManager.user, - canAddPasscode: !_this.authManager.isEphemeralSession(), - passcodeAutoLockOptions: _this.passcodeManager.getAutoLockIntervalOptions(), - formData: { - mergeLocal: true, - ephemeral: false - }, - mutable: { - backupEncrypted: _this.encryptedBackupsAvailable() - } - }; - _this.syncStatus = _this.syncManager.syncStatus; - - _this.syncManager.getServerURL().then(function (url) { - _this.setState({ - server: url, - formData: _objectSpread({}, _this.state.formData, { - url: url - }) - }); - }); - - _this.authManager.checkForSecurityUpdate().then(function (available) { - _this.setState({ - securityUpdateAvailable: available - }); - }); - - _this.reloadAutoLockInterval(); - - return _this; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4___default()(AccountMenuCtrl, [{ - key: "$onInit", - value: function $onInit() { - this.initProps({ - closeFunction: this.closeFunction - }); - } - }, { - key: "close", - value: function close() { - var _this2 = this; - - this.$timeout(function () { - _this2.props.closeFunction()(); - }); - } - }, { - key: "encryptedBackupsAvailable", - value: function encryptedBackupsAvailable() { - return !Object(_utils__WEBPACK_IMPORTED_MODULE_8__["isNullOrUndefined"])(this.authManager.user) || this.passcodeManager.hasPasscode(); - } - }, { - key: "submitMfaForm", - value: function submitMfaForm() { - var params = _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()({}, this.state.formData.mfa.payload.mfa_key, this.state.formData.userMfaCode); - - this.login(params); - } - }, { - key: "blurAuthFields", - value: function blurAuthFields() { - var names = [ELEMENT_NAME_AUTH_EMAIL, ELEMENT_NAME_AUTH_PASSWORD, ELEMENT_NAME_AUTH_PASSWORD_CONF]; - - for (var _i = 0, _names = names; _i < _names.length; _i++) { - var name = _names[_i]; - var element = document.getElementsByName(name)[0]; - - if (element) { - element.blur(); - } - } - } - }, { - key: "submitAuthForm", - value: function submitAuthForm() { - if (!this.state.formData.email || !this.state.formData.user_password) { - return; - } - - this.blurAuthFields(); - - if (this.state.formData.showLogin) { - this.login(); - } else { - this.register(); - } - } - }, { - key: "setFormDataState", - value: function () { - var _setFormDataState = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee(formData) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.setState({ - formData: _objectSpread({}, this.state.formData, {}, formData) - })); - - case 1: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function setFormDataState(_x) { - return _setFormDataState.apply(this, arguments); - } - - return setFormDataState; - }() - }, { - key: "login", - value: function () { - var _login = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(extraParams) { - var response, hasError, error; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - /** Prevent a timed sync from occuring while signing in. */ - this.syncManager.lockSyncing(); - _context2.next = 3; - return this.setFormDataState({ - status: _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_GENERATING_LOGIN_KEYS"], - authenticating: true - }); - - case 3: - _context2.next = 5; - return this.authManager.login(this.state.formData.url, this.state.formData.email, this.state.formData.user_password, this.state.formData.ephemeral, this.state.formData.strictSignin, extraParams); - - case 5: - response = _context2.sent; - hasError = !response || response.error; - - if (hasError) { - _context2.next = 13; - break; - } - - _context2.next = 10; - return this.onAuthSuccess(); - - case 10: - this.syncManager.unlockSyncing(); - this.syncManager.sync({ - performIntegrityCheck: true - }); - return _context2.abrupt("return"); - - case 13: - this.syncManager.unlockSyncing(); - _context2.next = 16; - return this.setFormDataState({ - status: null - }); - - case 16: - error = response ? response.error : { - message: "An unknown error occured." - }; - - if (!(error.tag === 'mfa-required' || error.tag === 'mfa-invalid')) { - _context2.next = 22; - break; - } - - _context2.next = 20; - return this.setFormDataState({ - showLogin: false, - mfa: error - }); - - case 20: - _context2.next = 25; - break; - - case 22: - _context2.next = 24; - return this.setFormDataState({ - showLogin: true, - mfa: null - }); - - case 24: - if (error.message) { - this.alertManager.alert({ - text: error.message - }); - } - - case 25: - _context2.next = 27; - return this.setFormDataState({ - authenticating: false - }); - - case 27: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function login(_x2) { - return _login.apply(this, arguments); - } - - return login; - }() - }, { - key: "register", - value: function () { - var _register = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3() { - var confirmation, response, error; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - confirmation = this.state.formData.password_conf; - - if (!(confirmation !== this.state.formData.user_password)) { - _context3.next = 4; - break; - } - - this.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_NON_MATCHING_PASSWORDS"] - }); - return _context3.abrupt("return"); - - case 4: - _context3.next = 6; - return this.setFormDataState({ - confirmPassword: false, - status: _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_GENERATING_REGISTER_KEYS"], - authenticating: true - }); - - case 6: - _context3.next = 8; - return this.authManager.register(this.state.formData.url, this.state.formData.email, this.state.formData.user_password, this.state.formData.ephemeral); - - case 8: - response = _context3.sent; - - if (!(!response || response.error)) { - _context3.next = 18; - break; - } - - _context3.next = 12; - return this.setFormDataState({ - status: null - }); - - case 12: - error = response ? response.error : { - message: "An unknown error occured." - }; - _context3.next = 15; - return this.setFormDataState({ - authenticating: false - }); - - case 15: - this.alertManager.alert({ - text: error.message - }); - _context3.next = 21; - break; - - case 18: - _context3.next = 20; - return this.onAuthSuccess(); - - case 20: - this.syncManager.sync(); - - case 21: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function register() { - return _register.apply(this, arguments); - } - - return register; - }() - }, { - key: "mergeLocalChanged", - value: function mergeLocalChanged() { - var _this3 = this; - - if (!this.state.formData.mergeLocal) { - this.alertManager.confirm({ - text: _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_ACCOUNT_MENU_UNCHECK_MERGE"], - destructive: true, - onCancel: function onCancel() { - _this3.setFormDataState({ - mergeLocal: true - }); - } - }); - } - } - }, { - key: "onAuthSuccess", - value: function () { - var _onAuthSuccess = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee4() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - if (!this.state.formData.mergeLocal) { - _context4.next = 6; - break; - } - - this.$rootScope.$broadcast('major-data-change'); - _context4.next = 4; - return this.clearDatabaseAndRewriteAllItems({ - alternateUuids: true - }); - - case 4: - _context4.next = 9; - break; - - case 6: - this.modelManager.removeAllItemsFromMemory(); - _context4.next = 9; - return this.storageManager.clearAllModels(); - - case 9: - _context4.next = 11; - return this.setFormDataState({ - authenticating: false - }); - - case 11: - this.syncManager.refreshErroredItems(); - this.close(); - - case 13: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function onAuthSuccess() { - return _onAuthSuccess.apply(this, arguments); - } - - return onAuthSuccess; - }() - }, { - key: "openPasswordWizard", - value: function openPasswordWizard(type) { - this.close(); - this.authManager.presentPasswordWizard(type); - } - }, { - key: "openPrivilegesModal", - value: function () { - var _openPrivilegesModal = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee5() { - var _this4 = this; - - var run, needsPrivilege; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - this.close(); - - run = function run() { - _this4.privilegesManager.presentPrivilegesManagementModal(); - }; - - _context5.next = 4; - return this.privilegesManager.actionRequiresPrivilege(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_9__["PrivilegesManager"].ActionManagePrivileges); - - case 4: - needsPrivilege = _context5.sent; - - if (needsPrivilege) { - this.privilegesManager.presentPrivilegesModal(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_9__["PrivilegesManager"].ActionManagePrivileges, function () { - run(); - }); - } else { - run(); - } - - case 6: - case "end": - return _context5.stop(); - } - } - }, _callee5, this); - })); - - function openPrivilegesModal() { - return _openPrivilegesModal.apply(this, arguments); - } - - return openPrivilegesModal; - }() - /** - * Allows IndexedDB unencrypted logs to be deleted - * `clearAllModels` will remove data from backing store, - * but not from working memory See: - * https://github.com/standardnotes/desktop/issues/131 - */ - - }, { - key: "clearDatabaseAndRewriteAllItems", - value: function () { - var _clearDatabaseAndRewriteAllItems = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee6() { - var _ref, - alternateUuids, - _args6 = arguments; - - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - _ref = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : {}, alternateUuids = _ref.alternateUuids; - _context6.next = 3; - return this.storageManager.clearAllModels(); - - case 3: - _context6.next = 5; - return this.syncManager.markAllItemsDirtyAndSaveOffline(alternateUuids); - - case 5: - case "end": - return _context6.stop(); - } - } - }, _callee6, this); - })); - - function clearDatabaseAndRewriteAllItems() { - return _clearDatabaseAndRewriteAllItems.apply(this, arguments); - } - - return clearDatabaseAndRewriteAllItems; - }() - }, { - key: "destroyLocalData", - value: function destroyLocalData() { - var _this5 = this; - - this.alertManager.confirm({ - text: _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_SIGN_OUT_CONFIRMATION"], - destructive: true, - onConfirm: function () { - var _onConfirm = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee7() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee7$(_context7) { - while (1) { - switch (_context7.prev = _context7.next) { - case 0: - _context7.next = 2; - return _this5.authManager.signout(true); - - case 2: - window.location.reload(); - - case 3: - case "end": - return _context7.stop(); - } - } - }, _callee7); - })); - - function onConfirm() { - return _onConfirm.apply(this, arguments); - } - - return onConfirm; - }() - }); - } - }, { - key: "submitImportPassword", - value: function () { - var _submitImportPassword = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee8() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee8$(_context8) { - while (1) { - switch (_context8.prev = _context8.next) { - case 0: - _context8.next = 2; - return this.performImport(this.state.importData.data, this.state.importData.password); - - case 2: - case "end": - return _context8.stop(); - } - } - }, _callee8, this); - })); - - function submitImportPassword() { - return _submitImportPassword.apply(this, arguments); - } - - return submitImportPassword; - }() - }, { - key: "readFile", - value: function () { - var _readFile = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee9(file) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee9$(_context9) { - while (1) { - switch (_context9.prev = _context9.next) { - case 0: - return _context9.abrupt("return", new Promise(function (resolve, reject) { - var reader = new FileReader(); - - reader.onload = function (e) { - try { - var data = JSON.parse(e.target.result); - resolve(data); - } catch (e) { - this.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_INVALID_IMPORT_FILE"] - }); - } - }; - - reader.readAsText(file); - })); - - case 1: - case "end": - return _context9.stop(); - } - } - }, _callee9); - })); - - function readFile(_x3) { - return _readFile.apply(this, arguments); - } - - return readFile; - }() - /** - * @template - */ - - }, { - key: "importFileSelected", - value: function () { - var _importFileSelected = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee11(files) { - var _this6 = this; - - var run, needsPrivilege; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee11$(_context11) { - while (1) { - switch (_context11.prev = _context11.next) { - case 0: - run = - /*#__PURE__*/ - function () { - var _ref2 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee10() { - var file, data, element; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee10$(_context10) { - while (1) { - switch (_context10.prev = _context10.next) { - case 0: - file = files[0]; - _context10.next = 3; - return _this6.readFile(file); - - case 3: - data = _context10.sent; - - if (data) { - _context10.next = 6; - break; - } - - return _context10.abrupt("return"); - - case 6: - if (!data.auth_params) { - _context10.next = 13; - break; - } - - _context10.next = 9; - return _this6.setState({ - importData: _objectSpread({}, _this6.state.importData, { - requestPassword: true, - data: data - }) - }); - - case 9: - element = document.getElementById(ELEMENT_ID_IMPORT_PASSWORD_INPUT); - - if (element) { - element.scrollIntoView(false); - } - - _context10.next = 15; - break; - - case 13: - _context10.next = 15; - return _this6.performImport(data, null); - - case 15: - case "end": - return _context10.stop(); - } - } - }, _callee10); - })); - - return function run() { - return _ref2.apply(this, arguments); - }; - }(); - - _context11.next = 3; - return this.privilegesManager.actionRequiresPrivilege(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_9__["PrivilegesManager"].ActionManageBackups); - - case 3: - needsPrivilege = _context11.sent; - - if (needsPrivilege) { - this.privilegesManager.presentPrivilegesModal(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_9__["PrivilegesManager"].ActionManageBackups, run); - } else { - run(); - } - - case 5: - case "end": - return _context11.stop(); - } - } - }, _callee11, this); - })); - - function importFileSelected(_x4) { - return _importFileSelected.apply(this, arguments); - } - - return importFileSelected; - }() - }, { - key: "performImport", - value: function () { - var _performImport = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee12(data, password) { - var errorCount, message; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee12$(_context12) { - while (1) { - switch (_context12.prev = _context12.next) { - case 0: - _context12.next = 2; - return this.setState({ - importData: _objectSpread({}, this.state.importData, { - loading: true - }) - }); - - case 2: - _context12.next = 4; - return this.importJSONData(data, password); - - case 4: - errorCount = _context12.sent; - this.setState({ - importData: null - }); - - if (errorCount > 0) { - message = Object(_strings__WEBPACK_IMPORTED_MODULE_13__["StringImportError"])({ - errorCount: errorCount - }); - this.alertManager.alert({ - text: message - }); - } else { - this.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_IMPORT_SUCCESS"] - }); - } - - case 7: - case "end": - return _context12.stop(); - } - } - }, _callee12, this); - })); - - function performImport(_x5, _x6) { - return _performImport.apply(this, arguments); - } - - return performImport; - }() - }, { - key: "importJSONData", - value: function () { - var _importJSONData = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee13(data, password) { - var errorCount, keys, throws, _items, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, item, items, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, _item; - - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee13$(_context13) { - while (1) { - switch (_context13.prev = _context13.next) { - case 0: - errorCount = 0; - - if (!data.auth_params) { - _context13.next = 36; - break; - } - - _context13.next = 4; - return snjs__WEBPACK_IMPORTED_MODULE_11__["protocolManager"].computeEncryptionKeysForUser(password, data.auth_params); - - case 4: - keys = _context13.sent; - _context13.prev = 5; - throws = false; - _context13.next = 9; - return snjs__WEBPACK_IMPORTED_MODULE_11__["protocolManager"].decryptMultipleItems(data.items, keys, throws); - - case 9: - _items = []; - _iteratorNormalCompletion = true; - _didIteratorError = false; - _iteratorError = undefined; - _context13.prev = 13; - - for (_iterator = data.items[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - item = _step.value; - item.enc_item_key = null; - item.auth_hash = null; - - if (item.errorDecrypting) { - errorCount++; - } else { - _items.push(item); - } - } - - _context13.next = 21; - break; - - case 17: - _context13.prev = 17; - _context13.t0 = _context13["catch"](13); - _didIteratorError = true; - _iteratorError = _context13.t0; - - case 21: - _context13.prev = 21; - _context13.prev = 22; - - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - - case 24: - _context13.prev = 24; - - if (!_didIteratorError) { - _context13.next = 27; - break; - } - - throw _iteratorError; - - case 27: - return _context13.finish(24); - - case 28: - return _context13.finish(21); - - case 29: - data.items = _items; - _context13.next = 36; - break; - - case 32: - _context13.prev = 32; - _context13.t1 = _context13["catch"](5); - this.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_ERROR_DECRYPTING_IMPORT"] - }); - return _context13.abrupt("return"); - - case 36: - _context13.next = 38; - return this.modelManager.importItems(data.items); - - case 38: - items = _context13.sent; - _iteratorNormalCompletion2 = true; - _didIteratorError2 = false; - _iteratorError2 = undefined; - _context13.prev = 42; - - for (_iterator2 = items[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - _item = _step2.value; - - /** - * Don't want to activate any components during import process in - * case of exceptions breaking up the import proccess - */ - if (_item.content_type === 'SN|Component') { - _item.active = false; - } - } - - _context13.next = 50; - break; - - case 46: - _context13.prev = 46; - _context13.t2 = _context13["catch"](42); - _didIteratorError2 = true; - _iteratorError2 = _context13.t2; - - case 50: - _context13.prev = 50; - _context13.prev = 51; - - if (!_iteratorNormalCompletion2 && _iterator2.return != null) { - _iterator2.return(); - } - - case 53: - _context13.prev = 53; - - if (!_didIteratorError2) { - _context13.next = 56; - break; - } - - throw _iteratorError2; - - case 56: - return _context13.finish(53); - - case 57: - return _context13.finish(50); - - case 58: - this.syncManager.sync(); - return _context13.abrupt("return", errorCount); - - case 60: - case "end": - return _context13.stop(); - } - } - }, _callee13, this, [[5, 32], [13, 17, 21, 29], [22,, 24, 28], [42, 46, 50, 58], [51,, 53, 57]]); - })); - - function importJSONData(_x7, _x8) { - return _importJSONData.apply(this, arguments); - } - - return importJSONData; - }() - }, { - key: "downloadDataArchive", - value: function () { - var _downloadDataArchive = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee14() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee14$(_context14) { - while (1) { - switch (_context14.prev = _context14.next) { - case 0: - this.archiveManager.downloadBackup(this.state.mutable.backupEncrypted); - - case 1: - case "end": - return _context14.stop(); - } - } - }, _callee14, this); - })); - - function downloadDataArchive() { - return _downloadDataArchive.apply(this, arguments); - } - - return downloadDataArchive; - }() - }, { - key: "notesAndTagsCount", - value: function notesAndTagsCount() { - return this.modelManager.allItemsMatchingTypes(['Note', 'Tag']).length; - } - }, { - key: "encryptionStatusForNotes", - value: function encryptionStatusForNotes() { - var length = this.notesAndTagsCount(); - return length + "/" + length + " notes and tags encrypted"; - } - }, { - key: "encryptionEnabled", - value: function encryptionEnabled() { - return this.passcodeManager.hasPasscode() || !this.authManager.offline(); - } - }, { - key: "encryptionSource", - value: function encryptionSource() { - if (!this.authManager.offline()) { - return "Account keys"; - } else if (this.passcodeManager.hasPasscode()) { - return "Local Passcode"; - } else { - return null; - } - } - }, { - key: "encryptionStatusString", - value: function encryptionStatusString() { - if (!this.authManager.offline()) { - return _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_E2E_ENABLED"]; - } else if (this.passcodeManager.hasPasscode()) { - return _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_LOCAL_ENC_ENABLED"]; - } else { - return _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_ENC_NOT_ENABLED"]; - } - } - }, { - key: "reloadAutoLockInterval", - value: function () { - var _reloadAutoLockInterval = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee15() { - var interval; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee15$(_context15) { - while (1) { - switch (_context15.prev = _context15.next) { - case 0: - _context15.next = 2; - return this.passcodeManager.getAutoLockInterval(); - - case 2: - interval = _context15.sent; - this.setState({ - selectedAutoLockInterval: interval - }); - - case 4: - case "end": - return _context15.stop(); - } - } - }, _callee15, this); - })); - - function reloadAutoLockInterval() { - return _reloadAutoLockInterval.apply(this, arguments); - } - - return reloadAutoLockInterval; - }() - }, { - key: "selectAutoLockInterval", - value: function () { - var _selectAutoLockInterval = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee17(interval) { - var _this7 = this; - - var run, needsPrivilege; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee17$(_context17) { - while (1) { - switch (_context17.prev = _context17.next) { - case 0: - run = - /*#__PURE__*/ - function () { - var _ref3 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee16() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee16$(_context16) { - while (1) { - switch (_context16.prev = _context16.next) { - case 0: - _context16.next = 2; - return _this7.passcodeManager.setAutoLockInterval(interval); - - case 2: - _this7.reloadAutoLockInterval(); - - case 3: - case "end": - return _context16.stop(); - } - } - }, _callee16); - })); - - return function run() { - return _ref3.apply(this, arguments); - }; - }(); - - _context17.next = 3; - return this.privilegesManager.actionRequiresPrivilege(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_9__["PrivilegesManager"].ActionManagePasscode); - - case 3: - needsPrivilege = _context17.sent; - - if (needsPrivilege) { - this.privilegesManager.presentPrivilegesModal(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_9__["PrivilegesManager"].ActionManagePasscode, function () { - run(); - }); - } else { - run(); - } - - case 5: - case "end": - return _context17.stop(); - } - } - }, _callee17, this); - })); - - function selectAutoLockInterval(_x9) { - return _selectAutoLockInterval.apply(this, arguments); - } - - return selectAutoLockInterval; - }() - }, { - key: "hasPasscode", - value: function hasPasscode() { - return this.passcodeManager.hasPasscode(); - } - }, { - key: "addPasscodeClicked", - value: function addPasscodeClicked() { - this.setFormDataState({ - showPasscodeForm: true - }); - } - }, { - key: "submitPasscodeForm", - value: function submitPasscodeForm() { - var _this8 = this; - - var passcode = this.state.formData.passcode; - - if (passcode !== this.state.formData.confirmPasscode) { - this.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_NON_MATCHING_PASSCODES"] - }); - return; - } - - var func = this.state.formData.changingPasscode ? this.passcodeManager.changePasscode.bind(this.passcodeManager) : this.passcodeManager.setPasscode.bind(this.passcodeManager); - func(passcode, - /*#__PURE__*/ - _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee18() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee18$(_context18) { - while (1) { - switch (_context18.prev = _context18.next) { - case 0: - _context18.next = 2; - return _this8.setFormDataState({ - passcode: null, - confirmPasscode: null, - showPasscodeForm: false - }); - - case 2: - _context18.next = 4; - return _this8.authManager.offline(); - - case 4: - if (!_context18.sent) { - _context18.next = 7; - break; - } - - _this8.$rootScope.$broadcast('major-data-change'); - - _this8.clearDatabaseAndRewriteAllItems(); - - case 7: - case "end": - return _context18.stop(); - } - } - }, _callee18); - }))); - } - }, { - key: "changePasscodePressed", - value: function () { - var _changePasscodePressed = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee19() { - var _this9 = this; - - var run, needsPrivilege; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee19$(_context19) { - while (1) { - switch (_context19.prev = _context19.next) { - case 0: - run = function run() { - _this9.state.formData.changingPasscode = true; - - _this9.addPasscodeClicked(); - }; - - _context19.next = 3; - return this.privilegesManager.actionRequiresPrivilege(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_9__["PrivilegesManager"].ActionManagePasscode); - - case 3: - needsPrivilege = _context19.sent; - - if (needsPrivilege) { - this.privilegesManager.presentPrivilegesModal(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_9__["PrivilegesManager"].ActionManagePasscode, run); - } else { - run(); - } - - case 5: - case "end": - return _context19.stop(); - } - } - }, _callee19, this); - })); - - function changePasscodePressed() { - return _changePasscodePressed.apply(this, arguments); - } - - return changePasscodePressed; - }() - }, { - key: "removePasscodePressed", - value: function () { - var _removePasscodePressed = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee20() { - var _this10 = this; - - var run, needsPrivilege; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee20$(_context20) { - while (1) { - switch (_context20.prev = _context20.next) { - case 0: - run = function run() { - var signedIn = !_this10.authManager.offline(); - var message = _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_REMOVE_PASSCODE_CONFIRMATION"]; - - if (!signedIn) { - message += _strings__WEBPACK_IMPORTED_MODULE_13__["STRING_REMOVE_PASSCODE_OFFLINE_ADDENDUM"]; - } - - _this10.alertManager.confirm({ - text: message, - destructive: true, - onConfirm: function onConfirm() { - _this10.passcodeManager.clearPasscode(); - - if (_this10.authManager.offline()) { - _this10.syncManager.markAllItemsDirtyAndSaveOffline(); - } - } - }); - }; - - _context20.next = 3; - return this.privilegesManager.actionRequiresPrivilege(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_9__["PrivilegesManager"].ActionManagePasscode); - - case 3: - needsPrivilege = _context20.sent; - - if (needsPrivilege) { - this.privilegesManager.presentPrivilegesModal(_services_privilegesManager__WEBPACK_IMPORTED_MODULE_9__["PrivilegesManager"].ActionManagePasscode, run); - } else { - run(); - } - - case 5: - case "end": - return _context20.stop(); - } - } - }, _callee20, this); - })); - - function removePasscodePressed() { - return _removePasscodePressed.apply(this, arguments); - } - - return removePasscodePressed; - }() - }, { - key: "isDesktopApplication", - value: function isDesktopApplication() { - return Object(_utils__WEBPACK_IMPORTED_MODULE_8__["isDesktopApplication"])(); - } - }]); - - return AccountMenuCtrl; -}(_Controllers__WEBPACK_IMPORTED_MODULE_12__["PureCtrl"]); - -var AccountMenu = function AccountMenu() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3___default()(this, AccountMenu); - - this.restrict = 'E'; - this.template = _directives_account_menu_pug__WEBPACK_IMPORTED_MODULE_10___default.a; - this.controller = AccountMenuCtrl; - this.controllerAs = 'self'; - this.bindToController = true; - this.scope = { - closeFunction: '&' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/actionsMenu.js": -/*!****************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/actionsMenu.js ***! - \****************************************************************/ -/*! exports provided: ActionsMenu */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionsMenu", function() { return ActionsMenu; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _directives_actions_menu_pug__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! %/directives/actions-menu.pug */ "./app/assets/templates/directives/actions-menu.pug"); -/* harmony import */ var _directives_actions_menu_pug__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_directives_actions_menu_pug__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _Controllers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @Controllers */ "./app/assets/javascripts/controllers/index.js"); - - - - - - - - - - -var ActionsMenuCtrl = -/*#__PURE__*/ -function (_PureCtrl) { - ActionsMenuCtrl.$inject = ["$scope", "$timeout", "actionsManager"]; - - _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_6___default()(ActionsMenuCtrl, _PureCtrl); - - /* @ngInject */ - function ActionsMenuCtrl($scope, $timeout, actionsManager) { - var _this; - - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, ActionsMenuCtrl); - - _this = _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default()(this, _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default()(ActionsMenuCtrl).call(this, $timeout)); - _this.$timeout = $timeout; - _this.actionsManager = actionsManager; - return _this; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(ActionsMenuCtrl, [{ - key: "$onInit", - value: function $onInit() { - this.initProps({ - item: this.item - }); - this.loadExtensions(); - } - }, { - key: "loadExtensions", - value: function () { - var _loadExtensions = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { - var extensions, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, extension; - - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - extensions = this.actionsManager.extensions.sort(function (a, b) { - return a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1; - }); - _iteratorNormalCompletion = true; - _didIteratorError = false; - _iteratorError = undefined; - _context.prev = 4; - _iterator = extensions[Symbol.iterator](); - - case 6: - if (_iteratorNormalCompletion = (_step = _iterator.next()).done) { - _context.next = 15; - break; - } - - extension = _step.value; - extension.loading = true; - _context.next = 11; - return this.actionsManager.loadExtensionInContextOfItem(extension, this.props.item); - - case 11: - extension.loading = false; - - case 12: - _iteratorNormalCompletion = true; - _context.next = 6; - break; - - case 15: - _context.next = 21; - break; - - case 17: - _context.prev = 17; - _context.t0 = _context["catch"](4); - _didIteratorError = true; - _iteratorError = _context.t0; - - case 21: - _context.prev = 21; - _context.prev = 22; - - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - - case 24: - _context.prev = 24; - - if (!_didIteratorError) { - _context.next = 27; - break; - } - - throw _iteratorError; - - case 27: - return _context.finish(24); - - case 28: - return _context.finish(21); - - case 29: - this.setState({ - extensions: extensions - }); - - case 30: - case "end": - return _context.stop(); - } - } - }, _callee, this, [[4, 17, 21, 29], [22,, 24, 28]]); - })); - - function loadExtensions() { - return _loadExtensions.apply(this, arguments); - } - - return loadExtensions; - }() - }, { - key: "executeAction", - value: function () { - var _executeAction = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(action, extension) { - var result; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!(action.verb === 'nested')) { - _context2.next = 3; - break; - } - - if (!action.subrows) { - action.subrows = this.subRowsForAction(action, extension); - } else { - action.subrows = null; - } - - return _context2.abrupt("return"); - - case 3: - action.running = true; - _context2.next = 6; - return this.actionsManager.executeAction(action, extension, this.props.item); - - case 6: - result = _context2.sent; - - if (!action.error) { - _context2.next = 9; - break; - } - - return _context2.abrupt("return"); - - case 9: - action.running = false; - this.handleActionResult(action, result); - _context2.next = 13; - return this.actionsManager.loadExtensionInContextOfItem(extension, this.props.item); - - case 13: - this.setState({ - extensions: this.state.extensions - }); - - case 14: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function executeAction(_x, _x2) { - return _executeAction.apply(this, arguments); - } - - return executeAction; - }() - }, { - key: "handleActionResult", - value: function handleActionResult(action, result) { - switch (action.verb) { - case 'render': - { - var item = result.item; - this.actionsManager.presentRevisionPreviewModal(item.uuid, item.content); - } - } - } - }, { - key: "subRowsForAction", - value: function subRowsForAction(parentAction, extension) { - var _this2 = this; - - if (!parentAction.subactions) { - return null; - } - - return parentAction.subactions.map(function (subaction) { - return { - onClick: function onClick() { - _this2.executeAction(subaction, extension, parentAction); - }, - label: subaction.label, - subtitle: subaction.desc, - spinnerClass: subaction.running ? 'info' : null - }; - }); - } - }]); - - return ActionsMenuCtrl; -}(_Controllers__WEBPACK_IMPORTED_MODULE_8__["PureCtrl"]); - -var ActionsMenu = function ActionsMenu() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, ActionsMenu); - - this.restrict = 'E'; - this.template = _directives_actions_menu_pug__WEBPACK_IMPORTED_MODULE_7___default.a; - this.replace = true; - this.controller = ActionsMenuCtrl; - this.controllerAs = 'self'; - this.bindToController = true; - this.scope = { - item: '=' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/componentModal.js": -/*!*******************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/componentModal.js ***! - \*******************************************************************/ -/*! exports provided: ComponentModalCtrl, ComponentModal */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentModalCtrl", function() { return ComponentModalCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentModal", function() { return ComponentModal; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _directives_component_modal_pug__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! %/directives/component-modal.pug */ "./app/assets/templates/directives/component-modal.pug"); -/* harmony import */ var _directives_component_modal_pug__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_directives_component_modal_pug__WEBPACK_IMPORTED_MODULE_2__); - - - -var ComponentModalCtrl = -/*#__PURE__*/ -function () { - ComponentModalCtrl.$inject = ["$scope", "$element"]; - - /* @ngInject */ - function ComponentModalCtrl($scope, $element) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, ComponentModalCtrl); - - this.$element = $element; - this.$scope = $scope; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(ComponentModalCtrl, [{ - key: "dismiss", - value: function dismiss(callback) { - this.$element.remove(); - this.$scope.$destroy(); - - if (this.onDismiss && this.onDismiss()) { - this.onDismiss()(this.component); - } - - callback && callback(); - } - }]); - - return ComponentModalCtrl; -}(); -var ComponentModal = function ComponentModal() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, ComponentModal); - - this.restrict = 'E'; - this.template = _directives_component_modal_pug__WEBPACK_IMPORTED_MODULE_2___default.a; - this.controller = ComponentModalCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; - this.scope = { - show: '=', - component: '=', - callback: '=', - onDismiss: '&' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/componentView.js": -/*!******************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/componentView.js ***! - \******************************************************************/ -/*! exports provided: ComponentView */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentView", function() { return ComponentView; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _directives_component_view_pug__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! %/directives/component-view.pug */ "./app/assets/templates/directives/component-view.pug"); -/* harmony import */ var _directives_component_view_pug__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_directives_component_view_pug__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ "./app/assets/javascripts/utils.js"); - - - - - - -/** - * The maximum amount of time we'll wait for a component - * to load before displaying error - */ - -var MAX_LOAD_THRESHOLD = 4000; -var VISIBILITY_CHANGE_LISTENER_KEY = 'visibilitychange'; - -var ComponentViewCtrl = -/*#__PURE__*/ -function () { - ComponentViewCtrl.$inject = ["$scope", "$rootScope", "$timeout", "componentManager", "desktopManager", "themeManager"]; - - /* @ngInject */ - function ComponentViewCtrl($scope, $rootScope, $timeout, componentManager, desktopManager, themeManager) { - var _this = this; - - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, ComponentViewCtrl); - - this.$rootScope = $rootScope; - this.$timeout = $timeout; - this.themeManager = themeManager; - this.desktopManager = desktopManager; - this.componentManager = componentManager; - this.componentValid = true; - $scope.$watch('ctrl.component', function (component, prevComponent) { - _this.componentValueDidSet(component, prevComponent); - }); - $scope.$on('ext-reload-complete', function () { - _this.reloadStatus(false); - }); - $scope.$on('$destroy', function () { - _this.destroy(); - }); - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(ComponentViewCtrl, [{ - key: "$onInit", - value: function $onInit() { - this.registerComponentHandlers(); - this.registerPackageUpdateObserver(); - } - }, { - key: "registerPackageUpdateObserver", - value: function registerPackageUpdateObserver() { - var _this2 = this; - - this.updateObserver = this.desktopManager.registerUpdateObserver(function (component) { - if (component === _this2.component && component.active) { - _this2.reloadComponent(); - } - }); - } - }, { - key: "registerComponentHandlers", - value: function registerComponentHandlers() { - var _this3 = this; - - this.themeHandlerIdentifier = 'component-view-' + Math.random(); - this.componentManager.registerHandler({ - identifier: this.themeHandlerIdentifier, - areas: ['themes'], - activationHandler: function activationHandler(component) { - _this3.reloadThemeStatus(); - } - }); - this.identifier = 'component-view-' + Math.random(); - this.componentManager.registerHandler({ - identifier: this.identifier, - areas: [this.component.area], - activationHandler: function activationHandler(component) { - if (component !== _this3.component) { - return; - } - - _this3.$timeout(function () { - _this3.handleActivation(); - }); - }, - actionHandler: function actionHandler(component, action, data) { - if (action === 'set-size') { - _this3.componentManager.handleSetSizeEvent(component, data); - } - } - }); - } - }, { - key: "onVisibilityChange", - value: function onVisibilityChange() { - if (document.visibilityState === 'hidden') { - return; - } - - if (this.issueLoading) { - this.reloadComponent(); - } - } - }, { - key: "reloadComponent", - value: function () { - var _reloadComponent = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - this.componentValid = false; - _context.next = 3; - return this.componentManager.reloadComponent(this.component); - - case 3: - this.reloadStatus(); - - case 4: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function reloadComponent() { - return _reloadComponent.apply(this, arguments); - } - - return reloadComponent; - }() - }, { - key: "reloadStatus", - value: function reloadStatus() { - var _this4 = this; - - var doManualReload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - this.reloading = true; - var component = this.component; - var previouslyValid = this.componentValid; - var offlineRestricted = component.offlineOnly && !Object(_utils__WEBPACK_IMPORTED_MODULE_5__["isDesktopApplication"])(); - - var hasUrlError = function () { - if (Object(_utils__WEBPACK_IMPORTED_MODULE_5__["isDesktopApplication"])()) { - return !component.local_url && !component.hasValidHostedUrl(); - } else { - return !component.hasValidHostedUrl(); - } - }(); - - this.expired = component.valid_until && component.valid_until <= new Date(); - - if (!component.lockReadonly) { - component.readonly = this.expired; - } - - this.componentValid = !offlineRestricted && !hasUrlError; - - if (!this.componentValid) { - this.loading = false; - } - - if (offlineRestricted) { - this.error = 'offline-restricted'; - } else if (hasUrlError) { - this.error = 'url-missing'; - } else { - this.error = null; - } - - if (this.componentValid !== previouslyValid) { - if (this.componentValid) { - this.componentManager.reloadComponent(component, true); - } - } - - if (this.expired && doManualReload) { - this.$rootScope.$broadcast('reload-ext-dat'); - } - - this.reloadThemeStatus(); - this.$timeout(function () { - _this4.reloading = false; - }, 500); - } - }, { - key: "handleActivation", - value: function handleActivation() { - var _this5 = this; - - if (!this.component.active) { - return; - } - - var iframe = this.componentManager.iframeForComponent(this.component); - - if (!iframe) { - return; - } - - this.loading = true; - - if (this.loadTimeout) { - this.$timeout.cancel(this.loadTimeout); - } - - this.loadTimeout = this.$timeout(function () { - _this5.handleIframeLoadTimeout(); - }, MAX_LOAD_THRESHOLD); - - iframe.onload = function (event) { - _this5.handleIframeLoad(iframe); - }; - } - }, { - key: "handleIframeLoadTimeout", - value: function () { - var _handleIframeLoadTimeout = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (this.loading) { - this.loading = false; - this.issueLoading = true; - - if (!this.didAttemptReload) { - this.didAttemptReload = true; - this.reloadComponent(); - } else { - document.addEventListener(VISIBILITY_CHANGE_LISTENER_KEY, this.onVisibilityChange.bind(this)); - } - } - - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function handleIframeLoadTimeout() { - return _handleIframeLoadTimeout.apply(this, arguments); - } - - return handleIframeLoadTimeout; - }() - }, { - key: "handleIframeLoad", - value: function () { - var _handleIframeLoad = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3(iframe) { - var _this6 = this; - - var desktopError, avoidFlickerTimeout; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - desktopError = false; - - if (Object(_utils__WEBPACK_IMPORTED_MODULE_5__["isDesktopApplication"])()) { - try { - /** Accessing iframe.contentWindow.origin only allowed in desktop app. */ - if (!iframe.contentWindow.origin || iframe.contentWindow.origin === 'null') { - desktopError = true; - } - } catch (e) {} - } - - this.$timeout.cancel(this.loadTimeout); - _context3.next = 5; - return this.componentManager.registerComponentWindow(this.component, iframe.contentWindow); - - case 5: - avoidFlickerTimeout = 7; - this.$timeout(function () { - _this6.loading = false; - _this6.issueLoading = !!desktopError; - _this6.onLoad && _this6.onLoad(_this6.component); - }, avoidFlickerTimeout); - - case 7: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function handleIframeLoad(_x) { - return _handleIframeLoad.apply(this, arguments); - } - - return handleIframeLoad; - }() - }, { - key: "componentValueDidSet", - value: function componentValueDidSet(component, prevComponent) { - var dontSync = true; - - if (prevComponent && component !== prevComponent) { - this.componentManager.deactivateComponent(prevComponent, dontSync); - } - - if (component) { - this.componentManager.activateComponent(component, dontSync); - this.reloadStatus(); - } - } - }, { - key: "reloadThemeStatus", - value: function reloadThemeStatus() { - if (this.component.acceptsThemes()) { - return; - } - - if (this.themeManager.hasActiveTheme()) { - if (!this.dismissedNoThemesMessage) { - this.showNoThemesMessage = true; - } - } else { - this.showNoThemesMessage = false; - } - } - }, { - key: "dismissNoThemesMessage", - value: function dismissNoThemesMessage() { - this.showNoThemesMessage = false; - this.dismissedNoThemesMessage = true; - } - }, { - key: "disableActiveTheme", - value: function disableActiveTheme() { - this.themeManager.deactivateAllThemes(); - this.dismissNoThemesMessage(); - } - }, { - key: "getUrl", - value: function getUrl() { - var url = this.componentManager.urlForComponent(this.component); - this.component.runningLocally = url === this.component.local_url; - return url; - } - }, { - key: "destroy", - value: function destroy() { - this.componentManager.deregisterHandler(this.themeHandlerIdentifier); - this.componentManager.deregisterHandler(this.identifier); - - if (this.component && !this.manualDealloc) { - var dontSync = true; - this.componentManager.deactivateComponent(this.component, dontSync); - } - - this.desktopManager.deregisterUpdateObserver(this.updateObserver); - document.removeEventListener(VISIBILITY_CHANGE_LISTENER_KEY, this.onVisibilityChange.bind(this)); - } - }]); - - return ComponentViewCtrl; -}(); - -var ComponentView = function ComponentView() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, ComponentView); - - this.restrict = 'E'; - this.template = _directives_component_view_pug__WEBPACK_IMPORTED_MODULE_4___default.a; - this.scope = { - component: '=', - onLoad: '=?', - manualDealloc: '=?' - }; - this.controller = ComponentViewCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/conflictResolutionModal.js": -/*!****************************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/conflictResolutionModal.js ***! - \****************************************************************************/ -/*! exports provided: ConflictResolutionModal */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConflictResolutionModal", function() { return ConflictResolutionModal; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _directives_conflict_resolution_modal_pug__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! %/directives/conflict-resolution-modal.pug */ "./app/assets/templates/directives/conflict-resolution-modal.pug"); -/* harmony import */ var _directives_conflict_resolution_modal_pug__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_directives_conflict_resolution_modal_pug__WEBPACK_IMPORTED_MODULE_2__); - - - - -var ConflictResolutionCtrl = -/*#__PURE__*/ -function () { - ConflictResolutionCtrl.$inject = ["$element", "alertManager", "archiveManager", "modelManager", "syncManager"]; - - /* @ngInject */ - function ConflictResolutionCtrl($element, alertManager, archiveManager, modelManager, syncManager) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, ConflictResolutionCtrl); - - this.$element = $element; - this.alertManager = alertManager; - this.archiveManager = archiveManager; - this.modelManager = modelManager; - this.syncManager = syncManager; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(ConflictResolutionCtrl, [{ - key: "$onInit", - value: function $onInit() { - this.contentType = this.item1.content_type; - this.item1Content = this.createContentString(this.item1); - this.item2Content = this.createContentString(this.item2); - } - }, { - key: "createContentString", - value: function createContentString(item) { - var data = Object.assign({ - created_at: item.created_at, - updated_at: item.updated_at - }, item.content); - return JSON.stringify(data, null, 2); - } - }, { - key: "keepItem1", - value: function keepItem1() { - var _this = this; - - this.alertManager.confirm({ - text: "Are you sure you want to delete the item on the right?", - destructive: true, - onConfirm: function onConfirm() { - _this.modelManager.setItemToBeDeleted(_this.item2); - - _this.syncManager.sync().then(function () { - _this.applyCallback(); - }); - - _this.dismiss(); - } - }); - } - }, { - key: "keepItem2", - value: function keepItem2() { - var _this2 = this; - - this.alertManager.confirm({ - text: "Are you sure you want to delete the item on the left?", - destructive: true, - onConfirm: function onConfirm() { - _this2.modelManager.setItemToBeDeleted(_this2.item1); - - _this2.syncManager.sync().then(function () { - _this2.applyCallback(); - }); - - _this2.dismiss(); - } - }); - } - }, { - key: "keepBoth", - value: function keepBoth() { - this.applyCallback(); - this.dismiss(); - } - }, { - key: "export", - value: function _export() { - this.archiveManager.downloadBackupOfItems([this.item1, this.item2], true); - } - }, { - key: "applyCallback", - value: function applyCallback() { - this.callback && this.callback(); - } - }, { - key: "dismiss", - value: function dismiss() { - this.$element.remove(); - } - }]); - - return ConflictResolutionCtrl; -}(); - -var ConflictResolutionModal = function ConflictResolutionModal() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, ConflictResolutionModal); - - this.restrict = 'E'; - this.template = _directives_conflict_resolution_modal_pug__WEBPACK_IMPORTED_MODULE_2___default.a; - this.controller = ConflictResolutionCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; - this.scope = { - item1: '=', - item2: '=', - callback: '=' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/editorMenu.js": -/*!***************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/editorMenu.js ***! - \***************************************************************/ -/*! exports provided: EditorMenu */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EditorMenu", function() { return EditorMenu; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils */ "./app/assets/javascripts/utils.js"); -/* harmony import */ var _directives_editor_menu_pug__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! %/directives/editor-menu.pug */ "./app/assets/templates/directives/editor-menu.pug"); -/* harmony import */ var _directives_editor_menu_pug__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_directives_editor_menu_pug__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _Controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @Controllers */ "./app/assets/javascripts/controllers/index.js"); - - - - - - - - - -var EditorMenuCtrl = -/*#__PURE__*/ -function (_PureCtrl) { - EditorMenuCtrl.$inject = ["$timeout", "componentManager", "modelManager", "syncManager"]; - - _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4___default()(EditorMenuCtrl, _PureCtrl); - - /* @ngInject */ - function EditorMenuCtrl($timeout, componentManager, modelManager, syncManager) { - var _this; - - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, EditorMenuCtrl); - - _this = _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2___default()(this, _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3___default()(EditorMenuCtrl).call(this, $timeout)); - _this.$timeout = $timeout; - _this.componentManager = componentManager; - _this.modelManager = modelManager; - _this.syncManager = syncManager; - _this.state = { - isDesktop: Object(_utils__WEBPACK_IMPORTED_MODULE_5__["isDesktopApplication"])() - }; - return _this; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(EditorMenuCtrl, [{ - key: "$onInit", - value: function $onInit() { - var editors = this.componentManager.componentsForArea('editor-editor').sort(function (a, b) { - return a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1; - }); - var defaultEditor = editors.filter(function (e) { - return e.isDefaultEditor(); - })[0]; - this.setState({ - editors: editors, - defaultEditor: defaultEditor - }); - } - }, { - key: "selectComponent", - value: function selectComponent(component) { - var _this2 = this; - - if (component) { - if (component.content.conflict_of) { - component.content.conflict_of = null; - this.modelManager.setItemDirty(component, true); - this.syncManager.sync(); - } - } - - this.$timeout(function () { - _this2.callback()(component); - }); - } - }, { - key: "toggleDefaultForEditor", - value: function toggleDefaultForEditor(editor) { - if (this.defaultEditor === editor) { - this.removeEditorDefault(editor); - } else { - this.makeEditorDefault(editor); - } - } - }, { - key: "offlineAvailableForComponent", - value: function offlineAvailableForComponent(component) { - return component.local_url && this.state.isDesktop; - } - }, { - key: "makeEditorDefault", - value: function makeEditorDefault(component) { - var currentDefault = this.componentManager.componentsForArea('editor-editor').filter(function (e) { - return e.isDefaultEditor(); - })[0]; - - if (currentDefault) { - currentDefault.setAppDataItem('defaultEditor', false); - this.modelManager.setItemDirty(currentDefault); - } - - component.setAppDataItem('defaultEditor', true); - this.modelManager.setItemDirty(component); - this.syncManager.sync(); - this.setState({ - defaultEditor: component - }); - } - }, { - key: "removeEditorDefault", - value: function removeEditorDefault(component) { - component.setAppDataItem('defaultEditor', false); - this.modelManager.setItemDirty(component); - this.syncManager.sync(); - this.setState({ - defaultEditor: null - }); - } - }, { - key: "shouldDisplayRunningLocallyLabel", - value: function shouldDisplayRunningLocallyLabel(component) { - if (!component.runningLocally) { - return false; - } - - if (component === this.selectedEditor) { - return true; - } else { - return false; - } - } - }]); - - return EditorMenuCtrl; -}(_Controllers__WEBPACK_IMPORTED_MODULE_7__["PureCtrl"]); - -var EditorMenu = function EditorMenu() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, EditorMenu); - - this.restrict = 'E'; - this.template = _directives_editor_menu_pug__WEBPACK_IMPORTED_MODULE_6___default.a; - this.controller = EditorMenuCtrl; - this.controllerAs = 'self'; - this.bindToController = true; - this.scope = { - callback: '&', - selectedEditor: '=', - currentItem: '=' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/index.js": -/*!**********************************************************!*\ - !*** ./app/assets/javascripts/directives/views/index.js ***! - \**********************************************************/ -/*! exports provided: AccountMenu, ActionsMenu, ComponentModal, ComponentView, ConflictResolutionModal, EditorMenu, InputModal, MenuRow, PanelResizer, PasswordWizard, PermissionsModal, PrivilegesAuthModal, PrivilegesManagementModal, RevisionPreviewModal, SessionHistoryMenu, SyncResolutionMenu */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _accountMenu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./accountMenu */ "./app/assets/javascripts/directives/views/accountMenu.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AccountMenu", function() { return _accountMenu__WEBPACK_IMPORTED_MODULE_0__["AccountMenu"]; }); - -/* harmony import */ var _actionsMenu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./actionsMenu */ "./app/assets/javascripts/directives/views/actionsMenu.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionsMenu", function() { return _actionsMenu__WEBPACK_IMPORTED_MODULE_1__["ActionsMenu"]; }); - -/* harmony import */ var _componentModal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./componentModal */ "./app/assets/javascripts/directives/views/componentModal.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentModal", function() { return _componentModal__WEBPACK_IMPORTED_MODULE_2__["ComponentModal"]; }); - -/* harmony import */ var _componentView__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./componentView */ "./app/assets/javascripts/directives/views/componentView.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentView", function() { return _componentView__WEBPACK_IMPORTED_MODULE_3__["ComponentView"]; }); - -/* harmony import */ var _conflictResolutionModal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./conflictResolutionModal */ "./app/assets/javascripts/directives/views/conflictResolutionModal.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConflictResolutionModal", function() { return _conflictResolutionModal__WEBPACK_IMPORTED_MODULE_4__["ConflictResolutionModal"]; }); - -/* harmony import */ var _editorMenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./editorMenu */ "./app/assets/javascripts/directives/views/editorMenu.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EditorMenu", function() { return _editorMenu__WEBPACK_IMPORTED_MODULE_5__["EditorMenu"]; }); - -/* harmony import */ var _inputModal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./inputModal */ "./app/assets/javascripts/directives/views/inputModal.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputModal", function() { return _inputModal__WEBPACK_IMPORTED_MODULE_6__["InputModal"]; }); - -/* harmony import */ var _menuRow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./menuRow */ "./app/assets/javascripts/directives/views/menuRow.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MenuRow", function() { return _menuRow__WEBPACK_IMPORTED_MODULE_7__["MenuRow"]; }); - -/* harmony import */ var _panelResizer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./panelResizer */ "./app/assets/javascripts/directives/views/panelResizer.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PanelResizer", function() { return _panelResizer__WEBPACK_IMPORTED_MODULE_8__["PanelResizer"]; }); - -/* harmony import */ var _passwordWizard__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./passwordWizard */ "./app/assets/javascripts/directives/views/passwordWizard.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PasswordWizard", function() { return _passwordWizard__WEBPACK_IMPORTED_MODULE_9__["PasswordWizard"]; }); - -/* harmony import */ var _permissionsModal__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./permissionsModal */ "./app/assets/javascripts/directives/views/permissionsModal.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PermissionsModal", function() { return _permissionsModal__WEBPACK_IMPORTED_MODULE_10__["PermissionsModal"]; }); - -/* harmony import */ var _privilegesAuthModal__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./privilegesAuthModal */ "./app/assets/javascripts/directives/views/privilegesAuthModal.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PrivilegesAuthModal", function() { return _privilegesAuthModal__WEBPACK_IMPORTED_MODULE_11__["PrivilegesAuthModal"]; }); - -/* harmony import */ var _privilegesManagementModal__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./privilegesManagementModal */ "./app/assets/javascripts/directives/views/privilegesManagementModal.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PrivilegesManagementModal", function() { return _privilegesManagementModal__WEBPACK_IMPORTED_MODULE_12__["PrivilegesManagementModal"]; }); - -/* harmony import */ var _revisionPreviewModal__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./revisionPreviewModal */ "./app/assets/javascripts/directives/views/revisionPreviewModal.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RevisionPreviewModal", function() { return _revisionPreviewModal__WEBPACK_IMPORTED_MODULE_13__["RevisionPreviewModal"]; }); - -/* harmony import */ var _sessionHistoryMenu__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./sessionHistoryMenu */ "./app/assets/javascripts/directives/views/sessionHistoryMenu.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SessionHistoryMenu", function() { return _sessionHistoryMenu__WEBPACK_IMPORTED_MODULE_14__["SessionHistoryMenu"]; }); - -/* harmony import */ var _syncResolutionMenu__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./syncResolutionMenu */ "./app/assets/javascripts/directives/views/syncResolutionMenu.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SyncResolutionMenu", function() { return _syncResolutionMenu__WEBPACK_IMPORTED_MODULE_15__["SyncResolutionMenu"]; }); - - - - - - - - - - - - - - - - - - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/inputModal.js": -/*!***************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/inputModal.js ***! - \***************************************************************/ -/*! exports provided: InputModal */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputModal", function() { return InputModal; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _directives_input_modal_pug__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! %/directives/input-modal.pug */ "./app/assets/templates/directives/input-modal.pug"); -/* harmony import */ var _directives_input_modal_pug__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_directives_input_modal_pug__WEBPACK_IMPORTED_MODULE_2__); - - - - -var InputModalCtrl = -/*#__PURE__*/ -function () { - InputModalCtrl.$inject = ["$scope", "$element"]; - - /* @ngInject */ - function InputModalCtrl($scope, $element) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, InputModalCtrl); - - this.$element = $element; - this.formData = {}; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(InputModalCtrl, [{ - key: "dismiss", - value: function dismiss() { - this.$element.remove(); - this.$scope.$destroy(); - } - }, { - key: "submit", - value: function submit() { - this.callback()(this.formData.input); - this.dismiss(); - } - }]); - - return InputModalCtrl; -}(); - -var InputModal = function InputModal() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, InputModal); - - this.restrict = 'E'; - this.template = _directives_input_modal_pug__WEBPACK_IMPORTED_MODULE_2___default.a; - this.controller = InputModalCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; - this.scope = { - type: '=', - title: '=', - message: '=', - placeholder: '=', - callback: '&' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/menuRow.js": -/*!************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/menuRow.js ***! - \************************************************************/ -/*! exports provided: MenuRow */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MenuRow", function() { return MenuRow; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _directives_menu_row_pug__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! %/directives/menu-row.pug */ "./app/assets/templates/directives/menu-row.pug"); -/* harmony import */ var _directives_menu_row_pug__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_directives_menu_row_pug__WEBPACK_IMPORTED_MODULE_2__); - - - - -var MenuRowCtrl = -/*#__PURE__*/ -function () { - function MenuRowCtrl() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, MenuRowCtrl); - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(MenuRowCtrl, [{ - key: "onClick", - value: function onClick($event) { - if (this.disabled) { - return; - } - - $event.stopPropagation(); - this.action(); - } - }, { - key: "clickAccessoryButton", - value: function clickAccessoryButton($event) { - if (this.disabled) { - return; - } - - $event.stopPropagation(); - this.buttonAction(); - } - }]); - - return MenuRowCtrl; -}(); - -var MenuRow = function MenuRow() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, MenuRow); - - this.restrict = 'E'; - this.transclude = true; - this.template = _directives_menu_row_pug__WEBPACK_IMPORTED_MODULE_2___default.a; - this.controller = MenuRowCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; - this.scope = { - action: '&', - buttonAction: '&', - buttonClass: '=', - buttonText: '=', - desc: '=', - disabled: '=', - circle: '=', - circleAlign: '=', - faded: '=', - hasButton: '=', - label: '=', - spinnerClass: '=', - stylekitClass: '=', - subRows: '=', - subtitle: '=' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/panelResizer.js": -/*!*****************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/panelResizer.js ***! - \*****************************************************************/ -/*! exports provided: PanelResizer */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PanelResizer", function() { return PanelResizer; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js"); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _directives_panel_resizer_pug__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! %/directives/panel-resizer.pug */ "./app/assets/templates/directives/panel-resizer.pug"); -/* harmony import */ var _directives_panel_resizer_pug__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_directives_panel_resizer_pug__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils */ "./app/assets/javascripts/utils.js"); - - - - - -var PANEL_SIDE_RIGHT = 'right'; -var PANEL_SIDE_LEFT = 'left'; -var MOUSE_EVENT_MOVE = 'mousemove'; -var MOUSE_EVENT_DOWN = 'mousedown'; -var MOUSE_EVENT_UP = 'mouseup'; -var WINDOW_EVENT_RESIZE = 'resize'; -var PANEL_CSS_CLASS_HOVERABLE = 'hoverable'; -var PANEL_CSS_CLASS_ALWAYS_VISIBLE = 'always-visible'; -var PANEL_CSS_CLASS_DRAGGING = 'dragging'; -var PANEL_CSS_CLASS_NO_SELECTION = 'no-selection'; -var PANEL_CSS_CLASS_COLLAPSED = 'collapsed'; -var PANEL_CSS_CLASS_ANIMATE_OPACITY = 'animate-opacity'; - -var PanelResizerCtrl = -/*#__PURE__*/ -function () { - PanelResizerCtrl.$inject = ["$compile", "$element", "$scope", "$timeout"]; - - /* @ngInject */ - function PanelResizerCtrl($compile, $element, $scope, $timeout) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, PanelResizerCtrl); - - this.$compile = $compile; - this.$element = $element; - this.$scope = $scope; - this.$timeout = $timeout; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(PanelResizerCtrl, [{ - key: "$onInit", - value: function $onInit() { - this.configureControl(); - this.configureDefaults(); - this.addDoubleClickHandler(); - this.reloadDefaultValues(); - this.addMouseDownListener(); - this.addMouseMoveListener(); - this.addMouseUpListener(); - } - }, { - key: "configureControl", - value: function configureControl() { - var _this = this; - - this.control.setWidth = function (value) { - _this.setWidth(value, true); - }; - - this.control.setLeft = function (value) { - _this.setLeft(value); - }; - - this.control.flash = function () { - _this.flash(); - }; - - this.control.isCollapsed = function () { - return _this.isCollapsed(); - }; - } - }, { - key: "configureDefaults", - value: function configureDefaults() { - this.panel = document.getElementById(this.panelId); - - if (!this.panel) { - console.error('Panel not found for', this.panelId); - } - - this.resizerColumn = this.$element[0]; - this.currentMinWidth = this.minWidth || this.resizerColumn.offsetWidth; - this.pressed = false; - this.startWidth = this.panel.scrollWidth; - this.lastDownX = 0; - this.collapsed = false; - this.lastWidth = this.startWidth; - this.startLeft = this.panel.offsetLeft; - this.lastLeft = this.startLeft; - this.appFrame = null; - this.widthBeforeLastDblClick = 0; - - if (this.property === PANEL_SIDE_RIGHT) { - this.configureRightPanel(); - } - - if (this.alwaysVisible) { - this.resizerColumn.classList.add(PANEL_CSS_CLASS_ALWAYS_VISIBLE); - } - - if (this.hoverable) { - this.resizerColumn.classList.add(PANEL_CSS_CLASS_HOVERABLE); - } - } - }, { - key: "configureRightPanel", - value: function configureRightPanel() { - var _this2 = this; - - var handleResize = Object(_utils__WEBPACK_IMPORTED_MODULE_4__["debounce"])(function (event) { - _this2.reloadDefaultValues(); - - _this2.handleWidthEvent(); - - _this2.$timeout(function () { - _this2.finishSettingWidth(); - }); - }, 250); - window.addEventListener(WINDOW_EVENT_RESIZE, handleResize); - this.$scope.$on('$destroy', function () { - window.removeEventListener(WINDOW_EVENT_RESIZE, handleResize); - }); - } - }, { - key: "getParentRect", - value: function getParentRect() { - return this.panel.parentNode.getBoundingClientRect(); - } - }, { - key: "reloadDefaultValues", - value: function reloadDefaultValues() { - this.startWidth = this.isAtMaxWidth() ? this.getParentRect().width : this.panel.scrollWidth; - this.lastWidth = this.startWidth; - this.appFrame = document.getElementById('app').getBoundingClientRect(); - } - }, { - key: "addDoubleClickHandler", - value: function addDoubleClickHandler() { - var _this3 = this; - - this.resizerColumn.ondblclick = function () { - _this3.$timeout(function () { - var preClickCollapseState = _this3.isCollapsed(); - - if (preClickCollapseState) { - _this3.setWidth(_this3.widthBeforeLastDblClick || _this3.defaultWidth); - } else { - _this3.widthBeforeLastDblClick = _this3.lastWidth; - - _this3.setWidth(_this3.currentMinWidth); - } - - _this3.finishSettingWidth(); - - var newCollapseState = !preClickCollapseState; - - _this3.onResizeFinish()(_this3.lastWidth, _this3.lastLeft, _this3.isAtMaxWidth(), newCollapseState); - }); - }; - } - }, { - key: "addMouseDownListener", - value: function addMouseDownListener() { - var _this4 = this; - - this.resizerColumn.addEventListener(MOUSE_EVENT_DOWN, function (event) { - _this4.addInvisibleOverlay(); - - _this4.pressed = true; - _this4.lastDownX = event.clientX; - _this4.startWidth = _this4.panel.scrollWidth; - _this4.startLeft = _this4.panel.offsetLeft; - - _this4.panel.classList.add(PANEL_CSS_CLASS_NO_SELECTION); - - if (_this4.hoverable) { - _this4.resizerColumn.classList.add(PANEL_CSS_CLASS_DRAGGING); - } - }); - } - }, { - key: "addMouseMoveListener", - value: function addMouseMoveListener() { - var _this5 = this; - - document.addEventListener(MOUSE_EVENT_MOVE, function (event) { - if (!_this5.pressed) { - return; - } - - event.preventDefault(); - - if (_this5.property && _this5.property === PANEL_SIDE_LEFT) { - _this5.handleLeftEvent(event); - } else { - _this5.handleWidthEvent(event); - } - }); - } - }, { - key: "handleWidthEvent", - value: function handleWidthEvent(event) { - var x; - - if (event) { - x = event.clientX; - } else { - /** Coming from resize event */ - x = 0; - this.lastDownX = 0; - } - - var deltaX = x - this.lastDownX; - var newWidth = this.startWidth + deltaX; - this.setWidth(newWidth, false); - - if (this.onResize()) { - this.onResize()(this.lastWidth, this.panel); - } - } - }, { - key: "handleLeftEvent", - value: function handleLeftEvent(event) { - var panelRect = this.panel.getBoundingClientRect(); - var x = event.clientX || panelRect.x; - var deltaX = x - this.lastDownX; - var newLeft = this.startLeft + deltaX; - - if (newLeft < 0) { - newLeft = 0; - deltaX = -this.startLeft; - } - - var parentRect = this.getParentRect(); - var newWidth = this.startWidth - deltaX; - - if (newWidth < this.currentMinWidth) { - newWidth = this.currentMinWidth; - } - - if (newWidth > parentRect.width) { - newWidth = parentRect.width; - } - - if (newLeft + newWidth > parentRect.width) { - newLeft = parentRect.width - newWidth; - } - - this.setLeft(newLeft, false); - this.setWidth(newWidth, false); - } - }, { - key: "addMouseUpListener", - value: function addMouseUpListener() { - var _this6 = this; - - document.addEventListener(MOUSE_EVENT_UP, function (event) { - _this6.removeInvisibleOverlay(); - - if (_this6.pressed) { - _this6.pressed = false; - - _this6.resizerColumn.classList.remove(PANEL_CSS_CLASS_DRAGGING); - - _this6.panel.classList.remove(PANEL_CSS_CLASS_NO_SELECTION); - - var isMaxWidth = _this6.isAtMaxWidth(); - - if (_this6.onResizeFinish) { - _this6.onResizeFinish()(_this6.lastWidth, _this6.lastLeft, isMaxWidth, _this6.isCollapsed()); - } - - _this6.finishSettingWidth(); - } - }); - } - }, { - key: "isAtMaxWidth", - value: function isAtMaxWidth() { - return Math.round(this.lastWidth + this.lastLeft) === Math.round(this.getParentRect().width); - } - }, { - key: "isCollapsed", - value: function isCollapsed() { - return this.lastWidth <= this.currentMinWidth; - } - }, { - key: "setWidth", - value: function setWidth(width, finish) { - if (width < this.currentMinWidth) { - width = this.currentMinWidth; - } - - var parentRect = this.getParentRect(); - - if (width > parentRect.width) { - width = parentRect.width; - } - - var maxWidth = this.appFrame.width - this.panel.getBoundingClientRect().x; - - if (width > maxWidth) { - width = maxWidth; - } - - if (Math.round(width + this.lastLeft) === Math.round(parentRect.width)) { - this.panel.style.width = "calc(100% - ".concat(this.lastLeft, "px)"); - this.panel.style.flexBasis = "calc(100% - ".concat(this.lastLeft, "px)"); - } else { - this.panel.style.flexBasis = width + 'px'; - this.panel.style.width = width + 'px'; - } - - this.lastWidth = width; - - if (finish) { - this.finishSettingWidth(); - } - } - }, { - key: "setLeft", - value: function setLeft(left) { - this.panel.style.left = left + 'px'; - this.lastLeft = left; - } - }, { - key: "finishSettingWidth", - value: function finishSettingWidth() { - if (!this.collapsable) { - return; - } - - this.collapsed = this.isCollapsed(); - - if (this.collapsed) { - this.resizerColumn.classList.add(PANEL_CSS_CLASS_COLLAPSED); - } else { - this.resizerColumn.classList.remove(PANEL_CSS_CLASS_COLLAPSED); - } - } - /** - * If an iframe is displayed adjacent to our panel, and the mouse exits over the iframe, - * document[onmouseup] is not triggered because the document is no longer the same over - * the iframe. We add an invisible overlay while resizing so that the mouse context - * remains in our main document. - */ - - }, { - key: "addInvisibleOverlay", - value: function addInvisibleOverlay() { - if (this.overlay) { - return; - } - - this.overlay = this.$compile("
")(this.$scope); - angular__WEBPACK_IMPORTED_MODULE_2___default.a.element(document.body).prepend(this.overlay); - } - }, { - key: "removeInvisibleOverlay", - value: function removeInvisibleOverlay() { - if (this.overlay) { - this.overlay.remove(); - this.overlay = null; - } - } - }, { - key: "flash", - value: function flash() { - var _this7 = this; - - var FLASH_DURATION = 3000; - this.resizerColumn.classList.add(PANEL_CSS_CLASS_ANIMATE_OPACITY); - this.$timeout(function () { - _this7.resizerColumn.classList.remove(PANEL_CSS_CLASS_ANIMATE_OPACITY); - }, FLASH_DURATION); - } - }]); - - return PanelResizerCtrl; -}(); - -var PanelResizer = function PanelResizer() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, PanelResizer); - - this.restrict = 'E'; - this.template = _directives_panel_resizer_pug__WEBPACK_IMPORTED_MODULE_3___default.a; - this.controller = PanelResizerCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; - this.scope = { - alwaysVisible: '=', - collapsable: '=', - control: '=', - defaultWidth: '=', - hoverable: '=', - index: '=', - minWidth: '=', - onResize: '&', - onResizeFinish: '&', - panelId: '=', - property: '=' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/passwordWizard.js": -/*!*******************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/passwordWizard.js ***! - \*******************************************************************/ -/*! exports provided: PasswordWizard */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PasswordWizard", function() { return PasswordWizard; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! snjs */ "./node_modules/snjs/dist/snjs.js"); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(snjs__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _directives_password_wizard_pug__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! %/directives/password-wizard.pug */ "./app/assets/templates/directives/password-wizard.pug"); -/* harmony import */ var _directives_password_wizard_pug__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_directives_password_wizard_pug__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/strings */ "./app/assets/javascripts/strings.js"); - - - - - - - -var DEFAULT_CONTINUE_TITLE = "Continue"; -var Steps = { - IntroStep: 0, - BackupStep: 1, - SignoutStep: 2, - PasswordStep: 3, - SyncStep: 4, - FinishStep: 5 -}; - -var PasswordWizardCtrl = -/*#__PURE__*/ -function () { - PasswordWizardCtrl.$inject = ["$element", "$scope", "$timeout", "alertManager", "archiveManager", "authManager", "modelManager", "syncManager"]; - - /* @ngInject */ - function PasswordWizardCtrl($element, $scope, $timeout, alertManager, archiveManager, authManager, modelManager, syncManager) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, PasswordWizardCtrl); - - this.$element = $element; - this.$timeout = $timeout; - this.$scope = $scope; - this.alertManager = alertManager; - this.archiveManager = archiveManager; - this.authManager = authManager; - this.modelManager = modelManager; - this.syncManager = syncManager; - this.registerWindowUnloadStopper(); - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(PasswordWizardCtrl, [{ - key: "$onInit", - value: function $onInit() { - this.syncStatus = this.syncManager.syncStatus; - this.formData = {}; - this.configureDefaults(); - } - }, { - key: "configureDefaults", - value: function configureDefaults() { - if (this.type === 'change-pw') { - this.title = "Change Password"; - this.changePassword = true; - } else if (this.type === 'upgrade-security') { - this.title = "Security Update"; - this.securityUpdate = true; - } - - this.continueTitle = DEFAULT_CONTINUE_TITLE; - this.step = Steps.IntroStep; - } - /** Confirms with user before closing tab */ - - }, { - key: "registerWindowUnloadStopper", - value: function registerWindowUnloadStopper() { - window.onbeforeunload = function (e) { - return true; - }; - - this.$scope.$on("$destroy", function () { - window.onbeforeunload = null; - }); - } - }, { - key: "titleForStep", - value: function titleForStep(step) { - switch (step) { - case Steps.BackupStep: - return "Download a backup of your data"; - - case Steps.SignoutStep: - return "Sign out of all your devices"; - - case Steps.PasswordStep: - return this.changePassword ? "Password information" : "Enter your current password"; - - case Steps.SyncStep: - return "Encrypt and sync data with new keys"; - - case Steps.FinishStep: - return "Sign back in to your devices"; - - default: - return null; - } - } - }, { - key: "nextStep", - value: function () { - var _nextStep = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { - var _this = this; - - var next, preprocessor; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!(this.lockContinue || this.isContinuing)) { - _context.next = 2; - break; - } - - return _context.abrupt("return"); - - case 2: - this.isContinuing = true; - - if (!(this.step === Steps.FinishStep)) { - _context.next = 6; - break; - } - - this.dismiss(); - return _context.abrupt("return"); - - case 6: - next = function next() { - _this.step++; - - _this.initializeStep(_this.step); - - _this.isContinuing = false; - }; - - preprocessor = this.preprocessorForStep(this.step); - - if (!preprocessor) { - _context.next = 13; - break; - } - - _context.next = 11; - return preprocessor().then(next).catch(function () { - _this.isContinuing = false; - }); - - case 11: - _context.next = 14; - break; - - case 13: - next(); - - case 14: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function nextStep() { - return _nextStep.apply(this, arguments); - } - - return nextStep; - }() - }, { - key: "preprocessorForStep", - value: function preprocessorForStep(step) { - var _this2 = this; - - if (step === Steps.PasswordStep) { - return ( - /*#__PURE__*/ - _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2() { - var success; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _this2.showSpinner = true; - _this2.continueTitle = "Generating Keys..."; - _context2.next = 4; - return _this2.validateCurrentPassword(); - - case 4: - success = _context2.sent; - _this2.showSpinner = false; - _this2.continueTitle = DEFAULT_CONTINUE_TITLE; - return _context2.abrupt("return", success); - - case 8: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })) - ); - } - } - }, { - key: "initializeStep", - value: function () { - var _initializeStep = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3(step) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - if (!(step === Steps.SyncStep)) { - _context3.next = 5; - break; - } - - _context3.next = 3; - return this.initializeSyncingStep(); - - case 3: - _context3.next = 6; - break; - - case 5: - if (step === Steps.FinishStep) { - this.continueTitle = "Finish"; - } - - case 6: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function initializeStep(_x) { - return _initializeStep.apply(this, arguments); - } - - return initializeStep; - }() - }, { - key: "initializeSyncingStep", - value: function () { - var _initializeSyncingStep = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee4() { - var passwordSuccess, syncSuccess; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - this.lockContinue = true; - this.formData.status = "Processing encryption keys..."; - this.formData.processing = true; - _context4.next = 5; - return this.processPasswordChange(); - - case 5: - passwordSuccess = _context4.sent; - this.formData.statusError = !passwordSuccess; - this.formData.processing = passwordSuccess; - - if (passwordSuccess) { - _context4.next = 11; - break; - } - - this.formData.status = "Unable to process your password. Please try again."; - return _context4.abrupt("return"); - - case 11: - this.formData.status = "Encrypting and syncing data with new keys..."; - _context4.next = 14; - return this.resyncData(); - - case 14: - syncSuccess = _context4.sent; - this.formData.statusError = !syncSuccess; - this.formData.processing = !syncSuccess; - - if (syncSuccess) { - this.lockContinue = false; - - if (this.changePassword) { - this.formData.status = "Successfully changed password and synced all items."; - } else if (this.securityUpdate) { - this.formData.status = "Successfully performed security update and synced all items."; - } - } else { - this.formData.status = _strings__WEBPACK_IMPORTED_MODULE_6__["STRING_FAILED_PASSWORD_CHANGE"]; - } - - case 18: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function initializeSyncingStep() { - return _initializeSyncingStep.apply(this, arguments); - } - - return initializeSyncingStep; - }() - }, { - key: "validateCurrentPassword", - value: function () { - var _validateCurrentPassword = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee5() { - var currentPassword, newPass, authParams, password, keys, success; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - currentPassword = this.formData.currentPassword; - newPass = this.securityUpdate ? currentPassword : this.formData.newPassword; - - if (!(!currentPassword || currentPassword.length === 0)) { - _context5.next = 5; - break; - } - - this.alertManager.alert({ - text: "Please enter your current password." - }); - return _context5.abrupt("return", false); - - case 5: - if (!this.changePassword) { - _context5.next = 13; - break; - } - - if (!(!newPass || newPass.length === 0)) { - _context5.next = 9; - break; - } - - this.alertManager.alert({ - text: "Please enter a new password." - }); - return _context5.abrupt("return", false); - - case 9: - if (!(newPass !== this.formData.newPasswordConfirmation)) { - _context5.next = 13; - break; - } - - this.alertManager.alert({ - text: "Your new password does not match its confirmation." - }); - this.formData.status = null; - return _context5.abrupt("return", false); - - case 13: - if (this.authManager.user.email) { - _context5.next = 17; - break; - } - - this.alertManager.alert({ - text: "We don't have your email stored. Please log out then log back in to fix this issue." - }); - this.formData.status = null; - return _context5.abrupt("return", false); - - case 17: - _context5.next = 19; - return this.authManager.getAuthParams(); - - case 19: - authParams = _context5.sent; - password = this.formData.currentPassword; - _context5.next = 23; - return snjs__WEBPACK_IMPORTED_MODULE_4__["protocolManager"].computeEncryptionKeysForUser(password, authParams); - - case 23: - keys = _context5.sent; - _context5.t0 = keys.mk; - _context5.next = 27; - return this.authManager.keys(); - - case 27: - _context5.t1 = _context5.sent.mk; - success = _context5.t0 === _context5.t1; - - if (success) { - this.currentServerPw = keys.pw; - } else { - this.alertManager.alert({ - text: "The current password you entered is not correct. Please try again." - }); - } - - return _context5.abrupt("return", success); - - case 31: - case "end": - return _context5.stop(); - } - } - }, _callee5, this); - })); - - function validateCurrentPassword() { - return _validateCurrentPassword.apply(this, arguments); - } - - return validateCurrentPassword; - }() - }, { - key: "resyncData", - value: function () { - var _resyncData = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee6() { - var response; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - _context6.next = 2; - return this.modelManager.setAllItemsDirty(); - - case 2: - _context6.next = 4; - return this.syncManager.sync(); - - case 4: - response = _context6.sent; - - if (!(!response || response.error)) { - _context6.next = 10; - break; - } - - this.alertManager.alert({ - text: _strings__WEBPACK_IMPORTED_MODULE_6__["STRING_FAILED_PASSWORD_CHANGE"] - }); - return _context6.abrupt("return", false); - - case 10: - return _context6.abrupt("return", true); - - case 11: - case "end": - return _context6.stop(); - } - } - }, _callee6, this); - })); - - function resyncData() { - return _resyncData.apply(this, arguments); - } - - return resyncData; - }() - }, { - key: "processPasswordChange", - value: function () { - var _processPasswordChange = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee7() { - var newUserPassword, currentServerPw, results, newKeys, newAuthParams, response; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee7$(_context7) { - while (1) { - switch (_context7.prev = _context7.next) { - case 0: - newUserPassword = this.securityUpdate ? this.formData.currentPassword : this.formData.newPassword; - currentServerPw = this.currentServerPw; - _context7.next = 4; - return snjs__WEBPACK_IMPORTED_MODULE_4__["protocolManager"].generateInitialKeysAndAuthParamsForUser(this.authManager.user.email, newUserPassword); - - case 4: - results = _context7.sent; - newKeys = results.keys; - newAuthParams = results.authParams; - /** - * Perform a sync beforehand to pull in any last minutes changes before we change - * the encryption key (and thus cant decrypt new changes). - */ - - _context7.next = 9; - return this.syncManager.sync(); - - case 9: - _context7.t0 = this.authManager; - _context7.next = 12; - return this.syncManager.getServerURL(); - - case 12: - _context7.t1 = _context7.sent; - _context7.t2 = this.authManager.user.email; - _context7.t3 = currentServerPw; - _context7.t4 = newKeys; - _context7.t5 = newAuthParams; - _context7.next = 19; - return _context7.t0.changePassword.call(_context7.t0, _context7.t1, _context7.t2, _context7.t3, _context7.t4, _context7.t5); - - case 19: - response = _context7.sent; - - if (!response.error) { - _context7.next = 25; - break; - } - - this.alertManager.alert({ - text: response.error.message ? response.error.message : "There was an error changing your password. Please try again." - }); - return _context7.abrupt("return", false); - - case 25: - return _context7.abrupt("return", true); - - case 26: - case "end": - return _context7.stop(); - } - } - }, _callee7, this); - })); - - function processPasswordChange() { - return _processPasswordChange.apply(this, arguments); - } - - return processPasswordChange; - }() - }, { - key: "downloadBackup", - value: function downloadBackup(encrypted) { - this.archiveManager.downloadBackup(encrypted); - } - }, { - key: "dismiss", - value: function dismiss() { - if (this.lockContinue) { - this.alertManager.alert({ - text: "Cannot close window until pending tasks are complete." - }); - } else { - this.$element.remove(); - this.$scope.$destroy(); - } - } - }]); - - return PasswordWizardCtrl; -}(); - -var PasswordWizard = function PasswordWizard() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, PasswordWizard); - - this.restrict = 'E'; - this.template = _directives_password_wizard_pug__WEBPACK_IMPORTED_MODULE_5___default.a; - this.controller = PasswordWizardCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; - this.scope = { - type: '=' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/permissionsModal.js": -/*!*********************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/permissionsModal.js ***! - \*********************************************************************/ -/*! exports provided: PermissionsModal */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PermissionsModal", function() { return PermissionsModal; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _directives_permissions_modal_pug__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! %/directives/permissions-modal.pug */ "./app/assets/templates/directives/permissions-modal.pug"); -/* harmony import */ var _directives_permissions_modal_pug__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_directives_permissions_modal_pug__WEBPACK_IMPORTED_MODULE_2__); - - - - -var PermissionsModalCtrl = -/*#__PURE__*/ -function () { - PermissionsModalCtrl.$inject = ["$element"]; - - /* @ngInject */ - function PermissionsModalCtrl($element) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, PermissionsModalCtrl); - - this.$element = $element; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(PermissionsModalCtrl, [{ - key: "dismiss", - value: function dismiss() { - this.$element.remove(); - } - }, { - key: "accept", - value: function accept() { - this.callback(true); - this.dismiss(); - } - }, { - key: "deny", - value: function deny() { - this.callback(false); - this.dismiss(); - } - }]); - - return PermissionsModalCtrl; -}(); - -var PermissionsModal = function PermissionsModal() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, PermissionsModal); - - this.restrict = 'E'; - this.template = _directives_permissions_modal_pug__WEBPACK_IMPORTED_MODULE_2___default.a; - this.controller = PermissionsModalCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; - this.scope = { - show: '=', - component: '=', - permissionsString: '=', - callback: '=' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/privilegesAuthModal.js": -/*!************************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/privilegesAuthModal.js ***! - \************************************************************************/ -/*! exports provided: PrivilegesAuthModal */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PrivilegesAuthModal", function() { return PrivilegesAuthModal; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _directives_privileges_auth_modal_pug__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! %/directives/privileges-auth-modal.pug */ "./app/assets/templates/directives/privileges-auth-modal.pug"); -/* harmony import */ var _directives_privileges_auth_modal_pug__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_directives_privileges_auth_modal_pug__WEBPACK_IMPORTED_MODULE_4__); - - - - - - -var PrivilegesAuthModalCtrl = -/*#__PURE__*/ -function () { - PrivilegesAuthModalCtrl.$inject = ["$element", "$timeout", "privilegesManager"]; - - /* @ngInject */ - function PrivilegesAuthModalCtrl($element, $timeout, privilegesManager) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, PrivilegesAuthModalCtrl); - - this.$element = $element; - this.$timeout = $timeout; - this.privilegesManager = privilegesManager; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(PrivilegesAuthModalCtrl, [{ - key: "$onInit", - value: function $onInit() { - var _this = this; - - this.authParameters = {}; - this.sessionLengthOptions = this.privilegesManager.getSessionLengthOptions(); - this.privilegesManager.getSelectedSessionLength().then(function (length) { - _this.$timeout(function () { - _this.selectedSessionLength = length; - }); - }); - this.privilegesManager.netCredentialsForAction(this.action).then(function (credentials) { - _this.$timeout(function () { - _this.requiredCredentials = credentials.sort(); - }); - }); - } - }, { - key: "selectSessionLength", - value: function selectSessionLength(length) { - this.selectedSessionLength = length; - } - }, { - key: "promptForCredential", - value: function promptForCredential(credential) { - return this.privilegesManager.displayInfoForCredential(credential).prompt; - } - }, { - key: "cancel", - value: function cancel() { - this.dismiss(); - this.onCancel && this.onCancel(); - } - }, { - key: "isCredentialInFailureState", - value: function isCredentialInFailureState(credential) { - if (!this.failedCredentials) { - return false; - } - - return this.failedCredentials.find(function (candidate) { - return candidate === credential; - }) != null; - } - }, { - key: "validate", - value: function validate() { - var failed = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = this.requiredCredentials[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var cred = _step.value; - var value = this.authParameters[cred]; - - if (!value || value.length === 0) { - failed.push(cred); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - this.failedCredentials = failed; - return failed.length === 0; - } - }, { - key: "submit", - value: function () { - var _submit = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { - var _this2 = this; - - var result; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (this.validate()) { - _context.next = 2; - break; - } - - return _context.abrupt("return"); - - case 2: - _context.next = 4; - return this.privilegesManager.authenticateAction(this.action, this.authParameters); - - case 4: - result = _context.sent; - this.$timeout(function () { - if (result.success) { - _this2.privilegesManager.setSessionLength(_this2.selectedSessionLength); - - _this2.onSuccess(); - - _this2.dismiss(); - } else { - _this2.failedCredentials = result.failedCredentials; - } - }); - - case 6: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function submit() { - return _submit.apply(this, arguments); - } - - return submit; - }() - }, { - key: "dismiss", - value: function dismiss() { - this.$element.remove(); - } - }]); - - return PrivilegesAuthModalCtrl; -}(); - -var PrivilegesAuthModal = function PrivilegesAuthModal() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, PrivilegesAuthModal); - - this.restrict = 'E'; - this.template = _directives_privileges_auth_modal_pug__WEBPACK_IMPORTED_MODULE_4___default.a; - this.controller = PrivilegesAuthModalCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; - this.scope = { - action: '=', - onSuccess: '=', - onCancel: '=' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/privilegesManagementModal.js": -/*!******************************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/privilegesManagementModal.js ***! - \******************************************************************************/ -/*! exports provided: PrivilegesManagementModal */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PrivilegesManagementModal", function() { return PrivilegesManagementModal; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _services_privilegesManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/services/privilegesManager */ "./app/assets/javascripts/services/privilegesManager.js"); -/* harmony import */ var _directives_privileges_management_modal_pug__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! %/directives/privileges-management-modal.pug */ "./app/assets/templates/directives/privileges-management-modal.pug"); -/* harmony import */ var _directives_privileges_management_modal_pug__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_directives_privileges_management_modal_pug__WEBPACK_IMPORTED_MODULE_5__); - - - - - - - -var PrivilegesManagementModalCtrl = -/*#__PURE__*/ -function () { - PrivilegesManagementModalCtrl.$inject = ["$timeout", "$element", "privilegesManager", "authManager", "passcodeManager"]; - - /* @ngInject */ - function PrivilegesManagementModalCtrl($timeout, $element, privilegesManager, authManager, passcodeManager) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, PrivilegesManagementModalCtrl); - - this.$element = $element; - this.$timeout = $timeout; - this.privilegesManager = privilegesManager; - this.hasPasscode = passcodeManager.hasPasscode(); - this.hasAccount = !authManager.offline(); - this.reloadPrivileges(); - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(PrivilegesManagementModalCtrl, [{ - key: "displayInfoForCredential", - value: function displayInfoForCredential(credential) { - var info = this.privilegesManager.displayInfoForCredential(credential); - - if (credential === _services_privilegesManager__WEBPACK_IMPORTED_MODULE_4__["PrivilegesManager"].CredentialLocalPasscode) { - info.availability = this.hasPasscode; - } else if (credential === _services_privilegesManager__WEBPACK_IMPORTED_MODULE_4__["PrivilegesManager"].CredentialAccountPassword) { - info.availability = this.hasAccount; - } else { - info.availability = true; - } - - return info; - } - }, { - key: "displayInfoForAction", - value: function displayInfoForAction(action) { - return this.privilegesManager.displayInfoForAction(action).label; - } - }, { - key: "isCredentialRequiredForAction", - value: function isCredentialRequiredForAction(action, credential) { - if (!this.privileges) { - return false; - } - - return this.privileges.isCredentialRequiredForAction(action, credential); - } - }, { - key: "clearSession", - value: function () { - var _clearSession = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this.privilegesManager.clearSession(); - - case 2: - this.reloadPrivileges(); - - case 3: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function clearSession() { - return _clearSession.apply(this, arguments); - } - - return clearSession; - }() - }, { - key: "reloadPrivileges", - value: function () { - var _reloadPrivileges = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2() { - var _this = this; - - var sessionEndDate, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, cred, privs; - - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - this.availableActions = this.privilegesManager.getAvailableActions(); - this.availableCredentials = this.privilegesManager.getAvailableCredentials(); - _context2.next = 4; - return this.privilegesManager.getSessionExpirey(); - - case 4: - sessionEndDate = _context2.sent; - this.sessionExpirey = sessionEndDate.toLocaleString(); - this.sessionExpired = new Date() >= sessionEndDate; - this.credentialDisplayInfo = {}; - _iteratorNormalCompletion = true; - _didIteratorError = false; - _iteratorError = undefined; - _context2.prev = 11; - - for (_iterator = this.availableCredentials[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - cred = _step.value; - this.credentialDisplayInfo[cred] = this.displayInfoForCredential(cred); - } - - _context2.next = 19; - break; - - case 15: - _context2.prev = 15; - _context2.t0 = _context2["catch"](11); - _didIteratorError = true; - _iteratorError = _context2.t0; - - case 19: - _context2.prev = 19; - _context2.prev = 20; - - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - - case 22: - _context2.prev = 22; - - if (!_didIteratorError) { - _context2.next = 25; - break; - } - - throw _iteratorError; - - case 25: - return _context2.finish(22); - - case 26: - return _context2.finish(19); - - case 27: - _context2.next = 29; - return this.privilegesManager.getPrivileges(); - - case 29: - privs = _context2.sent; - this.$timeout(function () { - _this.privileges = privs; - }); - - case 31: - case "end": - return _context2.stop(); - } - } - }, _callee2, this, [[11, 15, 19, 27], [20,, 22, 26]]); - })); - - function reloadPrivileges() { - return _reloadPrivileges.apply(this, arguments); - } - - return reloadPrivileges; - }() - }, { - key: "checkboxValueChanged", - value: function checkboxValueChanged(action, credential) { - this.privileges.toggleCredentialForAction(action, credential); - this.privilegesManager.savePrivileges(); - } - }, { - key: "cancel", - value: function cancel() { - this.dismiss(); - this.onCancel && this.onCancel(); - } - }, { - key: "dismiss", - value: function dismiss() { - this.$element.remove(); - } - }]); - - return PrivilegesManagementModalCtrl; -}(); - -var PrivilegesManagementModal = function PrivilegesManagementModal() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, PrivilegesManagementModal); - - this.restrict = 'E'; - this.template = _directives_privileges_management_modal_pug__WEBPACK_IMPORTED_MODULE_5___default.a; - this.controller = PrivilegesManagementModalCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; - this.scope = {}; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/revisionPreviewModal.js": -/*!*************************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/revisionPreviewModal.js ***! - \*************************************************************************/ -/*! exports provided: RevisionPreviewModal */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RevisionPreviewModal", function() { return RevisionPreviewModal; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! snjs */ "./node_modules/snjs/dist/snjs.js"); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(snjs__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _directives_revision_preview_modal_pug__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! %/directives/revision-preview-modal.pug */ "./app/assets/templates/directives/revision-preview-modal.pug"); -/* harmony import */ var _directives_revision_preview_modal_pug__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_directives_revision_preview_modal_pug__WEBPACK_IMPORTED_MODULE_3__); - - - - - -var RevisionPreviewModalCtrl = -/*#__PURE__*/ -function () { - RevisionPreviewModalCtrl.$inject = ["$element", "$scope", "$timeout", "alertManager", "componentManager", "modelManager", "syncManager"]; - - /* @ngInject */ - function RevisionPreviewModalCtrl($element, $scope, $timeout, alertManager, componentManager, modelManager, syncManager) { - var _this = this; - - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, RevisionPreviewModalCtrl); - - this.$element = $element; - this.$scope = $scope; - this.$timeout = $timeout; - this.alertManager = alertManager; - this.componentManager = componentManager; - this.modelManager = modelManager; - this.syncManager = syncManager; - this.createNote(); - this.configureEditor(); - $scope.$on('$destroy', function () { - if (_this.identifier) { - _this.componentManager.deregisterHandler(_this.identifier); - } - }); - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(RevisionPreviewModalCtrl, [{ - key: "createNote", - value: function createNote() { - this.note = new snjs__WEBPACK_IMPORTED_MODULE_2__["SFItem"]({ - content: this.content, - content_type: "Note" - }); - } - }, { - key: "configureEditor", - value: function configureEditor() { - var _this2 = this; - - /** - * Set UUID so editoForNote can find proper editor, but then generate new uuid - * for note as not to save changes to original, if editor makes changes. - */ - this.note.uuid = this.uuid; - var editorForNote = this.componentManager.editorForNote(this.note); - this.note.uuid = snjs__WEBPACK_IMPORTED_MODULE_2__["protocolManager"].crypto.generateUUIDSync(); - - if (editorForNote) { - /** - * Create temporary copy, as a lot of componentManager is uuid based, so might - * interfere with active editor. Be sure to copy only the content, as the top level - * editor object has non-copyable properties like .window, which cannot be transfered - */ - var editorCopy = new snjs__WEBPACK_IMPORTED_MODULE_2__["SNComponent"]({ - content: editorForNote.content - }); - editorCopy.readonly = true; - editorCopy.lockReadonly = true; - this.identifier = editorCopy.uuid; - this.componentManager.registerHandler({ - identifier: this.identifier, - areas: ['editor-editor'], - contextRequestHandler: function contextRequestHandler(component) { - if (component === _this2.editor) { - return _this2.note; - } - }, - componentForSessionKeyHandler: function componentForSessionKeyHandler(key) { - if (key === _this2.editor.sessionKey) { - return _this2.editor; - } - } - }); - this.editor = editorCopy; - } - } - }, { - key: "restore", - value: function restore(asCopy) { - var _this3 = this; - - var run = function run() { - var item; - - if (asCopy) { - var contentCopy = Object.assign({}, _this3.content); - - if (contentCopy.title) { - contentCopy.title += " (copy)"; - } - - item = _this3.modelManager.createItem({ - content_type: 'Note', - content: contentCopy - }); - - _this3.modelManager.addItem(item); - } else { - var uuid = _this3.uuid; - item = _this3.modelManager.findItem(uuid); - item.content = Object.assign({}, _this3.content); - - _this3.modelManager.mapResponseItemsToLocalModels([item], snjs__WEBPACK_IMPORTED_MODULE_2__["SFModelManager"].MappingSourceRemoteActionRetrieved); - } - - _this3.modelManager.setItemDirty(item); - - _this3.syncManager.sync(); - - _this3.dismiss(); - }; - - if (!asCopy) { - this.alertManager.confirm({ - text: "Are you sure you want to replace the current note's contents with what you see in this preview?", - destructive: true, - onConfirm: run - }); - } else { - run(); - } - } - }, { - key: "dismiss", - value: function dismiss() { - this.$element.remove(); - this.$scope.$destroy(); - } - }]); - - return RevisionPreviewModalCtrl; -}(); - -var RevisionPreviewModal = function RevisionPreviewModal() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, RevisionPreviewModal); - - this.restrict = 'E'; - this.template = _directives_revision_preview_modal_pug__WEBPACK_IMPORTED_MODULE_3___default.a; - this.controller = RevisionPreviewModalCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; - this.scope = { - uuid: '=', - content: '=' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/sessionHistoryMenu.js": -/*!***********************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/sessionHistoryMenu.js ***! - \***********************************************************************/ -/*! exports provided: SessionHistoryMenu */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SessionHistoryMenu", function() { return SessionHistoryMenu; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _directives_session_history_menu_pug__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! %/directives/session-history-menu.pug */ "./app/assets/templates/directives/session-history-menu.pug"); -/* harmony import */ var _directives_session_history_menu_pug__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_directives_session_history_menu_pug__WEBPACK_IMPORTED_MODULE_2__); - - - - -var SessionHistoryMenuCtrl = -/*#__PURE__*/ -function () { - SessionHistoryMenuCtrl.$inject = ["$timeout", "actionsManager", "alertManager", "sessionHistory"]; - - /* @ngInject */ - function SessionHistoryMenuCtrl($timeout, actionsManager, alertManager, sessionHistory) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, SessionHistoryMenuCtrl); - - this.$timeout = $timeout; - this.alertManager = alertManager; - this.actionsManager = actionsManager; - this.sessionHistory = sessionHistory; - this.diskEnabled = this.sessionHistory.diskEnabled; - this.autoOptimize = this.sessionHistory.autoOptimize; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(SessionHistoryMenuCtrl, [{ - key: "$onInit", - value: function $onInit() { - this.reloadHistory(); - } - }, { - key: "reloadHistory", - value: function reloadHistory() { - var history = this.sessionHistory.historyForItem(this.item); - this.entries = history.entries.slice(0).sort(function (a, b) { - return a.item.updated_at < b.item.updated_at ? 1 : -1; - }); - this.history = history; - } - }, { - key: "openRevision", - value: function openRevision(revision) { - this.actionsManager.presentRevisionPreviewModal(revision.item.uuid, revision.item.content); - } - }, { - key: "classForRevision", - value: function classForRevision(revision) { - var vector = revision.operationVector(); - - if (vector === 0) { - return 'default'; - } else if (vector === 1) { - return 'success'; - } else if (vector === -1) { - return 'danger'; - } - } - }, { - key: "clearItemHistory", - value: function clearItemHistory() { - var _this = this; - - this.alertManager.confirm({ - text: "Are you sure you want to delete the local session history for this note?", - destructive: true, - onConfirm: function onConfirm() { - _this.sessionHistory.clearHistoryForItem(_this.item).then(function () { - _this.$timeout(function () { - _this.reloadHistory(); - }); - }); - } - }); - } - }, { - key: "clearAllHistory", - value: function clearAllHistory() { - var _this2 = this; - - this.alertManager.confirm({ - text: "Are you sure you want to delete the local session history for all notes?", - destructive: true, - onConfirm: function onConfirm() { - _this2.sessionHistory.clearAllHistory().then(function () { - _this2.$timeout(function () { - _this2.reloadHistory(); - }); - }); - } - }); - } - }, { - key: "toggleDiskSaving", - value: function toggleDiskSaving() { - var _this3 = this; - - var run = function run() { - _this3.sessionHistory.toggleDiskSaving().then(function () { - _this3.$timeout(function () { - _this3.diskEnabled = _this3.sessionHistory.diskEnabled; - }); - }); - }; - - if (!this.sessionHistory.diskEnabled) { - this.alertManager.confirm({ - text: "Are you sure you want to save history to disk? This will decrease general \n performance, especially as you type. You are advised to disable this feature \n if you experience any lagging.", - destructive: true, - onConfirm: run - }); - } else { - run(); - } - } - }, { - key: "toggleAutoOptimize", - value: function toggleAutoOptimize() { - var _this4 = this; - - this.sessionHistory.toggleAutoOptimize().then(function () { - _this4.$timeout(function () { - _this4.autoOptimize = _this4.sessionHistory.autoOptimize; - }); - }); - } - }]); - - return SessionHistoryMenuCtrl; -}(); - -var SessionHistoryMenu = function SessionHistoryMenu() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, SessionHistoryMenu); - - this.restrict = 'E'; - this.template = _directives_session_history_menu_pug__WEBPACK_IMPORTED_MODULE_2___default.a; - this.controller = SessionHistoryMenuCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; - this.scope = { - item: '=' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/directives/views/syncResolutionMenu.js": -/*!***********************************************************************!*\ - !*** ./app/assets/javascripts/directives/views/syncResolutionMenu.js ***! - \***********************************************************************/ -/*! exports provided: SyncResolutionMenu */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SyncResolutionMenu", function() { return SyncResolutionMenu; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _directives_sync_resolution_menu_pug__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! %/directives/sync-resolution-menu.pug */ "./app/assets/templates/directives/sync-resolution-menu.pug"); -/* harmony import */ var _directives_sync_resolution_menu_pug__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_directives_sync_resolution_menu_pug__WEBPACK_IMPORTED_MODULE_4__); - - - - - - -var SyncResolutionMenuCtrl = -/*#__PURE__*/ -function () { - SyncResolutionMenuCtrl.$inject = ["$timeout", "archiveManager", "syncManager"]; - - /* @ngInject */ - function SyncResolutionMenuCtrl($timeout, archiveManager, syncManager) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, SyncResolutionMenuCtrl); - - this.$timeout = $timeout; - this.archiveManager = archiveManager; - this.syncManager = syncManager; - this.status = {}; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(SyncResolutionMenuCtrl, [{ - key: "downloadBackup", - value: function downloadBackup(encrypted) { - this.archiveManager.downloadBackup(encrypted); - this.status.backupFinished = true; - } - }, { - key: "skipBackup", - value: function skipBackup() { - this.status.backupFinished = true; - } - }, { - key: "performSyncResolution", - value: function () { - var _performSyncResolution = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { - var _this = this; - - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - this.status.resolving = true; - _context.next = 3; - return this.syncManager.resolveOutOfSync(); - - case 3: - this.$timeout(function () { - _this.status.resolving = false; - _this.status.attemptedResolution = true; - - if (_this.syncManager.isOutOfSync()) { - _this.status.fail = true; - } else { - _this.status.success = true; - } - }); - - case 4: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function performSyncResolution() { - return _performSyncResolution.apply(this, arguments); - } - - return performSyncResolution; - }() - }, { - key: "close", - value: function close() { - var _this2 = this; - - this.$timeout(function () { - _this2.closeFunction()(); - }); - } - }]); - - return SyncResolutionMenuCtrl; -}(); - -var SyncResolutionMenu = function SyncResolutionMenu() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, SyncResolutionMenu); - - this.restrict = 'E'; - this.template = _directives_sync_resolution_menu_pug__WEBPACK_IMPORTED_MODULE_4___default.a; - this.controller = SyncResolutionMenuCtrl; - this.controllerAs = 'ctrl'; - this.bindToController = true; - this.scope = { - closeFunction: '&' - }; -}; - -/***/ }), - -/***/ "./app/assets/javascripts/filters/index.js": -/*!*************************************************!*\ - !*** ./app/assets/javascripts/filters/index.js ***! - \*************************************************/ -/*! exports provided: trusted */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _trusted__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./trusted */ "./app/assets/javascripts/filters/trusted.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "trusted", function() { return _trusted__WEBPACK_IMPORTED_MODULE_0__["trusted"]; }); - - - -/***/ }), - -/***/ "./app/assets/javascripts/filters/trusted.js": -/*!***************************************************!*\ - !*** ./app/assets/javascripts/filters/trusted.js ***! - \***************************************************/ -/*! exports provided: trusted */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trusted", function() { return trusted; }); -trusted.$inject = ["$sce"]; - -/* @ngInject */ -function trusted($sce) { - return function (url) { - return $sce.trustAsResourceUrl(url); - }; -} - -/***/ }), - -/***/ "./app/assets/javascripts/index.js": -/*!*****************************************!*\ - !*** ./app/assets/javascripts/index.js ***! - \*****************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var sn_stylekit_dist_stylekit_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! sn-stylekit/dist/stylekit.css */ "./node_modules/sn-stylekit/dist/stylekit.css"); -/* harmony import */ var sn_stylekit_dist_stylekit_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(sn_stylekit_dist_stylekit_css__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _stylesheets_index_css_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../stylesheets/index.css.scss */ "./app/assets/stylesheets/index.css.scss"); -/* harmony import */ var _stylesheets_index_css_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_stylesheets_index_css_scss__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js"); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _vendor_assets_javascripts_angular_sanitize__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../vendor/assets/javascripts/angular-sanitize */ "./vendor/assets/javascripts/angular-sanitize.js"); -/* harmony import */ var _vendor_assets_javascripts_angular_sanitize__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_vendor_assets_javascripts_angular_sanitize__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _vendor_assets_javascripts_zip_deflate__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../vendor/assets/javascripts/zip/deflate */ "./vendor/assets/javascripts/zip/deflate.js"); -/* harmony import */ var _vendor_assets_javascripts_zip_deflate__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_vendor_assets_javascripts_zip_deflate__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _vendor_assets_javascripts_zip_inflate__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../vendor/assets/javascripts/zip/inflate */ "./vendor/assets/javascripts/zip/inflate.js"); -/* harmony import */ var _vendor_assets_javascripts_zip_inflate__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_vendor_assets_javascripts_zip_inflate__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _vendor_assets_javascripts_zip_zip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../vendor/assets/javascripts/zip/zip */ "./vendor/assets/javascripts/zip/zip.js"); -/* harmony import */ var _vendor_assets_javascripts_zip_zip__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_vendor_assets_javascripts_zip_zip__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _vendor_assets_javascripts_zip_z_worker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../vendor/assets/javascripts/zip/z-worker */ "./vendor/assets/javascripts/zip/z-worker.js"); -/* harmony import */ var _vendor_assets_javascripts_zip_z_worker__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_vendor_assets_javascripts_zip_z_worker__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! snjs */ "./node_modules/snjs/dist/snjs.js"); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(snjs__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _app__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./app */ "./app/assets/javascripts/app.js"); -//= require_tree ./app -// css - - // Vendor - - - - - - - - // Set the app domain before starting the app - -snjs__WEBPACK_IMPORTED_MODULE_8__["SFItem"].AppDomain = 'org.standardnotes.sn'; // entry point -// eslint-disable-next-line import/first - - - -/***/ }), - -/***/ "./app/assets/javascripts/models/noteHistoryEntry.js": -/*!***********************************************************!*\ - !*** ./app/assets/javascripts/models/noteHistoryEntry.js ***! - \***********************************************************/ -/*! exports provided: NoteHistoryEntry */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NoteHistoryEntry", function() { return NoteHistoryEntry; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! snjs */ "./node_modules/snjs/dist/snjs.js"); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(snjs__WEBPACK_IMPORTED_MODULE_5__); - - - - - - -var NoteHistoryEntry = -/*#__PURE__*/ -function (_SFItemHistoryEntry) { - _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4___default()(NoteHistoryEntry, _SFItemHistoryEntry); - - function NoteHistoryEntry() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, NoteHistoryEntry); - - return _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2___default()(this, _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3___default()(NoteHistoryEntry).apply(this, arguments)); - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(NoteHistoryEntry, [{ - key: "previewTitle", - value: function previewTitle() { - return this.item.updated_at.toLocaleString(); - } - }, { - key: "previewSubTitle", - value: function previewSubTitle() { - if (!this.hasPreviousEntry) { - return "".concat(this.textCharDiffLength, " characters loaded"); - } else if (this.textCharDiffLength < 0) { - return "".concat(this.textCharDiffLength * -1, " characters removed"); - } else if (this.textCharDiffLength > 0) { - return "".concat(this.textCharDiffLength, " characters added"); - } else { - return "Title or metadata changed"; - } - } - }]); - - return NoteHistoryEntry; -}(snjs__WEBPACK_IMPORTED_MODULE_5__["SFItemHistoryEntry"]); - -/***/ }), - -/***/ "./app/assets/javascripts/routes.js": -/*!******************************************!*\ - !*** ./app/assets/javascripts/routes.js ***! - \******************************************/ -/*! exports provided: configRoutes */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "configRoutes", function() { return configRoutes; }); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./app/assets/javascripts/utils.js"); -configRoutes.$inject = ["$locationProvider"]; - -/* @ngInject */ - -function configRoutes($locationProvider) { - if (!Object(_utils__WEBPACK_IMPORTED_MODULE_0__["isDesktopApplication"])()) { - if (window.history && window.history.pushState) { - $locationProvider.html5Mode({ - enabled: true, - requireBase: false - }); - } - } else { - $locationProvider.html5Mode(false); - } -} - -/***/ }), - -/***/ "./app/assets/javascripts/services/actionsManager.js": -/*!***********************************************************!*\ - !*** ./app/assets/javascripts/services/actionsManager.js ***! - \***********************************************************/ -/*! exports provided: ActionsManager */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionsManager", function() { return ActionsManager; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js"); -/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! snjs */ "./node_modules/snjs/dist/snjs.js"); -/* harmony import */ var snjs__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(snjs__WEBPACK_IMPORTED_MODULE_6__); - - - - - - - -var ActionsManager = -/*#__PURE__*/ -function () { - ActionsManager.$inject = ["$compile", "$rootScope", "$timeout", "alertManager", "authManager", "httpManager", "modelManager", "syncManager"]; - - /* @ngInject */ - function ActionsManager($compile, $rootScope, $timeout, alertManager, authManager, httpManager, modelManager, syncManager) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, ActionsManager); - - this.$compile = $compile; - this.$rootScope = $rootScope; - this.$timeout = $timeout; - this.alertManager = alertManager; - this.authManager = authManager; - this.httpManager = httpManager; - this.modelManager = modelManager; - this.syncManager = syncManager; - /* Used when decrypting old items with new keys. This array is only kept in memory. */ - - this.previousPasswords = []; - } - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(ActionsManager, [{ - key: "extensionsInContextOfItem", - value: function extensionsInContextOfItem(item) { - return this.extensions.filter(function (ext) { - return lodash__WEBPACK_IMPORTED_MODULE_4___default.a.includes(ext.supported_types, item.content_type) || ext.actionsWithContextForItem(item).length > 0; - }); - } - /** - * Loads an extension in the context of a certain item. - * The server then has the chance to respond with actions that are - * relevant just to this item. The response extension is not saved, - * just displayed as a one-time thing. - */ - - }, { - key: "loadExtensionInContextOfItem", - value: function () { - var _loadExtensionInContextOfItem = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee(extension, item) { - var _this = this; - - var params, emptyFunc; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - params = { - content_type: item.content_type, - item_uuid: item.uuid - }; - - emptyFunc = function emptyFunc() {}; - - return _context.abrupt("return", this.httpManager.getAbsolute(extension.url, params, emptyFunc, emptyFunc).then(function (response) { - _this.updateExtensionFromRemoteResponse(extension, response); - - return extension; - }).catch(function (response) { - console.error("Error loading extension", response); - return null; - })); - - case 3: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function loadExtensionInContextOfItem(_x, _x2) { - return _loadExtensionInContextOfItem.apply(this, arguments); - } - - return loadExtensionInContextOfItem; - }() - }, { - key: "updateExtensionFromRemoteResponse", - value: function updateExtensionFromRemoteResponse(extension, response) { - if (response.description) { - extension.description = response.description; - } - - if (response.supported_types) { - extension.supported_types = response.supported_types; - } - - if (response.actions) { - extension.actions = response.actions.map(function (action) { - return new snjs__WEBPACK_IMPORTED_MODULE_6__["Action"](action); - }); - } else { - extension.actions = []; - } - } - }, { - key: "executeAction", - value: function () { - var _executeAction = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(action, extension, item) { - var result; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - action.running = true; - _context2.t0 = action.verb; - _context2.next = _context2.t0 === 'get' ? 4 : _context2.t0 === 'render' ? 8 : _context2.t0 === 'show' ? 12 : _context2.t0 === 'post' ? 16 : 20; - break; - - case 4: - _context2.next = 6; - return this.handleGetAction(action); - - case 6: - result = _context2.sent; - return _context2.abrupt("break", 21); - - case 8: - _context2.next = 10; - return this.handleRenderAction(action); - - case 10: - result = _context2.sent; - return _context2.abrupt("break", 21); - - case 12: - _context2.next = 14; - return this.handleShowAction(action); - - case 14: - result = _context2.sent; - return _context2.abrupt("break", 21); - - case 16: - _context2.next = 18; - return this.handlePostAction(action, item, extension); - - case 18: - result = _context2.sent; - return _context2.abrupt("break", 21); - - case 20: - return _context2.abrupt("break", 21); - - case 21: - action.lastExecuted = new Date(); - action.running = false; - return _context2.abrupt("return", result); - - case 24: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function executeAction(_x3, _x4, _x5) { - return _executeAction.apply(this, arguments); - } - - return executeAction; - }() - }, { - key: "decryptResponse", - value: function () { - var _decryptResponse = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3(response, keys) { - var _this2 = this; - - var responseItem, triedPasswords, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, passwordCandidate, keyResults, nestedResponse; - - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - responseItem = response.item; - _context3.next = 3; - return snjs__WEBPACK_IMPORTED_MODULE_6__["protocolManager"].decryptItem(responseItem, keys); - - case 3: - if (responseItem.errorDecrypting) { - _context3.next = 5; - break; - } - - return _context3.abrupt("return", { - response: response, - item: responseItem - }); - - case 5: - if (response.auth_params) { - _context3.next = 8; - break; - } - - /** - * In some cases revisions were missing auth params. - * Instruct the user to email us to get this remedied. - */ - this.alertManager.alert({ - text: "We were unable to decrypt this revision using your current keys, \n and this revision is missing metadata that would allow us to try different \n keys to decrypt it. This can likely be fixed with some manual intervention. \n Please email hello@standardnotes.org for assistance." - }); - return _context3.abrupt("return", {}); - - case 8: - /* Try previous passwords */ - triedPasswords = []; - _iteratorNormalCompletion = true; - _didIteratorError = false; - _iteratorError = undefined; - _context3.prev = 12; - _iterator = this.previousPasswords[Symbol.iterator](); - - case 14: - if (_iteratorNormalCompletion = (_step = _iterator.next()).done) { - _context3.next = 32; - break; - } - - passwordCandidate = _step.value; - - if (!triedPasswords.includes(passwordCandidate)) { - _context3.next = 18; - break; - } - - return _context3.abrupt("continue", 29); - - case 18: - triedPasswords.push(passwordCandidate); - _context3.next = 21; - return snjs__WEBPACK_IMPORTED_MODULE_6__["protocolManager"].computeEncryptionKeysForUser(passwordCandidate, response.auth_params); - - case 21: - keyResults = _context3.sent; - - if (keyResults) { - _context3.next = 24; - break; - } - - return _context3.abrupt("continue", 29); - - case 24: - _context3.next = 26; - return this.decryptResponse(response, keyResults); - - case 26: - nestedResponse = _context3.sent; - - if (!nestedResponse.item) { - _context3.next = 29; - break; - } - - return _context3.abrupt("return", nestedResponse); - - case 29: - _iteratorNormalCompletion = true; - _context3.next = 14; - break; - - case 32: - _context3.next = 38; - break; - - case 34: - _context3.prev = 34; - _context3.t0 = _context3["catch"](12); - _didIteratorError = true; - _iteratorError = _context3.t0; - - case 38: - _context3.prev = 38; - _context3.prev = 39; - - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - - case 41: - _context3.prev = 41; - - if (!_didIteratorError) { - _context3.next = 44; - break; - } - - throw _iteratorError; - - case 44: - return _context3.finish(41); - - case 45: - return _context3.finish(38); - - case 46: - return _context3.abrupt("return", new Promise(function (resolve, reject) { - _this2.presentPasswordModal(function (password) { - _this2.previousPasswords.push(password); - - var result = _this2.decryptResponse(response, keys); - - resolve(result); - }); - })); - - case 47: - case "end": - return _context3.stop(); - } - } - }, _callee3, this, [[12, 34, 38, 46], [39,, 41, 45]]); - })); - - function decryptResponse(_x6, _x7) { - return _decryptResponse.apply(this, arguments); - } - - return decryptResponse; - }() - }, { - key: "handlePostAction", - value: function () { - var _handlePostAction = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee4(action, item, extension) { - var _this3 = this; - - var decrypted, itemParams, params, emptyFunc; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - decrypted = action.access_type === 'decrypted'; - _context4.next = 3; - return this.outgoingParamsForItem(item, extension, decrypted); - - case 3: - itemParams = _context4.sent; - params = { - items: [itemParams] - }; - /* Needed until SNJS detects null function */ - - emptyFunc = function emptyFunc() {}; - - return _context4.abrupt("return", this.httpManager.postAbsolute(action.url, params, emptyFunc, emptyFunc).then(function (response) { - action.error = false; - return { - response: response - }; - }).catch(function (response) { - action.error = true; - console.error("Action error response:", response); - - _this3.alertManager.alert({ - text: "An issue occurred while processing this action. Please try again." - }); - - return { - response: response - }; - })); - - case 7: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function handlePostAction(_x8, _x9, _x10) { - return _handlePostAction.apply(this, arguments); - } - - return handlePostAction; - }() - }, { - key: "handleShowAction", - value: function () { - var _handleShowAction = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee5(action) { - var win; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - win = window.open(action.url, '_blank'); - - if (win) { - win.focus(); - } - - return _context5.abrupt("return", { - response: null - }); - - case 3: - case "end": - return _context5.stop(); - } - } - }, _callee5); - })); - - function handleShowAction(_x11) { - return _handleShowAction.apply(this, arguments); - } - - return handleShowAction; - }() - }, { - key: "handleGetAction", - value: function () { - var _handleGetAction = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee8(action) { - var _this4 = this; - - var emptyFunc, _onConfirm; - - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee8$(_context8) { - while (1) { - switch (_context8.prev = _context8.next) { - case 0: - /* Needed until SNJS detects null function */ - emptyFunc = function emptyFunc() {}; - - _onConfirm = - /*#__PURE__*/ - function () { - var _ref = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee7() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee7$(_context7) { - while (1) { - switch (_context7.prev = _context7.next) { - case 0: - return _context7.abrupt("return", _this4.httpManager.getAbsolute(action.url, {}, emptyFunc, emptyFunc).then( - /*#__PURE__*/ - function () { - var _ref2 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee6(response) { - var items, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, mappedItem; - - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - action.error = false; - _context6.t0 = _this4; - _context6.t1 = response; - _context6.next = 5; - return _this4.authManager.keys(); - - case 5: - _context6.t2 = _context6.sent; - _context6.next = 8; - return _context6.t0.decryptResponse.call(_context6.t0, _context6.t1, _context6.t2); - - case 8: - _context6.next = 10; - return _this4.modelManager.mapResponseItemsToLocalModels([response.item], snjs__WEBPACK_IMPORTED_MODULE_6__["SFModelManager"].MappingSourceRemoteActionRetrieved); - - case 10: - items = _context6.sent; - _iteratorNormalCompletion2 = true; - _didIteratorError2 = false; - _iteratorError2 = undefined; - _context6.prev = 14; - - for (_iterator2 = items[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - mappedItem = _step2.value; - - _this4.modelManager.setItemDirty(mappedItem, true); - } - - _context6.next = 22; - break; - - case 18: - _context6.prev = 18; - _context6.t3 = _context6["catch"](14); - _didIteratorError2 = true; - _iteratorError2 = _context6.t3; - - case 22: - _context6.prev = 22; - _context6.prev = 23; - - if (!_iteratorNormalCompletion2 && _iterator2.return != null) { - _iterator2.return(); - } - - case 25: - _context6.prev = 25; - - if (!_didIteratorError2) { - _context6.next = 28; - break; - } - - throw _iteratorError2; - - case 28: - return _context6.finish(25); - - case 29: - return _context6.finish(22); - - case 30: - _this4.syncManager.sync(); - - return _context6.abrupt("return", { - response: response, - item: response.item - }); - - case 32: - case "end": - return _context6.stop(); - } - } - }, _callee6, null, [[14, 18, 22, 30], [23,, 25, 29]]); - })); - - return function (_x13) { - return _ref2.apply(this, arguments); - }; - }()).catch(function (response) { - var error = response && response.error || { - message: "An issue occurred while processing this action. Please try again." - }; - - _this4.alertManager.alert({ - text: error.message - }); - - action.error = true; - return { - error: error - }; - })); - - case 1: - case "end": - return _context7.stop(); - } - } - }, _callee7); - })); - - return function onConfirm() { - return _ref.apply(this, arguments); - }; - }(); - - return _context8.abrupt("return", new Promise(function (resolve, reject) { - _this4.alertManager.confirm({ - text: "Are you sure you want to replace the current note contents with this action's results?", - onConfirm: function onConfirm() { - _onConfirm().then(resolve); - } - }); - })); - - case 3: - case "end": - return _context8.stop(); - } - } - }, _callee8); - })); - - function handleGetAction(_x12) { - return _handleGetAction.apply(this, arguments); - } - - return handleGetAction; - }() - }, { - key: "handleRenderAction", - value: function () { - var _handleRenderAction = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee10(action) { - var _this5 = this; - - var emptyFunc; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee10$(_context10) { - while (1) { - switch (_context10.prev = _context10.next) { - case 0: - /* Needed until SNJS detects null function */ - emptyFunc = function emptyFunc() {}; - - return _context10.abrupt("return", this.httpManager.getAbsolute(action.url, {}, emptyFunc, emptyFunc).then( - /*#__PURE__*/ - function () { - var _ref3 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee9(response) { - var result, item; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee9$(_context9) { - while (1) { - switch (_context9.prev = _context9.next) { - case 0: - action.error = false; - _context9.t0 = _this5; - _context9.t1 = response; - _context9.next = 5; - return _this5.authManager.keys(); - - case 5: - _context9.t2 = _context9.sent; - _context9.next = 8; - return _context9.t0.decryptResponse.call(_context9.t0, _context9.t1, _context9.t2); - - case 8: - result = _context9.sent; - item = _this5.modelManager.createItem(result.item); - return _context9.abrupt("return", { - response: result.response, - item: item - }); - - case 11: - case "end": - return _context9.stop(); - } - } - }, _callee9); - })); - - return function (_x15) { - return _ref3.apply(this, arguments); - }; - }()).catch(function (response) { - var error = response && response.error || { - message: "An issue occurred while processing this action. Please try again." - }; - - _this5.alertManager.alert({ - text: error.message - }); - - action.error = true; - return { - error: error - }; - })); - - case 2: - case "end": - return _context10.stop(); - } - } - }, _callee10, this); - })); - - function handleRenderAction(_x14) { - return _handleRenderAction.apply(this, arguments); - } - - return handleRenderAction; - }() - }, { - key: "outgoingParamsForItem", - value: function () { - var _outgoingParamsForItem = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( - /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee11(item, extension) { - var decrypted, - keys, - itemParams, - _args11 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee11$(_context11) { - while (1) { - switch (_context11.prev = _context11.next) { - case 0: - decrypted = _args11.length > 2 && _args11[2] !== undefined ? _args11[2] : false; - _context11.next = 3; - return this.authManager.keys(); - - case 3: - keys = _context11.sent; - - if (decrypted) { - keys = null; - } - - _context11.t0 = snjs__WEBPACK_IMPORTED_MODULE_6__["SFItemParams"]; - _context11.t1 = item; - _context11.t2 = keys; - _context11.next = 10; - return this.authManager.getAuthParams(); - - case 10: - _context11.t3 = _context11.sent; - itemParams = new _context11.t0(_context11.t1, _context11.t2, _context11.t3); - return _context11.abrupt("return", itemParams.paramsForExtension()); - - case 13: - case "end": - return _context11.stop(); - } - } - }, _callee11, this); - })); - - function outgoingParamsForItem(_x16, _x17) { - return _outgoingParamsForItem.apply(this, arguments); - } - - return outgoingParamsForItem; - }() - }, { - key: "presentRevisionPreviewModal", - value: function presentRevisionPreviewModal(uuid, content) { - var scope = this.$rootScope.$new(true); - scope.uuid = uuid; - scope.content = content; - var el = this.$compile("form = {{user | json}}
- leader = {{leader | json}}
- This renders because the controller does not fail to - instantiate, by using explicit annotation style (see - script.js for details) -
-This renders because the controller does not fail to - instantiate, by using explicit annotation style - (see script.js for details) -
-The controller could not be instantiated, due to relying - on automatic function annotations (which are disabled in - strict mode). As such, the content of this section is not - interpolated, and there should be an error in your web console. -
-
-
-
-
-
-
-
Cached Values
-Cache Info
-{{ $ctrl.log | json }}',
- * controller: function() {
- * var previousValue;
- * this.log = [];
- * this.$doCheck = function() {
- * var currentValue = this.date && this.date.valueOf();
- * if (previousValue !== currentValue) {
- * this.log.push('doCheck: date mutated: ' + this.date);
- * previousValue = currentValue;
- * }
- * };
- * }
- * });
- * {{ items }}
- * {{ $ctrl.log | json }}',
- * controller: function() {
- * this.log = [];
- *
- * this.$doCheck = function() {
- * if (this.items_ref !== this.items) {
- * this.log.push('doCheck: items changed');
- * this.items_ref = this.items;
- * }
- * if (!angular.equals(this.items_clone, this.items)) {
- * this.log.push('doCheck: items mutated');
- * this.items_clone = angular.copy(this.items);
- * }
- * };
- * }
- * });
- *