{{ $t('users') }}


!gridUtil.hasOutdatedThumbnail(toGrid)) { Router.toLastOpenedGrid(); } }); return; } if (this.updatedMetadataDoc && this.updatedMetadataDoc.fullscreen !== vueApp.metadata.fullscreen) { if (this.updatedMetadataDoc.fullscreen) { systemActionService.enterFullscreen(true); } else { $(document).trigger(constants.EVENT_SIDEBAR_OPEN); } } if (this.updatedMetadataDoc && this.updatedMetadataDoc.locked !== vueApp.metadata.locked) { if (this.updatedMetadataDoc.locked) { vueApp.lock(); } else { vueApp.unlock(true); } } } this.metadata = this.updatedMetadataDoc || this.metadata; }, async recalculateRenderGrid(gridData) { // attention: gridData also changes because of "noDeepCopy: true" // just using this.renderGridData for clarity this.showGrid = false; let globalGrid = null; gridData = gridUtil.fillFreeSpaces(gridData, GridElement.ELEMENT_TYPE_UI_FILLER); if (gridUtil.hasDynamicGridPlaceholder(this.globalGridData)) { this.globalGridData = gridUtil.fillFreeSpaces(this.globalGridData, GridElement.ELEMENT_TYPE_UI_FILLER); } if (gridData.showGlobalGrid) { globalGrid = this.globalGridData; if (gridData.globalGridId) { // custom global grid globalGrid = await dataService.getGrid(gridData.globalGridId, false, true); } this.renderGridData = gridUtil.mergeGrids(gridData, globalGrid, { globalGridHeightPercentage: this.metadata.globalGridHeightPercentage, noDeepCopy: true }); } else { this.renderGridData = gridData; } this.renderGridData = gridUtil.adaptFirstRowHeight(this.renderGridData, this.metadata.firstRowHeightFactor); this.renderGridData.minColumnCount = gridUtil.getWidthWithBounds(this.renderGridData); this.renderGridData.rowCount = gridUtil.getHeightWithBounds(this.renderGridData); this.renderGridData.gridElements = this.renderGridData.gridElements.filter(e => !e.hidden); // Check for local toggle level first, otherwise use synchronized metadata level let isToggled = localStorageService.get(localStorageService.KEY_CURRENT_TOGGLE_LEVEL); let effectiveLevel = isToggled ? localStorageService.getJSON(localStorageService.KEY_CURRENT_TOGGLE_LEVEL) : this.metadata.vocabularyLevel; if (effectiveLevel) { let globalGridElements = globalGrid ? globalGrid.gridElements : []; let globalGridElemIds = globalGridElements.map(e => e.id); let normalGridElements = this.renderGridData.gridElements.filter(e => !globalGridElemIds.includes(e.id)); let noneHasVocabLevelGlobal = globalGridElements.every(e => !e.vocabularyLevel); let noneHasVocabLevelNormal = normalGridElements.every(e => !e.vocabularyLevel); this.renderGridData.gridElements = this.renderGridData.gridElements.filter(e => { let elemFitsVocabLevel = e.vocabularyLevel && e.vocabularyLevel <= effectiveLevel; if (globalGridElemIds.includes(e.id)) { // is elem in global grid return noneHasVocabLevelGlobal || elemFitsVocabLevel || e.type !== GridElement.ELEMENT_TYPE_NORMAL; } else { // is elem in normal grid return noneHasVocabLevelNormal || elemFitsVocabLevel || e.type !== GridElement.ELEMENT_TYPE_NORMAL; } }); } this.showGrid = true; stateService.setCurrentGrid(this.renderGridData); }, onSidebarOpen() { if (!vueApp || !vueApp.metadata) { return; } vueApp.metadata.fullscreen = false; $(document).trigger(constants.EVENT_GRID_RESIZE); }, resizeListener() { let thiz = this; util.debounce(function () { if (thiz.huffmanInput) { thiz.huffmanInput.reinit(); } }, 500); }, contextMenuListener(event) { event.preventDefault(); }, async metadataUpdated() { this.metadata = await dataService.getMetadata(); }, async rerenderGrid() { if (this.renderGridData) { // Reload the grid with fresh data without updating metadata let freshGridData = await dataService.getGrid(this.renderGridData.id); await this.loadGrid(freshGridData, { forceReload: true }); } } }, created() { $(document).on(constants.EVENT_DB_PULL_UPDATED, this.onExternalUpdate); $(document).on(constants.EVENT_SIDEBAR_OPEN, this.onSidebarOpen); $(document).on(constants.EVENT_NAVIGATE_GRID_IN_VIEWMODE, this.onNavigateEvent); document.addEventListener('contextmenu', this.contextMenuListener); window.addEventListener('resize', this.resizeListener, true); $(document).on(constants.EVENT_GRID_RESIZE, this.resizeListener); $(document).on(constants.EVENT_METADATA_UPDATED, this.metadataUpdated); $(document).on(constants.EVENT_GRID_RERENDER, this.rerenderGrid); }, beforeDestroy() { $(document).off(constants.EVENT_DB_PULL_UPDATED, this.onExternalUpdate); $(document).off(constants.EVENT_SIDEBAR_OPEN, this.onSidebarOpen); $(document).off(constants.EVENT_NAVIGATE_GRID_IN_VIEWMODE, this.onNavigateEvent); document.removeEventListener('contextmenu', this.contextMenuListener); window.removeEventListener('resize', this.resizeListener, true); $(document).off(constants.EVENT_GRID_RESIZE, this.resizeListener); $(document).off(constants.EVENT_METADATA_UPDATED, this.metadataUpdated); $(document).off(constants.EVENT_GRID_RERENDER, this.rerenderGrid); stopInputMethods(); this.setViewPropsUnlocked(); $.contextMenu('destroy'); liveElementService.stop(); vueApp = null; }, mounted: async function () { vueApp = this; let savedMetadata = await dataService.getMetadata(); let metadata = JSON.parse(JSON.stringify(savedMetadata || new MetaData())); metadata.lastOpenedGridId = this.gridId; metadata.locked = metadata.locked === undefined ? urlParamService.isDemoMode() && dataService.getCurrentUser() === constants.LOCAL_DEMO_USERNAME : metadata.locked; if (metadata.locked) { $(document).trigger(constants.EVENT_UI_LOCKED); } metadata.fullscreen = metadata.fullscreen === undefined ? urlParamService.isDemoMode() && dataService.getCurrentUser() === constants.LOCAL_DEMO_USERNAME : metadata.fullscreen; metadata.fullscreen = urlParamService.isFullscreen(true) ? true : metadata.fullscreen; metadata.fullscreen = metadata.fullscreen && util.isFullscreen(); metadata.locked = urlParamService.isLocked(true) ? true : metadata.locked; metadata.inputConfig.scanEnabled = urlParamService.isScanningEnabled() ? true : metadata.inputConfig.scanEnabled; metadata.inputConfig.dirEnabled = urlParamService.isDirectionEnabled() ? true : metadata.inputConfig.dirEnabled; metadata.inputConfig.huffEnabled = urlParamService.isHuffmanEnabled() ? true : metadata.inputConfig.huffEnabled; dataService.saveMetadata(metadata).then(() => { if (metadata.locked) { this.setViewPropsLocked(); } }); this.metadata = metadata; this.globalGridData = await dataService.getGlobalGrid(); let gridData = await dataService.getGrid(this.gridId, false, true); if (!gridData) { log.warn('grid not found! gridId: ' + this.gridId); let grids = await dataService.getGrids(false, true); if (grids && grids[0]) { gridData = await dataService.getGrid(grids[0].id); } else { return Router.toManageGrids(); } } this.loadGrid(gridData); } }; function stopInputMethods() { if (!vueApp) { return; } if (vueApp.scanner) vueApp.scanner.destroy(); if (vueApp.hover) vueApp.hover.destroy(); if (vueApp.clicker) vueApp.clicker.destroy(); if (vueApp.directionInput) vueApp.directionInput.destroy(); if (vueApp.huffmanInput) vueApp.huffmanInput.destroy(); if (vueApp.seqInput) vueApp.seqInput.destroy(); vueApp.inputMethodsInitialized = false; } function initContextmenu() { $.contextMenu('destroy'); let CONTEXT_MOUSE = "CONTEXT_MOUSE"; let CONTEXT_SCANNING = "CONTEXT_SCA
{{ $t('loggedInAs') }} {{currentUser}} {{ $t('usingOfflineUser') }} {{currentUser}} {{ $t('notLoggedIn') }}
LogoRemakeFourWTL Logo It's your turn
IPTV Web Browser MDliOTUybW84ZzN1YTd3Z2VvM2R2aWtweWtjNXJhenFyY3ZhZndybmE5OXM4aiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/7wv2tBHSeLOnBzMWoS/giphy.gif" alt="" height="1080" width="1080"> Chile TV The Sims Most Viewed Locations Google Maps Supermarket Store Chile Google Spanish Google Spanish with PHP function logAndRedirect(missingFeature) { console.warn("Browser doesn't support " + missingFeature + "."); window.location.replace("unsupported.html"); } function testEval(evalString, msg) { try { eval(evalString); } catch (e) { console.log(e); logAndRedirect(msg); } } The Phone with LogoRemakeFour (touch, click) The Computer with LogoRemakeFour (keyboard, mouse) IPTV Outlook Microsoft Chile LogoRemakeFour LogoRemakeFour Toon Blast LRF Editor Toon Blast Camera LogoRemakeFour on GitHub Activate Windows Email Search Toon Blast Never Gonna You Give Up Gangnam LogoRemakeFour Unsupported Playlist JKAnime Windows 7 Emulator Thriller 4K Remaster Asterics AAC
{ "@context": "http://schema.org", "@id": "https://lrfeditor1807.github.io/#website", "@type": "WebSite", "url": "https://lrfeditor1807.github.io", "name": "LogoRemakeFour", "potentialAction": { "@type": "SearchAction", "target": "https://lrfeditor1807.github.io/search/{search_term_string}?src=mc_google", "query-input": "required name=search_term_string" } { "@context": "http://schema.org", "@id": "https://lrfeditor1807.github.io/#organization", "@type": "Organization", "name": "LogoRemakeFour", "url": "https://lrfeditor1807.github.io", "logo": "https://lrfeditor1807.github.io/logo.png", "subOrganization": { "@type": "Organization", "name": "LogoRemakeFour en EspaƱol", "url": "https://lrfeditor1807.github.io/es", "@id": "https://lrfeditor1807.github.io/es/#organization" }