- 13 Apr, 2020 1 commit
-
-
Robert Knight authored
Implement a fallback for browsers that don't support the CSS `mix-blend-mode` property (IE 11, Edge < 79) by merging overlapping highlights into a single layer with uniform opacity. This prevents overlapping highlights from affecting readability since highlights are blended with the content underneath using normal blending in this case.
-
- 11 Apr, 2020 1 commit
-
-
Robert Knight authored
Improve the readability of highlights on PDFs by creating the highlights in an SVG layer overlaid on top of the page's `<canvas>` instead of using the CSS `background-color` property on the `<hypothesis-highlight>` elements in the page's text layer. Using an SVG placed in the DOM like this allows us to control how the highlight is blended with the content underneath using CSS `mix-blend-mode`. Using the `multiply` blend mode [2] means that highlights will darken the content below rather than making dark text in the canvas appear lighter and muddier. Additionally this approach gives us more control over the appearance of overlapping highlights. Note that for the custom blending to work, it is important that the SVG is in the same stacking context as the canvas [1] We still need to keep the `<hypothesis-highlight>` elements in the text layer for interactive functionality (eg. interacting with highlights using the keyboard or pointer). The SVG highlight is associated with the `<hypothesis-highlight>` via an `svgHighlight` property so that the SVG can be removed when the highlight itself is removed. [1] https://drafts.fxtf.org/compositing-1/#csscompositingrules_CSS [2] https://drafts.fxtf.org/compositing-1/#valdef-blend-mode-multiply
-
- 08 Apr, 2020 5 commits
-
-
Robert Knight authored
Use `Injector` to initialize services
-
Robert Knight authored
Refactor profile data access in the store
-
Robert Knight authored
This PR refactors accessing and updating of profile data from `/api/profile` in the store: - Always access the profile data fetched from `/api/profile` via the `store.profile()` selector rather than using `store.getState().session...`. - Move the profile data from the top level of `state.session` into a `profile` field (`state.session.profile`) - Rename `store.updateSession()` to `store.updateProfile()` for consistency with the `profile()` selector. The previous name is a holdover from when "session" meant "the user's cookie session". These changes make this store module follow our agreed best practices to avoid accessing state directly, rather than via a selector, and will also make it easier to add additional session-related state in future which is not fetched from `/api/profile`. One subtle but intended change is that `state.session.profile` is now always _replaced_ when the profile is udpated, rather than it being the result of merging the previous and current state. The previous behavior could introduce subtle bugs where state from a previous login remained after switching the user.
-
Robert Knight authored
Replace Angular's `run` function which is used to run initialization logic once all services are constructed with a new `Injector#run` method. This allows us to remove the dependency on Angular for running app initialization logic which requires access to service instances. As a result, services that are not used by remaining Angular components no longer need to be registered with Angular at all.
-
Robert Knight authored
Improve readability of nested highlights in PDFs
-
- 07 Apr, 2020 1 commit
-
-
Kyle Keating authored
- Tab will add the first suggestion in the autocomplete list if the list is not empty and `Tab` is pressed without any suggestion being selected. - Tab can act as `Enter` or `,` and add a selected tag from a list when pressed.
-
- 06 Apr, 2020 21 commits
-
-
Kyle Keating authored
Allow `groups` filter to resolve from an RCP ancestor frame - If the groups array exists at load time, leave it in place. - If the groups array value is equal to '$rcp:requestGroups' then fetch that value with a second RCP request to the ancestor frame.
-
Robert Knight authored
Remove annotation-mapper service and associated Angular events
-
Robert Knight authored
Move coverage reporting from Travis to Jenkins
-
dependabot-preview[bot] authored
Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.648.0 to 2.653.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.648.0...v2.653.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
Lyza Gardner authored
Move management of “isSaving” state for annotations into the store
-
Robert Knight authored
Bump dom-node-iterator from 3.5.3 to 5.0.0
-
Robert Knight authored
Bump focus-visible from 5.0.2 to 5.1.0
-
Robert Knight authored
Bump axe-core from 3.5.2 to 3.5.3
-
Robert Knight authored
Bump dom-anchor-text-position from 4.0.0 to 5.0.0
-
Robert Knight authored
Bump terser from 4.6.7 to 4.6.10
-
dependabot-preview[bot] authored
Bumps [prettier](https://github.com/prettier/prettier) from 2.0.2 to 2.0.4. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.0.2...2.0.4) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [terser](https://github.com/terser/terser) from 4.6.7 to 4.6.10. - [Release notes](https://github.com/terser/terser/releases) - [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md) - [Commits](https://github.com/terser/terser/compare/v4.6.7...v4.6.10) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [dom-anchor-text-position](https://github.com/tilgovi/dom-anchor-text-position) from 4.0.0 to 5.0.0. - [Release notes](https://github.com/tilgovi/dom-anchor-text-position/releases) - [Commits](https://github.com/tilgovi/dom-anchor-text-position/compare/v4.0.0...v5.0.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [axe-core](https://github.com/dequelabs/axe-core) from 3.5.2 to 3.5.3. - [Release notes](https://github.com/dequelabs/axe-core/releases) - [Changelog](https://github.com/dequelabs/axe-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/dequelabs/axe-core/compare/v3.5.2...v3.5.3) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [focus-visible](https://github.com/WICG/focus-visible) from 5.0.2 to 5.1.0. - [Release notes](https://github.com/WICG/focus-visible/releases) - [Commits](https://github.com/WICG/focus-visible/compare/v5.0.2...v5.1.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [dom-node-iterator](https://github.com/tilgovi/dom-node-iterator) from 3.5.3 to 5.0.0. - [Release notes](https://github.com/tilgovi/dom-node-iterator/releases) - [Commits](https://github.com/tilgovi/dom-node-iterator/compare/v3.5.3...v5.0.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
Robert Knight authored
Jenkins is the primary CI system and the source of truth for test status, so it makes sense to generate coverage reports here too. This also paves the way for potentially replacing codecov for coverage status reporting with an alternative system in future which produces output that devs find easier to work with.
-
Robert Knight authored
In PDFs, highlights are drawn in an otherwise-transparent text layer _on top_ of a canvas which displays the text that the user sees. Therefore highlights reduce the contrast of the text below and more than two levels starts to make the text very difficult to read. The ideal solution would be to draw the highlights below the text, but that's not trivial. As a simple step to improve the situation, make nested highlights that are 3+ levels deep transparent. This limits the amount of contrast reduction that overlapping highlights can cause. In web pages, the highlights are drawn _behind_ the text, so contrast is not reduced as much, but the same change is applied there for a consistent experience and also because it is easier to implement. Partially addresses: - https://github.com/hypothesis/client/issues/1995 - https://github.com/hypothesis/client/issues/408
-
Robert Knight authored
-
Robert Knight authored
-
Robert Knight authored
Replace `annotationMapper.loadAnnotations` with a direct call to `store.addAnnotations`, since `loadAnnotations` is now just a trivial wrapper around it.
-
- 04 Apr, 2020 1 commit
-
-
Robert Knight authored
Replace `annotationMapper.{deleteAnnotation, flagAnnotation}` with `annotationsService.{delete, flag}`. This is another step towards consolidating the logic for making annotation-related API calls and updating the store into the annotations service and removing the legacy annotationMapper service.
-
- 03 Apr, 2020 10 commits
-
-
Robert Knight authored
-
Robert Knight authored
These events are now just indirection around a call to `store.addAnnotations`.
-
Robert Knight authored
Replace ANNOTATION_DELETED event with direct call to `store.removeAnnotations`.
-
Robert Knight authored
Nothing listened for this.
-
Robert Knight authored
`$rootScope` was used to trigger an Angular digest cycle after processing WebSocket messages. This is no longer necessary as WS messages trigger store action dispatches and the store takes care of any steps needed to update the UI.
-
Robert Knight authored
Fix Hammer.JS error on web pages that use Require.JS
-
Robert Knight authored
Add button to adder toolbar to show annotations for selection
-
Robert Knight authored
-
Robert Knight authored
-
Lyza Gardner authored
Remove `onReplyCountClick` prop and use store method instead
-