From b069ecafbcaae8bcd6f653174bbfeffde70c5f16 Mon Sep 17 00:00:00 2001 From: Etienne Dewailly Date: Mon, 19 Aug 2024 03:57:08 +0200 Subject: [PATCH] feat: Replace defaultProps with plain Javascript default parameters It's not necessarily the cleanest way to do it, but it works. --- package-lock.json | 564 ++++++++++++++++-- package.json | 2 +- src/basic-version.tsx | 20 +- src/render-props-version.tsx | 6 +- src/types.tsx | 2 +- stories/common.tsx | 16 +- stories/examples.scss | 2 +- .../289.9eec72b8.iframe.bundle.js | 1 + .../289.deb92e74.iframe.bundle.js | 1 - storybook-static/iframe.html | 2 +- storybook-static/project.json | 2 +- ...=> runtime~main.2967869f.iframe.bundle.js} | 2 +- .../manager-bundle.js.map | 2 +- .../manager-bundle.js.map | 2 +- .../manager-bundle.js.map | 2 +- .../interactions-8/manager-bundle.js.map | 2 +- 16 files changed, 543 insertions(+), 85 deletions(-) create mode 100644 storybook-static/289.9eec72b8.iframe.bundle.js delete mode 100644 storybook-static/289.deb92e74.iframe.bundle.js rename storybook-static/{runtime~main.a453980e.iframe.bundle.js => runtime~main.2967869f.iframe.bundle.js} (98%) diff --git a/package-lock.json b/package-lock.json index b054c15..fb30b56 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,12 +37,12 @@ "eslint-plugin-storybook": "^0.6.12", "jsdom": "^16.2.1", "mocha": "^10.2.0", - "node-sass": "^8.0.0", "prop-types": "^15.8.1", "react": "^16.12.0", "react-dom": "^16.12.0", "react-hot-loader": "^4.12.19", "rimraf": "^3.0.1", + "sass": "^1.77.8", "sass-loader": "^13.2.2", "sinon": "^8.1.1", "sinon-chai": "^3.4.0", @@ -3469,7 +3469,9 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.10", @@ -3880,6 +3882,8 @@ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@gar/promisify": "^1.1.3", "semver": "^7.3.5" @@ -3893,6 +3897,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -3908,6 +3914,8 @@ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -3921,6 +3929,8 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "optional": true, + "peer": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -6514,6 +6524,8 @@ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 10" } @@ -6821,7 +6833,9 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/mocha": { "version": "10.0.1", @@ -7498,7 +7512,9 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/accepts": { "version": "1.3.8", @@ -7602,6 +7618,8 @@ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "debug": "^4.1.0", "depd": "^2.0.0", @@ -7616,6 +7634,8 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ms": "2.1.2" }, @@ -7632,7 +7652,9 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/aggregate-error": { "version": "3.1.0", @@ -8005,6 +8027,8 @@ "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "*" } @@ -8530,6 +8554,8 @@ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -8559,6 +8585,8 @@ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -8569,6 +8597,8 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "optional": true, + "peer": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -8581,6 +8611,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -8643,6 +8675,8 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", @@ -9489,6 +9523,8 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -9498,6 +9534,8 @@ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" @@ -9514,6 +9552,8 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -10003,6 +10043,7 @@ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "optional": true, + "peer": true, "dependencies": { "iconv-lite": "^0.6.2" } @@ -10013,6 +10054,7 @@ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "optional": true, + "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -10067,6 +10109,8 @@ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -10176,7 +10220,9 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/error-ex": { "version": "1.3.2", @@ -11676,6 +11722,8 @@ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "globule": "^1.0.0" }, @@ -11759,6 +11807,8 @@ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -11930,6 +11980,8 @@ "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.0.tgz", "integrity": "sha512-YlD4kdMqRCQHrhVdonet4TdRtv1/sZKepvoxNT4Nrhrp5HI8XFfc8kFlGlBn2myBo80aGp8Eft259mbcUJhgSg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "glob": "~7.1.1", "lodash": "~4.17.10", @@ -12012,6 +12064,8 @@ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -12258,7 +12312,9 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/http-errors": { "version": "2.0.0", @@ -12281,6 +12337,8 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@tootallnate/once": "2", "agent-base": "6", @@ -12295,6 +12353,8 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ms": "2.1.2" }, @@ -12311,7 +12371,9 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/https-proxy-agent": { "version": "5.0.1", @@ -12363,6 +12425,8 @@ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ms": "^2.0.0" } @@ -12420,6 +12484,12 @@ "node": ">= 4" } }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "dev": true + }, "node_modules/import-fresh": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", @@ -12464,7 +12534,9 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/inflight": { "version": "1.0.6", @@ -12731,7 +12803,9 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/is-map": { "version": "2.0.2", @@ -12811,6 +12885,8 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -13393,7 +13469,9 @@ "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/js-tokens": { "version": "4.0.0", @@ -14098,6 +14176,8 @@ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "agentkeepalive": "^4.2.1", "cacache": "^16.1.0", @@ -14126,6 +14206,8 @@ "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, + "optional": true, + "peer": true, "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -14139,6 +14221,8 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -14148,6 +14232,8 @@ "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@npmcli/fs": "^2.1.0", "@npmcli/move-file": "^2.0.0", @@ -14177,6 +14263,8 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -14196,6 +14284,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=12" } @@ -14205,6 +14295,8 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -14217,6 +14309,8 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "optional": true, + "peer": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -14229,6 +14323,8 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.1.1" }, @@ -14241,6 +14337,8 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "unique-slug": "^3.0.0" }, @@ -14253,6 +14351,8 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "imurmurhash": "^0.1.4" }, @@ -14274,6 +14374,8 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" }, @@ -14357,6 +14459,8 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -14383,6 +14487,8 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -14395,6 +14501,8 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -14410,6 +14518,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -14425,6 +14535,8 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" }, @@ -14561,6 +14673,8 @@ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", @@ -14575,6 +14689,8 @@ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -14596,6 +14712,8 @@ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0" }, @@ -14608,6 +14726,8 @@ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.1.6", "minipass-sized": "^1.0.3", @@ -14625,6 +14745,8 @@ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0" }, @@ -14637,6 +14759,8 @@ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0" }, @@ -14649,6 +14773,8 @@ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0" }, @@ -14900,7 +15026,9 @@ "version": "2.17.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/nanoid": { "version": "3.3.3", @@ -15079,6 +15207,8 @@ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "env-paths": "^2.2.0", "glob": "^7.1.4", @@ -15103,6 +15233,8 @@ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 6" } @@ -15112,6 +15244,8 @@ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -15125,6 +15259,8 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ms": "2.1.2" }, @@ -15142,6 +15278,8 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", @@ -15161,6 +15299,8 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@tootallnate/once": "1", "agent-base": "6", @@ -15175,6 +15315,8 @@ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", @@ -15202,6 +15344,8 @@ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.1.0", "minipass-sized": "^1.0.3", @@ -15218,13 +15362,17 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/node-gyp/node_modules/npmlog": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", @@ -15240,6 +15388,8 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -15254,6 +15404,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -15269,6 +15421,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -15296,6 +15450,8 @@ "integrity": "sha512-jPzqCF2/e6JXw6r3VxfIqYc8tKQdkj5Z/BDATYyG6FL6b/LuYBNFGFVhus0mthcWifHm/JzBpKAd+3eXsWeK/A==", "dev": true, "hasInstallScript": true, + "optional": true, + "peer": true, "dependencies": { "async-foreach": "^0.1.3", "chalk": "^4.1.2", @@ -15324,6 +15480,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -15339,6 +15497,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -15355,6 +15515,8 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -15366,13 +15528,17 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "abbrev": "1" }, @@ -16261,13 +16427,17 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -16533,6 +16703,8 @@ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -16942,6 +17114,8 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -17180,6 +17354,8 @@ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 4" } @@ -17268,11 +17444,30 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "node_modules/sass": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/sass-graph": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.1.tgz", "integrity": "sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "glob": "^7.0.0", "lodash": "^4.17.11", @@ -17291,6 +17486,8 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -17305,6 +17502,8 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" } @@ -17314,6 +17513,8 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -17332,6 +17533,8 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=12" } @@ -17418,6 +17621,8 @@ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.4.3.tgz", "integrity": "sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "js-base64": "^2.4.9", "source-map": "^0.7.3" @@ -17428,6 +17633,8 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 8" } @@ -17676,6 +17883,8 @@ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -17686,6 +17895,8 @@ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" @@ -17700,6 +17911,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -17714,6 +17927,8 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ms": "2.1.2" }, @@ -17730,7 +17945,9 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/source-map": { "version": "0.6.1", @@ -17813,6 +18030,8 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.1.1" }, @@ -17840,6 +18059,8 @@ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "readable-stream": "^2.0.1" } @@ -18488,6 +18709,8 @@ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -18496,7 +18719,9 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/ts-dedent": { "version": "2.2.0", @@ -18756,6 +18981,8 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "unique-slug": "^2.0.0" } @@ -18765,6 +18992,8 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "imurmurhash": "^0.1.4" } @@ -21998,7 +22227,9 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "@humanwhocodes/config-array": { "version": "0.11.10", @@ -22320,6 +22551,8 @@ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@gar/promisify": "^1.1.3", "semver": "^7.3.5" @@ -22330,6 +22563,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "lru-cache": "^6.0.0" } @@ -22341,6 +22576,8 @@ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "dev": true, + "optional": true, + "peer": true, "requires": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -22350,7 +22587,9 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -24156,7 +24395,9 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "@tsconfig/node10": { "version": "1.0.9", @@ -24461,7 +24702,9 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "@types/mocha": { "version": "10.0.1", @@ -25001,7 +25244,9 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "accepts": { "version": "1.3.8", @@ -25079,6 +25324,8 @@ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", "dev": true, + "optional": true, + "peer": true, "requires": { "debug": "^4.1.0", "depd": "^2.0.0", @@ -25090,6 +25337,8 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "ms": "2.1.2" } @@ -25098,7 +25347,9 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -25400,7 +25651,9 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "async-limiter": { "version": "1.0.1", @@ -25798,6 +26051,8 @@ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -25824,6 +26079,8 @@ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -25833,13 +26090,17 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "semver": { "version": "7.5.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "lru-cache": "^6.0.0" } @@ -25891,6 +26152,8 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, + "optional": true, + "peer": true, "requires": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", @@ -26509,13 +26772,17 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "decamelize-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, + "optional": true, + "peer": true, "requires": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" @@ -26525,7 +26792,9 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -26908,6 +27177,7 @@ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "optional": true, + "peer": true, "requires": { "iconv-lite": "^0.6.2" }, @@ -26918,6 +27188,7 @@ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "optional": true, + "peer": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } @@ -26964,7 +27235,9 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "envinfo": { "version": "7.9.0", @@ -27048,7 +27321,9 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "error-ex": { "version": "1.3.2", @@ -28208,6 +28483,8 @@ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, + "optional": true, + "peer": true, "requires": { "globule": "^1.0.0" } @@ -28263,7 +28540,9 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "get-stream": { "version": "6.0.1", @@ -28386,6 +28665,8 @@ "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.0.tgz", "integrity": "sha512-YlD4kdMqRCQHrhVdonet4TdRtv1/sZKepvoxNT4Nrhrp5HI8XFfc8kFlGlBn2myBo80aGp8Eft259mbcUJhgSg==", "dev": true, + "optional": true, + "peer": true, "requires": { "glob": "~7.1.1", "lodash": "~4.17.10", @@ -28450,7 +28731,9 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "has": { "version": "1.0.3", @@ -28618,7 +28901,9 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "http-errors": { "version": "2.0.0", @@ -28638,6 +28923,8 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, + "optional": true, + "peer": true, "requires": { "@tootallnate/once": "2", "agent-base": "6", @@ -28649,6 +28936,8 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "ms": "2.1.2" } @@ -28657,7 +28946,9 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -28699,6 +28990,8 @@ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "ms": "^2.0.0" } @@ -28733,6 +29026,12 @@ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, + "immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "dev": true + }, "import-fresh": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", @@ -28767,7 +29066,9 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "inflight": { "version": "1.0.6", @@ -28956,7 +29257,9 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "is-map": { "version": "2.0.2", @@ -29008,7 +29311,9 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "is-plain-object": { "version": "2.0.4", @@ -29443,7 +29748,9 @@ "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "js-tokens": { "version": "4.0.0", @@ -29992,6 +30299,8 @@ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", "dev": true, + "optional": true, + "peer": true, "requires": { "agentkeepalive": "^4.2.1", "cacache": "^16.1.0", @@ -30016,6 +30325,8 @@ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -30026,6 +30337,8 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "optional": true, + "peer": true, "requires": { "balanced-match": "^1.0.0" } @@ -30035,6 +30348,8 @@ "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@npmcli/fs": "^2.1.0", "@npmcli/move-file": "^2.0.0", @@ -30061,6 +30376,8 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -30073,13 +30390,17 @@ "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "optional": true, + "peer": true, "requires": { "brace-expansion": "^2.0.1" } @@ -30088,13 +30409,17 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "ssri": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dev": true, + "optional": true, + "peer": true, "requires": { "minipass": "^3.1.1" } @@ -30104,6 +30429,8 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", "dev": true, + "optional": true, + "peer": true, "requires": { "unique-slug": "^3.0.0" } @@ -30113,6 +30440,8 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", "dev": true, + "optional": true, + "peer": true, "requires": { "imurmurhash": "^0.1.4" } @@ -30132,7 +30461,9 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "map-or-similar": { "version": "1.5.0", @@ -30191,6 +30522,8 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -30211,6 +30544,8 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "optional": true, + "peer": true, "requires": { "lru-cache": "^6.0.0" } @@ -30220,6 +30555,8 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "optional": true, + "peer": true, "requires": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -30232,6 +30569,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "lru-cache": "^6.0.0" } @@ -30240,7 +30579,9 @@ "version": "0.18.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -30340,6 +30681,8 @@ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, + "optional": true, + "peer": true, "requires": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", @@ -30350,7 +30693,9 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -30368,6 +30713,8 @@ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, + "optional": true, + "peer": true, "requires": { "minipass": "^3.0.0" } @@ -30377,6 +30724,8 @@ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", "dev": true, + "optional": true, + "peer": true, "requires": { "encoding": "^0.1.13", "minipass": "^3.1.6", @@ -30389,6 +30738,8 @@ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, + "optional": true, + "peer": true, "requires": { "minipass": "^3.0.0" } @@ -30398,6 +30749,8 @@ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, + "optional": true, + "peer": true, "requires": { "minipass": "^3.0.0" } @@ -30407,6 +30760,8 @@ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, + "optional": true, + "peer": true, "requires": { "minipass": "^3.0.0" } @@ -30608,7 +30963,9 @@ "version": "2.17.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "nanoid": { "version": "3.3.3", @@ -30760,6 +31117,8 @@ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", "dev": true, + "optional": true, + "peer": true, "requires": { "env-paths": "^2.2.0", "glob": "^7.1.4", @@ -30777,13 +31136,17 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "are-we-there-yet": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", "dev": true, + "optional": true, + "peer": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -30794,6 +31157,8 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "ms": "2.1.2" } @@ -30803,6 +31168,8 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", "dev": true, + "optional": true, + "peer": true, "requires": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", @@ -30819,6 +31186,8 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, + "optional": true, + "peer": true, "requires": { "@tootallnate/once": "1", "agent-base": "6", @@ -30830,6 +31199,8 @@ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, + "optional": true, + "peer": true, "requires": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", @@ -30854,6 +31225,8 @@ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, + "optional": true, + "peer": true, "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", @@ -30865,13 +31238,17 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "npmlog": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", "dev": true, + "optional": true, + "peer": true, "requires": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", @@ -30884,6 +31261,8 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "optional": true, + "peer": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -30895,6 +31274,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "lru-cache": "^6.0.0" } @@ -30904,6 +31285,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -30929,6 +31312,8 @@ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-8.0.0.tgz", "integrity": "sha512-jPzqCF2/e6JXw6r3VxfIqYc8tKQdkj5Z/BDATYyG6FL6b/LuYBNFGFVhus0mthcWifHm/JzBpKAd+3eXsWeK/A==", "dev": true, + "optional": true, + "peer": true, "requires": { "async-foreach": "^0.1.3", "chalk": "^4.1.2", @@ -30951,6 +31336,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "optional": true, + "peer": true, "requires": { "color-convert": "^2.0.1" } @@ -30960,6 +31347,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "optional": true, + "peer": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -30970,6 +31359,8 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "color-name": "~1.1.4" } @@ -30978,7 +31369,9 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -30987,6 +31380,8 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "abbrev": "1" } @@ -31657,13 +32052,17 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, + "optional": true, + "peer": true, "requires": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -31873,7 +32272,9 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "raf": { "version": "3.4.1", @@ -32211,6 +32612,8 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, + "optional": true, + "peer": true, "requires": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -32397,7 +32800,9 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "reusify": { "version": "1.0.4", @@ -32456,11 +32861,24 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "sass": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, "sass-graph": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.1.tgz", "integrity": "sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA==", "dev": true, + "optional": true, + "peer": true, "requires": { "glob": "^7.0.0", "lodash": "^4.17.11", @@ -32473,6 +32891,8 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -32483,13 +32903,17 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "yargs": { "version": "17.7.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", "dev": true, + "optional": true, + "peer": true, "requires": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -32504,7 +32928,9 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -32552,6 +32978,8 @@ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.4.3.tgz", "integrity": "sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw==", "dev": true, + "optional": true, + "peer": true, "requires": { "js-base64": "^2.4.9", "source-map": "^0.7.3" @@ -32561,7 +32989,9 @@ "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -32774,13 +33204,17 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "socks": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" @@ -32791,6 +33225,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "dev": true, + "optional": true, + "peer": true, "requires": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -32802,6 +33238,8 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "ms": "2.1.2" } @@ -32810,7 +33248,9 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -32885,6 +33325,8 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "minipass": "^3.1.1" } @@ -32906,6 +33348,8 @@ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "dev": true, + "optional": true, + "peer": true, "requires": { "readable-stream": "^2.0.1" } @@ -33392,13 +33836,17 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "true-case-path": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "ts-dedent": { "version": "2.2.0", @@ -33574,6 +34022,8 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "unique-slug": "^2.0.0" } @@ -33583,6 +34033,8 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, + "optional": true, + "peer": true, "requires": { "imurmurhash": "^0.1.4" } diff --git a/package.json b/package.json index 6c93329..7bd80cd 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "eslint-plugin-storybook": "^0.6.12", "jsdom": "^16.2.1", "mocha": "^10.2.0", - "node-sass": "^8.0.0", + "sass": "^1.77.8", "prop-types": "^15.8.1", "react": "^16.12.0", "react-dom": "^16.12.0", diff --git a/src/basic-version.tsx b/src/basic-version.tsx index 7cda21c..450ba5d 100644 --- a/src/basic-version.tsx +++ b/src/basic-version.tsx @@ -21,7 +21,13 @@ export interface Props extends CommonProps { children?: ReactNode, } -function Sticky(props: Props) { +export const defaultProps = { + ...StickyRenderProp.defaultProps, + stickyClassName: 'sticky', + wrapperClassName: '', + stickyStyle: {}, +}; +function Sticky(props: Partial) { const { // props for StickyRenderProp mode, @@ -45,7 +51,10 @@ function Sticky(props: Props) { // rest of the props that we will forward to wrapper ...rest - } = props; + } = { + ...defaultProps, + ...props + }; return } -Sticky.defaultProps = { - ...StickyRenderProp.defaultProps, - stickyClassName: 'sticky', - wrapperClassName: '', - stickyStyle: {}, -}; - export default Sticky; \ No newline at end of file diff --git a/src/render-props-version.tsx b/src/render-props-version.tsx index 412dc6b..ec52511 100644 --- a/src/render-props-version.tsx +++ b/src/render-props-version.tsx @@ -87,14 +87,14 @@ const isEqual = (obj1: State, obj2: State) => { class Sticky extends Component { static defaultProps = { - mode: 'top', + mode: 'top' as const, topOffset: 0, bottomOffset: 0, isIOSFixEnabled: true, offsetTransforms: true, disabled: false, - onFixedToggle: null, - boundaryElement: null, + onFixedToggle: undefined, + boundaryElement: undefined, hideOnBoundaryHit: true, scrollElement: 'window', dontUpdateHolderHeightWhenSticky: false, diff --git a/src/types.tsx b/src/types.tsx index 8be7047..c33e4c0 100644 --- a/src/types.tsx +++ b/src/types.tsx @@ -15,7 +15,7 @@ export interface CommonProps { * Callback that is called when sticky state is changed. * @param isFixed - `true` if element is sticky. */ - onFixedToggle: (isFixed: boolean) => void, + onFixedToggle?: (isFixed: boolean) => void, /** * If `true` - element will be hidden when boundary reached. */ diff --git a/stories/common.tsx b/stories/common.tsx index 48c1e52..e4bf32d 100644 --- a/stories/common.tsx +++ b/stories/common.tsx @@ -2,7 +2,7 @@ import React, {ReactNode} from "react"; import Sticky from "../src"; -import {Props} from "../src/basic-version"; +import {Props, defaultProps as StickyDefaultProps} from "../src/basic-version"; import './examples.scss'; import {action} from '@storybook/addon-actions'; @@ -12,7 +12,11 @@ interface BlockProps extends Props { noFooter: boolean, } -export const Block = ({noHeader, noFooter, ...rest}: BlockProps) => { +export const Block = (props: Partial) => { + const {noHeader, noFooter, ...rest} = { + ...defaultProps, + ...props + }; return (
{ @@ -56,15 +60,15 @@ export const Block = ({noHeader, noFooter, ...rest}: BlockProps) => { ); }; -Block.defaultProps = { - ...Sticky.defaultProps, - mode: 'top', +const defaultProps = { + ...StickyDefaultProps, + mode: 'top' as const, topOffset: 0, bottomOffset: 0, isIOSFixEnabled: true, offsetTransforms: true, disabled: false, - onFixedToggle: null, + onFixedToggle: undefined, noHeader: false, noFooter: false, dontUpdateHolderHeightWhenSticky: true, diff --git a/stories/examples.scss b/stories/examples.scss index 6ab9f89..fd8570e 100644 --- a/stories/examples.scss +++ b/stories/examples.scss @@ -64,13 +64,13 @@ h1, h2 { } h2 { + line-height: 30px; &.header { background: #577796; } &.footer { background: #612624; } - line-height: 30px; } p { diff --git a/storybook-static/289.9eec72b8.iframe.bundle.js b/storybook-static/289.9eec72b8.iframe.bundle.js new file mode 100644 index 0000000..08e4786 --- /dev/null +++ b/storybook-static/289.9eec72b8.iframe.bundle.js @@ -0,0 +1 @@ +(self.webpackChunkreact_sticky_el=self.webpackChunkreact_sticky_el||[]).push([[289],{"./src/basic-version.tsx":function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,{l:function(){return defaultProps}});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react/index.js"),react__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__),_render_props_version__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/render-props-version.tsx");function _extends(){return _extends=Object.assign?Object.assign.bind():function(target){for(var i=1;ireact__WEBPACK_IMPORTED_MODULE_0___default().createElement("div",_extends({},rest,{ref:holderRef,style:holderStyles}),react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div",_extends({},rest,{className:`${wrapperClassName} ${isFixed?stickyClassName:""}`,style:isFixed?{...wrapperStyles,...stickyStyle}:wrapperStyles,ref:wrapperRef}),children))))}Sticky.displayName="Sticky",__webpack_exports__.Z=Sticky;try{Sticky.displayName="Sticky",Sticky.__docgenInfo={description:"",displayName:"Sticky",props:{stickyStyle:{defaultValue:{value:"{}"},description:"Class name to be applied to the sticky element when it is fixed.",name:"stickyStyle",required:!1,type:{name:"CSSProperties"}},stickyClassName:{defaultValue:{value:"'sticky'"},description:"Class name to be applied to the sticky element when it is fixed.",name:"stickyClassName",required:!1,type:{name:"string"}},wrapperClassName:{defaultValue:{value:"''"},description:"Class name to be applied to the wrapper element.",name:"wrapperClassName",required:!1,type:{name:"string"}},mode:{defaultValue:{value:"'bottom'"},description:"Sticky mode. `bottom` - stick to bottom, `top` - stick to top.",name:"mode",required:!1,type:{name:"enum",value:[{value:'"bottom"'},{value:'"top"'}]}},onFixedToggle:{defaultValue:null,description:"Callback that is called when sticky state is changed.\n@param isFixed - `true` if element is sticky.",name:"onFixedToggle",required:!1,type:{name:"((isFixed: boolean) => void)"}},hideOnBoundaryHit:{defaultValue:null,description:"If `true` - element will be hidden when boundary reached.",name:"hideOnBoundaryHit",required:!1,type:{name:"boolean"}},offsetTransforms:{defaultValue:null,description:"TODO: describe",name:"offsetTransforms",required:!1,type:{name:"boolean"}},disabled:{defaultValue:null,description:"If `true` - element will not be sticky.",name:"disabled",required:!1,type:{name:"boolean"}},boundaryElement:{defaultValue:{value:"'window'"},description:"Element that is used as boundary. Sticky element will stop being sticky when it reaches this element.",name:"boundaryElement",required:!1,type:{name:"string"}},scrollElement:{defaultValue:{value:"'window'"},description:"Element that is used as scrollable container. Sticky element will be sticky inside this element.",name:"scrollElement",required:!1,type:{name:"string | HTMLElement"}},bottomOffset:{defaultValue:{value:"0"},description:"Offset from bottom of the screen (or top of the screen if mode is `top`) when sticky element should stop being sticky.",name:"bottomOffset",required:!1,type:{name:"number"}},topOffset:{defaultValue:{value:"0"},description:"Offset from top of the screen (or bottom of the screen if mode is `bottom`) when sticky element should stop being sticky.",name:"topOffset",required:!1,type:{name:"number"}},positionRecheckInterval:{defaultValue:null,description:"Interval in milliseconds when sticky element position should be rechecked.",name:"positionRecheckInterval",required:!1,type:{name:"number"}},dontUpdateHolderHeightWhenSticky:{defaultValue:{value:"false"},description:"If `true` - holder height will not be updated when sticky element is sticky.",name:"dontUpdateHolderHeightWhenSticky",required:!1,type:{name:"boolean"}},isIOSFixEnabled:{defaultValue:{value:"true"},description:"If `true` - iOS fix will be enabled.\n@see https://github.com/gm0t/react-sticky-el/issues/41",name:"isIOSFixEnabled",required:!1,type:{name:"boolean"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/basic-version.tsx#Sticky"]={docgenInfo:Sticky.__docgenInfo,name:"Sticky",path:"src/basic-version.tsx#Sticky"})}catch(__react_docgen_typescript_loader_error){}},"./src/index.tsx":function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__("./src/render-props-version.tsx");var _basic_version__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/basic-version.tsx");__webpack_exports__.Z=_basic_version__WEBPACK_IMPORTED_MODULE_1__.Z;try{Sticky.displayName="Sticky",Sticky.__docgenInfo={description:"",displayName:"Sticky",props:{mode:{defaultValue:{value:"'top' as const"},description:"Sticky mode. `bottom` - stick to bottom, `top` - stick to top.",name:"mode",required:!1,type:{name:"enum",value:[{value:'"bottom"'},{value:'"top"'}]}},onFixedToggle:{defaultValue:{value:"undefined"},description:"Callback that is called when sticky state is changed.\n@param isFixed - `true` if element is sticky.",name:"onFixedToggle",required:!1,type:{name:"((isFixed: boolean) => void)"}},hideOnBoundaryHit:{defaultValue:{value:"true"},description:"If `true` - element will be hidden when boundary reached.",name:"hideOnBoundaryHit",required:!1,type:{name:"boolean"}},offsetTransforms:{defaultValue:{value:"true"},description:"TODO: describe",name:"offsetTransforms",required:!1,type:{name:"boolean"}},disabled:{defaultValue:{value:"false"},description:"If `true` - element will not be sticky.",name:"disabled",required:!1,type:{name:"boolean"}},boundaryElement:{defaultValue:{value:"undefined"},description:"Element that is used as boundary. Sticky element will stop being sticky when it reaches this element.",name:"boundaryElement",required:!1,type:{name:"string"}},scrollElement:{defaultValue:{value:"window"},description:"Element that is used as scrollable container. Sticky element will be sticky inside this element.",name:"scrollElement",required:!1,type:{name:"string | HTMLElement"}},bottomOffset:{defaultValue:{value:"0"},description:"Offset from bottom of the screen (or top of the screen if mode is `top`) when sticky element should stop being sticky.",name:"bottomOffset",required:!1,type:{name:"number"}},topOffset:{defaultValue:{value:"0"},description:"Offset from top of the screen (or bottom of the screen if mode is `bottom`) when sticky element should stop being sticky.",name:"topOffset",required:!1,type:{name:"number"}},positionRecheckInterval:{defaultValue:null,description:"Interval in milliseconds when sticky element position should be rechecked.",name:"positionRecheckInterval",required:!1,type:{name:"number"}},dontUpdateHolderHeightWhenSticky:{defaultValue:{value:"false"},description:"If `true` - holder height will not be updated when sticky element is sticky.",name:"dontUpdateHolderHeightWhenSticky",required:!1,type:{name:"boolean"}},isIOSFixEnabled:{defaultValue:{value:"true"},description:"If `true` - iOS fix will be enabled.\n@see https://github.com/gm0t/react-sticky-el/issues/41",name:"isIOSFixEnabled",required:!1,type:{name:"boolean"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/index.tsx#Sticky"]={docgenInfo:Sticky.__docgenInfo,name:"Sticky",path:"src/index.tsx#Sticky"})}catch(__react_docgen_typescript_loader_error){}},"./src/render-props-version.tsx":function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,{Z:function(){return render_props_version}});var react=__webpack_require__("./node_modules/react/index.js");const elementsWithListeners=[],registeredListeners=[];function addListener(el,event,cb){let idx=elementsWithListeners.indexOf(el);-1===idx&&(idx=elementsWithListeners.length,elementsWithListeners.push(el),registeredListeners.push(function createListener(el){return{el:el,callbacks:{},realCallbacks:{},realListenersCnt:0}}(el)));!function addCallback(listener,event,cb){listener.callbacks[event]?-1===listener.callbacks[event].indexOf(cb)&&listener.callbacks[event].push(cb):(listener.callbacks[event]=[cb],listener.realCallbacks[event]=e=>{for(let i=0,l=listener.callbacks[event].length;i0||(listener.el.removeEventListener(event,listener.realCallbacks[event]),delete listener.callbacks[event],delete listener.realCallbacks[event],listener.realListenersCnt-=1))}(listener,event,cb),listener.realListenersCnt>0||(elementsWithListeners.splice(idx,1),registeredListeners.splice(idx,1))}function listen(el,events,cb){for(let i=0,l=events.length;i{if("undefined"!=typeof document&&document.body){const body=document.body;return"function"==typeof body.matches?"matches":"function"==typeof body.webkitMatchesSelector?"webkitMatchesSelector":"function"==typeof body.mozMatchesSelector?"mozMatchesSelector":"function"==typeof body.msMatchesSelector?"msMatchesSelector":"function"==typeof body.oMatchesSelector?"oMatchesSelector":null}return null})();function find(selector,el){if(!selector)return null;if(basicSelectors.hasOwnProperty(selector))return basicSelectors[selector];if("#"===selector[0])return document.getElementById(selector.slice(1));if(null===matchesMethodName)return null;let temp=el;for(;temp=temp.parentElement;)if(temp[matchesMethodName](selector))return temp||null;return null}function getClosestTransformedParent(el){do{const style=window.getComputedStyle(el);if("none"!==style.transform||"none"!==style.webkitTransform)return el;el=el.parentElement||el.parentNode}while(null!==el&&1===el.nodeType);return null}try{getClosestTransformedParent.displayName="getClosestTransformedParent",getClosestTransformedParent.__docgenInfo={description:"",displayName:"getClosestTransformedParent",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/helpers/getClosestTransformedParent.tsx#getClosestTransformedParent"]={docgenInfo:getClosestTransformedParent.__docgenInfo,name:"getClosestTransformedParent",path:"src/helpers/getClosestTransformedParent.tsx#getClosestTransformedParent"})}catch(__react_docgen_typescript_loader_error){}const infiniteRect={top:-1/0,bottom:1/0,height:1/0,left:-1/0,right:1/0,width:1/0};function getRect(el){return el&&"getBoundingClientRect"in el&&"function"==typeof el.getBoundingClientRect?el.getBoundingClientRect():el===window||el===document?{top:0,left:0,bottom:window.innerHeight,height:window.innerHeight,width:window.innerWidth,right:window.innerWidth}:{top:0,left:0,right:0,bottom:0,width:0,height:0}}try{getRect.displayName="getRect",getRect.__docgenInfo={description:"",displayName:"getRect",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/helpers/rect.tsx#getRect"]={docgenInfo:getRect.__docgenInfo,name:"getRect",path:"src/helpers/rect.tsx#getRect"})}catch(__react_docgen_typescript_loader_error){}const buildTopStyles=(container,props)=>{const{bottomOffset:bottomOffset,hideOnBoundaryHit:hideOnBoundaryHit}=props,{top:top,height:height,width:width,boundaryBottom:boundaryBottom}=container;return hideOnBoundaryHit||top+height+bottomOffset0?{top:boundaryBottom-height-bottomOffset+"px",width:`${width}px`,position:"fixed"}:{width:`${width}px`,bottom:`${bottomOffset}px`,position:"absolute"}},buildBottomStyles=(container,props)=>{const{bottomOffset:bottomOffset,hideOnBoundaryHit:hideOnBoundaryHit}=props,{bottom:bottom,height:height,width:width,boundaryTop:boundaryTop}=container;return hideOnBoundaryHit||bottom-height-bottomOffset>boundaryTop?{width:`${width}px`,top:bottom-height+"px",position:"fixed"}:{width:`${width}px`,top:`${bottomOffset}px`,position:"absolute"}},buildStickyStyle=(mode,props,container)=>("top"===mode?buildTopStyles:buildBottomStyles)(container,props);class Sticky extends react.Component{static defaultProps={mode:"top",topOffset:0,bottomOffset:0,isIOSFixEnabled:!0,offsetTransforms:!0,disabled:!1,onFixedToggle:void 0,boundaryElement:void 0,hideOnBoundaryHit:!0,scrollElement:"window",dontUpdateHolderHeightWhenSticky:!1};holderEl=null;wrapperEl=null;el=null;scrollEl=null;boundaryEl=null;disabled=!1;checkPositionIntervalId=null;lastMinHeight=null;state={isFixed:!1,wrapperStyles:void 0,holderStyles:void 0,height:0};holderRef=holderEl=>{holderEl!==this.holderEl&&(this.holderEl=holderEl)};wrapperRef=wrapperEl=>{wrapperEl!==this.wrapperEl&&(this.wrapperEl=wrapperEl,this.updateScrollEl(),this.updateBoundaryEl())};checkPosition=()=>{const{holderEl:holderEl,wrapperEl:wrapperEl,boundaryEl:boundaryEl,scrollEl:scrollEl,disabled:disabled}=this;if(!scrollEl||!holderEl||!wrapperEl)return void console.error("Missing required elements:",{scrollEl:scrollEl,holderEl:holderEl,wrapperEl:wrapperEl});const{mode:mode,onFixedToggle:onFixedToggle,offsetTransforms:offsetTransforms,isIOSFixEnabled:isIOSFixEnabled,dontUpdateHolderHeightWhenSticky:dontUpdateHolderHeightWhenSticky}=this.props;if(disabled)return void(this.state.isFixed&&this.setState({isFixed:!1,wrapperStyles:{}}));if(!holderEl.getBoundingClientRect||!wrapperEl.getBoundingClientRect)return;const holderRect=holderEl.getBoundingClientRect(),wrapperRect=wrapperEl.getBoundingClientRect(),boundaryRect=boundaryEl?getRect(boundaryEl):infiniteRect,scrollRect=getRect(scrollEl),isFixed=this.isFixed(holderRect,wrapperRect,boundaryRect,scrollRect);let offsets=null;if(offsetTransforms&&isFixed&&scrollEl instanceof HTMLElement){const closestTransformedParent=getClosestTransformedParent(scrollEl);closestTransformedParent&&(offsets=getRect(closestTransformedParent))}const minHeight=this.state.isFixed&&dontUpdateHolderHeightWhenSticky&&this.lastMinHeight?this.lastMinHeight:wrapperRect.height;this.lastMinHeight=minHeight;const iosRenderingFixStyles=isIOSFixEnabled?{transform:"translateZ(0)",WebkitTransform:"translateZ(0)"}:void 0,newState={isFixed:isFixed,height:wrapperRect.height,holderStyles:{minHeight:`${minHeight}px`},wrapperStyles:isFixed?{...iosRenderingFixStyles,...buildStickyStyle(mode,this.props,{boundaryTop:"bottom"===mode?boundaryRect.top:0,boundaryBottom:"top"===mode?boundaryRect.bottom:0,top:"top"===mode?scrollRect.top-(offsets?offsets.top:0):0,bottom:"bottom"===mode?scrollRect.bottom-(offsets?offsets.bottom:0):0,width:holderRect.width,height:wrapperRect.height})}:iosRenderingFixStyles};isFixed!==this.state.isFixed&&onFixedToggle&&"function"==typeof onFixedToggle&&onFixedToggle(isFixed),((obj1,obj2)=>{const styles1=obj1.wrapperStyles,styles2=obj2.wrapperStyles;if(obj1.isFixed!==obj2.isFixed||obj1.height!==obj2.height||!styles1&&styles2||styles1&&!styles2)return!1;if(!styles2)return!0;for(const field in styles1)if(styles1.hasOwnProperty(field)&&styles1[field]!==styles2[field])return!1;return!0})(this.state,newState)||this.setState(newState)};isFixed(holderRect,wrapperRect,boundaryRect,scrollRect){const{hideOnBoundaryHit:hideOnBoundaryHit,bottomOffset:bottomOffset,topOffset:topOffset,mode:mode}=this.props;if(this.disabled)return!1;if(hideOnBoundaryHit&&boundaryRect&&!function isIntersecting(r1,r2,topOffset,bottomOffset){const r1Top=r1.top+topOffset,r1Bottom=r1.bottom+bottomOffset;return r1Top>=r2.top&&r1Top<=r2.bottom||r1Bottom>=r2.top&&r1Bottom<=r2.bottom||r1Bottom>=r2.bottom&&r1Top<=r2.top}(boundaryRect,scrollRect,topOffset,bottomOffset))return!1;const hideOffset=hideOnBoundaryHit?wrapperRect.height+bottomOffset:0;return"top"===mode?holderRect.top+topOffsetscrollRect.bottom&&scrollRect.bottom-hideOffset>=boundaryRect.top}updateScrollEl(){if(!this.wrapperEl)return;this.scrollEl&&(unlisten(this.scrollEl,["scroll"],this.checkPosition),this.scrollEl=null);const{scrollElement:scrollElement}=this.props;this.scrollEl="string"==typeof scrollElement?find(scrollElement,this.wrapperEl):scrollElement,this.scrollEl?listen(this.scrollEl,["scroll"],this.checkPosition):console.error("Cannot find scrollElement "+("string"==typeof scrollElement?scrollElement:"unknown"))}updateBoundaryEl(){if(!this.wrapperEl)return;const{boundaryElement:boundaryElement}=this.props;this.boundaryEl=find(boundaryElement,this.wrapperEl),this.boundaryEl!==window&&this.boundaryEl!==document||(this.boundaryEl=null)}initialize(){const{positionRecheckInterval:positionRecheckInterval,disabled:disabled}=this.props;this.disabled=disabled,listen(window,["scroll","resize","pageshow","load"],this.checkPosition),this.checkPosition(),positionRecheckInterval&&(this.checkPositionIntervalId=setInterval(this.checkPosition,positionRecheckInterval))}componentDidUpdate({scrollElement:scrollElement,boundaryElement:boundaryElement,disabled:disabled}){scrollElement===this.props.scrollElement&&null!==this.scrollEl||this.updateScrollEl(),boundaryElement===this.props.boundaryElement&&null!==this.boundaryEl||this.updateBoundaryEl(),disabled!==this.props.disabled&&(this.disabled=this.props.disabled,this.checkPosition())}componentDidMount(){this.initialize(),null===this.wrapperEl&&console.error("Wrapper element is missing, please make sure that you have assigned refs correctly")}componentWillUnmount(){this.scrollEl&&unlisten(this.scrollEl,["scroll"],this.checkPosition),unlisten(window,["scroll","resize","pageshow","load"],this.checkPosition),this.boundaryEl=null,this.scrollEl=null,this.checkPositionIntervalId&&clearInterval(this.checkPositionIntervalId)}render(){const{holderRef:holderRef,wrapperRef:wrapperRef}=this,{isFixed:isFixed,wrapperStyles:wrapperStyles,holderStyles:holderStyles}=this.state;return this.props.children({holderRef:holderRef,wrapperRef:wrapperRef,isFixed:isFixed,wrapperStyles:wrapperStyles,holderStyles:holderStyles})}}Sticky.displayName="Sticky";var render_props_version=Sticky;try{Sticky.displayName="Sticky",Sticky.__docgenInfo={description:"",displayName:"Sticky",props:{mode:{defaultValue:{value:"'top' as const"},description:"Sticky mode. `bottom` - stick to bottom, `top` - stick to top.",name:"mode",required:!1,type:{name:"enum",value:[{value:'"bottom"'},{value:'"top"'}]}},onFixedToggle:{defaultValue:{value:"undefined"},description:"Callback that is called when sticky state is changed.\n@param isFixed - `true` if element is sticky.",name:"onFixedToggle",required:!1,type:{name:"((isFixed: boolean) => void)"}},hideOnBoundaryHit:{defaultValue:{value:"true"},description:"If `true` - element will be hidden when boundary reached.",name:"hideOnBoundaryHit",required:!1,type:{name:"boolean"}},offsetTransforms:{defaultValue:{value:"true"},description:"TODO: describe",name:"offsetTransforms",required:!1,type:{name:"boolean"}},disabled:{defaultValue:{value:"false"},description:"If `true` - element will not be sticky.",name:"disabled",required:!1,type:{name:"boolean"}},boundaryElement:{defaultValue:{value:"undefined"},description:"Element that is used as boundary. Sticky element will stop being sticky when it reaches this element.",name:"boundaryElement",required:!1,type:{name:"string"}},scrollElement:{defaultValue:{value:"window"},description:"Element that is used as scrollable container. Sticky element will be sticky inside this element.",name:"scrollElement",required:!1,type:{name:"string | HTMLElement"}},bottomOffset:{defaultValue:{value:"0"},description:"Offset from bottom of the screen (or top of the screen if mode is `top`) when sticky element should stop being sticky.",name:"bottomOffset",required:!1,type:{name:"number"}},topOffset:{defaultValue:{value:"0"},description:"Offset from top of the screen (or bottom of the screen if mode is `bottom`) when sticky element should stop being sticky.",name:"topOffset",required:!1,type:{name:"number"}},positionRecheckInterval:{defaultValue:null,description:"Interval in milliseconds when sticky element position should be rechecked.",name:"positionRecheckInterval",required:!1,type:{name:"number"}},dontUpdateHolderHeightWhenSticky:{defaultValue:{value:"false"},description:"If `true` - holder height will not be updated when sticky element is sticky.",name:"dontUpdateHolderHeightWhenSticky",required:!1,type:{name:"boolean"}},isIOSFixEnabled:{defaultValue:{value:"true"},description:"If `true` - iOS fix will be enabled.\n@see https://github.com/gm0t/react-sticky-el/issues/41",name:"isIOSFixEnabled",required:!1,type:{name:"boolean"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/render-props-version.tsx#Sticky"]={docgenInfo:Sticky.__docgenInfo,name:"Sticky",path:"src/render-props-version.tsx#Sticky"})}catch(__react_docgen_typescript_loader_error){}},"./stories/common.tsx":function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,{gO:function(){return Block},im:function(){return Wrapper},x_:function(){return createBlocks}});var react=__webpack_require__("./node_modules/react/index.js"),react_default=__webpack_require__.n(react),src=__webpack_require__("./src/index.tsx"),basic_version=__webpack_require__("./src/basic-version.tsx"),chunk_OPEUWD42=(__webpack_require__("./stories/examples.scss"),__webpack_require__("./node_modules/@storybook/addon-actions/dist/chunk-OPEUWD42.mjs"));__webpack_require__("./node_modules/@storybook/addon-actions/dist/chunk-VWCVBQ22.mjs");function _extends(){return _extends=Object.assign?Object.assign.bind():function(target){for(var i=1;i{const{noHeader:noHeader,noFooter:noFooter,...rest}={...defaultProps,...props};return react_default().createElement("div",{className:"block"},noHeader?null:react_default().createElement(src.Z,_extends({},rest,{onFixedToggle:(0,chunk_OPEUWD42.aD)("onFixedToggle")}),react_default().createElement("h2",{className:"header"},"Header")),react_default().createElement("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum sodales ullamcorper vehicula. Duis placerat quam porta lorem lobortis, sit amet sodales mauris finibus. Donec posuere diam at volutpat viverra. Cras fringilla auctor augue sed congue. Maecenas mollis quis enim quis egestas. In sollicitudin mi a pretium varius. Integer eleifend sodales pharetra. Nullam vitae libero sem. Nulla et eros congue, tincidunt ante eu, tincidunt eros. Donec nisl purus, convallis a hendrerit ut, eleifend in lectus. Proin luctus dignissim lacus, in laoreet arcu eleifend non. Quisque viverra ipsum a massa porta convallis. Donec tincidunt imperdiet purus, interdum elementum ante commodo a. Quisque pharetra arcu sapien, vel ornare magna sollicitudin quis."),react_default().createElement("p",null,"Nunc congue magna eget eros blandit, eu viverra magna semper. Nullam in diam a metus dictum consequat. Quisque ultricies, ipsum non euismod semper, velit felis lacinia nibh, et finibus quam leo vitae nisi. Maecenas interdum diam quis risus bibendum, eu fermentum est pharetra. In dictum at enim pretium bibendum. Praesent efficitur iaculis dolor in sodales. Morbi maximus in ipsum in malesuada. Proin semper lacus tempor magna aliquam, sed aliquam dui scelerisque. Donec nisi nulla, rhoncus a tristique eget, ultrices vitae dolor. Ut id urna vitae ante tincidunt pharetra at non metus. Nunc in suscipit nulla. Sed vitae leo vulputate, euismod tortor vel, aliquet velit. Curabitur eget tincidunt elit. Nam et ligula finibus, eleifend velit et, commodo quam. Praesent non libero velit."),noFooter?null:react_default().createElement(src.Z,_extends({},rest,{mode:"bottom",onFixedToggle:(0,chunk_OPEUWD42.aD)("onFixedToggle")}),react_default().createElement("h2",{className:"footer"},"Footer")))};Block.displayName="Block";const defaultProps={...basic_version.l,mode:"top",topOffset:0,bottomOffset:0,isIOSFixEnabled:!0,offsetTransforms:!0,disabled:!1,onFixedToggle:void 0,noHeader:!1,noFooter:!1,dontUpdateHolderHeightWhenSticky:!0,positionRecheckInterval:100,boundaryElement:".block",scrollElement:".scroll-area"},createBlocks=(disabled,topOffset,bottomOffset,hideOnBoundaryHit=!0)=>{const blocks=[];for(let i=0;i<3;i+=1)blocks.push(react_default().createElement(Block,{key:i,disabled:disabled,topOffset:topOffset,bottomOffset:bottomOffset,hideOnBoundaryHit:hideOnBoundaryHit}),react_default().createElement("div",{key:`space-${i}`,className:"reserved-space"},"--/--"));return blocks.pop(),blocks},Wrapper=({children:children})=>react_default().createElement("div",{className:"page"},children);Wrapper.displayName="Wrapper";try{Block.displayName="Block",Block.__docgenInfo={description:"",displayName:"Block",props:{noHeader:{defaultValue:null,description:"",name:"noHeader",required:!1,type:{name:"boolean"}},noFooter:{defaultValue:null,description:"",name:"noFooter",required:!1,type:{name:"boolean"}},stickyStyle:{defaultValue:{value:"{}"},description:"Class name to be applied to the sticky element when it is fixed.",name:"stickyStyle",required:!1,type:{name:"CSSProperties"}},stickyClassName:{defaultValue:{value:"'sticky'"},description:"Class name to be applied to the sticky element when it is fixed.",name:"stickyClassName",required:!1,type:{name:"string"}},wrapperClassName:{defaultValue:{value:"''"},description:"Class name to be applied to the wrapper element.",name:"wrapperClassName",required:!1,type:{name:"string"}},mode:{defaultValue:{value:"'bottom'"},description:"Sticky mode. `bottom` - stick to bottom, `top` - stick to top.",name:"mode",required:!1,type:{name:"enum",value:[{value:'"bottom"'},{value:'"top"'}]}},onFixedToggle:{defaultValue:null,description:"Callback that is called when sticky state is changed.\n@param isFixed - `true` if element is sticky.",name:"onFixedToggle",required:!1,type:{name:"((isFixed: boolean) => void)"}},hideOnBoundaryHit:{defaultValue:null,description:"If `true` - element will be hidden when boundary reached.",name:"hideOnBoundaryHit",required:!1,type:{name:"boolean"}},offsetTransforms:{defaultValue:null,description:"TODO: describe",name:"offsetTransforms",required:!1,type:{name:"boolean"}},disabled:{defaultValue:null,description:"If `true` - element will not be sticky.",name:"disabled",required:!1,type:{name:"boolean"}},boundaryElement:{defaultValue:{value:"'window'"},description:"Element that is used as boundary. Sticky element will stop being sticky when it reaches this element.",name:"boundaryElement",required:!1,type:{name:"string"}},scrollElement:{defaultValue:{value:"'window'"},description:"Element that is used as scrollable container. Sticky element will be sticky inside this element.",name:"scrollElement",required:!1,type:{name:"string | HTMLElement"}},bottomOffset:{defaultValue:{value:"0"},description:"Offset from bottom of the screen (or top of the screen if mode is `top`) when sticky element should stop being sticky.",name:"bottomOffset",required:!1,type:{name:"number"}},topOffset:{defaultValue:{value:"0"},description:"Offset from top of the screen (or bottom of the screen if mode is `bottom`) when sticky element should stop being sticky.",name:"topOffset",required:!1,type:{name:"number"}},positionRecheckInterval:{defaultValue:null,description:"Interval in milliseconds when sticky element position should be rechecked.",name:"positionRecheckInterval",required:!1,type:{name:"number"}},dontUpdateHolderHeightWhenSticky:{defaultValue:{value:"false"},description:"If `true` - holder height will not be updated when sticky element is sticky.",name:"dontUpdateHolderHeightWhenSticky",required:!1,type:{name:"boolean"}},isIOSFixEnabled:{defaultValue:{value:"true"},description:"If `true` - iOS fix will be enabled.\n@see https://github.com/gm0t/react-sticky-el/issues/41",name:"isIOSFixEnabled",required:!1,type:{name:"boolean"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["stories/common.tsx#Block"]={docgenInfo:Block.__docgenInfo,name:"Block",path:"stories/common.tsx#Block"})}catch(__react_docgen_typescript_loader_error){}try{Wrapper.displayName="Wrapper",Wrapper.__docgenInfo={description:"",displayName:"Wrapper",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["stories/common.tsx#Wrapper"]={docgenInfo:Wrapper.__docgenInfo,name:"Wrapper",path:"stories/common.tsx#Wrapper"})}catch(__react_docgen_typescript_loader_error){}},"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./stories/examples.scss":function(module,exports,__webpack_require__){(exports=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(!1)).push([module.id,"html,body,.container,#storybook-root{box-sizing:border-box;height:100%}body{padding:0 !important;margin:0 !important}h1,h2{margin:0;padding:20px 0;text-align:center}#root,.page{height:100%}.container{display:flex;flex-direction:row;justify-content:center;align-items:stretch;height:100%}.column{position:relative;width:300px;height:100%;margin:auto;box-sizing:border-box;outline:2px dashed red}.column h1{position:absolute;top:0;left:0;width:100%}.column .scroll-area{height:100%;overflow-y:scroll;position:relative}.column .scroll-area--distant{margin-top:100px;border-top:2px solid blue}.block{max-width:400px;overflow:hidden;position:relative}.block .sticky{z-index:2}.block h2{line-height:30px}.block h2.header{background:#577796}.block h2.footer{background:#612624}.block p{font-size:1.5em;margin:0;background:#bec6d7}.reserved-space{background:#d3d3d3;text-align:center;padding:30px 0}.reserved-space p{padding:0 10px}.reserved-space.huge{padding:100vh 0}.navigation a{display:block;padding:.5rem}.header{padding:1rem;background:#577796}.sticky .header{padding:.5rem}.sticky .header h2{text-align:left;font-size:1rem}.sticky .header h3{display:none}",""]),module.exports=exports},"./node_modules/css-loader/dist/runtime/api.js":function(module){"use strict";module.exports=function(useSourceMap){var list=[];return list.toString=function toString(){return this.map((function(item){var content=function cssWithMappingToString(item,useSourceMap){var content=item[1]||"",cssMapping=item[3];if(!cssMapping)return content;if(useSourceMap&&"function"==typeof btoa){var sourceMapping=function toComment(sourceMap){var base64=btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))),data="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);return"/*# ".concat(data," */")}(cssMapping),sourceURLs=cssMapping.sources.map((function(source){return"/*# sourceURL=".concat(cssMapping.sourceRoot||"").concat(source," */")}));return[content].concat(sourceURLs).concat([sourceMapping]).join("\n")}return[content].join("\n")}(item,useSourceMap);return item[2]?"@media ".concat(item[2]," {").concat(content,"}"):content})).join("")},list.i=function(modules,mediaQuery,dedupe){"string"==typeof modules&&(modules=[[null,modules,""]]);var alreadyImportedModules={};if(dedupe)for(var i=0;i{for(let i=0,l=listener.callbacks[event].length;i0||(listener.el.removeEventListener(event,listener.realCallbacks[event]),delete listener.callbacks[event],delete listener.realCallbacks[event],listener.realListenersCnt-=1))}(listener,event,cb),listener.realListenersCnt>0||(elementsWithListeners.splice(idx,1),registeredListeners.splice(idx,1))}function listen(el,events,cb){for(let i=0,l=events.length;i{if("undefined"!=typeof document&&document.body){const body=document.body;return"function"==typeof body.matches?"matches":"function"==typeof body.webkitMatchesSelector?"webkitMatchesSelector":"function"==typeof body.mozMatchesSelector?"mozMatchesSelector":"function"==typeof body.msMatchesSelector?"msMatchesSelector":"function"==typeof body.oMatchesSelector?"oMatchesSelector":null}return null})();function find(selector,el){if(!selector)return null;if(basicSelectors.hasOwnProperty(selector))return basicSelectors[selector];if("#"===selector[0])return document.getElementById(selector.slice(1));if(null===matchesMethodName)return null;let temp=el;for(;temp=temp.parentElement;)if(temp[matchesMethodName](selector))return temp||null;return null}function getClosestTransformedParent(el){do{const style=window.getComputedStyle(el);if("none"!==style.transform||"none"!==style.webkitTransform)return el;el=el.parentElement||el.parentNode}while(null!==el&&1===el.nodeType);return null}try{getClosestTransformedParent.displayName="getClosestTransformedParent",getClosestTransformedParent.__docgenInfo={description:"",displayName:"getClosestTransformedParent",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/helpers/getClosestTransformedParent.tsx#getClosestTransformedParent"]={docgenInfo:getClosestTransformedParent.__docgenInfo,name:"getClosestTransformedParent",path:"src/helpers/getClosestTransformedParent.tsx#getClosestTransformedParent"})}catch(__react_docgen_typescript_loader_error){}const infiniteRect={top:-1/0,bottom:1/0,height:1/0,left:-1/0,right:1/0,width:1/0};function getRect(el){return el&&"getBoundingClientRect"in el&&"function"==typeof el.getBoundingClientRect?el.getBoundingClientRect():el===window||el===document?{top:0,left:0,bottom:window.innerHeight,height:window.innerHeight,width:window.innerWidth,right:window.innerWidth}:{top:0,left:0,right:0,bottom:0,width:0,height:0}}try{getRect.displayName="getRect",getRect.__docgenInfo={description:"",displayName:"getRect",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/helpers/rect.tsx#getRect"]={docgenInfo:getRect.__docgenInfo,name:"getRect",path:"src/helpers/rect.tsx#getRect"})}catch(__react_docgen_typescript_loader_error){}const buildTopStyles=(container,props)=>{const{bottomOffset:bottomOffset,hideOnBoundaryHit:hideOnBoundaryHit}=props,{top:top,height:height,width:width,boundaryBottom:boundaryBottom}=container;return hideOnBoundaryHit||top+height+bottomOffset0?{top:boundaryBottom-height-bottomOffset+"px",width:`${width}px`,position:"fixed"}:{width:`${width}px`,bottom:`${bottomOffset}px`,position:"absolute"}},buildBottomStyles=(container,props)=>{const{bottomOffset:bottomOffset,hideOnBoundaryHit:hideOnBoundaryHit}=props,{bottom:bottom,height:height,width:width,boundaryTop:boundaryTop}=container;return hideOnBoundaryHit||bottom-height-bottomOffset>boundaryTop?{width:`${width}px`,top:bottom-height+"px",position:"fixed"}:{width:`${width}px`,top:`${bottomOffset}px`,position:"absolute"}},buildStickyStyle=(mode,props,container)=>("top"===mode?buildTopStyles:buildBottomStyles)(container,props);class render_props_version_Sticky extends react.Component{static defaultProps={mode:"top",topOffset:0,bottomOffset:0,isIOSFixEnabled:!0,offsetTransforms:!0,disabled:!1,onFixedToggle:null,boundaryElement:null,hideOnBoundaryHit:!0,scrollElement:"window",dontUpdateHolderHeightWhenSticky:!1};holderEl=null;wrapperEl=null;el=null;scrollEl=null;boundaryEl=null;disabled=!1;checkPositionIntervalId=null;lastMinHeight=null;state={isFixed:!1,wrapperStyles:void 0,holderStyles:void 0,height:0};holderRef=holderEl=>{holderEl!==this.holderEl&&(this.holderEl=holderEl)};wrapperRef=wrapperEl=>{wrapperEl!==this.wrapperEl&&(this.wrapperEl=wrapperEl,this.updateScrollEl(),this.updateBoundaryEl())};checkPosition=()=>{const{holderEl:holderEl,wrapperEl:wrapperEl,boundaryEl:boundaryEl,scrollEl:scrollEl,disabled:disabled}=this;if(!scrollEl||!holderEl||!wrapperEl)return void console.error("Missing required elements:",{scrollEl:scrollEl,holderEl:holderEl,wrapperEl:wrapperEl});const{mode:mode,onFixedToggle:onFixedToggle,offsetTransforms:offsetTransforms,isIOSFixEnabled:isIOSFixEnabled,dontUpdateHolderHeightWhenSticky:dontUpdateHolderHeightWhenSticky}=this.props;if(disabled)return void(this.state.isFixed&&this.setState({isFixed:!1,wrapperStyles:{}}));if(!holderEl.getBoundingClientRect||!wrapperEl.getBoundingClientRect)return;const holderRect=holderEl.getBoundingClientRect(),wrapperRect=wrapperEl.getBoundingClientRect(),boundaryRect=boundaryEl?getRect(boundaryEl):infiniteRect,scrollRect=getRect(scrollEl),isFixed=this.isFixed(holderRect,wrapperRect,boundaryRect,scrollRect);let offsets=null;if(offsetTransforms&&isFixed&&scrollEl instanceof HTMLElement){const closestTransformedParent=getClosestTransformedParent(scrollEl);closestTransformedParent&&(offsets=getRect(closestTransformedParent))}const minHeight=this.state.isFixed&&dontUpdateHolderHeightWhenSticky&&this.lastMinHeight?this.lastMinHeight:wrapperRect.height;this.lastMinHeight=minHeight;const iosRenderingFixStyles=isIOSFixEnabled?{transform:"translateZ(0)",WebkitTransform:"translateZ(0)"}:void 0,newState={isFixed:isFixed,height:wrapperRect.height,holderStyles:{minHeight:`${minHeight}px`},wrapperStyles:isFixed?{...iosRenderingFixStyles,...buildStickyStyle(mode,this.props,{boundaryTop:"bottom"===mode?boundaryRect.top:0,boundaryBottom:"top"===mode?boundaryRect.bottom:0,top:"top"===mode?scrollRect.top-(offsets?offsets.top:0):0,bottom:"bottom"===mode?scrollRect.bottom-(offsets?offsets.bottom:0):0,width:holderRect.width,height:wrapperRect.height})}:iosRenderingFixStyles};isFixed!==this.state.isFixed&&onFixedToggle&&"function"==typeof onFixedToggle&&onFixedToggle(isFixed),((obj1,obj2)=>{const styles1=obj1.wrapperStyles,styles2=obj2.wrapperStyles;if(obj1.isFixed!==obj2.isFixed||obj1.height!==obj2.height||!styles1&&styles2||styles1&&!styles2)return!1;if(!styles2)return!0;for(const field in styles1)if(styles1.hasOwnProperty(field)&&styles1[field]!==styles2[field])return!1;return!0})(this.state,newState)||this.setState(newState)};isFixed(holderRect,wrapperRect,boundaryRect,scrollRect){const{hideOnBoundaryHit:hideOnBoundaryHit,bottomOffset:bottomOffset,topOffset:topOffset,mode:mode}=this.props;if(this.disabled)return!1;if(hideOnBoundaryHit&&boundaryRect&&!function isIntersecting(r1,r2,topOffset,bottomOffset){const r1Top=r1.top+topOffset,r1Bottom=r1.bottom+bottomOffset;return r1Top>=r2.top&&r1Top<=r2.bottom||r1Bottom>=r2.top&&r1Bottom<=r2.bottom||r1Bottom>=r2.bottom&&r1Top<=r2.top}(boundaryRect,scrollRect,topOffset,bottomOffset))return!1;const hideOffset=hideOnBoundaryHit?wrapperRect.height+bottomOffset:0;return"top"===mode?holderRect.top+topOffsetscrollRect.bottom&&scrollRect.bottom-hideOffset>=boundaryRect.top}updateScrollEl(){if(!this.wrapperEl)return;this.scrollEl&&(unlisten(this.scrollEl,["scroll"],this.checkPosition),this.scrollEl=null);const{scrollElement:scrollElement}=this.props;this.scrollEl="string"==typeof scrollElement?find(scrollElement,this.wrapperEl):scrollElement,this.scrollEl?listen(this.scrollEl,["scroll"],this.checkPosition):console.error("Cannot find scrollElement "+("string"==typeof scrollElement?scrollElement:"unknown"))}updateBoundaryEl(){if(!this.wrapperEl)return;const{boundaryElement:boundaryElement}=this.props;this.boundaryEl=find(boundaryElement,this.wrapperEl),this.boundaryEl!==window&&this.boundaryEl!==document||(this.boundaryEl=null)}initialize(){const{positionRecheckInterval:positionRecheckInterval,disabled:disabled}=this.props;this.disabled=disabled,listen(window,["scroll","resize","pageshow","load"],this.checkPosition),this.checkPosition(),positionRecheckInterval&&(this.checkPositionIntervalId=setInterval(this.checkPosition,positionRecheckInterval))}componentDidUpdate({scrollElement:scrollElement,boundaryElement:boundaryElement,disabled:disabled}){scrollElement===this.props.scrollElement&&null!==this.scrollEl||this.updateScrollEl(),boundaryElement===this.props.boundaryElement&&null!==this.boundaryEl||this.updateBoundaryEl(),disabled!==this.props.disabled&&(this.disabled=this.props.disabled,this.checkPosition())}componentDidMount(){this.initialize(),null===this.wrapperEl&&console.error("Wrapper element is missing, please make sure that you have assigned refs correctly")}componentWillUnmount(){this.scrollEl&&unlisten(this.scrollEl,["scroll"],this.checkPosition),unlisten(window,["scroll","resize","pageshow","load"],this.checkPosition),this.boundaryEl=null,this.scrollEl=null,this.checkPositionIntervalId&&clearInterval(this.checkPositionIntervalId)}render(){const{holderRef:holderRef,wrapperRef:wrapperRef}=this,{isFixed:isFixed,wrapperStyles:wrapperStyles,holderStyles:holderStyles}=this.state;return this.props.children({holderRef:holderRef,wrapperRef:wrapperRef,isFixed:isFixed,wrapperStyles:wrapperStyles,holderStyles:holderStyles})}}render_props_version_Sticky.displayName="Sticky";var render_props_version=render_props_version_Sticky;try{render_props_version_Sticky.displayName="Sticky",render_props_version_Sticky.__docgenInfo={description:"",displayName:"Sticky",props:{mode:{defaultValue:{value:"top"},description:"Sticky mode. `bottom` - stick to bottom, `top` - stick to top.",name:"mode",required:!1,type:{name:"enum",value:[{value:'"bottom"'},{value:'"top"'}]}},onFixedToggle:{defaultValue:{value:"null"},description:"Callback that is called when sticky state is changed.\n@param isFixed - `true` if element is sticky.",name:"onFixedToggle",required:!1,type:{name:"(isFixed: boolean) => void"}},hideOnBoundaryHit:{defaultValue:{value:"true"},description:"If `true` - element will be hidden when boundary reached.",name:"hideOnBoundaryHit",required:!1,type:{name:"boolean"}},offsetTransforms:{defaultValue:{value:"true"},description:"TODO: describe",name:"offsetTransforms",required:!1,type:{name:"boolean"}},disabled:{defaultValue:{value:"false"},description:"If `true` - element will not be sticky.",name:"disabled",required:!1,type:{name:"boolean"}},boundaryElement:{defaultValue:{value:"null"},description:"Element that is used as boundary. Sticky element will stop being sticky when it reaches this element.",name:"boundaryElement",required:!1,type:{name:"string"}},scrollElement:{defaultValue:{value:"window"},description:"Element that is used as scrollable container. Sticky element will be sticky inside this element.",name:"scrollElement",required:!1,type:{name:"string | HTMLElement"}},bottomOffset:{defaultValue:{value:"0"},description:"Offset from bottom of the screen (or top of the screen if mode is `top`) when sticky element should stop being sticky.",name:"bottomOffset",required:!1,type:{name:"number"}},topOffset:{defaultValue:{value:"0"},description:"Offset from top of the screen (or bottom of the screen if mode is `bottom`) when sticky element should stop being sticky.",name:"topOffset",required:!1,type:{name:"number"}},positionRecheckInterval:{defaultValue:null,description:"Interval in milliseconds when sticky element position should be rechecked.",name:"positionRecheckInterval",required:!1,type:{name:"number"}},dontUpdateHolderHeightWhenSticky:{defaultValue:{value:"false"},description:"If `true` - holder height will not be updated when sticky element is sticky.",name:"dontUpdateHolderHeightWhenSticky",required:!1,type:{name:"boolean"}},isIOSFixEnabled:{defaultValue:{value:"true"},description:"If `true` - iOS fix will be enabled.\n@see https://github.com/gm0t/react-sticky-el/issues/41",name:"isIOSFixEnabled",required:!1,type:{name:"boolean"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/render-props-version.tsx#Sticky"]={docgenInfo:render_props_version_Sticky.__docgenInfo,name:"Sticky",path:"src/render-props-version.tsx#Sticky"})}catch(__react_docgen_typescript_loader_error){}function _extends(){return _extends=Object.assign?Object.assign.bind():function(target){for(var i=1;ireact_default().createElement("div",_extends({},rest,{ref:holderRef,style:holderStyles}),react_default().createElement("div",_extends({},rest,{className:`${wrapperClassName} ${isFixed?stickyClassName:""}`,style:isFixed?{...wrapperStyles,...stickyStyle}:wrapperStyles,ref:wrapperRef}),children))))}basic_version_Sticky.displayName="Sticky",basic_version_Sticky.defaultProps={...render_props_version.defaultProps,stickyClassName:"sticky",wrapperClassName:"",stickyStyle:{}};var basic_version=basic_version_Sticky;try{basic_version_Sticky.displayName="Sticky",basic_version_Sticky.__docgenInfo={description:"",displayName:"Sticky",props:{stickyStyle:{defaultValue:{value:"{}"},description:"Class name to be applied to the sticky element when it is fixed.",name:"stickyStyle",required:!1,type:{name:"CSSProperties"}},stickyClassName:{defaultValue:{value:"sticky"},description:"Class name to be applied to the sticky element when it is fixed.",name:"stickyClassName",required:!1,type:{name:"string"}},wrapperClassName:{defaultValue:{value:""},description:"Class name to be applied to the wrapper element.",name:"wrapperClassName",required:!1,type:{name:"string"}},mode:{defaultValue:{value:"'bottom'"},description:"Sticky mode. `bottom` - stick to bottom, `top` - stick to top.",name:"mode",required:!0,type:{name:"enum",value:[{value:'"bottom"'},{value:'"top"'}]}},onFixedToggle:{defaultValue:null,description:"Callback that is called when sticky state is changed.\n@param isFixed - `true` if element is sticky.",name:"onFixedToggle",required:!0,type:{name:"(isFixed: boolean) => void"}},hideOnBoundaryHit:{defaultValue:null,description:"If `true` - element will be hidden when boundary reached.",name:"hideOnBoundaryHit",required:!0,type:{name:"boolean"}},offsetTransforms:{defaultValue:null,description:"TODO: describe",name:"offsetTransforms",required:!0,type:{name:"boolean"}},disabled:{defaultValue:null,description:"If `true` - element will not be sticky.",name:"disabled",required:!0,type:{name:"boolean"}},boundaryElement:{defaultValue:{value:"'window'"},description:"Element that is used as boundary. Sticky element will stop being sticky when it reaches this element.",name:"boundaryElement",required:!0,type:{name:"string"}},scrollElement:{defaultValue:{value:"'window'"},description:"Element that is used as scrollable container. Sticky element will be sticky inside this element.",name:"scrollElement",required:!0,type:{name:"string | HTMLElement"}},bottomOffset:{defaultValue:{value:"0"},description:"Offset from bottom of the screen (or top of the screen if mode is `top`) when sticky element should stop being sticky.",name:"bottomOffset",required:!0,type:{name:"number"}},topOffset:{defaultValue:{value:"0"},description:"Offset from top of the screen (or bottom of the screen if mode is `bottom`) when sticky element should stop being sticky.",name:"topOffset",required:!0,type:{name:"number"}},positionRecheckInterval:{defaultValue:null,description:"Interval in milliseconds when sticky element position should be rechecked.",name:"positionRecheckInterval",required:!1,type:{name:"number"}},dontUpdateHolderHeightWhenSticky:{defaultValue:{value:"false"},description:"If `true` - holder height will not be updated when sticky element is sticky.",name:"dontUpdateHolderHeightWhenSticky",required:!0,type:{name:"boolean"}},isIOSFixEnabled:{defaultValue:{value:"true"},description:"If `true` - iOS fix will be enabled.\n@see https://github.com/gm0t/react-sticky-el/issues/41",name:"isIOSFixEnabled",required:!0,type:{name:"boolean"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/basic-version.tsx#Sticky"]={docgenInfo:basic_version_Sticky.__docgenInfo,name:"Sticky",path:"src/basic-version.tsx#Sticky"})}catch(__react_docgen_typescript_loader_error){}var src=basic_version;try{Sticky.displayName="Sticky",Sticky.__docgenInfo={description:"",displayName:"Sticky",props:{mode:{defaultValue:{value:"top"},description:"Sticky mode. `bottom` - stick to bottom, `top` - stick to top.",name:"mode",required:!1,type:{name:"enum",value:[{value:'"bottom"'},{value:'"top"'}]}},onFixedToggle:{defaultValue:{value:"null"},description:"Callback that is called when sticky state is changed.\n@param isFixed - `true` if element is sticky.",name:"onFixedToggle",required:!1,type:{name:"(isFixed: boolean) => void"}},hideOnBoundaryHit:{defaultValue:{value:"true"},description:"If `true` - element will be hidden when boundary reached.",name:"hideOnBoundaryHit",required:!1,type:{name:"boolean"}},offsetTransforms:{defaultValue:{value:"true"},description:"TODO: describe",name:"offsetTransforms",required:!1,type:{name:"boolean"}},disabled:{defaultValue:{value:"false"},description:"If `true` - element will not be sticky.",name:"disabled",required:!1,type:{name:"boolean"}},boundaryElement:{defaultValue:{value:"null"},description:"Element that is used as boundary. Sticky element will stop being sticky when it reaches this element.",name:"boundaryElement",required:!1,type:{name:"string"}},scrollElement:{defaultValue:{value:"window"},description:"Element that is used as scrollable container. Sticky element will be sticky inside this element.",name:"scrollElement",required:!1,type:{name:"string | HTMLElement"}},bottomOffset:{defaultValue:{value:"0"},description:"Offset from bottom of the screen (or top of the screen if mode is `top`) when sticky element should stop being sticky.",name:"bottomOffset",required:!1,type:{name:"number"}},topOffset:{defaultValue:{value:"0"},description:"Offset from top of the screen (or bottom of the screen if mode is `bottom`) when sticky element should stop being sticky.",name:"topOffset",required:!1,type:{name:"number"}},positionRecheckInterval:{defaultValue:null,description:"Interval in milliseconds when sticky element position should be rechecked.",name:"positionRecheckInterval",required:!1,type:{name:"number"}},dontUpdateHolderHeightWhenSticky:{defaultValue:{value:"false"},description:"If `true` - holder height will not be updated when sticky element is sticky.",name:"dontUpdateHolderHeightWhenSticky",required:!1,type:{name:"boolean"}},isIOSFixEnabled:{defaultValue:{value:"true"},description:"If `true` - iOS fix will be enabled.\n@see https://github.com/gm0t/react-sticky-el/issues/41",name:"isIOSFixEnabled",required:!1,type:{name:"boolean"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/index.tsx#Sticky"]={docgenInfo:Sticky.__docgenInfo,name:"Sticky",path:"src/index.tsx#Sticky"})}catch(__react_docgen_typescript_loader_error){}},"./stories/common.tsx":function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,{gO:function(){return Block},im:function(){return Wrapper},x_:function(){return createBlocks}});var react=__webpack_require__("./node_modules/react/index.js"),react_default=__webpack_require__.n(react),src=__webpack_require__("./src/index.tsx"),chunk_OPEUWD42=(__webpack_require__("./stories/examples.scss"),__webpack_require__("./node_modules/@storybook/addon-actions/dist/chunk-OPEUWD42.mjs"));__webpack_require__("./node_modules/@storybook/addon-actions/dist/chunk-VWCVBQ22.mjs");function _extends(){return _extends=Object.assign?Object.assign.bind():function(target){for(var i=1;ireact_default().createElement("div",{className:"block"},noHeader?null:react_default().createElement(src.Z,_extends({},rest,{onFixedToggle:(0,chunk_OPEUWD42.aD)("onFixedToggle")}),react_default().createElement("h2",{className:"header"},"Header")),react_default().createElement("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum sodales ullamcorper vehicula. Duis placerat quam porta lorem lobortis, sit amet sodales mauris finibus. Donec posuere diam at volutpat viverra. Cras fringilla auctor augue sed congue. Maecenas mollis quis enim quis egestas. In sollicitudin mi a pretium varius. Integer eleifend sodales pharetra. Nullam vitae libero sem. Nulla et eros congue, tincidunt ante eu, tincidunt eros. Donec nisl purus, convallis a hendrerit ut, eleifend in lectus. Proin luctus dignissim lacus, in laoreet arcu eleifend non. Quisque viverra ipsum a massa porta convallis. Donec tincidunt imperdiet purus, interdum elementum ante commodo a. Quisque pharetra arcu sapien, vel ornare magna sollicitudin quis."),react_default().createElement("p",null,"Nunc congue magna eget eros blandit, eu viverra magna semper. Nullam in diam a metus dictum consequat. Quisque ultricies, ipsum non euismod semper, velit felis lacinia nibh, et finibus quam leo vitae nisi. Maecenas interdum diam quis risus bibendum, eu fermentum est pharetra. In dictum at enim pretium bibendum. Praesent efficitur iaculis dolor in sodales. Morbi maximus in ipsum in malesuada. Proin semper lacus tempor magna aliquam, sed aliquam dui scelerisque. Donec nisi nulla, rhoncus a tristique eget, ultrices vitae dolor. Ut id urna vitae ante tincidunt pharetra at non metus. Nunc in suscipit nulla. Sed vitae leo vulputate, euismod tortor vel, aliquet velit. Curabitur eget tincidunt elit. Nam et ligula finibus, eleifend velit et, commodo quam. Praesent non libero velit."),noFooter?null:react_default().createElement(src.Z,_extends({},rest,{mode:"bottom",onFixedToggle:(0,chunk_OPEUWD42.aD)("onFixedToggle")}),react_default().createElement("h2",{className:"footer"},"Footer")));Block.displayName="Block",Block.defaultProps={...src.Z.defaultProps,mode:"top",topOffset:0,bottomOffset:0,isIOSFixEnabled:!0,offsetTransforms:!0,disabled:!1,onFixedToggle:null,noHeader:!1,noFooter:!1,dontUpdateHolderHeightWhenSticky:!0,positionRecheckInterval:100,boundaryElement:".block",scrollElement:".scroll-area"};const createBlocks=(disabled,topOffset,bottomOffset,hideOnBoundaryHit=!0)=>{const blocks=[];for(let i=0;i<3;i+=1)blocks.push(react_default().createElement(Block,{key:i,disabled:disabled,topOffset:topOffset,bottomOffset:bottomOffset,hideOnBoundaryHit:hideOnBoundaryHit}),react_default().createElement("div",{key:`space-${i}`,className:"reserved-space"},"--/--"));return blocks.pop(),blocks},Wrapper=({children:children})=>react_default().createElement("div",{className:"page"},children);Wrapper.displayName="Wrapper";try{Block.displayName="Block",Block.__docgenInfo={description:"",displayName:"Block",props:{noHeader:{defaultValue:{value:"false"},description:"",name:"noHeader",required:!1,type:{name:"boolean"}},noFooter:{defaultValue:{value:"false"},description:"",name:"noFooter",required:!1,type:{name:"boolean"}},stickyStyle:{defaultValue:{value:"{}"},description:"Class name to be applied to the sticky element when it is fixed.",name:"stickyStyle",required:!0,type:{name:"CSSProperties"}},stickyClassName:{defaultValue:{value:"'sticky'"},description:"Class name to be applied to the sticky element when it is fixed.",name:"stickyClassName",required:!0,type:{name:"string"}},wrapperClassName:{defaultValue:{value:"''"},description:"Class name to be applied to the wrapper element.",name:"wrapperClassName",required:!0,type:{name:"string"}},mode:{defaultValue:{value:"top"},description:"Sticky mode. `bottom` - stick to bottom, `top` - stick to top.",name:"mode",required:!1,type:{name:"enum",value:[{value:'"bottom"'},{value:'"top"'}]}},onFixedToggle:{defaultValue:{value:"null"},description:"Callback that is called when sticky state is changed.\n@param isFixed - `true` if element is sticky.",name:"onFixedToggle",required:!1,type:{name:"(isFixed: boolean) => void"}},hideOnBoundaryHit:{defaultValue:null,description:"If `true` - element will be hidden when boundary reached.",name:"hideOnBoundaryHit",required:!0,type:{name:"boolean"}},offsetTransforms:{defaultValue:{value:"true"},description:"TODO: describe",name:"offsetTransforms",required:!1,type:{name:"boolean"}},disabled:{defaultValue:{value:"false"},description:"If `true` - element will not be sticky.",name:"disabled",required:!1,type:{name:"boolean"}},boundaryElement:{defaultValue:{value:".block"},description:"Element that is used as boundary. Sticky element will stop being sticky when it reaches this element.",name:"boundaryElement",required:!1,type:{name:"string"}},scrollElement:{defaultValue:{value:".scroll-area"},description:"Element that is used as scrollable container. Sticky element will be sticky inside this element.",name:"scrollElement",required:!1,type:{name:"string | HTMLElement"}},bottomOffset:{defaultValue:{value:"0"},description:"Offset from bottom of the screen (or top of the screen if mode is `top`) when sticky element should stop being sticky.",name:"bottomOffset",required:!1,type:{name:"number"}},topOffset:{defaultValue:{value:"0"},description:"Offset from top of the screen (or bottom of the screen if mode is `bottom`) when sticky element should stop being sticky.",name:"topOffset",required:!1,type:{name:"number"}},positionRecheckInterval:{defaultValue:{value:"100"},description:"Interval in milliseconds when sticky element position should be rechecked.",name:"positionRecheckInterval",required:!1,type:{name:"number"}},dontUpdateHolderHeightWhenSticky:{defaultValue:{value:"true"},description:"If `true` - holder height will not be updated when sticky element is sticky.",name:"dontUpdateHolderHeightWhenSticky",required:!1,type:{name:"boolean"}},isIOSFixEnabled:{defaultValue:{value:"true"},description:"If `true` - iOS fix will be enabled.\n@see https://github.com/gm0t/react-sticky-el/issues/41",name:"isIOSFixEnabled",required:!1,type:{name:"boolean"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["stories/common.tsx#Block"]={docgenInfo:Block.__docgenInfo,name:"Block",path:"stories/common.tsx#Block"})}catch(__react_docgen_typescript_loader_error){}try{Wrapper.displayName="Wrapper",Wrapper.__docgenInfo={description:"",displayName:"Wrapper",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["stories/common.tsx#Wrapper"]={docgenInfo:Wrapper.__docgenInfo,name:"Wrapper",path:"stories/common.tsx#Wrapper"})}catch(__react_docgen_typescript_loader_error){}},"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./stories/examples.scss":function(module,exports,__webpack_require__){(exports=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(!1)).push([module.id,"html,body,.container,#storybook-root{box-sizing:border-box;height:100%}body{padding:0 !important;margin:0 !important}h1,h2{margin:0;padding:20px 0;text-align:center}#root,.page{height:100%}.container{display:flex;flex-direction:row;justify-content:center;align-items:stretch;height:100%}.column{position:relative;width:300px;height:100%;margin:auto;box-sizing:border-box;outline:2px dashed red}.column h1{position:absolute;top:0;left:0;width:100%}.column .scroll-area{height:100%;overflow-y:scroll;position:relative}.column .scroll-area--distant{margin-top:100px;border-top:2px solid blue}.block{max-width:400px;overflow:hidden;position:relative}.block .sticky{z-index:2}.block h2{line-height:30px}.block h2.header{background:#577796}.block h2.footer{background:#612624}.block p{font-size:1.5em;margin:0;background:#BEC6D7}.reserved-space{background:lightgray;text-align:center;padding:30px 0}.reserved-space p{padding:0 10px}.reserved-space.huge{padding:100vh 0}.navigation a{display:block;padding:0.5rem}.header{padding:1rem;background:#577796}.sticky .header{padding:0.5rem}.sticky .header h2{text-align:left;font-size:1rem}.sticky .header h3{display:none}\n",""]),module.exports=exports},"./node_modules/css-loader/dist/runtime/api.js":function(module){"use strict";module.exports=function(useSourceMap){var list=[];return list.toString=function toString(){return this.map((function(item){var content=function cssWithMappingToString(item,useSourceMap){var content=item[1]||"",cssMapping=item[3];if(!cssMapping)return content;if(useSourceMap&&"function"==typeof btoa){var sourceMapping=function toComment(sourceMap){var base64=btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))),data="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);return"/*# ".concat(data," */")}(cssMapping),sourceURLs=cssMapping.sources.map((function(source){return"/*# sourceURL=".concat(cssMapping.sourceRoot||"").concat(source," */")}));return[content].concat(sourceURLs).concat([sourceMapping]).join("\n")}return[content].join("\n")}(item,useSourceMap);return item[2]?"@media ".concat(item[2]," {").concat(content,"}"):content})).join("")},list.i=function(modules,mediaQuery,dedupe){"string"==typeof modules&&(modules=[[null,modules,""]]);var alreadyImportedModules={};if(dedupe)for(var i=0;i