open-consul/ui-v2/app/utils
John Cowen 466c3c6899 ui: Allow text selection of clickable elements and their contents (#5770)
* ui: Allow text selection of clickable elements and their contents

This commit disables a click on mousedown be removing the `href`
attribute and moving it to a `data-href` attribute. On mouseup it will
only move it back if there is no selection. This means that an anchor
will only be followed on click _if_ there is no selection.

This fixes the fact that whenever you select some copy within a
clickable element it immediately throws you into the linked page when
you release your mouse.

Further notes:

We use the `isCollapsed` property here which 'seems' to be classed as
'experimental' in one place where I researched it:

https://developer.mozilla.org/en-US/docs/Web/API/Selection/isCollapsed

Although in others it makes no mention of this 'experimental' e.g:

- https://webplatform.github.io/docs/dom/Selection/isCollapsed/
- https://w3c.github.io/selection-api/#dom-selection-iscollapsed

I may have gone a little overboard in feature detection for this, but I
conscious of that fact that if `isCollapsed` doesn't exist at some point
in the future (something that seems unlikely). The code here will have
no effect on the UI. But I'd specifically like a second pair of eyes on
that.

* ui: Don't break right click, detects a secondary click on mousedown

* ui: Put anchor selection capability behind an ENV var
2019-09-04 08:34:58 +00:00
..
computed UI: Service Instances (#5326) 2019-05-01 18:22:10 +00:00
dom ui: Allow text selection of clickable elements and their contents (#5770) 2019-09-04 08:34:58 +00:00
editor ui: Adds multi syntax linting to the code editor (#4814) 2018-10-19 17:36:38 +01:00
form ui: Previously we were passing through 'fake' events, revert to real.. (#5810) 2019-05-08 17:12:16 +01:00
helpers UI: Reduce in-development deprecations (also use toLocaleString) (#4677) 2018-10-01 13:42:42 +01:00
http ui: Adds XHR connection management to HTTP/1.1 installs (#5083) 2019-05-01 18:22:02 +00:00
model Tie up real endpoints 2018-06-25 12:25:15 -07:00
routing UI: [BUGFIX] Decode/encode urls (#5206) 2019-01-23 13:46:59 +00:00
search ui: Search improvements (#5540) 2019-05-01 18:22:36 +00:00
storage UI: New ACLs (#4789) 2018-10-19 08:45:05 -07:00
acls-status.js ui: Adds better error passthrough, disable/unauthorize properly on error (#5041) 2019-05-01 18:21:53 +00:00
ascend.js UI V2 (#4086) 2018-05-10 19:52:53 +01:00
atob.js ui: Move the text encoding polyfill to a a proper detecting polyfill (#4767) 2018-10-08 17:47:44 +01:00
btoa.js ui: Move the text encoding polyfill to a a proper detecting polyfill (#4767) 2018-10-08 17:47:44 +01:00
callable-type.js More detailed error messages for duplicate intentions 2018-06-25 12:25:15 -07:00
confirm.js UI V2 (#4086) 2018-05-10 19:52:53 +01:00
createURL.js UI: [BUGFIX] Decode/encode urls (#5206) 2019-01-23 13:46:59 +00:00
distance.js ui: Some trivial test additions, support env var passing of port numbers (#4728) 2018-10-26 17:50:43 +01:00
error.js UI V2 (#4086) 2018-05-10 19:52:53 +01:00
get-form-name-property.js UI: New ACLs (#4789) 2018-10-19 08:45:05 -07:00
get-object-pool.js ui: Adds XHR connection management to HTTP/1.1 installs (#5083) 2019-05-01 18:22:02 +00:00
hasStatus.js UI V2 (#4086) 2018-05-10 19:52:53 +01:00
injectableRequestToJQueryAjaxHash.js ui: Some trivial test additions, support env var passing of port numbers (#4728) 2018-10-26 17:50:43 +01:00
isFolder.js UI V2 (#4086) 2018-05-10 19:52:53 +01:00
keyToArray.js UI V2 (#4086) 2018-05-10 19:52:53 +01:00
left-trim.js Adds filtering to the KV listing page 2018-06-12 11:24:35 +01:00
makeAttrable.js UI V2 (#4086) 2018-05-10 19:52:53 +01:00
minimizeModel.js UI: ACL Roles (#5635) 2019-05-01 18:22:37 +00:00
promisedTimeout.js UI: Tooltips and feedback-dialogs are the same thing - merge (#4678) 2018-09-21 11:13:21 +01:00
remove-null.js Don't clone prev, there's no need 2018-07-06 13:09:23 +01:00
right-trim.js Adds filtering to the KV listing page 2018-06-12 11:24:35 +01:00
sumOfUnhealthy.js UI V2 (#4086) 2018-05-10 19:52:53 +01:00
templatize.js UI: New ACLs (#4789) 2018-10-19 08:45:05 -07:00
tomography.js ui: Fixes RTT display, by ensuring use of ember proxies in tomography (#5666) 2019-05-01 18:22:33 +00:00
ucfirst.js UI V2 (#4086) 2018-05-10 19:52:53 +01:00
update-array-object.js UI: ACL Roles (#5635) 2019-05-01 18:22:37 +00:00