feat: add dynamic constant management to the calculator core
This commit is contained in:
+9
-8
@@ -1,8 +1,9 @@
|
||||
# Project memory
|
||||
|
||||
- RPN calculator JS project.
|
||||
- Read `.memory/state.md` for current state.
|
||||
- Keep names and commands in English.
|
||||
- Update memory files based on events: engine, demo, API, commands, exports, docs, or tasks.
|
||||
- Core arithmetic now includes `root` for y-th roots, and `samples/calc-02/` uses it for `y√x`.
|
||||
- `samples/calc-02/` in portrait mode remains the active responsive demo.
|
||||
# State
|
||||
- Core engine: `src/rpn-calculator.js`
|
||||
- Active demo: `samples/calc-02/` portrait-only HP48GX layout; display-adjacent button row stays in 4 columns and now shares the same base button styling as the function keys
|
||||
- Mode button shows the current angle mode only; selecting a mode uses a popup menu
|
||||
- Public API: `push`, `pop`, `clear`, `swap`, `remove`, `edit`, `isValidIndex`, `input`, `command`, `getOperationsByCategory`, `getConstants`, `listConstants`, `setConstant`, `removeConstant`, `hasConstant`
|
||||
- Config: `maxSize`, `base`, `angleMode`, `enabledCommands`
|
||||
- Commands: arithmetic, stack, trigonometry, constants `pi` and `e`; arithmetic now includes `root` for y-th roots; constants can now be added or removed dynamically through the core API and the calc-02 constant menu reads from the engine
|
||||
- Demo actions: keyboard focus is kept on the hidden input on desktop so typing keeps working; the keypad layout places Enter in the bottom-left, ± in the former Enter position, and Esc before Clear for safety; paste parses clipboard text as a number before pushing it to the stack; Ctrl+V is supported via the hidden input paste event; backspace is ignored when the stack is empty; operation errors are shown as an overlay bar on top of the calculator with a shorter timeout and darker red; the display button row uses a 4-column grid with a spacer cell to preserve alignment
|
||||
- Exports: browser `window.RpnCalculator`, CommonJS `module.exports`
|
||||
|
||||
+2
-2
@@ -2,8 +2,8 @@
|
||||
- Core engine: `src/rpn-calculator.js`
|
||||
- Active demo: `samples/calc-02/` portrait-only HP48GX layout; display-adjacent button row stays in 4 columns and now shares the same base button styling as the function keys
|
||||
- Mode button shows the current angle mode only; selecting a mode uses a popup menu
|
||||
- Public API: `push`, `pop`, `clear`, `swap`, `remove`, `edit`, `isValidIndex`, `input`, `command`, `getOperationsByCategory`, `getConstants`
|
||||
- Public API: `push`, `pop`, `clear`, `swap`, `remove`, `edit`, `isValidIndex`, `input`, `command`, `getOperationsByCategory`, `getConstants`, `listConstants`, `setConstant`, `removeConstant`, `hasConstant`
|
||||
- Config: `maxSize`, `base`, `angleMode`, `enabledCommands`
|
||||
- Commands: arithmetic, stack, trigonometry, constants `pi` and `e`; arithmetic now includes `root` for y-th roots
|
||||
- Commands: arithmetic, stack, trigonometry, constants `pi`, `e`, `phi`, `g`, and `c`; arithmetic now includes `root` for y-th roots; constants can now be added or removed dynamically through the core API
|
||||
- Demo actions: keyboard focus is kept on the hidden input on desktop so typing keeps working; the keypad layout places Enter in the bottom-left, ± in the former Enter position, and Esc before Clear for safety; paste parses clipboard text as a number before pushing it to the stack; Ctrl+V is supported via the hidden input paste event; backspace is ignored when the stack is empty; operation errors are shown as an overlay bar on top of the calculator with a shorter timeout and darker red; the display button row uses a 4-column grid with a spacer cell to preserve alignment
|
||||
- Exports: browser `window.RpnCalculator`, CommonJS `module.exports`
|
||||
|
||||
Reference in New Issue
Block a user