Commit Graph

7594 Commits (8274e01d34bef7d2728cd05ca4f908f5b5d727bf)

Author SHA1 Message Date
Richard Hansen a5f9c60a34 ace2_inner: Operate on Elements, not Nodes 2021-08-16 00:34:30 -04:00
Richard Hansen aad75e4661 ace2_inner: Factor out duplicate line number div creation 2021-08-16 00:34:30 -04:00
Richard Hansen 3237f8d123 ace2_inner: Simplify iteration over line number divs 2021-08-16 00:34:30 -04:00
Richard Hansen b238d9610a ace2_inner: Factor out duplicate line height application 2021-08-16 00:34:30 -04:00
Richard Hansen 1b890e3d4d ace2_inner: Replace `lineNumbersShown` with number of children 2021-08-16 00:34:30 -04:00
Richard Hansen 27363bf729 ace2_inner: Add line number divs directly, not via fragment
There's no layout thrashing so the fragment doesn't provide any
benefit.
2021-08-16 00:34:30 -04:00
Richard Hansen e1a024847c ace2_inner: Delete unnecessary `innerdocbody` variable 2021-08-16 00:34:30 -04:00
Richard Hansen 7d807d2fc5 ace2_inner: Delete unnecessary `container` variable 2021-08-16 00:34:30 -04:00
Richard Hansen 4b4584c264 ace2_inner: Delete unnecessary `doc` and `root` variables 2021-08-16 00:34:25 -04:00
Richard Hansen ec63c15a40 ace2_inner: Simplify document body selection 2021-08-16 00:31:09 -04:00
Richard Hansen 11c86e677a ace2_inner: Consistently use `outerWin` and `outerDoc` 2021-08-16 00:31:09 -04:00
Richard Hansen 98c1ba5808 ace2_inner: Use destructuring assignment to simplify 2021-08-16 00:31:09 -04:00
Richard Hansen c7be4f9d2d ace2_inner: Move `sidedivinner` creation to ace.js 2021-08-16 00:31:09 -04:00
Richard Hansen 15b1d4cb75 ace2_inner: Build `sidedivinner` programmatically 2021-08-16 00:31:09 -04:00
Richard Hansen b80295c228 ace2_inner: Combine declaration and initialization 2021-08-16 00:31:09 -04:00
Richard Hansen 7a8edc816b ace2_inner: Replace `initLineNumbers()` with an IIFE 2021-08-16 00:31:09 -04:00
Richard Hansen b5bfff43cf ace2_inner: Delete redundant class assignment 2021-08-16 00:31:08 -04:00
Richard Hansen e581ee01f2 ace2_inner: Formatting improvements 2021-08-16 00:30:50 -04:00
Richard Hansen 0ca5a3459f Timeslider: Install an error handler 2021-08-14 07:44:05 -04:00
Richard Hansen 1e22e0102d Timeslider: Move `<title>` and `<script>` inside `<head>` 2021-08-14 07:44:05 -04:00
Richard Hansen b6fba9d66d Pad: Improve page load error handler
* Install the error handler early.
  * Include stack trace.
  * Remove unnecessary escaping.
  * Improve formatting.
  * Move to a separate script file.
2021-08-14 07:44:05 -04:00
Richard Hansen d4e74fd038 Pad: Add missing `<head>` and `<body>` tags
The comment "head and body had been removed intentionally" implies
that the tags were causing some sort of problem, but the commit that
removed them (57075d1545) didn't provide
any rationale. I'm assuming it was a mistake.
2021-08-14 07:44:05 -04:00
Richard Hansen 4a1f21ce34 pad_editbar: Convert snake case to camel case 2021-08-14 07:26:31 -04:00
Richard Hansen 5478d2ce60 pad_editbar: Use ES6 class syntax for readability 2021-08-14 07:26:31 -04:00
Richard Hansen 97ccf9e082 pad_editbar: Factor out duplicate code 2021-08-14 07:08:57 -04:00
Richard Hansen ee41de4809 pad_editbar: Deprecate the `toggleDropDown` callback 2021-08-14 07:08:57 -04:00
Richard Hansen c629ee09a8 pad_editbar: Call the callback asynchronously
This follows JavaScript best practices.
2021-08-14 07:08:57 -04:00
Richard Hansen 148e10821b pad_editbar: Always call the callback 2021-08-14 07:08:57 -04:00
Richard Hansen 07e05a92eb pad_editbar: Call the callback after all work is done 2021-08-14 07:08:57 -04:00
Richard Hansen a1b924f746 pad_editbar: Don't pass a callback to `toggleDropDown()`
The function is synchronous so there's no point.
2021-08-14 07:08:57 -04:00
Richard Hansen 59d6a8b321 pad_editbar: Delete unnecessary `returned` variable 2021-08-14 07:01:50 -04:00
Richard Hansen a4652d67a0 pad_editbar: Move `commands` up for readability 2021-08-14 07:01:50 -04:00
Richard Hansen fda34407f9 pad_editbar: Move `dropdowns` initialization to constructor
This avoids null dereference if a buggy caller calls
`toggleDropDown('none')` before `init()`. (Ideally the caller would be
fixed, but this is not always feasible.)
2021-08-14 07:01:34 -04:00
Richard Hansen 42b0b1bf00 pad_editbar: Move `syncAnimation` out of `padeditbar` IIFE
This avoids the need for an IIFE.
2021-08-14 07:01:13 -04:00
Richard Hansen ee996f530f pad_editbar: Remove unnecessary `syncAnimationFn` variable 2021-08-14 07:01:13 -04:00
Richard Hansen 4b4eef5f4a pad_editbar: Convert `registerDefaultCommands()` into a method 2021-08-14 07:01:13 -04:00
Richard Hansen 0d4f147349 pad_editbar: Simplify iteration 2021-08-14 07:01:13 -04:00
Richard Hansen 11faf6104a pad_editbar: Convert `bodyKeyEvent()` into a method 2021-08-14 07:01:13 -04:00
Richard Hansen b2fe6e3e7e pad_editbar: Fix invalid use of `this` 2021-08-14 07:01:12 -04:00
Richard Hansen b884628a5a pad_editbar: Use arrow functions for callbacks, IIFEs 2021-08-14 07:01:12 -04:00
Richard Hansen bdaa66c346 pad_editbar: Use `this` instead of `self` 2021-08-14 07:01:12 -04:00
Richard Hansen 118c66e5d0 HTML import: Improve log message for invalid HTML 2021-08-12 13:53:23 -04:00
Richard Hansen c816c20bc7 HTML import: Replace cheerio with jsdom to simplify contentcollector
Cheerio provides jQuery-like objects but they wrap DOM Node-like
objects that are not 100% API compatible with the DOM spec. Because of
this, contentcollector, which is used in browsers and in Node.js
during HTML import, has until now needed to support two different
APIs. This commit modifies HTML import to use jsdom instead of cheerio
and simplifies contentcollector.
2021-08-12 13:53:23 -04:00
Volker Bijewitz 84d6d277d7 Accessibility fix for JAWS screen readers
ace.js: removed the role 'application' from innerDocument.body. JAWS
do not read any text from the edit lines if this role is set.

domline.createDomLine: to give JAWS the ability to read the lines
correctly, it is required to set the attribute 'aria-live' to
'assertive'.
2021-08-12 13:48:08 -04:00
Richard Hansen 15995acc2a deps: Bump require-kernel and yajsml
This brings improvements to the readability of stack traces,
especially in Firefox.
2021-08-09 19:04:42 -04:00
translatewiki.net 9eadd9988f Localisation updates from https://translatewiki.net. 2021-08-09 13:03:33 +02:00
snyk-bot 33a43b7082 fix: upgrade rate-limiter-flexible from 2.2.2 to 2.2.3
Snyk has created this PR to upgrade rate-limiter-flexible from 2.2.2 to 2.2.3.

See this package in npm:
https://www.npmjs.com/package/rate-limiter-flexible

See this project in Snyk:
https://app.snyk.io/org/johnmclear/project/d9a12bfb-7ccd-443f-9e22-f30d339cc8c5?utm_source=github&utm_medium=upgrade-pr
2021-08-02 20:43:44 -04:00
translatewiki.net fd4fb8874e Localisation updates from https://translatewiki.net. 2021-08-02 13:02:54 +02:00
webzwo0i e61888dfe2 ace.js: Don't use srcdoc when creating iframes (see #4975)
Using srcdoc, especially with multiple nested iframes, seems to be
problematic when using `self` in CSP policies.
2021-07-30 03:51:57 -04:00
Richard Hansen 9fda5adcef ace2_inner.js: Improve discovery of `sidediv` and `linemetricsdiv`
The `Node.nextSibling` property returns the next Node, not the next
Element. If whitespace, an HTML comment, or any other type of
non-Element Node is ever introduced between the Elements then
`.nextSibling` no longer returns the desired Element. Switching to
`Element.nextElementSibling` would work, but finding the Elements by
ID is more readable and future-proof.
2021-07-30 03:51:56 -04:00