polyfill-library 4.7.0 → 4.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. package/CHANGELOG.md +4 -4
  2. package/README.md +41 -0
  3. package/package.json +10 -21
  4. package/polyfills/__dist/Array.prototype.sort/meta.json +1 -1
  5. package/polyfills/__dist/Array.prototype.sort/min.js +1 -1
  6. package/polyfills/__dist/Array.prototype.sort/raw.js +20 -9
  7. package/polyfills/__dist/Array.prototype.toReversed/meta.json +1 -0
  8. package/polyfills/__dist/Array.prototype.toReversed/min.js +1 -0
  9. package/polyfills/__dist/Array.prototype.toReversed/raw.js +29 -0
  10. package/polyfills/__dist/Array.prototype.toSorted/meta.json +1 -0
  11. package/polyfills/__dist/Array.prototype.toSorted/min.js +1 -0
  12. package/polyfills/__dist/Array.prototype.toSorted/raw.js +37 -0
  13. package/polyfills/__dist/Array.prototype.toSpliced/meta.json +1 -0
  14. package/polyfills/__dist/Array.prototype.toSpliced/min.js +1 -0
  15. package/polyfills/__dist/Array.prototype.toSpliced/raw.js +96 -0
  16. package/polyfills/__dist/Array.prototype.with/meta.json +1 -0
  17. package/polyfills/__dist/Array.prototype.with/min.js +1 -0
  18. package/polyfills/__dist/Array.prototype.with/raw.js +60 -0
  19. package/polyfills/__dist/HTMLFormElement.prototype.requestSubmit/meta.json +1 -0
  20. package/polyfills/__dist/HTMLFormElement.prototype.requestSubmit/min.js +1 -0
  21. package/polyfills/__dist/HTMLFormElement.prototype.requestSubmit/raw.js +116 -0
  22. package/polyfills/__dist/IntersectionObserver/meta.json +1 -1
  23. package/polyfills/__dist/IntersectionObserver/min.js +1 -1
  24. package/polyfills/__dist/IntersectionObserver/raw.js +2 -1
  25. package/polyfills/__dist/IntersectionObserverEntry/meta.json +1 -1
  26. package/polyfills/__dist/Intl.DateTimeFormat.~locale.en-US-POSIX/meta.json +1 -1
  27. package/polyfills/__dist/Intl.NumberFormat.~locale.he/meta.json +1 -1
  28. package/polyfills/__dist/Intl.NumberFormat.~locale.id/meta.json +1 -1
  29. package/polyfills/__dist/Intl.NumberFormat.~locale.jv/meta.json +1 -1
  30. package/polyfills/__dist/Intl.NumberFormat.~locale.sr-Latn/meta.json +1 -1
  31. package/polyfills/__dist/Intl.NumberFormat.~locale.sr-Latn-BA/meta.json +1 -1
  32. package/polyfills/__dist/Intl.NumberFormat.~locale.sr-Latn-ME/meta.json +1 -1
  33. package/polyfills/__dist/Intl.NumberFormat.~locale.sr-Latn-XK/meta.json +1 -1
  34. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.en-US-POSIX/meta.json +1 -1
  35. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.he/meta.json +1 -1
  36. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.id/meta.json +1 -1
  37. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.jv/meta.json +1 -1
  38. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.sr-Latn/meta.json +1 -1
  39. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.sr-Latn-BA/meta.json +1 -1
  40. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.sr-Latn-ME/meta.json +1 -1
  41. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.sr-Latn-XK/meta.json +1 -1
  42. package/polyfills/__dist/ResizeObserver/min.js +1 -1
  43. package/polyfills/__dist/ResizeObserver/raw.js +5 -5
  44. package/polyfills/__dist/TypedArray.prototype.@@toStringTag/raw.js +1 -1
  45. package/polyfills/__dist/TypedArray.prototype.at/raw.js +1 -1
  46. package/polyfills/__dist/TypedArray.prototype.entries/meta.json +1 -1
  47. package/polyfills/__dist/TypedArray.prototype.entries/min.js +1 -1
  48. package/polyfills/__dist/TypedArray.prototype.entries/raw.js +21 -25
  49. package/polyfills/__dist/TypedArray.prototype.findLast/meta.json +1 -1
  50. package/polyfills/__dist/TypedArray.prototype.findLast/min.js +1 -1
  51. package/polyfills/__dist/TypedArray.prototype.findLast/raw.js +12 -11
  52. package/polyfills/__dist/TypedArray.prototype.findLastIndex/meta.json +1 -1
  53. package/polyfills/__dist/TypedArray.prototype.findLastIndex/min.js +1 -1
  54. package/polyfills/__dist/TypedArray.prototype.findLastIndex/raw.js +12 -11
  55. package/polyfills/__dist/TypedArray.prototype.keys/meta.json +1 -1
  56. package/polyfills/__dist/TypedArray.prototype.keys/min.js +1 -1
  57. package/polyfills/__dist/TypedArray.prototype.keys/raw.js +21 -25
  58. package/polyfills/__dist/TypedArray.prototype.sort/meta.json +1 -0
  59. package/polyfills/__dist/TypedArray.prototype.sort/min.js +1 -0
  60. package/polyfills/__dist/TypedArray.prototype.sort/raw.js +71 -0
  61. package/polyfills/__dist/TypedArray.prototype.toReversed/meta.json +1 -0
  62. package/polyfills/__dist/TypedArray.prototype.toReversed/min.js +1 -0
  63. package/polyfills/__dist/TypedArray.prototype.toReversed/raw.js +50 -0
  64. package/polyfills/__dist/TypedArray.prototype.toSorted/meta.json +1 -0
  65. package/polyfills/__dist/TypedArray.prototype.toSorted/min.js +1 -0
  66. package/polyfills/__dist/TypedArray.prototype.toSorted/raw.js +59 -0
  67. package/polyfills/__dist/TypedArray.prototype.with/meta.json +1 -0
  68. package/polyfills/__dist/TypedArray.prototype.with/min.js +1 -0
  69. package/polyfills/__dist/TypedArray.prototype.with/raw.js +83 -0
  70. package/polyfills/__dist/_ESAbstract.IsValidIntegerIndex/meta.json +1 -0
  71. package/polyfills/__dist/_ESAbstract.IsValidIntegerIndex/min.js +1 -0
  72. package/polyfills/__dist/_ESAbstract.IsValidIntegerIndex/raw.js +16 -0
  73. package/polyfills/__dist/_ESAbstract.TypedArrayCreate/meta.json +1 -0
  74. package/polyfills/__dist/_ESAbstract.TypedArrayCreate/min.js +1 -0
  75. package/polyfills/__dist/_ESAbstract.TypedArrayCreate/raw.js +20 -0
  76. package/polyfills/__dist/_ESAbstract.TypedArrayCreateSameType/meta.json +1 -0
  77. package/polyfills/__dist/_ESAbstract.TypedArrayCreateSameType/min.js +1 -0
  78. package/polyfills/__dist/_ESAbstract.TypedArrayCreateSameType/raw.js +41 -0
  79. package/polyfills/__dist/aliases.json +1 -1
  80. package/polyfills/__dist/atob/meta.json +1 -1
  81. package/polyfills/__dist/atob/min.js +1 -1
  82. package/polyfills/__dist/atob/raw.js +22 -16
package/CHANGELOG.md CHANGED
@@ -4,10 +4,10 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
- #### [v4.7.0](https://github.com/Financial-Times/polyfill-library/compare/v4.7.0...v4.7.0)
7
+ #### [v4.8.0](https://github.com/Financial-Times/polyfill-library/compare/v4.8.0...v4.8.0)
8
8
 
9
- #### v4.7.0
9
+ #### v4.8.0
10
10
 
11
- > 6 February 2023
11
+ > 26 June 2023
12
12
 
13
- - prepare v4.7.0 [`#1277`](https://github.com/Financial-Times/polyfill-library/pull/1277)
13
+ - Bump semver from 7.5.0 to 7.5.2 [`#1298`](https://github.com/Financial-Times/polyfill-library/pull/1298)
package/README.md CHANGED
@@ -84,6 +84,47 @@ Create a polyfill bundle.
84
84
 
85
85
  Returns a polyfill bundle as either a utf-8 ReadStream or as a Promise of a utf-8 String.
86
86
 
87
+ ## AWS Lambda
88
+
89
+ To use this package in an AWS Lambda function, you need to include the distribution Polyfills located in `./node_modules/polyfill-library/polyfills/__dist` in the root directory of your Lambda. In AWS, Lambdas are executed in the `/var/task/...` directory. Therefore, during execution, the directory where the polyfills will be located will be `/var/task/polyfill-library/__dist`.
90
+
91
+ ### Example of a script to copy files
92
+
93
+ The following snippet will allow us to copy the polyfills to our already compiled Lambda. To do this, we will first install the necessary dependencies.
94
+
95
+ ```bash
96
+ yarn add -D make-dir fs-extra
97
+ ```
98
+
99
+ Once the dependencies are installed, we will create the file with the script at `/scripts/polyfills-serverless.mjs` and replace `YOUR_BUNDELED_LAMBDA_DIRECTORY` with the directory that contains our packaged Lambda.
100
+
101
+ In the example, we will use the directory `./.serverless_nextjs/api-lambda`, which is the one used when using Serverless Next.js.
102
+
103
+ ```js
104
+ import { copySync } from 'fs-extra/esm';
105
+ import makeDir from 'make-dir';
106
+
107
+ const DIR_POLYFILLS = './node_modules/polyfill-library/polyfills/__dist';
108
+ // const DIR_SERVERLESS = 'YOUR_BUNDELED_LAMBDA_DIRECTORY/polyfills/__dist';
109
+ const DIR_SERVERLESS = './.serverless_nextjs/api-lambda/polyfills/__dist';
110
+
111
+ const paths = await makeDir(DIR_SERVERLESS);
112
+ console.log(`The directory ${paths} is created successfully.`);
113
+
114
+ try {
115
+ console.log('Copying polyfills to serverless directory...');
116
+ copySync(DIR_POLYFILLS, DIR_SERVERLESS, { overwrite: false });
117
+ console.log('Polyfills copied successfully!');
118
+ } catch (err) {
119
+ console.error(err);
120
+ }
121
+ ```
122
+
123
+ To execute the script, you will need to run the following command:
124
+
125
+ ```bash
126
+ node ./scripts/polyfills-serverless.mjs
127
+ ```
87
128
 
88
129
  ## Contributing
89
130
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "polyfill-library",
3
- "version": "4.7.0",
3
+ "version": "4.8.0",
4
4
  "description": "A polyfill combinator",
5
5
  "main": "lib/index.js",
6
6
  "contributors": [
@@ -33,10 +33,8 @@
33
33
  "test-polyfills": "karma start",
34
34
  "test-all-polyfills": "node ./test/polyfills/test-all-features.js",
35
35
  "test-end-to-end": "mocha test/end-to-end/**/*.test.js",
36
- "test-node": "mocha test/node/**/*.js",
37
- "test-node-unit": "nyc mocha test/unit --recursive",
38
- "test-node-coverage": "nyc check-coverage --lines 90 --branches 90 --functions 90",
39
- "test-coverage": "nyc report --reporter=lcov",
36
+ "test-node": "nyc mocha test/node/**/*.js",
37
+ "test-node-unit": "mocha test/unit --recursive",
40
38
  "test": "npm run build && npm run test-node && npm run test-node-unit && npm run test-polyfills",
41
39
  "prepublishOnly": "npm run build && mv polyfills/__dist __dist && rimraf polyfills && mkdir polyfills && mv __dist polyfills/__dist",
42
40
  "create-new-polyfill": "node ./tasks/create-new-polyfill.js",
@@ -87,20 +85,17 @@
87
85
  "Base64": "^1.0.0",
88
86
  "bluebird": "^3.7.2",
89
87
  "browserstack": "1.6.1",
90
- "browserstack-local": "^1.4.5",
88
+ "browserstack-local": "^1.5.2",
91
89
  "chai": "^4.3.4",
92
90
  "cli-color": "^2.0.0",
93
91
  "compression": "^1.7.4",
94
- "current-script-polyfill": "^1.0.0",
95
- "diff": "4.0.2",
92
+ "diff": "^5.0.0",
96
93
  "dotenv": "^8.2.0",
97
94
  "eslint": "^7.0.0",
98
95
  "eslint-plugin-uncalled-iife": "^1.0.2",
99
96
  "eslint-plugin-unicorn": "^27.0.0",
100
97
  "execa": "^5.0.0",
101
98
  "express": "^4.17.3",
102
- "fastestsmallesttextencoderdecoder": "1.0.22",
103
- "fs-extra": "^9.0.1",
104
99
  "glob": "^7.1.1",
105
100
  "globby": "^11.0.0",
106
101
  "handlebars": "^4.7.2",
@@ -108,36 +103,30 @@
108
103
  "html5shiv": "^3.7.3",
109
104
  "js-polyfills": "^0.1.40",
110
105
  "karma": "^6.0.0",
111
- "karma-browserstack-launcher": "^1.4.0",
106
+ "karma-browserstack-launcher": "^1.6.0",
112
107
  "karma-firefox-launcher": "^2.1.2",
113
108
  "karma-mocha": "^2.0.1",
114
109
  "karma-mocha-reporter": "^2.2.5",
115
- "karma-summary-optional-console-reporter": "^1.6.1",
116
110
  "lodash": "^4.17.14",
117
- "mkdirp": "^1.0.4",
118
111
  "mocha": "^3.5.3",
119
112
  "mockery": "^2.1.0",
120
113
  "mutationobserver-shim": "^0.3.2",
121
114
  "nyc": "^15.0.0",
122
115
  "picturefill": "^3.0.1",
123
- "prettier": "^2.0.5",
124
116
  "proclaim": "^3.6.0",
125
117
  "rimraf": "^3.0.0",
126
118
  "seamless-scroll-polyfill": "1.2.4",
127
119
  "semver": "^7.3.7",
128
- "sinon": "^10.0.0",
120
+ "sinon": "^15.0.0",
129
121
  "spdx-licenses": "^1.0.0",
130
122
  "uglify-js": "^2.7.5",
131
123
  "unorm": "^1.6.0",
132
124
  "usertiming": "^0.1.8",
133
125
  "web-animations-js": "^2.2.5",
134
- "webdriverio": "^6.1.14",
135
- "whatwg-fetch": "^3.6.2",
136
- "yaku": "1.0.1",
137
- "yaml": "^1.1.0"
126
+ "webdriverio": "^8.0.0",
127
+ "whatwg-fetch": "^3.6.2"
138
128
  },
139
129
  "volta": {
140
- "node": "12.22.12",
141
- "npm": "6.14.16"
130
+ "node": "16.20.0"
142
131
  }
143
132
  }
@@ -1 +1 @@
1
- {"aliases":["es6","es2015","modernizr:es6array"],"dependencies":["_ESAbstract.CreateMethodProperty","_ESAbstract.IsCallable"],"license":"MIT","spec":"http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.sort","docs":"https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort","browsers":{"android":"*","chrome":"<70","edge":"*","edge_mob":"*","firefox":"<3","ie":"*","ie_mob":"*","opera":"<57","op_mob":"<49","safari":"<10.1","ios_saf":"<10.3","samsung_mob":"<10.0"},"detectSource":"\"sort\"in Array.prototype&&function(){var r={length:3,0:2,1:1,2:3}\nreturn Array.prototype.sort.call(r,function(r,t){return r-t})===r}()\n","baseDir":"Array/prototype/sort","hasTests":true,"isTestable":true,"isPublic":true,"size":550}
1
+ {"aliases":["es6","es2015","modernizr:es6array"],"dependencies":["_ESAbstract.CreateMethodProperty","_ESAbstract.IsCallable"],"license":"MIT","spec":"http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.sort","docs":"https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort","browsers":{"android":"*","chrome":"<70","edge":"*","edge_mob":"*","firefox":"<3","ie":"*","ie_mob":"*","opera":"<57","op_mob":"<49","safari":"<10.1","ios_saf":"<10.3","samsung_mob":"<10.0"},"detectSource":"\"sort\"in Array.prototype&&function(){var r={length:3,0:2,1:1,2:3}\nreturn Array.prototype.sort.call(r,function(r,t){return r-t})===r}()\n","baseDir":"Array/prototype/sort","hasTests":true,"isTestable":true,"isPublic":true,"size":602}
@@ -1 +1 @@
1
- "use strict";var origSort=Array.prototype.sort;CreateMethodProperty(Array.prototype,"sort",function r(t){if(void 0!==t&&!1===IsCallable(t))throw new TypeError("The comparison function must be either a function or undefined");if(void 0===t)origSort.call(this);else{var e=Array.prototype.map.call(this,function(r,t){return{item:r,index:t}});origSort.call(e,function(r,e){var o=t.call(void 0,r.item,e.item);return 0===o?r.index-e.index:o});for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&e[o].item!==this[o]&&(this[o]=e[o].item)}return this});
1
+ "use strict";var origSort=Array.prototype.sort;CreateMethodProperty(Array.prototype,"sort",function t(r){if(void 0!==r&&!1===IsCallable(r))throw new TypeError("The comparison function must be either a function or undefined");if(void 0===r)origSort.call(this);else{var i,e=[];for(i=0;i<this.length;i++)i in this&&e.push({item:this[i],index:i});for(origSort.call(e,function(t,i){if(void 0===i.item)return-1;if(void 0===t.item)return 1;var e=+r.call(void 0,t.item,i.item)||0;return 0===e?t.index-i.index:e}),i=0;i<e.length;)e[i]&&(this[i]=e[i].item),i++;for(;i<this.length;)delete this[i++]}return this});
@@ -33,22 +33,33 @@ CreateMethodProperty(Array.prototype, "sort", function sort(compareFn) {
33
33
  // if compareFn exists, sort the array, breaking sorting ties by using the
34
34
  // items' original index position.
35
35
 
36
+ var index;
37
+
36
38
  // Keep track of the items starting index position.
37
- var that = Array.prototype.map.call(this, function(item, index) {
38
- return { item: item, index: index };
39
- });
39
+ var that = [];
40
+ for (index = 0; index < this.length; index++) {
41
+ if (index in this) {
42
+ that.push({ item: this[index], index: index });
43
+ }
44
+ }
40
45
  origSort.call(that, function(a, b) {
41
- var compareResult = compareFn.call(undefined, a.item, b.item);
46
+ // this implementation is based on https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.sort.js#L69-L76
47
+ if (b.item === undefined) return -1;
48
+ if (a.item === undefined) return 1;
49
+ var compareResult = +(compareFn.call(undefined, a.item, b.item)) || 0;
42
50
  return compareResult === 0 ? a.index - b.index : compareResult;
43
51
  });
44
52
  // update the original object (`this`) with the new position for the items
45
53
  // which were moved.
46
- for (var a in that) {
47
- if (Object.prototype.hasOwnProperty.call(that, a)) {
48
- if (that[a].item !== this[a]) {
49
- this[a] = that[a].item;
50
- }
54
+ index = 0;
55
+ while (index < that.length) {
56
+ if (that[index]) {
57
+ this[index] = that[index].item;
51
58
  }
59
+ index++;
60
+ }
61
+ while (index < this.length) {
62
+ delete this[index++];
52
63
  }
53
64
  }
54
65
 
@@ -0,0 +1 @@
1
+ {"aliases":["es2023"],"dependencies":["_ESAbstract.ArrayCreate","_ESAbstract.CreateDataPropertyOrThrow","_ESAbstract.CreateMethodProperty","_ESAbstract.Get","_ESAbstract.LengthOfArrayLike","_ESAbstract.ToObject","_ESAbstract.ToString"],"license":"MIT","spec":"https://tc39.es/ecma262/#sec-array.prototype.toreversed","docs":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toReversed","browsers":{"android":"*","bb":"*","chrome":"<110","edge":"*","edge_mob":"*","firefox":"*","firefox_mob":"*","ie":"*","ie_mob":"*","opera":"<96","op_mob":"<74","op_mini":"*","safari":"<16.3","ios_saf":"<16.3","samsung_mob":"*"},"detectSource":"\"toReversed\"in Array.prototype\n","baseDir":"Array/prototype/toReversed","hasTests":true,"isTestable":true,"isPublic":true,"size":234}
@@ -0,0 +1 @@
1
+ CreateMethodProperty(Array.prototype,"toReversed",function r(){for(var e=ToObject(this),t=LengthOfArrayLike(e),o=ArrayCreate(t),a=0;a<t;){var n=ToString(t-a-1),y=ToString(a),i=Get(e,n);CreateDataPropertyOrThrow(o,y,i),a+=1}return o});
@@ -0,0 +1,29 @@
1
+
2
+ // Array.prototype.toReversed
3
+ /* global ArrayCreate, CreateDataPropertyOrThrow, CreateMethodProperty, Get, LengthOfArrayLike, ToObject, ToString */
4
+ // 23.1.3.33 Array.prototype.toReversed ( )
5
+ CreateMethodProperty(Array.prototype, 'toReversed', function toReversed() {
6
+ // 1. Let O be ? ToObject(this value).
7
+ var O = ToObject(this);
8
+ // 2. Let len be ? LengthOfArrayLike(O).
9
+ var len = LengthOfArrayLike(O);
10
+ // 3. Let A be ? ArrayCreate(len).
11
+ var A = ArrayCreate(len);
12
+ // 4. Let k be 0.
13
+ var k = 0;
14
+ // 5. Repeat, while k < len,
15
+ while (k < len) {
16
+ // a. Let from be ! ToString(𝔽(len - k - 1)).
17
+ var from = ToString(len - k - 1);
18
+ // b. Let Pk be ! ToString(𝔽(k)).
19
+ var Pk = ToString(k);
20
+ // c. Let fromValue be ? Get(O, from).
21
+ var fromValue = Get(O, from);
22
+ // d. Perform ! CreateDataPropertyOrThrow(A, Pk, fromValue).
23
+ CreateDataPropertyOrThrow(A, Pk, fromValue);
24
+ // e. Set k to k + 1.
25
+ k = k + 1;
26
+ }
27
+ // 6. Return A.
28
+ return A;
29
+ });
@@ -0,0 +1 @@
1
+ {"aliases":["es2023"],"dependencies":["_ESAbstract.ArrayCreate","_ESAbstract.CreateDataPropertyOrThrow","_ESAbstract.CreateMethodProperty","_ESAbstract.IsCallable","_ESAbstract.LengthOfArrayLike","_ESAbstract.ToObject","_ESAbstract.ToString"],"license":"MIT","spec":"https://tc39.es/ecma262/#sec-array.prototype.tosorted","docs":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toSorted","browsers":{"android":"*","bb":"*","chrome":"<110","edge":"*","edge_mob":"*","firefox":"*","firefox_mob":"*","ie":"*","ie_mob":"*","opera":"<96","op_mob":"<74","op_mini":"*","safari":"<16.3","ios_saf":"<16.3","samsung_mob":"*"},"detectSource":"\"toSorted\"in Array.prototype\n","baseDir":"Array/prototype/toSorted","hasTests":true,"isTestable":true,"isPublic":true,"size":348}
@@ -0,0 +1 @@
1
+ CreateMethodProperty(Array.prototype,"toSorted",function r(e){if(void 0!==e&&!1===IsCallable(e))throw new TypeError("The comparison function must be either a function or undefined");for(var t=ToObject(this),o=LengthOfArrayLike(t),a=ArrayCreate(o),n=0;n<o;)CreateDataPropertyOrThrow(a,ToString(n),t[n]),n+=1;return void 0!==e?a.sort(e):a.sort(),a});
@@ -0,0 +1,37 @@
1
+
2
+ // Array.prototype.toSorted
3
+ /* global ArrayCreate, CreateDataPropertyOrThrow, CreateMethodProperty, IsCallable, LengthOfArrayLike, ToObject, ToString */
4
+ // 23.1.3.34 Array.prototype.toSorted ( comparefn )
5
+ CreateMethodProperty(Array.prototype, 'toSorted', function toSorted(comparefn) {
6
+ // 1. If comparefn is not undefined and IsCallable(comparefn) is false, throw a TypeError exception.
7
+ if (comparefn !== undefined && IsCallable(comparefn) === false) {
8
+ throw new TypeError(
9
+ "The comparison function must be either a function or undefined"
10
+ );
11
+ }
12
+ // 2. Let O be ? ToObject(this value).
13
+ var O = ToObject(this);
14
+ // 3. Let len be ? LengthOfArrayLike(O).
15
+ var len = LengthOfArrayLike(O);
16
+ // 4. Let A be ? ArrayCreate(len).
17
+ var A = ArrayCreate(len);
18
+
19
+ // 7. Let j be 0.
20
+ var j = 0;
21
+ // 8. Repeat, while j < len,
22
+ while (j < len) {
23
+ // a. Perform ! CreateDataPropertyOrThrow(A, ! ToString(𝔽(j)), sortedList[j]).
24
+ CreateDataPropertyOrThrow(A, ToString(j), O[j]);
25
+ // b. Set j to j + 1.
26
+ j = j + 1;
27
+ }
28
+
29
+ // Polyfill.io - These steps are handled by native `Array.prototype.sort`, below
30
+ // 5. Let SortCompare be a new Abstract Closure with parameters (x, y) that captures comparefn and performs the following steps when called:
31
+ // a. Return ? CompareArrayElements(x, y, comparefn).
32
+ // 6. Let sortedList be ? SortIndexedProperties(O, len, SortCompare, read-through-holes).
33
+ comparefn !== undefined ? A.sort(comparefn) : A.sort();
34
+
35
+ // 9. Return A.
36
+ return A;
37
+ });
@@ -0,0 +1 @@
1
+ {"aliases":["es2023"],"dependencies":["_ESAbstract.ArrayCreate","_ESAbstract.CreateDataPropertyOrThrow","_ESAbstract.CreateMethodProperty","_ESAbstract.Get","_ESAbstract.LengthOfArrayLike","_ESAbstract.ToIntegerOrInfinity","_ESAbstract.ToObject","_ESAbstract.ToString","Number.MAX_SAFE_INTEGER"],"license":"MIT","spec":"https://tc39.es/ecma262/#sec-array.prototype.tospliced","docs":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toSpliced","browsers":{"android":"*","bb":"*","chrome":"<110","edge":"*","edge_mob":"*","firefox":"*","firefox_mob":"*","ie":"*","ie_mob":"*","opera":"<96","op_mob":"<74","op_mini":"*","safari":"<16.3","ios_saf":"<16.3","samsung_mob":"*"},"detectSource":"\"toSpliced\"in Array.prototype\n","baseDir":"Array/prototype/toSpliced","hasTests":true,"isTestable":true,"isPublic":true,"size":791}
@@ -0,0 +1 @@
1
+ CreateMethodProperty(Array.prototype,"toSpliced",function r(e,t){var a,o=ToObject(this),n=LengthOfArrayLike(o),i=ToIntegerOrInfinity(e);a=i===-1/0?0:i<0?Math.max(n+i,0):Math.min(i,n);var h,y=arguments.length>2?Array.prototype.slice.call(arguments,2):[],g=y.length;if(0===arguments.length)h=0;else if(1===arguments.length)h=n-a;else{var T=ToIntegerOrInfinity(t);h=Math.min(Math.max(0,T),n-a)}var f=n+g-h;if(f>Number.MAX_SAFE_INTEGER)throw new TypeError("Length exceeded the maximum array length");for(var l=ArrayCreate(f),p=0,c=a+h;p<a;){var m=ToString(p),v=Get(o,m);CreateDataPropertyOrThrow(l,m,v),p+=1}for(y.forEach(function(r){var e=ToString(p);CreateDataPropertyOrThrow(l,e,r),p+=1});p<f;){var O=ToString(p),A=ToString(c),M=Get(o,A);CreateDataPropertyOrThrow(l,O,M),p+=1,c+=1}return l});
@@ -0,0 +1,96 @@
1
+
2
+ // Array.prototype.toSpliced
3
+ /* global ArrayCreate, CreateDataPropertyOrThrow, CreateMethodProperty, Get, LengthOfArrayLike, ToIntegerOrInfinity, ToObject, ToString */
4
+ // 23.1.3.35 Array.prototype.toSpliced ( start, skipCount, ...items )
5
+ CreateMethodProperty(Array.prototype, 'toSpliced', function toSpliced(start, skipCount) {
6
+ // 1. Let O be ? ToObject(this value).
7
+ var O = ToObject(this);
8
+ // 2. Let len be ? LengthOfArrayLike(O).
9
+ var len = LengthOfArrayLike(O);
10
+ // 3. Let relativeStart be ? ToIntegerOrInfinity(start).
11
+ var relativeStart = ToIntegerOrInfinity(start);
12
+
13
+ var actualStart;
14
+ // 4. If relativeStart is -∞, let actualStart be 0.
15
+ if (relativeStart === -Infinity) {
16
+ actualStart = 0
17
+ }
18
+ // 5. Else if relativeStart < 0, let actualStart be max(len + relativeStart, 0).
19
+ else if (relativeStart < 0) {
20
+ actualStart = Math.max(len + relativeStart, 0);
21
+ }
22
+ // 6. Else, let actualStart be min(relativeStart, len).
23
+ else {
24
+ actualStart = Math.min(relativeStart, len);
25
+ }
26
+
27
+ // 7. Let insertCount be the number of elements in items.
28
+ var items = arguments.length > 2 ? Array.prototype.slice.call(arguments, 2) : [];
29
+ var insertCount = items.length;
30
+
31
+ var actualSkipCount;
32
+ // 8. If start is not present, then
33
+ if (arguments.length === 0) {
34
+ // a. Let actualSkipCount be 0.
35
+ actualSkipCount = 0;
36
+ }
37
+ // 9. Else if skipCount is not present, then
38
+ else if (arguments.length === 1) {
39
+ // a. Let actualSkipCount be len - actualStart.
40
+ actualSkipCount = len - actualStart;
41
+ }
42
+ // 10. Else,
43
+ else {
44
+ // a. Let sc be ? ToIntegerOrInfinity(skipCount).
45
+ var sc = ToIntegerOrInfinity(skipCount);
46
+ // b. Let actualSkipCount be the result of clamping sc between 0 and len - actualStart.
47
+ actualSkipCount = Math.min(Math.max(0, sc), len - actualStart);
48
+ }
49
+
50
+ // 11. Let newLen be len + insertCount - actualSkipCount.
51
+ var newLen = len + insertCount - actualSkipCount;
52
+ // 12. If newLen > 253 - 1, throw a TypeError exception.
53
+ if (newLen > Number.MAX_SAFE_INTEGER) {
54
+ throw new TypeError('Length exceeded the maximum array length');
55
+ }
56
+ // 13. Let A be ? ArrayCreate(newLen).
57
+ var A = ArrayCreate(newLen);
58
+ // 14. Let i be 0.
59
+ var i = 0;
60
+ // 15. Let r be actualStart + actualSkipCount.
61
+ var r = actualStart + actualSkipCount;
62
+ // 16. Repeat, while i < actualStart,
63
+ while (i < actualStart) {
64
+ // a. Let Pi be ! ToString(𝔽(i)).
65
+ var Pi = ToString(i);
66
+ // b. Let iValue be ? Get(O, Pi).
67
+ var iValue = Get(O, Pi);
68
+ // c. Perform ! CreateDataPropertyOrThrow(A, Pi, iValue).
69
+ CreateDataPropertyOrThrow(A, Pi, iValue);
70
+ // d. Set i to i + 1.
71
+ i = i + 1;
72
+ }
73
+ // 17. For each element E of items, do
74
+ items.forEach(function (E) {
75
+ var Pi = ToString(i);
76
+ CreateDataPropertyOrThrow(A, Pi, E);
77
+ i = i + 1;
78
+ });
79
+ // 18. Repeat, while i < newLen,
80
+ while (i < newLen) {
81
+ // a. Let Pi be ! ToString(𝔽(i)).
82
+ var Pi2 = ToString(i);
83
+ // b. Let from be ! ToString(𝔽(r)).
84
+ var from = ToString(r);
85
+ // c. Let fromValue be ? Get(O, from).
86
+ var fromValue = Get(O, from);
87
+ // d. Perform ! CreateDataPropertyOrThrow(A, Pi, fromValue).
88
+ CreateDataPropertyOrThrow(A, Pi2, fromValue);
89
+ // e. Set i to i + 1.
90
+ i = i + 1;
91
+ // f. Set r to r + 1.
92
+ r = r + 1;
93
+ }
94
+ // 19. Return A.
95
+ return A;
96
+ });
@@ -0,0 +1 @@
1
+ {"aliases":["es2023"],"dependencies":["_ESAbstract.ArrayCreate","_ESAbstract.CreateDataPropertyOrThrow","_ESAbstract.CreateMethodProperty","_ESAbstract.Get","_ESAbstract.LengthOfArrayLike","_ESAbstract.ToIntegerOrInfinity","_ESAbstract.ToObject","_ESAbstract.ToString","Function.prototype.name"],"license":"MIT","spec":"https://tc39.es/ecma262/#sec-array.prototype.with","docs":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/with","browsers":{"android":"*","bb":"*","chrome":"<110","edge":"*","edge_mob":"*","firefox":"*","firefox_mob":"*","ie":"*","ie_mob":"*","opera":"<96","op_mob":"<74","op_mini":"*","safari":"<16.3","ios_saf":"<16.3","samsung_mob":"*"},"detectSource":"\"with\"in Array.prototype\n","baseDir":"Array/prototype/with","hasTests":true,"isTestable":true,"isPublic":true,"size":552}
@@ -0,0 +1 @@
1
+ CreateMethodProperty(Array.prototype,"with",function r(e,t){var n=ToObject(this),a=LengthOfArrayLike(n),o=ToIntegerOrInfinity(e),i=o>=0?o:a+o;if(i>=a||i<0)throw new RangeError("Invalid index");for(var y=ArrayCreate(a),f=0;f<a;){var u=ToString(f),c=f===i?t:Get(n,u);CreateDataPropertyOrThrow(y,u,c),f+=1}return y}),function(){(function(){var r=function(){};try{return Object.defineProperty(r,"name",{value:"test"}),!0}catch(r){return!1}})()&&Object.defineProperty(Array.prototype.with,"name",{value:"with",writable:!1,enumerable:!1,configurable:!0})}();
@@ -0,0 +1,60 @@
1
+
2
+ // Array.prototype.with
3
+ /* global ArrayCreate, CreateDataPropertyOrThrow, CreateMethodProperty, Get, LengthOfArrayLike, ToIntegerOrInfinity, ToObject, ToString */
4
+ // 23.1.3.39 Array.prototype.with ( index, value )
5
+ CreateMethodProperty(Array.prototype, 'with', function With(index, value) {
6
+ // 1. Let O be ? ToObject(this value).
7
+ var O = ToObject(this);
8
+ // 2. Let len be ? LengthOfArrayLike(O).
9
+ var len = LengthOfArrayLike(O);
10
+ // 3. Let relativeIndex be ? ToIntegerOrInfinity(index).
11
+ var relativeIndex = ToIntegerOrInfinity(index);
12
+ // 4. If relativeIndex ≥ 0, let actualIndex be relativeIndex.
13
+ // 5. Else, let actualIndex be len + relativeIndex.
14
+ var actualIndex = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
15
+ // 6. If actualIndex ≥ len or actualIndex < 0, throw a RangeError exception.
16
+ if (actualIndex >= len || actualIndex < 0) {
17
+ throw new RangeError('Invalid index');
18
+ }
19
+ // 7. Let A be ? ArrayCreate(len).
20
+ var A = ArrayCreate(len);
21
+ // 8. Let k be 0.
22
+ var k = 0;
23
+ // 9. Repeat, while k < len,
24
+ while (k < len) {
25
+ // a. Let Pk be ! ToString(𝔽(k)).
26
+ var Pk = ToString(k);
27
+ // b. If k is actualIndex, let fromValue be value.
28
+ // c. Else, let fromValue be ? Get(O, Pk).
29
+ var fromValue = k === actualIndex ? value : Get(O, Pk);
30
+ // d. Perform ! CreateDataPropertyOrThrow(A, Pk, fromValue).
31
+ CreateDataPropertyOrThrow(A, Pk, fromValue);
32
+ // e. Set k to k + 1.
33
+ k = k + 1;
34
+ }
35
+ // 10. Return A.
36
+ return A;
37
+ });
38
+
39
+ (function () {
40
+ var supportsDefiningFunctionName = (function () {
41
+ var fn = function () {};
42
+ try {
43
+ Object.defineProperty(fn, 'name', {
44
+ value: 'test'
45
+ });
46
+ return true;
47
+ } catch (ignore) {
48
+ return false;
49
+ }
50
+ })();
51
+
52
+ if (supportsDefiningFunctionName) {
53
+ Object.defineProperty(Array.prototype.with, 'name', {
54
+ value: 'with',
55
+ writable: false,
56
+ enumerable: false,
57
+ configurable: true
58
+ })
59
+ }
60
+ })();
@@ -0,0 +1 @@
1
+ {"aliases":[],"dependencies":["Node.prototype.isConnected"],"spec":"https://html.spec.whatwg.org/multipage/forms.html#dom-form-requestsubmit-dev","docs":"https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/requestSubmit","license":"MIT","browsers":{"android":"*","chrome":"<76","edge":"*","edge_mob":"*","firefox":"<75","firefox_mob":"<79","ie":"*","ie_mob":"*","opera":"<63","op_mob":"<64","op_mini":"*","safari":"<16.0","ios_saf":"<16.0","samsung_mob":"<12.0"},"detectSource":"\"function\"==typeof HTMLFormElement.prototype.requestSubmit\n","baseDir":"HTMLFormElement/prototype/requestSubmit","hasTests":true,"isTestable":true,"isPublic":true,"size":1180}
@@ -0,0 +1 @@
1
+ !function(e){function t(e,t){if(!(e instanceof HTMLElement))throw new TypeError("Failed to execute 'requestSubmit' on 'HTMLFormElement': parameter 1 is not of type 'HTMLElement'.");if(e.form!==t||e.hasAttribute("form")&&(""===e.getAttribute("form")||e.getAttribute("form")!==t.id))throw i?new DOMException("Failed to execute 'requestSubmit' on 'HTMLFormElement': The specified element is not owned by this form element.","NotFoundError"):new Error("NotFoundError: Failed to execute 'requestSubmit' on 'HTMLFormElement': The specified element is not owned by this form element.");if(("submit"!==e.type||"BUTTON"!==e.tagName)&&!("submit"===e.type&&"INPUT"===e.tagName||"image"===e.type&&"INPUT"===e.tagName))throw new TypeError("Failed to execute 'requestSubmit' on 'HTMLFormElement': The specified element is not a submit button.")}if("function"!=typeof e.requestSubmit){var i=!1;try{new DOMException,i=!0}catch(e){}e.requestSubmit=function e(){if(this.isConnected){var i=arguments[0];if(i&&t(i,this),i&&!i.disabled)return void i.click();i=document.createElement("input"),i.type="submit",i.hidden=!0,this.appendChild(i),i.click(),this.removeChild(i)}}}}(HTMLFormElement.prototype);
@@ -0,0 +1,116 @@
1
+
2
+ // HTMLFormElement.prototype.requestSubmit
3
+ /**
4
+ * The MIT License (MIT)
5
+ *
6
+ * Copyright (c) 2019 Javan Makhmali <javan@javan.us>
7
+ *
8
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ * of this software and associated documentation files (the "Software"), to deal
10
+ * in the Software without restriction, including without limitation the rights
11
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ * copies of the Software, and to permit persons to whom the Software is
13
+ * furnished to do so, subject to the following conditions:
14
+ *
15
+ * The above copyright notice and this permission notice shall be included in
16
+ * all copies or substantial portions of the Software.
17
+ *
18
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
+ * THE SOFTWARE.
25
+ *
26
+ * @link https://github.com/javan/form-request-submit-polyfill
27
+ */
28
+
29
+ /* globals */
30
+ // eslint-disable-next-line no-unused-vars
31
+
32
+ (function (prototype) {
33
+ // Place all polyfill code within this function.
34
+ if (typeof prototype.requestSubmit === "function") return;
35
+
36
+ var supportsDomExceptionConstructor = false;
37
+ try {
38
+ new DOMException();
39
+ supportsDomExceptionConstructor = true;
40
+ } catch (e) { /* noop */ }
41
+
42
+ prototype.requestSubmit = function requestSubmit() {
43
+ if (!this.isConnected) {
44
+ return;
45
+ }
46
+
47
+ var submitter = arguments[0];
48
+ if (submitter) {
49
+ validateSubmitter(submitter, this);
50
+ }
51
+
52
+ if (submitter && !submitter.disabled) {
53
+ submitter.click();
54
+ return;
55
+ }
56
+
57
+ submitter = document.createElement("input");
58
+ submitter.type = "submit";
59
+ submitter.hidden = true;
60
+ this.appendChild(submitter);
61
+ submitter.click();
62
+ this.removeChild(submitter);
63
+ };
64
+
65
+ function validateSubmitter(submitter, form) {
66
+ if (!(submitter instanceof HTMLElement)) {
67
+ throw new TypeError(
68
+ "Failed to execute 'requestSubmit' on 'HTMLFormElement': " +
69
+ "parameter 1 is not of type 'HTMLElement'" +
70
+ "."
71
+ );
72
+ }
73
+
74
+ if (
75
+ (submitter.form !== form) ||
76
+ // Older browsers have incorrect implementations for the "form" attribute
77
+ (submitter.hasAttribute('form') && (
78
+ submitter.getAttribute('form') === '' ||
79
+ submitter.getAttribute('form') !== form.id
80
+ ))
81
+ ) {
82
+ if (supportsDomExceptionConstructor) {
83
+ throw new DOMException(
84
+ "Failed to execute 'requestSubmit' on 'HTMLFormElement': " +
85
+ "The specified element is not owned by this form element" +
86
+ ".",
87
+ "NotFoundError"
88
+ );
89
+ } else {
90
+ throw new Error(
91
+ "NotFoundError: Failed to execute 'requestSubmit' on 'HTMLFormElement': " +
92
+ "The specified element is not owned by this form element" +
93
+ "."
94
+ );
95
+ }
96
+ }
97
+
98
+ if (submitter.type === "submit" && submitter.tagName === "BUTTON") {
99
+ return;
100
+ }
101
+
102
+ if (submitter.type === "submit" && submitter.tagName === "INPUT") {
103
+ return;
104
+ }
105
+
106
+ if (submitter.type === "image" && submitter.tagName === "INPUT") {
107
+ return;
108
+ }
109
+
110
+ throw new TypeError(
111
+ "Failed to execute 'requestSubmit' on 'HTMLFormElement': " +
112
+ "The specified element is not a submit button" +
113
+ "."
114
+ );
115
+ }
116
+ })(HTMLFormElement.prototype);
@@ -1 +1 @@
1
- {"aliases":[],"dependencies":["Event","performance.now"],"docs":"https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver","spec":"http://rawgit.com/w3c/IntersectionObserver/master/index.html","notes":[],"repo":"https://github.com/w3c/IntersectionObserver","browsers":{"android":"*","bb":"*","chrome":"<51","edge":"<16","edge_mob":"<16","firefox":"<55","firefox_mob":"<55","ie":"*","ie_mob":"*","opera":"<45","op_mob":"<46","op_mini":"*","safari":"<17.0","ios_saf":"<17.0","samsung_mob":"<7.0"},"detectSource":"\"IntersectionObserver\"in window&&\"IntersectionObserverEntry\"in window&&\"intersectionRatio\"in window.IntersectionObserverEntry.prototype\n","baseDir":"IntersectionObserver","hasTests":false,"isTestable":true,"isPublic":true,"size":6733}
1
+ {"aliases":[],"dependencies":["Event","performance.now"],"docs":"https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver","spec":"http://rawgit.com/w3c/IntersectionObserver/master/index.html","notes":[],"repo":"https://github.com/w3c/IntersectionObserver","browsers":{"android":"*","bb":"*","chrome":"<51","edge":"<16","edge_mob":"<16","firefox":"<55","firefox_mob":"<55","ie":"*","ie_mob":"*","opera":"<45","op_mob":"<46","op_mini":"*","safari":"<17.0","ios_saf":"<17.0","samsung_mob":"<7.0"},"detectSource":"\"IntersectionObserver\"in window&&\"IntersectionObserverEntry\"in window&&\"intersectionRatio\"in window.IntersectionObserverEntry.prototype\n","baseDir":"IntersectionObserver","hasTests":true,"isTestable":true,"isPublic":true,"size":6765}
@@ -1 +1 @@
1
- !function(t,e){"use strict";function n(t){this.time=t.time,this.target=t.target,this.rootBounds=t.rootBounds,this.boundingClientRect=t.boundingClientRect,this.intersectionRect=t.intersectionRect||u();try{this.isIntersecting=!!t.intersectionRect}catch(t){}var e=this.boundingClientRect,n=e.width*e.height,o=this.intersectionRect,i=o.width*o.height;this.intersectionRatio=n?Number((i/n).toFixed(4)):this.isIntersecting?1:0}function o(t,e){var n=e||{};if("function"!=typeof t)throw new Error("callback must be a function");if(n.root&&1!=n.root.nodeType)throw new Error("root must be an Element");this._checkForIntersections=r(this._checkForIntersections.bind(this),this.THROTTLE_TIMEOUT),this._callback=t,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(n.rootMargin),this.thresholds=this._initThresholds(n.threshold),this.root=n.root||null,this.rootMargin=this._rootMarginValues.map(function(t){return t.value+t.unit}).join(" ")}function i(){return t.performance&&performance.now&&performance.now()}function r(t,e){var n=null;return function(){n||(n=setTimeout(function(){t(),n=null},e))}}function s(t,e,n,o){"function"==typeof t.addEventListener?t.addEventListener(e,n,o||!1):"function"==typeof t.attachEvent&&t.attachEvent("on"+e,n)}function h(t,e,n,o){"function"==typeof t.removeEventListener?t.removeEventListener(e,n,o||!1):"function"==typeof t.detatchEvent&&t.detatchEvent("on"+e,n)}function c(t,e){var n=Math.max(t.top,e.top),o=Math.min(t.bottom,e.bottom),i=Math.max(t.left,e.left),r=Math.min(t.right,e.right),s=r-i,h=o-n;return s>=0&&h>=0&&{x:i,y:n,top:n,bottom:o,left:i,right:r,width:s,height:h}}function a(t){var e;try{e=t.getBoundingClientRect()}catch(t){}return e?(e.width&&e.height&&e.x&&e.y||(e={x:e.left,y:e.top,top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):u()}function u(){return{x:0,y:0,top:0,bottom:0,left:0,right:0,width:0,height:0}}function l(t,e){for(var n=e;n;){if(n==t)return!0;n=p(n)}return!1}function p(t){var e=t.parentNode;return e&&11==e.nodeType&&e.host?e.host:e&&e.assignedSlot?e.assignedSlot.parentNode:e}if(!("IntersectionObserver"in t&&"IntersectionObserverEntry"in t&&"intersectionRatio"in t.IntersectionObserverEntry.prototype)){var f=[];o.prototype.THROTTLE_TIMEOUT=100,o.prototype.POLL_INTERVAL=null,o.prototype.USE_MUTATION_OBSERVER=!0,o.prototype.observe=function(t){if(!this._observationTargets.some(function(e){return e.element==t})){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},o.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter(function(e){return e.element!=t}),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},o.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},o.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},o.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter(function(t,e,n){if("number"!=typeof t||isNaN(t)||t<0||t>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return t!==n[e-1]})},o.prototype._parseRootMargin=function(t){var e=t||"0px",n=e.split(/\s+/).map(function(t){var e=/^(-?\d*\.?\d+)(px|%)$/.exec(t);if(!e)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(e[1]),unit:e[2]}});return n[1]=n[1]||n[0],n[2]=n[2]||n[0],n[3]=n[3]||n[1],n},o.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(s(t,"resize",this._checkForIntersections,!0),s(e,"scroll",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in t&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},o.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,h(t,"resize",this._checkForIntersections,!0),h(e,"scroll",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},o.prototype._checkForIntersections=function(){var t=this._rootIsInDom(),e=t?this._getRootRect():u();this._observationTargets.forEach(function(o){var r=o.element,s=a(r),h=this._rootContainsTarget(r),c=o.entry,u=t&&h&&this._computeTargetAndRootIntersection(r,e),l=o.entry=new n({time:i(),target:r,boundingClientRect:s,rootBounds:e,intersectionRect:u});c?t&&h?this._hasCrossedThreshold(c,l)&&this._queuedEntries.push(l):c&&c.isIntersecting&&this._queuedEntries.push(l):this._queuedEntries.push(l)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},o.prototype._computeTargetAndRootIntersection=function(n,o){if("none"!=t.getComputedStyle(n).display){for(var i=a(n),r=i,s=p(n),h=!1;!h;){var u=null,l=1==s.nodeType?t.getComputedStyle(s):{};if("none"==l.display)return;if(s==this.root||s==e?(h=!0,u=o):s!=e.body&&s!=e.documentElement&&"visible"!=l.overflow&&(u=a(s)),u&&!(r=c(u,r)))break;s=p(s)}return r}},o.prototype._getRootRect=function(){var t;if(this.root)t=a(this.root);else{var n=e.documentElement,o=e.body;t={x:0,y:0,top:0,left:0,right:n.clientWidth||o.clientWidth,width:n.clientWidth||o.clientWidth,bottom:n.clientHeight||o.clientHeight,height:n.clientHeight||o.clientHeight}}return this._expandRectByRootMargin(t)},o.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map(function(e,n){return"px"==e.unit?e.value:e.value*(n%2?t.width:t.height)/100}),n={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return n.width=n.right-n.left,n.height=n.bottom-n.top,n.x=n.left,n.y=n.top,n},o.prototype._hasCrossedThreshold=function(t,e){var n=t&&t.isIntersecting?t.intersectionRatio||0:-1,o=e.isIntersecting?e.intersectionRatio||0:-1;if(n!==o)for(var i=0;i<this.thresholds.length;i++){var r=this.thresholds[i];if(r==n||r==o||r<n!=r<o)return!0}},o.prototype._rootIsInDom=function(){return!this.root||l(e,this.root)},o.prototype._rootContainsTarget=function(t){return l(this.root||e,t)},o.prototype._registerInstance=function(){f.indexOf(this)<0&&f.push(this)},o.prototype._unregisterInstance=function(){var t=f.indexOf(this);-1!=t&&f.splice(t,1)},t.IntersectionObserver=o,t.IntersectionObserverEntry=n}}(window,document);
1
+ !function(t,e){"use strict";function n(t){this.time=t.time,this.target=t.target,this.rootBounds=t.rootBounds,this.boundingClientRect=t.boundingClientRect,this.intersectionRect=t.intersectionRect||u();try{this.isIntersecting=!!t.intersectionRect}catch(t){}var e=this.boundingClientRect,n=e.width*e.height,o=this.intersectionRect,i=o.width*o.height;this.intersectionRatio=n?Number((i/n).toFixed(4)):this.isIntersecting?1:0}function o(t,e){var n=e||{};if("function"!=typeof t)throw new Error("callback must be a function");if(n.root&&1!=n.root.nodeType)throw new Error("root must be an Element");this._checkForIntersections=r(this._checkForIntersections.bind(this),this.THROTTLE_TIMEOUT),this._callback=t,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(n.rootMargin),this.thresholds=this._initThresholds(n.threshold),this.root=n.root||null,this.rootMargin=this._rootMarginValues.map(function(t){return t.value+t.unit}).join(" ")}function i(){return t.performance&&performance.now&&performance.now()}function r(t,e){var n=null;return function(){n||(n=setTimeout(function(){t(),n=null},e))}}function s(t,e,n,o){"function"==typeof t.addEventListener?t.addEventListener(e,n,o||!1):"function"==typeof t.attachEvent&&t.attachEvent("on"+e,n)}function h(t,e,n,o){"function"==typeof t.removeEventListener?t.removeEventListener(e,n,o||!1):"function"==typeof t.detatchEvent&&t.detatchEvent("on"+e,n)}function c(t,e){var n=Math.max(t.top,e.top),o=Math.min(t.bottom,e.bottom),i=Math.max(t.left,e.left),r=Math.min(t.right,e.right),s=r-i,h=o-n;return s>=0&&h>=0&&{x:i,y:n,top:n,bottom:o,left:i,right:r,width:s,height:h}}function a(t){var e;try{e=t.getBoundingClientRect()}catch(t){}return e?(e.width&&e.height&&e.x&&e.y||(e={x:e.left,y:e.top,top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):u()}function u(){return{x:0,y:0,top:0,bottom:0,left:0,right:0,width:0,height:0}}function l(t,e){for(var n=e;n;){if(n==t)return!0;n=p(n)}return!1}function p(t){var e=t.parentNode;return e&&11==e.nodeType&&e.host?e.host:e&&e.assignedSlot?e.assignedSlot.parentNode:e}if(!("IntersectionObserver"in t&&"IntersectionObserverEntry"in t&&"intersectionRatio"in t.IntersectionObserverEntry.prototype)){var f=[];n.prototype.intersectionRatio=0,o.prototype.THROTTLE_TIMEOUT=100,o.prototype.POLL_INTERVAL=null,o.prototype.USE_MUTATION_OBSERVER=!0,o.prototype.observe=function(t){if(!this._observationTargets.some(function(e){return e.element==t})){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},o.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter(function(e){return e.element!=t}),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},o.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},o.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},o.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter(function(t,e,n){if("number"!=typeof t||isNaN(t)||t<0||t>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return t!==n[e-1]})},o.prototype._parseRootMargin=function(t){var e=t||"0px",n=e.split(/\s+/).map(function(t){var e=/^(-?\d*\.?\d+)(px|%)$/.exec(t);if(!e)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(e[1]),unit:e[2]}});return n[1]=n[1]||n[0],n[2]=n[2]||n[0],n[3]=n[3]||n[1],n},o.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(s(t,"resize",this._checkForIntersections,!0),s(e,"scroll",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in t&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},o.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,h(t,"resize",this._checkForIntersections,!0),h(e,"scroll",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},o.prototype._checkForIntersections=function(){var t=this._rootIsInDom(),e=t?this._getRootRect():u();this._observationTargets.forEach(function(o){var r=o.element,s=a(r),h=this._rootContainsTarget(r),c=o.entry,u=t&&h&&this._computeTargetAndRootIntersection(r,e),l=o.entry=new n({time:i(),target:r,boundingClientRect:s,rootBounds:e,intersectionRect:u});c?t&&h?this._hasCrossedThreshold(c,l)&&this._queuedEntries.push(l):c&&c.isIntersecting&&this._queuedEntries.push(l):this._queuedEntries.push(l)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},o.prototype._computeTargetAndRootIntersection=function(n,o){if("none"!=t.getComputedStyle(n).display){for(var i=a(n),r=i,s=p(n),h=!1;!h;){var u=null,l=1==s.nodeType?t.getComputedStyle(s):{};if("none"==l.display)return;if(s==this.root||s==e?(h=!0,u=o):s!=e.body&&s!=e.documentElement&&"visible"!=l.overflow&&(u=a(s)),u&&!(r=c(u,r)))break;s=p(s)}return r}},o.prototype._getRootRect=function(){var t;if(this.root)t=a(this.root);else{var n=e.documentElement,o=e.body;t={x:0,y:0,top:0,left:0,right:n.clientWidth||o.clientWidth,width:n.clientWidth||o.clientWidth,bottom:n.clientHeight||o.clientHeight,height:n.clientHeight||o.clientHeight}}return this._expandRectByRootMargin(t)},o.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map(function(e,n){return"px"==e.unit?e.value:e.value*(n%2?t.width:t.height)/100}),n={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return n.width=n.right-n.left,n.height=n.bottom-n.top,n.x=n.left,n.y=n.top,n},o.prototype._hasCrossedThreshold=function(t,e){var n=t&&t.isIntersecting?t.intersectionRatio||0:-1,o=e.isIntersecting?e.intersectionRatio||0:-1;if(n!==o)for(var i=0;i<this.thresholds.length;i++){var r=this.thresholds[i];if(r==n||r==o||r<n!=r<o)return!0}},o.prototype._rootIsInDom=function(){return!this.root||l(e,this.root)},o.prototype._rootContainsTarget=function(t){return l(this.root||e,t)},o.prototype._registerInstance=function(){f.indexOf(this)<0&&f.push(this)},o.prototype._unregisterInstance=function(){var t=f.indexOf(this);-1!=t&&f.splice(t,1)},t.IntersectionObserver=o,t.IntersectionObserverEntry=n}}(window,document);