@github/browser-support 4.1.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@github/browser-support",
3
- "version": "4.1.0",
3
+ "version": "4.2.0",
4
4
  "description": "Polyfills and Capable Browser detection",
5
5
  "homepage": "https://github.github.io/browser-support",
6
6
  "bugs": {
@@ -24,9 +24,10 @@
24
24
  ],
25
25
  "scripts": {
26
26
  "build": "tsc --build",
27
+ "check": "tsc --noEmit",
27
28
  "lint": "eslint . --ignore-path .gitignore",
28
- "pretest": "npm run build",
29
- "test": "npm run lint && karma start test/karma.config.cjs",
29
+ "pretest": "npm run lint && npm run check",
30
+ "test": "wtr",
30
31
  "prepack": "npm run build",
31
32
  "postpublish": "npm publish --ignore-scripts --@github:registry='https://npm.pkg.github.com'"
32
33
  },
@@ -36,18 +37,17 @@
36
37
  "@types/node": "^20.5.7",
37
38
  "@typescript-eslint/eslint-plugin": "^6.5.0",
38
39
  "@typescript-eslint/parser": "^6.5.0",
39
- "chai": "^4.3.8",
40
- "chromium": "^3.0.3",
40
+ "@web/dev-server-esbuild": "^1.0.4",
41
+ "@web/test-runner": "^0.20.0",
42
+ "chai": "^5.2.0",
41
43
  "eslint": "^8.48.0",
42
44
  "eslint-plugin-github": "^4.10.0",
43
- "karma": "^6.4.2",
44
- "karma-chai": "^0.1.0",
45
- "karma-chai-spies": "^0.1.4",
46
- "karma-chrome-launcher": "^3.2.0",
47
- "karma-mocha": "^2.0.1",
48
- "karma-mocha-reporter": "^2.2.5",
49
- "mocha": "^10.2.0",
50
45
  "tslib": "^2.6.2",
51
46
  "typescript": "^5.2.2"
47
+ },
48
+ "dependencies": {
49
+ "@oddbird/popover-polyfill": "^0.5.2",
50
+ "dialog-toggle-events-polyfill": "^1.1.2",
51
+ "invokers-polyfill": "^0.5.2"
52
52
  }
53
53
  }
@@ -1,12 +0,0 @@
1
- type ClipboardItems = Record<string, string | Blob | PromiseLike<string | Blob>>;
2
- export declare class ClipboardItem {
3
- constructor(items: ClipboardItems, options?: ClipboardItemOptions | undefined);
4
- get presentationStyle(): PresentationStyle;
5
- get types(): readonly string[];
6
- getType(type: string): Promise<Blob>;
7
- }
8
- export declare function isSupported(): boolean;
9
- export declare function isPolyfilled(): boolean;
10
- export declare function apply(): void;
11
- export {};
12
- //# sourceMappingURL=clipboarditem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clipboarditem.d.ts","sourceRoot":"","sources":["../src/clipboarditem.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;AAGhF,qBAAa,aAAa;gBACZ,KAAK,EAAE,cAAc,EAAE,OAAO,GAAE,oBAAoB,GAAG,SAAc;IAMjF,IAAI,iBAAiB,IAAI,iBAAiB,CAEzC;IAED,IAAI,KAAK,sBAER;IAEK,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS3C;AAED,wBAAgB,WAAW,IAAI,OAAO,CAOrC;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,KAAK,IAAI,IAAI,CAI5B"}
@@ -1,44 +0,0 @@
1
- const records = new WeakMap();
2
- const presentationStyles = new WeakMap();
3
- export class ClipboardItem {
4
- constructor(items, options = {}) {
5
- if (Object.keys(items).length === 0)
6
- throw new TypeError('Empty dictionary argument');
7
- records.set(this, items);
8
- presentationStyles.set(this, options.presentationStyle || 'unspecified');
9
- }
10
- get presentationStyle() {
11
- return presentationStyles.get(this) || 'unspecified';
12
- }
13
- get types() {
14
- return Object.freeze(Object.keys(records.get(this) || {}));
15
- }
16
- async getType(type) {
17
- const record = records.get(this);
18
- if (record && type in record) {
19
- const item = await record[type];
20
- if (typeof item === 'string')
21
- return new Blob([item], { type });
22
- return item;
23
- }
24
- throw new DOMException("Failed to execute 'getType' on 'ClipboardItem': The type was not found", 'NotFoundError');
25
- }
26
- }
27
- export function isSupported() {
28
- try {
29
- new globalThis.ClipboardItem({ 'text/plain': Promise.resolve('') });
30
- return true;
31
- }
32
- catch {
33
- return false;
34
- }
35
- }
36
- export function isPolyfilled() {
37
- return globalThis.ClipboardItem === ClipboardItem;
38
- }
39
- export function apply() {
40
- if (!isSupported()) {
41
- globalThis.ClipboardItem = ClipboardItem;
42
- }
43
- }
44
- //# sourceMappingURL=clipboarditem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clipboarditem.js","sourceRoot":"","sources":["../src/clipboarditem.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAiC,CAAA;AAC5D,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAoC,CAAA;AAC1E,MAAM,OAAO,aAAa;IACxB,YAAY,KAAqB,EAAE,UAA4C,EAAE;QAC/E,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAA;QACrF,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACxB,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,IAAI,aAAa,CAAC,CAAA;IAC1E,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,aAAa,CAAA;IACtD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE;YAC5B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAE,CAAA;YAChC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAC,IAAI,EAAC,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAA;SACZ;QACD,MAAM,IAAI,YAAY,CAAC,wEAAwE,EAAE,eAAe,CAAC,CAAA;IACnH,CAAC;CACF;AAED,MAAM,UAAU,WAAW;IACzB,IAAI;QACF,IAAI,UAAU,CAAC,aAAa,CAAC,EAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAC,CAAC,CAAA;QACjE,OAAO,IAAI,CAAA;KACZ;IAAC,MAAM;QACN,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC,aAAa,KAAK,aAAa,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,IAAI,CAAC,WAAW,EAAE,EAAE;QAClB,UAAU,CAAC,aAAa,GAAG,aAAa,CAAA;KACzC;AACH,CAAC"}
@@ -1,15 +0,0 @@
1
- declare global {
2
- interface Element {
3
- checkVisibility(options?: Partial<CheckVisibilityOptions>): boolean;
4
- }
5
- }
6
- interface CheckVisibilityOptions {
7
- checkOpacity: boolean;
8
- checkVisibilityCSS: boolean;
9
- }
10
- export declare function checkVisibility(this: Element, { checkOpacity, checkVisibilityCSS }?: Partial<CheckVisibilityOptions>): boolean;
11
- export declare function isSupported(): boolean;
12
- export declare function isPolyfilled(): boolean;
13
- export declare function apply(): void;
14
- export {};
15
- //# sourceMappingURL=element-checkvisibility.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"element-checkvisibility.d.ts","sourceRoot":"","sources":["../src/element-checkvisibility.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO;QACf,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAA;KACpE;CACF;AAED,UAAU,sBAAsB;IAC9B,YAAY,EAAE,OAAO,CAAA;IACrB,kBAAkB,EAAE,OAAO,CAAA;CAC5B;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,EACb,EAAC,YAAoB,EAAE,kBAA0B,EAAC,GAAE,OAAO,CAAC,sBAAsB,CAAM,WAsBzF;AAED,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,KAAK,IAAI,IAAI,CAI5B"}
@@ -1,40 +0,0 @@
1
- export function checkVisibility({ checkOpacity = false, checkVisibilityCSS = false } = {}) {
2
- if (!this.isConnected)
3
- return false;
4
- const styles = getComputedStyle(this);
5
- if (styles.getPropertyValue('display') === 'contents')
6
- return false;
7
- if (checkVisibilityCSS && styles.getPropertyValue('visibility') !== 'visible')
8
- return false;
9
- // eslint-disable-next-line @typescript-eslint/no-this-alias
10
- let node = this;
11
- while (node) {
12
- const nodeStyles = node === this ? styles : getComputedStyle(node);
13
- if (nodeStyles.getPropertyValue('display') === 'none')
14
- return false;
15
- if (checkOpacity && nodeStyles.getPropertyValue('opacity') === '0')
16
- return false;
17
- if (node !== this && nodeStyles.getPropertyValue('content-visibility') === 'hidden') {
18
- return false;
19
- }
20
- if (!node.parentElement && node.getRootNode() instanceof ShadowRoot) {
21
- node = node.getRootNode().host;
22
- }
23
- else {
24
- node = node.parentElement;
25
- }
26
- }
27
- return true;
28
- }
29
- export function isSupported() {
30
- return 'checkVisibility' in Element.prototype && typeof Element.prototype.checkVisibility === 'function';
31
- }
32
- export function isPolyfilled() {
33
- return Element.prototype.checkVisibility === checkVisibility;
34
- }
35
- export function apply() {
36
- if (!isSupported()) {
37
- Element.prototype.checkVisibility = checkVisibility;
38
- }
39
- }
40
- //# sourceMappingURL=element-checkvisibility.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"element-checkvisibility.js","sourceRoot":"","sources":["../src/element-checkvisibility.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,eAAe,CAE7B,EAAC,YAAY,GAAG,KAAK,EAAE,kBAAkB,GAAG,KAAK,KAAqC,EAAE;IAExF,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAA;IACnC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACrC,IAAI,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,UAAU;QAAE,OAAO,KAAK,CAAA;IACnE,IAAI,kBAAkB,IAAI,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IAC3F,4DAA4D;IAC5D,IAAI,IAAI,GAAmB,IAAI,CAAA;IAC/B,OAAO,IAAI,EAAE;QACX,MAAM,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAClE,IAAI,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,MAAM;YAAE,OAAO,KAAK,CAAA;QACnE,IAAI,YAAY,IAAI,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,GAAG;YAAE,OAAO,KAAK,CAAA;QAChF,IAAI,IAAI,KAAK,IAAI,IAAI,UAAU,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,KAAK,QAAQ,EAAE;YACnF,OAAO,KAAK,CAAA;SACb;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,EAAE,YAAY,UAAU,EAAE;YACnE,IAAI,GAAI,IAAI,CAAC,WAAW,EAAiB,CAAC,IAAI,CAAA;SAC/C;aAAM;YACL,IAAI,GAAG,IAAI,CAAC,aAAa,CAAA;SAC1B;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,iBAAiB,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,OAAO,CAAC,SAAS,CAAC,eAAe,KAAK,UAAU,CAAA;AAC1G,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,OAAO,CAAC,SAAS,CAAC,eAAe,KAAK,eAAe,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,IAAI,CAAC,WAAW,EAAE,EAAE;QAClB,OAAO,CAAC,SAAS,CAAC,eAAe,GAAG,eAAe,CAAA;KACpD;AACH,CAAC"}
package/lib/index.d.ts DELETED
@@ -1,17 +0,0 @@
1
- import * as clipboardItem from './clipboarditem.js';
2
- import * as elementCheckVisibility from './element-checkvisibility.js';
3
- import * as navigatorClipboard from './navigator-clipboard.js';
4
- import * as withResolvers from './promise-withResolvers.js';
5
- import * as requestIdleCallback from './requestidlecallback.js';
6
- export declare const baseSupport: boolean;
7
- export declare const polyfills: {
8
- clipboardItem: typeof clipboardItem;
9
- elementCheckVisibility: typeof elementCheckVisibility;
10
- navigatorClipboard: typeof navigatorClipboard;
11
- requestIdleCallback: typeof requestIdleCallback;
12
- withResolvers: typeof withResolvers;
13
- };
14
- export declare function isSupported(): boolean;
15
- export declare function isPolyfilled(): boolean;
16
- export declare function apply(): void;
17
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,sBAAsB,MAAM,8BAA8B,CAAA;AACtE,OAAO,KAAK,kBAAkB,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAU/D,eAAO,MAAM,WAAW,SA6BlB,CAAA;AAEN,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAA;AAED,wBAAgB,WAAW,YAE1B;AAED,wBAAgB,YAAY,YAE3B;AAED,wBAAgB,KAAK,SAIpB"}
package/lib/index.js DELETED
@@ -1,61 +0,0 @@
1
- import * as clipboardItem from './clipboarditem.js';
2
- import * as elementCheckVisibility from './element-checkvisibility.js';
3
- import * as navigatorClipboard from './navigator-clipboard.js';
4
- import * as withResolvers from './promise-withResolvers.js';
5
- import * as requestIdleCallback from './requestidlecallback.js';
6
- let supportsModalPseudo = false;
7
- try {
8
- // This will error in older browsers
9
- supportsModalPseudo = document.body.matches(':modal') === false;
10
- }
11
- catch {
12
- supportsModalPseudo = false;
13
- }
14
- export const baseSupport = typeof globalThis === 'object' &&
15
- // ES2019
16
- 'fromEntries' in Object &&
17
- 'flatMap' in Array.prototype &&
18
- 'trimEnd' in String.prototype &&
19
- // ES2020
20
- 'allSettled' in Promise &&
21
- 'matchAll' in String.prototype &&
22
- // ES2021
23
- 'replaceAll' in String.prototype &&
24
- 'any' in Promise &&
25
- // ES2022
26
- 'at' in String.prototype &&
27
- 'at' in Array.prototype &&
28
- 'hasOwn' in Object &&
29
- // ESNext
30
- 'abort' in AbortSignal &&
31
- 'timeout' in AbortSignal &&
32
- // DOM / HTML and other specs
33
- typeof queueMicrotask === 'function' &&
34
- typeof HTMLDialogElement === 'function' &&
35
- supportsModalPseudo &&
36
- typeof AggregateError === 'function' &&
37
- typeof BroadcastChannel === 'function' &&
38
- 'randomUUID' in crypto &&
39
- 'replaceChildren' in Element.prototype &&
40
- 'requestSubmit' in HTMLFormElement.prototype &&
41
- // 'requestIdleCallback' in window && // Polyfilled
42
- true;
43
- export const polyfills = {
44
- clipboardItem,
45
- elementCheckVisibility,
46
- navigatorClipboard,
47
- requestIdleCallback,
48
- withResolvers,
49
- };
50
- export function isSupported() {
51
- return baseSupport && Object.values(polyfills).every(polyfill => polyfill.isSupported());
52
- }
53
- export function isPolyfilled() {
54
- return Object.values(polyfills).every(polyfill => polyfill.isPolyfilled());
55
- }
56
- export function apply() {
57
- for (const polyfill of Object.values(polyfills)) {
58
- polyfill.apply();
59
- }
60
- }
61
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,sBAAsB,MAAM,8BAA8B,CAAA;AACtE,OAAO,KAAK,kBAAkB,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAE/D,IAAI,mBAAmB,GAAG,KAAK,CAAA;AAC/B,IAAI;IACF,oCAAoC;IACpC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAA;CAChE;AAAC,MAAM;IACN,mBAAmB,GAAG,KAAK,CAAA;CAC5B;AAED,MAAM,CAAC,MAAM,WAAW,GACtB,OAAO,UAAU,KAAK,QAAQ;IAC9B,SAAS;IACT,aAAa,IAAI,MAAM;IACvB,SAAS,IAAI,KAAK,CAAC,SAAS;IAC5B,SAAS,IAAI,MAAM,CAAC,SAAS;IAC7B,SAAS;IACT,YAAY,IAAI,OAAO;IACvB,UAAU,IAAI,MAAM,CAAC,SAAS;IAC9B,SAAS;IACT,YAAY,IAAI,MAAM,CAAC,SAAS;IAChC,KAAK,IAAI,OAAO;IAChB,SAAS;IACT,IAAI,IAAI,MAAM,CAAC,SAAS;IACxB,IAAI,IAAI,KAAK,CAAC,SAAS;IACvB,QAAQ,IAAI,MAAM;IAClB,SAAS;IACT,OAAO,IAAI,WAAW;IACtB,SAAS,IAAI,WAAW;IACxB,6BAA6B;IAC7B,OAAO,cAAc,KAAK,UAAU;IACpC,OAAO,iBAAiB,KAAK,UAAU;IACvC,mBAAmB;IACnB,OAAO,cAAc,KAAK,UAAU;IACpC,OAAO,gBAAgB,KAAK,UAAU;IACtC,YAAY,IAAI,MAAM;IACtB,iBAAiB,IAAI,OAAO,CAAC,SAAS;IACtC,eAAe,IAAI,eAAe,CAAC,SAAS;IAC5C,mDAAmD;IACnD,IAAI,CAAA;AAEN,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,aAAa;IACb,sBAAsB;IACtB,kBAAkB;IAClB,mBAAmB;IACnB,aAAa;CACd,CAAA;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;AAC1F,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAA;AAC5E,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAC/C,QAAQ,CAAC,KAAK,EAAE,CAAA;KACjB;AACH,CAAC"}
@@ -1,6 +0,0 @@
1
- export declare function clipboardWrite(data: ClipboardItems): Promise<void>;
2
- export declare function clipboardRead(): Promise<ClipboardItem[]>;
3
- export declare function isSupported(): boolean;
4
- export declare function isPolyfilled(): boolean;
5
- export declare function apply(): void;
6
- //# sourceMappingURL=navigator-clipboard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigator-clipboard.d.ts","sourceRoot":"","sources":["../src/navigator-clipboard.ts"],"names":[],"mappings":"AAAA,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,iBAKxD;AAED,wBAAsB,aAAa,6BAGlC;AAED,wBAAgB,WAAW,IAAI,OAAO,CAMrC;AAED,wBAAgB,YAAY,IAAI,OAAO,CAKtC;AAED,wBAAgB,KAAK,IAAI,IAAI,CAK5B"}
@@ -1,27 +0,0 @@
1
- export async function clipboardWrite(data) {
2
- if (data.length === 0)
3
- return;
4
- const item = data[0];
5
- const blob = await item.getType(item.types.includes('text/plain') ? 'text/plain' : item.types[0]);
6
- return navigator.clipboard.writeText(typeof blob == 'string' ? blob : await blob.text());
7
- }
8
- export async function clipboardRead() {
9
- const str = navigator.clipboard.readText();
10
- return [new ClipboardItem({ 'text/plain': str })];
11
- }
12
- export function isSupported() {
13
- return ('clipboard' in navigator &&
14
- typeof navigator.clipboard.read === 'function' &&
15
- typeof navigator.clipboard.write === 'function');
16
- }
17
- export function isPolyfilled() {
18
- return ('clipboard' in navigator &&
19
- (navigator.clipboard.write === clipboardWrite || navigator.clipboard.read === clipboardRead));
20
- }
21
- export function apply() {
22
- if ('clipboard' in navigator && !isSupported()) {
23
- navigator.clipboard.write = clipboardWrite;
24
- navigator.clipboard.read = clipboardRead;
25
- }
26
- }
27
- //# sourceMappingURL=navigator-clipboard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigator-clipboard.js","sourceRoot":"","sources":["../src/navigator-clipboard.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAoB;IACvD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACjG,OAAO,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;AAC1F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAA;IAC1C,OAAO,CAAC,IAAI,aAAa,CAAC,EAAC,YAAY,EAAE,GAAG,EAAC,CAAC,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,CACL,WAAW,IAAI,SAAS;QACxB,OAAO,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU;QAC9C,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,KAAK,UAAU,CAChD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,CACL,WAAW,IAAI,SAAS;QACxB,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,KAAK,cAAc,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,CAC7F,CAAA;AACH,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,IAAI,WAAW,IAAI,SAAS,IAAI,CAAC,WAAW,EAAE,EAAE;QAC9C,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,cAAc,CAAA;QAC1C,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,aAAa,CAAA;KACzC;AACH,CAAC"}
@@ -1,9 +0,0 @@
1
- export declare function withResolvers<T>(this: PromiseConstructor): {
2
- promise: Promise<T>;
3
- resolve: (value: T | PromiseLike<T>) => void;
4
- reject: (reason?: any) => void;
5
- };
6
- export declare function isSupported(): boolean;
7
- export declare function isPolyfilled(): boolean;
8
- export declare function apply(): void;
9
- //# sourceMappingURL=promise-withResolvers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promise-withResolvers.d.ts","sourceRoot":"","sources":["../src/promise-withResolvers.ts"],"names":[],"mappings":"AACA,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB;aAE5C,QAAQ,CAAC,CAAC;qBACF,CAAC,GAAG,YAAY,CAAC,CAAC,KAAK,IAAI;sBAE1B,GAAG,KAAK,IAAI;EAOjC;AAGD,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAGD,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,KAAK,IAAI,IAAI,CAI5B"}
@@ -1,23 +0,0 @@
1
- /*#__PURE__*/
2
- export function withResolvers() {
3
- const out = {};
4
- out.promise = new Promise((resolve, reject) => {
5
- out.resolve = resolve;
6
- out.reject = reject;
7
- });
8
- return out;
9
- }
10
- /*#__PURE__*/
11
- export function isSupported() {
12
- return 'withResolvers' in Promise && typeof Promise.withResolvers === 'function';
13
- }
14
- /*#__PURE__*/
15
- export function isPolyfilled() {
16
- return 'withResolvers' in Promise && Promise.withResolvers === withResolvers;
17
- }
18
- export function apply() {
19
- if (!isSupported()) {
20
- Object.assign(Promise, { withResolvers });
21
- }
22
- }
23
- //# sourceMappingURL=promise-withResolvers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promise-withResolvers.js","sourceRoot":"","sources":["../src/promise-withResolvers.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,EAKX,CAAA;IACD,GAAG,CAAC,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC/C,GAAG,CAAC,OAAO,GAAG,OAAO,CAAA;QACrB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAA;IACrB,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,aAAa;AACb,MAAM,UAAU,WAAW;IACzB,OAAO,eAAe,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,CAAA;AAClF,CAAC;AAED,aAAa;AACb,MAAM,UAAU,YAAY;IAC1B,OAAO,eAAe,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,KAAK,aAAa,CAAA;AAC9E,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,IAAI,CAAC,WAAW,EAAE,EAAE;QAClB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAC,aAAa,EAAC,CAAC,CAAA;KACxC;AACH,CAAC"}
@@ -1,6 +0,0 @@
1
- export declare function requestIdleCallback(callback: IdleRequestCallback, options?: IdleRequestOptions): number;
2
- export declare function cancelIdleCallback(id: number): void;
3
- export declare function isSupported(): boolean;
4
- export declare function isPolyfilled(): boolean;
5
- export declare function apply(): void;
6
- //# sourceMappingURL=requestidlecallback.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"requestidlecallback.d.ts","sourceRoot":"","sources":["../src/requestidlecallback.ts"],"names":[],"mappings":"AAOA,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAoB3G;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEnD;AAGD,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAGD,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,KAAK,IAAI,IAAI,CAK5B"}
@@ -1,41 +0,0 @@
1
- // https://w3c.github.io/requestidlecallback/#why50
2
- // "Capping idle deadlines to 50ms means that even if the user input occurs
3
- // immediately after the idle task has begun, the user agent still has a
4
- // remaining 50ms in which to respond to the user input without producing user
5
- // perceptible lag"
6
- const maxDeadline = 50;
7
- export function requestIdleCallback(callback, options = {}) {
8
- const start = Date.now();
9
- const timeout = options.timeout || 0;
10
- const deadline = Object.defineProperty({
11
- didTimeout: false,
12
- timeRemaining() {
13
- return Math.max(0, maxDeadline - (Date.now() - start));
14
- },
15
- }, 'didTimeout', {
16
- get() {
17
- return Date.now() - start > timeout;
18
- },
19
- });
20
- return window.setTimeout(() => {
21
- callback(deadline);
22
- });
23
- }
24
- export function cancelIdleCallback(id) {
25
- clearTimeout(id);
26
- }
27
- /*#__PURE__*/
28
- export function isSupported() {
29
- return typeof globalThis.requestIdleCallback === 'function';
30
- }
31
- /*#__PURE__*/
32
- export function isPolyfilled() {
33
- return globalThis.requestIdleCallback === requestIdleCallback && globalThis.cancelIdleCallback === cancelIdleCallback;
34
- }
35
- export function apply() {
36
- if (!isSupported()) {
37
- globalThis.requestIdleCallback = requestIdleCallback;
38
- globalThis.cancelIdleCallback = cancelIdleCallback;
39
- }
40
- }
41
- //# sourceMappingURL=requestidlecallback.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"requestidlecallback.js","sourceRoot":"","sources":["../src/requestidlecallback.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,2EAA2E;AAC3E,wEAAwE;AACxE,8EAA8E;AAC9E,mBAAmB;AACnB,MAAM,WAAW,GAAG,EAAE,CAAA;AAEtB,MAAM,UAAU,mBAAmB,CAAC,QAA6B,EAAE,UAA8B,EAAE;IACjG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACxB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAiB,MAAM,CAAC,cAAc,CAClD;QACE,UAAU,EAAE,KAAK;QACjB,aAAa;YACX,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;QACxD,CAAC;KACF,EACD,YAAY,EACZ;QACE,GAAG;YACD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,OAAO,CAAA;QACrC,CAAC;KACF,CACF,CAAA;IACD,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;QAC5B,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACpB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAC3C,YAAY,CAAC,EAAE,CAAC,CAAA;AAClB,CAAC;AAED,aAAa;AACb,MAAM,UAAU,WAAW;IACzB,OAAO,OAAO,UAAU,CAAC,mBAAmB,KAAK,UAAU,CAAA;AAC7D,CAAC;AAED,aAAa;AACb,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC,mBAAmB,KAAK,mBAAmB,IAAI,UAAU,CAAC,kBAAkB,KAAK,kBAAkB,CAAA;AACvH,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,IAAI,CAAC,WAAW,EAAE,EAAE;QAClB,UAAU,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;QACpD,UAAU,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;KACnD;AACH,CAAC"}