diff --git a/404.html b/404.html index 69485add..341a937c 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ -

Rain Sugar BangBang

잘못된 경로입니다.

\ No newline at end of file +

Rain Sugar BangBang

잘못된 경로입니다.

\ No newline at end of file diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/css-a-tag-style-fix.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/css-a-tag-style-fix.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/css-a-tag-style-fix.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/css-a-tag-style-fix.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/css-no-selection.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/css-no-selection.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/css-no-selection.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/css-no-selection.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/css-use-download-font.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/css-use-download-font.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/css-use-download-font.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/css-use-download-font.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/css.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/css.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/css.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/css.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/github-git-blog-utterances-comment.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/github-git-blog-utterances-comment.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/github-git-blog-utterances-comment.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/github-git-blog-utterances-comment.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/github-git-cmd.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/github-git-cmd.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/github-git-cmd.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/github-git-cmd.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/github-git-custom-blog.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/github-git-custom-blog.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/github-git-custom-blog.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/github-git-custom-blog.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/github-git-use-markdown-viewer.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/github-git-use-markdown-viewer.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/github-git-use-markdown-viewer.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/github-git-use-markdown-viewer.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/github-github-api-get-repo-data.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/github-github-api-get-repo-data.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/github-github-api-get-repo-data.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/github-github-api-get-repo-data.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/github-markdown-syntex.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/github-markdown-syntex.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/github-markdown-syntex.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/github-markdown-syntex.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/github-token-expired.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/github-token-expired.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/github-token-expired.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/github-token-expired.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/github.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/github.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/github.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/github.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/html-input-basic.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/html-input-basic.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/html-input-basic.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/html-input-basic.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/html-meta-tag.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/html-meta-tag.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/html-meta-tag.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/html-meta-tag.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/html.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/html.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/html.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/html.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/index.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/index.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/index.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/index.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/javascript-basic-1-num-str.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/javascript-basic-1-num-str.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/javascript-basic-1-num-str.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/javascript-basic-1-num-str.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/javascript-basic-2-date.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/javascript-basic-2-date.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/javascript-basic-2-date.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/javascript-basic-2-date.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/javascript-basic-3-math.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/javascript-basic-3-math.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/javascript-basic-3-math.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/javascript-basic-3-math.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/javascript-basic-4-array-1.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/javascript-basic-4-array-1.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/javascript-basic-4-array-1.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/javascript-basic-4-array-1.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/javascript-basic-4-array-2.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/javascript-basic-4-array-2.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/javascript-basic-4-array-2.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/javascript-basic-4-array-2.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/javascript-basic-5-loop.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/javascript-basic-5-loop.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/javascript-basic-5-loop.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/javascript-basic-5-loop.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/javascript-dynamic-import.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/javascript-dynamic-import.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/javascript-dynamic-import.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/javascript-dynamic-import.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/javascript-how-to-use-promise.all.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/javascript-how-to-use-promise.all.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/javascript-how-to-use-promise.all.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/javascript-how-to-use-promise.all.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/javascript-jest-test-code.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/javascript-jest-test-code.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/javascript-jest-test-code.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/javascript-jest-test-code.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/javascript.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/javascript.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/javascript.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/javascript.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/nestjs-custom-repository.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/nestjs-custom-repository.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/nestjs-custom-repository.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/nestjs-custom-repository.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/nestjs-localhost-https.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/nestjs-localhost-https.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/nestjs-localhost-https.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/nestjs-localhost-https.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/nestjs-server-client-cookie.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/nestjs-server-client-cookie.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/nestjs-server-client-cookie.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/nestjs-server-client-cookie.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/nestjs-server-client-cookie2.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/nestjs-server-client-cookie2.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/nestjs-server-client-cookie2.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/nestjs-server-client-cookie2.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/nestjs-use-bcrypt.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/nestjs-use-bcrypt.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/nestjs-use-bcrypt.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/nestjs-use-bcrypt.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/nestjs.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/nestjs.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/nestjs.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/nestjs.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/nextjs-link-userouter.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/nextjs-link-userouter.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/nextjs-link-userouter.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/nextjs-link-userouter.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/nextjs-loading.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/nextjs-loading.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/nextjs-loading.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/nextjs-loading.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/nextjs-marked-webpack-imported-module-7-default.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/nextjs-marked-webpack-imported-module-7-default.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/nextjs-marked-webpack-imported-module-7-default.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/nextjs-marked-webpack-imported-module-7-default.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/nextjs-pages-api-dir-unsupported.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/nextjs-pages-api-dir-unsupported.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/nextjs-pages-api-dir-unsupported.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/nextjs-pages-api-dir-unsupported.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/nextjs-prop-classname-did-not-match.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/nextjs-prop-classname-did-not-match.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/nextjs-prop-classname-did-not-match.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/nextjs-prop-classname-did-not-match.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/nextjs-react-responsive.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/nextjs-react-responsive.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/nextjs-react-responsive.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/nextjs-react-responsive.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/nextjs.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/nextjs.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/nextjs.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/nextjs.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-common-components.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-common-components.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-common-components.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-common-components.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-component-lifecycle.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-component-lifecycle.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-component-lifecycle.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-component-lifecycle.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-context-api.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-context-api.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-context-api.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-context-api.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-datepicker.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-datepicker.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-datepicker.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-datepicker.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-media-query.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-media-query.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-media-query.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-media-query.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-memo.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-memo.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-memo.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-memo.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-modal-non-library.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-modal-non-library.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-modal-non-library.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-modal-non-library.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-navigate-props.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-navigate-props.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-navigate-props.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-navigate-props.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-simple-formdata-code.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-simple-formdata-code.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-simple-formdata-code.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-simple-formdata-code.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-smooth-scroll.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-smooth-scroll.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-smooth-scroll.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-smooth-scroll.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-styled-components-hover.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-styled-components-hover.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-styled-components-hover.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-styled-components-hover.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-submit-prevent-default.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-submit-prevent-default.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-submit-prevent-default.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-submit-prevent-default.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-type-assertion.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-type-assertion.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-type-assertion.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-type-assertion.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-usecallback.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-usecallback.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-usecallback.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-usecallback.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-usememo.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-usememo.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-usememo.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-usememo.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react-z-index-error.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react-z-index-error.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react-z-index-error.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react-z-index-error.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/react.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/react.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/react.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/react.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/redux-mock-server.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/redux-mock-server.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/redux-mock-server.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/redux-mock-server.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/redux-toolkit-async-thunk.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/redux-toolkit-async-thunk.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/redux-toolkit-async-thunk.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/redux-toolkit-async-thunk.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/redux-typescript-react-reduxtoolkit.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/redux-typescript-react-reduxtoolkit.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/redux-typescript-react-reduxtoolkit.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/redux-typescript-react-reduxtoolkit.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/redux-usage.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/redux-usage.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/redux-usage.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/redux-usage.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/redux.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/redux.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/redux.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/redux.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/typescript-syntax.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/typescript-syntax.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/typescript-syntax.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/typescript-syntax.json diff --git a/_next/data/1dDYYunhLMQ22mwQC4FEz/typescript.json b/_next/data/f5RyJlPezl1W7IsvhVwOt/typescript.json similarity index 100% rename from _next/data/1dDYYunhLMQ22mwQC4FEz/typescript.json rename to _next/data/f5RyJlPezl1W7IsvhVwOt/typescript.json diff --git a/_next/static/chunks/pages/_app-81e0364aaa6274c8.js b/_next/static/chunks/pages/_app-630e47b195f5c30b.js similarity index 90% rename from _next/static/chunks/pages/_app-81e0364aaa6274c8.js rename to _next/static/chunks/pages/_app-630e47b195f5c30b.js index 2c974d1d..75c75045 100644 --- a/_next/static/chunks/pages/_app-81e0364aaa6274c8.js +++ b/_next/static/chunks/pages/_app-630e47b195f5c30b.js @@ -1,17 +1,17 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[888],{8679:function(e,t,r){"use strict";var n=r(59864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function u(e){return n.isMemo(e)?a:s[e.$$typeof]||o}s[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[n.Memo]=a;var c=Object.defineProperty,l=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,r,n){if("string"!=typeof r){if(h){var o=p(r);o&&o!==h&&e(t,o,n)}var a=l(r);f&&(a=a.concat(f(r)));for(var s=u(t),m=u(r),y=0;y{}).then(()=>{if(e.parentNode){if("blur"===r&&a(!0),null==o?void 0:o.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let r=!1,i=!1;o.current(n({},t,{nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>r,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{r=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}}))}(null==i?void 0:i.current)&&i.current(e)}})}let g=s.forwardRef((e,t)=>{var{imgAttributes:r,heightInt:o,widthInt:i,qualityInt:u,className:c,imgStyle:l,blurStyle:f,isLazy:d,fill:p,placeholder:h,loading:m,srcString:g,config:v,unoptimized:b,loader:w,onLoadRef:x,onLoadingCompleteRef:S,setBlurComplete:E,setShowAltText:C,onLoad:O,onError:A}=e,j=a(e,["imgAttributes","heightInt","widthInt","qualityInt","className","imgStyle","blurStyle","isLazy","fill","placeholder","loading","srcString","config","unoptimized","loader","onLoadRef","onLoadingCompleteRef","setBlurComplete","setShowAltText","onLoad","onError"]);return m=d?"lazy":m,s.default.createElement(s.default.Fragment,null,s.default.createElement("img",Object.assign({},j,{loading:m,width:i,height:o,decoding:"async","data-nimg":p?"fill":"1",className:c,style:n({},l,f)},r,{ref:s.useCallback(e=>{t&&("function"==typeof t?t(e):"object"==typeof t&&(t.current=e)),e&&(A&&(e.src=e.src),e.complete&&y(e,g,h,x,S,E,b))},[g,h,x,S,E,A,b,t]),onLoad:e=>{let t=e.currentTarget;y(t,g,h,x,S,E,b)},onError:e=>{C(!0),"blur"===h&&E(!0),A&&A(e)}})))}),v=s.forwardRef((e,t)=>{let r,o;var i,{src:y,sizes:v,unoptimized:b=!1,priority:w=!1,loading:x,className:S,quality:E,width:C,height:O,fill:A,style:j,onLoad:k,onLoadingComplete:R,placeholder:P="empty",blurDataURL:_,layout:T,objectFit:I,objectPosition:B,lazyBoundary:L,lazyRoot:N}=e,M=a(e,["src","sizes","unoptimized","priority","loading","className","quality","width","height","fill","style","onLoad","onLoadingComplete","placeholder","blurDataURL","layout","objectFit","objectPosition","lazyBoundary","lazyRoot"]);let U=s.useContext(f.ImageConfigContext),z=s.useMemo(()=>{let e=p||U||l.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t);return n({},e,{allSizes:t,deviceSizes:r})},[U]),D=M,F=D.loader||d.default;delete D.loader;let $="__next_img_default"in F;if($){if("custom"===z.loader)throw Error('Image with src "'.concat(y,'" is missing "loader" prop.')+"\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader")}else{let e=F;F=t=>{let{config:r}=t,n=a(t,["config"]);return e(n)}}if(T){"fill"===T&&(A=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[T];e&&(j=n({},j,e));let t={responsive:"100vw",fill:"100vw"}[T];t&&!v&&(v=t)}let q="",H=m(C),W=m(O);if("object"==typeof(i=y)&&(h(i)||void 0!==i.src)){let e=h(y)?y.default:y;if(!e.src)throw Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ".concat(JSON.stringify(e)));if(!e.height||!e.width)throw Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ".concat(JSON.stringify(e)));if(r=e.blurWidth,o=e.blurHeight,_=_||e.blurDataURL,q=e.src,!A){if(H||W){if(H&&!W){let t=H/e.width;W=Math.round(e.height*t)}else if(!H&&W){let t=W/e.height;H=Math.round(e.width*t)}}else H=e.width,W=e.height}}let Z=!w&&("lazy"===x||void 0===x);((y="string"==typeof y?y:q).startsWith("data:")||y.startsWith("blob:"))&&(b=!0,Z=!1),z.unoptimized&&(b=!0),$&&y.endsWith(".svg")&&!z.dangerouslyAllowSVG&&(b=!0);let[V,G]=s.useState(!1),[Y,J]=s.useState(!1),X=m(E),K=Object.assign(A?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:I,objectPosition:B}:{},Y?{}:{color:"transparent"},j),Q="blur"===P&&_&&!V?{backgroundSize:K.objectFit||"cover",backgroundPosition:K.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:'url("data:image/svg+xml;charset=utf-8,'.concat(c.getImageBlurSvg({widthInt:H,heightInt:W,blurWidth:r,blurHeight:o,blurDataURL:_,objectFit:K.objectFit}),'")')}:{},ee=function(e){let{config:t,src:r,unoptimized:n,width:o,quality:i,sizes:a,loader:s}=e;if(n)return{src:r,srcSet:void 0,sizes:void 0};let{widths:u,kind:c}=function(e,t,r){let{deviceSizes:n,allSizes:o}=e;if(r){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let n;n=e.exec(r);n)t.push(parseInt(n[2]));if(t.length){let e=.01*Math.min(...t);return{widths:o.filter(t=>t>=n[0]*e),kind:"w"}}return{widths:o,kind:"w"}}if("number"!=typeof t)return{widths:n,kind:"w"};let i=[...new Set([t,2*t].map(e=>o.find(t=>t>=e)||o[o.length-1]))];return{widths:i,kind:"x"}}(t,o,a),l=u.length-1;return{sizes:a||"w"!==c?a:"100vw",srcSet:u.map((e,n)=>"".concat(s({config:t,src:r,quality:i,width:e})," ").concat("w"===c?e:n+1).concat(c)).join(", "),src:s({config:t,src:r,quality:i,width:u[l]})}}({config:z,src:y,unoptimized:b,width:H,quality:X,sizes:v,loader:F}),et=y,er={imageSrcSet:ee.srcSet,imageSizes:ee.sizes,crossOrigin:D.crossOrigin},en=s.useRef(k);s.useEffect(()=>{en.current=k},[k]);let eo=s.useRef(R);s.useEffect(()=>{eo.current=R},[R]);let ei=n({isLazy:Z,imgAttributes:ee,heightInt:W,widthInt:H,qualityInt:X,className:S,imgStyle:K,blurStyle:Q,loading:x,config:z,fill:A,unoptimized:b,placeholder:P,loader:F,srcString:et,onLoadRef:en,onLoadingCompleteRef:eo,setBlurComplete:G,setShowAltText:J},D);return s.default.createElement(s.default.Fragment,null,s.default.createElement(g,Object.assign({},ei,{ref:t})),w?s.default.createElement(u.default,null,s.default.createElement("link",Object.assign({key:"__nimg-"+ee.src+ee.srcSet+ee.sizes,rel:"preload",as:"image",href:ee.srcSet?void 0:ee.src},er))):null)});t.default=v,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},31551:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(92648).Z,o=r(17273).Z,i=n(r(67294)),a=r(1978),s=r(62139),u=r(67795),c=r(670),l=r(54465),f=r(72692),d=r(48245),p=r(69246),h=r(10227),m=r(33468);let y=new Set;function g(e,t,r,n,o){if(o||s.isLocalURL(t)){if(!n.bypassPrefetchedCheck){let o=void 0!==n.locale?n.locale:"locale"in e?e.locale:void 0,i=t+"%"+r+"%"+o;if(y.has(i))return;y.add(i)}Promise.resolve(e.prefetch(t,r,n)).catch(e=>{})}}function v(e){return"string"==typeof e?e:u.formatUrl(e)}let b=i.default.forwardRef(function(e,t){let r,n;let{href:u,as:y,children:b,prefetch:w,passHref:x,replace:S,shallow:E,scroll:C,locale:O,onClick:A,onMouseEnter:j,onTouchStart:k,legacyBehavior:R=!1}=e,P=o(e,["href","as","children","prefetch","passHref","replace","shallow","scroll","locale","onClick","onMouseEnter","onTouchStart","legacyBehavior"]);r=b,R&&("string"==typeof r||"number"==typeof r)&&(r=i.default.createElement("a",null,r));let _=!1!==w,T=i.default.useContext(f.RouterContext),I=i.default.useContext(d.AppRouterContext),B=null!=T?T:I,L=!T,{href:N,as:M}=i.default.useMemo(()=>{if(!T){let e=v(u);return{href:e,as:y?v(y):e}}let[e,t]=a.resolveHref(T,u,!0);return{href:e,as:y?a.resolveHref(T,y):t||e}},[T,u,y]),U=i.default.useRef(N),z=i.default.useRef(M);R&&(n=i.default.Children.only(r));let D=R?n&&"object"==typeof n&&n.ref:t,[F,$,q]=p.useIntersection({rootMargin:"200px"}),H=i.default.useCallback(e=>{(z.current!==M||U.current!==N)&&(q(),z.current=M,U.current=N),F(e),D&&("function"==typeof D?D(e):"object"==typeof D&&(D.current=e))},[M,D,N,q,F]);i.default.useEffect(()=>{B&&$&&_&&g(B,N,M,{locale:O},L)},[M,N,$,O,_,null==T?void 0:T.locale,B,L]);let W={ref:H,onClick(e){R||"function"!=typeof A||A(e),R&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),B&&!e.defaultPrevented&&function(e,t,r,n,o,a,u,c,l,f){let{nodeName:d}=e.currentTarget,p="A"===d.toUpperCase();if(p&&(function(e){let t=e.currentTarget,r=t.getAttribute("target");return r&&"_self"!==r||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||!l&&!s.isLocalURL(r)))return;e.preventDefault();let h=()=>{"beforePopState"in t?t[o?"replace":"push"](r,n,{shallow:a,locale:c,scroll:u}):t[o?"replace":"push"](n||r,{forceOptimisticNavigation:!f})};l?i.default.startTransition(h):h()}(e,B,N,M,S,E,C,O,L,_)},onMouseEnter(e){R||"function"!=typeof j||j(e),R&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),B&&(_||!L)&&g(B,N,M,{locale:O,priority:!0,bypassPrefetchedCheck:!0},L)},onTouchStart(e){R||"function"!=typeof k||k(e),R&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),B&&(_||!L)&&g(B,N,M,{locale:O,priority:!0,bypassPrefetchedCheck:!0},L)}};if(c.isAbsoluteUrl(M))W.href=M;else if(!R||x||"a"===n.type&&!("href"in n.props)){let e=void 0!==O?O:null==T?void 0:T.locale,t=(null==T?void 0:T.isLocaleDomain)&&h.getDomainLocale(M,e,null==T?void 0:T.locales,null==T?void 0:T.domainLocales);W.href=t||m.addBasePath(l.addLocale(M,e,null==T?void 0:T.defaultLocale))}return R?i.default.cloneElement(n,W):i.default.createElement("a",Object.assign({},P,W),r)});t.default=b,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},69246:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useIntersection=function(e){let{rootRef:t,rootMargin:r,disabled:u}=e,c=u||!i,[l,f]=n.useState(!1),d=n.useRef(null),p=n.useCallback(e=>{d.current=e},[]);n.useEffect(()=>{if(i){if(c||l)return;let e=d.current;if(e&&e.tagName){let n=function(e,t,r){let{id:n,observer:o,elements:i}=function(e){let t;let r={root:e.root||null,margin:e.rootMargin||""},n=s.find(e=>e.root===r.root&&e.margin===r.margin);if(n&&(t=a.get(n)))return t;let o=new Map,i=new IntersectionObserver(e=>{e.forEach(e=>{let t=o.get(e.target),r=e.isIntersecting||e.intersectionRatio>0;t&&r&&t(r)})},e);return t={id:r,observer:i,elements:o},s.push(r),a.set(r,t),t}(r);return i.set(e,t),o.observe(e),function(){if(i.delete(e),o.unobserve(e),0===i.size){o.disconnect(),a.delete(n);let e=s.findIndex(e=>e.root===n.root&&e.margin===n.margin);e>-1&&s.splice(e,1)}}}(e,e=>e&&f(e),{root:null==t?void 0:t.current,rootMargin:r});return n}}else if(!l){let e=o.requestIdleCallback(()=>f(!0));return()=>o.cancelIdleCallback(e)}},[c,r,t,l,d.current]);let h=n.useCallback(()=>{f(!1)},[]);return[p,l,h]};var n=r(67294),o=r(44686);let i="function"==typeof IntersectionObserver,a=new Map,s=[];("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2675:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getImageBlurSvg=function(e){let{widthInt:t,heightInt:r,blurWidth:n,blurHeight:o,blurDataURL:i,objectFit:a}=e,s=n||t,u=o||r,c=i.startsWith("data:image/jpeg")?"%3CfeComponentTransfer%3E%3CfeFuncA type='discrete' tableValues='1 1'/%3E%3C/feComponentTransfer%3E%":"";return s&&u?"%3Csvg xmlns='http%3A//www.w3.org/2000/svg' viewBox='0 0 ".concat(s," ").concat(u,"'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='").concat(n&&o?"1":"20","'/%3E").concat(c,"%3C/filter%3E%3Cimage preserveAspectRatio='none' filter='url(%23b)' x='0' y='0' height='100%25' width='100%25' href='").concat(i,"'/%3E%3C/svg%3E"):"%3Csvg xmlns='http%3A//www.w3.org/2000/svg'%3E%3Cimage style='filter:blur(20px)' preserveAspectRatio='".concat("contain"===a?"xMidYMid":"cover"===a?"xMidYMid slice":"none","' x='0' y='0' height='100%25' width='100%25' href='").concat(i,"'/%3E%3C/svg%3E")}},89824:function(e,t){"use strict";function r(e){let{config:t,src:r,width:n,quality:o}=e;return"".concat(t.path,"?url=").concat(encodeURIComponent(r),"&w=").concat(n,"&q=").concat(o||75)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.__next_img_default=!0,t.default=r},54363:function(e,t,r){"use strict";r.d(t,{Oy:function(){return f},qZ:function(){return l}});var n=r(85893),o=r(67294),i=r(6154),a=r(21876).Buffer;let s={posts:[],setPosts:()=>{}},u=(0,o.createContext)(s.posts),c=(0,o.createContext)(s.setPosts),l=()=>{let e=(0,o.useContext)(u);return e},f=e=>{let{children:t}=e,[r,s]=(0,o.useState)([]),l="https://api.github.com/repos/LEE-YO-HAN/LEE-YO-HAN.github.io/contents/src/posting",f={headers:{"Content-Type":"application/json"}},d=async(e,t)=>{let r="".concat(l,"/").concat(t,"/").concat(e),n=await i.Z.get(r,f),o=a.from(n.data.content,"base64").toString(),s=o.match(/^---\n([\s\S]+?)\n---/);if(s){let e=JSON.stringify(s[0]).split("\\n"),t=e[4].match(/\d{4}-\d{2}-\d{2}/);if(t){let r={title:e[1].split("title: ")[1].replaceAll(" ","-"),description:e[2].split("description: ")[1],category:e[3].split("category: ")[1],date:t[0]};return r}}},p=async()=>{let e="".concat(l),t=await i.Z.get(e,f),r=[];for(let n of t.data){let t=await i.Z.get("".concat(e,"/").concat(n.name),f);for(let e of t.data){let t=await d(e.name,n.name);void 0!==t&&r.push(t)}}s(r)};return(0,o.useEffect)(()=>{p()},[]),(0,n.jsx)(u.Provider,{value:r,children:(0,n.jsx)(c.Provider,{value:s,children:t})})}},45272:function(e,t,r){"use strict";r.d(t,{X:function(){return i}});var n=r(67294),o=r(1852);let i=()=>{let[e,t]=(0,n.useState)(!1),r=(0,o.useMediaQuery)({maxWidth:480}),i=()=>{r?t(!0):t(!1)};return(0,n.useEffect)(()=>{i()},[r]),e}},20496:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return J}});var n=r(85893);r(79062);var o=r(11163),i=r(19521),a=r(7297),s=r(41664),u=r.n(s),c=r(45272),l=r(81873),f=r(89583);function d(){let e=(0,a.Z)(["\n display: flex;\n flex-direction: row;\n justify-content: center;\n justify-content: space-around;\n align-items: center;\n height: 79px;\n border-bottom: 1px solid ",";\n background-color: ",";\n & h1 {\n width: 50vw;\n text-align: center;\n cursor: pointer;\n }\n & a {\n transition: 0.3s;\n color: ",";\n &:hover {\n color: ",";\n }\n }\n"]);return d=function(){return e},e}function p(){let e=(0,a.Z)(["\n display: flex;\n font-size: 1.8rem;\n color: ",";\n &:hover {\n color: ",";\n }\n"]);return p=function(){return e},e}let h=()=>{let e=(0,c.X)(),t=e?{}:{display:"none"};return(0,n.jsxs)(m,{children:[(0,n.jsx)(y,{style:t,children:(0,n.jsx)(l.lrj,{})}),(0,n.jsx)("h1",{style:e?{fontSize:"1.4rem"}:{},children:(0,n.jsx)(u(),{href:"/",children:"Rain Sugar BangBang"})}),(0,n.jsx)(y,{style:t,children:(0,n.jsx)(f.U41,{})})]})},m=i.ZP.header.withConfig({componentId:"sc-fe6a8-0"})(d(),e=>e.theme.layoutBorderColor,e=>e.theme.componentBackground,e=>e.theme.componentFontColor,e=>e.theme.componentHover),y=i.ZP.span.withConfig({componentId:"sc-fe6a8-1"})(p(),e=>e.theme.componentFontColor,e=>e.theme.componentHover);function g(){let e=(0,a.Z)(["\n margin-left: 20px;\n"]);return g=function(){return e},e}function v(){let e=(0,a.Z)(["\n list-style: none;\n transition: 0.3s;\n & li:first-child {\n margin-bottom: 20px;\n font-weight: bold;\n font-size: 1.2rem;\n cursor: auto;\n }\n"]);return v=function(){return e},e}function b(){let e=(0,a.Z)(["\n margin-bottom: 7px;\n cursor: pointer;\n\n & a {\n color: ",";\n &:hover {\n font-weight: bold;\n color: white;\n }\n }\n"]);return b=function(){return e},e}let w=()=>{let e=(0,o.useRouter)(),t=e=>{let t="Simple Memo"===e?"github":e.toLowerCase();return{name:e,cateUrl:t}},r=[t("Simple Memo"),t("HTML"),t("CSS"),t("JavaScript"),t("TypeScript"),t("Redux"),t("React"),t("Nextjs"),t("Nestjs")];return(0,n.jsx)(x,{children:(0,n.jsxs)(S,{children:[(0,n.jsx)("li",{children:"Category"}),r.map((t,r)=>{let{name:o,cateUrl:i}=t;return(0,n.jsx)(E,{children:(0,n.jsx)(u(),{href:"/".concat(i),style:"/".concat(i)===e.pathname||"/".concat(i)===e.asPath.split("-")[0]?{color:"white",fontWeight:"bold"}:{},children:o})},r)})]})})},x=i.ZP.nav.withConfig({componentId:"sc-cd9d196f-0"})(g()),S=i.ZP.ul.withConfig({componentId:"sc-cd9d196f-1"})(v()),E=i.ZP.li.withConfig({componentId:"sc-cd9d196f-2"})(b(),e=>e.theme.componentFontColor);function C(){let e=(0,a.Z)(["\n position: relative;\n top: 100px;\n right: 0;\n margin-left: 20px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n width: 200px;\n height: 350px;\n color: ",";\n background-color: ",";\n border-radius: 10px;\n"]);return C=function(){return e},e}let O=()=>{let e=(0,c.X)();return(0,n.jsx)(A,{style:e?{display:"none"}:{},children:(0,n.jsx)(w,{})})},A=i.ZP.aside.withConfig({componentId:"sc-25c0fcf1-0"})(C(),e=>e.theme.componentFontColor,e=>e.theme.componentBackground);var j=r(25675),k=r.n(j),R=r(63750),P=r(8193);function _(){let e=(0,a.Z)(["\n position: relative;\n top: 100px;\n left: 0;\n margin-right: 20px;\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 200px;\n height: 350px;\n color: ",";\n background-color: ",";\n border-radius: 10px;\n"]);return _=function(){return e},e}function T(){let e=(0,a.Z)(["\n margin-top: 30px;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & img {\n border-radius: 50px;\n }\n & p {\n margin: 10px 15px 0 15px;\n font-weight: bold;\n font-size: 1.4rem;\n }\n & span {\n position: absolute;\n top: 8%;\n left: 25%;\n width: 100px;\n height: 100px;\n line-height: 100px;\n color: transparent;\n font-weight: bold;\n text-align: center;\n border-radius: 50%;\n transition: 0.2s;\n &:hover {\n color: white;\n background-color: #00000067;\n }\n }\n"]);return T=function(){return e},e}function I(){let e=(0,a.Z)(["\n margin: 20px 0;\n & a {\n margin-bottom: 10px;\n display: flex;\n align-items: center;\n color: ",";\n font-weight: bold;\n text-decoration: none;\n cursor: pointer;\n transition: 0.2s;\n\n &:hover {\n color: ",";\n }\n & svg {\n font-size: 15px;\n }\n & span {\n margin-left: 10px;\n }\n }\n"]);return I=function(){return e},e}let B=()=>{let e=(0,c.X)();return(0,n.jsxs)(L,{style:e?{display:"none"}:{},children:[(0,n.jsxs)(N,{children:[(0,n.jsxs)(u(),{href:"/profile",children:[(0,n.jsx)(k(),{src:"/images/profileImage/cat.png",alt:"profile",width:100,height:100}),(0,n.jsx)("span",{children:"Go Profile!"})]}),(0,n.jsx)("p",{children:"Hanbbi"})]}),(0,n.jsxs)(M,{children:[(0,n.jsxs)(u(),{href:"https://github.com/LEE-YO-HAN",target:"_blank",children:[(0,n.jsx)(P.Dme,{}),(0,n.jsx)("span",{children:"yhl0078@gmail.com"})]}),(0,n.jsxs)(u(),{href:"https://github.com/LEE-YO-HAN",target:"_blank",children:[(0,n.jsx)(R.rFR,{}),(0,n.jsx)("span",{children:"Github"})]})]})]})},L=i.ZP.aside.withConfig({componentId:"sc-8da54c0a-0"})(_(),e=>e.theme.componentFontColor,e=>e.theme.componentBackground),N=i.ZP.div.withConfig({componentId:"sc-8da54c0a-1"})(T()),M=i.ZP.div.withConfig({componentId:"sc-8da54c0a-2"})(I(),e=>e.theme.componentFontColor,e=>e.theme.componentHover);function U(){let e=(0,a.Z)(["\n margin: 0 auto;\n width: 100vw;\n height: 100vh;\n font-family: maplestory;\n background-color: ",";\n"]);return U=function(){return e},e}function z(){let e=(0,a.Z)(["\n display: flex;\n flex-direction: row;\n justify-content: center;\n background-color: ",";\n color: ",";\n"]);return z=function(){return e},e}function D(){let e=(0,a.Z)(["\n margin-top: 60px;\n display: flex;\n flex-direction: column;\n align-items: center;\n max-width: 660px;\n width: 100%;\n"]);return D=function(){return e},e}let F=e=>{let{children:t}=e;return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)($,{children:[(0,n.jsx)(h,{}),(0,n.jsxs)(q,{children:[(0,n.jsx)(B,{}),(0,n.jsx)(H,{children:t}),(0,n.jsx)(O,{})]})]})})},$=i.ZP.div.withConfig({componentId:"sc-c845a976-0"})(U(),e=>e.theme.backgroundColor),q=i.ZP.section.withConfig({componentId:"sc-c845a976-1"})(z(),e=>e.theme.backgroundColor,e=>e.theme.mainFontColor),H=i.ZP.article.withConfig({componentId:"sc-c845a976-2"})(D()),W={backgroundColor:"#111111",mainFontColor:"white",layoutBorderColor:"gray",componentFontColor:"#ffec43",componentSubFontColor:"lightgray",componentBackground:"black",componentShadow:"gold",componentHover:"white",loading:"gold",prevNextFont:"#000000",prevNextBackground:"#ffee52",prevNextHover:"#ffed47",noPrevNextFont:"#97904e",noPrevNextBackground:"#fff6a1",buttonFontColor:"gold",buttonBackgroundColor:"",activeButtonColor:"#000000",activeBackgroundColor:"#ffee52"};var Z=r(17119),V=r(67294);let G=()=>{let[e,t]=(0,V.useState)(!1);return(0,V.useEffect)(()=>{let e=()=>{t(!0)},r=()=>{t(!1)};return o.Router.events.on("routeChangeStart",e),o.Router.events.on("routeChangeComplete",r),o.Router.events.on("routeChangeError",r),()=>{o.Router.events.off("routeChangeStart",e),o.Router.events.off("routeChangeComplete",r),o.Router.events.off("routeChangeError",r)}},[]),e};var Y=r(54363);function J(e){let{Component:t,pageProps:r}=e,a=G(),{pathname:s}=(0,o.useRouter)();return(0,n.jsx)(Y.Oy,{children:(0,n.jsx)(i.f6,{theme:W,children:"/profile"!==s?(0,n.jsxs)(F,{children:[(0,n.jsx)(t,{...r}),a?(0,n.jsx)(Z.T,{}):null]}):(0,n.jsx)(t,{...r})})})}},17119:function(e,t,r){"use strict";r.d(t,{T:function(){return s}});var n=r(7297),o=r(85893),i=r(19521);function a(){let e=(0,n.Z)(["\n display: block;\n width: 100%;\n height: 100%;\n position: fixed;\n left: 50%;\n top: 50%;\n z-index: 999;\n transform: translate(-50%, -50%);\n @keyframes spinner {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n & .spinner {\n box-sizing: border-box;\n position: absolute;\n top: 50%;\n left: 50%;\n width: 40px;\n height: 40px;\n margin-top: -32px;\n margin-left: -32px;\n border-radius: 50%;\n border: 3px solid transparent;\n border-top: 3px solid ",";\n border-right: 3px solid ",";\n border-bottom: 3px solid ",";\n animation: spinner 0.6s infinite;\n }\n"]);return a=function(){return e},e}let s=()=>(0,o.jsx)(u,{children:(0,o.jsx)("div",{className:"spinner"})}),u=i.ZP.div.withConfig({componentId:"sc-86b17283-0"})(a(),e=>e.theme.loading,e=>e.theme.loading,e=>e.theme.loading)},21876:function(e){!function(){var t={675:function(e,t){"use strict";t.byteLength=function(e){var t=u(e),r=t[0],n=t[1];return(r+n)*3/4-n},t.toByteArray=function(e){var t,r,i=u(e),a=i[0],s=i[1],c=new o((a+s)*3/4-s),l=0,f=s>0?a-4:a;for(r=0;r>16&255,c[l++]=t>>8&255,c[l++]=255&t;return 2===s&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,c[l++]=255&t),1===s&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t),c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;a>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return i.join("")}(e,a,a+16383>s?s:a+16383));return 1===o?i.push(r[(t=e[n-1])>>2]+r[t<<4&63]+"=="):2===o&&i.push(r[(t=(e[n-2]<<8)+e[n-1])>>10]+r[t>>4&63]+r[t<<2&63]+"="),i.join("")};for(var r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=i.length;a0)throw Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");-1===r&&(r=t);var n=r===t?0:4-r%4;return[r,n]}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},72:function(e,t,r){"use strict";/*! +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[888],{8679:function(e,t,r){"use strict";var n=r(59864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function u(e){return n.isMemo(e)?a:s[e.$$typeof]||o}s[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[n.Memo]=a;var c=Object.defineProperty,l=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,r,n){if("string"!=typeof r){if(h){var o=p(r);o&&o!==h&&e(t,o,n)}var a=l(r);f&&(a=a.concat(f(r)));for(var s=u(t),m=u(r),g=0;g{}).then(()=>{if(e.parentNode){if("blur"===r&&a(!0),null==o?void 0:o.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let r=!1,i=!1;o.current(n({},t,{nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>r,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{r=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}}))}(null==i?void 0:i.current)&&i.current(e)}})}let y=s.forwardRef((e,t)=>{var{imgAttributes:r,heightInt:o,widthInt:i,qualityInt:u,className:c,imgStyle:l,blurStyle:f,isLazy:d,fill:p,placeholder:h,loading:m,srcString:y,config:v,unoptimized:b,loader:w,onLoadRef:x,onLoadingCompleteRef:S,setBlurComplete:E,setShowAltText:C,onLoad:O,onError:A}=e,j=a(e,["imgAttributes","heightInt","widthInt","qualityInt","className","imgStyle","blurStyle","isLazy","fill","placeholder","loading","srcString","config","unoptimized","loader","onLoadRef","onLoadingCompleteRef","setBlurComplete","setShowAltText","onLoad","onError"]);return m=d?"lazy":m,s.default.createElement(s.default.Fragment,null,s.default.createElement("img",Object.assign({},j,{loading:m,width:i,height:o,decoding:"async","data-nimg":p?"fill":"1",className:c,style:n({},l,f)},r,{ref:s.useCallback(e=>{t&&("function"==typeof t?t(e):"object"==typeof t&&(t.current=e)),e&&(A&&(e.src=e.src),e.complete&&g(e,y,h,x,S,E,b))},[y,h,x,S,E,A,b,t]),onLoad:e=>{let t=e.currentTarget;g(t,y,h,x,S,E,b)},onError:e=>{C(!0),"blur"===h&&E(!0),A&&A(e)}})))}),v=s.forwardRef((e,t)=>{let r,o;var i,{src:g,sizes:v,unoptimized:b=!1,priority:w=!1,loading:x,className:S,quality:E,width:C,height:O,fill:A,style:j,onLoad:k,onLoadingComplete:R,placeholder:P="empty",blurDataURL:_,layout:T,objectFit:I,objectPosition:B,lazyBoundary:L,lazyRoot:N}=e,M=a(e,["src","sizes","unoptimized","priority","loading","className","quality","width","height","fill","style","onLoad","onLoadingComplete","placeholder","blurDataURL","layout","objectFit","objectPosition","lazyBoundary","lazyRoot"]);let U=s.useContext(f.ImageConfigContext),z=s.useMemo(()=>{let e=p||U||l.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t);return n({},e,{allSizes:t,deviceSizes:r})},[U]),D=M,F=D.loader||d.default;delete D.loader;let $="__next_img_default"in F;if($){if("custom"===z.loader)throw Error('Image with src "'.concat(g,'" is missing "loader" prop.')+"\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader")}else{let e=F;F=t=>{let{config:r}=t,n=a(t,["config"]);return e(n)}}if(T){"fill"===T&&(A=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[T];e&&(j=n({},j,e));let t={responsive:"100vw",fill:"100vw"}[T];t&&!v&&(v=t)}let q="",H=m(C),W=m(O);if("object"==typeof(i=g)&&(h(i)||void 0!==i.src)){let e=h(g)?g.default:g;if(!e.src)throw Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ".concat(JSON.stringify(e)));if(!e.height||!e.width)throw Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ".concat(JSON.stringify(e)));if(r=e.blurWidth,o=e.blurHeight,_=_||e.blurDataURL,q=e.src,!A){if(H||W){if(H&&!W){let t=H/e.width;W=Math.round(e.height*t)}else if(!H&&W){let t=W/e.height;H=Math.round(e.width*t)}}else H=e.width,W=e.height}}let Z=!w&&("lazy"===x||void 0===x);((g="string"==typeof g?g:q).startsWith("data:")||g.startsWith("blob:"))&&(b=!0,Z=!1),z.unoptimized&&(b=!0),$&&g.endsWith(".svg")&&!z.dangerouslyAllowSVG&&(b=!0);let[V,G]=s.useState(!1),[Y,J]=s.useState(!1),X=m(E),K=Object.assign(A?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:I,objectPosition:B}:{},Y?{}:{color:"transparent"},j),Q="blur"===P&&_&&!V?{backgroundSize:K.objectFit||"cover",backgroundPosition:K.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:'url("data:image/svg+xml;charset=utf-8,'.concat(c.getImageBlurSvg({widthInt:H,heightInt:W,blurWidth:r,blurHeight:o,blurDataURL:_,objectFit:K.objectFit}),'")')}:{},ee=function(e){let{config:t,src:r,unoptimized:n,width:o,quality:i,sizes:a,loader:s}=e;if(n)return{src:r,srcSet:void 0,sizes:void 0};let{widths:u,kind:c}=function(e,t,r){let{deviceSizes:n,allSizes:o}=e;if(r){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let n;n=e.exec(r);n)t.push(parseInt(n[2]));if(t.length){let e=.01*Math.min(...t);return{widths:o.filter(t=>t>=n[0]*e),kind:"w"}}return{widths:o,kind:"w"}}if("number"!=typeof t)return{widths:n,kind:"w"};let i=[...new Set([t,2*t].map(e=>o.find(t=>t>=e)||o[o.length-1]))];return{widths:i,kind:"x"}}(t,o,a),l=u.length-1;return{sizes:a||"w"!==c?a:"100vw",srcSet:u.map((e,n)=>"".concat(s({config:t,src:r,quality:i,width:e})," ").concat("w"===c?e:n+1).concat(c)).join(", "),src:s({config:t,src:r,quality:i,width:u[l]})}}({config:z,src:g,unoptimized:b,width:H,quality:X,sizes:v,loader:F}),et=g,er={imageSrcSet:ee.srcSet,imageSizes:ee.sizes,crossOrigin:D.crossOrigin},en=s.useRef(k);s.useEffect(()=>{en.current=k},[k]);let eo=s.useRef(R);s.useEffect(()=>{eo.current=R},[R]);let ei=n({isLazy:Z,imgAttributes:ee,heightInt:W,widthInt:H,qualityInt:X,className:S,imgStyle:K,blurStyle:Q,loading:x,config:z,fill:A,unoptimized:b,placeholder:P,loader:F,srcString:et,onLoadRef:en,onLoadingCompleteRef:eo,setBlurComplete:G,setShowAltText:J},D);return s.default.createElement(s.default.Fragment,null,s.default.createElement(y,Object.assign({},ei,{ref:t})),w?s.default.createElement(u.default,null,s.default.createElement("link",Object.assign({key:"__nimg-"+ee.src+ee.srcSet+ee.sizes,rel:"preload",as:"image",href:ee.srcSet?void 0:ee.src},er))):null)});t.default=v,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},31551:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(92648).Z,o=r(17273).Z,i=n(r(67294)),a=r(1978),s=r(62139),u=r(67795),c=r(670),l=r(54465),f=r(72692),d=r(48245),p=r(69246),h=r(10227),m=r(33468);let g=new Set;function y(e,t,r,n,o){if(o||s.isLocalURL(t)){if(!n.bypassPrefetchedCheck){let o=void 0!==n.locale?n.locale:"locale"in e?e.locale:void 0,i=t+"%"+r+"%"+o;if(g.has(i))return;g.add(i)}Promise.resolve(e.prefetch(t,r,n)).catch(e=>{})}}function v(e){return"string"==typeof e?e:u.formatUrl(e)}let b=i.default.forwardRef(function(e,t){let r,n;let{href:u,as:g,children:b,prefetch:w,passHref:x,replace:S,shallow:E,scroll:C,locale:O,onClick:A,onMouseEnter:j,onTouchStart:k,legacyBehavior:R=!1}=e,P=o(e,["href","as","children","prefetch","passHref","replace","shallow","scroll","locale","onClick","onMouseEnter","onTouchStart","legacyBehavior"]);r=b,R&&("string"==typeof r||"number"==typeof r)&&(r=i.default.createElement("a",null,r));let _=!1!==w,T=i.default.useContext(f.RouterContext),I=i.default.useContext(d.AppRouterContext),B=null!=T?T:I,L=!T,{href:N,as:M}=i.default.useMemo(()=>{if(!T){let e=v(u);return{href:e,as:g?v(g):e}}let[e,t]=a.resolveHref(T,u,!0);return{href:e,as:g?a.resolveHref(T,g):t||e}},[T,u,g]),U=i.default.useRef(N),z=i.default.useRef(M);R&&(n=i.default.Children.only(r));let D=R?n&&"object"==typeof n&&n.ref:t,[F,$,q]=p.useIntersection({rootMargin:"200px"}),H=i.default.useCallback(e=>{(z.current!==M||U.current!==N)&&(q(),z.current=M,U.current=N),F(e),D&&("function"==typeof D?D(e):"object"==typeof D&&(D.current=e))},[M,D,N,q,F]);i.default.useEffect(()=>{B&&$&&_&&y(B,N,M,{locale:O},L)},[M,N,$,O,_,null==T?void 0:T.locale,B,L]);let W={ref:H,onClick(e){R||"function"!=typeof A||A(e),R&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),B&&!e.defaultPrevented&&function(e,t,r,n,o,a,u,c,l,f){let{nodeName:d}=e.currentTarget,p="A"===d.toUpperCase();if(p&&(function(e){let t=e.currentTarget,r=t.getAttribute("target");return r&&"_self"!==r||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||!l&&!s.isLocalURL(r)))return;e.preventDefault();let h=()=>{"beforePopState"in t?t[o?"replace":"push"](r,n,{shallow:a,locale:c,scroll:u}):t[o?"replace":"push"](n||r,{forceOptimisticNavigation:!f})};l?i.default.startTransition(h):h()}(e,B,N,M,S,E,C,O,L,_)},onMouseEnter(e){R||"function"!=typeof j||j(e),R&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),B&&(_||!L)&&y(B,N,M,{locale:O,priority:!0,bypassPrefetchedCheck:!0},L)},onTouchStart(e){R||"function"!=typeof k||k(e),R&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),B&&(_||!L)&&y(B,N,M,{locale:O,priority:!0,bypassPrefetchedCheck:!0},L)}};if(c.isAbsoluteUrl(M))W.href=M;else if(!R||x||"a"===n.type&&!("href"in n.props)){let e=void 0!==O?O:null==T?void 0:T.locale,t=(null==T?void 0:T.isLocaleDomain)&&h.getDomainLocale(M,e,null==T?void 0:T.locales,null==T?void 0:T.domainLocales);W.href=t||m.addBasePath(l.addLocale(M,e,null==T?void 0:T.defaultLocale))}return R?i.default.cloneElement(n,W):i.default.createElement("a",Object.assign({},P,W),r)});t.default=b,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},69246:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useIntersection=function(e){let{rootRef:t,rootMargin:r,disabled:u}=e,c=u||!i,[l,f]=n.useState(!1),d=n.useRef(null),p=n.useCallback(e=>{d.current=e},[]);n.useEffect(()=>{if(i){if(c||l)return;let e=d.current;if(e&&e.tagName){let n=function(e,t,r){let{id:n,observer:o,elements:i}=function(e){let t;let r={root:e.root||null,margin:e.rootMargin||""},n=s.find(e=>e.root===r.root&&e.margin===r.margin);if(n&&(t=a.get(n)))return t;let o=new Map,i=new IntersectionObserver(e=>{e.forEach(e=>{let t=o.get(e.target),r=e.isIntersecting||e.intersectionRatio>0;t&&r&&t(r)})},e);return t={id:r,observer:i,elements:o},s.push(r),a.set(r,t),t}(r);return i.set(e,t),o.observe(e),function(){if(i.delete(e),o.unobserve(e),0===i.size){o.disconnect(),a.delete(n);let e=s.findIndex(e=>e.root===n.root&&e.margin===n.margin);e>-1&&s.splice(e,1)}}}(e,e=>e&&f(e),{root:null==t?void 0:t.current,rootMargin:r});return n}}else if(!l){let e=o.requestIdleCallback(()=>f(!0));return()=>o.cancelIdleCallback(e)}},[c,r,t,l,d.current]);let h=n.useCallback(()=>{f(!1)},[]);return[p,l,h]};var n=r(67294),o=r(44686);let i="function"==typeof IntersectionObserver,a=new Map,s=[];("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2675:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getImageBlurSvg=function(e){let{widthInt:t,heightInt:r,blurWidth:n,blurHeight:o,blurDataURL:i,objectFit:a}=e,s=n||t,u=o||r,c=i.startsWith("data:image/jpeg")?"%3CfeComponentTransfer%3E%3CfeFuncA type='discrete' tableValues='1 1'/%3E%3C/feComponentTransfer%3E%":"";return s&&u?"%3Csvg xmlns='http%3A//www.w3.org/2000/svg' viewBox='0 0 ".concat(s," ").concat(u,"'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='").concat(n&&o?"1":"20","'/%3E").concat(c,"%3C/filter%3E%3Cimage preserveAspectRatio='none' filter='url(%23b)' x='0' y='0' height='100%25' width='100%25' href='").concat(i,"'/%3E%3C/svg%3E"):"%3Csvg xmlns='http%3A//www.w3.org/2000/svg'%3E%3Cimage style='filter:blur(20px)' preserveAspectRatio='".concat("contain"===a?"xMidYMid":"cover"===a?"xMidYMid slice":"none","' x='0' y='0' height='100%25' width='100%25' href='").concat(i,"'/%3E%3C/svg%3E")}},89824:function(e,t){"use strict";function r(e){let{config:t,src:r,width:n,quality:o}=e;return"".concat(t.path,"?url=").concat(encodeURIComponent(r),"&w=").concat(n,"&q=").concat(o||75)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.__next_img_default=!0,t.default=r},54363:function(e,t,r){"use strict";r.d(t,{Oy:function(){return f},qZ:function(){return l}});var n=r(85893),o=r(67294),i=r(6154),a=r(21876).Buffer;let s={posts:[],setPosts:()=>{}},u=(0,o.createContext)(s.posts),c=(0,o.createContext)(s.setPosts),l=()=>{let e=(0,o.useContext)(u);return e},f=e=>{let{children:t}=e,[r,s]=(0,o.useState)([]),l="https://api.github.com/repos/LEE-YO-HAN/LEE-YO-HAN.github.io/contents/src/posting",f={headers:{"Content-Type":"application/json"}},d=async(e,t)=>{let r="".concat(l,"/").concat(t,"/").concat(e),n=await i.Z.get(r,f),o=a.from(n.data.content,"base64").toString(),s=o.match(/^---\n([\s\S]+?)\n---/);if(s){let e=JSON.stringify(s[0]).split("\\n"),t=e[4].match(/\d{4}-\d{2}-\d{2}/);if(t){let r={title:e[1].split("title: ")[1].replaceAll(" ","-"),description:e[2].split("description: ")[1],category:e[3].split("category: ")[1],date:t[0]};return r}}},p=async()=>{let e="".concat(l),t=await i.Z.get(e,f),r=[];for(let n of t.data){let t=await i.Z.get("".concat(e,"/").concat(n.name),f);for(let e of t.data){let t=await d(e.name,n.name);void 0!==t&&r.push(t)}}s(r)};return(0,o.useEffect)(()=>{p()},[]),(0,n.jsx)(u.Provider,{value:r,children:(0,n.jsx)(c.Provider,{value:s,children:t})})}},45272:function(e,t,r){"use strict";r.d(t,{X:function(){return i}});var n=r(67294),o=r(1852);let i=()=>{let[e,t]=(0,n.useState)(!1),r=(0,o.useMediaQuery)({maxWidth:480}),i=()=>{r?t(!0):t(!1)};return(0,n.useEffect)(()=>{i()},[r]),e}},20496:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return J}});var n=r(85893);r(79062);var o=r(11163),i=r(19521),a=r(7297),s=r(41664),u=r.n(s),c=r(45272),l=r(81873),f=r(89583);function d(){let e=(0,a.Z)(["\n display: flex;\n flex-direction: row;\n justify-content: center;\n justify-content: space-around;\n align-items: center;\n height: 79px;\n border-bottom: 1px solid ",";\n background-color: ",";\n & h1 {\n width: 50vw;\n text-align: center;\n cursor: pointer;\n }\n & a {\n transition: 0.3s;\n color: ",";\n &:hover {\n color: ",";\n }\n }\n"]);return d=function(){return e},e}function p(){let e=(0,a.Z)(["\n display: flex;\n font-size: 1.8rem;\n color: ",";\n &:hover {\n color: ",";\n }\n"]);return p=function(){return e},e}let h=()=>{let e=(0,c.X)(),t=e?{}:{display:"none"};return(0,n.jsxs)(m,{children:[(0,n.jsx)(g,{style:t,children:(0,n.jsx)(l.lrj,{})}),(0,n.jsx)("h1",{style:e?{fontSize:"1.4rem"}:{},children:(0,n.jsx)(u(),{href:"/",children:"Rain Sugar BangBang"})}),(0,n.jsx)(g,{style:t,children:(0,n.jsx)(f.U41,{})})]})},m=i.ZP.header.withConfig({componentId:"sc-fe6a8-0"})(d(),e=>e.theme.layoutBorderColor,e=>e.theme.componentBackground,e=>e.theme.componentFontColor,e=>e.theme.componentHover),g=i.ZP.span.withConfig({componentId:"sc-fe6a8-1"})(p(),e=>e.theme.componentFontColor,e=>e.theme.componentHover);function y(){let e=(0,a.Z)(["\n margin-left: 20px;\n"]);return y=function(){return e},e}function v(){let e=(0,a.Z)(["\n list-style: none;\n transition: 0.3s;\n & li:first-child {\n margin-bottom: 20px;\n font-weight: bold;\n font-size: 1.2rem;\n cursor: auto;\n }\n"]);return v=function(){return e},e}function b(){let e=(0,a.Z)(["\n margin-bottom: 7px;\n cursor: pointer;\n\n & a {\n color: ",";\n &:hover {\n font-weight: bold;\n color: white;\n }\n }\n"]);return b=function(){return e},e}let w=()=>{let e=(0,o.useRouter)(),t=e=>{let t="Simple Memo"===e?"github":e.toLowerCase();return{name:e,cateUrl:t}},r=[t("Simple Memo"),t("HTML"),t("CSS"),t("JavaScript"),t("TypeScript"),t("Redux"),t("React"),t("Nextjs"),t("Nestjs")];return(0,n.jsx)(x,{children:(0,n.jsxs)(S,{children:[(0,n.jsx)("li",{children:"Category"}),r.map((t,r)=>{let{name:o,cateUrl:i}=t;return(0,n.jsx)(E,{children:(0,n.jsx)(u(),{href:"/".concat(i),style:"/".concat(i)===e.pathname||"/".concat(i)===e.asPath.split("-")[0]?{color:"white",fontWeight:"bold"}:{},children:o})},r)})]})})},x=i.ZP.nav.withConfig({componentId:"sc-cd9d196f-0"})(y()),S=i.ZP.ul.withConfig({componentId:"sc-cd9d196f-1"})(v()),E=i.ZP.li.withConfig({componentId:"sc-cd9d196f-2"})(b(),e=>e.theme.componentFontColor);function C(){let e=(0,a.Z)(["\n position: relative;\n top: 100px;\n right: 0;\n margin-left: 20px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n width: 200px;\n height: 350px;\n color: ",";\n background-color: ",";\n border-radius: 10px;\n"]);return C=function(){return e},e}let O=()=>{let e=(0,c.X)();return(0,n.jsx)(A,{style:e?{display:"none"}:{},children:(0,n.jsx)(w,{})})},A=i.ZP.aside.withConfig({componentId:"sc-25c0fcf1-0"})(C(),e=>e.theme.componentFontColor,e=>e.theme.componentBackground);var j=r(25675),k=r.n(j),R=r(63750),P=r(8193);function _(){let e=(0,a.Z)(["\n position: relative;\n top: 100px;\n left: 0;\n margin-right: 20px;\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 200px;\n height: 350px;\n color: ",";\n background-color: ",";\n border-radius: 10px;\n"]);return _=function(){return e},e}function T(){let e=(0,a.Z)(["\n margin-top: 30px;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & img {\n border-radius: 50px;\n }\n & p {\n margin: 10px 15px 0 15px;\n font-weight: bold;\n font-size: 1.4rem;\n }\n & span {\n position: absolute;\n top: 8%;\n left: 25%;\n width: 100px;\n height: 100px;\n line-height: 100px;\n color: transparent;\n font-weight: bold;\n text-align: center;\n border-radius: 50%;\n transition: 0.2s;\n &:hover {\n color: white;\n background-color: #00000067;\n }\n }\n"]);return T=function(){return e},e}function I(){let e=(0,a.Z)(["\n margin: 20px 0;\n & a {\n margin-bottom: 10px;\n display: flex;\n align-items: center;\n color: ",";\n font-weight: bold;\n text-decoration: none;\n cursor: pointer;\n transition: 0.2s;\n\n &:hover {\n color: ",";\n }\n & svg {\n font-size: 15px;\n }\n & span {\n margin-left: 10px;\n }\n }\n"]);return I=function(){return e},e}let B=()=>{let e=(0,c.X)();return(0,n.jsxs)(L,{style:e?{display:"none"}:{},children:[(0,n.jsxs)(N,{children:[(0,n.jsxs)(u(),{href:"https://portfolio-sigma-wheat-63.vercel.app/",target:"_blank",children:[(0,n.jsx)(k(),{src:"/images/profileImage/cat.png",alt:"profile",width:100,height:100}),(0,n.jsx)("span",{children:"Go Profile!"})]}),(0,n.jsx)("p",{children:"Hanbbi"})]}),(0,n.jsxs)(M,{children:[(0,n.jsxs)(u(),{href:"https://github.com/LEE-YO-HAN",target:"_blank",children:[(0,n.jsx)(P.Dme,{}),(0,n.jsx)("span",{children:"yhl0078@gmail.com"})]}),(0,n.jsxs)(u(),{href:"https://github.com/LEE-YO-HAN",target:"_blank",children:[(0,n.jsx)(R.rFR,{}),(0,n.jsx)("span",{children:"Github"})]})]})]})},L=i.ZP.aside.withConfig({componentId:"sc-226f6af7-0"})(_(),e=>e.theme.componentFontColor,e=>e.theme.componentBackground),N=i.ZP.div.withConfig({componentId:"sc-226f6af7-1"})(T()),M=i.ZP.div.withConfig({componentId:"sc-226f6af7-2"})(I(),e=>e.theme.componentFontColor,e=>e.theme.componentHover);function U(){let e=(0,a.Z)(["\n margin: 0 auto;\n width: 100vw;\n height: 100vh;\n font-family: maplestory;\n background-color: ",";\n"]);return U=function(){return e},e}function z(){let e=(0,a.Z)(["\n display: flex;\n flex-direction: row;\n justify-content: center;\n background-color: ",";\n color: ",";\n"]);return z=function(){return e},e}function D(){let e=(0,a.Z)(["\n margin-top: 60px;\n display: flex;\n flex-direction: column;\n align-items: center;\n max-width: 660px;\n width: 100%;\n"]);return D=function(){return e},e}let F=e=>{let{children:t}=e;return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)($,{children:[(0,n.jsx)(h,{}),(0,n.jsxs)(q,{children:[(0,n.jsx)(B,{}),(0,n.jsx)(H,{children:t}),(0,n.jsx)(O,{})]})]})})},$=i.ZP.div.withConfig({componentId:"sc-c845a976-0"})(U(),e=>e.theme.backgroundColor),q=i.ZP.section.withConfig({componentId:"sc-c845a976-1"})(z(),e=>e.theme.backgroundColor,e=>e.theme.mainFontColor),H=i.ZP.article.withConfig({componentId:"sc-c845a976-2"})(D()),W={backgroundColor:"#111111",mainFontColor:"white",layoutBorderColor:"gray",componentFontColor:"#ffec43",componentSubFontColor:"lightgray",componentBackground:"black",componentShadow:"gold",componentHover:"white",loading:"gold",prevNextFont:"#000000",prevNextBackground:"#ffee52",prevNextHover:"#ffed47",noPrevNextFont:"#97904e",noPrevNextBackground:"#fff6a1",buttonFontColor:"gold",buttonBackgroundColor:"",activeButtonColor:"#000000",activeBackgroundColor:"#ffee52"};var Z=r(17119),V=r(67294);let G=()=>{let[e,t]=(0,V.useState)(!1);return(0,V.useEffect)(()=>{let e=()=>{t(!0)},r=()=>{t(!1)};return o.Router.events.on("routeChangeStart",e),o.Router.events.on("routeChangeComplete",r),o.Router.events.on("routeChangeError",r),()=>{o.Router.events.off("routeChangeStart",e),o.Router.events.off("routeChangeComplete",r),o.Router.events.off("routeChangeError",r)}},[]),e};var Y=r(54363);function J(e){let{Component:t,pageProps:r}=e,a=G(),{pathname:s}=(0,o.useRouter)();return(0,n.jsx)(Y.Oy,{children:(0,n.jsx)(i.f6,{theme:W,children:"/profile"!==s?(0,n.jsxs)(F,{children:[(0,n.jsx)(t,{...r}),a?(0,n.jsx)(Z.T,{}):null]}):(0,n.jsx)(t,{...r})})})}},17119:function(e,t,r){"use strict";r.d(t,{T:function(){return s}});var n=r(7297),o=r(85893),i=r(19521);function a(){let e=(0,n.Z)(["\n display: block;\n width: 100%;\n height: 100%;\n position: fixed;\n left: 50%;\n top: 50%;\n z-index: 999;\n transform: translate(-50%, -50%);\n @keyframes spinner {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n & .spinner {\n box-sizing: border-box;\n position: absolute;\n top: 50%;\n left: 50%;\n width: 40px;\n height: 40px;\n margin-top: -32px;\n margin-left: -32px;\n border-radius: 50%;\n border: 3px solid transparent;\n border-top: 3px solid ",";\n border-right: 3px solid ",";\n border-bottom: 3px solid ",";\n animation: spinner 0.6s infinite;\n }\n"]);return a=function(){return e},e}let s=()=>(0,o.jsx)(u,{children:(0,o.jsx)("div",{className:"spinner"})}),u=i.ZP.div.withConfig({componentId:"sc-86b17283-0"})(a(),e=>e.theme.loading,e=>e.theme.loading,e=>e.theme.loading)},21876:function(e){!function(){var t={675:function(e,t){"use strict";t.byteLength=function(e){var t=u(e),r=t[0],n=t[1];return(r+n)*3/4-n},t.toByteArray=function(e){var t,r,i=u(e),a=i[0],s=i[1],c=new o((a+s)*3/4-s),l=0,f=s>0?a-4:a;for(r=0;r>16&255,c[l++]=t>>8&255,c[l++]=255&t;return 2===s&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,c[l++]=255&t),1===s&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t),c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;a>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return i.join("")}(e,a,a+16383>s?s:a+16383));return 1===o?i.push(r[(t=e[n-1])>>2]+r[t<<4&63]+"=="):2===o&&i.push(r[(t=(e[n-2]<<8)+e[n-1])>>10]+r[t>>4&63]+r[t<<2&63]+"="),i.join("")};for(var r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=i.length;a0)throw Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");-1===r&&(r=t);var n=r===t?0:4-r%4;return[r,n]}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},72:function(e,t,r){"use strict";/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT - */var n=r(675),o=r(783),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;function a(e){if(e>2147483647)throw RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return Object.setPrototypeOf(t,s.prototype),t}function s(e,t,r){if("number"==typeof e){if("string"==typeof t)throw TypeError('The "string" argument must be of type string. Received type number');return l(e)}return u(e,t,r)}function u(e,t,r){if("string"==typeof e)return function(e,t){if(("string"!=typeof t||""===t)&&(t="utf8"),!s.isEncoding(t))throw TypeError("Unknown encoding: "+t);var r=0|p(e,t),n=a(r),o=n.write(e,t);return o!==r&&(n=n.slice(0,o)),n}(e,t);if(ArrayBuffer.isView(e))return f(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(R(e,ArrayBuffer)||e&&R(e.buffer,ArrayBuffer)||"undefined"!=typeof SharedArrayBuffer&&(R(e,SharedArrayBuffer)||e&&R(e.buffer,SharedArrayBuffer)))return function(e,t,r){var n;if(t<0||e.byteLength=2147483647)throw RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|e}function p(e,t){if(s.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||R(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var o=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return O(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return j(e).length;default:if(o)return n?-1:O(e).length;t=(""+t).toLowerCase(),o=!0}}function h(e,t,r){var o,i,a=!1;if((void 0===t||t<0)&&(t=0),t>this.length||((void 0===r||r>this.length)&&(r=this.length),r<=0||(r>>>=0)<=(t>>>=0)))return"";for(e||(e="utf8");;)switch(e){case"hex":return function(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var o="",i=t;i2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),(i=r=+r)!=i&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return -1;r=e.length-1}else if(r<0){if(!o)return -1;r=0}if("string"==typeof t&&(t=s.from(t,n)),s.isBuffer(t))return 0===t.length?-1:g(e,t,r,n,o);if("number"==typeof t)return(t&=255,"function"==typeof Uint8Array.prototype.indexOf)?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):g(e,[t],r,n,o);throw TypeError("val must be string, number or Buffer")}function g(e,t,r,n,o){var i,a=1,s=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return -1;a=2,s/=2,u/=2,r/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=r;is&&(r=s-u),i=r;i>=0;i--){for(var f=!0,d=0;d239?4:c>223?3:c>191?2:1;if(o+f<=r)switch(f){case 1:c<128&&(l=c);break;case 2:(192&(i=e[o+1]))==128&&(u=(31&c)<<6|63&i)>127&&(l=u);break;case 3:i=e[o+1],a=e[o+2],(192&i)==128&&(192&a)==128&&(u=(15&c)<<12|(63&i)<<6|63&a)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],(192&i)==128&&(192&a)==128&&(192&s)==128&&(u=(15&c)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,f=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);for(var r="",n=0;nr)throw RangeError("Trying to access beyond buffer length")}function w(e,t,r,n,o,i){if(!s.isBuffer(e))throw TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw RangeError("Index out of range")}function x(e,t,r,n,o,i){if(r+n>e.length||r<0)throw RangeError("Index out of range")}function S(e,t,r,n,i){return t=+t,r>>>=0,i||x(e,t,r,4,34028234663852886e22,-34028234663852886e22),o.write(e,t,r,n,23,4),r+4}function E(e,t,r,n,i){return t=+t,r>>>=0,i||x(e,t,r,8,17976931348623157e292,-17976931348623157e292),o.write(e,t,r,n,52,8),r+8}t.Buffer=s,t.SlowBuffer=function(e){return+e!=e&&(e=0),s.alloc(+e)},t.INSPECT_MAX_BYTES=50,t.kMaxLength=2147483647,s.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),s.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}}),s.poolSize=8192,s.from=function(e,t,r){return u(e,t,r)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array),s.alloc=function(e,t,r){return(c(e),e<=0)?a(e):void 0!==t?"string"==typeof r?a(e).fill(t,r):a(e).fill(t):a(e)},s.allocUnsafe=function(e){return l(e)},s.allocUnsafeSlow=function(e){return l(e)},s.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==s.prototype},s.compare=function(e,t){if(R(e,Uint8Array)&&(e=s.from(e,e.offset,e.byteLength)),R(t,Uint8Array)&&(t=s.from(t,t.offset,t.byteLength)),!s.isBuffer(e)||!s.isBuffer(t))throw TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;for(var r=e.length,n=t.length,o=0,i=Math.min(r,n);or&&(e+=" ... "),""},i&&(s.prototype[i]=s.prototype.inspect),s.prototype.compare=function(e,t,r,n,o){if(R(e,Uint8Array)&&(e=s.from(e,e.offset,e.byteLength)),!s.isBuffer(e))throw TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return -1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,o>>>=0,this===e)return 0;for(var i=o-n,a=r-t,u=Math.min(i,a),c=this.slice(n,o),l=e.slice(t,r),f=0;f>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0);else throw Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var o,i,a,s,u,c,l,f,d,p,h,m,y=this.length-t;if((void 0===r||r>y)&&(r=y),e.length>0&&(r<0||t<0)||t>this.length)throw RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var g=!1;;)switch(n){case"hex":return function(e,t,r,n){r=Number(r)||0;var o=e.length-r;n?(n=Number(n))>o&&(n=o):n=o;var i=t.length;n>i/2&&(n=i/2);for(var a=0;a>8,o.push(r%256),o.push(n);return o}(e,this.length-h),this,h,m);default:if(g)throw TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),g=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},s.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||b(e,t,this.length);for(var n=this[e],o=1,i=0;++i>>=0,t>>>=0,r||b(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},s.prototype.readUInt8=function(e,t){return e>>>=0,t||b(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return e>>>=0,t||b(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return e>>>=0,t||b(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return e>>>=0,t||b(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return e>>>=0,t||b(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||b(e,t,this.length);for(var n=this[e],o=1,i=0;++i=(o*=128)&&(n-=Math.pow(2,8*t)),n},s.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||b(e,t,this.length);for(var n=t,o=1,i=this[e+--n];n>0&&(o*=256);)i+=this[e+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},s.prototype.readInt8=function(e,t){return(e>>>=0,t||b(e,1,this.length),128&this[e])?-((255-this[e]+1)*1):this[e]},s.prototype.readInt16LE=function(e,t){e>>>=0,t||b(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(e,t){e>>>=0,t||b(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(e,t){return e>>>=0,t||b(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return e>>>=0,t||b(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return e>>>=0,t||b(e,4,this.length),o.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return e>>>=0,t||b(e,4,this.length),o.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return e>>>=0,t||b(e,8,this.length),o.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return e>>>=0,t||b(e,8,this.length),o.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){var o=Math.pow(2,8*r)-1;w(this,e,t,r,o,0)}var i=1,a=0;for(this[t]=255&e;++a>>=0,r>>>=0,!n){var o=Math.pow(2,8*r)-1;w(this,e,t,r,o,0)}var i=r-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+r},s.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,1,255,0),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},s.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},s.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},s.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},s.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);w(this,e,t,r,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+r},s.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);w(this,e,t,r,o-1,-o)}var i=r-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+r},s.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},s.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},s.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},s.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},s.prototype.writeFloatLE=function(e,t,r){return S(this,e,t,!0,r)},s.prototype.writeFloatBE=function(e,t,r){return S(this,e,t,!1,r)},s.prototype.writeDoubleLE=function(e,t,r){return E(this,e,t,!0,r)},s.prototype.writeDoubleBE=function(e,t,r){return E(this,e,t,!1,r)},s.prototype.copy=function(e,t,r,n){if(!s.isBuffer(e))throw TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw RangeError("Index out of range");if(n<0)throw RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,n),t);return o},s.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw TypeError("encoding must be a string");if("string"==typeof n&&!s.isEncoding(n))throw TypeError("Unknown encoding: "+n);if(1===e.length){var o,i=e.charCodeAt(0);("utf8"===n&&i<128||"latin1"===n)&&(e=i)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(t<0||this.length>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&r<57344){if(!o){if(r>56319||a+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=(o-55296<<10|r-56320)+65536}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else if(r<1114112){if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}else throw Error("Invalid code point")}return i}function A(e){for(var t=[],r=0;r=t.length)&&!(o>=e.length);++o)t[o+r]=e[o];return o}function R(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}var P=function(){for(var e="0123456789abcdef",t=Array(256),r=0;r<16;++r)for(var n=16*r,o=0;o<16;++o)t[n+o]=e[r]+e[o];return t}()},783:function(e,t){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */t.read=function(e,t,r,n,o){var i,a,s=8*o-n-1,u=(1<>1,l=-7,f=r?o-1:0,d=r?-1:1,p=e[t+f];for(f+=d,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=d,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=n;l>0;a=256*a+e[t+f],f+=d,l-=8);if(0===i)i=1-c;else{if(i===u)return a?NaN:(p?-1:1)*(1/0);a+=Math.pow(2,n),i-=c}return(p?-1:1)*a*Math.pow(2,i-n)},t.write=function(e,t,r,n,o,i){var a,s,u,c=8*i-o-1,l=(1<>1,d=23===o?5960464477539062e-23:0,p=n?0:i-1,h=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(isNaN(t=Math.abs(t))||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),a+f>=1?t+=d/u:t+=d*Math.pow(2,1-f),t*u>=2&&(a++,u/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*u-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[r+p]=255&s,p+=h,s/=256,o-=8);for(a=a<0;e[r+p]=255&a,p+=h,a/=256,c-=8);e[r+p-h]|=128*m}}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var i=r[e]={exports:{}},a=!0;try{t[e](i,i.exports,n),a=!1}finally{a&&delete r[e]}return i.exports}n.ab="//";var o=n(72);e.exports=o}()},79062:function(){},77663:function(e){!function(){var t={229:function(e){var t,r,n,o=e.exports={};function i(){throw Error("setTimeout has not been defined")}function a(){throw Error("clearTimeout has not been defined")}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var u=[],c=!1,l=-1;function f(){c&&n&&(c=!1,n.length?u=n.concat(u):l=-1,u.length&&d())}function d(){if(!c){var e=s(f);c=!0;for(var t=u.length;t;){for(n=u,u=[];++l1)for(var r=1;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};function u(e){return function(t){return n.createElement(c,a({attr:a({},e.attr)},t),function e(t){return t&&t.map(function(t,r){return n.createElement(t.tag,a({key:r},t.attr),e(t.child))})}(e.child))}}function c(e){var t=function(t){var r,o=e.attr,i=e.size,u=e.title,c=s(e,["attr","size","title"]),l=i||t.size||"1em";return t.className&&(r=t.className),e.className&&(r=(r?r+" ":"")+e.className),n.createElement("svg",a({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,o,c,{className:r,style:a(a({color:e.color||t.color},t.style),e.style),height:l,width:l,xmlns:"http://www.w3.org/2000/svg"}),u&&n.createElement("title",null,u),e.children)};return void 0!==i?n.createElement(i.Consumer,null,function(e){return t(e)}):t(o)}},81873:function(e,t,r){"use strict";r.d(t,{fcR:function(){return o},lrj:function(){return i}});var n=r(88357);function o(e){return(0,n.w_)({tag:"svg",attr:{version:"1.1",viewBox:"0 0 17 17"},child:[{tag:"g",attr:{},child:[]},{tag:"path",attr:{d:"M6.719 8.474l7.281 6.097v-12.135l-7.281 6.038zM13 12.429l-4.719-3.951 4.719-3.914v7.865zM3.281 8.478l5.54 4.639-0.643 0.768-6.46-5.41 6.462-5.358 0.639 0.77-5.538 4.591z"}}]})(e)}function i(e){return(0,n.w_)({tag:"svg",attr:{version:"1.1",viewBox:"0 0 17 17"},child:[{tag:"g",attr:{},child:[]},{tag:"path",attr:{d:"M16 3v2h-15v-2h15zM1 10h15v-2h-15v2zM1 15h15v-2h-15v2z"}}]})(e)}},69921:function(e,t){"use strict";/** @license React v16.13.1 + */var n=r(675),o=r(783),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;function a(e){if(e>2147483647)throw RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return Object.setPrototypeOf(t,s.prototype),t}function s(e,t,r){if("number"==typeof e){if("string"==typeof t)throw TypeError('The "string" argument must be of type string. Received type number');return l(e)}return u(e,t,r)}function u(e,t,r){if("string"==typeof e)return function(e,t){if(("string"!=typeof t||""===t)&&(t="utf8"),!s.isEncoding(t))throw TypeError("Unknown encoding: "+t);var r=0|p(e,t),n=a(r),o=n.write(e,t);return o!==r&&(n=n.slice(0,o)),n}(e,t);if(ArrayBuffer.isView(e))return f(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(R(e,ArrayBuffer)||e&&R(e.buffer,ArrayBuffer)||"undefined"!=typeof SharedArrayBuffer&&(R(e,SharedArrayBuffer)||e&&R(e.buffer,SharedArrayBuffer)))return function(e,t,r){var n;if(t<0||e.byteLength=2147483647)throw RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|e}function p(e,t){if(s.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||R(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var o=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return O(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return j(e).length;default:if(o)return n?-1:O(e).length;t=(""+t).toLowerCase(),o=!0}}function h(e,t,r){var o,i,a=!1;if((void 0===t||t<0)&&(t=0),t>this.length||((void 0===r||r>this.length)&&(r=this.length),r<=0||(r>>>=0)<=(t>>>=0)))return"";for(e||(e="utf8");;)switch(e){case"hex":return function(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var o="",i=t;i2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),(i=r=+r)!=i&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return -1;r=e.length-1}else if(r<0){if(!o)return -1;r=0}if("string"==typeof t&&(t=s.from(t,n)),s.isBuffer(t))return 0===t.length?-1:y(e,t,r,n,o);if("number"==typeof t)return(t&=255,"function"==typeof Uint8Array.prototype.indexOf)?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):y(e,[t],r,n,o);throw TypeError("val must be string, number or Buffer")}function y(e,t,r,n,o){var i,a=1,s=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return -1;a=2,s/=2,u/=2,r/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=r;is&&(r=s-u),i=r;i>=0;i--){for(var f=!0,d=0;d239?4:c>223?3:c>191?2:1;if(o+f<=r)switch(f){case 1:c<128&&(l=c);break;case 2:(192&(i=e[o+1]))==128&&(u=(31&c)<<6|63&i)>127&&(l=u);break;case 3:i=e[o+1],a=e[o+2],(192&i)==128&&(192&a)==128&&(u=(15&c)<<12|(63&i)<<6|63&a)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],(192&i)==128&&(192&a)==128&&(192&s)==128&&(u=(15&c)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,f=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);for(var r="",n=0;nr)throw RangeError("Trying to access beyond buffer length")}function w(e,t,r,n,o,i){if(!s.isBuffer(e))throw TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw RangeError("Index out of range")}function x(e,t,r,n,o,i){if(r+n>e.length||r<0)throw RangeError("Index out of range")}function S(e,t,r,n,i){return t=+t,r>>>=0,i||x(e,t,r,4,34028234663852886e22,-34028234663852886e22),o.write(e,t,r,n,23,4),r+4}function E(e,t,r,n,i){return t=+t,r>>>=0,i||x(e,t,r,8,17976931348623157e292,-17976931348623157e292),o.write(e,t,r,n,52,8),r+8}t.Buffer=s,t.SlowBuffer=function(e){return+e!=e&&(e=0),s.alloc(+e)},t.INSPECT_MAX_BYTES=50,t.kMaxLength=2147483647,s.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),s.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}}),s.poolSize=8192,s.from=function(e,t,r){return u(e,t,r)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array),s.alloc=function(e,t,r){return(c(e),e<=0)?a(e):void 0!==t?"string"==typeof r?a(e).fill(t,r):a(e).fill(t):a(e)},s.allocUnsafe=function(e){return l(e)},s.allocUnsafeSlow=function(e){return l(e)},s.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==s.prototype},s.compare=function(e,t){if(R(e,Uint8Array)&&(e=s.from(e,e.offset,e.byteLength)),R(t,Uint8Array)&&(t=s.from(t,t.offset,t.byteLength)),!s.isBuffer(e)||!s.isBuffer(t))throw TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;for(var r=e.length,n=t.length,o=0,i=Math.min(r,n);or&&(e+=" ... "),""},i&&(s.prototype[i]=s.prototype.inspect),s.prototype.compare=function(e,t,r,n,o){if(R(e,Uint8Array)&&(e=s.from(e,e.offset,e.byteLength)),!s.isBuffer(e))throw TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return -1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,o>>>=0,this===e)return 0;for(var i=o-n,a=r-t,u=Math.min(i,a),c=this.slice(n,o),l=e.slice(t,r),f=0;f>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0);else throw Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var o,i,a,s,u,c,l,f,d,p,h,m,g=this.length-t;if((void 0===r||r>g)&&(r=g),e.length>0&&(r<0||t<0)||t>this.length)throw RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var y=!1;;)switch(n){case"hex":return function(e,t,r,n){r=Number(r)||0;var o=e.length-r;n?(n=Number(n))>o&&(n=o):n=o;var i=t.length;n>i/2&&(n=i/2);for(var a=0;a>8,o.push(r%256),o.push(n);return o}(e,this.length-h),this,h,m);default:if(y)throw TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),y=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},s.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||b(e,t,this.length);for(var n=this[e],o=1,i=0;++i>>=0,t>>>=0,r||b(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},s.prototype.readUInt8=function(e,t){return e>>>=0,t||b(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return e>>>=0,t||b(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return e>>>=0,t||b(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return e>>>=0,t||b(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return e>>>=0,t||b(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||b(e,t,this.length);for(var n=this[e],o=1,i=0;++i=(o*=128)&&(n-=Math.pow(2,8*t)),n},s.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||b(e,t,this.length);for(var n=t,o=1,i=this[e+--n];n>0&&(o*=256);)i+=this[e+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},s.prototype.readInt8=function(e,t){return(e>>>=0,t||b(e,1,this.length),128&this[e])?-((255-this[e]+1)*1):this[e]},s.prototype.readInt16LE=function(e,t){e>>>=0,t||b(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(e,t){e>>>=0,t||b(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(e,t){return e>>>=0,t||b(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return e>>>=0,t||b(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return e>>>=0,t||b(e,4,this.length),o.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return e>>>=0,t||b(e,4,this.length),o.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return e>>>=0,t||b(e,8,this.length),o.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return e>>>=0,t||b(e,8,this.length),o.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){var o=Math.pow(2,8*r)-1;w(this,e,t,r,o,0)}var i=1,a=0;for(this[t]=255&e;++a>>=0,r>>>=0,!n){var o=Math.pow(2,8*r)-1;w(this,e,t,r,o,0)}var i=r-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+r},s.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,1,255,0),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},s.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},s.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},s.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},s.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);w(this,e,t,r,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+r},s.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);w(this,e,t,r,o-1,-o)}var i=r-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+r},s.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},s.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},s.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},s.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||w(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},s.prototype.writeFloatLE=function(e,t,r){return S(this,e,t,!0,r)},s.prototype.writeFloatBE=function(e,t,r){return S(this,e,t,!1,r)},s.prototype.writeDoubleLE=function(e,t,r){return E(this,e,t,!0,r)},s.prototype.writeDoubleBE=function(e,t,r){return E(this,e,t,!1,r)},s.prototype.copy=function(e,t,r,n){if(!s.isBuffer(e))throw TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw RangeError("Index out of range");if(n<0)throw RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,n),t);return o},s.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw TypeError("encoding must be a string");if("string"==typeof n&&!s.isEncoding(n))throw TypeError("Unknown encoding: "+n);if(1===e.length){var o,i=e.charCodeAt(0);("utf8"===n&&i<128||"latin1"===n)&&(e=i)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(t<0||this.length>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&r<57344){if(!o){if(r>56319||a+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=(o-55296<<10|r-56320)+65536}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else if(r<1114112){if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}else throw Error("Invalid code point")}return i}function A(e){for(var t=[],r=0;r=t.length)&&!(o>=e.length);++o)t[o+r]=e[o];return o}function R(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}var P=function(){for(var e="0123456789abcdef",t=Array(256),r=0;r<16;++r)for(var n=16*r,o=0;o<16;++o)t[n+o]=e[r]+e[o];return t}()},783:function(e,t){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */t.read=function(e,t,r,n,o){var i,a,s=8*o-n-1,u=(1<>1,l=-7,f=r?o-1:0,d=r?-1:1,p=e[t+f];for(f+=d,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=d,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=n;l>0;a=256*a+e[t+f],f+=d,l-=8);if(0===i)i=1-c;else{if(i===u)return a?NaN:(p?-1:1)*(1/0);a+=Math.pow(2,n),i-=c}return(p?-1:1)*a*Math.pow(2,i-n)},t.write=function(e,t,r,n,o,i){var a,s,u,c=8*i-o-1,l=(1<>1,d=23===o?5960464477539062e-23:0,p=n?0:i-1,h=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(isNaN(t=Math.abs(t))||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),a+f>=1?t+=d/u:t+=d*Math.pow(2,1-f),t*u>=2&&(a++,u/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*u-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[r+p]=255&s,p+=h,s/=256,o-=8);for(a=a<0;e[r+p]=255&a,p+=h,a/=256,c-=8);e[r+p-h]|=128*m}}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var i=r[e]={exports:{}},a=!0;try{t[e](i,i.exports,n),a=!1}finally{a&&delete r[e]}return i.exports}n.ab="//";var o=n(72);e.exports=o}()},79062:function(){},77663:function(e){!function(){var t={229:function(e){var t,r,n,o=e.exports={};function i(){throw Error("setTimeout has not been defined")}function a(){throw Error("clearTimeout has not been defined")}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var u=[],c=!1,l=-1;function f(){c&&n&&(c=!1,n.length?u=n.concat(u):l=-1,u.length&&d())}function d(){if(!c){var e=s(f);c=!0;for(var t=u.length;t;){for(n=u,u=[];++l1)for(var r=1;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};function u(e){return function(t){return n.createElement(c,a({attr:a({},e.attr)},t),function e(t){return t&&t.map(function(t,r){return n.createElement(t.tag,a({key:r},t.attr),e(t.child))})}(e.child))}}function c(e){var t=function(t){var r,o=e.attr,i=e.size,u=e.title,c=s(e,["attr","size","title"]),l=i||t.size||"1em";return t.className&&(r=t.className),e.className&&(r=(r?r+" ":"")+e.className),n.createElement("svg",a({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,o,c,{className:r,style:a(a({color:e.color||t.color},t.style),e.style),height:l,width:l,xmlns:"http://www.w3.org/2000/svg"}),u&&n.createElement("title",null,u),e.children)};return void 0!==i?n.createElement(i.Consumer,null,function(e){return t(e)}):t(o)}},81873:function(e,t,r){"use strict";r.d(t,{fcR:function(){return o},lrj:function(){return i}});var n=r(88357);function o(e){return(0,n.w_)({tag:"svg",attr:{version:"1.1",viewBox:"0 0 17 17"},child:[{tag:"g",attr:{},child:[]},{tag:"path",attr:{d:"M6.719 8.474l7.281 6.097v-12.135l-7.281 6.038zM13 12.429l-4.719-3.951 4.719-3.914v7.865zM3.281 8.478l5.54 4.639-0.643 0.768-6.46-5.41 6.462-5.358 0.639 0.77-5.538 4.591z"}}]})(e)}function i(e){return(0,n.w_)({tag:"svg",attr:{version:"1.1",viewBox:"0 0 17 17"},child:[{tag:"g",attr:{},child:[]},{tag:"path",attr:{d:"M16 3v2h-15v-2h15zM1 10h15v-2h-15v2zM1 15h15v-2h-15v2z"}}]})(e)}},69921:function(e,t){"use strict";/** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var r="function"==typeof Symbol&&Symbol.for,n=r?Symbol.for("react.element"):60103,o=r?Symbol.for("react.portal"):60106,i=r?Symbol.for("react.fragment"):60107,a=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,u=r?Symbol.for("react.provider"):60109,c=r?Symbol.for("react.context"):60110,l=r?Symbol.for("react.async_mode"):60111,f=r?Symbol.for("react.concurrent_mode"):60111,d=r?Symbol.for("react.forward_ref"):60112,p=r?Symbol.for("react.suspense"):60113,h=r?Symbol.for("react.suspense_list"):60120,m=r?Symbol.for("react.memo"):60115,y=r?Symbol.for("react.lazy"):60116,g=r?Symbol.for("react.block"):60121,v=r?Symbol.for("react.fundamental"):60117,b=r?Symbol.for("react.responder"):60118,w=r?Symbol.for("react.scope"):60119;function x(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case l:case f:case i:case s:case a:case p:return e;default:switch(e=e&&e.$$typeof){case c:case d:case y:case m:case u:return e;default:return t}}case o:return t}}}function S(e){return x(e)===f}t.AsyncMode=l,t.ConcurrentMode=f,t.ContextConsumer=c,t.ContextProvider=u,t.Element=n,t.ForwardRef=d,t.Fragment=i,t.Lazy=y,t.Memo=m,t.Portal=o,t.Profiler=s,t.StrictMode=a,t.Suspense=p,t.isAsyncMode=function(e){return S(e)||x(e)===l},t.isConcurrentMode=S,t.isContextConsumer=function(e){return x(e)===c},t.isContextProvider=function(e){return x(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return x(e)===d},t.isFragment=function(e){return x(e)===i},t.isLazy=function(e){return x(e)===y},t.isMemo=function(e){return x(e)===m},t.isPortal=function(e){return x(e)===o},t.isProfiler=function(e){return x(e)===s},t.isStrictMode=function(e){return x(e)===a},t.isSuspense=function(e){return x(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===i||e===f||e===s||e===a||e===p||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===m||e.$$typeof===u||e.$$typeof===c||e.$$typeof===d||e.$$typeof===v||e.$$typeof===b||e.$$typeof===w||e.$$typeof===g)},t.typeOf=x},59864:function(e,t,r){"use strict";e.exports=r(69921)},1852:function(e,t,r){var n;e.exports=(n=r(67294),(()=>{var e={"./node_modules/css-mediaquery/index.js":(e,t)=>{"use strict";t.match=function(e,t){return s(e).some(function(e){var r=e.inverse,n="all"===e.type||t.type===e.type;if(n&&r||!(n||r))return!1;var o=e.expressions.every(function(e){var r=e.feature,n=e.modifier,o=e.value,i=t[r];if(!i)return!1;switch(r){case"orientation":case"scan":return i.toLowerCase()===o.toLowerCase();case"width":case"height":case"device-width":case"device-height":o=l(o),i=l(i);break;case"resolution":o=c(o),i=c(i);break;case"aspect-ratio":case"device-aspect-ratio":case"device-pixel-ratio":o=u(o),i=u(i);break;case"grid":case"color":case"color-index":case"monochrome":o=parseInt(o,10)||1,i=parseInt(i,10)||0}switch(n){case"min":return i>=o;case"max":return i<=o;default:return i===o}});return o&&!r||!o&&r})},t.parse=s;var r=/(?:(only|not)?\s*([^\s\(\)]+)(?:\s*and)?\s*)?(.+)?/i,n=/\(\s*([^\s\:\)]+)\s*(?:\:\s*([^\s\)]+))?\s*\)/,o=/^(?:(min|max)-)?(.+)/,i=/(em|rem|px|cm|mm|in|pt|pc)?$/,a=/(dpi|dpcm|dppx)?$/;function s(e){return e.split(",").map(function(e){var t=(e=e.trim()).match(r),i=t[1],a=t[2],s=t[3]||"",u={};return u.inverse=!!i&&"not"===i.toLowerCase(),u.type=a?a.toLowerCase():"all",s=s.match(/\([^\)]+\)/g)||[],u.expressions=s.map(function(e){var t=e.match(n),r=t[1].toLowerCase().match(o);return{modifier:r[1],feature:r[2],value:t[2]}}),u})}function u(e){var t,r=Number(e);return r||(r=(t=e.match(/^(\d+)\s*\/\s*(\d+)$/))[1]/t[2]),r}function c(e){var t=parseFloat(e);switch(String(e).match(a)[1]){case"dpcm":return t/2.54;case"dppx":return 96*t;default:return t}}function l(e){var t=parseFloat(e);switch(String(e).match(i)[1]){case"em":case"rem":return 16*t;case"cm":return 96*t/2.54;case"mm":return 96*t/2.54/10;case"in":return 96*t;case"pt":return 72*t;case"pc":return 72*t/12;default:return t}}},"./node_modules/hyphenate-style-name/index.js":(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});var n=/[A-Z]/g,o=/^ms-/,i={};function a(e){return"-"+e.toLowerCase()}let s=function(e){if(i.hasOwnProperty(e))return i[e];var t=e.replace(n,a);return i[e]=o.test(t)?"-"+t:t}},"./node_modules/matchmediaquery/index.js":(e,t,r)=>{"use strict";var n=r(/*! css-mediaquery */"./node_modules/css-mediaquery/index.js").match,o="undefined"!=typeof window?window.matchMedia:null;function i(e,t,r){var i=this;if(o&&!r){var a=o.call(window,e);this.matches=a.matches,this.media=a.media,a.addListener(s)}else this.matches=n(e,t),this.media=e;function s(e){i.matches=e.matches,i.media=e.media}this.addListener=function(e){a&&a.addListener(e)},this.removeListener=function(e){a&&a.removeListener(e)},this.dispose=function(){a&&a.removeListener(s)}}e.exports=function(e,t,r){return new i(e,t,r)}},"./node_modules/object-assign/index.js":e=>{"use strict";/* + */var r="function"==typeof Symbol&&Symbol.for,n=r?Symbol.for("react.element"):60103,o=r?Symbol.for("react.portal"):60106,i=r?Symbol.for("react.fragment"):60107,a=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,u=r?Symbol.for("react.provider"):60109,c=r?Symbol.for("react.context"):60110,l=r?Symbol.for("react.async_mode"):60111,f=r?Symbol.for("react.concurrent_mode"):60111,d=r?Symbol.for("react.forward_ref"):60112,p=r?Symbol.for("react.suspense"):60113,h=r?Symbol.for("react.suspense_list"):60120,m=r?Symbol.for("react.memo"):60115,g=r?Symbol.for("react.lazy"):60116,y=r?Symbol.for("react.block"):60121,v=r?Symbol.for("react.fundamental"):60117,b=r?Symbol.for("react.responder"):60118,w=r?Symbol.for("react.scope"):60119;function x(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case l:case f:case i:case s:case a:case p:return e;default:switch(e=e&&e.$$typeof){case c:case d:case g:case m:case u:return e;default:return t}}case o:return t}}}function S(e){return x(e)===f}t.AsyncMode=l,t.ConcurrentMode=f,t.ContextConsumer=c,t.ContextProvider=u,t.Element=n,t.ForwardRef=d,t.Fragment=i,t.Lazy=g,t.Memo=m,t.Portal=o,t.Profiler=s,t.StrictMode=a,t.Suspense=p,t.isAsyncMode=function(e){return S(e)||x(e)===l},t.isConcurrentMode=S,t.isContextConsumer=function(e){return x(e)===c},t.isContextProvider=function(e){return x(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return x(e)===d},t.isFragment=function(e){return x(e)===i},t.isLazy=function(e){return x(e)===g},t.isMemo=function(e){return x(e)===m},t.isPortal=function(e){return x(e)===o},t.isProfiler=function(e){return x(e)===s},t.isStrictMode=function(e){return x(e)===a},t.isSuspense=function(e){return x(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===i||e===f||e===s||e===a||e===p||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===u||e.$$typeof===c||e.$$typeof===d||e.$$typeof===v||e.$$typeof===b||e.$$typeof===w||e.$$typeof===y)},t.typeOf=x},59864:function(e,t,r){"use strict";e.exports=r(69921)},1852:function(e,t,r){var n;e.exports=(n=r(67294),(()=>{var e={"./node_modules/css-mediaquery/index.js":(e,t)=>{"use strict";t.match=function(e,t){return s(e).some(function(e){var r=e.inverse,n="all"===e.type||t.type===e.type;if(n&&r||!(n||r))return!1;var o=e.expressions.every(function(e){var r=e.feature,n=e.modifier,o=e.value,i=t[r];if(!i)return!1;switch(r){case"orientation":case"scan":return i.toLowerCase()===o.toLowerCase();case"width":case"height":case"device-width":case"device-height":o=l(o),i=l(i);break;case"resolution":o=c(o),i=c(i);break;case"aspect-ratio":case"device-aspect-ratio":case"device-pixel-ratio":o=u(o),i=u(i);break;case"grid":case"color":case"color-index":case"monochrome":o=parseInt(o,10)||1,i=parseInt(i,10)||0}switch(n){case"min":return i>=o;case"max":return i<=o;default:return i===o}});return o&&!r||!o&&r})},t.parse=s;var r=/(?:(only|not)?\s*([^\s\(\)]+)(?:\s*and)?\s*)?(.+)?/i,n=/\(\s*([^\s\:\)]+)\s*(?:\:\s*([^\s\)]+))?\s*\)/,o=/^(?:(min|max)-)?(.+)/,i=/(em|rem|px|cm|mm|in|pt|pc)?$/,a=/(dpi|dpcm|dppx)?$/;function s(e){return e.split(",").map(function(e){var t=(e=e.trim()).match(r),i=t[1],a=t[2],s=t[3]||"",u={};return u.inverse=!!i&&"not"===i.toLowerCase(),u.type=a?a.toLowerCase():"all",s=s.match(/\([^\)]+\)/g)||[],u.expressions=s.map(function(e){var t=e.match(n),r=t[1].toLowerCase().match(o);return{modifier:r[1],feature:r[2],value:t[2]}}),u})}function u(e){var t,r=Number(e);return r||(r=(t=e.match(/^(\d+)\s*\/\s*(\d+)$/))[1]/t[2]),r}function c(e){var t=parseFloat(e);switch(String(e).match(a)[1]){case"dpcm":return t/2.54;case"dppx":return 96*t;default:return t}}function l(e){var t=parseFloat(e);switch(String(e).match(i)[1]){case"em":case"rem":return 16*t;case"cm":return 96*t/2.54;case"mm":return 96*t/2.54/10;case"in":return 96*t;case"pt":return 72*t;case"pc":return 72*t/12;default:return t}}},"./node_modules/hyphenate-style-name/index.js":(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});var n=/[A-Z]/g,o=/^ms-/,i={};function a(e){return"-"+e.toLowerCase()}let s=function(e){if(i.hasOwnProperty(e))return i[e];var t=e.replace(n,a);return i[e]=o.test(t)?"-"+t:t}},"./node_modules/matchmediaquery/index.js":(e,t,r)=>{"use strict";var n=r(/*! css-mediaquery */"./node_modules/css-mediaquery/index.js").match,o="undefined"!=typeof window?window.matchMedia:null;function i(e,t,r){var i=this;if(o&&!r){var a=o.call(window,e);this.matches=a.matches,this.media=a.media,a.addListener(s)}else this.matches=n(e,t),this.media=e;function s(e){i.matches=e.matches,i.media=e.media}this.addListener=function(e){a&&a.addListener(e)},this.removeListener=function(e){a&&a.removeListener(e)},this.dispose=function(){a&&a.removeListener(s)}}e.exports=function(e,t,r){return new i(e,t,r)}},"./node_modules/object-assign/index.js":e=>{"use strict";/* object-assign (c) Sindre Sorhus @license MIT -*/var t=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;e.exports=!function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==n.join(""))return!1;var o={};if("abcdefghijklmnopqrst".split("").forEach(function(e){o[e]=e}),"abcdefghijklmnopqrst"!==Object.keys(Object.assign({},o)).join(""))return!1;return!0}catch(e){return!1}}()?function(e,o){for(var i,a,s=function(e){if(null==e)throw TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),u=1;u{"use strict";var n=function(){},o=r(/*! ./lib/ReactPropTypesSecret */"./node_modules/prop-types/lib/ReactPropTypesSecret.js"),i={},a=r(/*! ./lib/has */"./node_modules/prop-types/lib/has.js");function s(e,t,r,s,u){for(var c in e)if(a(e,c)){var l;try{if("function"!=typeof e[c]){var f=Error((s||"React class")+": "+r+" type `"+c+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[c]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw f.name="Invariant Violation",f}l=e[c](t,c,s,r,null,o)}catch(e){l=e}if(!l||l instanceof Error||n((s||"React class")+": type specification of "+r+" `"+c+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof l+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),l instanceof Error&&!(l.message in i)){i[l.message]=!0;var d=u?u():"";n("Failed "+r+" type: "+l.message+(null!=d?d:""))}}}n=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw Error(t)}catch(e){}},s.resetWarningCache=function(){i={}},e.exports=s},"./node_modules/prop-types/factoryWithTypeCheckers.js":(e,t,r)=>{"use strict";var n=r(/*! react-is */"./node_modules/react-is/index.js"),o=r(/*! object-assign */"./node_modules/object-assign/index.js"),i=r(/*! ./lib/ReactPropTypesSecret */"./node_modules/prop-types/lib/ReactPropTypesSecret.js"),a=r(/*! ./lib/has */"./node_modules/prop-types/lib/has.js"),s=r(/*! ./checkPropTypes */"./node_modules/prop-types/checkPropTypes.js"),u=function(){};function c(){return null}u=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw Error(t)}catch(e){}},e.exports=function(e,t){var r="function"==typeof Symbol&&Symbol.iterator,l="<>",f={array:h("array"),bigint:h("bigint"),bool:h("boolean"),func:h("function"),number:h("number"),object:h("object"),string:h("string"),symbol:h("symbol"),any:p(c),arrayOf:function(e){return p(function(t,r,n,o,a){if("function"!=typeof e)return new d("Property `"+a+"` of component `"+n+"` has invalid PropType notation inside arrayOf.");var s=t[r];if(!Array.isArray(s)){var u=y(s);return new d("Invalid "+o+" `"+a+"` of type `"+u+"` supplied to `"+n+"`, expected an array.")}for(var c=0;c1?u("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):u("Invalid argument supplied to oneOf, expected an array."),c)},oneOfType:function(e){if(!Array.isArray(e))return u("Invalid argument supplied to oneOfType, expected an instance of array."),c;for(var t=0;t0?", expected one of type ["+u.join(", ")+"]":"";return new d("Invalid "+o+" `"+s+"` supplied to `"+n+"`"+f+".")})},shape:function(e){return p(function(t,r,n,o,a){var s=t[r],u=y(s);if("object"!==u)return new d("Invalid "+o+" `"+a+"` of type `"+u+"` supplied to `"+n+"`, expected `object`.");for(var c in e){var l=e[c];if("function"!=typeof l)return m(n,o,a,c,g(l));var f=l(s,c,n,o,a+"."+c,i);if(f)return f}return null})},exact:function(e){return p(function(t,r,n,s,u){var c=t[r],l=y(c);if("object"!==l)return new d("Invalid "+s+" `"+u+"` of type `"+l+"` supplied to `"+n+"`, expected `object`.");var f=o({},t[r],e);for(var p in f){var h=e[p];if(a(e,p)&&"function"!=typeof h)return m(n,s,u,p,g(h));if(!h)return new d("Invalid "+s+" `"+u+"` key `"+p+"` supplied to `"+n+"`.\nBad object: "+JSON.stringify(t[r],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var v=h(c,p,n,s,u+"."+p,i);if(v)return v}return null})}};function d(e,t){this.message=e,this.data=t&&"object"==typeof t?t:{},this.stack=""}function p(e){var r={},n=0;function o(o,a,s,c,f,p,h){if(c=c||l,p=p||s,h!==i){if(t){var m=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw m.name="Invariant Violation",m}if("undefined"!=typeof console){var y=c+":"+s;!r[y]&&n<3&&(u("You are manually calling a React.PropTypes validation function for the `"+p+"` prop on `"+c+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),r[y]=!0,n++)}}return null!=a[s]?e(a,s,c,f,p):o?new d(null===a[s]?"The "+f+" `"+p+"` is marked as required in `"+c+"`, but its value is `null`.":"The "+f+" `"+p+"` is marked as required in `"+c+"`, but its value is `undefined`."):null}var a=o.bind(null,!1);return a.isRequired=o.bind(null,!0),a}function h(e){return p(function(t,r,n,o,i,a){var s=t[r];if(y(s)!==e){var u=g(s);return new d("Invalid "+o+" `"+i+"` of type `"+u+"` supplied to `"+n+"`, expected `"+e+"`.",{expectedType:e})}return null})}function m(e,t,r,n,o){return new d((e||"React class")+": "+t+" type `"+r+"."+n+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+o+"`.")}function y(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":"symbol"===t||e&&("Symbol"===e["@@toStringTag"]||"function"==typeof Symbol&&e instanceof Symbol)?"symbol":t}function g(e){if(null==e)return""+e;var t=y(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}return d.prototype=Error.prototype,f.checkPropTypes=s,f.resetWarningCache=s.resetWarningCache,f.PropTypes=f,f}},"./node_modules/prop-types/index.js":(e,t,r)=>{var n=r(/*! react-is */"./node_modules/react-is/index.js");e.exports=r(/*! ./factoryWithTypeCheckers */"./node_modules/prop-types/factoryWithTypeCheckers.js")(n.isElement,!0)},"./node_modules/prop-types/lib/ReactPropTypesSecret.js":e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},"./node_modules/prop-types/lib/has.js":e=>{e.exports=Function.call.bind(Object.prototype.hasOwnProperty)},"./node_modules/react-is/cjs/react-is.development.js":(e,t)=>{"use strict";!function(){var e="function"==typeof Symbol&&Symbol.for,r=e?Symbol.for("react.element"):60103,n=e?Symbol.for("react.portal"):60106,o=e?Symbol.for("react.fragment"):60107,i=e?Symbol.for("react.strict_mode"):60108,a=e?Symbol.for("react.profiler"):60114,s=e?Symbol.for("react.provider"):60109,u=e?Symbol.for("react.context"):60110,c=e?Symbol.for("react.async_mode"):60111,l=e?Symbol.for("react.concurrent_mode"):60111,f=e?Symbol.for("react.forward_ref"):60112,d=e?Symbol.for("react.suspense"):60113,p=e?Symbol.for("react.suspense_list"):60120,h=e?Symbol.for("react.memo"):60115,m=e?Symbol.for("react.lazy"):60116,y=e?Symbol.for("react.block"):60121,g=e?Symbol.for("react.fundamental"):60117,v=e?Symbol.for("react.responder"):60118,b=e?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:var p=e.type;switch(p){case c:case l:case o:case a:case i:case d:return p;default:var y=p&&p.$$typeof;switch(y){case u:case f:case m:case h:case s:return y;default:return t}}case n:return t}}}var x=!1;function S(e){return w(e)===l}t.AsyncMode=c,t.ConcurrentMode=l,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=m,t.Memo=h,t.Portal=n,t.Profiler=a,t.StrictMode=i,t.Suspense=d,t.isAsyncMode=function(e){return x||(x=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),S(e)||w(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return w(e)===u},t.isContextProvider=function(e){return w(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return w(e)===f},t.isFragment=function(e){return w(e)===o},t.isLazy=function(e){return w(e)===m},t.isMemo=function(e){return w(e)===h},t.isPortal=function(e){return w(e)===n},t.isProfiler=function(e){return w(e)===a},t.isStrictMode=function(e){return w(e)===i},t.isSuspense=function(e){return w(e)===d},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===l||e===a||e===i||e===d||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===g||e.$$typeof===v||e.$$typeof===b||e.$$typeof===y)},t.typeOf=w}()},"./node_modules/react-is/index.js":(e,t,r)=>{"use strict";e.exports=r(/*! ./cjs/react-is.development.js */"./node_modules/react-is/cjs/react-is.development.js")},"./node_modules/shallow-equal/dist/index.esm.js":(e,t,r)=>{"use strict";function n(e,t){if(e===t)return!0;if(!e||!t)return!1;var r=Object.keys(e),n=Object.keys(t),o=r.length;if(n.length!==o)return!1;for(var i=0;io,shallowEqualObjects:()=>n})},"./src/Component.ts":function(e,t,r){"use strict";var n=this&&this.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(r(/*! ./useMediaQuery */"./src/useMediaQuery.ts"));t.default=function(e){var t=e.children,r=e.device,o=e.onChange,a=n(e,["children","device","onChange"]),s=(0,i.default)(a,r,o);return"function"==typeof t?t(s):s?t:null}},"./src/Context.ts":(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=(0,r(/*! react */"react").createContext)(void 0);t.default=n},"./src/index.ts":function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Context=t.toQuery=t.useMediaQuery=t.default=void 0;var o=n(r(/*! ./useMediaQuery */"./src/useMediaQuery.ts"));t.useMediaQuery=o.default;var i=n(r(/*! ./Component */"./src/Component.ts"));t.default=i.default;var a=n(r(/*! ./toQuery */"./src/toQuery.ts"));t.toQuery=a.default;var s=n(r(/*! ./Context */"./src/Context.ts"));t.Context=s.default},"./src/mediaQuery.ts":function(e,t,r){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=i(r(/*! prop-types */"./node_modules/prop-types/index.js")),s=a.default.oneOfType([a.default.string,a.default.number]),u={all:a.default.bool,grid:a.default.bool,aural:a.default.bool,braille:a.default.bool,handheld:a.default.bool,print:a.default.bool,projection:a.default.bool,screen:a.default.bool,tty:a.default.bool,tv:a.default.bool,embossed:a.default.bool},c={orientation:a.default.oneOf(["portrait","landscape"]),scan:a.default.oneOf(["progressive","interlace"]),aspectRatio:a.default.string,deviceAspectRatio:a.default.string,height:s,deviceHeight:s,width:s,deviceWidth:s,color:a.default.bool,colorIndex:a.default.bool,monochrome:a.default.bool,resolution:s,type:Object.keys(u)};c.type;var l=o(c,["type"]),f=n({minAspectRatio:a.default.string,maxAspectRatio:a.default.string,minDeviceAspectRatio:a.default.string,maxDeviceAspectRatio:a.default.string,minHeight:s,maxHeight:s,minDeviceHeight:s,maxDeviceHeight:s,minWidth:s,maxWidth:s,minDeviceWidth:s,maxDeviceWidth:s,minColor:a.default.number,maxColor:a.default.number,minColorIndex:a.default.number,maxColorIndex:a.default.number,minMonochrome:a.default.number,maxMonochrome:a.default.number,minResolution:s,maxResolution:s},l),d=n(n({},u),f);t.default={all:d,types:u,matchers:c,features:f}},"./src/toQuery.ts":function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=n(r(/*! hyphenate-style-name */"./node_modules/hyphenate-style-name/index.js")),i=n(r(/*! ./mediaQuery */"./src/mediaQuery.ts")),a=function(e,t){var r=(0,o.default)(e);return("number"==typeof t&&(t="".concat(t,"px")),!0===t)?r:!1===t?"not ".concat(r):"(".concat(r,": ").concat(t,")")};t.default=function(e){var t=[];return Object.keys(i.default.all).forEach(function(r){var n=e[r];null!=n&&t.push(a(r,n))}),t.join(" and ")}},"./src/useMediaQuery.ts":function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(/*! react */"react"),i=n(r(/*! matchmediaquery */"./node_modules/matchmediaquery/index.js")),a=n(r(/*! hyphenate-style-name */"./node_modules/hyphenate-style-name/index.js")),s=r(/*! shallow-equal */"./node_modules/shallow-equal/dist/index.esm.js"),u=n(r(/*! ./toQuery */"./src/toQuery.ts")),c=n(r(/*! ./Context */"./src/Context.ts")),l=function(e){if(e)return Object.keys(e).reduce(function(t,r){return t[(0,a.default)(r)]=e[r],t},{})},f=function(){var e=(0,o.useRef)(!1);return(0,o.useEffect)(function(){e.current=!0},[]),e.current},d=function(e){var t=(0,o.useContext)(c.default),r=function(){return l(e)||l(t)},n=(0,o.useState)(r),i=n[0],a=n[1];return(0,o.useEffect)(function(){var e=r();(0,s.shallowEqualObjects)(i,e)||a(e)},[e,t]),i},p=function(e){var t=function(){return e.query||(0,u.default)(e)},r=(0,o.useState)(t),n=r[0],i=r[1];return(0,o.useEffect)(function(){var e=t();n!==e&&i(e)},[e]),n},h=function(e,t){var r=function(){return(0,i.default)(e,t||{},!!t)},n=(0,o.useState)(r),a=n[0],s=n[1],u=f();return(0,o.useEffect)(function(){if(u){var e=r();return s(e),function(){e&&e.dispose()}}},[e,t]),a},m=function(e){var t=(0,o.useState)(e.matches),r=t[0],n=t[1];return(0,o.useEffect)(function(){var t=function(e){n(e.matches)};return e.addListener(t),n(e.matches),function(){e.removeListener(t)}},[e]),r};t.default=function(e,t,r){var n=d(t),i=p(e);if(!i)throw Error("Invalid or missing MediaQuery!");var a=h(i,n),s=m(a),u=f();return(0,o.useEffect)(function(){u&&r&&r(s)},[s]),(0,o.useEffect)(function(){return function(){a&&a.dispose()}},[]),s}},react:e=>{"use strict";e.exports=n}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,r),i.exports}return r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r("./src/index.ts")})())},96774:function(e){e.exports=function(e,t,r,n){var o=r?r.call(n,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),u=0;un&&(n=(t=t.trim()).charCodeAt(0)),n){case 38:return t.replace(m,"$1"+e.trim());case 58:return e.trim()+t.replace(m,"$1"+e.trim());default:if(0<1*r&&0u.charCodeAt(8))break;case 115:a=a.replace(u,"-webkit-"+u)+";"+a;break;case 207:case 102:a=a.replace(u,"-webkit-"+(102s.charCodeAt(0)&&(s=s.trim()),s=[s],0p)&&(z=($=$.replace(" ",":")).length),0e.charCodeAt(2)),n[e]}),h=r(8679),m=r.n(h),y=r(83454);function g(){return(g=Object.assign||function(e){for(var t=1;t1?t-1:0),n=1;n0?" Args: "+r.join(", "):""))}var R=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,r=0;r=this.groupSizes.length){for(var r=this.groupSizes,n=r.length,o=n;e>=o;)(o<<=1)<0&&k(16,""+e);this.groupSizes=new Uint32Array(o),this.groupSizes.set(r),this.length=o;for(var i=n;i=this.length||0===this.groupSizes[e])return t;for(var r=this.groupSizes[e],n=this.indexOfGroup(e),o=n+r,i=n;i=T&&(T=t+1),P.set(e,t),_.set(t,e)},L="style["+O+'][data-styled-version="5.3.6"]',N=RegExp("^"+O+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),M=function(e,t,r){for(var n,o=r.split(","),i=0,a=o.length;i=0;r--){var n=t[r];if(n&&1===n.nodeType&&n.hasAttribute(O))return n}}(r),i=void 0!==o?o.nextSibling:null;n.setAttribute(O,"active"),n.setAttribute("data-styled-version","5.3.6");var a=z();return a&&n.setAttribute("nonce",a),r.insertBefore(n,i),n},F=function(){function e(e){var t=this.element=D(e);t.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,r=0,n=t.length;r=0){var r=document.createTextNode(t),n=this.nodes[e];return this.element.insertBefore(r,n||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e0&&(l+=e+",")}),n+=""+u+c+'{content:"'+l+'"}/*!sc*/\n'}}}return n}(this)},e}(),V=/(a)(d)/gi,G=function(e){return String.fromCharCode(e+(e>25?39:97))};function Y(e){var t,r="";for(t=Math.abs(e);t>52;t=t/52|0)r=G(t%52)+r;return(G(t%52)+r).replace(V,"$1-$2")}var J=function(e,t){for(var r=t.length;r;)e=33*e^t.charCodeAt(--r);return e},X=function(e){return J(5381,e)};function K(e){for(var t=0;t>>0);if(!t.hasNameForId(n,a)){var s=r(i,"."+a,void 0,n);t.insertRules(n,a,s)}o.push(a),this.staticRulesId=a}}else{for(var u=this.rules.length,c=J(this.baseHash,r.hash),l="",f=0;f>>0);if(!t.hasNameForId(n,m)){var y=r(l,"."+m,void 0,n);t.insertRules(n,m,y)}o.push(m)}}return o.join(" ")},e}(),et=/^\s*\/\/.*$/gm,er=[":","[",".","#"];function en(e){var t,r,n,o,i=void 0===e?x:e,a=i.options,s=i.plugins,u=void 0===s?w:s,c=new l(void 0===a?x:a),f=[],d=function(e){function t(t){if(t)try{e(t+"}")}catch(e){}}return function(r,n,o,i,a,s,u,c,l,f){switch(r){case 1:if(0===l&&64===n.charCodeAt(0))return e(n+";"),"";break;case 2:if(0===c)return n+"/*|*/";break;case 3:switch(c){case 102:case 112:return e(o[0]+n),"";default:return n+(0===f?"/*|*/":"")}case -2:n.split("/*|*/}").forEach(t)}}}(function(e){f.push(e)}),p=function(e,n,i){return 0===n&&-1!==er.indexOf(i[r.length])||i.match(o)?e:"."+t};function h(e,i,a,s){void 0===s&&(s="&");var u=e.replace(et,"");return t=s,n=RegExp("\\"+(r=i)+"\\b","g"),o=RegExp("(\\"+r+"\\b){2,}"),c(a||!i?"":i,i&&a?a+" "+i+" { "+u+" }":u)}return c.use([].concat(u,[function(e,t,o){2===e&&o.length&&o[0].lastIndexOf(r)>0&&(o[0]=o[0].replace(n,p))},d,function(e){if(-2===e){var t=f;return f=[],t}}])),h.hash=u.length?u.reduce(function(e,t){return t.name||k(15),J(e,t.name)},5381).toString():"",h}var eo=s.createContext(),ei=(eo.Consumer,s.createContext()),ea=(ei.Consumer,new Z),es=en();function eu(){return(0,s.useContext)(eo)||ea}function ec(e){var t=(0,s.useState)(e.stylisPlugins),r=t[0],n=t[1],o=eu(),i=(0,s.useMemo)(function(){var t=o;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t},[e.disableCSSOMInjection,e.sheet,e.target]),a=(0,s.useMemo)(function(){return en({options:{prefix:!e.disableVendorPrefixes},plugins:r})},[e.disableVendorPrefixes,r]);return(0,s.useEffect)(function(){c()(r,e.stylisPlugins)||n(e.stylisPlugins)},[e.stylisPlugins]),s.createElement(eo.Provider,{value:i},s.createElement(ei.Provider,{value:a},e.children))}var el=function(){function e(e,t){var r=this;this.inject=function(e,t){void 0===t&&(t=es);var n=r.name+t.hash;e.hasNameForId(r.id,n)||e.insertRules(r.id,n,t(r.rules,n,"@keyframes"))},this.toString=function(){return k(12,String(r.name))},this.name=e,this.id="sc-keyframes-"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=es),this.name+e.hash},e}(),ef=/([A-Z])/,ed=/([A-Z])/g,ep=/^ms-/,eh=function(e){return"-"+e.toLowerCase()};function em(e){return ef.test(e)?e.replace(ed,eh).replace(ep,"-ms-"):e}var ey=function(e){return null==e||!1===e||""===e};function eg(e,t,r,n){if(Array.isArray(e)){for(var o,i=[],a=0,s=e.length;a1?t-1:0),n=1;n?@[\\\]^`{|}~-]+/g,ex=/(^-|-$)/g;function eS(e){return e.replace(ew,"-").replace(ex,"")}function eE(e){return"string"==typeof e}var eC=function(e){return"function"==typeof e||"object"==typeof e&&null!==e&&!Array.isArray(e)},eO=s.createContext();function eA(e){var t=(0,s.useContext)(eO),r=(0,s.useMemo)(function(){var r;return(r=e.theme)?S(r)?r(t):Array.isArray(r)||"object"!=typeof r?k(8):t?g({},t,{},r):r:k(14)},[e.theme,t]);return e.children?s.createElement(eO.Provider,{value:r},e.children):null}eO.Consumer;var ej={},ek=function(e){return function e(t,r,n){if(void 0===n&&(n=x),!(0,a.isValidElementType)(r))return k(1,String(r));var o=function(){return t(r,n,eb.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,r,g({},n,{},o))},o.attrs=function(o){return e(t,r,g({},n,{attrs:Array.prototype.concat(n.attrs,o).filter(Boolean)}))},o}(function e(t,r,n){var o=C(t),i=!eE(t),a=r.attrs,u=void 0===a?w:a,c=r.componentId,l=void 0===c?(b=r.displayName,O=r.parentComponentId,ej[A="string"!=typeof b?"sc":eS(b)]=(ej[A]||0)+1,j=A+"-"+Y(X("5.3.6"+A+ej[A])>>>0),O?O+"-"+j:j):c,f=r.displayName,d=void 0===f?eE(t)?"styled."+t:"Styled("+E(t)+")":f,h=r.displayName&&r.componentId?eS(r.displayName)+"-"+r.componentId:r.componentId||l,y=o&&t.attrs?Array.prototype.concat(t.attrs,u).filter(Boolean):u,v=r.shouldForwardProp;o&&t.shouldForwardProp&&(v=r.shouldForwardProp?function(e,n,o){return t.shouldForwardProp(e,n,o)&&r.shouldForwardProp(e,n,o)}:t.shouldForwardProp);var b,O,A,j,k,R=new ee(n,h,o?t.componentStyle:void 0),P=R.isStatic&&0===u.length,_=function(e,t){return function(e,t,r,n){var o,i,a,u,c,l,f,d=e.attrs,h=e.componentStyle,m=e.defaultProps,y=e.foldedComponentIds,v=e.shouldForwardProp,b=e.styledComponentId,w=e.target,E=(o=(0,s.useContext)(eO),void 0===(i=m)&&(i=x),void 0===(a=t.theme!==i.theme&&t.theme||o||i.theme||x)&&(a=x),u=g({},t,{theme:a}),c={},d.forEach(function(e){var t,r,n,o=e;for(t in S(o)&&(o=o(u)),o)u[t]=c[t]="className"===t?(r=c[t],n=o[t],r&&n?r+" "+n:r||n):o[t]}),[u,c]),C=E[0],O=E[1],A=(l=eu(),f=(0,s.useContext)(ei)||es,n?h.generateAndInjectStyles(x,l,f):h.generateAndInjectStyles(C,l,f)),j=O.$as||t.$as||O.as||t.as||w,k=eE(j),R=O!==t?g({},t,{},O):t,P={};for(var _ in R)"$"!==_[0]&&"as"!==_&&("forwardedAs"===_?P.as=R[_]:(v?v(_,p,j):!k||p(_))&&(P[_]=R[_]));return t.style&&O.style!==t.style&&(P.style=g({},t.style,{},O.style)),P.className=Array.prototype.concat(y,b,A!==b?A:null,t.className,O.className).filter(Boolean).join(" "),P.ref=r,(0,s.createElement)(j,P)}(k,e,t,P)};return _.displayName=d,(k=s.forwardRef(_)).attrs=y,k.componentStyle=R,k.displayName=d,k.shouldForwardProp=v,k.foldedComponentIds=o?Array.prototype.concat(t.foldedComponentIds,t.styledComponentId):w,k.styledComponentId=h,k.target=o?t.target:t,k.withComponent=function(t){var o=r.componentId,i=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(r,["componentId"]),a=o&&o+"-"+(eE(t)?t:eS(E(t)));return e(t,g({},i,{attrs:y,componentId:a}),n)},Object.defineProperty(k,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(e){this._foldedDefaultProps=o?function e(t){for(var r=arguments.length,n=Array(r>1?r-1:0),o=1;o2&&Z.registerId(this.componentId+e),this.removeStyles(e,r),this.createStyles(e,t,r,n)},(i=(function(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return"";var r=z();return""},this.getStyleTags=function(){return e.sealed?k(2):e._emitSheetCSS()},this.getStyleElement=function(){if(e.sealed)return k(2);var t,r=((t={})[O]="",t["data-styled-version"]="5.3.6",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),n=z();return n&&(r.nonce=n),[s.createElement("style",g({},r,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new Z({isServer:!0}),this.sealed=!1}).prototype).collectStyles=function(e){return this.sealed?k(2):s.createElement(ec,{sheet:this.instance},e)},i.interleaveWithNodeStream=function(e){return k(3)};var eR=ek},7297:function(e,t,r){"use strict";function n(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}r.d(t,{Z:function(){return n}})},6154:function(e,t,r){"use strict";let n;function o(e,t){return function(){return e.apply(t,arguments)}}r.d(t,{Z:function(){return e6}});let{toString:i}=Object.prototype,{getPrototypeOf:a}=Object,s=(Q=Object.create(null),e=>{let t=i.call(e);return Q[t]||(Q[t]=t.slice(8,-1).toLowerCase())}),u=e=>(e=e.toLowerCase(),t=>s(t)===e),c=e=>t=>typeof t===e,{isArray:l}=Array,f=c("undefined"),d=u("ArrayBuffer"),p=c("string"),h=c("function"),m=c("number"),y=e=>null!==e&&"object"==typeof e,g=e=>{if("object"!==s(e))return!1;let t=a(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},v=u("Date"),b=u("File"),w=u("Blob"),x=u("FileList"),S=e=>y(e)&&h(e.pipe),E=e=>{let t="[object FormData]";return e&&("function"==typeof FormData&&e instanceof FormData||i.call(e)===t||h(e.toString)&&e.toString()===t)},C=u("URLSearchParams"),O=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function A(e,t,{allOwnKeys:r=!1}={}){let n,o;if(null!=e){if("object"!=typeof e&&(e=[e]),l(e))for(n=0,o=e.length;n0;)if(t===(r=n[o]).toLowerCase())return r;return null}let k="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,R=e=>!f(e)&&e!==k,P=(e,t,r,{allOwnKeys:n}={})=>(A(t,(t,n)=>{r&&h(t)?e[n]=o(t,r):e[n]=t},{allOwnKeys:n}),e),_=e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),T=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},I=(e,t,r,n)=>{let o,i,s;let u={};if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)s=o[i],(!n||n(s,e,t))&&!u[s]&&(t[s]=e[s],u[s]=!0);e=!1!==r&&a(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},B=(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;let n=e.indexOf(t,r);return -1!==n&&n===r},L=e=>{if(!e)return null;if(l(e))return e;let t=e.length;if(!m(t))return null;let r=Array(t);for(;t-- >0;)r[t]=e[t];return r},N=(ee="undefined"!=typeof Uint8Array&&a(Uint8Array),e=>ee&&e instanceof ee),M=(e,t)=>{let r;let n=e&&e[Symbol.iterator],o=n.call(e);for(;(r=o.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},U=(e,t)=>{let r;let n=[];for(;null!==(r=e.exec(t));)n.push(r);return n},z=u("HTMLFormElement"),D=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,r){return t.toUpperCase()+r}),F=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),$=u("RegExp"),q=(e,t)=>{let r=Object.getOwnPropertyDescriptors(e),n={};A(r,(r,o)=>{!1!==t(r,o,e)&&(n[o]=r)}),Object.defineProperties(e,n)},H=e=>{q(e,(t,r)=>{if(h(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;let n=e[r];if(h(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},W=(e,t)=>{let r={};return(e=>{e.forEach(e=>{r[e]=!0})})(l(e)?e:String(e).split(t)),r},Z=()=>{},V=(e,t)=>Number.isFinite(e=+e)?e:t,G="abcdefghijklmnopqrstuvwxyz",Y="0123456789",J={DIGIT:Y,ALPHA:G,ALPHA_DIGIT:G+G.toUpperCase()+Y},X=(e=16,t=J.ALPHA_DIGIT)=>{let r="",{length:n}=t;for(;e--;)r+=t[Math.random()*n|0];return r},K=e=>{let t=Array(10),r=(e,n)=>{if(y(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;let o=l(e)?[]:{};return A(e,(e,t)=>{let i=r(e,n+1);f(i)||(o[t]=i)}),t[n]=void 0,o}}return e};return r(e,0)};var Q,ee,et={isArray:l,isArrayBuffer:d,isBuffer:function(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&h(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:E,isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&d(e.buffer)},isString:p,isNumber:m,isBoolean:e=>!0===e||!1===e,isObject:y,isPlainObject:g,isUndefined:f,isDate:v,isFile:b,isBlob:w,isRegExp:$,isFunction:h,isStream:S,isURLSearchParams:C,isTypedArray:N,isFileList:x,forEach:A,merge:function e(){let{caseless:t}=R(this)&&this||{},r={},n=(n,o)=>{let i=t&&j(r,o)||o;g(r[i])&&g(n)?r[i]=e(r[i],n):g(n)?r[i]=e({},n):l(n)?r[i]=n.slice():r[i]=n};for(let e=0,t=arguments.length;e{eo[e]={value:e}}),Object.defineProperties(er,eo),Object.defineProperty(en,"isAxiosError",{value:!0}),er.from=(e,t,r,n,o,i)=>{let a=Object.create(en);return et.toFlatObject(e,a,function(e){return e!==Error.prototype},e=>"isAxiosError"!==e),er.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};var ei=r(21876).Buffer;function ea(e){return et.isPlainObject(e)||et.isArray(e)}function es(e){return et.endsWith(e,"[]")?e.slice(0,-2):e}function eu(e,t,r){return e?e.concat(t).map(function(e,t){return e=es(e),!r&&t?"["+e+"]":e}).join(r?".":""):t}let ec=et.toFlatObject(et,{},null,function(e){return/^is[A-Z]/.test(e)});var el=function(e,t,r){if(!et.isObject(e))throw TypeError("target must be an object");t=t||new FormData,r=et.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!et.isUndefined(t[e])});let n=r.metaTokens,o=r.visitor||l,i=r.dots,a=r.indexes,s=r.Blob||"undefined"!=typeof Blob&&Blob,u=s&&et.isSpecCompliantForm(t);if(!et.isFunction(o))throw TypeError("visitor must be a function");function c(e){if(null===e)return"";if(et.isDate(e))return e.toISOString();if(!u&&et.isBlob(e))throw new er("Blob is not supported. Use a Buffer instead.");return et.isArrayBuffer(e)||et.isTypedArray(e)?u&&"function"==typeof Blob?new Blob([e]):ei.from(e):e}function l(e,r,o){let s=e;if(e&&!o&&"object"==typeof e){if(et.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else{var u;if(et.isArray(e)&&(u=e,et.isArray(u)&&!u.some(ea))||(et.isFileList(e)||et.endsWith(r,"[]"))&&(s=et.toArray(e)))return r=es(r),s.forEach(function(e,n){et.isUndefined(e)||null===e||t.append(!0===a?eu([r],n,i):null===a?r:r+"[]",c(e))}),!1}}return!!ea(e)||(t.append(eu(o,r,i),c(e)),!1)}let f=[],d=Object.assign(ec,{defaultVisitor:l,convertValue:c,isVisitable:ea});if(!et.isObject(e))throw TypeError("data must be an object");return!function e(r,n){if(!et.isUndefined(r)){if(-1!==f.indexOf(r))throw Error("Circular reference detected in "+n.join("."));f.push(r),et.forEach(r,function(r,i){let a=!(et.isUndefined(r)||null===r)&&o.call(t,r,et.isString(i)?i.trim():i,n,d);!0===a&&e(r,n?n.concat(i):[i])}),f.pop()}}(e),t};function ef(e){let t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\x00"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(e){return t[e]})}function ed(e,t){this._pairs=[],e&&el(e,this,t)}let ep=ed.prototype;function eh(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function em(e,t,r){let n;if(!t)return e;let o=r&&r.encode||eh,i=r&&r.serialize;if(n=i?i(t,r):et.isURLSearchParams(t)?t.toString():new ed(t,r).toString(o)){let t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e}ep.append=function(e,t){this._pairs.push([e,t])},ep.toString=function(e){let t=e?function(t){return e.call(this,t,ef)}:ef;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};var ey=class{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){et.forEach(this.handlers,function(t){null!==t&&e(t)})}},eg={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ev="undefined"!=typeof URLSearchParams?URLSearchParams:ed,eb="undefined"!=typeof FormData?FormData:null,ew="undefined"!=typeof Blob?Blob:null;let ex=("undefined"==typeof navigator||"ReactNative"!==(n=navigator.product)&&"NativeScript"!==n&&"NS"!==n)&&"undefined"!=typeof window&&"undefined"!=typeof document,eS="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts;var eE={isBrowser:!0,classes:{URLSearchParams:ev,FormData:eb,Blob:ew},isStandardBrowserEnv:ex,isStandardBrowserWebWorkerEnv:eS,protocols:["http","https","file","blob","url","data"]},eC=function(e){if(et.isFormData(e)&&et.isFunction(e.entries)){let t={};return et.forEachEntry(e,(e,r)=>{!function e(t,r,n,o){let i=t[o++],a=Number.isFinite(+i),s=o>=t.length;if(i=!i&&et.isArray(n)?n.length:i,s)return et.hasOwnProp(n,i)?n[i]=[n[i],r]:n[i]=r,!a;n[i]&&et.isObject(n[i])||(n[i]=[]);let u=e(t,r,n[i],o);return u&&et.isArray(n[i])&&(n[i]=function(e){let t,r;let n={},o=Object.keys(e),i=o.length;for(t=0;t"[]"===e[0]?"":e[1]||e[0]),r,t,0)}),t}return null};let eO={"Content-Type":void 0},eA={transitional:eg,adapter:["xhr","http"],transformRequest:[function(e,t){let r;let n=t.getContentType()||"",o=n.indexOf("application/json")>-1,i=et.isObject(e);i&&et.isHTMLForm(e)&&(e=new FormData(e));let a=et.isFormData(e);if(a)return o&&o?JSON.stringify(eC(e)):e;if(et.isArrayBuffer(e)||et.isBuffer(e)||et.isStream(e)||et.isFile(e)||et.isBlob(e))return e;if(et.isArrayBufferView(e))return e.buffer;if(et.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1){var s,u;return(s=e,u=this.formSerializer,el(s,new eE.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return eE.isNode&&et.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},u))).toString()}if((r=et.isFileList(e))||n.indexOf("multipart/form-data")>-1){let t=this.env&&this.env.FormData;return el(r?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||o?(t.setContentType("application/json",!1),function(e,t,r){if(et.isString(e))try{return(0,JSON.parse)(e),et.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){let t=this.transitional||eA.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(e&&et.isString(e)&&(r&&!this.responseType||n)){let r=t&&t.silentJSONParsing;try{return JSON.parse(e)}catch(e){if(!r&&n){if("SyntaxError"===e.name)throw er.from(e,er.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:eE.classes.FormData,Blob:eE.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};et.forEach(["delete","get","head"],function(e){eA.headers[e]={}}),et.forEach(["post","put","patch"],function(e){eA.headers[e]=et.merge(eO)});let ej=et.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var ek=e=>{let t,r,n;let o={};return e&&e.split("\n").forEach(function(e){n=e.indexOf(":"),t=e.substring(0,n).trim().toLowerCase(),r=e.substring(n+1).trim(),!t||o[t]&&ej[t]||("set-cookie"===t?o[t]?o[t].push(r):o[t]=[r]:o[t]=o[t]?o[t]+", "+r:r)}),o};let eR=Symbol("internals");function eP(e){return e&&String(e).trim().toLowerCase()}function e_(e){return!1===e||null==e?e:et.isArray(e)?e.map(e_):String(e)}function eT(e,t,r,n,o){if(et.isFunction(n))return n.call(this,t,r);if(o&&(t=r),et.isString(t)){if(et.isString(n))return -1!==t.indexOf(n);if(et.isRegExp(n))return n.test(t)}}class eI{constructor(e){e&&this.set(e)}set(e,t,r){let n=this;function o(e,t,r){let o=eP(t);if(!o)throw Error("header name must be a non-empty string");let i=et.findKey(n,o);i&&void 0!==n[i]&&!0!==r&&(void 0!==r||!1===n[i])||(n[i||t]=e_(e))}let i=(e,t)=>et.forEach(e,(e,r)=>o(e,r,t));if(et.isPlainObject(e)||e instanceof this.constructor)i(e,t);else{var a;et.isString(e)&&(e=e.trim())&&(a=e,!/^[-_a-zA-Z]+$/.test(a.trim()))?i(ek(e),t):null!=e&&o(t,e,r)}return this}get(e,t){if(e=eP(e)){let r=et.findKey(this,e);if(r){let e=this[r];if(!t)return e;if(!0===t)return function(e){let t;let r=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;for(;t=n.exec(e);)r[t[1]]=t[2];return r}(e);if(et.isFunction(t))return t.call(this,e,r);if(et.isRegExp(t))return t.exec(e);throw TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=eP(e)){let r=et.findKey(this,e);return!!(r&&void 0!==this[r]&&(!t||eT(this,this[r],r,t)))}return!1}delete(e,t){let r=this,n=!1;function o(e){if(e=eP(e)){let o=et.findKey(r,e);o&&(!t||eT(r,r[o],o,t))&&(delete r[o],n=!0)}}return et.isArray(e)?e.forEach(o):o(e),n}clear(e){let t=Object.keys(this),r=t.length,n=!1;for(;r--;){let o=t[r];(!e||eT(this,this[o],o,e,!0))&&(delete this[o],n=!0)}return n}normalize(e){let t=this,r={};return et.forEach(this,(n,o)=>{let i=et.findKey(r,o);if(i){t[i]=e_(n),delete t[o];return}let a=e?o.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,r)=>t.toUpperCase()+r):String(o).trim();a!==o&&delete t[o],t[a]=e_(n),r[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return et.forEach(this,(r,n)=>{null!=r&&!1!==r&&(t[n]=e&&et.isArray(r)?r.join(", "):r)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){let r=new this(e);return t.forEach(e=>r.set(e)),r}static accessor(e){let t=this[eR]=this[eR]={accessors:{}},r=t.accessors,n=this.prototype;function o(e){let t=eP(e);r[t]||(!function(e,t){let r=et.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+r,{value:function(e,r,o){return this[n].call(this,t,e,r,o)},configurable:!0})})}(n,e),r[t]=!0)}return et.isArray(e)?e.forEach(o):o(e),this}}function eB(e,t){let r=this||eA,n=t||r,o=eI.from(n.headers),i=n.data;return et.forEach(e,function(e){i=e.call(r,i,o.normalize(),t?t.status:void 0)}),o.normalize(),i}function eL(e){return!!(e&&e.__CANCEL__)}function eN(e,t,r){er.call(this,null==e?"canceled":e,er.ERR_CANCELED,t,r),this.name="CanceledError"}eI.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),et.freezeMethods(eI.prototype),et.freezeMethods(eI),et.inherits(eN,er,{__CANCEL__:!0});var eM=eE.isStandardBrowserEnv?{write:function(e,t,r,n,o,i){let a=[];a.push(e+"="+encodeURIComponent(t)),et.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),et.isString(n)&&a.push("path="+n),et.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){let t=document.cookie.match(RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function eU(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e:t}var ez=eE.isStandardBrowserEnv?function(){let e;let t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function n(e){let n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return e=n(window.location.href),function(t){let r=et.isString(t)?n(t):t;return r.protocol===e.protocol&&r.host===e.host}}():function(){return!0},eD=function(e,t){let r;e=e||10;let n=Array(e),o=Array(e),i=0,a=0;return t=void 0!==t?t:1e3,function(s){let u=Date.now(),c=o[a];r||(r=u),n[i]=s,o[i]=u;let l=a,f=0;for(;l!==i;)f+=n[l++],l%=e;if((i=(i+1)%e)===a&&(a=(a+1)%e),u-r{let i=o.loaded,a=o.lengthComputable?o.total:void 0,s=i-r,u=n(s);r=i;let c={loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&i<=a?(a-i)/u:void 0,event:o};c[t?"download":"upload"]=!0,e(c)}}let e$="undefined"!=typeof XMLHttpRequest;var eq=e$&&function(e){return new Promise(function(t,r){let n,o=e.data,i=eI.from(e.headers).normalize(),a=e.responseType;function s(){e.cancelToken&&e.cancelToken.unsubscribe(n),e.signal&&e.signal.removeEventListener("abort",n)}et.isFormData(o)&&(eE.isStandardBrowserEnv||eE.isStandardBrowserWebWorkerEnv)&&i.setContentType(!1);let u=new XMLHttpRequest;if(e.auth){let t=e.auth.username||"",r=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.set("Authorization","Basic "+btoa(t+":"+r))}let c=eU(e.baseURL,e.url);function l(){if(!u)return;let n=eI.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders()),o=a&&"text"!==a&&"json"!==a?u.response:u.responseText,i={data:o,status:u.status,statusText:u.statusText,headers:n,config:e,request:u};!function(e,t,r){let n=r.config.validateStatus;!r.status||!n||n(r.status)?e(r):t(new er("Request failed with status code "+r.status,[er.ERR_BAD_REQUEST,er.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}(function(e){t(e),s()},function(e){r(e),s()},i),u=null}if(u.open(e.method.toUpperCase(),em(c,e.params,e.paramsSerializer),!0),u.timeout=e.timeout,"onloadend"in u?u.onloadend=l:u.onreadystatechange=function(){u&&4===u.readyState&&(0!==u.status||u.responseURL&&0===u.responseURL.indexOf("file:"))&&setTimeout(l)},u.onabort=function(){u&&(r(new er("Request aborted",er.ECONNABORTED,e,u)),u=null)},u.onerror=function(){r(new er("Network Error",er.ERR_NETWORK,e,u)),u=null},u.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",n=e.transitional||eg;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),r(new er(t,n.clarifyTimeoutError?er.ETIMEDOUT:er.ECONNABORTED,e,u)),u=null},eE.isStandardBrowserEnv){let t=(e.withCredentials||ez(c))&&e.xsrfCookieName&&eM.read(e.xsrfCookieName);t&&i.set(e.xsrfHeaderName,t)}void 0===o&&i.setContentType(null),"setRequestHeader"in u&&et.forEach(i.toJSON(),function(e,t){u.setRequestHeader(t,e)}),et.isUndefined(e.withCredentials)||(u.withCredentials=!!e.withCredentials),a&&"json"!==a&&(u.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&u.addEventListener("progress",eF(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&u.upload&&u.upload.addEventListener("progress",eF(e.onUploadProgress)),(e.cancelToken||e.signal)&&(n=t=>{u&&(r(!t||t.type?new eN(null,e,u):t),u.abort(),u=null)},e.cancelToken&&e.cancelToken.subscribe(n),e.signal&&(e.signal.aborted?n():e.signal.addEventListener("abort",n)));let f=function(e){let t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(c);if(f&&-1===eE.protocols.indexOf(f)){r(new er("Unsupported protocol "+f+":",er.ERR_BAD_REQUEST,e));return}u.send(o||null)})};let eH={http:null,xhr:eq};et.forEach(eH,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}});var eW={getAdapter:e=>{let t,r;e=et.isArray(e)?e:[e];let{length:n}=e;for(let o=0;oe instanceof eI?e.toJSON():e;function eY(e,t){t=t||{};let r={};function n(e,t,r){return et.isPlainObject(e)&&et.isPlainObject(t)?et.merge.call({caseless:r},e,t):et.isPlainObject(t)?et.merge({},t):et.isArray(t)?t.slice():t}function o(e,t,r){return et.isUndefined(t)?et.isUndefined(e)?void 0:n(void 0,e,r):n(e,t,r)}function i(e,t){if(!et.isUndefined(t))return n(void 0,t)}function a(e,t){return et.isUndefined(t)?et.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function s(r,o,i){return i in t?n(r,o):i in e?n(void 0,r):void 0}let u={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t)=>o(eG(e),eG(t),!0)};return et.forEach(Object.keys(e).concat(Object.keys(t)),function(n){let i=u[n]||o,a=i(e[n],t[n],n);et.isUndefined(a)&&i!==s||(r[n]=a)}),r}let eJ="1.3.4",eX={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{eX[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});let eK={};eX.transitional=function(e,t,r){function n(e,t){return"[Axios v"+eJ+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}return(r,o,i)=>{if(!1===e)throw new er(n(o," has been removed"+(t?" in "+t:"")),er.ERR_DEPRECATED);return t&&!eK[o]&&(eK[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,i)}};var eQ={assertOptions:function(e,t,r){if("object"!=typeof e)throw new er("options must be an object",er.ERR_BAD_OPTION_VALUE);let n=Object.keys(e),o=n.length;for(;o-- >0;){let i=n[o],a=t[i];if(a){let t=e[i],r=void 0===t||a(t,i,e);if(!0!==r)throw new er("option "+i+" must be "+r,er.ERR_BAD_OPTION_VALUE);continue}if(!0!==r)throw new er("Unknown option "+i,er.ERR_BAD_OPTION)}},validators:eX};let e0=eQ.validators;class e1{constructor(e){this.defaults=e,this.interceptors={request:new ey,response:new ey}}request(e,t){let r,n,o;"string"==typeof e?(t=t||{}).url=e:t=e||{},t=eY(this.defaults,t);let{transitional:i,paramsSerializer:a,headers:s}=t;void 0!==i&&eQ.assertOptions(i,{silentJSONParsing:e0.transitional(e0.boolean),forcedJSONParsing:e0.transitional(e0.boolean),clarifyTimeoutError:e0.transitional(e0.boolean)},!1),void 0!==a&&eQ.assertOptions(a,{encode:e0.function,serialize:e0.function},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase(),(r=s&&et.merge(s.common,s[t.method]))&&et.forEach(["delete","get","head","post","put","patch","common"],e=>{delete s[e]}),t.headers=eI.concat(r,s);let u=[],c=!0;this.interceptors.request.forEach(function(e){("function"!=typeof e.runWhen||!1!==e.runWhen(t))&&(c=c&&e.synchronous,u.unshift(e.fulfilled,e.rejected))});let l=[];this.interceptors.response.forEach(function(e){l.push(e.fulfilled,e.rejected)});let f=0;if(!c){let e=[eV.bind(this),void 0];for(e.unshift.apply(e,u),e.push.apply(e,l),o=e.length,n=Promise.resolve(t);f{if(!r._listeners)return;let t=r._listeners.length;for(;t-- >0;)r._listeners[t](e);r._listeners=null}),this.promise.then=e=>{let t;let n=new Promise(e=>{r.subscribe(e),t=e}).then(e);return n.cancel=function(){r.unsubscribe(t)},n},e(function(e,n,o){r.reason||(r.reason=new eN(e,n,o),t(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;let t=new e2(function(t){e=t});return{token:t,cancel:e}}}let e4={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(e4).forEach(([e,t])=>{e4[t]=e});let e3=function e(t){let r=new e1(t),n=o(e1.prototype.request,r);return et.extend(n,e1.prototype,r,{allOwnKeys:!0}),et.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return e(eY(t,r))},n}(eA);e3.Axios=e1,e3.CanceledError=eN,e3.CancelToken=e2,e3.isCancel=eL,e3.VERSION=eJ,e3.toFormData=el,e3.AxiosError=er,e3.Cancel=e3.CanceledError,e3.all=function(e){return Promise.all(e)},e3.spread=function(e){return function(t){return e.apply(null,t)}},e3.isAxiosError=function(e){return et.isObject(e)&&!0===e.isAxiosError},e3.mergeConfig=eY,e3.AxiosHeaders=eI,e3.formToJSON=e=>eC(et.isHTMLForm(e)?new FormData(e):e),e3.HttpStatusCode=e4,e3.default=e3;var e6=e3}},function(e){var t=function(t){return e(e.s=t)};e.O(0,[774,179],function(){return t(6840),t(80880)}),_N_E=e.O()}]); \ No newline at end of file +*/var t=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;e.exports=!function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==n.join(""))return!1;var o={};if("abcdefghijklmnopqrst".split("").forEach(function(e){o[e]=e}),"abcdefghijklmnopqrst"!==Object.keys(Object.assign({},o)).join(""))return!1;return!0}catch(e){return!1}}()?function(e,o){for(var i,a,s=function(e){if(null==e)throw TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),u=1;u{"use strict";var n=function(){},o=r(/*! ./lib/ReactPropTypesSecret */"./node_modules/prop-types/lib/ReactPropTypesSecret.js"),i={},a=r(/*! ./lib/has */"./node_modules/prop-types/lib/has.js");function s(e,t,r,s,u){for(var c in e)if(a(e,c)){var l;try{if("function"!=typeof e[c]){var f=Error((s||"React class")+": "+r+" type `"+c+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[c]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw f.name="Invariant Violation",f}l=e[c](t,c,s,r,null,o)}catch(e){l=e}if(!l||l instanceof Error||n((s||"React class")+": type specification of "+r+" `"+c+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof l+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),l instanceof Error&&!(l.message in i)){i[l.message]=!0;var d=u?u():"";n("Failed "+r+" type: "+l.message+(null!=d?d:""))}}}n=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw Error(t)}catch(e){}},s.resetWarningCache=function(){i={}},e.exports=s},"./node_modules/prop-types/factoryWithTypeCheckers.js":(e,t,r)=>{"use strict";var n=r(/*! react-is */"./node_modules/react-is/index.js"),o=r(/*! object-assign */"./node_modules/object-assign/index.js"),i=r(/*! ./lib/ReactPropTypesSecret */"./node_modules/prop-types/lib/ReactPropTypesSecret.js"),a=r(/*! ./lib/has */"./node_modules/prop-types/lib/has.js"),s=r(/*! ./checkPropTypes */"./node_modules/prop-types/checkPropTypes.js"),u=function(){};function c(){return null}u=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw Error(t)}catch(e){}},e.exports=function(e,t){var r="function"==typeof Symbol&&Symbol.iterator,l="<>",f={array:h("array"),bigint:h("bigint"),bool:h("boolean"),func:h("function"),number:h("number"),object:h("object"),string:h("string"),symbol:h("symbol"),any:p(c),arrayOf:function(e){return p(function(t,r,n,o,a){if("function"!=typeof e)return new d("Property `"+a+"` of component `"+n+"` has invalid PropType notation inside arrayOf.");var s=t[r];if(!Array.isArray(s)){var u=g(s);return new d("Invalid "+o+" `"+a+"` of type `"+u+"` supplied to `"+n+"`, expected an array.")}for(var c=0;c1?u("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):u("Invalid argument supplied to oneOf, expected an array."),c)},oneOfType:function(e){if(!Array.isArray(e))return u("Invalid argument supplied to oneOfType, expected an instance of array."),c;for(var t=0;t0?", expected one of type ["+u.join(", ")+"]":"";return new d("Invalid "+o+" `"+s+"` supplied to `"+n+"`"+f+".")})},shape:function(e){return p(function(t,r,n,o,a){var s=t[r],u=g(s);if("object"!==u)return new d("Invalid "+o+" `"+a+"` of type `"+u+"` supplied to `"+n+"`, expected `object`.");for(var c in e){var l=e[c];if("function"!=typeof l)return m(n,o,a,c,y(l));var f=l(s,c,n,o,a+"."+c,i);if(f)return f}return null})},exact:function(e){return p(function(t,r,n,s,u){var c=t[r],l=g(c);if("object"!==l)return new d("Invalid "+s+" `"+u+"` of type `"+l+"` supplied to `"+n+"`, expected `object`.");var f=o({},t[r],e);for(var p in f){var h=e[p];if(a(e,p)&&"function"!=typeof h)return m(n,s,u,p,y(h));if(!h)return new d("Invalid "+s+" `"+u+"` key `"+p+"` supplied to `"+n+"`.\nBad object: "+JSON.stringify(t[r],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var v=h(c,p,n,s,u+"."+p,i);if(v)return v}return null})}};function d(e,t){this.message=e,this.data=t&&"object"==typeof t?t:{},this.stack=""}function p(e){var r={},n=0;function o(o,a,s,c,f,p,h){if(c=c||l,p=p||s,h!==i){if(t){var m=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw m.name="Invariant Violation",m}if("undefined"!=typeof console){var g=c+":"+s;!r[g]&&n<3&&(u("You are manually calling a React.PropTypes validation function for the `"+p+"` prop on `"+c+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),r[g]=!0,n++)}}return null!=a[s]?e(a,s,c,f,p):o?new d(null===a[s]?"The "+f+" `"+p+"` is marked as required in `"+c+"`, but its value is `null`.":"The "+f+" `"+p+"` is marked as required in `"+c+"`, but its value is `undefined`."):null}var a=o.bind(null,!1);return a.isRequired=o.bind(null,!0),a}function h(e){return p(function(t,r,n,o,i,a){var s=t[r];if(g(s)!==e){var u=y(s);return new d("Invalid "+o+" `"+i+"` of type `"+u+"` supplied to `"+n+"`, expected `"+e+"`.",{expectedType:e})}return null})}function m(e,t,r,n,o){return new d((e||"React class")+": "+t+" type `"+r+"."+n+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+o+"`.")}function g(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":"symbol"===t||e&&("Symbol"===e["@@toStringTag"]||"function"==typeof Symbol&&e instanceof Symbol)?"symbol":t}function y(e){if(null==e)return""+e;var t=g(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}return d.prototype=Error.prototype,f.checkPropTypes=s,f.resetWarningCache=s.resetWarningCache,f.PropTypes=f,f}},"./node_modules/prop-types/index.js":(e,t,r)=>{var n=r(/*! react-is */"./node_modules/react-is/index.js");e.exports=r(/*! ./factoryWithTypeCheckers */"./node_modules/prop-types/factoryWithTypeCheckers.js")(n.isElement,!0)},"./node_modules/prop-types/lib/ReactPropTypesSecret.js":e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},"./node_modules/prop-types/lib/has.js":e=>{e.exports=Function.call.bind(Object.prototype.hasOwnProperty)},"./node_modules/react-is/cjs/react-is.development.js":(e,t)=>{"use strict";!function(){var e="function"==typeof Symbol&&Symbol.for,r=e?Symbol.for("react.element"):60103,n=e?Symbol.for("react.portal"):60106,o=e?Symbol.for("react.fragment"):60107,i=e?Symbol.for("react.strict_mode"):60108,a=e?Symbol.for("react.profiler"):60114,s=e?Symbol.for("react.provider"):60109,u=e?Symbol.for("react.context"):60110,c=e?Symbol.for("react.async_mode"):60111,l=e?Symbol.for("react.concurrent_mode"):60111,f=e?Symbol.for("react.forward_ref"):60112,d=e?Symbol.for("react.suspense"):60113,p=e?Symbol.for("react.suspense_list"):60120,h=e?Symbol.for("react.memo"):60115,m=e?Symbol.for("react.lazy"):60116,g=e?Symbol.for("react.block"):60121,y=e?Symbol.for("react.fundamental"):60117,v=e?Symbol.for("react.responder"):60118,b=e?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:var p=e.type;switch(p){case c:case l:case o:case a:case i:case d:return p;default:var g=p&&p.$$typeof;switch(g){case u:case f:case m:case h:case s:return g;default:return t}}case n:return t}}}var x=!1;function S(e){return w(e)===l}t.AsyncMode=c,t.ConcurrentMode=l,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=m,t.Memo=h,t.Portal=n,t.Profiler=a,t.StrictMode=i,t.Suspense=d,t.isAsyncMode=function(e){return x||(x=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),S(e)||w(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return w(e)===u},t.isContextProvider=function(e){return w(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return w(e)===f},t.isFragment=function(e){return w(e)===o},t.isLazy=function(e){return w(e)===m},t.isMemo=function(e){return w(e)===h},t.isPortal=function(e){return w(e)===n},t.isProfiler=function(e){return w(e)===a},t.isStrictMode=function(e){return w(e)===i},t.isSuspense=function(e){return w(e)===d},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===l||e===a||e===i||e===d||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===y||e.$$typeof===v||e.$$typeof===b||e.$$typeof===g)},t.typeOf=w}()},"./node_modules/react-is/index.js":(e,t,r)=>{"use strict";e.exports=r(/*! ./cjs/react-is.development.js */"./node_modules/react-is/cjs/react-is.development.js")},"./node_modules/shallow-equal/dist/index.esm.js":(e,t,r)=>{"use strict";function n(e,t){if(e===t)return!0;if(!e||!t)return!1;var r=Object.keys(e),n=Object.keys(t),o=r.length;if(n.length!==o)return!1;for(var i=0;io,shallowEqualObjects:()=>n})},"./src/Component.ts":function(e,t,r){"use strict";var n=this&&this.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(r(/*! ./useMediaQuery */"./src/useMediaQuery.ts"));t.default=function(e){var t=e.children,r=e.device,o=e.onChange,a=n(e,["children","device","onChange"]),s=(0,i.default)(a,r,o);return"function"==typeof t?t(s):s?t:null}},"./src/Context.ts":(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=(0,r(/*! react */"react").createContext)(void 0);t.default=n},"./src/index.ts":function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Context=t.toQuery=t.useMediaQuery=t.default=void 0;var o=n(r(/*! ./useMediaQuery */"./src/useMediaQuery.ts"));t.useMediaQuery=o.default;var i=n(r(/*! ./Component */"./src/Component.ts"));t.default=i.default;var a=n(r(/*! ./toQuery */"./src/toQuery.ts"));t.toQuery=a.default;var s=n(r(/*! ./Context */"./src/Context.ts"));t.Context=s.default},"./src/mediaQuery.ts":function(e,t,r){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=i(r(/*! prop-types */"./node_modules/prop-types/index.js")),s=a.default.oneOfType([a.default.string,a.default.number]),u={all:a.default.bool,grid:a.default.bool,aural:a.default.bool,braille:a.default.bool,handheld:a.default.bool,print:a.default.bool,projection:a.default.bool,screen:a.default.bool,tty:a.default.bool,tv:a.default.bool,embossed:a.default.bool},c={orientation:a.default.oneOf(["portrait","landscape"]),scan:a.default.oneOf(["progressive","interlace"]),aspectRatio:a.default.string,deviceAspectRatio:a.default.string,height:s,deviceHeight:s,width:s,deviceWidth:s,color:a.default.bool,colorIndex:a.default.bool,monochrome:a.default.bool,resolution:s,type:Object.keys(u)};c.type;var l=o(c,["type"]),f=n({minAspectRatio:a.default.string,maxAspectRatio:a.default.string,minDeviceAspectRatio:a.default.string,maxDeviceAspectRatio:a.default.string,minHeight:s,maxHeight:s,minDeviceHeight:s,maxDeviceHeight:s,minWidth:s,maxWidth:s,minDeviceWidth:s,maxDeviceWidth:s,minColor:a.default.number,maxColor:a.default.number,minColorIndex:a.default.number,maxColorIndex:a.default.number,minMonochrome:a.default.number,maxMonochrome:a.default.number,minResolution:s,maxResolution:s},l),d=n(n({},u),f);t.default={all:d,types:u,matchers:c,features:f}},"./src/toQuery.ts":function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=n(r(/*! hyphenate-style-name */"./node_modules/hyphenate-style-name/index.js")),i=n(r(/*! ./mediaQuery */"./src/mediaQuery.ts")),a=function(e,t){var r=(0,o.default)(e);return("number"==typeof t&&(t="".concat(t,"px")),!0===t)?r:!1===t?"not ".concat(r):"(".concat(r,": ").concat(t,")")};t.default=function(e){var t=[];return Object.keys(i.default.all).forEach(function(r){var n=e[r];null!=n&&t.push(a(r,n))}),t.join(" and ")}},"./src/useMediaQuery.ts":function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(/*! react */"react"),i=n(r(/*! matchmediaquery */"./node_modules/matchmediaquery/index.js")),a=n(r(/*! hyphenate-style-name */"./node_modules/hyphenate-style-name/index.js")),s=r(/*! shallow-equal */"./node_modules/shallow-equal/dist/index.esm.js"),u=n(r(/*! ./toQuery */"./src/toQuery.ts")),c=n(r(/*! ./Context */"./src/Context.ts")),l=function(e){if(e)return Object.keys(e).reduce(function(t,r){return t[(0,a.default)(r)]=e[r],t},{})},f=function(){var e=(0,o.useRef)(!1);return(0,o.useEffect)(function(){e.current=!0},[]),e.current},d=function(e){var t=(0,o.useContext)(c.default),r=function(){return l(e)||l(t)},n=(0,o.useState)(r),i=n[0],a=n[1];return(0,o.useEffect)(function(){var e=r();(0,s.shallowEqualObjects)(i,e)||a(e)},[e,t]),i},p=function(e){var t=function(){return e.query||(0,u.default)(e)},r=(0,o.useState)(t),n=r[0],i=r[1];return(0,o.useEffect)(function(){var e=t();n!==e&&i(e)},[e]),n},h=function(e,t){var r=function(){return(0,i.default)(e,t||{},!!t)},n=(0,o.useState)(r),a=n[0],s=n[1],u=f();return(0,o.useEffect)(function(){if(u){var e=r();return s(e),function(){e&&e.dispose()}}},[e,t]),a},m=function(e){var t=(0,o.useState)(e.matches),r=t[0],n=t[1];return(0,o.useEffect)(function(){var t=function(e){n(e.matches)};return e.addListener(t),n(e.matches),function(){e.removeListener(t)}},[e]),r};t.default=function(e,t,r){var n=d(t),i=p(e);if(!i)throw Error("Invalid or missing MediaQuery!");var a=h(i,n),s=m(a),u=f();return(0,o.useEffect)(function(){u&&r&&r(s)},[s]),(0,o.useEffect)(function(){return function(){a&&a.dispose()}},[]),s}},react:e=>{"use strict";e.exports=n}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,r),i.exports}return r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r("./src/index.ts")})())},96774:function(e){e.exports=function(e,t,r,n){var o=r?r.call(n,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),u=0;un&&(n=(t=t.trim()).charCodeAt(0)),n){case 38:return t.replace(m,"$1"+e.trim());case 58:return e.trim()+t.replace(m,"$1"+e.trim());default:if(0<1*r&&0u.charCodeAt(8))break;case 115:a=a.replace(u,"-webkit-"+u)+";"+a;break;case 207:case 102:a=a.replace(u,"-webkit-"+(102s.charCodeAt(0)&&(s=s.trim()),s=[s],0p)&&(z=($=$.replace(" ",":")).length),0e.charCodeAt(2)),n[e]}),h=r(8679),m=r.n(h),g=r(83454);function y(){return(y=Object.assign||function(e){for(var t=1;t1?t-1:0),n=1;n0?" Args: "+r.join(", "):""))}var R=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,r=0;r=this.groupSizes.length){for(var r=this.groupSizes,n=r.length,o=n;e>=o;)(o<<=1)<0&&k(16,""+e);this.groupSizes=new Uint32Array(o),this.groupSizes.set(r),this.length=o;for(var i=n;i=this.length||0===this.groupSizes[e])return t;for(var r=this.groupSizes[e],n=this.indexOfGroup(e),o=n+r,i=n;i=T&&(T=t+1),P.set(e,t),_.set(t,e)},L="style["+O+'][data-styled-version="5.3.6"]',N=RegExp("^"+O+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),M=function(e,t,r){for(var n,o=r.split(","),i=0,a=o.length;i=0;r--){var n=t[r];if(n&&1===n.nodeType&&n.hasAttribute(O))return n}}(r),i=void 0!==o?o.nextSibling:null;n.setAttribute(O,"active"),n.setAttribute("data-styled-version","5.3.6");var a=z();return a&&n.setAttribute("nonce",a),r.insertBefore(n,i),n},F=function(){function e(e){var t=this.element=D(e);t.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,r=0,n=t.length;r=0){var r=document.createTextNode(t),n=this.nodes[e];return this.element.insertBefore(r,n||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e0&&(l+=e+",")}),n+=""+u+c+'{content:"'+l+'"}/*!sc*/\n'}}}return n}(this)},e}(),V=/(a)(d)/gi,G=function(e){return String.fromCharCode(e+(e>25?39:97))};function Y(e){var t,r="";for(t=Math.abs(e);t>52;t=t/52|0)r=G(t%52)+r;return(G(t%52)+r).replace(V,"$1-$2")}var J=function(e,t){for(var r=t.length;r;)e=33*e^t.charCodeAt(--r);return e},X=function(e){return J(5381,e)};function K(e){for(var t=0;t>>0);if(!t.hasNameForId(n,a)){var s=r(i,"."+a,void 0,n);t.insertRules(n,a,s)}o.push(a),this.staticRulesId=a}}else{for(var u=this.rules.length,c=J(this.baseHash,r.hash),l="",f=0;f>>0);if(!t.hasNameForId(n,m)){var g=r(l,"."+m,void 0,n);t.insertRules(n,m,g)}o.push(m)}}return o.join(" ")},e}(),et=/^\s*\/\/.*$/gm,er=[":","[",".","#"];function en(e){var t,r,n,o,i=void 0===e?x:e,a=i.options,s=i.plugins,u=void 0===s?w:s,c=new l(void 0===a?x:a),f=[],d=function(e){function t(t){if(t)try{e(t+"}")}catch(e){}}return function(r,n,o,i,a,s,u,c,l,f){switch(r){case 1:if(0===l&&64===n.charCodeAt(0))return e(n+";"),"";break;case 2:if(0===c)return n+"/*|*/";break;case 3:switch(c){case 102:case 112:return e(o[0]+n),"";default:return n+(0===f?"/*|*/":"")}case -2:n.split("/*|*/}").forEach(t)}}}(function(e){f.push(e)}),p=function(e,n,i){return 0===n&&-1!==er.indexOf(i[r.length])||i.match(o)?e:"."+t};function h(e,i,a,s){void 0===s&&(s="&");var u=e.replace(et,"");return t=s,n=RegExp("\\"+(r=i)+"\\b","g"),o=RegExp("(\\"+r+"\\b){2,}"),c(a||!i?"":i,i&&a?a+" "+i+" { "+u+" }":u)}return c.use([].concat(u,[function(e,t,o){2===e&&o.length&&o[0].lastIndexOf(r)>0&&(o[0]=o[0].replace(n,p))},d,function(e){if(-2===e){var t=f;return f=[],t}}])),h.hash=u.length?u.reduce(function(e,t){return t.name||k(15),J(e,t.name)},5381).toString():"",h}var eo=s.createContext(),ei=(eo.Consumer,s.createContext()),ea=(ei.Consumer,new Z),es=en();function eu(){return(0,s.useContext)(eo)||ea}function ec(e){var t=(0,s.useState)(e.stylisPlugins),r=t[0],n=t[1],o=eu(),i=(0,s.useMemo)(function(){var t=o;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t},[e.disableCSSOMInjection,e.sheet,e.target]),a=(0,s.useMemo)(function(){return en({options:{prefix:!e.disableVendorPrefixes},plugins:r})},[e.disableVendorPrefixes,r]);return(0,s.useEffect)(function(){c()(r,e.stylisPlugins)||n(e.stylisPlugins)},[e.stylisPlugins]),s.createElement(eo.Provider,{value:i},s.createElement(ei.Provider,{value:a},e.children))}var el=function(){function e(e,t){var r=this;this.inject=function(e,t){void 0===t&&(t=es);var n=r.name+t.hash;e.hasNameForId(r.id,n)||e.insertRules(r.id,n,t(r.rules,n,"@keyframes"))},this.toString=function(){return k(12,String(r.name))},this.name=e,this.id="sc-keyframes-"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=es),this.name+e.hash},e}(),ef=/([A-Z])/,ed=/([A-Z])/g,ep=/^ms-/,eh=function(e){return"-"+e.toLowerCase()};function em(e){return ef.test(e)?e.replace(ed,eh).replace(ep,"-ms-"):e}var eg=function(e){return null==e||!1===e||""===e};function ey(e,t,r,n){if(Array.isArray(e)){for(var o,i=[],a=0,s=e.length;a1?t-1:0),n=1;n?@[\\\]^`{|}~-]+/g,ex=/(^-|-$)/g;function eS(e){return e.replace(ew,"-").replace(ex,"")}function eE(e){return"string"==typeof e}var eC=function(e){return"function"==typeof e||"object"==typeof e&&null!==e&&!Array.isArray(e)},eO=s.createContext();function eA(e){var t=(0,s.useContext)(eO),r=(0,s.useMemo)(function(){var r;return(r=e.theme)?S(r)?r(t):Array.isArray(r)||"object"!=typeof r?k(8):t?y({},t,{},r):r:k(14)},[e.theme,t]);return e.children?s.createElement(eO.Provider,{value:r},e.children):null}eO.Consumer;var ej={},ek=function(e){return function e(t,r,n){if(void 0===n&&(n=x),!(0,a.isValidElementType)(r))return k(1,String(r));var o=function(){return t(r,n,eb.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,r,y({},n,{},o))},o.attrs=function(o){return e(t,r,y({},n,{attrs:Array.prototype.concat(n.attrs,o).filter(Boolean)}))},o}(function e(t,r,n){var o=C(t),i=!eE(t),a=r.attrs,u=void 0===a?w:a,c=r.componentId,l=void 0===c?(b=r.displayName,O=r.parentComponentId,ej[A="string"!=typeof b?"sc":eS(b)]=(ej[A]||0)+1,j=A+"-"+Y(X("5.3.6"+A+ej[A])>>>0),O?O+"-"+j:j):c,f=r.displayName,d=void 0===f?eE(t)?"styled."+t:"Styled("+E(t)+")":f,h=r.displayName&&r.componentId?eS(r.displayName)+"-"+r.componentId:r.componentId||l,g=o&&t.attrs?Array.prototype.concat(t.attrs,u).filter(Boolean):u,v=r.shouldForwardProp;o&&t.shouldForwardProp&&(v=r.shouldForwardProp?function(e,n,o){return t.shouldForwardProp(e,n,o)&&r.shouldForwardProp(e,n,o)}:t.shouldForwardProp);var b,O,A,j,k,R=new ee(n,h,o?t.componentStyle:void 0),P=R.isStatic&&0===u.length,_=function(e,t){return function(e,t,r,n){var o,i,a,u,c,l,f,d=e.attrs,h=e.componentStyle,m=e.defaultProps,g=e.foldedComponentIds,v=e.shouldForwardProp,b=e.styledComponentId,w=e.target,E=(o=(0,s.useContext)(eO),void 0===(i=m)&&(i=x),void 0===(a=t.theme!==i.theme&&t.theme||o||i.theme||x)&&(a=x),u=y({},t,{theme:a}),c={},d.forEach(function(e){var t,r,n,o=e;for(t in S(o)&&(o=o(u)),o)u[t]=c[t]="className"===t?(r=c[t],n=o[t],r&&n?r+" "+n:r||n):o[t]}),[u,c]),C=E[0],O=E[1],A=(l=eu(),f=(0,s.useContext)(ei)||es,n?h.generateAndInjectStyles(x,l,f):h.generateAndInjectStyles(C,l,f)),j=O.$as||t.$as||O.as||t.as||w,k=eE(j),R=O!==t?y({},t,{},O):t,P={};for(var _ in R)"$"!==_[0]&&"as"!==_&&("forwardedAs"===_?P.as=R[_]:(v?v(_,p,j):!k||p(_))&&(P[_]=R[_]));return t.style&&O.style!==t.style&&(P.style=y({},t.style,{},O.style)),P.className=Array.prototype.concat(g,b,A!==b?A:null,t.className,O.className).filter(Boolean).join(" "),P.ref=r,(0,s.createElement)(j,P)}(k,e,t,P)};return _.displayName=d,(k=s.forwardRef(_)).attrs=g,k.componentStyle=R,k.displayName=d,k.shouldForwardProp=v,k.foldedComponentIds=o?Array.prototype.concat(t.foldedComponentIds,t.styledComponentId):w,k.styledComponentId=h,k.target=o?t.target:t,k.withComponent=function(t){var o=r.componentId,i=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(r,["componentId"]),a=o&&o+"-"+(eE(t)?t:eS(E(t)));return e(t,y({},i,{attrs:g,componentId:a}),n)},Object.defineProperty(k,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(e){this._foldedDefaultProps=o?function e(t){for(var r=arguments.length,n=Array(r>1?r-1:0),o=1;o2&&Z.registerId(this.componentId+e),this.removeStyles(e,r),this.createStyles(e,t,r,n)},(i=(function(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return"";var r=z();return""},this.getStyleTags=function(){return e.sealed?k(2):e._emitSheetCSS()},this.getStyleElement=function(){if(e.sealed)return k(2);var t,r=((t={})[O]="",t["data-styled-version"]="5.3.6",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),n=z();return n&&(r.nonce=n),[s.createElement("style",y({},r,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new Z({isServer:!0}),this.sealed=!1}).prototype).collectStyles=function(e){return this.sealed?k(2):s.createElement(ec,{sheet:this.instance},e)},i.interleaveWithNodeStream=function(e){return k(3)};var eR=ek},7297:function(e,t,r){"use strict";function n(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}r.d(t,{Z:function(){return n}})},6154:function(e,t,r){"use strict";let n;function o(e,t){return function(){return e.apply(t,arguments)}}r.d(t,{Z:function(){return e6}});let{toString:i}=Object.prototype,{getPrototypeOf:a}=Object,s=(Q=Object.create(null),e=>{let t=i.call(e);return Q[t]||(Q[t]=t.slice(8,-1).toLowerCase())}),u=e=>(e=e.toLowerCase(),t=>s(t)===e),c=e=>t=>typeof t===e,{isArray:l}=Array,f=c("undefined"),d=u("ArrayBuffer"),p=c("string"),h=c("function"),m=c("number"),g=e=>null!==e&&"object"==typeof e,y=e=>{if("object"!==s(e))return!1;let t=a(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},v=u("Date"),b=u("File"),w=u("Blob"),x=u("FileList"),S=e=>g(e)&&h(e.pipe),E=e=>{let t="[object FormData]";return e&&("function"==typeof FormData&&e instanceof FormData||i.call(e)===t||h(e.toString)&&e.toString()===t)},C=u("URLSearchParams"),O=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function A(e,t,{allOwnKeys:r=!1}={}){let n,o;if(null!=e){if("object"!=typeof e&&(e=[e]),l(e))for(n=0,o=e.length;n0;)if(t===(r=n[o]).toLowerCase())return r;return null}let k="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,R=e=>!f(e)&&e!==k,P=(e,t,r,{allOwnKeys:n}={})=>(A(t,(t,n)=>{r&&h(t)?e[n]=o(t,r):e[n]=t},{allOwnKeys:n}),e),_=e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),T=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},I=(e,t,r,n)=>{let o,i,s;let u={};if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)s=o[i],(!n||n(s,e,t))&&!u[s]&&(t[s]=e[s],u[s]=!0);e=!1!==r&&a(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},B=(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;let n=e.indexOf(t,r);return -1!==n&&n===r},L=e=>{if(!e)return null;if(l(e))return e;let t=e.length;if(!m(t))return null;let r=Array(t);for(;t-- >0;)r[t]=e[t];return r},N=(ee="undefined"!=typeof Uint8Array&&a(Uint8Array),e=>ee&&e instanceof ee),M=(e,t)=>{let r;let n=e&&e[Symbol.iterator],o=n.call(e);for(;(r=o.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},U=(e,t)=>{let r;let n=[];for(;null!==(r=e.exec(t));)n.push(r);return n},z=u("HTMLFormElement"),D=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,r){return t.toUpperCase()+r}),F=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),$=u("RegExp"),q=(e,t)=>{let r=Object.getOwnPropertyDescriptors(e),n={};A(r,(r,o)=>{!1!==t(r,o,e)&&(n[o]=r)}),Object.defineProperties(e,n)},H=e=>{q(e,(t,r)=>{if(h(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;let n=e[r];if(h(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},W=(e,t)=>{let r={};return(e=>{e.forEach(e=>{r[e]=!0})})(l(e)?e:String(e).split(t)),r},Z=()=>{},V=(e,t)=>Number.isFinite(e=+e)?e:t,G="abcdefghijklmnopqrstuvwxyz",Y="0123456789",J={DIGIT:Y,ALPHA:G,ALPHA_DIGIT:G+G.toUpperCase()+Y},X=(e=16,t=J.ALPHA_DIGIT)=>{let r="",{length:n}=t;for(;e--;)r+=t[Math.random()*n|0];return r},K=e=>{let t=Array(10),r=(e,n)=>{if(g(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;let o=l(e)?[]:{};return A(e,(e,t)=>{let i=r(e,n+1);f(i)||(o[t]=i)}),t[n]=void 0,o}}return e};return r(e,0)};var Q,ee,et={isArray:l,isArrayBuffer:d,isBuffer:function(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&h(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:E,isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&d(e.buffer)},isString:p,isNumber:m,isBoolean:e=>!0===e||!1===e,isObject:g,isPlainObject:y,isUndefined:f,isDate:v,isFile:b,isBlob:w,isRegExp:$,isFunction:h,isStream:S,isURLSearchParams:C,isTypedArray:N,isFileList:x,forEach:A,merge:function e(){let{caseless:t}=R(this)&&this||{},r={},n=(n,o)=>{let i=t&&j(r,o)||o;y(r[i])&&y(n)?r[i]=e(r[i],n):y(n)?r[i]=e({},n):l(n)?r[i]=n.slice():r[i]=n};for(let e=0,t=arguments.length;e{eo[e]={value:e}}),Object.defineProperties(er,eo),Object.defineProperty(en,"isAxiosError",{value:!0}),er.from=(e,t,r,n,o,i)=>{let a=Object.create(en);return et.toFlatObject(e,a,function(e){return e!==Error.prototype},e=>"isAxiosError"!==e),er.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};var ei=r(21876).Buffer;function ea(e){return et.isPlainObject(e)||et.isArray(e)}function es(e){return et.endsWith(e,"[]")?e.slice(0,-2):e}function eu(e,t,r){return e?e.concat(t).map(function(e,t){return e=es(e),!r&&t?"["+e+"]":e}).join(r?".":""):t}let ec=et.toFlatObject(et,{},null,function(e){return/^is[A-Z]/.test(e)});var el=function(e,t,r){if(!et.isObject(e))throw TypeError("target must be an object");t=t||new FormData,r=et.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!et.isUndefined(t[e])});let n=r.metaTokens,o=r.visitor||l,i=r.dots,a=r.indexes,s=r.Blob||"undefined"!=typeof Blob&&Blob,u=s&&et.isSpecCompliantForm(t);if(!et.isFunction(o))throw TypeError("visitor must be a function");function c(e){if(null===e)return"";if(et.isDate(e))return e.toISOString();if(!u&&et.isBlob(e))throw new er("Blob is not supported. Use a Buffer instead.");return et.isArrayBuffer(e)||et.isTypedArray(e)?u&&"function"==typeof Blob?new Blob([e]):ei.from(e):e}function l(e,r,o){let s=e;if(e&&!o&&"object"==typeof e){if(et.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else{var u;if(et.isArray(e)&&(u=e,et.isArray(u)&&!u.some(ea))||(et.isFileList(e)||et.endsWith(r,"[]"))&&(s=et.toArray(e)))return r=es(r),s.forEach(function(e,n){et.isUndefined(e)||null===e||t.append(!0===a?eu([r],n,i):null===a?r:r+"[]",c(e))}),!1}}return!!ea(e)||(t.append(eu(o,r,i),c(e)),!1)}let f=[],d=Object.assign(ec,{defaultVisitor:l,convertValue:c,isVisitable:ea});if(!et.isObject(e))throw TypeError("data must be an object");return!function e(r,n){if(!et.isUndefined(r)){if(-1!==f.indexOf(r))throw Error("Circular reference detected in "+n.join("."));f.push(r),et.forEach(r,function(r,i){let a=!(et.isUndefined(r)||null===r)&&o.call(t,r,et.isString(i)?i.trim():i,n,d);!0===a&&e(r,n?n.concat(i):[i])}),f.pop()}}(e),t};function ef(e){let t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\x00"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(e){return t[e]})}function ed(e,t){this._pairs=[],e&&el(e,this,t)}let ep=ed.prototype;function eh(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function em(e,t,r){let n;if(!t)return e;let o=r&&r.encode||eh,i=r&&r.serialize;if(n=i?i(t,r):et.isURLSearchParams(t)?t.toString():new ed(t,r).toString(o)){let t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e}ep.append=function(e,t){this._pairs.push([e,t])},ep.toString=function(e){let t=e?function(t){return e.call(this,t,ef)}:ef;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};var eg=class{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){et.forEach(this.handlers,function(t){null!==t&&e(t)})}},ey={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ev="undefined"!=typeof URLSearchParams?URLSearchParams:ed,eb="undefined"!=typeof FormData?FormData:null,ew="undefined"!=typeof Blob?Blob:null;let ex=("undefined"==typeof navigator||"ReactNative"!==(n=navigator.product)&&"NativeScript"!==n&&"NS"!==n)&&"undefined"!=typeof window&&"undefined"!=typeof document,eS="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts;var eE={isBrowser:!0,classes:{URLSearchParams:ev,FormData:eb,Blob:ew},isStandardBrowserEnv:ex,isStandardBrowserWebWorkerEnv:eS,protocols:["http","https","file","blob","url","data"]},eC=function(e){if(et.isFormData(e)&&et.isFunction(e.entries)){let t={};return et.forEachEntry(e,(e,r)=>{!function e(t,r,n,o){let i=t[o++],a=Number.isFinite(+i),s=o>=t.length;if(i=!i&&et.isArray(n)?n.length:i,s)return et.hasOwnProp(n,i)?n[i]=[n[i],r]:n[i]=r,!a;n[i]&&et.isObject(n[i])||(n[i]=[]);let u=e(t,r,n[i],o);return u&&et.isArray(n[i])&&(n[i]=function(e){let t,r;let n={},o=Object.keys(e),i=o.length;for(t=0;t"[]"===e[0]?"":e[1]||e[0]),r,t,0)}),t}return null};let eO={"Content-Type":void 0},eA={transitional:ey,adapter:["xhr","http"],transformRequest:[function(e,t){let r;let n=t.getContentType()||"",o=n.indexOf("application/json")>-1,i=et.isObject(e);i&&et.isHTMLForm(e)&&(e=new FormData(e));let a=et.isFormData(e);if(a)return o&&o?JSON.stringify(eC(e)):e;if(et.isArrayBuffer(e)||et.isBuffer(e)||et.isStream(e)||et.isFile(e)||et.isBlob(e))return e;if(et.isArrayBufferView(e))return e.buffer;if(et.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1){var s,u;return(s=e,u=this.formSerializer,el(s,new eE.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return eE.isNode&&et.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},u))).toString()}if((r=et.isFileList(e))||n.indexOf("multipart/form-data")>-1){let t=this.env&&this.env.FormData;return el(r?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||o?(t.setContentType("application/json",!1),function(e,t,r){if(et.isString(e))try{return(0,JSON.parse)(e),et.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){let t=this.transitional||eA.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(e&&et.isString(e)&&(r&&!this.responseType||n)){let r=t&&t.silentJSONParsing;try{return JSON.parse(e)}catch(e){if(!r&&n){if("SyntaxError"===e.name)throw er.from(e,er.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:eE.classes.FormData,Blob:eE.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};et.forEach(["delete","get","head"],function(e){eA.headers[e]={}}),et.forEach(["post","put","patch"],function(e){eA.headers[e]=et.merge(eO)});let ej=et.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var ek=e=>{let t,r,n;let o={};return e&&e.split("\n").forEach(function(e){n=e.indexOf(":"),t=e.substring(0,n).trim().toLowerCase(),r=e.substring(n+1).trim(),!t||o[t]&&ej[t]||("set-cookie"===t?o[t]?o[t].push(r):o[t]=[r]:o[t]=o[t]?o[t]+", "+r:r)}),o};let eR=Symbol("internals");function eP(e){return e&&String(e).trim().toLowerCase()}function e_(e){return!1===e||null==e?e:et.isArray(e)?e.map(e_):String(e)}function eT(e,t,r,n,o){if(et.isFunction(n))return n.call(this,t,r);if(o&&(t=r),et.isString(t)){if(et.isString(n))return -1!==t.indexOf(n);if(et.isRegExp(n))return n.test(t)}}class eI{constructor(e){e&&this.set(e)}set(e,t,r){let n=this;function o(e,t,r){let o=eP(t);if(!o)throw Error("header name must be a non-empty string");let i=et.findKey(n,o);i&&void 0!==n[i]&&!0!==r&&(void 0!==r||!1===n[i])||(n[i||t]=e_(e))}let i=(e,t)=>et.forEach(e,(e,r)=>o(e,r,t));if(et.isPlainObject(e)||e instanceof this.constructor)i(e,t);else{var a;et.isString(e)&&(e=e.trim())&&(a=e,!/^[-_a-zA-Z]+$/.test(a.trim()))?i(ek(e),t):null!=e&&o(t,e,r)}return this}get(e,t){if(e=eP(e)){let r=et.findKey(this,e);if(r){let e=this[r];if(!t)return e;if(!0===t)return function(e){let t;let r=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;for(;t=n.exec(e);)r[t[1]]=t[2];return r}(e);if(et.isFunction(t))return t.call(this,e,r);if(et.isRegExp(t))return t.exec(e);throw TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=eP(e)){let r=et.findKey(this,e);return!!(r&&void 0!==this[r]&&(!t||eT(this,this[r],r,t)))}return!1}delete(e,t){let r=this,n=!1;function o(e){if(e=eP(e)){let o=et.findKey(r,e);o&&(!t||eT(r,r[o],o,t))&&(delete r[o],n=!0)}}return et.isArray(e)?e.forEach(o):o(e),n}clear(e){let t=Object.keys(this),r=t.length,n=!1;for(;r--;){let o=t[r];(!e||eT(this,this[o],o,e,!0))&&(delete this[o],n=!0)}return n}normalize(e){let t=this,r={};return et.forEach(this,(n,o)=>{let i=et.findKey(r,o);if(i){t[i]=e_(n),delete t[o];return}let a=e?o.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,r)=>t.toUpperCase()+r):String(o).trim();a!==o&&delete t[o],t[a]=e_(n),r[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return et.forEach(this,(r,n)=>{null!=r&&!1!==r&&(t[n]=e&&et.isArray(r)?r.join(", "):r)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){let r=new this(e);return t.forEach(e=>r.set(e)),r}static accessor(e){let t=this[eR]=this[eR]={accessors:{}},r=t.accessors,n=this.prototype;function o(e){let t=eP(e);r[t]||(!function(e,t){let r=et.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+r,{value:function(e,r,o){return this[n].call(this,t,e,r,o)},configurable:!0})})}(n,e),r[t]=!0)}return et.isArray(e)?e.forEach(o):o(e),this}}function eB(e,t){let r=this||eA,n=t||r,o=eI.from(n.headers),i=n.data;return et.forEach(e,function(e){i=e.call(r,i,o.normalize(),t?t.status:void 0)}),o.normalize(),i}function eL(e){return!!(e&&e.__CANCEL__)}function eN(e,t,r){er.call(this,null==e?"canceled":e,er.ERR_CANCELED,t,r),this.name="CanceledError"}eI.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),et.freezeMethods(eI.prototype),et.freezeMethods(eI),et.inherits(eN,er,{__CANCEL__:!0});var eM=eE.isStandardBrowserEnv?{write:function(e,t,r,n,o,i){let a=[];a.push(e+"="+encodeURIComponent(t)),et.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),et.isString(n)&&a.push("path="+n),et.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){let t=document.cookie.match(RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function eU(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e:t}var ez=eE.isStandardBrowserEnv?function(){let e;let t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function n(e){let n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return e=n(window.location.href),function(t){let r=et.isString(t)?n(t):t;return r.protocol===e.protocol&&r.host===e.host}}():function(){return!0},eD=function(e,t){let r;e=e||10;let n=Array(e),o=Array(e),i=0,a=0;return t=void 0!==t?t:1e3,function(s){let u=Date.now(),c=o[a];r||(r=u),n[i]=s,o[i]=u;let l=a,f=0;for(;l!==i;)f+=n[l++],l%=e;if((i=(i+1)%e)===a&&(a=(a+1)%e),u-r{let i=o.loaded,a=o.lengthComputable?o.total:void 0,s=i-r,u=n(s);r=i;let c={loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&i<=a?(a-i)/u:void 0,event:o};c[t?"download":"upload"]=!0,e(c)}}let e$="undefined"!=typeof XMLHttpRequest;var eq=e$&&function(e){return new Promise(function(t,r){let n,o=e.data,i=eI.from(e.headers).normalize(),a=e.responseType;function s(){e.cancelToken&&e.cancelToken.unsubscribe(n),e.signal&&e.signal.removeEventListener("abort",n)}et.isFormData(o)&&(eE.isStandardBrowserEnv||eE.isStandardBrowserWebWorkerEnv)&&i.setContentType(!1);let u=new XMLHttpRequest;if(e.auth){let t=e.auth.username||"",r=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.set("Authorization","Basic "+btoa(t+":"+r))}let c=eU(e.baseURL,e.url);function l(){if(!u)return;let n=eI.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders()),o=a&&"text"!==a&&"json"!==a?u.response:u.responseText,i={data:o,status:u.status,statusText:u.statusText,headers:n,config:e,request:u};!function(e,t,r){let n=r.config.validateStatus;!r.status||!n||n(r.status)?e(r):t(new er("Request failed with status code "+r.status,[er.ERR_BAD_REQUEST,er.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}(function(e){t(e),s()},function(e){r(e),s()},i),u=null}if(u.open(e.method.toUpperCase(),em(c,e.params,e.paramsSerializer),!0),u.timeout=e.timeout,"onloadend"in u?u.onloadend=l:u.onreadystatechange=function(){u&&4===u.readyState&&(0!==u.status||u.responseURL&&0===u.responseURL.indexOf("file:"))&&setTimeout(l)},u.onabort=function(){u&&(r(new er("Request aborted",er.ECONNABORTED,e,u)),u=null)},u.onerror=function(){r(new er("Network Error",er.ERR_NETWORK,e,u)),u=null},u.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",n=e.transitional||ey;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),r(new er(t,n.clarifyTimeoutError?er.ETIMEDOUT:er.ECONNABORTED,e,u)),u=null},eE.isStandardBrowserEnv){let t=(e.withCredentials||ez(c))&&e.xsrfCookieName&&eM.read(e.xsrfCookieName);t&&i.set(e.xsrfHeaderName,t)}void 0===o&&i.setContentType(null),"setRequestHeader"in u&&et.forEach(i.toJSON(),function(e,t){u.setRequestHeader(t,e)}),et.isUndefined(e.withCredentials)||(u.withCredentials=!!e.withCredentials),a&&"json"!==a&&(u.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&u.addEventListener("progress",eF(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&u.upload&&u.upload.addEventListener("progress",eF(e.onUploadProgress)),(e.cancelToken||e.signal)&&(n=t=>{u&&(r(!t||t.type?new eN(null,e,u):t),u.abort(),u=null)},e.cancelToken&&e.cancelToken.subscribe(n),e.signal&&(e.signal.aborted?n():e.signal.addEventListener("abort",n)));let f=function(e){let t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(c);if(f&&-1===eE.protocols.indexOf(f)){r(new er("Unsupported protocol "+f+":",er.ERR_BAD_REQUEST,e));return}u.send(o||null)})};let eH={http:null,xhr:eq};et.forEach(eH,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}});var eW={getAdapter:e=>{let t,r;e=et.isArray(e)?e:[e];let{length:n}=e;for(let o=0;oe instanceof eI?e.toJSON():e;function eY(e,t){t=t||{};let r={};function n(e,t,r){return et.isPlainObject(e)&&et.isPlainObject(t)?et.merge.call({caseless:r},e,t):et.isPlainObject(t)?et.merge({},t):et.isArray(t)?t.slice():t}function o(e,t,r){return et.isUndefined(t)?et.isUndefined(e)?void 0:n(void 0,e,r):n(e,t,r)}function i(e,t){if(!et.isUndefined(t))return n(void 0,t)}function a(e,t){return et.isUndefined(t)?et.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function s(r,o,i){return i in t?n(r,o):i in e?n(void 0,r):void 0}let u={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t)=>o(eG(e),eG(t),!0)};return et.forEach(Object.keys(e).concat(Object.keys(t)),function(n){let i=u[n]||o,a=i(e[n],t[n],n);et.isUndefined(a)&&i!==s||(r[n]=a)}),r}let eJ="1.3.4",eX={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{eX[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});let eK={};eX.transitional=function(e,t,r){function n(e,t){return"[Axios v"+eJ+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}return(r,o,i)=>{if(!1===e)throw new er(n(o," has been removed"+(t?" in "+t:"")),er.ERR_DEPRECATED);return t&&!eK[o]&&(eK[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,i)}};var eQ={assertOptions:function(e,t,r){if("object"!=typeof e)throw new er("options must be an object",er.ERR_BAD_OPTION_VALUE);let n=Object.keys(e),o=n.length;for(;o-- >0;){let i=n[o],a=t[i];if(a){let t=e[i],r=void 0===t||a(t,i,e);if(!0!==r)throw new er("option "+i+" must be "+r,er.ERR_BAD_OPTION_VALUE);continue}if(!0!==r)throw new er("Unknown option "+i,er.ERR_BAD_OPTION)}},validators:eX};let e0=eQ.validators;class e1{constructor(e){this.defaults=e,this.interceptors={request:new eg,response:new eg}}request(e,t){let r,n,o;"string"==typeof e?(t=t||{}).url=e:t=e||{},t=eY(this.defaults,t);let{transitional:i,paramsSerializer:a,headers:s}=t;void 0!==i&&eQ.assertOptions(i,{silentJSONParsing:e0.transitional(e0.boolean),forcedJSONParsing:e0.transitional(e0.boolean),clarifyTimeoutError:e0.transitional(e0.boolean)},!1),void 0!==a&&eQ.assertOptions(a,{encode:e0.function,serialize:e0.function},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase(),(r=s&&et.merge(s.common,s[t.method]))&&et.forEach(["delete","get","head","post","put","patch","common"],e=>{delete s[e]}),t.headers=eI.concat(r,s);let u=[],c=!0;this.interceptors.request.forEach(function(e){("function"!=typeof e.runWhen||!1!==e.runWhen(t))&&(c=c&&e.synchronous,u.unshift(e.fulfilled,e.rejected))});let l=[];this.interceptors.response.forEach(function(e){l.push(e.fulfilled,e.rejected)});let f=0;if(!c){let e=[eV.bind(this),void 0];for(e.unshift.apply(e,u),e.push.apply(e,l),o=e.length,n=Promise.resolve(t);f{if(!r._listeners)return;let t=r._listeners.length;for(;t-- >0;)r._listeners[t](e);r._listeners=null}),this.promise.then=e=>{let t;let n=new Promise(e=>{r.subscribe(e),t=e}).then(e);return n.cancel=function(){r.unsubscribe(t)},n},e(function(e,n,o){r.reason||(r.reason=new eN(e,n,o),t(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;let t=new e2(function(t){e=t});return{token:t,cancel:e}}}let e4={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(e4).forEach(([e,t])=>{e4[t]=e});let e3=function e(t){let r=new e1(t),n=o(e1.prototype.request,r);return et.extend(n,e1.prototype,r,{allOwnKeys:!0}),et.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return e(eY(t,r))},n}(eA);e3.Axios=e1,e3.CanceledError=eN,e3.CancelToken=e2,e3.isCancel=eL,e3.VERSION=eJ,e3.toFormData=el,e3.AxiosError=er,e3.Cancel=e3.CanceledError,e3.all=function(e){return Promise.all(e)},e3.spread=function(e){return function(t){return e.apply(null,t)}},e3.isAxiosError=function(e){return et.isObject(e)&&!0===e.isAxiosError},e3.mergeConfig=eY,e3.AxiosHeaders=eI,e3.formToJSON=e=>eC(et.isHTMLForm(e)?new FormData(e):e),e3.HttpStatusCode=e4,e3.default=e3;var e6=e3}},function(e){var t=function(t){return e(e.s=t)};e.O(0,[774,179],function(){return t(6840),t(80880)}),_N_E=e.O()}]); \ No newline at end of file diff --git a/_next/static/1dDYYunhLMQ22mwQC4FEz/_buildManifest.js b/_next/static/f5RyJlPezl1W7IsvhVwOt/_buildManifest.js similarity index 100% rename from _next/static/1dDYYunhLMQ22mwQC4FEz/_buildManifest.js rename to _next/static/f5RyJlPezl1W7IsvhVwOt/_buildManifest.js diff --git a/_next/static/1dDYYunhLMQ22mwQC4FEz/_ssgManifest.js b/_next/static/f5RyJlPezl1W7IsvhVwOt/_ssgManifest.js similarity index 100% rename from _next/static/1dDYYunhLMQ22mwQC4FEz/_ssgManifest.js rename to _next/static/f5RyJlPezl1W7IsvhVwOt/_ssgManifest.js diff --git a/css-a-tag-style-fix.html b/css-a-tag-style-fix.html index 2a7c9c10..04bcdc43 100644 --- a/css-a-tag-style-fix.html +++ b/css-a-tag-style-fix.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

Rain Sugar BangBang

css

a 태그(Link 태그) 기본 스타일 제거하기

2023-03-09

a태그 기본 스타일 제거와 스타일 적용

+Rain Sugar BangBang Front-End

Rain Sugar BangBang

css

a 태그(Link 태그) 기본 스타일 제거하기

2023-03-09

a태그 기본 스타일 제거와 스타일 적용

/* 기본 밑줄 제거 */
 a {
   text-decoration: none;
@@ -23,4 +23,4 @@
 /* 마우스로 링크를 클릭하고 뗄 때까지의 글자색을 정의 */
 a:active {
   color: green;
-}

"css" 카테고리의 다른 글

    COMMENTS

    \ No newline at end of file +}

    "css" 카테고리의 다른 글

      COMMENTS

      \ No newline at end of file diff --git a/css-no-selection.html b/css-no-selection.html index 20ba6713..18a5890e 100644 --- a/css-no-selection.html +++ b/css-no-selection.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

      Rain Sugar BangBang

      css

      CSS로 글자 더블클릭 시 선택자(파란색 마스킹) 없애기

      2023-03-09

      더블클릭시 파란색 선택자 생성 막는 방법

      +Rain Sugar BangBang Front-End

      Rain Sugar BangBang

      css

      CSS로 글자 더블클릭 시 선택자(파란색 마스킹) 없애기

      2023-03-09

      더블클릭시 파란색 선택자 생성 막는 방법

      div {
         user-select: none;
         -webkit-user-select: none;
      @@ -9,4 +9,4 @@
         /* konqueror browsers */
       
         -ms-user-select: none; /* IE10+ */
      -}

      "css" 카테고리의 다른 글

        COMMENTS

        \ No newline at end of file +}

        "css" 카테고리의 다른 글

          COMMENTS

          \ No newline at end of file diff --git a/css-use-download-font.html b/css-use-download-font.html index c5e1fb80..10e3d3b5 100644 --- a/css-use-download-font.html +++ b/css-use-download-font.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

          Rain Sugar BangBang

          css

          CSS - 배포 사이트에 다운로드 폰트 적용하기

          2023-03-31
          +Rain Sugar BangBang Front-End

          Rain Sugar BangBang

          css

          CSS - 배포 사이트에 다운로드 폰트 적용하기

          2023-03-31

          기본적으로 CSS에서 제공하는 폰트가 마음에 들지 않거나 내 프로젝트에 어울리지 않는 경우 간단하게 다운로드한 폰트를 프로젝트에 적용해볼 수 있다.

          1. 폰트 다운로드

          @@ -26,4 +26,4 @@

          4. CSS 사용

          평소에 폰트를 적용하는 것처럼 CSS를 적용해주면 된다.

          body {
             font-family: maplestory;
          -}

          "css" 카테고리의 다른 글

            COMMENTS

            \ No newline at end of file +}

            "css" 카테고리의 다른 글

              COMMENTS

              \ No newline at end of file diff --git a/css.html b/css.html index f08b45f0..283eea16 100644 --- a/css.html +++ b/css.html @@ -1 +1 @@ -Rain Sugar BangBang Front-End \ No newline at end of file +Rain Sugar BangBang Front-End \ No newline at end of file diff --git a/github-git-blog-utterances-comment.html b/github-git-blog-utterances-comment.html index 39a52dfb..4c05dfc8 100644 --- a/github-git-blog-utterances-comment.html +++ b/github-git-blog-utterances-comment.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

              Rain Sugar BangBang

              github

              utterances를 이용한 Nextjs Github 블로그 댓글 기능 구현

              2023-03-14

              utterances란?

              +Rain Sugar BangBang Front-End

              Rain Sugar BangBang

              github

              utterances를 이용한 Nextjs Github 블로그 댓글 기능 구현

              2023-03-14

              utterances란?

              Github repository의 이슈 기능을 활용해 내 웹사이트에 댓글 기능을 추가할 수 있는 도구로, 별도의 백엔드 구성을 하지 않고 댓글들을 관리할 수 있다는 장점이 있다.

              @@ -96,4 +96,4 @@

              5. script를 블로그 repo code에 복사

              return <section id="comment-box" />; };

              코드 수정 후 원하는대로 동작하는 모습을 볼 수 있었다.

              -

              image

              "Simple Memo" 카테고리의 다른 글

                COMMENTS

                \ No newline at end of file +

                image

                "Simple Memo" 카테고리의 다른 글

                  COMMENTS

                  \ No newline at end of file diff --git a/github-git-cmd.html b/github-git-cmd.html index efbf1c3e..9e170d8b 100644 --- a/github-git-cmd.html +++ b/github-git-cmd.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                  Rain Sugar BangBang

                  github

                  깃 명령어 모음

                  2023-03-09

                  깃 명령어 모음

                  +Rain Sugar BangBang Front-End

                  Rain Sugar BangBang

                  github

                  깃 명령어 모음

                  2023-03-09

                  깃 명령어 모음

                  디렉토리

                  1. 홈 디렉토리로 이동
                  2. @@ -275,4 +275,4 @@

                    기타 명령어

                    $ git tag [태그이름][커밋 ID]
                     $ git tag Version_2 86a99 # tag 달기
                     $ git tag    #tag 조회하기
                    -$ git show Version_2

                  "Simple Memo" 카테고리의 다른 글

                    COMMENTS

                    \ No newline at end of file +$ git show Version_2

                    "Simple Memo" 카테고리의 다른 글

                      COMMENTS

                      \ No newline at end of file diff --git a/github-git-custom-blog.html b/github-git-custom-blog.html index 54874d94..ff8bd36f 100644 --- a/github-git-custom-blog.html +++ b/github-git-custom-blog.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                      Rain Sugar BangBang

                      github

                      Nextjs를 이용한 Github pages 블로그 만들기

                      2023-03-11

                      Github pages와 Nextjs를 선택한 이유

                      +Rain Sugar BangBang Front-End

                      Rain Sugar BangBang

                      github

                      Nextjs를 이용한 Github pages 블로그 만들기

                      2023-03-11

                      Github pages와 Nextjs를 선택한 이유

                      1. Github pages

                      vercel도 Nextjs로 쉽게 배포할 수 있지만, 백엔드는 별도로 만들지 않을 계획이었기에, 추후 댓글 기능이나 추천 글 목록 등을 Github 사이트 하나로 모두 관리하기 위해서 Github pages를 이용하기로 했다.

                      @@ -65,4 +65,4 @@

                      7. 배포 후 설정

                      터미널에 위와 같은 메세지가 뜨면, repository => setting => pages의 branch에 gh-pages가 생성돼있는 것을 볼 수 있음

                      gh-pages를 배포 브랜치로 설정해준 후 저장

                      image

                      -

                      설정을 완료하고 상단의 Visit site로 페이지를 접속하면 Nextjs 기본 화면이 잘 나오는 것을 볼 수 있다.

                      "Simple Memo" 카테고리의 다른 글

                        COMMENTS

                        \ No newline at end of file +

                        설정을 완료하고 상단의 Visit site로 페이지를 접속하면 Nextjs 기본 화면이 잘 나오는 것을 볼 수 있다.

                        "Simple Memo" 카테고리의 다른 글

                          COMMENTS

                          \ No newline at end of file diff --git a/github-git-use-markdown-viewer.html b/github-git-use-markdown-viewer.html index c6ca266e..120bb539 100644 --- a/github-git-use-markdown-viewer.html +++ b/github-git-use-markdown-viewer.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                          Rain Sugar BangBang

                          github

                          Github pages 블로그 Markdown 불러오기

                          2023-03-12

                          Markdown을 통해 블로그를 작성하는 이유

                          +Rain Sugar BangBang Front-End

                          Rain Sugar BangBang

                          github

                          Github pages 블로그 Markdown 불러오기

                          2023-03-12

                          Markdown을 통해 블로그를 작성하는 이유

                          • 머리말을 따로 설정해 route 링크를 설정해주거나 제목, 날짜, 카테고리, 등을 설정하여 블로그 탐색을 용이하게 해줄 수 있다.
                          • Markdown을 repository에 저장함으로써 githubAPI 등을 이용한 데이터 조회를 가능하게 한다.
                          • @@ -128,4 +128,4 @@

                            3. Markdown 파일 생성

                            파일 생성 후 해당 링크 접속 시 정상적으로 접속이 가능해진다.

                            ex

                            localhost:3000/first-post

                            -

                            url은 [slug].tsx 파일이 위치한 경로에 따라 달라질 수 있다. (nextjs 라우팅 방식)

                          "Simple Memo" 카테고리의 다른 글

                            COMMENTS

                            \ No newline at end of file +

                            url은 [slug].tsx 파일이 위치한 경로에 따라 달라질 수 있다. (nextjs 라우팅 방식)

                            "Simple Memo" 카테고리의 다른 글

                              COMMENTS

                              \ No newline at end of file diff --git a/github-github-api-get-repo-data.html b/github-github-api-get-repo-data.html index 334d2222..a16ea432 100644 --- a/github-github-api-get-repo-data.html +++ b/github-github-api-get-repo-data.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                              Rain Sugar BangBang

                              github

                              GithubAPI를 이용한 repository 내 Markdown 파일 정보 불러오기

                              2023-03-13

                              Github REST API 설명서

                              +Rain Sugar BangBang Front-End

                              Rain Sugar BangBang

                              github

                              GithubAPI를 이용한 repository 내 Markdown 파일 정보 불러오기

                              2023-03-13

                              Github REST API 설명서

                              https://docs.github.com/ko/rest?apiVersion=2022-11-28

                              GithubAPI 이용 시 토큰이 필요한 경우 아래와 같이 토큰 발급도 가능하다.

                                @@ -66,4 +66,4 @@

                                3. 데이터 가공

                                };

                                상수 frontmatter는 머리말을 가져오지만 예쁘게 가져오진 않는다.

                                image

                                -

                                때문에 if(frontmatter){...}와 같이 필요한 데이터를 정규식이나 string메서드를 통해 원하는대로 가공해 사용하여 사용해야 한다.

                              "Simple Memo" 카테고리의 다른 글

                                COMMENTS

                                \ No newline at end of file +

                                때문에 if(frontmatter){...}와 같이 필요한 데이터를 정규식이나 string메서드를 통해 원하는대로 가공해 사용하여 사용해야 한다.

                                "Simple Memo" 카테고리의 다른 글

                                  COMMENTS

                                  \ No newline at end of file diff --git a/github-markdown-syntex.html b/github-markdown-syntex.html index 1ddb171a..810a68be 100644 --- a/github-markdown-syntex.html +++ b/github-markdown-syntex.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                  Rain Sugar BangBang

                                  github

                                  Markdown 문법 정리

                                  2023-03-31

                                  1. headers

                                  +Rain Sugar BangBang Front-End

                                  Rain Sugar BangBang

                                  \ No newline at end of file +

                                  참조 https://inpa.tistory.com/entry/MarkDown-%F0%9F%93%9A-%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4-%EB%AC%B8%EB%B2%95-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC

                                  "Simple Memo" 카테고리의 다른 글

                                    COMMENTS

                                    \ No newline at end of file diff --git a/github-token-expired.html b/github-token-expired.html index c1d9d870..2de22fee 100644 --- a/github-token-expired.html +++ b/github-token-expired.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                    Rain Sugar BangBang

                                    github

                                    Github Token을 이용한 GithubAPI 사용

                                    2023-03-31

                                    본 포스팅은 NextJS 13 환경에서 진행한 내용을 바탕으로 한다. GithubAPI 사용법은 공식 문서에 상세히 나와있기 때문에 사용법보다 토큰 만료 문제를 주로 다룬다.

                                    +Rain Sugar BangBang Front-End

                                    Rain Sugar BangBang

                                    github

                                    Github Token을 이용한 GithubAPI 사용

                                    2023-03-31

                                    본 포스팅은 NextJS 13 환경에서 진행한 내용을 바탕으로 한다. GithubAPI 사용법은 공식 문서에 상세히 나와있기 때문에 사용법보다 토큰 만료 문제를 주로 다룬다.

                                    GithubAPI란?

                                    Github의 기능을 REST API 형식으로 사용할 수 있도록 도와주는 기능이다.

                                    @@ -59,4 +59,4 @@

                                    2. auth Token 설정

                                    하지만 .env에 토큰을 설정하고 commit을 하게되면 gitignore를 설정해줘도 github가 자동으로 감지해 토큰을 만료시키기 때문에 .env.local서 테스트하고 .env의 토큰은 지운 뒤에 사용해주자.

                                    image


                                    -

                                    참조 : https://docs.github.com/en

                                    "Simple Memo" 카테고리의 다른 글

                                      COMMENTS

                                      \ No newline at end of file +

                                      참조 : https://docs.github.com/en

                                      "Simple Memo" 카테고리의 다른 글

                                        COMMENTS

                                        \ No newline at end of file diff --git a/github.html b/github.html index 19b74d35..e4b1c638 100644 --- a/github.html +++ b/github.html @@ -1 +1 @@ -Rain Sugar BangBang Front-End \ No newline at end of file +Rain Sugar BangBang Front-End \ No newline at end of file diff --git a/html-input-basic.html b/html-input-basic.html index 60c44213..8b8e95f2 100644 --- a/html-input-basic.html +++ b/html-input-basic.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                        Rain Sugar BangBang

                                        html

                                        HTML input 속성 이용하기

                                        2023-02-09

                                        Input element 사용하기

                                        +Rain Sugar BangBang Front-End

                                        Rain Sugar BangBang

                                        html

                                        HTML input 속성 이용하기

                                        2023-02-09

                                        Input element 사용하기

                                        타입

                                        • type="text" 일반 텍스트
                                        • @@ -22,4 +22,4 @@

                                          속성

                                        • autocomplete="off" "브라우저의 자동완성 제거"
                                        • checked "radio나 checkbox 등의 체크 여부"
                                        • name input의 이름으로 radio나 checkbox의 카테고리 묶음이나 javascript 이벤트 등을 유연하게 적용할 수 있음
                                        • -

                                        "html" 카테고리의 다른 글

                                          COMMENTS

                                          \ No newline at end of file +

                                          "html" 카테고리의 다른 글

                                            COMMENTS

                                            \ No newline at end of file diff --git a/html-meta-tag.html b/html-meta-tag.html index 69bbcea8..aeedeedd 100644 --- a/html-meta-tag.html +++ b/html-meta-tag.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                            Rain Sugar BangBang

                                            html

                                            SEO(검색엔진 최적화)를 위한 HTML의 meta tag 간단 정리

                                            2023-03-09

                                            메타태그

                                            +Rain Sugar BangBang Front-End

                                            Rain Sugar BangBang

                                            html

                                            SEO(검색엔진 최적화)를 위한 HTML의 meta tag 간단 정리

                                            2023-03-09

                                            메타태그

                                            메타태그란 쉽게 말해서 눈에 보이지 않는 문서가 가지고 있는 정보들을 담을 수 있는 태그를 말한다.

                                            1. 주로 사용해볼 수 있는 요소

                                            검색 엔진에 검색되는 단어 지정

                                            @@ -91,4 +91,4 @@

                                            4. 써볼만한 태그

                                          • Random bars horizontal : 수평선이 무작위로 생성
                                          • Random bars vertical : 수직선이 무작위로 생성
                                          • Random : 임의로 생성
                                          • -

                                            "html" 카테고리의 다른 글

                                              COMMENTS

                                              \ No newline at end of file +

                                              "html" 카테고리의 다른 글

                                                COMMENTS

                                                \ No newline at end of file diff --git a/html.html b/html.html index 95dd4653..d8bc19d4 100644 --- a/html.html +++ b/html.html @@ -1 +1 @@ -Rain Sugar BangBang Front-End \ No newline at end of file +Rain Sugar BangBang Front-End \ No newline at end of file diff --git a/index.html b/index.html index 696a97d3..b6a7d49c 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Rain Sugar BangBang Front-End \ No newline at end of file +Rain Sugar BangBang Front-End \ No newline at end of file diff --git a/javascript-basic-1-num-str.html b/javascript-basic-1-num-str.html index adb7ab30..190e1a84 100644 --- a/javascript-basic-1-num-str.html +++ b/javascript-basic-1-num-str.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                Rain Sugar BangBang

                                                javascript

                                                javascript 기초 1 숫자열문자열

                                                2023-03-06

                                                1. 숫자열을 문자열로 바꾸기

                                                +Rain Sugar BangBang Front-End

                                                Rain Sugar BangBang

                                                javascript

                                                javascript 기초 1 숫자열문자열

                                                2023-03-06

                                                1. 숫자열을 문자열로 바꾸기

                                                
                                                 // 숫자는 숫자+""만 해줘도 (혹은 다른 문자를 더해줘도) 문자열로 바뀐다.
                                                 
                                                @@ -47,4 +47,4 @@ 

                                                3. 문자열 다루기

                                                .includes() - 문자열이 특정 문자열을 포함하는지 확인 .charAt(0) - 스트링의 0번째 글자 가져오기(result = string) .substring(0,5) - 스트링의 0~4번째 글자 가져오기 -

                                                "javascript" 카테고리의 다른 글

                                                  COMMENTS

                                                  \ No newline at end of file +

                                                  "javascript" 카테고리의 다른 글

                                                    COMMENTS

                                                    \ No newline at end of file diff --git a/javascript-basic-2-date.html b/javascript-basic-2-date.html index 9711d9e5..2c3b949d 100644 --- a/javascript-basic-2-date.html +++ b/javascript-basic-2-date.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                    Rain Sugar BangBang

                                                    javascript

                                                    javascript 기초 2 날짜다루기

                                                    2023-03-06

                                                    Javascript 날짜 다루기

                                                    +Rain Sugar BangBang Front-End

                                                    Rain Sugar BangBang

                                                    javascript

                                                    javascript 기초 2 날짜다루기

                                                    2023-03-06

                                                    Javascript 날짜 다루기

                                                    날짜 계산

                                                    // 날짜 예제
                                                     // Sunday - Saturday : 0 - 6
                                                    @@ -27,4 +27,4 @@ 

                                                    날짜 계산

                                                    console.log(minutes); // 현재 분 추출 let seconds = today?.getSeconds(); -console.log(seconds); // 현재 초 추출

                                                    "javascript" 카테고리의 다른 글

                                                      COMMENTS

                                                      \ No newline at end of file +console.log(seconds); // 현재 초 추출

                                                      "javascript" 카테고리의 다른 글

                                                        COMMENTS

                                                        \ No newline at end of file diff --git a/javascript-basic-3-math.html b/javascript-basic-3-math.html index 4cdae41c..ad5edd27 100644 --- a/javascript-basic-3-math.html +++ b/javascript-basic-3-math.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                        Rain Sugar BangBang

                                                        javascript

                                                        javascript 기초 3 Math 다뤄보기

                                                        2023-03-06

                                                        Javascript Math 메서드

                                                        +Rain Sugar BangBang Front-End

                                                        Rain Sugar BangBang

                                                        javascript

                                                        javascript 기초 3 Math 다뤄보기

                                                        2023-03-06

                                                        Javascript Math 메서드

                                                        1. 소수점 표현

                                                        // n = Number
                                                         Math.ceil(n); // 올림
                                                        @@ -23,4 +23,4 @@ 

                                                        2. 계산/정수 처리

                                                        Math.min(); // 인자 중 가장 작은 값 반환 - Math.max 반대 Math.pow(x, y); // 인자간 거듭제곱 값 반환 === x**y와 동일 Math.random(); // 0이상 1미만 랜덤값 반환 -Math.sqrt(); // 제곱근 반환

                                                        "javascript" 카테고리의 다른 글

                                                          COMMENTS

                                                          \ No newline at end of file +Math.sqrt(); // 제곱근 반환

                                                          "javascript" 카테고리의 다른 글

                                                            COMMENTS

                                                            \ No newline at end of file diff --git a/javascript-basic-4-array-1.html b/javascript-basic-4-array-1.html index 7850c190..d1efe919 100644 --- a/javascript-basic-4-array-1.html +++ b/javascript-basic-4-array-1.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                            Rain Sugar BangBang

                                                            javascript

                                                            javascript 기초 4 배열 다루기 - 1

                                                            2023-03-06

                                                            JavaScript 배열 다뤄보기

                                                            +Rain Sugar BangBang Front-End

                                                            Rain Sugar BangBang

                                                            javascript

                                                            javascript 기초 4 배열 다루기 - 1

                                                            2023-03-06

                                                            JavaScript 배열 다뤄보기

                                                            1. 배열 수정

                                                            let Arr = [1, 2, 3, 4, 5];
                                                             
                                                            @@ -72,4 +72,4 @@ 

                                                            3. 배열 메서드

                                                            // 매개변수가 x밖에 없다면 x 이상 index에 해당하는 배열 추출 // 매개변수가 음수인 경우 ex. (-2) 라면, 배열 끝에서 2번째 index 이상의 배열 추출 .slice(0, 2) // [1,2] -

                                                            "javascript" 카테고리의 다른 글

                                                              COMMENTS

                                                              \ No newline at end of file +

                                                              "javascript" 카테고리의 다른 글

                                                                COMMENTS

                                                                \ No newline at end of file diff --git a/javascript-basic-4-array-2.html b/javascript-basic-4-array-2.html index c14707e7..498529cf 100644 --- a/javascript-basic-4-array-2.html +++ b/javascript-basic-4-array-2.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                Rain Sugar BangBang

                                                                javascript

                                                                javascript 기초 4 배열 다루기 - 2

                                                                2023-03-06

                                                                고차함수와 메서드를 통해 JavaScript 배열 다뤄보기

                                                                +Rain Sugar BangBang Front-End

                                                                Rain Sugar BangBang

                                                                javascript

                                                                javascript 기초 4 배열 다루기 - 2

                                                                2023-03-06

                                                                고차함수와 메서드를 통해 JavaScript 배열 다뤄보기

                                                                고차함수란?

                                                                함수를 인자로 받거나, 함수를 반환함으로써 작동하는 함수로, .map() , .filter() , .forEach() , .reduce() 등이 있다.

                                                                @@ -60,4 +60,4 @@

                                                                indexOf()

                                                                const indexOfFirst2 = comment.indexOf(searchStr2); console.log(indexOfFirst); // 4 // 오류는 4번째 인덱스부터 시작한다. -console.log(indexOfFirst2); // 17 // 해주세요는 17번째 인덱스부터 시작한다.

                                                                "javascript" 카테고리의 다른 글

                                                                  COMMENTS

                                                                  \ No newline at end of file +console.log(indexOfFirst2); // 17 // 해주세요는 17번째 인덱스부터 시작한다.

                                                                  "javascript" 카테고리의 다른 글

                                                                    COMMENTS

                                                                    \ No newline at end of file diff --git a/javascript-basic-5-loop.html b/javascript-basic-5-loop.html index 16d161d0..2dc65867 100644 --- a/javascript-basic-5-loop.html +++ b/javascript-basic-5-loop.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                    Rain Sugar BangBang

                                                                    javascript

                                                                    javascript 기초 5 반복문 다루기

                                                                    2023-03-06

                                                                    for문 사용법

                                                                    +Rain Sugar BangBang Front-End

                                                                    Rain Sugar BangBang

                                                                    javascript

                                                                    javascript 기초 5 반복문 다루기

                                                                    2023-03-06

                                                                    for문 사용법

                                                                    for문

                                                                    
                                                                     const arr = [1,2,3,4,5,6,7,8,9,10];
                                                                    @@ -102,4 +102,4 @@ 

                                                                    .map()

                                                                    "80(7번째)", "90(8번째)", "100(9번째)") -];

                                                                    "javascript" 카테고리의 다른 글

                                                                      COMMENTS

                                                                      \ No newline at end of file +];

                                                                      "javascript" 카테고리의 다른 글

                                                                        COMMENTS

                                                                        \ No newline at end of file diff --git a/javascript-dynamic-import.html b/javascript-dynamic-import.html index d51366c1..a2c9f329 100644 --- a/javascript-dynamic-import.html +++ b/javascript-dynamic-import.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                        Rain Sugar BangBang

                                                                        javascript

                                                                        Dynamic import를 사용해 동적으로 모듈 가져오기

                                                                        2023-03-18

                                                                        Dynamic import란?

                                                                        +Rain Sugar BangBang Front-End

                                                                        Rain Sugar BangBang

                                                                        javascript

                                                                        Dynamic import를 사용해 동적으로 모듈 가져오기

                                                                        2023-03-18

                                                                        Dynamic import란?

                                                                        import() 표현식으로 사용하며, 표현식은 모듈을 읽고 해당 모듈이 내보내는 것들을 모두 포함하는 객체를 담은 이행된 Promise를 반환한다. 호출은 어디서나 가능하다.

                                                                        @@ -81,4 +81,4 @@

                                                                        주의사항 : import()는 함수 호출과 문법이 유사해 보이지만

                                                                        참조

                                                                        MDN : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import

                                                                        -

                                                                        Modern js : https://ko.javascript.info/modules-dynamic-imports

                                                                        "javascript" 카테고리의 다른 글

                                                                          COMMENTS

                                                                          \ No newline at end of file +

                                                                          Modern js : https://ko.javascript.info/modules-dynamic-imports

                                                                          "javascript" 카테고리의 다른 글

                                                                            COMMENTS

                                                                            \ No newline at end of file diff --git a/javascript-how-to-use-promise.all.html b/javascript-how-to-use-promise.all.html index ec2b2f8c..9e2140b9 100644 --- a/javascript-how-to-use-promise.all.html +++ b/javascript-how-to-use-promise.all.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                            Rain Sugar BangBang

                                                                            javascript

                                                                            Promise.all()은 언제 쓰고 왜 쓰나요? - 여러 비동기 요청 한 번에 처리하기

                                                                            2023-05-19

                                                                            javascript를 통해 비동기 코드를 처리하는 기본적인 방법으로는 Callback 함수, Promise, async/await 등이 있다. 하지만 다수의 비동기 요청의 실행이 필요한 경우 Promise.all()을 사용해볼 수 있다.

                                                                            +Rain Sugar BangBang Front-End

                                                                            Rain Sugar BangBang

                                                                            javascript

                                                                            Promise.all()은 언제 쓰고 왜 쓰나요? - 여러 비동기 요청 한 번에 처리하기

                                                                            2023-05-19

                                                                            javascript를 통해 비동기 코드를 처리하는 기본적인 방법으로는 Callback 함수, Promise, async/await 등이 있다. 하지만 다수의 비동기 요청의 실행이 필요한 경우 Promise.all()을 사용해볼 수 있다.

                                                                            Promise.all()이란?

                                                                            여러 개의 Promise를 동시에 처리하고, 모든 Promise가 완료되었을 때 그 결과들을 반환하는 javascript의 메서드이다.

                                                                            Promise.all()은 배열형태의 Promise들을 인자로 받고, 이 Promise들은 병렬적으로 실행된다. Promise.all()은 해당 Promise들의 결과를 배열로 반환한다.

                                                                            @@ -65,4 +65,4 @@

                                                                            2. Promise.all()


                                                                            참조

                                                                            https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

                                                                            -

                                                                            https://code-masterjung.tistory.com/91

                                                                            "javascript" 카테고리의 다른 글

                                                                              COMMENTS

                                                                              \ No newline at end of file +

                                                                              https://code-masterjung.tistory.com/91

                                                                              "javascript" 카테고리의 다른 글

                                                                                COMMENTS

                                                                                \ No newline at end of file diff --git a/javascript-jest-test-code.html b/javascript-jest-test-code.html index 56de8ff9..510c6db8 100644 --- a/javascript-jest-test-code.html +++ b/javascript-jest-test-code.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                Rain Sugar BangBang

                                                                                javascript

                                                                                jest를 통한 테스트코드 사용

                                                                                2023-03-18

                                                                                jest란?

                                                                                +Rain Sugar BangBang Front-End

                                                                                Rain Sugar BangBang

                                                                                javascript

                                                                                jest를 통한 테스트코드 사용

                                                                                2023-03-18

                                                                                jest란?

                                                                                단순성에 중점을 둔 javascript 테스트 프레임워크로, babel, Typescript, node, React, Angular, Vue 등을 사용하는 프로젝트에서 작동한다.

                                                                                @@ -91,4 +91,4 @@

                                                                                3. 로직을 개선하며 1~3을 반복한다.

                                                                                TDD의 예시

                                                                                https://velog.io/@velopert/TDD%EC%9D%98-%EC%86%8C%EA%B0%9C


                                                                                -

                                                                                참조 : https://jestjs.io/

                                                                                "javascript" 카테고리의 다른 글

                                                                                  COMMENTS

                                                                                  \ No newline at end of file +

                                                                                  참조 : https://jestjs.io/

                                                                                  "javascript" 카테고리의 다른 글

                                                                                    COMMENTS

                                                                                    \ No newline at end of file diff --git a/javascript.html b/javascript.html index 76630d96..e9b8ed19 100644 --- a/javascript.html +++ b/javascript.html @@ -1 +1 @@ -Rain Sugar BangBang Front-End \ No newline at end of file +Rain Sugar BangBang Front-End \ No newline at end of file diff --git a/nestjs-custom-repository.html b/nestjs-custom-repository.html index 387d26ce..722473f6 100644 --- a/nestjs-custom-repository.html +++ b/nestjs-custom-repository.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                    Rain Sugar BangBang

                                                                                    nestjs

                                                                                    Entityrepository()를 대신한 Repository 생성

                                                                                    2023-03-04

                                                                                    포스팅 시점 nestjs 버전 : 9.x.x

                                                                                    +Rain Sugar BangBang Front-End

                                                                                    Rain Sugar BangBang

                                                                                    nestjs

                                                                                    Entityrepository()를 대신한 Repository 생성

                                                                                    2023-03-04

                                                                                    포스팅 시점 nestjs 버전 : 9.x.x

                                                                                    새로운 토이 프로젝트를 만들면서 백엔드를 구축할 프레임워크로 nestjs를 이용하기로 마음먹었다.

                                                                                    원래 사용하고 있던 javascript/typescript와 동일한 언어를 사용하기 때문에 백엔드 구축에 비교적 진입장벽이 낮다고 생각했기 때문에다.

                                                                                    nest 작동순서

                                                                                    @@ -222,4 +222,4 @@

                                                                                    Module에 import 후 service 비즈니스 로직에만 repository를 넣어 정상적으로 테이블에 있는 데이터가 추출되는 것이 잘 확인된다.

                                                                                    참고 :

                                                                                    https://orkhan.gitbook.io/typeorm/readme_ko

                                                                                    -

                                                                                    https://docs.nestjs.com/techniques/database

                                                                                    "nestjs" 카테고리의 다른 글

                                                                                      COMMENTS

                                                                                      \ No newline at end of file +

                                                                                      https://docs.nestjs.com/techniques/database

                                                                                      "nestjs" 카테고리의 다른 글

                                                                                        COMMENTS

                                                                                        \ No newline at end of file diff --git a/nestjs-localhost-https.html b/nestjs-localhost-https.html index aca612e6..792140fb 100644 --- a/nestjs-localhost-https.html +++ b/nestjs-localhost-https.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                        Rain Sugar BangBang

                                                                                        nestjs

                                                                                        Localhost 환경에서 HTTPS 적용하기

                                                                                        2023-04-30

                                                                                        Local 환경에서 https 설정이 필요한 이유

                                                                                        +Rain Sugar BangBang Front-End

                                                                                        Rain Sugar BangBang

                                                                                        nestjs

                                                                                        Localhost 환경에서 HTTPS 적용하기

                                                                                        2023-04-30

                                                                                        Local 환경에서 https 설정이 필요한 이유

                                                                                        로컬 환경에서 내가 원하는대로 기능들이 작동한다고 해도, 배포 환경과 로컬 개발 환경의 차이로 인해 코드의 수정이 필요해질 수 있다. 이러한 이유로 개발 환경을 배포 환경과 최대한 동일하게 만들어주는 것이 좋다. 또한 최근의 배포 환경들은 대부분 https로 이뤄져 있기 때문에 그에 맞춰 설정해줄 필요가 있다.

                                                                                        자체 서명 인증서 생성 (openssl 사용)

                                                                                        # 개인 키 생성
                                                                                        @@ -37,4 +37,4 @@ 

                                                                                        HTTPS 구성 설정 - main.ts

                                                                                        그럼에도 오류가 발생하는 경우 아래의 링크를 통해 크롬 환경설정을 해주면 된다.

                                                                                        chrome://flags/#allow-insecure-localhost

                                                                                        유효하지 않은 인증서 허용으로 설정

                                                                                        -

                                                                                        image

                                                                                        "nestjs" 카테고리의 다른 글

                                                                                          COMMENTS

                                                                                          \ No newline at end of file +

                                                                                          image

                                                                                          "nestjs" 카테고리의 다른 글

                                                                                            COMMENTS

                                                                                            \ No newline at end of file diff --git a/nestjs-server-client-cookie.html b/nestjs-server-client-cookie.html index 6140b5ba..995d6e14 100644 --- a/nestjs-server-client-cookie.html +++ b/nestjs-server-client-cookie.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                            Rain Sugar BangBang

                                                                                            nestjs

                                                                                            NestJS에서 클라이언트로 쿠키 보내기 (왜 내 쿠키는 안받아줘요?)

                                                                                            2023-04-13

                                                                                            image

                                                                                            +Rain Sugar BangBang Front-End

                                                                                            Rain Sugar BangBang

                                                                                            nestjs

                                                                                            NestJS에서 클라이언트로 쿠키 보내기 (왜 내 쿠키는 안받아줘요?)

                                                                                            2023-04-13

                                                                                            image

                                                                                            쿠키(Cookie)란?

                                                                                            쿠키는 서버에서 클라이언트에게 보내는 작은 데이터 조각이다. 일반적으로 브라우저에서 웹 사이트를 방문할 때 쿠키를 사용하여 사용자의 활동을 기록하고, 이후에 그 사용자가 같은 웹 사이트를 방문할 때 이 정보를 사용해 그에 맞게 동작하게 해준다. 하지만 쿠키는 당사자뿐만 아닌 제 3자가 조회하는 것도 가능하기 때문에 개인 정보를 담는 등 보안상 민감한 정보를 저장하는 데에는 적합하지 않기 때문에 탈취되거나 사용자에 의해 조작되어도 크게 문제 되지 않을 정보를 주로 저장한다. (ex. 다크 모드, 장바구니 목록 등)

                                                                                            서버에서 클라이언트로 Cookie 전송 예제

                                                                                            @@ -106,4 +106,4 @@

                                                                                            Localhost 환 }

                                                                                            클라이언트 단에서는 withCredentials:true 옵션 설정 외에는 특별히 해줄 것이 없다.


                                                                                            -

                                                                                            참조 : https://docs.nestjs.com/techniques/cookies

                                                                                            "nestjs" 카테고리의 다른 글

                                                                                              COMMENTS

                                                                                              \ No newline at end of file +

                                                                                              참조 : https://docs.nestjs.com/techniques/cookies

                                                                                              "nestjs" 카테고리의 다른 글

                                                                                                COMMENTS

                                                                                                \ No newline at end of file diff --git a/nestjs-server-client-cookie2.html b/nestjs-server-client-cookie2.html index c1d032df..e966a3b4 100644 --- a/nestjs-server-client-cookie2.html +++ b/nestjs-server-client-cookie2.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                Rain Sugar BangBang

                                                                                                nestjs

                                                                                                NestJS에서 클라이언트로 쿠키 보내기 (왜 내 쿠키는 안받아줘요?) - 배포환경

                                                                                                2023-04-30

                                                                                                서버에서 브라우저로 쿠키 저장

                                                                                                +Rain Sugar BangBang Front-End

                                                                                                Rain Sugar BangBang

                                                                                                nestjs

                                                                                                NestJS에서 클라이언트로 쿠키 보내기 (왜 내 쿠키는 안받아줘요?) - 배포환경

                                                                                                2023-04-30

                                                                                                서버에서 브라우저로 쿠키 저장

                                                                                                분명 로컬에서는 쿠키가 정상적으로 브라우저에 저장되는 것을 볼 수 있었는데, 배포를 하고 나니 또다시 쿠키가 보이지 않았다. response headers에는 쿠키 값과 함께 다음과 같은 에러 문구를 볼 수 있었다.

                                                                                                this attempt to set a cookie via a set cookie header was blocked because its domain attribue was invalid with reqards to the current host url

                                                                                                @@ -29,4 +29,4 @@ httpOnly: true, domain: process.env.COOKIE_PARSE_DOMAIN, // ".product.com" }); -

                                                                                                같은 도메인을 사용하고 나서야 쿠키가 정상적으로 브라우저로 접속하는 것을 확인할 수 있었다.

                                                                                                "nestjs" 카테고리의 다른 글

                                                                                                  COMMENTS

                                                                                                  \ No newline at end of file +

                                                                                                  같은 도메인을 사용하고 나서야 쿠키가 정상적으로 브라우저로 접속하는 것을 확인할 수 있었다.

                                                                                                  "nestjs" 카테고리의 다른 글

                                                                                                    COMMENTS

                                                                                                    \ No newline at end of file diff --git a/nestjs-use-bcrypt.html b/nestjs-use-bcrypt.html index 5426eefa..e3bc19fe 100644 --- a/nestjs-use-bcrypt.html +++ b/nestjs-use-bcrypt.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                    Rain Sugar BangBang

                                                                                                    nestjs

                                                                                                    Nestjs에서 bcrypt 사용하기

                                                                                                    2023-04-13

                                                                                                    bycrypt란?

                                                                                                    +Rain Sugar BangBang Front-End

                                                                                                    Rain Sugar BangBang

                                                                                                    nestjs

                                                                                                    Nestjs에서 bcrypt 사용하기

                                                                                                    2023-04-13

                                                                                                    bycrypt란?

                                                                                                    비밀번호 등을 안전하게 암호화하여 저장하고 검증할 수 있도록 도와주는 라이브러리로, 랜덤한 salt를 생성하고 이를 비밀번호와 함께 암호화하여 저장한다. 이후 비밀번호 검증 시에도 같은 salt를 사용하여 입력받은 비밀번호를 암호화한 후, 저장된 암호화된 비밀번호와 비교하여 일치하는지 검증한다.

                                                                                                    bcrypt는 암호화 강도를 선택할 수 있는 기능을 제공한다. 기본값은 10으로, 숫자가 클수록 강도가 높아지며 암호화에 소요되는 시간도 늘어난다. 보안을 위해 기본값 이상의 값을 권장한다.

                                                                                                    사용법

                                                                                                    @@ -25,4 +25,4 @@

                                                                                                    사용법

                                                                                                    if(match) // 인증 후 로직 }
                                                                                                    -

                                                                                                    참조 : https://github.com/kelektiv/node.bcrypt.js#readme

                                                                                                    "nestjs" 카테고리의 다른 글

                                                                                                      COMMENTS

                                                                                                      \ No newline at end of file +

                                                                                                      참조 : https://github.com/kelektiv/node.bcrypt.js#readme

                                                                                                      "nestjs" 카테고리의 다른 글

                                                                                                        COMMENTS

                                                                                                        \ No newline at end of file diff --git a/nestjs.html b/nestjs.html index b5d57a70..3b5deb29 100644 --- a/nestjs.html +++ b/nestjs.html @@ -1 +1 @@ -Rain Sugar BangBang Front-End \ No newline at end of file +Rain Sugar BangBang Front-End \ No newline at end of file diff --git a/nextjs-link-userouter.html b/nextjs-link-userouter.html index d75d249f..cd959714 100644 --- a/nextjs-link-userouter.html +++ b/nextjs-link-userouter.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                        Rain Sugar BangBang

                                                                                                        nextjs

                                                                                                        Nextjs Link와 useRouter의 차이

                                                                                                        2023-03-18

                                                                                                        Link / useRouter 사용법

                                                                                                        +Rain Sugar BangBang Front-End

                                                                                                        Rain Sugar BangBang

                                                                                                        \ No newline at end of file +

                                                                                                        https://nextjs.org/docs/api-reference/next/router

                                                                                                        "nextjs" 카테고리의 다른 글

                                                                                                          COMMENTS

                                                                                                          \ No newline at end of file diff --git a/nextjs-loading.html b/nextjs-loading.html index c93c9ccb..1056c067 100644 --- a/nextjs-loading.html +++ b/nextjs-loading.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                          Rain Sugar BangBang

                                                                                                          nextjs

                                                                                                          nextjs에서의 로딩처리

                                                                                                          2023-03-04

                                                                                                          Nextjs에서 로딩처리하기

                                                                                                          +Rain Sugar BangBang Front-End

                                                                                                          Rain Sugar BangBang

                                                                                                          nextjs

                                                                                                          nextjs에서의 로딩처리

                                                                                                          2023-03-04

                                                                                                          Nextjs에서 로딩처리하기

                                                                                                          모든 페이지를 미리 렌더링하는 NextJS 특성상, 다른 페이지로 라우팅이 진행될때, 사용자는 가만히 멈춰있는 화면을 보게될 수 있다. 때문에 페이지 전환을 정지화면으로 두지 않기 위해 로딩 처리를 구현해볼 수 있다.

                                                                                                          로딩 스피너 세팅

                                                                                                          // _app.tsx
                                                                                                          @@ -53,4 +53,4 @@ 

                                                                                                          라우팅 시 적용될 이벤트 설정

                                                                                                          _app.tsx(jsx)에 로딩 스피너나 로딩 페이지를 적용해 놓으면,

                                                                                                          라우팅으로 인한 페이지 이동이 일어날 때마다 원하는 로딩 창을 호출해줄 수 있다.

                                                                                                          적용된 페이지

                                                                                                          -

                                                                                                          image

                                                                                                          "nextjs" 카테고리의 다른 글

                                                                                                            COMMENTS

                                                                                                            \ No newline at end of file +

                                                                                                            image

                                                                                                            "nextjs" 카테고리의 다른 글

                                                                                                              COMMENTS

                                                                                                              \ No newline at end of file diff --git a/nextjs-marked-webpack-imported-module-7-default.html b/nextjs-marked-webpack-imported-module-7-default.html index 5c6039aa..b2962a83 100644 --- a/nextjs-marked-webpack-imported-module-7-default.html +++ b/nextjs-marked-webpack-imported-module-7-default.html @@ -1,6 +1,6 @@ -Rain Sugar BangBang Front-End

                                                                                                              Rain Sugar BangBang

                                                                                                              nextjs

                                                                                                              WEBPACK_IMPORTED_MODULE_7_default is not a function 에러 해결

                                                                                                              2023-03-18

                                                                                                              에러 해결 방법

                                                                                                              +Rain Sugar BangBang Front-End

                                                                                                              Rain Sugar BangBang

                                                                                                              nextjs

                                                                                                              WEBPACK_IMPORTED_MODULE_7_default is not a function 에러 해결

                                                                                                              2023-03-18

                                                                                                              에러 해결 방법

                                                                                                              나의 경우 SSR 데이터를 contextAPI를 통해 패치하려 했으나, 정상적으로 받아오지 못할때 발생한 오류였다.

                                                                                                              로컬 실행 종료 후 재실행하니 정상적으로 데이터를 받아올 수 있었다.

                                                                                                              다소 허탈한 해결방안이었지만, SSR을 다루는 페이지의 데이터가 정상적으로 받아와지지 않는 경우, 코드 작성 후 프로그램을 다시 실행해보자.


                                                                                                              -

                                                                                                              참조 : https://github.com/vercel/next.js/issues/18090

                                                                                                              "nextjs" 카테고리의 다른 글

                                                                                                                COMMENTS

                                                                                                                \ No newline at end of file +

                                                                                                                참조 : https://github.com/vercel/next.js/issues/18090

                                                                                                                "nextjs" 카테고리의 다른 글

                                                                                                                  COMMENTS

                                                                                                                  \ No newline at end of file diff --git a/nextjs-pages-api-dir-unsupported.html b/nextjs-pages-api-dir-unsupported.html index c7133f83..99629272 100644 --- a/nextjs-pages-api-dir-unsupported.html +++ b/nextjs-pages-api-dir-unsupported.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                  Rain Sugar BangBang

                                                                                                                  nextjs

                                                                                                                  NextJS에서 API 디렉토리가 사용되지 않는 이유

                                                                                                                  2023-04-30

                                                                                                                  NextJS는 pages/api 디렉토리를 통해 백엔드에 대한 처리를 수행할 수 있다.

                                                                                                                  +Rain Sugar BangBang Front-End

                                                                                                                  Rain Sugar BangBang

                                                                                                                  nextjs

                                                                                                                  NextJS에서 API 디렉토리가 사용되지 않는 이유

                                                                                                                  2023-04-30

                                                                                                                  NextJS는 pages/api 디렉토리를 통해 백엔드에 대한 처리를 수행할 수 있다.

                                                                                                                  하지만 정적으로 배포된 사이트(ex. 블로그 등)에서는 pages/api 등과 같은 동적 로직은 지원되지 않기 때문에 api 디렉토리를 사용할 수 없다.

                                                                                                                  정적 배포 방법

                                                                                                                  // package.json
                                                                                                                  @@ -25,4 +25,4 @@
                                                                                                                   module.exports = nextConfig

                                                                                                                  참조

                                                                                                                  -

                                                                                                                  https://nextjs.org/docs/advanced-features/static-html-export

                                                                                                                  "nextjs" 카테고리의 다른 글

                                                                                                                    COMMENTS

                                                                                                                    \ No newline at end of file +

                                                                                                                    https://nextjs.org/docs/advanced-features/static-html-export

                                                                                                                    "nextjs" 카테고리의 다른 글

                                                                                                                      COMMENTS

                                                                                                                      \ No newline at end of file diff --git a/nextjs-prop-classname-did-not-match.html b/nextjs-prop-classname-did-not-match.html index c052378e..66d1d8dd 100644 --- a/nextjs-prop-classname-did-not-match.html +++ b/nextjs-prop-classname-did-not-match.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                      Rain Sugar BangBang

                                                                                                                      nextjs

                                                                                                                      prop `classname` did not match. with styled-components

                                                                                                                      2023-04-30

                                                                                                                      prop 'classname' did not match. with styled-components 에러 해결 방법

                                                                                                                      +Rain Sugar BangBang Front-End

                                                                                                                      Rain Sugar BangBang

                                                                                                                      nextjs

                                                                                                                      prop `classname` did not match. with styled-components

                                                                                                                      2023-04-30

                                                                                                                      prop 'classname' did not match. with styled-components 에러 해결 방법

                                                                                                                      NextJS의 next.config를 수정해준다.

                                                                                                                      /** @type {import('next').NextConfig} */
                                                                                                                       const nextConfig = {
                                                                                                                      @@ -8,4 +8,4 @@
                                                                                                                         },
                                                                                                                       };
                                                                                                                       
                                                                                                                      -module.exports = nextConfig;

                                                                                                                      "nextjs" 카테고리의 다른 글

                                                                                                                        COMMENTS

                                                                                                                        \ No newline at end of file +module.exports = nextConfig;

                                                                                                                        "nextjs" 카테고리의 다른 글

                                                                                                                          COMMENTS

                                                                                                                          \ No newline at end of file diff --git a/nextjs-react-responsive.html b/nextjs-react-responsive.html index 18976586..bc1a07a4 100644 --- a/nextjs-react-responsive.html +++ b/nextjs-react-responsive.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                          Rain Sugar BangBang

                                                                                                                          nextjs

                                                                                                                          nextjs에 react responsive 적용하기

                                                                                                                          2023-03-04

                                                                                                                          이번에 새로 만들고 있는 토이 프로젝트를 작업하던 중, 모바일 화면일때만 화면을 보여주고 싶었다. 단, 모든 컴포넌트에 미디어쿼리를 통해 작성해줄 수는 없기에 react-responsive를 적용해 화면이 481px을 넘어가면 고정된 페이지를 보여줄 수 있도록 코드를 작성했다.

                                                                                                                          +Rain Sugar BangBang Front-End

                                                                                                                          Rain Sugar BangBang

                                                                                                                          nextjs

                                                                                                                          nextjs에 react responsive 적용하기

                                                                                                                          2023-03-04

                                                                                                                          이번에 새로 만들고 있는 토이 프로젝트를 작업하던 중, 모바일 화면일때만 화면을 보여주고 싶었다. 단, 모든 컴포넌트에 미디어쿼리를 통해 작성해줄 수는 없기에 react-responsive를 적용해 화면이 481px을 넘어가면 고정된 페이지를 보여줄 수 있도록 코드를 작성했다.

                                                                                                                          react-responsive 설치

                                                                                                                          yarn add react-responsive

                                                                                                                          hook 설정

                                                                                                                          @@ -86,4 +86,4 @@

                                                                                                                          코드 수정

                                                                                                                          useMideaQuery가 window 화면을 기준으로 동작하기 때문에,

                                                                                                                          공식문서의 예제와 비슷하게 useState를 통한 boolean 값으로 화면을 노출시켜줬다.

                                                                                                                          위의 방식을 적용하니 hydration 에러 없이 잘 작동하는 모습을 볼 수 있었다.

                                                                                                                          -

                                                                                                                          image

                                                                                                                          "nextjs" 카테고리의 다른 글

                                                                                                                            COMMENTS

                                                                                                                            \ No newline at end of file +

                                                                                                                            image

                                                                                                                            "nextjs" 카테고리의 다른 글

                                                                                                                              COMMENTS

                                                                                                                              \ No newline at end of file diff --git a/nextjs.html b/nextjs.html index c66c7fe5..bce036a4 100644 --- a/nextjs.html +++ b/nextjs.html @@ -1 +1 @@ -Rain Sugar BangBang Front-End \ No newline at end of file +Rain Sugar BangBang Front-End \ No newline at end of file diff --git a/profile.html b/profile.html index dfd999ac..63523a42 100644 --- a/profile.html +++ b/profile.html @@ -1 +1 @@ -
                                                                                                                              Back to Blog
                                                                                                                              Welcome To My Profile
                                                                                                                              profileYo Han (26)

                                                                                                                              Introduction

                                                                                                                              • 안녕하세요! 프론트엔드 개발자 Yohan입니다.
                                                                                                                              • 실질적인 문제 해결에 기여한다는 매력에 이끌려 개발자의 길을 걷고 있습니다.
                                                                                                                              • 작은 것이라도 새롭게 배운 것은 Github나 블로그를 통해 꾸준히 기록합니다.
                                                                                                                              • 좋은 코드에 대해 끊임없이 고민하고 있습니다.
                                                                                                                              • 개인의 성장에 많은 관심이 있습니다.

                                                                                                                              Contact & Channel

                                                                                                                              Connect : yhl0078@gmail.com

                                                                                                                              Skills

                                                                                                                              Languages

                                                                                                                              stackCardstackCardstackCardstackCard

                                                                                                                              FrameWorks

                                                                                                                              stackCardstackCard

                                                                                                                              Librarys

                                                                                                                              stackCardstackCardstackCardstackCard

                                                                                                                              DevOps

                                                                                                                              stackCardstackCardstackCardstackCard

                                                                                                                              Now Learning...

                                                                                                                              stackCardstackCard

                                                                                                                              Projects

                                                                                                                              EVER-RENT

                                                                                                                              개인 간 중고 물품 렌탈 거래 플랫폼 개발

                                                                                                                              팀원 (React: 3명 / Spring 2명)

                                                                                                                                핵심경험

                                                                                                                              • Kakao map API를 이용한 위치 정보 조회
                                                                                                                              • Redux/toolkit을 이용한 글 목록 구현 (무한 스크롤 / 페이지네이션)
                                                                                                                              • 카테고리, 지역별 제품 필터링, 검색 기능 연동
                                                                                                                              • LoadingSpinner, SkeletonUI 제작
                                                                                                                              • React-datepicker를 이용한 custom calendar 제작
                                                                                                                              • React-responsive(mediaQuery)를 이용한 반응형 웹 적용
                                                                                                                              • Github Link

                                                                                                                                핵심경험

                                                                                                                              • 기능 구현 코드 복습과 더 나은 코드에 대한 고민
                                                                                                                              • 부드러운 다크모드 전환 구현
                                                                                                                              • 기능별 컴포넌트의 분리를 통해 라이브러리와 유사한 틀 구성
                                                                                                                              • Github Link

                                                                                                                              ToyCode

                                                                                                                              라이브러리를 사용하지 않은 간단한 기능 구현

                                                                                                                              개인 프로젝트

                                                                                                                              Personal Experience

                                                                                                                              Now Doing

                                                                                                                              개인 프로젝트

                                                                                                                            • 나혼밥 레시피 - 혼자 사는 사람들의 레시피 공유 사이트- github Link
                                                                                                                            • GITHUB Blog - 개인 블로그 개발- github Link
                                                                                                                            • ToyCode - 간단한 기능 복습- github Link
                                                                                                                            • 코드스니펫 - 반복되는 코드를 최소화하기 위한 간단한 스니펫 제작- github Link
                                                                                                                            • eggseggseggseggseggs
                                                                                                                              Click Me!

                                                                                                                              또 와주셨네요!

                                                                                                                              블로그를 먼저 보시려면 좌측 상단의 버튼을 눌러주세요!

                                                                                                                              아직 많이 부족하지만 점점 채우고 있습니다!

                                                                                                                            • 자유롭게 의견을 남겨주신다면 미리 감사드립니다!!
                                                                                                                            • \ No newline at end of file +
                                                                                                                              Back to Blog
                                                                                                                              Welcome To My Profile
                                                                                                                              profileYo Han (26)

                                                                                                                              Introduction

                                                                                                                              • 안녕하세요! 프론트엔드 개발자 Yohan입니다.
                                                                                                                              • 실질적인 문제 해결에 기여한다는 매력에 이끌려 개발자의 길을 걷고 있습니다.
                                                                                                                              • 작은 것이라도 새롭게 배운 것은 Github나 블로그를 통해 꾸준히 기록합니다.
                                                                                                                              • 좋은 코드에 대해 끊임없이 고민하고 있습니다.
                                                                                                                              • 개인의 성장에 많은 관심이 있습니다.

                                                                                                                              Contact & Channel

                                                                                                                              Connect : yhl0078@gmail.com

                                                                                                                              Skills

                                                                                                                              Languages

                                                                                                                              stackCardstackCardstackCardstackCard

                                                                                                                              FrameWorks

                                                                                                                              stackCardstackCard

                                                                                                                              Librarys

                                                                                                                              stackCardstackCardstackCardstackCard

                                                                                                                              DevOps

                                                                                                                              stackCardstackCardstackCardstackCard

                                                                                                                              Now Learning...

                                                                                                                              stackCardstackCard

                                                                                                                              Projects

                                                                                                                              EVER-RENT

                                                                                                                              개인 간 중고 물품 렌탈 거래 플랫폼 개발

                                                                                                                              팀원 (React: 3명 / Spring 2명)

                                                                                                                                핵심경험

                                                                                                                              • Kakao map API를 이용한 위치 정보 조회
                                                                                                                              • Redux/toolkit을 이용한 글 목록 구현 (무한 스크롤 / 페이지네이션)
                                                                                                                              • 카테고리, 지역별 제품 필터링, 검색 기능 연동
                                                                                                                              • LoadingSpinner, SkeletonUI 제작
                                                                                                                              • React-datepicker를 이용한 custom calendar 제작
                                                                                                                              • React-responsive(mediaQuery)를 이용한 반응형 웹 적용
                                                                                                                              • Github Link

                                                                                                                                핵심경험

                                                                                                                              • 기능 구현 코드 복습과 더 나은 코드에 대한 고민
                                                                                                                              • 부드러운 다크모드 전환 구현
                                                                                                                              • 기능별 컴포넌트의 분리를 통해 라이브러리와 유사한 틀 구성
                                                                                                                              • Github Link

                                                                                                                              ToyCode

                                                                                                                              라이브러리를 사용하지 않은 간단한 기능 구현

                                                                                                                              개인 프로젝트

                                                                                                                              Personal Experience

                                                                                                                              Now Doing

                                                                                                                              개인 프로젝트

                                                                                                                            • 나혼밥 레시피 - 혼자 사는 사람들의 레시피 공유 사이트- github Link
                                                                                                                            • GITHUB Blog - 개인 블로그 개발- github Link
                                                                                                                            • ToyCode - 간단한 기능 복습- github Link
                                                                                                                            • 코드스니펫 - 반복되는 코드를 최소화하기 위한 간단한 스니펫 제작- github Link
                                                                                                                            • eggseggseggseggseggs
                                                                                                                              Click Me!

                                                                                                                              또 와주셨네요!

                                                                                                                              블로그를 먼저 보시려면 좌측 상단의 버튼을 눌러주세요!

                                                                                                                              아직 많이 부족하지만 점점 채우고 있습니다!

                                                                                                                            • 자유롭게 의견을 남겨주신다면 미리 감사드립니다!!
                                                                                                                            • \ No newline at end of file diff --git a/react-common-components.html b/react-common-components.html index 39a54f93..57cfb9c6 100644 --- a/react-common-components.html +++ b/react-common-components.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                              Rain Sugar BangBang

                                                                                                                              react

                                                                                                                              React 공통 컴포넌트 제작 (input, button)

                                                                                                                              2023-04-13

                                                                                                                              공통 컴포넌트 제작의 필요성

                                                                                                                              +Rain Sugar BangBang Front-End

                                                                                                                              Rain Sugar BangBang

                                                                                                                              react

                                                                                                                              React 공통 컴포넌트 제작 (input, button)

                                                                                                                              2023-04-13

                                                                                                                              공통 컴포넌트 제작의 필요성

                                                                                                                              하나의 사이트를 제작할때 비슷한 input이나 button을 사용해야 하는 상황이 자주 있는데, 공통된 컴포넌트를 만들어 놓으면 코드 중복을 줄이면서 상황에 맞춰 적절하게 사용할 수 있게 된다.

                                                                                                                              @@ -149,4 +149,4 @@

                                                                                                                              Button

                                                                                                                              &:hover { background-color: ${props => props.theme.mainButtonHover}; } -`;

                                                                                                                              "react" 카테고리의 다른 글

                                                                                                                                COMMENTS

                                                                                                                                \ No newline at end of file +`;

                                                                                                                                "react" 카테고리의 다른 글

                                                                                                                                  COMMENTS

                                                                                                                                  \ No newline at end of file diff --git a/react-component-lifecycle.html b/react-component-lifecycle.html index 8298e836..8c63dfb9 100644 --- a/react-component-lifecycle.html +++ b/react-component-lifecycle.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                  Rain Sugar BangBang

                                                                                                                                  react

                                                                                                                                  React 함수형 컴포넌트와 Class형 컴포넌트 생명주기

                                                                                                                                  2023-03-23

                                                                                                                                  React state와 LifeCycle

                                                                                                                                  +Rain Sugar BangBang Front-End

                                                                                                                                  Rain Sugar BangBang

                                                                                                                                  \ No newline at end of file +

                                                                                                                                  https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html

                                                                                                                                  "react" 카테고리의 다른 글

                                                                                                                                    COMMENTS

                                                                                                                                    \ No newline at end of file diff --git a/react-context-api.html b/react-context-api.html index a269f986..17bbe437 100644 --- a/react-context-api.html +++ b/react-context-api.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                    Rain Sugar BangBang

                                                                                                                                    react

                                                                                                                                    ContextAPI 사용하기

                                                                                                                                    2023-03-15

                                                                                                                                    ContextAPI

                                                                                                                                    +Rain Sugar BangBang Front-End

                                                                                                                                    Rain Sugar BangBang

                                                                                                                                    react

                                                                                                                                    ContextAPI 사용하기

                                                                                                                                    2023-03-15

                                                                                                                                    ContextAPI

                                                                                                                                    간단한 데이터의 변화를 props drilling 없이 전역적으로 관리해주기 위해 ContextAPI를 사용해볼 수 있다.

                                                                                                                                    @@ -126,4 +126,4 @@

                                                                                                                                    TypeScript에서는 context 초기값 등의 설정이 필요하다.

                                                                                                                                    if (posts) { update(posts); } - }, [posts, update]);

                                                                                                                                    "react" 카테고리의 다른 글

                                                                                                                                      COMMENTS

                                                                                                                                      \ No newline at end of file + }, [posts, update]);

                                                                                                                                      "react" 카테고리의 다른 글

                                                                                                                                        COMMENTS

                                                                                                                                        \ No newline at end of file diff --git a/react-datepicker.html b/react-datepicker.html index 0a0e7490..eb4f91dd 100644 --- a/react-datepicker.html +++ b/react-datepicker.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                        Rain Sugar BangBang

                                                                                                                                        react

                                                                                                                                        React datepicker 사용하기

                                                                                                                                        2023-03-03

                                                                                                                                        React Datepicker 사용하기

                                                                                                                                        +Rain Sugar BangBang Front-End

                                                                                                                                        Rain Sugar BangBang

                                                                                                                                        react

                                                                                                                                        React datepicker 사용하기

                                                                                                                                        2023-03-03

                                                                                                                                        React Datepicker 사용하기

                                                                                                                                        공식 문서

                                                                                                                                        https://reactdatepicker.com/

                                                                                                                                        package 설치

                                                                                                                                        @@ -67,4 +67,4 @@

                                                                                                                                        스타일 적용

                                                                                                                                        /* ... */ -

                                                                                                                                        코드가 길어지더라도 jsx와 철저하게 분리하고 싶다면 이런 방법도 나쁘지 않은 것 같다.

                                                                                                                                        "react" 카테고리의 다른 글

                                                                                                                                          COMMENTS

                                                                                                                                          \ No newline at end of file +

                                                                                                                                          코드가 길어지더라도 jsx와 철저하게 분리하고 싶다면 이런 방법도 나쁘지 않은 것 같다.

                                                                                                                                          "react" 카테고리의 다른 글

                                                                                                                                            COMMENTS

                                                                                                                                            \ No newline at end of file diff --git a/react-media-query.html b/react-media-query.html index cbb19cba..570432c4 100644 --- a/react-media-query.html +++ b/react-media-query.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                            Rain Sugar BangBang

                                                                                                                                            react

                                                                                                                                            React mediaQuery 사용법

                                                                                                                                            2023-03-03

                                                                                                                                            react-responsive 사용해보기

                                                                                                                                            +Rain Sugar BangBang Front-End

                                                                                                                                            Rain Sugar BangBang

                                                                                                                                            react

                                                                                                                                            React mediaQuery 사용법

                                                                                                                                            2023-03-03

                                                                                                                                            react-responsive 사용해보기

                                                                                                                                            공식 사이트 : https://yarnpkg.com/package/react-responsive

                                                                                                                                            CSS의 mediaQuery를 사용해볼 수도 있지만, 간편하게 적용할 수 있는 패키지가 있어서 사용해봤다.

                                                                                                                                            패키지 설치

                                                                                                                                            @@ -43,4 +43,4 @@

                                                                                                                                            useMediaQuery 사용

                                                                                                                                            </> ); }; -

                                                                                                                                            편의상 한 컴포넌트에 다 집어넣을 수도 있지만, 모바일과 데스크탑 환경의 view는 아예 다른 경우가 많기 때문에, 코드 관리를 편하게 하기 위해서는 모바일 컴포넌트를 따로 만드는게 더 나을 것 같다는 생각이 든다.

                                                                                                                                            "react" 카테고리의 다른 글

                                                                                                                                              COMMENTS

                                                                                                                                              \ No newline at end of file +

                                                                                                                                              편의상 한 컴포넌트에 다 집어넣을 수도 있지만, 모바일과 데스크탑 환경의 view는 아예 다른 경우가 많기 때문에, 코드 관리를 편하게 하기 위해서는 모바일 컴포넌트를 따로 만드는게 더 나을 것 같다는 생각이 든다.

                                                                                                                                              "react" 카테고리의 다른 글

                                                                                                                                                COMMENTS

                                                                                                                                                \ No newline at end of file diff --git a/react-memo.html b/react-memo.html index 5b6a125a..29460f85 100644 --- a/react-memo.html +++ b/react-memo.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                Rain Sugar BangBang

                                                                                                                                                react

                                                                                                                                                React.memo() 를 통한 컴포넌트 최적화

                                                                                                                                                2023-03-16
                                                                                                                                                +Rain Sugar BangBang Front-End

                                                                                                                                                Rain Sugar BangBang

                                                                                                                                                \ No newline at end of file +

                                                                                                                                                https://ui.toast.com/weekly-pick/ko_20190731

                                                                                                                                                "react" 카테고리의 다른 글

                                                                                                                                                  COMMENTS

                                                                                                                                                  \ No newline at end of file diff --git a/react-modal-non-library.html b/react-modal-non-library.html index 9765e427..8985245d 100644 --- a/react-modal-non-library.html +++ b/react-modal-non-library.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                  Rain Sugar BangBang

                                                                                                                                                  react

                                                                                                                                                  라이브러리 없이 React Modal 만들기

                                                                                                                                                  2023-03-03

                                                                                                                                                  라이브러리 없이 모달창 만들어보기

                                                                                                                                                  +Rain Sugar BangBang Front-End

                                                                                                                                                  Rain Sugar BangBang

                                                                                                                                                  react

                                                                                                                                                  라이브러리 없이 React Modal 만들기

                                                                                                                                                  2023-03-03

                                                                                                                                                  라이브러리 없이 모달창 만들어보기

                                                                                                                                                  모달 버튼이 있는 페이지

                                                                                                                                                  // ModalTest.jsx
                                                                                                                                                   
                                                                                                                                                  @@ -73,4 +73,4 @@
                                                                                                                                                   `;

                                                                                                                                                  브라우저 화면

                                                                                                                                                  image

                                                                                                                                                  -

                                                                                                                                                  스타일은 용도에 맞게 다양하게 변경시킬 수 있다.

                                                                                                                                                  "react" 카테고리의 다른 글

                                                                                                                                                    COMMENTS

                                                                                                                                                    \ No newline at end of file +

                                                                                                                                                    스타일은 용도에 맞게 다양하게 변경시킬 수 있다.

                                                                                                                                                    "react" 카테고리의 다른 글

                                                                                                                                                      COMMENTS

                                                                                                                                                      \ No newline at end of file diff --git a/react-navigate-props.html b/react-navigate-props.html index 6ee2ab64..4f0266b1 100644 --- a/react-navigate-props.html +++ b/react-navigate-props.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                      Rain Sugar BangBang

                                                                                                                                                      react

                                                                                                                                                      React navigate로 props 넘기기

                                                                                                                                                      2023-03-03

                                                                                                                                                      useNavigate를 이용한 props 전달

                                                                                                                                                      +Rain Sugar BangBang Front-End

                                                                                                                                                      Rain Sugar BangBang

                                                                                                                                                      react

                                                                                                                                                      React navigate로 props 넘기기

                                                                                                                                                      2023-03-03

                                                                                                                                                      useNavigate를 이용한 props 전달

                                                                                                                                                      useNavigate로 다른 페이지의 화면으로 이동할 때, props처럼 값을 넘기는 방법을 사용해볼 수 있다.

                                                                                                                                                      
                                                                                                                                                       // 보내는컴포넌트.jsx
                                                                                                                                                      @@ -32,4 +32,4 @@ 

                                                                                                                                                      useNavigate로 다른 페이지의 화면으로 이동할 때, props처럼

                                                                                                                                                      위와 같이 작성은 아래와 같이 데이터를 받아오는 것을 보여준다.

                                                                                                                                                      image

                                                                                                                                                      -

                                                                                                                                                      하지만 데이터를 받는 페이지가 직접적으로 접속할 수 있는 페이지라면 그렇게 접속한 페이지는 아무 데이터가 없는 화면으로 노출될 수 있기 때문에, 전역 상태를 관리해줄지, 데이터를 넘겨줄지 상황에 알맞는 방식을 적용하는 것이 중요하다.

                                                                                                                                                      "react" 카테고리의 다른 글

                                                                                                                                                        COMMENTS

                                                                                                                                                        \ No newline at end of file +

                                                                                                                                                        하지만 데이터를 받는 페이지가 직접적으로 접속할 수 있는 페이지라면 그렇게 접속한 페이지는 아무 데이터가 없는 화면으로 노출될 수 있기 때문에, 전역 상태를 관리해줄지, 데이터를 넘겨줄지 상황에 알맞는 방식을 적용하는 것이 중요하다.

                                                                                                                                                        "react" 카테고리의 다른 글

                                                                                                                                                          COMMENTS

                                                                                                                                                          \ No newline at end of file diff --git a/react-simple-formdata-code.html b/react-simple-formdata-code.html index 3e52c863..dc2ca57b 100644 --- a/react-simple-formdata-code.html +++ b/react-simple-formdata-code.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                          Rain Sugar BangBang

                                                                                                                                                          react

                                                                                                                                                          react formdata 코드간소화

                                                                                                                                                          2023-03-03

                                                                                                                                                          FormData 저장 코드 간소화하기

                                                                                                                                                          +Rain Sugar BangBang Front-End

                                                                                                                                                          Rain Sugar BangBang

                                                                                                                                                          react

                                                                                                                                                          react formdata 코드간소화

                                                                                                                                                          2023-03-03

                                                                                                                                                          FormData 저장 코드 간소화하기

                                                                                                                                                          하나의 폼에서 여러 개의 input 값을 변경하기 위해 함수를 만들어 간단하게 코드를 간소화시킬 수 있다.

                                                                                                                                                          // form.tsx
                                                                                                                                                           <Container onSubmit={e => onSubmitHandler(e, dispatch)}>
                                                                                                                                                          @@ -69,4 +69,4 @@
                                                                                                                                                             const { name, value } = e.target.name;
                                                                                                                                                             setFormData(prev => ({ ...prev, [name]: value }));
                                                                                                                                                           };
                                                                                                                                                          -

                                                                                                                                                          html input의 name 속성을 이용해 setState 코드를 간소화시킬 수 있는 방법이다.

                                                                                                                                                          "react" 카테고리의 다른 글

                                                                                                                                                            COMMENTS

                                                                                                                                                            \ No newline at end of file +

                                                                                                                                                            html input의 name 속성을 이용해 setState 코드를 간소화시킬 수 있는 방법이다.

                                                                                                                                                            "react" 카테고리의 다른 글

                                                                                                                                                              COMMENTS

                                                                                                                                                              \ No newline at end of file diff --git a/react-smooth-scroll.html b/react-smooth-scroll.html index 8b0e655b..5b36c17d 100644 --- a/react-smooth-scroll.html +++ b/react-smooth-scroll.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                              Rain Sugar BangBang

                                                                                                                                                              react

                                                                                                                                                              React/Javascript 부드러운 스크롤 이동 적용

                                                                                                                                                              2023-03-25

                                                                                                                                                              부드러운 스크롤 이동 적용 방법

                                                                                                                                                              +Rain Sugar BangBang Front-End

                                                                                                                                                              Rain Sugar BangBang

                                                                                                                                                              react

                                                                                                                                                              React/Javascript 부드러운 스크롤 이동 적용

                                                                                                                                                              2023-03-25

                                                                                                                                                              부드러운 스크롤 이동 적용 방법

                                                                                                                                                              behavior:"smooth" 속성을 scroll 이벤트와 scroll 메서드와 같이 사용하며 부드러운 스크롤 이동을 적용해볼 수 있다.

                                                                                                                                                              @@ -208,4 +208,4 @@

                                                                                                                                                              a 태그를 통한 스크롤 이동

                                                                                                                                                              https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll

                                                                                                                                                              requestAnimationFrame

                                                                                                                                                              https://developer.mozilla.org/ko/docs/Web/API/window/requestAnimationFrame

                                                                                                                                                              -

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

                                                                                                                                                              "react" 카테고리의 다른 글

                                                                                                                                                                COMMENTS

                                                                                                                                                                \ No newline at end of file +

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

                                                                                                                                                                "react" 카테고리의 다른 글

                                                                                                                                                                  COMMENTS

                                                                                                                                                                  \ No newline at end of file diff --git a/react-styled-components-hover.html b/react-styled-components-hover.html index 4771a81c..17ce0310 100644 --- a/react-styled-components-hover.html +++ b/react-styled-components-hover.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                                  Rain Sugar BangBang

                                                                                                                                                                  react

                                                                                                                                                                  react에 styled-components를 이용해 hover 적용하기

                                                                                                                                                                  2023-03-03

                                                                                                                                                                  리액트 스타일 컴포넌트에 hover 적용하기

                                                                                                                                                                  +Rain Sugar BangBang Front-End

                                                                                                                                                                  Rain Sugar BangBang

                                                                                                                                                                  react

                                                                                                                                                                  react에 styled-components를 이용해 hover 적용하기

                                                                                                                                                                  2023-03-03

                                                                                                                                                                  리액트 스타일 컴포넌트에 hover 적용하기

                                                                                                                                                                  // &:hover를 넣는다.
                                                                                                                                                                   
                                                                                                                                                                   const ButtonStyle = styled.button`
                                                                                                                                                                  @@ -24,4 +24,4 @@
                                                                                                                                                                     /* 마우스로 링크를 클릭하고 뗄 때까지의 스타일 */
                                                                                                                                                                     &:active {
                                                                                                                                                                     }
                                                                                                                                                                  -`;

                                                                                                                                                                  "react" 카테고리의 다른 글

                                                                                                                                                                    COMMENTS

                                                                                                                                                                    \ No newline at end of file +`;

                                                                                                                                                                    "react" 카테고리의 다른 글

                                                                                                                                                                      COMMENTS

                                                                                                                                                                      \ No newline at end of file diff --git a/react-submit-prevent-default.html b/react-submit-prevent-default.html index b5b6f99b..6cc49585 100644 --- a/react-submit-prevent-default.html +++ b/react-submit-prevent-default.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                                      Rain Sugar BangBang

                                                                                                                                                                      react

                                                                                                                                                                      form 태그에서 submit 이벤트 방지하기

                                                                                                                                                                      2023-03-03

                                                                                                                                                                      react form에서 submit 이벤트 방지하기

                                                                                                                                                                      +Rain Sugar BangBang Front-End

                                                                                                                                                                      Rain Sugar BangBang

                                                                                                                                                                      react

                                                                                                                                                                      form 태그에서 submit 이벤트 방지하기

                                                                                                                                                                      2023-03-03

                                                                                                                                                                      react form에서 submit 이벤트 방지하기

                                                                                                                                                                      submit 이벤트가 발생하면 페이지가 새로고침이 된다.

                                                                                                                                                                      단순히 페이지가 리프레시 되는 것도 좋은 사용자 경험이 아닌데, 임시로 저장돼있던 데이터(회원가입 정보 등)가 날아가면 React의 작동 방식을 거스를 뿐 아니라 사용자 경험에도 치명적이다.

                                                                                                                                                                      떄문에 우리는 sumbit 이벤트를 멈춰줄 필요가 있다.

                                                                                                                                                                      @@ -17,4 +17,4 @@

                                                                                                                                                                      submit 이벤트가 발생하면 페이지가 새로고침이 된다.

                                                                                                                                                                      </form> ); }; -

                                                                                                                                                                      위와 같이 작성하면 같은 폼 안에 있는 경우에 대해 submit 방지가 잘 되는 것을 확인할 수 있다.

                                                                                                                                                                      "react" 카테고리의 다른 글

                                                                                                                                                                        COMMENTS

                                                                                                                                                                        \ No newline at end of file +

                                                                                                                                                                        위와 같이 작성하면 같은 폼 안에 있는 경우에 대해 submit 방지가 잘 되는 것을 확인할 수 있다.

                                                                                                                                                                        "react" 카테고리의 다른 글

                                                                                                                                                                          COMMENTS

                                                                                                                                                                          \ No newline at end of file diff --git a/react-type-assertion.html b/react-type-assertion.html index 5e2be50b..0a582102 100644 --- a/react-type-assertion.html +++ b/react-type-assertion.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                                          Rain Sugar BangBang

                                                                                                                                                                          react

                                                                                                                                                                          React Form event type (feat. 타입 단언 as)

                                                                                                                                                                          2023-04-13

                                                                                                                                                                          Form Event Type

                                                                                                                                                                          +Rain Sugar BangBang Front-End

                                                                                                                                                                          Rain Sugar BangBang

                                                                                                                                                                          react

                                                                                                                                                                          React Form event type (feat. 타입 단언 as)

                                                                                                                                                                          2023-04-13

                                                                                                                                                                          Form Event Type

                                                                                                                                                                          우리는 로그인이나 포스팅 등의 화면을 만들어줄 때 클라이언트가 입력하는 데이터를 입력받는 방법 중 하나로 onChange 등의 FormEvent를 이용해 원하는 값을 추출할 수 있다. 이때 이벤트 타입은 아래와 같이 사용될 수 있다.

                                                                                                                                                                          import { FormEvent } from "react";
                                                                                                                                                                           
                                                                                                                                                                          @@ -35,4 +35,4 @@ 

                                                                                                                                                                          주의사항

                                                                                                                                                                          if(someMutation){ // ... nest logic } -}

                                                                                                                                                                          "react" 카테고리의 다른 글

                                                                                                                                                                            COMMENTS

                                                                                                                                                                            \ No newline at end of file +}

                                                                                                                                                                            "react" 카테고리의 다른 글

                                                                                                                                                                              COMMENTS

                                                                                                                                                                              \ No newline at end of file diff --git a/react-usecallback.html b/react-usecallback.html index 115c2444..391765ba 100644 --- a/react-usecallback.html +++ b/react-usecallback.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                                              Rain Sugar BangBang

                                                                                                                                                                              react

                                                                                                                                                                              useCallback을 이용한 컴포넌트 최적화하기

                                                                                                                                                                              2023-03-16

                                                                                                                                                                              useCallback이란?

                                                                                                                                                                              +Rain Sugar BangBang Front-End

                                                                                                                                                                              Rain Sugar BangBang

                                                                                                                                                                              react

                                                                                                                                                                              useCallback을 이용한 컴포넌트 최적화하기

                                                                                                                                                                              2023-03-16

                                                                                                                                                                              useCallback이란?

                                                                                                                                                                              특정 함수를 새로 만들지 않고 재사용하고 싶을때 사용하는 함수 메모이제이션용 React hook이다.

                                                                                                                                                                              @@ -156,4 +156,4 @@

                                                                                                                                                                              useCallback 남용 시 문제점

                                                                                                                                                                              memo, useMemo, useCallback 등 어떤 Memoization이나 부적절하게 사용할 경우 오히려 성능이 떨어질 수 있기 때문에 상황에 맞게 적절하게 사용하는 것이 좋은 것 같다.


                                                                                                                                                                              -

                                                                                                                                                                              참조: https://beta.reactjs.org/reference/react/useCallback

                                                                                                                                                                              "react" 카테고리의 다른 글

                                                                                                                                                                                COMMENTS

                                                                                                                                                                                \ No newline at end of file +

                                                                                                                                                                                참조: https://beta.reactjs.org/reference/react/useCallback

                                                                                                                                                                                "react" 카테고리의 다른 글

                                                                                                                                                                                  COMMENTS

                                                                                                                                                                                  \ No newline at end of file diff --git a/react-usememo.html b/react-usememo.html index 86cd60be..82ea7f79 100644 --- a/react-usememo.html +++ b/react-usememo.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                                                  Rain Sugar BangBang

                                                                                                                                                                                  react

                                                                                                                                                                                  useMemo를 이용한 컴포넌트 최적화하기

                                                                                                                                                                                  2023-03-16

                                                                                                                                                                                  useMemo란?

                                                                                                                                                                                  +Rain Sugar BangBang Front-End

                                                                                                                                                                                  Rain Sugar BangBang

                                                                                                                                                                                  react

                                                                                                                                                                                  useMemo를 이용한 컴포넌트 최적화하기

                                                                                                                                                                                  2023-03-16

                                                                                                                                                                                  useMemo란?

                                                                                                                                                                                  useMemo는 React.memo(), useCallback과 같이 컴포넌트를 최적화하기 위한 훅 중 하나이다.

                                                                                                                                                                                  @@ -124,4 +124,4 @@

                                                                                                                                                                                  연산 비용이 비싸다는 기준은?

                                                                                                                                                                                  실제로 React의 성능 문제 대부분은 Effect에서 발생하는 업데이트 체인으로 인해 발생한다고 한다.


                                                                                                                                                                                  -

                                                                                                                                                                                  참조 : https://beta.reactjs.org/reference/react/useMemo

                                                                                                                                                                                  "react" 카테고리의 다른 글

                                                                                                                                                                                    COMMENTS

                                                                                                                                                                                    \ No newline at end of file +

                                                                                                                                                                                    참조 : https://beta.reactjs.org/reference/react/useMemo

                                                                                                                                                                                    "react" 카테고리의 다른 글

                                                                                                                                                                                      COMMENTS

                                                                                                                                                                                      \ No newline at end of file diff --git a/react-z-index-error.html b/react-z-index-error.html index bbbca8ab..b903e4a9 100644 --- a/react-z-index-error.html +++ b/react-z-index-error.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                                                      Rain Sugar BangBang

                                                                                                                                                                                      react

                                                                                                                                                                                      z-index가 올바르게 적용되지 않을때 적용해볼 수 있는 방법

                                                                                                                                                                                      2023-03-03

                                                                                                                                                                                      z-index 미적용시 해결방법

                                                                                                                                                                                      +Rain Sugar BangBang Front-End

                                                                                                                                                                                      Rain Sugar BangBang

                                                                                                                                                                                      react

                                                                                                                                                                                      z-index가 올바르게 적용되지 않을때 적용해볼 수 있는 방법

                                                                                                                                                                                      2023-03-03

                                                                                                                                                                                      z-index 미적용시 해결방법

                                                                                                                                                                                      image

                                                                                                                                                                                      위와 같이 z-index를 999로 적용해도 원하는대로 작동하지 않는 경우를 볼 수 있다.

                                                                                                                                                                                      MDN 공식 문서 : https://developer.mozilla.org/ko/docs/Web/CSS/z-index

                                                                                                                                                                                      @@ -17,4 +17,4 @@

                                                                                                                                                                                      z-index가 제대로 작동하지 않을때 참고할만한 사항

                                                                                                                                                                                    • opacity나 transform과 같은 css 속성이 설정돼있는지 확인한다. 해당 css요소가 설정돼있다면 1번의 기준에 맞춰 코드를 다시 작성해준다.
                                                                                                                                                                                    • 이정도면 버그를 수정하는데 충분하지만 더 싶도 깊은 내용은 아래를 참고해보면 좋을 것 같다.

                                                                                                                                                                                      -

                                                                                                                                                                                      참조 : https://coder-coder.com/z-index-isnt-working/

                                                                                                                                                                                      "react" 카테고리의 다른 글

                                                                                                                                                                                        COMMENTS

                                                                                                                                                                                        \ No newline at end of file +

                                                                                                                                                                                        참조 : https://coder-coder.com/z-index-isnt-working/

                                                                                                                                                                                        "react" 카테고리의 다른 글

                                                                                                                                                                                          COMMENTS

                                                                                                                                                                                          \ No newline at end of file diff --git a/react.html b/react.html index ec3a7e9f..b195047c 100644 --- a/react.html +++ b/react.html @@ -1 +1 @@ -Rain Sugar BangBang Front-End \ No newline at end of file +Rain Sugar BangBang Front-End \ No newline at end of file diff --git a/redux-mock-server.html b/redux-mock-server.html index 7b15498e..0ab05458 100644 --- a/redux-mock-server.html +++ b/redux-mock-server.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                                                          Rain Sugar BangBang

                                                                                                                                                                                          redux

                                                                                                                                                                                          postman을 이용해 redux Mock server(json-server) 사용해보기

                                                                                                                                                                                          2023-03-04

                                                                                                                                                                                          React를 사용하면서 서버와 연결 전, Post Man을 통해 임시로 서버를 연결해 React와 소통하는 데이터와 view가 어떻게 처리되는지 확인하고 싶을때 사용해볼 수 있다.

                                                                                                                                                                                          +Rain Sugar BangBang Front-End

                                                                                                                                                                                          Rain Sugar BangBang

                                                                                                                                                                                          redux

                                                                                                                                                                                          postman을 이용해 redux Mock server(json-server) 사용해보기

                                                                                                                                                                                          2023-03-04

                                                                                                                                                                                          React를 사용하면서 서버와 연결 전, Post Man을 통해 임시로 서버를 연결해 React와 소통하는 데이터와 view가 어떻게 처리되는지 확인하고 싶을때 사용해볼 수 있다.

                                                                                                                                                                                          postman 링크 : https://www.postman.com/

                                                                                                                                                                                          json-server 설치

                                                                                                                                                                                          yarn add json-server
                                                                                                                                                                                          @@ -71,4 +71,4 @@

                                                                                                                                                                                          http://localhost:3001/comments
                                                                                                                                                                                        • DELETE : http://localhost:3001/comments/1 - id가 1인 comments 삭제하기
                                                                                                                                                                                        • 위와 같은 방식으로 기본적인 동작을 사용해볼 수 있고, header 값이나 body 값 설정 등 다양한 작업을 진행해볼 수 있다.

                                                                                                                                                                                          -

                                                                                                                                                                                          Redux를 사용할때, 해당 데이터들을 추출하여 전역 상태로 관리해보는 등의 작업을 실행할 수 있다.

                                                                                                                                                                                          "redux" 카테고리의 다른 글

                                                                                                                                                                                            COMMENTS

                                                                                                                                                                                            \ No newline at end of file +

                                                                                                                                                                                            Redux를 사용할때, 해당 데이터들을 추출하여 전역 상태로 관리해보는 등의 작업을 실행할 수 있다.

                                                                                                                                                                                            "redux" 카테고리의 다른 글

                                                                                                                                                                                              COMMENTS

                                                                                                                                                                                              \ No newline at end of file diff --git a/redux-toolkit-async-thunk.html b/redux-toolkit-async-thunk.html index e539d1ff..5d3b62e0 100644 --- a/redux-toolkit-async-thunk.html +++ b/redux-toolkit-async-thunk.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                                                              Rain Sugar BangBang

                                                                                                                                                                                              redux

                                                                                                                                                                                              React reduxToolkit과 미들웨어 AsyncThunk 사용해보기

                                                                                                                                                                                              2023-03-04

                                                                                                                                                                                              ReduxToolkit

                                                                                                                                                                                              +Rain Sugar BangBang Front-End

                                                                                                                                                                                              Rain Sugar BangBang

                                                                                                                                                                                              redux

                                                                                                                                                                                              React reduxToolkit과 미들웨어 AsyncThunk 사용해보기

                                                                                                                                                                                              2023-03-04

                                                                                                                                                                                              ReduxToolkit

                                                                                                                                                                                              리덕스 툴킷은 일반적인 리덕스보다 store 설정을 용이하게 해주고, 추가적인 패키지 설치가 필요하지 않게 설계되었으며, 보일러플레이트(여러 군데에서 반복되는 코드)를 최소화하기 위해 만들어졌다.

                                                                                                                                                                                              더 사용하기 쉽다는 의미이다. 이번 글에서는 미들웨어인 AsyncThunk와 함께 사용하는 방법을 확인할 수 있다.

                                                                                                                                                                                              1. 설치

                                                                                                                                                                                              @@ -459,4 +459,4 @@

                                                                                                                                                                                              전체 예제코드

                                                                                                                                                                                              }, }); -export default postsSlice.reducer;

                                                                                                                                                                                              "redux" 카테고리의 다른 글

                                                                                                                                                                                                COMMENTS

                                                                                                                                                                                                \ No newline at end of file +export default postsSlice.reducer;

                                                                                                                                                                                                "redux" 카테고리의 다른 글

                                                                                                                                                                                                  COMMENTS

                                                                                                                                                                                                  \ No newline at end of file diff --git a/redux-typescript-react-reduxtoolkit.html b/redux-typescript-react-reduxtoolkit.html index 59dffdf7..5ec69153 100644 --- a/redux-typescript-react-reduxtoolkit.html +++ b/redux-typescript-react-reduxtoolkit.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                                                                  Rain Sugar BangBang

                                                                                                                                                                                                  redux

                                                                                                                                                                                                  Typescript react에서 ReduxToolkit 사용해보기

                                                                                                                                                                                                  2023-03-04

                                                                                                                                                                                                  javascript에서의 ReduxToolkit 사용 예제 : https://lee-yo-han.github.io/redux/redux-toolkit-사용해보기

                                                                                                                                                                                                  +Rain Sugar BangBang Front-End

                                                                                                                                                                                                  Rain Sugar BangBang

                                                                                                                                                                                                  \ No newline at end of file +

                                                                                                                                                                                                  참고 : https://redux-toolkit.js.org/usage/usage-with-typescript

                                                                                                                                                                                                  "redux" 카테고리의 다른 글

                                                                                                                                                                                                    COMMENTS

                                                                                                                                                                                                    \ No newline at end of file diff --git a/redux-usage.html b/redux-usage.html index d875c026..610ae58b 100644 --- a/redux-usage.html +++ b/redux-usage.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                                                                    Rain Sugar BangBang

                                                                                                                                                                                                    redux

                                                                                                                                                                                                    redux 사용해보기

                                                                                                                                                                                                    2023-03-04

                                                                                                                                                                                                    React에서 Redux 사용해보기

                                                                                                                                                                                                    +Rain Sugar BangBang Front-End

                                                                                                                                                                                                    Rain Sugar BangBang

                                                                                                                                                                                                    redux

                                                                                                                                                                                                    redux 사용해보기

                                                                                                                                                                                                    2023-03-04

                                                                                                                                                                                                    React에서 Redux 사용해보기

                                                                                                                                                                                                    리덕스 툴킷 x

                                                                                                                                                                                                    Redux 설치

                                                                                                                                                                                                    yarn add redux react-redux
                                                                                                                                                                                                    @@ -111,4 +111,4 @@

                                                                                                                                                                                                    컴포넌트에서의 사용

                                                                                                                                                                                                    ) } -

                                                                                                                                                                                                    참조 : https://ko.redux.js.org/

                                                                                                                                                                                                    "redux" 카테고리의 다른 글

                                                                                                                                                                                                      COMMENTS

                                                                                                                                                                                                      \ No newline at end of file +

                                                                                                                                                                                                      참조 : https://ko.redux.js.org/

                                                                                                                                                                                                      "redux" 카테고리의 다른 글

                                                                                                                                                                                                        COMMENTS

                                                                                                                                                                                                        \ No newline at end of file diff --git a/redux.html b/redux.html index 9b4e3ced..b059d822 100644 --- a/redux.html +++ b/redux.html @@ -1 +1 @@ -Rain Sugar BangBang Front-End \ No newline at end of file +Rain Sugar BangBang Front-End \ No newline at end of file diff --git a/search.html b/search.html index 5e00f3b1..9788a704 100644 --- a/search.html +++ b/search.html @@ -1 +1 @@ -Rain Sugar BangBang Front-End \ No newline at end of file +Rain Sugar BangBang Front-End \ No newline at end of file diff --git a/typescript-syntax.html b/typescript-syntax.html index 33540eed..bab4feda 100644 --- a/typescript-syntax.html +++ b/typescript-syntax.html @@ -1,4 +1,4 @@ -Rain Sugar BangBang Front-End

                                                                                                                                                                                                        Rain Sugar BangBang

                                                                                                                                                                                                        typescript

                                                                                                                                                                                                        Typescript 사용을 위한 기본적인 문법 정리

                                                                                                                                                                                                        2023-03-02

                                                                                                                                                                                                        기본 TypeScript 타입 선언

                                                                                                                                                                                                        +Rain Sugar BangBang Front-End

                                                                                                                                                                                                        Rain Sugar BangBang

                                                                                                                                                                                                        typescript

                                                                                                                                                                                                        Typescript 사용을 위한 기본적인 문법 정리

                                                                                                                                                                                                        2023-03-02

                                                                                                                                                                                                        기본 TypeScript 타입 선언

                                                                                                                                                                                                        
                                                                                                                                                                                                         // 문자열
                                                                                                                                                                                                         let str: string = "hello";
                                                                                                                                                                                                        @@ -291,4 +291,4 @@ 

                                                                                                                                                                                                        TypeScript에서 더 큰 타입 구조를 갖는 변수에 작은 타입 구 // 에러가 나지 않는 방식. sum의 구조가 더 크다고 볼 수 있음 sum = add;

                                                                                                                                                                                                        -

                                                                                                                                                                                                        참조 : https://yeomkyeorae.github.io/typesciprt/basic_typescript/

                                                                                                                                                                                                        "typescript" 카테고리의 다른 글

                                                                                                                                                                                                          COMMENTS

                                                                                                                                                                                                          \ No newline at end of file +

                                                                                                                                                                                                          참조 : https://yeomkyeorae.github.io/typesciprt/basic_typescript/

                                                                                                                                                                                                          "typescript" 카테고리의 다른 글

                                                                                                                                                                                                            COMMENTS

                                                                                                                                                                                                            \ No newline at end of file diff --git a/typescript.html b/typescript.html index 3e20af38..5f681873 100644 --- a/typescript.html +++ b/typescript.html @@ -1 +1 @@ -Rain Sugar BangBang Front-End \ No newline at end of file +Rain Sugar BangBang Front-End \ No newline at end of file