@dji-dev/us-web-util
Runtime utilities for US Web Team at DJI.
Installing
yarn add -D @dji-dev/us-web-util
Using yarn
is highly recommended but not required.
License
Copyright 2020 DJI Technology LLC.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
API
Table of Contents
createSVGViewBox
packages/us-web-util/lib/svg.ts:5-7
Small factory function to create an SVG viewbox for {@param width} and
{@param height}.
Parameters
Returns string
requestUserLocation
packages/us-web-util/lib/dom.ts:12-33
Requests current user's location.
https://developers.google.com/web/fundamentals/native-hardware/user-location/
Returns Promise<LngLat>
compareFunc
packages/us-web-util/lib/index.ts:22-32
For use with Array#sort as the default comparator converts to
strings beforehand.
Reference:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
Parameters
Returns CompareResult
constrain
packages/us-web-util/lib/index.ts:40-50
Constrains a number between {@param min} and {@param max}.
Parameters
Returns number
injectScript
packages/us-web-util/lib/dom.ts:41-52
Injects a JS script into the tag.
Parameters
Returns Promise<void> Promise that resolves when the script is loaded.
getIsJest
packages/us-web-util/lib/index.ts:56-58
In some cases, it is useful at runtime to know if
we're inside of a Jest environment.
isScrolledToBottom
packages/us-web-util/lib/dom.ts:58-64
Returns true if {@param el} is scrolled to the bottom,
within {@param threshold}.
Parameters
el
Elementthreshold
(optional, default 0
)
jsonClone
packages/us-web-util/lib/index.ts:63-65
Using JSON.parse and JSON.stringify to clone a JS object.
Parameters
Returns T
hasScrollBar
packages/us-web-util/lib/dom.ts:70-72
Returns true if {@param el}'s scroll height is larger
than the client height.
Parameters
Returns boolean
roundFixed
packages/us-web-util/lib/index.ts:72-76
Rounds a number to a fixed set of decimal places.
Parameters
Returns number
getAllStyles
packages/us-web-util/lib/dom.ts:80-87
Returns a full stylesheet for the application.
This will include CSS Modules from Vue or React w/ proper Webpack
config.
Returns string
getRootHostname
packages/us-web-util/lib/index.ts:83-91
Removes any subdomains from the host.
Example: abc.google.com -> google.com
Parameters
Returns string
isMobileSafari
packages/us-web-util/lib/dom.ts:96-103
If we're on 'vanilla' Mobile Safari. Will not be true
for Chrome for iOS.
Modified from this analysis of different user-agents:
https://stackoverflow.com/posts/29696509/revisions
Returns boolean
invariant
packages/us-web-util/lib/index.ts:96-104
Simple implementation of the invariant pattern (used by Facebook).
Parameters
resolveTimeout
packages/us-web-util/lib/index.ts:109-111
Resolves the Promise after {@param duration}.
Parameters
duration
number (optional, default 0
)
Returns Promise<void>
resolveIdleCallback
packages/us-web-util/lib/index.ts:116-122
Resolve on next idle callback.
Returns Promise<void>