summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-12-08all: update all dependencies and populate the "package.json" filev0.1.0Shulhan
2023-12-08editor: set key control to false on blurShulhan
Sometimes we got an issue where pressing enter may cause the editor being saved without pressing Control key.
2023-12-08editor: reduce the padding in the contentShulhan
The gap make us confuse between space and padding.
2023-11-21editor: update layout without using floatShulhan
2023-11-21editor: fix paste that always add new lineShulhan
2023-11-21editor: replace execCommand with SelectionShulhan
The execCommand has been deprecated according to Mozilla Developer Network. This changes require the tsc target set to es2019 to be able to use the string trimEnd method. [1]: https://developer.mozilla.org/en-US/docs/Web/API/document/execCommand
2023-11-15vfs: set the crumb style without wrapShulhan
In case the directory is too long, the name can span multiline, break automatically by browser and overlap with previous crumbs.
2023-11-15editor: add method to set content editable or notShulhan
2023-11-15editor: use CTRL+Enter to trigger save instead of CTRL+sShulhan
Using CTRL+s sometimes cause pressing s only trigger the save.
2023-11-15vfs: make the path and list tab-ableShulhan
Pressing tab key should iterate through crumb in the path and in the item in the list.
2023-11-11vfs: add function "filter"Shulhan
The filter function filter and display the list of node by its name.
2023-11-11all: update all npm devDependenciesShulhan
2023-11-11editor: re-render content after saveShulhan
This is to make the content that we save and the content on editor is always same.
2023-11-11editor: handle paste event manuallyShulhan
On each paste event, re-render the line number in case the clipboard contains new lines.
2023-11-11input: use lower case for method name SetShulhan
2023-11-05editor: simplify using one contenteditableShulhan
Using multiple lines of content editable is hard, especially when involving selection, deletion, and managing undo-redo history.
2023-11-02editor: handle mouse selection, copy, and paste multiple linesShulhan
Previously, mouse selection only works on single line. This changes, make mouse selection works on multiple lines, also when user press CTRL+C we reformat the copied data to add line-feed so we can split later during paste.
2023-11-01editor: handle DELETE on selectionShulhan
If user select text and press delete key, the selected text should be deleted.
2023-10-31all: set files to be transpiled in "tsconfig.json"Shulhan
2023-10-30editor: fix handling control keyShulhan
Instead of binding key up and down on each line for handling, bind it to document.
2023-10-24all: fix all linter warnings from tsc and eslintShulhan
In this changes we introduce eslint as our linter for TypeScript and update our tsconfig to be more strict. The ".eslintrc.yaml" and "tsconfig.json" is taken from golang/website repository [1]. [1]: https://cs.opensource.google/go/x/website
2023-10-24all: reformat all filesShulhan
I cannot remember how I reformat those files previously, probably without any tools. This changes reformat the TypeScript files using prettier and HTML files using js-beautify.
2022-04-20all: simplify MakefileShulhan
2022-04-20all: accept the address options as isShulhan
This remove the insecure option since in the browser, the WebSocket client does not have an option to ignore invalid certificate (the user must accept the invalid certificate by them self).
2022-03-15all: re-licensing wui under GPL 3.0 or laterShulhan
See https://kilabit.info/journal/2022/gpl/ for more information.
2021-10-20vfs: add class attribute to path and list componentsShulhan
The VFS path component now have class "wui_vfs_path" and the list component have class "wui_vfs_list".
2021-10-20editor: handle key DeleteShulhan
When delete key pressed on line, it will delete single character or join the current line with the next line.
2021-10-20editor: export the ClearSelection methodShulhan
The ClearSelection method clear the selection indicator on user interface.
2021-10-20all: check for response ID 0 to before call onBroadcastShulhan
A response is defined as broadcast from server when the ID is 0.
2021-09-27all: implement WebSocket clientShulhan
The WebSocket client have only one method "Send" that send request to the server based on predefined format WuiWebSocketRequest in synchronous way, which means it will wait for the response and pass it back to the caller based on the request ID.
2021-09-19input: remove background color on hint elementShulhan
It is up to the user on how to set the background color of any elements, not the library.
2021-09-19input: add option "is_hint_toggled"Shulhan
If the "is_hint_toggled" is true, the hint text will be displayed by default on first render, instead of hidden. While at it, add 2px to the top margin of the hint element to make it separatable from the input element.
2021-09-19input: display the new value on changes inside the exampleShulhan
Instead of printing the new value using console.log, display it as text below the example.
2021-09-19input: allow floating value on WuiInputNumberShulhan
While at it, set the input number "step" option to "any".
2021-09-18input: add method to set the input valueShulhan
The input number, select, and string now have method Set to set the current value.
2021-09-11notif: set the notification z-index to 10000Shulhan
This fix the notification displayed below other element, while it should be on top.
2021-09-11input: add options to add custom CSS class to label and inputShulhan
The input options for string, number, and select now have two additional options: "class_label" and "class_input". The "class_label" option will add custom CSS class to the input label. The "class_input" option will add custom CSS class to the input group.
2021-09-11input: allow label to be HTMLElement instead of only stringShulhan
A label on input can be a string or another HTMLElement.
2021-09-05notif: convert the example using TypeScript and load it with type="module"Shulhan
2021-09-05vfs: refactor example to use TypeScript loaded with type="module"Shulhan
2021-09-05editor: convert the example to TypeScript and loaded as moduleShulhan
2021-09-05input: implement input for checkboxesShulhan
The WuiInputCheckboxes class can create an HTML input for selecting one or more item using checkbox. The class require the following options: label, name, and options; and optionally id, hint, is_disabled, and onChangeHandler. The onChangeHandler receive all checked values.
2021-09-05input: implement class for input with selectShulhan
The WuiInputSelect create an HTML input for selecting one more item.
2021-09-05input: implement class WuiInputStringShulhan
The WuiInputString create an HTML input for string with predefined options. The required options are "label" and "value".
2021-09-05input: implement class for input numberShulhan
The WuiInputNumber create an HTML input that allow number only, with optional max and min options. The required options is "label" and "value". Format of generated HTML output, <div [id=${id}] class="${WUI_INPUT_NUMBER_CLASS}"> <div> <label class="${WUI_INPUT_NUMBER_CLASS_LABEL}">${label}</label> <input class="${WUI_INPUT_NUMBER_CLASS_INPUT}" [max=${max}] [min=${min}] [disabled=${is_disabled}] value=${value} > <span class="${WUI_INPUT_NUMBER_CLASS_HINT_TOGGLER}">i </span> </div> <div class="${WUI_INPUT_NUMBER_CLASS_HINT}">${hint}</div> </div> User can set onChangeHandler to receive new value when the value changes and valid; otherwise, if the value is invalid, the input background will changes accordingly.
2021-09-05all: set target compiler lib, target and module to es2015Shulhan
In order to minimize dependencies with require.js, we set the "lib", "target" and "module" to es2015 and "esModuleInterop" to true to allow module importable on browser.
2021-08-30editor: fix example converting the content to base64Shulhan
2021-08-30vfs: remove WuiVfsNode in favor of WuiVfsNodeInterfaceShulhan
Since WuiVfsNode does not have any methods then and the constructor only initialize the value to zero, we remove the type and use the interface instead.
2021-08-29all: remove and ignore generate JavaScript filesShulhan
2021-08-29editor: remove unused import WuiResponseInterfaceShulhan