// TODO: This file was created by bulk-decaffeinate. // Sanity-check the conversion and remove this comment. /* * decaffeinate suggestions: * DS002: Fix invalid constructor * DS102: Remove unnecessary code created because of implicit returns * DS206: Consider reworking classes to avoid initClass * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md */ const Cls = (app.views.Document = class Document extends app.View { constructor(...args) { this.afterRoute = this.afterRoute.bind(this); this.onVisibilityChange = this.onVisibilityChange.bind(this); super(...args); } static initClass() { this.el = document; this.events = {visibilitychange: 'onVisibilityChange'}; this.shortcuts = { help: 'onHelp', preferences: 'onPreferences', escape: 'onEscape', superLeft: 'onBack', superRight: 'onForward' }; this.routes = {after: 'afterRoute'}; } init() { this.addSubview((this.menu = new app.views.Menu), this.addSubview(this.sidebar = new app.views.Sidebar)); if (app.views.Resizer.isSupported()) { this.addSubview(this.resizer = new app.views.Resizer); } this.addSubview(this.content = new app.views.Content); if (!app.isSingleDoc() && !app.isMobile()) { this.addSubview(this.path = new app.views.Path); } if (!app.isSingleDoc()) { this.settings = new app.views.Settings; } $.on(document.body, 'click', this.onClick); this.activate(); } setTitle(title) { return this.el.title = title ? `${title} — DevDocs` : 'DevDocs API Documentation'; } afterRoute(route) { if (route === 'settings') { if (this.settings != null) { this.settings.activate(); } } else { if (this.settings != null) { this.settings.deactivate(); } } } onVisibilityChange() { if (this.el.visibilityState !== 'visible') { return; } this.delay(function() { if (app.isMobile() !== app.views.Mobile.detect()) { location.reload(); } } , 300); } onHelp() { app.router.show('/help#shortcuts'); } onPreferences() { app.router.show('/settings'); } onEscape() { const path = !app.isSingleDoc() || (location.pathname === app.doc.fullPath()) ? '/' : app.doc.fullPath(); app.router.show(path); } onBack() { history.back(); } onForward() { history.forward(); } onClick(event) { const target = $.eventTarget(event); if (!target.hasAttribute('data-behavior')) { return; } $.stopEvent(event); switch (target.getAttribute('data-behavior')) { case 'back': history.back(); break; case 'reload': window.location.reload(); break; case 'reboot': app.reboot(); break; case 'hard-reload': app.reload(); break; case 'reset': if (confirm('Are you sure you want to reset DevDocs?')) { app.reset(); } break; case 'accept-analytics': Cookies.set('analyticsConsent', '1', {expires: 1e8}) && app.reboot(); break; case 'decline-analytics': Cookies.set('analyticsConsent', '0', {expires: 1e8}) && app.reboot(); break; } } }); Cls.initClass();