From 9607a9f80c3f8e3f12966d65214784720660ba14 Mon Sep 17 00:00:00 2001 From: marlon-erler Date: Wed, 23 Sep 2026 00:29:48 +0200 Subject: [PATCH] improve consistency --- dist/index.css | 9 +- dist/index.js | 463 +++++++++++++----------- src/Model/Utility/.utility.ts.swp | Bin 28672 -> 0 bytes src/View/.translations.ts.swp | Bin 53248 -> 0 bytes src/View/ChatPages/.taskPage.tsx.swp | Bin 16384 -> 0 bytes src/View/Components/.boardEntry.tsx.swp | Bin 12288 -> 0 bytes src/View/Modals/searchModal.tsx | 193 +++++----- src/ViewModel/Global/coreViewModel.ts | 2 +- 8 files changed, 345 insertions(+), 322 deletions(-) delete mode 100644 src/Model/Utility/.utility.ts.swp delete mode 100644 src/View/.translations.ts.swp delete mode 100644 src/View/ChatPages/.taskPage.tsx.swp delete mode 100644 src/View/Components/.boardEntry.tsx.swp diff --git a/dist/index.css b/dist/index.css index 52caff98..779a7240 100644 --- a/dist/index.css +++ b/dist/index.css @@ -202,7 +202,7 @@ body { --color-1: hsl(150, 60%, 30%); --color-2: hsl(150, 60%, 25%); filter: var(--backdrop-grass-filter); - opacity: .7; + opacity: 0.7; background-image: linear-gradient( 350deg, @@ -214,7 +214,7 @@ body { --color-1: hsl(110, 60%, 40%); --color-2: hsl(110, 60%, 35%); filter: var(--backdrop-grass-filter); - opacity: .7; + opacity: 0.7; background-image: linear-gradient( 9deg, @@ -396,6 +396,11 @@ body[showing-chat] #chat-page-wrapper { gap: var(--gap-between-tiles); padding: var(--gap-between-tiles); } +@media (pointer: coarse) and (max-width: 480px) { + #chat-page > div > #ribbon #close-button { + order: 1; + } +} #chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar { justify-content: start; justify-content: space-between; diff --git a/dist/index.js b/dist/index.js index ac01e5d0..39f6bab3 100644 --- a/dist/index.js +++ b/dist/index.js @@ -314,6 +314,8 @@ confirmButton: "Confirm", saveButton: "Save", setButton: "Set", + filterOrCreateLabel: "Search or create", + createLabel: (query) => `Create "${query}"`, reloadAppButton: "Reload App", fileVersionLabel: "Version", searchLabel: "Search", @@ -481,9 +483,6 @@ questionReaction: "Reaction: question mark" }, task: { - newBoardNamePlaceholder: "Create a board", - createBoardButtonAudioLabel: "create board", - /// noBoardSelected: "No board selected", boardNotFound: "Board not found", /// @@ -556,6 +555,8 @@ confirmButton: "Best\xE4tigen", saveButton: "Speichern", setButton: "OK", + filterOrCreateLabel: "Suchen oder erstellen", + createLabel: (query) => `"${query}" erstellen`, reloadAppButton: "Neu laden", fileVersionLabel: "Version", searchLabel: "Suche", @@ -713,8 +714,6 @@ questionReaction: "Reaktion: Fragezeichen" }, task: { - newBoardNamePlaceholder: "Board erstellen", - createBoardButtonAudioLabel: "board erstellen", noBoardSelected: "Kein Board ausgew\xE4hlt", boardNotFound: "Board nicht gefunden", closeBoardButtonAudioLabel: "board schlie\xDFen", @@ -778,6 +777,8 @@ confirmButton: "Confirmar", saveButton: "Guardar", setButton: "OK", + filterOrCreateLabel: "Buscar o crear", + createLabel: (query) => `Crear "${query}"`, reloadAppButton: "Recargar app", fileVersionLabel: "Versi\xF3n", searchLabel: "Buscar", @@ -935,8 +936,6 @@ questionReaction: "Reaccion: signo de interrogaci\xF3n" }, task: { - newBoardNamePlaceholder: "Crear un tablero", - createBoardButtonAudioLabel: "crear tablero", noBoardSelected: "Ning\xFAn tablero seleccionado", boardNotFound: "Tablero no encontrado", closeBoardButtonAudioLabel: "cerrar tablero", @@ -1031,46 +1030,6 @@ function createTimestamp() { return (/* @__PURE__ */ new Date()).toISOString(); } - function checkDoesObjectMatchReference(reference, stringEntryObject, explicitEmptyValue = false) { - reference_entry_loop: for (const referenceEntry of Object.entries( - reference - )) { - const [referenceKey, referenceValue] = referenceEntry; - const stringEntryObjectValue = stringEntryObject[referenceKey]; - if (referenceValue == void 0) return false; - if (referenceValue[0] == "-") { - const strippedReferenceValue = referenceValue.toString().substring(1); - if (strippedReferenceValue == "" && stringEntryObjectValue != void 0 && stringEntryObjectValue != "") { - return false; - } - if (stringEntryObjectValue == strippedReferenceValue) { - return false; - } - } else { - if (explicitEmptyValue == false) { - if (referenceValue == "" && (stringEntryObjectValue == void 0 || stringEntryObjectValue == "")) { - return false; - } else if (referenceValue == "") { - continue reference_entry_loop; - } - } - if (stringEntryObjectValue != referenceValue) { - return false; - } - } - } - return true; - } - function collectObjectValuesForKey(key, converter, objects) { - const values = /* @__PURE__ */ new Set(); - for (const object of objects) { - const stringEntryObject = converter(object); - const stringEntryObjectValue = stringEntryObject[key]; - if (stringEntryObjectValue == void 0) continue; - values.add(stringEntryObjectValue.toString()); - } - return [...values.values()]; - } function checkDoesObjectMatchSearch(query, getStringsOfObject, object) { if (query == "") return true; const stringsInObject = getStringsOfObject(object); @@ -1094,6 +1053,20 @@ } return true; } + function implementFilter(allItems, matches, query, itemToString) { + function update() { + matches.clear(); + allItems.value.forEach((item) => { + if (!itemToString(item).toLowerCase().includes(query.value.toLowerCase())) return; + matches.add(item); + allItems.handleRemoval(item, () => { + matches.remove(item); + }); + }); + } + query.subscribe(update); + allItems.handleAddition(update); + } var HandlerManager = class { constructor() { this.handlers = /* @__PURE__ */ new Map(); @@ -1275,6 +1248,46 @@ ]); }); } + function collectObjectValuesForKey(key, converter, objects) { + const values = /* @__PURE__ */ new Set(); + for (const object of objects) { + const stringEntryObject = converter(object); + const stringEntryObjectValue = stringEntryObject[key]; + if (stringEntryObjectValue == void 0) continue; + values.add(stringEntryObjectValue.toString()); + } + return [...values.values()]; + } + function checkDoesObjectMatchReference(reference, stringEntryObject, explicitEmptyValue = false) { + reference_entry_loop: for (const referenceEntry of Object.entries( + reference + )) { + const [referenceKey, referenceValue] = referenceEntry; + const stringEntryObjectValue = stringEntryObject[referenceKey]; + if (referenceValue == void 0) return false; + if (referenceValue[0] == "-") { + const strippedReferenceValue = referenceValue.toString().substring(1); + if (strippedReferenceValue == "" && stringEntryObjectValue != void 0 && stringEntryObjectValue != "") { + return false; + } + if (stringEntryObjectValue == strippedReferenceValue) { + return false; + } + } else { + if (explicitEmptyValue == false) { + if (referenceValue == "" && (stringEntryObjectValue == void 0 || stringEntryObjectValue == "")) { + return false; + } else if (referenceValue == "") { + continue reference_entry_loop; + } + } + if (stringEntryObjectValue != referenceValue) { + return false; + } + } + } + return true; + } // src/ViewModel/Global/coreViewModel.ts var CoreViewModel = class _CoreViewModel { @@ -1285,7 +1298,7 @@ this.connectionModel = connectionModel2; this.chatListModel = chatListModel2; this.fileTransferModel = fileTransferModel2; - this.BUILD = "Build 26.09.22.B"; + this.BUILD = "Build 26.09.22.C"; // CONTEXT this.contextStack = /* @__PURE__ */ new Map(); this.closeContext = (contextId, fromHistoryEvent = false) => { @@ -1300,7 +1313,8 @@ } }; this.handleKeyDown = (e) => { - if (!(e instanceof KeyboardEvent)) return console.trace("NOT A KEY EVENT"); + if (!(e instanceof KeyboardEvent)) + return console.trace("NOT A KEY EVENT"); if (_CoreViewModel.checkIsKeystroke(e) == false) return; console.log(e.key); e.preventDefault(); @@ -1400,9 +1414,7 @@ if (this.isOpen == false) return; const selection = this.contextSelection; if (!selection) return; - const selectedContext = this.contexts.get( - selection - ); + const selectedContext = this.contexts.get(selection); if (!selectedContext) return; if (selectedContext != this.currentContext.value) { this.closeCurrentContext(); @@ -1793,12 +1805,8 @@ this.selectedModalPage = new State(void 0); this.requiresReload = new State(false); this.firstDayOfWeek = new State("0"); - this.language = new State( - "en" /* English */ - ); - this.theme = new State( - "system" /* System */ - ); + this.language = new State("en" /* English */); + this.theme = new State("system" /* System */); // guards this.cannotSetName = createProxyState( [this.usernameInput], @@ -1854,9 +1862,15 @@ } }; this.setScene = (scene) => { - document.body.style.setProperty("--backdrop-grass-filter", `brightness(${scene.brightness})`); + document.body.style.setProperty( + "--backdrop-grass-filter", + `brightness(${scene.brightness})` + ); function setSkyColor(tone, hue, saturation, luma) { - document.body.style.setProperty(`--sky-${tone}`, `hsl(${hue}, ${saturation}%, ${luma}%)`); + document.body.style.setProperty( + `--sky-${tone}`, + `hsl(${hue}, ${saturation}%, ${luma}%)` + ); } setSkyColor(1, scene.hue1, scene.saturation, scene.luma); setSkyColor(2, scene.hue2, scene.saturation - 10, scene.luma - 10); @@ -2210,6 +2224,7 @@ this.coreViewModel.connectionModel.address ); } + this.hideConnectionModal(); }; // methods this.connect = () => { @@ -2225,6 +2240,8 @@ this.removePreviousAddress = (address) => { this.coreViewModel.connectionModel.removeAddress(address); this.updatePreviousAddresses(); + if (this.previousAddresses.value.size > 0) return; + this.hideConnectionModal(); }; // view this.showConnectionModal = () => { @@ -2819,7 +2836,9 @@ this.time = new State(""); this.selectedVersionId = new State(""); this.versionIds = new ListState(); - this.isPresentingFullScreenDescription = new State(false); + this.isPresentingFullScreenDescription = new State( + false + ); // methods this.dragStart = (event) => { ViewController.allowDrag(event); @@ -2865,12 +2884,16 @@ if (this.containingViewModel.taskCategorySuggestions.value.has( this.category.value ) == false) { - this.containingViewModel.taskCategorySuggestions.add(this.category.value); + this.containingViewModel.taskCategorySuggestions.add( + this.category.value + ); } if (this.containingViewModel.taskStatusSuggestions.value.has( this.status.value ) == false) { - this.containingViewModel.taskStatusSuggestions.add(this.status.value); + this.containingViewModel.taskStatusSuggestions.add( + this.status.value + ); } }; // settings @@ -3042,7 +3065,10 @@ [this.searchInput], () => this.searchInput.value == "" ); - this.hasNoSuggestions = createProxyState([this.suggestions], () => this.suggestions.value.size == 0); + this.hasNoSuggestions = createProxyState( + [this.suggestions], + () => this.suggestions.value.size == 0 + ); // methods this.search = (searchTerm) => { this.searchInput.value = searchTerm; @@ -3173,9 +3199,7 @@ searchTerm ]; this.coreViewModel.storageModel.write(suggestionPath, ""); - if (!this.searchSuggestions.value.has( - searchTerm - ) && searchTerm != "") { + if (!this.searchSuggestions.value.has(searchTerm) && searchTerm != "") { this.searchSuggestions.add(searchTerm); } const lastSearchPath = this.getLastSearchPath(); @@ -3369,22 +3393,23 @@ return [...this.getBasePath(), "last-used-board" /* LastUsedBoard */]; }; // state - this.newBoardNameInput = new State(""); + this.boardQuery = new State(""); this.boardViewModels = new MapState(); + this.boardMatches = new ListState(); this.isShowingBoadList = new State(true); this.selectedBoardId = new State( void 0 ); // guards this.cannotCreateBoard = createProxyState( - [this.newBoardNameInput], - () => this.newBoardNameInput.value == "" + [this.boardQuery], + () => this.boardQuery.value == "" ); // methods this.createBoard = () => { if (this.cannotCreateBoard.value == true) return; - const boardInfoFileContent = this.boardsAndTasksModel.createBoard(this.newBoardNameInput.value); - this.newBoardNameInput.value = ""; + const boardInfoFileContent = this.boardsAndTasksModel.createBoard(this.boardQuery.value); + this.boardQuery.value = ""; this.showBoardInList(boardInfoFileContent); this.boardsAndTasksModel.updateBoardAndSend(boardInfoFileContent); this.updateBoardIndices(); @@ -3468,6 +3493,7 @@ }; this.loadData(); this.chatViewModel = chatViewModel; + implementFilter(this.boardViewModels, this.boardMatches, this.boardQuery, (board) => board.name.value); this.chatViewModel.registerContext("tasks" /* Tasks */, this); this.selectedBoardId.subscribeSilent(this.updateContexts); boardsAndTasksModel.boardHandlerManager.setHandler( @@ -5438,111 +5464,112 @@ const isSelected = entry[0] == taskViewModel.task.boardId; return Option(entry[1], entry[0], isSelected); }; - return /* @__PURE__ */ createElement("div", { class: "modal task-settings", open: true, "toggle:full-description": taskViewModel.isPresentingFullScreenDescription }, /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("main", { id: "standard-main" }, /* @__PURE__ */ createElement("h2", null, coreViewModel2.translations.chatPage.task.taskSettingsHeadline), /* @__PURE__ */ createElement("div", { class: "column-wrapper" }, /* @__PURE__ */ createElement("div", { class: "flex-column" }, /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "label"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskNameLabel), /* @__PURE__ */ createElement( - "input", - { - "bind:value": taskViewModel.name - } - ))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "category"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskBoardLabel), /* @__PURE__ */ createElement( - "select", - { - "bind:value": taskViewModel.boardId, - "children:append": [ - taskViewModel.chatViewModel.taskBoardSuggestions, - BoardOptionConverter - ] - } - ), /* @__PURE__ */ createElement("span", { class: "icon" }, "arrow_drop_down"))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "description"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskDescriptionLabel), /* @__PURE__ */ createElement( - "textarea", - { - rows: "10", - "bind:value": taskViewModel.description - } - ))), /* @__PURE__ */ createElement("div", { class: "flex-row justify-end" }, /* @__PURE__ */ createElement( - "button", - { - class: "width-50", - "on:click": taskViewModel.openFullscreenDecription - }, - coreViewModel2.translations.general.fullscreenButton, - /* @__PURE__ */ createElement("span", { class: "icon" }, "fullscreen") - ))), /* @__PURE__ */ createElement("hr", { class: "mobile-only" }), /* @__PURE__ */ createElement("div", { class: "flex-column" }, /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "category"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskCategoryLabel), /* @__PURE__ */ createElement( - "input", - { - "bind:value": taskViewModel.category, - list: categorySuggestionId - } - ))), /* @__PURE__ */ createElement( - "datalist", - { - hidden: true, - id: categorySuggestionId, - "children:append": [ - taskViewModel.containingViewModel.taskCategorySuggestions, - StringToOption - ] - } - ), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "clock_loader_40"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskStatusLabel), /* @__PURE__ */ createElement( - "input", - { - "bind:value": taskViewModel.status, - list: statusSuggestionId - } - ))), /* @__PURE__ */ createElement( - "datalist", - { - hidden: true, - id: statusSuggestionId, - "children:append": [ - taskViewModel.containingViewModel.taskStatusSuggestions, - StringToOption - ] - } - ), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "priority_high"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskPriorityLabel), /* @__PURE__ */ createElement( - "input", - { - type: "number", - "bind:value": taskViewModel.priority - } - ))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "calendar_month"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskDateLabel), /* @__PURE__ */ createElement( - "input", - { - type: "date", - "bind:value": taskViewModel.date - } - ))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "schedule"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskTimeLabel), /* @__PURE__ */ createElement( - "input", - { - type: "time", - "bind:value": taskViewModel.time - } - ))))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "history"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.general.fileVersionLabel), /* @__PURE__ */ createElement( - "select", - { - "bind:value": taskViewModel.selectedVersionId, - "children:append": [ - taskViewModel.versionIds, - VersionIdToOption - ] - } - ), /* @__PURE__ */ createElement("span", { class: "icon" }, "arrow_drop_down"))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("div", { class: "width-input" }, DangerousActionButton( - coreViewModel2, - coreViewModel2.translations.chatPage.task.deleteTaskButton, - "delete_forever", - taskViewModel.deleteTask - ))), /* @__PURE__ */ createElement("main", { id: "fullscreen-main" }, /* @__PURE__ */ createElement( - "textarea", - { - style: "height: 100%; width: 100%; max-width: unset", - "bind:value": taskViewModel.description - } - )), /* @__PURE__ */ createElement( + return /* @__PURE__ */ createElement( "div", { - class: "flex-row width-100", - id: "fullscreen-exit" + class: "modal task-settings", + open: true, + "toggle:full-description": taskViewModel.isPresentingFullScreenDescription }, - /* @__PURE__ */ createElement( + /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("main", { id: "standard-main" }, /* @__PURE__ */ createElement("h2", null, coreViewModel2.translations.chatPage.task.taskSettingsHeadline), /* @__PURE__ */ createElement("div", { class: "column-wrapper" }, /* @__PURE__ */ createElement("div", { class: "flex-column" }, /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "label"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskNameLabel), /* @__PURE__ */ createElement( + "input", + { + "bind:value": taskViewModel.name + } + ))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "category"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskBoardLabel), /* @__PURE__ */ createElement( + "select", + { + "bind:value": taskViewModel.boardId, + "children:append": [ + taskViewModel.chatViewModel.taskBoardSuggestions, + BoardOptionConverter + ] + } + ), /* @__PURE__ */ createElement("span", { class: "icon" }, "arrow_drop_down"))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "description"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskDescriptionLabel), /* @__PURE__ */ createElement( + "textarea", + { + rows: "10", + "bind:value": taskViewModel.description + } + ))), /* @__PURE__ */ createElement("div", { class: "flex-row justify-end" }, /* @__PURE__ */ createElement( + "button", + { + class: "width-50", + "on:click": taskViewModel.openFullscreenDecription + }, + coreViewModel2.translations.general.fullscreenButton, + /* @__PURE__ */ createElement("span", { class: "icon" }, "fullscreen") + ))), /* @__PURE__ */ createElement("hr", { class: "mobile-only" }), /* @__PURE__ */ createElement("div", { class: "flex-column" }, /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "category"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskCategoryLabel), /* @__PURE__ */ createElement( + "input", + { + "bind:value": taskViewModel.category, + list: categorySuggestionId + } + ))), /* @__PURE__ */ createElement( + "datalist", + { + hidden: true, + id: categorySuggestionId, + "children:append": [ + taskViewModel.containingViewModel.taskCategorySuggestions, + StringToOption + ] + } + ), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "clock_loader_40"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskStatusLabel), /* @__PURE__ */ createElement( + "input", + { + "bind:value": taskViewModel.status, + list: statusSuggestionId + } + ))), /* @__PURE__ */ createElement( + "datalist", + { + hidden: true, + id: statusSuggestionId, + "children:append": [ + taskViewModel.containingViewModel.taskStatusSuggestions, + StringToOption + ] + } + ), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "priority_high"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskPriorityLabel), /* @__PURE__ */ createElement( + "input", + { + type: "number", + "bind:value": taskViewModel.priority + } + ))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "calendar_month"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskDateLabel), /* @__PURE__ */ createElement( + "input", + { + type: "date", + "bind:value": taskViewModel.date + } + ))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "schedule"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskTimeLabel), /* @__PURE__ */ createElement( + "input", + { + type: "time", + "bind:value": taskViewModel.time + } + ))))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "history"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.general.fileVersionLabel), /* @__PURE__ */ createElement( + "select", + { + "bind:value": taskViewModel.selectedVersionId, + "children:append": [ + taskViewModel.versionIds, + VersionIdToOption + ] + } + ), /* @__PURE__ */ createElement("span", { class: "icon" }, "arrow_drop_down"))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("div", { class: "width-input" }, DangerousActionButton( + coreViewModel2, + coreViewModel2.translations.chatPage.task.deleteTaskButton, + "delete_forever", + taskViewModel.deleteTask + ))), /* @__PURE__ */ createElement("main", { id: "fullscreen-main" }, /* @__PURE__ */ createElement( + "textarea", + { + style: "height: 100%; width: 100%; max-width: unset", + "bind:value": taskViewModel.description + } + )), /* @__PURE__ */ createElement("div", { class: "flex-row width-100", id: "fullscreen-exit" }, /* @__PURE__ */ createElement( "button", { class: "flex", @@ -5550,22 +5577,14 @@ }, coreViewModel2.translations.general.exitButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "fullscreen_exit") - ) - ), /* @__PURE__ */ createElement( - "div", - { - class: "flex-row width-100", - id: "controls" - }, - /* @__PURE__ */ createElement( + )), /* @__PURE__ */ createElement("div", { class: "flex-row width-100", id: "controls" }, /* @__PURE__ */ createElement( "button", { class: "flex", "on:click": taskViewModel.closeAndDiscard }, coreViewModel2.translations.general.closeButton - ), - /* @__PURE__ */ createElement( + ), /* @__PURE__ */ createElement( "button", { class: "flex primary", @@ -5573,8 +5592,8 @@ }, coreViewModel2.translations.general.saveButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "save") - ) - ))); + ))) + ); } // src/View/Modals/searchModal.tsx @@ -5625,27 +5644,26 @@ "toggle:disabled": searchViewModel.cannotApplySearch }, /* @__PURE__ */ createElement("span", { class: "icon" }, "search") - )), /* @__PURE__ */ createElement( + )), /* @__PURE__ */ createElement("div", { "toggle:hidden": searchViewModel.hasNoSuggestions }, /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("h3", null, coreViewModel2.translations.general.searchSuggestionsLabel), /* @__PURE__ */ createElement( "div", { - "toggle:hidden": searchViewModel.hasNoSuggestions - }, - /* @__PURE__ */ createElement("hr", null), - /* @__PURE__ */ createElement("h3", null, coreViewModel2.translations.general.searchSuggestionsLabel), - /* @__PURE__ */ createElement( - "div", - { - class: "flex-column gap", - "children:append": [ - searchViewModel.suggestions, - (suggestion) => SuggestionView(suggestion, searchViewModel, coreViewModel2) - ] - } - ) - )), /* @__PURE__ */ createElement("button", { "on:click": close }, coreViewModel2.translations.general.closeButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "close")))); + class: "flex-column gap", + "children:append": [ + searchViewModel.suggestions, + (suggestion) => SuggestionView( + suggestion, + searchViewModel, + coreViewModel2 + ) + ] + } + ))), /* @__PURE__ */ createElement("button", { "on:click": close }, coreViewModel2.translations.general.closeButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "close")))); } function SuggestionView(suggestion, searchViewModel, coreViewModel2) { - const isApplied = createProxyState([searchViewModel.appliedQuery], () => searchViewModel.appliedQuery.value == suggestion); + const isApplied = createProxyState( + [searchViewModel.appliedQuery], + () => searchViewModel.appliedQuery.value == suggestion + ); function deleteSuggestion() { searchViewModel.deleteSuggestion(suggestion); } @@ -5855,7 +5873,7 @@ "button", { "set:color": boardViewModel.color, - class: "tile colored-tile", + class: "tile colored-tile slide-up", "toggle:selected": boardViewModel.isSelected, "on:click": boardViewModel.select, "on:dragover": ViewController.allowDrop, @@ -5879,6 +5897,22 @@ return BoardEntry(boardViewModel); }; + // src/View/Components/newItemEntry.tsx + function NewItemEntry(coreViewModel2, query, fn) { + const isHidden = createProxyState([query], () => query.value == ""); + const label = createProxyState([query], () => coreViewModel2.translations.general.createLabel(query.value)); + return /* @__PURE__ */ createElement( + "button", + { + class: "standard slide-up", + "toggle:hidden": isHidden, + "on:click": fn + }, + /* @__PURE__ */ createElement("span", { "subscribe:innerText": label }), + /* @__PURE__ */ createElement("span", { class: "icon" }, "add") + ); + } + // src/View/ChatPages/taskPage.tsx function TaskPage(coreViewModel2, taskPageViewModel) { taskPageViewModel.loadData(); @@ -5921,26 +5955,17 @@ "input", { class: "no-outline", - "bind:value": taskPageViewModel.newBoardNameInput, + "bind:value": taskPageViewModel.boardQuery, "on:enter": taskPageViewModel.createBoard, - placeholder: coreViewModel2.translations.chatPage.task.newBoardNamePlaceholder + placeholder: coreViewModel2.translations.general.filterOrCreateLabel } - ), /* @__PURE__ */ createElement( - "button", - { - class: "primary", - "aria-label": coreViewModel2.translations.chatPage.task.createBoardButtonAudioLabel, - "on:click": taskPageViewModel.createBoard, - "toggle:disabled": taskPageViewModel.cannotCreateBoard - }, - /* @__PURE__ */ createElement("span", { class: "icon" }, "add") - ))), /* @__PURE__ */ createElement("div", { class: "content" }, /* @__PURE__ */ createElement( + ))), /* @__PURE__ */ createElement("div", { class: "content gap" }, NewItemEntry(coreViewModel2, taskPageViewModel.boardQuery, taskPageViewModel.createBoard), /* @__PURE__ */ createElement( "div", { class: "grid gap", style: "grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr))", "children:append": [ - taskPageViewModel.boardViewModels, + taskPageViewModel.boardMatches, BoardViewModelToEntry ] } @@ -6762,6 +6787,7 @@ "button", { class: "ghost", + id: "close-button", "aria-label": coreViewModel2.translations.chatPage.closeChatAudioLabe, "on:click": chatViewModel.close }, @@ -6772,7 +6798,8 @@ class: "danger", "aria-label": coreViewModel2.translations.general.restoreConnection, "on:click": chatViewModel.connectionViewModel.showConnectionModal, - "toggle:hidden": chatViewModel.connectionViewModel.isConnected + "toggle:hidden": chatViewModel.connectionViewModel.isConnected, + "toggle:disabled": chatViewModel.connectionViewModel.hasNoPreviousConnections }, /* @__PURE__ */ createElement("span", { class: "icon" }, "signal_disconnected") ), /* @__PURE__ */ createElement("span", { class: "marquee", "children:set": marqueeContent }), /* @__PURE__ */ createElement("span", { class: "navigation-buttons" }, ChatViewToggleButton( diff --git a/src/Model/Utility/.utility.ts.swp b/src/Model/Utility/.utility.ts.swp deleted file mode 100644 index e690dbf6982802db25496f54cbceb4f28f692ef9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28672 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 diff --git a/src/View/.translations.ts.swp b/src/View/.translations.ts.swp deleted file mode 100644 index 58cd6c078f61101eda87f51a4c74d4960d2a88fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53248 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 diff --git a/src/View/ChatPages/.taskPage.tsx.swp b/src/View/ChatPages/.taskPage.tsx.swp deleted file mode 100644 index cd5595fa9172d32860e8b8b524b966c8f5910e1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeHNO^6&t6fTpPxSAMAylJ2_US=iJlZ^*;va>=aYDTj$=4U}-z@F}!*-m=8hN_y~ z9hQyYEsE$dD2g}DL6H>%K?J=7L_|oyn?EQBdPwjTz35jx{X0EBiRK_u4c}CE*Q-~r zzE}08`&BpgF4X6ZN6ozi$328R_1F5D@3-tCAKXVs%a!Wx#KU8@8 zYSHq-!TE#ra*egyqAa*wUU2DhxwdG@qo@^SX^FGy%#>nfq5)b!GoTq5&p=l;OOI?L z5AB-?mihyQ-Nw!xC&#zZwVDCVfM!55pc&8%Xa+O`ngPwg|B3zh&F_yIvkd_ z4U`+h>m6bF+(3PJsSC}3W{(}ry4k54L<^QsJ z!N>l8^#1?Lc0xV_UIyyG7U0Lb3Aq3)0K0(ufepY9+X(p>SO;DQUIU&7%D``13HcfL z33wAY25bgCxr>nVfCcOX2=M!zgnR?M1e^f&1J|brxddDUUI0qKcHrtAgj@kW2R;JU zfhFJ!U;_={Byb2Q0e^0R9B>i10IUEt;QD4leg!T8ZvhS9F<>k3#qEUjfTw|Ln+W+D zcn>%a_`nh18hBIOeFuCBNZ0|t?NZ(wR%>%=NqRuZOs|ot zDbu@p2MHC3p~isOALtW@VP zgtBH!)@pgQ;)=Ac>T0?bcd|{C!D?ofI`~R2u{XArQ`zOdQ6xlJJ-t6D)alyvp7>l{ zhk`JSJL-$S!H6WNM{P-+Kmd9&jk7i>b*Y}zWpqpkBeP`ze`UFinnq>5uc#(n_T%Ld zCZAA_Ch4kS=VM}x9exaHDw@YC8XZk$)v%&iEGYhe9gFt{Rzqah;G!`s&u#f7JBUNZ znXZs-vlm_tQ4xDQ(x*zdX%sUaG^$kt#Ly<L$}?!8|=4cAA~)N?XX%(d5rSjjTwbo>ZA5t?rDa zZOA}Xiy?pJ88YflpUPxy9;22m&HmrZQO;I+$0h#Vi>LBF8Blb3k5Qa9s&k<~`v$4V zAYg_XU=2@xoOvGQ!E{y&U6_bo{SFW!1%eXwZCZCiRRJTRqIC7pajCTu&k$2x1x2O#<=4KU6Nl92#@L;ju8B8qgpt$$vVjyM7(sMDxaCdr5Va3l(kfyY(VEFgRg4qi zN7FGAeS}o9n$hH}Z4^vXeZ1XaKB9vt z`>99D!v3gXrl+JGn#LBEpY&M6^2!+-6Aif$jnERzr}(4sSbL)ALBkS#)-xLL_-4yQ zYSjos@~EH)OE64((RWrHR(2i*@}cjyd0RP z?j?c+Gv>&&g+PUR|DVHq`rCkd|Bv?fFXMfm12teH@D<+k-v?d=IB*I$1UwAf3tUC} zF9DSYco%pFP&(fL^r0Eh3}^;41DXNNfM!55pc&8%Xa+O`V;Mkls-K@qgr@DHI4609G z3)%B%wb0_OQ^F1%k_3{Lur1MT`=Wx>VF#OSMXM`W2^&z@t!uk}+gd5k?Ble($CzpI S>FK=t(jA2URviRea^!CWl*SGK diff --git a/src/View/Components/.boardEntry.tsx.swp b/src/View/Components/.boardEntry.tsx.swp deleted file mode 100644 index 810f9b0539b054b22e859eac26f5837e29173556..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2&ubGw6vwB62hmokM-iqGArZSFQ)A%uJfp5d9DI zrvHIQ4}v%EUc3m37yk#nc~jqPHa|AO)~oV{d|7tpy*F<@GY=9n^_894CcojWFl=WS zd+_Vc!_}qp?DaXu8nJb~M>e6tK>Y5g-CYfCvx)B0vO) z01+Sp{~&=NV(i*U#y+9k|Nq0^{~t~>_6ilE>ZpsTMbt6W=LH-?Nz_f$0_x*DWA9OK zQ7=&UQMXYiP(MyF_8s*N^$ztC^&IsK)kpPEk5L8Ganw)Dz$;bWORTeF#ev(%_A-NR zOKHnPC5@dL+*Zjw-6FpWL1?`#8(64WXs#={588q*CpnCQRe6Qy@vHx2miw4hi6uRK zOpK?^b$iAh2=J7SK%=LGPEAJ89T;WP_F^~UnReZTI<7-LKeSF)ngpJRU-s*5Yn7~y zW^@ym>wFZV7)uFy8@jgAo0?1pP3TuKMAjR7Oe>fQ>B9bXOy;a7TPOl!Dmk+kM5>cx zlS5@U*Qh6(iIT-gtJX~7dx4AuY~auu*bab9_Qwo1WEebg4jKx#u+npThudkj5(2ar z2%$R8f5s&garkIvLIVOqn>Dto(GXA^3_&#G6PvBX3!pc&8mJCtCx2 zSF0w^d7h6SM>i=+{|;V_Pw&2uI&-CAh)X;$gCfhgYgcw-s~*qp7VnR(-IB)ph(5mo DO>c{W diff --git a/src/View/Modals/searchModal.tsx b/src/View/Modals/searchModal.tsx index 936534da..5d3a1c23 100644 --- a/src/View/Modals/searchModal.tsx +++ b/src/View/Modals/searchModal.tsx @@ -4,6 +4,7 @@ import { StringToOption } from "../Components/option"; import * as React from "../../react"; import SearchViewModel from "../../ViewModel/Utility/searchViewModel"; import CoreViewModel from "../../ViewModel/Global/coreViewModel"; +import {DeletableListItem} from "../Components/deletableListItem"; export function SearchModal( coreViewModel: CoreViewModel, @@ -12,92 +13,92 @@ export function SearchModal( isOpen: React.State, ) { function close() { - isOpen.value = false; + isOpen.value = false; } const suggestionId = v4(); isOpen.subscribe((isOpen) => { - if (!isOpen) return; - ViewController.setFocusWithDelay(); + if (!isOpen) return; + ViewController.setFocusWithDelay(); }); return ( - ); } @@ -107,36 +108,26 @@ function SuggestionView( coreViewModel: CoreViewModel, ) { const isApplied = React.createProxyState( - [searchViewModel.appliedQuery], - () => searchViewModel.appliedQuery.value == suggestion, + [searchViewModel.appliedQuery], + () => searchViewModel.appliedQuery.value == suggestion, ); function deleteSuggestion() { - searchViewModel.deleteSuggestion(suggestion); + searchViewModel.deleteSuggestion(suggestion); } function applySuggestion() { - searchViewModel.search(suggestion); + searchViewModel.search(suggestion); } - return ( -
- {suggestion} - - -
- ); + return DeletableListItem(coreViewModel, suggestion, + + , deleteSuggestion) } diff --git a/src/ViewModel/Global/coreViewModel.ts b/src/ViewModel/Global/coreViewModel.ts index 04706dfd..6c50ff2b 100644 --- a/src/ViewModel/Global/coreViewModel.ts +++ b/src/ViewModel/Global/coreViewModel.ts @@ -9,7 +9,7 @@ import ConnectionModel from "../../Model/Global/connectionModel"; import ChatListModel from "../../Model/Chat/chatListModel"; export default class CoreViewModel { - readonly BUILD = "Build 26.09.22.B"; + readonly BUILD = "Build 26.09.22.C"; translations: Translations;