@d19n/webchat 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -2
- package/dist/NotificationBar/index.d.ts +3 -0
- package/dist/TwilioChat/Chat.d.ts +14 -0
- package/dist/TwilioChat/index.d.ts +15 -0
- package/dist/_virtual/Component.js +2 -0
- package/dist/_virtual/Component.js.map +1 -0
- package/dist/_virtual/ConfigApi.js +2 -0
- package/dist/_virtual/ConfigApi.js.map +1 -0
- package/dist/_virtual/ConfigApi2.js +2 -0
- package/dist/_virtual/ConfigApi2.js.map +1 -0
- package/dist/_virtual/_commonjs-dynamic-modules.js +2 -0
- package/dist/_virtual/_commonjs-dynamic-modules.js.map +1 -0
- package/dist/_virtual/_commonjsHelpers.js +2 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/_virtual/api.provider.js +2 -0
- package/dist/_virtual/api.provider.js.map +1 -0
- package/dist/_virtual/browser.js +2 -0
- package/dist/_virtual/browser.js.map +1 -0
- package/dist/_virtual/constructs.js +2 -0
- package/dist/_virtual/constructs.js.map +1 -0
- package/dist/_virtual/content.js +2 -0
- package/dist/_virtual/content.js.map +1 -0
- package/dist/_virtual/disallow-node.js +2 -0
- package/dist/_virtual/disallow-node.js.map +1 -0
- package/dist/_virtual/document.js +2 -0
- package/dist/_virtual/document.js.map +1 -0
- package/dist/_virtual/errors.js +2 -0
- package/dist/_virtual/errors.js.map +1 -0
- package/dist/_virtual/flow.js +2 -0
- package/dist/_virtual/flow.js.map +1 -0
- package/dist/_virtual/from-markdown.js +2 -0
- package/dist/_virtual/from-markdown.js.map +1 -0
- package/dist/_virtual/from-markdown2.js +2 -0
- package/dist/_virtual/from-markdown2.js.map +1 -0
- package/dist/_virtual/from-markdown3.js +2 -0
- package/dist/_virtual/from-markdown3.js.map +1 -0
- package/dist/_virtual/from-markdown4.js +2 -0
- package/dist/_virtual/from-markdown4.js.map +1 -0
- package/dist/_virtual/helpers.js +2 -0
- package/dist/_virtual/helpers.js.map +1 -0
- package/dist/_virtual/hoist-non-react-statics.cjs.js +2 -0
- package/dist/_virtual/hoist-non-react-statics.cjs.js.map +1 -0
- package/dist/_virtual/index.js +2 -0
- package/dist/_virtual/index.js.map +1 -0
- package/dist/_virtual/index10.js +2 -0
- package/dist/_virtual/index10.js.map +1 -0
- package/dist/_virtual/index11.js +2 -0
- package/dist/_virtual/index11.js.map +1 -0
- package/dist/_virtual/index12.js +2 -0
- package/dist/_virtual/index12.js.map +1 -0
- package/dist/_virtual/index13.js +2 -0
- package/dist/_virtual/index13.js.map +1 -0
- package/dist/_virtual/index14.js +2 -0
- package/dist/_virtual/index14.js.map +1 -0
- package/dist/_virtual/index15.js +2 -0
- package/dist/_virtual/index15.js.map +1 -0
- package/dist/_virtual/index16.js +2 -0
- package/dist/_virtual/index16.js.map +1 -0
- package/dist/_virtual/index2.js +2 -0
- package/dist/_virtual/index2.js.map +1 -0
- package/dist/_virtual/index3.js +2 -0
- package/dist/_virtual/index3.js.map +1 -0
- package/dist/_virtual/index4.js +2 -0
- package/dist/_virtual/index4.js.map +1 -0
- package/dist/_virtual/index5.js +2 -0
- package/dist/_virtual/index5.js.map +1 -0
- package/dist/_virtual/index6.js +2 -0
- package/dist/_virtual/index6.js.map +1 -0
- package/dist/_virtual/index7.js +2 -0
- package/dist/_virtual/index7.js.map +1 -0
- package/dist/_virtual/index8.js +2 -0
- package/dist/_virtual/index8.js.map +1 -0
- package/dist/_virtual/index9.js +2 -0
- package/dist/_virtual/index9.js.map +1 -0
- package/dist/_virtual/minpath.browser.js +2 -0
- package/dist/_virtual/minpath.browser.js.map +1 -0
- package/dist/_virtual/minproc.browser.js +2 -0
- package/dist/_virtual/minproc.browser.js.map +1 -0
- package/dist/_virtual/moment.js +2 -0
- package/dist/_virtual/moment.js.map +1 -0
- package/dist/_virtual/moment2.js +2 -0
- package/dist/_virtual/moment2.js.map +1 -0
- package/dist/_virtual/react-is.development.js +2 -0
- package/dist/_virtual/react-is.development.js.map +1 -0
- package/dist/_virtual/react-is.development2.js +2 -0
- package/dist/_virtual/react-is.development2.js.map +1 -0
- package/dist/_virtual/react-is.development3.js +2 -0
- package/dist/_virtual/react-is.development3.js.map +1 -0
- package/dist/_virtual/react-is.development4.js +2 -0
- package/dist/_virtual/react-is.development4.js.map +1 -0
- package/dist/_virtual/react-is.production.js +2 -0
- package/dist/_virtual/react-is.production.js.map +1 -0
- package/dist/_virtual/react-is.production.min.js +2 -0
- package/dist/_virtual/react-is.production.min.js.map +1 -0
- package/dist/_virtual/react-is.production.min2.js +2 -0
- package/dist/_virtual/react-is.production.min2.js.map +1 -0
- package/dist/_virtual/react-is.production.min3.js +2 -0
- package/dist/_virtual/react-is.production.min3.js.map +1 -0
- package/dist/_virtual/react-markdown.js +2 -0
- package/dist/_virtual/react-markdown.js.map +1 -0
- package/dist/_virtual/schema.types.js +2 -0
- package/dist/_virtual/schema.types.js.map +1 -0
- package/dist/_virtual/symbols.js +2 -0
- package/dist/_virtual/symbols.js.map +1 -0
- package/dist/_virtual/syntax.js +2 -0
- package/dist/_virtual/syntax.js.map +1 -0
- package/dist/_virtual/syntax2.js +2 -0
- package/dist/_virtual/syntax2.js.map +1 -0
- package/dist/_virtual/syntax3.js +2 -0
- package/dist/_virtual/syntax3.js.map +1 -0
- package/dist/_virtual/text.js +2 -0
- package/dist/_virtual/text.js.map +1 -0
- package/dist/_virtual/to-markdown.js +2 -0
- package/dist/_virtual/to-markdown.js.map +1 -0
- package/dist/_virtual/to-markdown2.js +2 -0
- package/dist/_virtual/to-markdown2.js.map +1 -0
- package/dist/_virtual/to-markdown3.js +2 -0
- package/dist/_virtual/to-markdown3.js.map +1 -0
- package/dist/api/api.d.ts +17 -0
- package/dist/assets/audio/notification.wav +0 -0
- package/dist/assets/images/gif/loader-transparent.gif +0 -0
- package/dist/assets/images/png/ico-chat.png +0 -0
- package/dist/assets/images/png/ico-close.png +0 -0
- package/dist/assets/images/svg/chat.svg +1 -0
- package/dist/assets/images/svg/close.svg +4 -0
- package/dist/assets/images/svg/favicon.svg +12 -0
- package/dist/assets/images/svg/youfibre-upload.svg +6 -0
- package/dist/assets/styles/app.scss +248 -0
- package/dist/assets/styles/fonts.css +107 -0
- package/dist/assets/styles/variables.d.ts +58 -0
- package/dist/assets/styles/variables.tsx +74 -0
- package/dist/context/GlobalContext.d.ts +18 -0
- package/dist/context/types.d.ts +60 -0
- package/dist/index.d.ts +13 -6
- package/dist/index.js +52 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +52 -1
- package/dist/index.mjs.map +1 -1
- package/dist/node_modules/@d19n/odin-sdk-generator/dist/api.provider.js +2 -0
- package/dist/node_modules/@d19n/odin-sdk-generator/dist/api.provider.js.map +1 -0
- package/dist/node_modules/@d19n/odin-sdk-generator/dist/utilities/helpers.js +2 -0
- package/dist/node_modules/@d19n/odin-sdk-generator/dist/utilities/helpers.js.map +1 -0
- package/dist/node_modules/@d19n/odin-types/dist/types/errors.js +2 -0
- package/dist/node_modules/@d19n/odin-types/dist/types/errors.js.map +1 -0
- package/dist/node_modules/@d19n/odin-types/dist/types/schema.types.js +2 -0
- package/dist/node_modules/@d19n/odin-types/dist/types/schema.types.js.map +1 -0
- package/dist/node_modules/@d19n/youfibre-odin-sdk/dist/api-sdk-v2/ConfigApi.js +2 -0
- package/dist/node_modules/@d19n/youfibre-odin-sdk/dist/api-sdk-v2/ConfigApi.js.map +1 -0
- package/dist/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js +2 -0
- package/dist/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js.map +1 -0
- package/dist/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js +2 -0
- package/dist/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js.map +1 -0
- package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js +2 -0
- package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js.map +1 -0
- package/dist/node_modules/@emotion/unitless/dist/unitless.browser.esm.js +2 -0
- package/dist/node_modules/@emotion/unitless/dist/unitless.browser.esm.js.map +1 -0
- package/dist/node_modules/@socket.io/component-emitter/lib/esm/index.js +2 -0
- package/dist/node_modules/@socket.io/component-emitter/lib/esm/index.js.map +1 -0
- package/dist/node_modules/attr-accept/dist/es/index.js +2 -0
- package/dist/node_modules/attr-accept/dist/es/index.js.map +1 -0
- package/dist/node_modules/bail/index.js +2 -0
- package/dist/node_modules/bail/index.js.map +1 -0
- package/dist/node_modules/camel-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/camel-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/capital-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/capital-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/ccount/index.js +2 -0
- package/dist/node_modules/ccount/index.js.map +1 -0
- package/dist/node_modules/change-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/change-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/classnames/index.js +7 -0
- package/dist/node_modules/classnames/index.js.map +1 -0
- package/dist/node_modules/clsx/dist/clsx.m.js +2 -0
- package/dist/node_modules/clsx/dist/clsx.m.js.map +1 -0
- package/dist/node_modules/constant-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/constant-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/dot-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/dot-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/has-cors.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/has-cors.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseqs.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseqs.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/globals.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/globals.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/socket.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/socket.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/transport.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/transport.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/index.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/index.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/polling-xhr.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/polling-xhr.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/polling.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/polling.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/webtransport.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/webtransport.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/util.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/util.js.map +1 -0
- package/dist/node_modules/engine.io-parser/build/esm/commons.js +2 -0
- package/dist/node_modules/engine.io-parser/build/esm/commons.js.map +1 -0
- package/dist/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js +2 -0
- package/dist/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js.map +1 -0
- package/dist/node_modules/engine.io-parser/build/esm/decodePacket.browser.js +2 -0
- package/dist/node_modules/engine.io-parser/build/esm/decodePacket.browser.js.map +1 -0
- package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js +2 -0
- package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js.map +1 -0
- package/dist/node_modules/engine.io-parser/build/esm/index.js +2 -0
- package/dist/node_modules/engine.io-parser/build/esm/index.js.map +1 -0
- package/dist/node_modules/escape-string-regexp/index.js +2 -0
- package/dist/node_modules/escape-string-regexp/index.js.map +1 -0
- package/dist/node_modules/extend/index.js +2 -0
- package/dist/node_modules/extend/index.js.map +1 -0
- package/dist/node_modules/file-selector/dist/es2015/file-selector.js +2 -0
- package/dist/node_modules/file-selector/dist/es2015/file-selector.js.map +1 -0
- package/dist/node_modules/file-selector/dist/es2015/file.js +2 -0
- package/dist/node_modules/file-selector/dist/es2015/file.js.map +1 -0
- package/dist/node_modules/form-data/lib/browser.js +2 -0
- package/dist/node_modules/form-data/lib/browser.js.map +1 -0
- package/dist/node_modules/header-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/header-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +2 -0
- package/dist/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js.map +1 -0
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js +10 -0
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js +10 -0
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +2 -0
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/is-buffer/index.js +8 -0
- package/dist/node_modules/is-buffer/index.js.map +1 -0
- package/dist/node_modules/is-plain-obj/index.js +2 -0
- package/dist/node_modules/is-plain-obj/index.js.map +1 -0
- package/dist/node_modules/linkify-html/dist/linkify-html.js +2 -0
- package/dist/node_modules/linkify-html/dist/linkify-html.js.map +1 -0
- package/dist/node_modules/linkifyjs/dist/linkify.js +2 -0
- package/dist/node_modules/linkifyjs/dist/linkify.js.map +1 -0
- package/dist/node_modules/lodash.debounce/index.js +2 -0
- package/dist/node_modules/lodash.debounce/index.js.map +1 -0
- package/dist/node_modules/lower-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/lower-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/markdown-table/index.js +2 -0
- package/dist/node_modules/markdown-table/index.js.map +1 -0
- package/dist/node_modules/mdast-add-list-metadata/index.js +2 -0
- package/dist/node_modules/mdast-add-list-metadata/index.js.map +1 -0
- package/dist/node_modules/mdast-util-find-and-replace/index.js +2 -0
- package/dist/node_modules/mdast-util-find-and-replace/index.js.map +1 -0
- package/dist/node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents/color.browser.js +2 -0
- package/dist/node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents/color.browser.js.map +1 -0
- package/dist/node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents/index.js +2 -0
- package/dist/node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents/index.js.map +1 -0
- package/dist/node_modules/mdast-util-from-markdown/dist/index.js +2 -0
- package/dist/node_modules/mdast-util-from-markdown/dist/index.js.map +1 -0
- package/dist/node_modules/mdast-util-from-markdown/index.js +2 -0
- package/dist/node_modules/mdast-util-from-markdown/index.js.map +1 -0
- package/dist/node_modules/mdast-util-gfm/from-markdown.js +2 -0
- package/dist/node_modules/mdast-util-gfm/from-markdown.js.map +1 -0
- package/dist/node_modules/mdast-util-gfm/to-markdown.js +2 -0
- package/dist/node_modules/mdast-util-gfm/to-markdown.js.map +1 -0
- package/dist/node_modules/mdast-util-gfm-autolink-literal/from-markdown.js +2 -0
- package/dist/node_modules/mdast-util-gfm-autolink-literal/from-markdown.js.map +1 -0
- package/dist/node_modules/mdast-util-gfm-autolink-literal/to-markdown.js +2 -0
- package/dist/node_modules/mdast-util-gfm-autolink-literal/to-markdown.js.map +1 -0
- package/dist/node_modules/mdast-util-gfm-strikethrough/from-markdown.js +2 -0
- package/dist/node_modules/mdast-util-gfm-strikethrough/from-markdown.js.map +1 -0
- package/dist/node_modules/mdast-util-gfm-strikethrough/to-markdown.js +2 -0
- package/dist/node_modules/mdast-util-gfm-strikethrough/to-markdown.js.map +1 -0
- package/dist/node_modules/mdast-util-gfm-table/from-markdown.js +2 -0
- package/dist/node_modules/mdast-util-gfm-table/from-markdown.js.map +1 -0
- package/dist/node_modules/mdast-util-gfm-table/to-markdown.js +2 -0
- package/dist/node_modules/mdast-util-gfm-table/to-markdown.js.map +1 -0
- package/dist/node_modules/mdast-util-gfm-task-list-item/from-markdown.js +2 -0
- package/dist/node_modules/mdast-util-gfm-task-list-item/from-markdown.js.map +1 -0
- package/dist/node_modules/mdast-util-gfm-task-list-item/to-markdown.js +2 -0
- package/dist/node_modules/mdast-util-gfm-task-list-item/to-markdown.js.map +1 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/configure.js +2 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/configure.js.map +1 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js +2 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js.map +1 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/handle/list-item.js +2 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/handle/list-item.js.map +1 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js +2 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js.map +1 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js +2 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js.map +1 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/util/container-flow.js +2 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/util/container-flow.js.map +1 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js +2 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js.map +1 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/util/indent-lines.js +2 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/util/indent-lines.js.map +1 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js +2 -0
- package/dist/node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js.map +1 -0
- package/dist/node_modules/mdast-util-to-string/index.js +2 -0
- package/dist/node_modules/mdast-util-to-string/index.js.map +1 -0
- package/dist/node_modules/micromark/dist/character/ascii-alpha.js +2 -0
- package/dist/node_modules/micromark/dist/character/ascii-alpha.js.map +1 -0
- package/dist/node_modules/micromark/dist/character/ascii-alphanumeric.js +2 -0
- package/dist/node_modules/micromark/dist/character/ascii-alphanumeric.js.map +1 -0
- package/dist/node_modules/micromark/dist/character/ascii-atext.js +2 -0
- package/dist/node_modules/micromark/dist/character/ascii-atext.js.map +1 -0
- package/dist/node_modules/micromark/dist/character/ascii-control.js +2 -0
- package/dist/node_modules/micromark/dist/character/ascii-control.js.map +1 -0
- package/dist/node_modules/micromark/dist/character/ascii-digit.js +2 -0
- package/dist/node_modules/micromark/dist/character/ascii-digit.js.map +1 -0
- package/dist/node_modules/micromark/dist/character/ascii-hex-digit.js +2 -0
- package/dist/node_modules/micromark/dist/character/ascii-hex-digit.js.map +1 -0
- package/dist/node_modules/micromark/dist/character/ascii-punctuation.js +2 -0
- package/dist/node_modules/micromark/dist/character/ascii-punctuation.js.map +1 -0
- package/dist/node_modules/micromark/dist/character/markdown-line-ending-or-space.js +2 -0
- package/dist/node_modules/micromark/dist/character/markdown-line-ending-or-space.js.map +1 -0
- package/dist/node_modules/micromark/dist/character/markdown-line-ending.js +2 -0
- package/dist/node_modules/micromark/dist/character/markdown-line-ending.js.map +1 -0
- package/dist/node_modules/micromark/dist/character/markdown-space.js +2 -0
- package/dist/node_modules/micromark/dist/character/markdown-space.js.map +1 -0
- package/dist/node_modules/micromark/dist/character/unicode-punctuation.js +2 -0
- package/dist/node_modules/micromark/dist/character/unicode-punctuation.js.map +1 -0
- package/dist/node_modules/micromark/dist/character/unicode-whitespace.js +2 -0
- package/dist/node_modules/micromark/dist/character/unicode-whitespace.js.map +1 -0
- package/dist/node_modules/micromark/dist/constant/assign.js +2 -0
- package/dist/node_modules/micromark/dist/constant/assign.js.map +1 -0
- package/dist/node_modules/micromark/dist/constant/from-char-code.js +2 -0
- package/dist/node_modules/micromark/dist/constant/from-char-code.js.map +1 -0
- package/dist/node_modules/micromark/dist/constant/has-own-property.js +2 -0
- package/dist/node_modules/micromark/dist/constant/has-own-property.js.map +1 -0
- package/dist/node_modules/micromark/dist/constant/html-block-names.js +2 -0
- package/dist/node_modules/micromark/dist/constant/html-block-names.js.map +1 -0
- package/dist/node_modules/micromark/dist/constant/html-raw-names.js +2 -0
- package/dist/node_modules/micromark/dist/constant/html-raw-names.js.map +1 -0
- package/dist/node_modules/micromark/dist/constant/splice.js +2 -0
- package/dist/node_modules/micromark/dist/constant/splice.js.map +1 -0
- package/dist/node_modules/micromark/dist/constant/unicode-punctuation-regex.js +2 -0
- package/dist/node_modules/micromark/dist/constant/unicode-punctuation-regex.js.map +1 -0
- package/dist/node_modules/micromark/dist/constructs.js +2 -0
- package/dist/node_modules/micromark/dist/constructs.js.map +1 -0
- package/dist/node_modules/micromark/dist/initialize/content.js +2 -0
- package/dist/node_modules/micromark/dist/initialize/content.js.map +1 -0
- package/dist/node_modules/micromark/dist/initialize/document.js +2 -0
- package/dist/node_modules/micromark/dist/initialize/document.js.map +1 -0
- package/dist/node_modules/micromark/dist/initialize/flow.js +2 -0
- package/dist/node_modules/micromark/dist/initialize/flow.js.map +1 -0
- package/dist/node_modules/micromark/dist/initialize/text.js +2 -0
- package/dist/node_modules/micromark/dist/initialize/text.js.map +1 -0
- package/dist/node_modules/micromark/dist/parse.js +2 -0
- package/dist/node_modules/micromark/dist/parse.js.map +1 -0
- package/dist/node_modules/micromark/dist/postprocess.js +2 -0
- package/dist/node_modules/micromark/dist/postprocess.js.map +1 -0
- package/dist/node_modules/micromark/dist/preprocess.js +2 -0
- package/dist/node_modules/micromark/dist/preprocess.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/attention.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/attention.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/autolink.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/autolink.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/block-quote.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/block-quote.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/character-escape.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/character-escape.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/character-reference.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/character-reference.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/code-fenced.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/code-fenced.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/code-indented.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/code-indented.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/code-text.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/code-text.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/content.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/content.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/definition.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/definition.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/factory-destination.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/factory-destination.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/factory-label.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/factory-label.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/factory-space.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/factory-space.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/factory-title.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/factory-title.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/factory-whitespace.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/factory-whitespace.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/hard-break-escape.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/hard-break-escape.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/heading-atx.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/heading-atx.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/html-flow.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/html-flow.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/html-text.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/html-text.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/label-end.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/label-end.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/label-start-image.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/label-start-image.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/label-start-link.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/label-start-link.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/line-ending.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/line-ending.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/list.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/list.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/partial-blank-line.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/partial-blank-line.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/setext-underline.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/setext-underline.js.map +1 -0
- package/dist/node_modules/micromark/dist/tokenize/thematic-break.js +2 -0
- package/dist/node_modules/micromark/dist/tokenize/thematic-break.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/chunked-push.js +2 -0
- package/dist/node_modules/micromark/dist/util/chunked-push.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/chunked-splice.js +2 -0
- package/dist/node_modules/micromark/dist/util/chunked-splice.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/classify-character.js +2 -0
- package/dist/node_modules/micromark/dist/util/classify-character.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/combine-extensions.js +2 -0
- package/dist/node_modules/micromark/dist/util/combine-extensions.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/create-tokenizer.js +2 -0
- package/dist/node_modules/micromark/dist/util/create-tokenizer.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/miniflat.js +2 -0
- package/dist/node_modules/micromark/dist/util/miniflat.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/move-point.js +2 -0
- package/dist/node_modules/micromark/dist/util/move-point.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/normalize-identifier.js +2 -0
- package/dist/node_modules/micromark/dist/util/normalize-identifier.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/prefix-size.js +2 -0
- package/dist/node_modules/micromark/dist/util/prefix-size.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/regex-check.js +2 -0
- package/dist/node_modules/micromark/dist/util/regex-check.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/resolve-all.js +2 -0
- package/dist/node_modules/micromark/dist/util/resolve-all.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/safe-from-int.js +2 -0
- package/dist/node_modules/micromark/dist/util/safe-from-int.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/serialize-chunks.js +2 -0
- package/dist/node_modules/micromark/dist/util/serialize-chunks.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/shallow.js +2 -0
- package/dist/node_modules/micromark/dist/util/shallow.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/size-chunks.js +2 -0
- package/dist/node_modules/micromark/dist/util/size-chunks.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/slice-chunks.js +2 -0
- package/dist/node_modules/micromark/dist/util/slice-chunks.js.map +1 -0
- package/dist/node_modules/micromark/dist/util/subtokenize.js +2 -0
- package/dist/node_modules/micromark/dist/util/subtokenize.js.map +1 -0
- package/dist/node_modules/micromark-extension-gfm/index.js +2 -0
- package/dist/node_modules/micromark-extension-gfm/index.js.map +1 -0
- package/dist/node_modules/micromark-extension-gfm/syntax.js +2 -0
- package/dist/node_modules/micromark-extension-gfm/syntax.js.map +1 -0
- package/dist/node_modules/micromark-extension-gfm-autolink-literal/index.js +2 -0
- package/dist/node_modules/micromark-extension-gfm-autolink-literal/index.js.map +1 -0
- package/dist/node_modules/micromark-extension-gfm-autolink-literal/syntax.js +2 -0
- package/dist/node_modules/micromark-extension-gfm-autolink-literal/syntax.js.map +1 -0
- package/dist/node_modules/micromark-extension-gfm-strikethrough/index.js +2 -0
- package/dist/node_modules/micromark-extension-gfm-strikethrough/index.js.map +1 -0
- package/dist/node_modules/micromark-extension-gfm-table/index.js +2 -0
- package/dist/node_modules/micromark-extension-gfm-table/index.js.map +1 -0
- package/dist/node_modules/micromark-extension-gfm-table/syntax.js +2 -0
- package/dist/node_modules/micromark-extension-gfm-table/syntax.js.map +1 -0
- package/dist/node_modules/micromark-extension-gfm-task-list-item/index.js +2 -0
- package/dist/node_modules/micromark-extension-gfm-task-list-item/index.js.map +1 -0
- package/dist/node_modules/micromark-extension-gfm-task-list-item/syntax.js +2 -0
- package/dist/node_modules/micromark-extension-gfm-task-list-item/syntax.js.map +1 -0
- package/dist/node_modules/moment/moment.js +4 -0
- package/dist/node_modules/moment/moment.js.map +1 -0
- package/dist/node_modules/no-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/no-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/object-assign/index.js +7 -0
- package/dist/node_modules/object-assign/index.js.map +1 -0
- package/dist/node_modules/param-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/param-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/parse-entities/decode-entity.browser.js +2 -0
- package/dist/node_modules/parse-entities/decode-entity.browser.js.map +1 -0
- package/dist/node_modules/pascal-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/pascal-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/path-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/path-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/prop-types/checkPropTypes.js +2 -0
- package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -0
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js +2 -0
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -0
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +2 -0
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -0
- package/dist/node_modules/prop-types/index.js +2 -0
- package/dist/node_modules/prop-types/index.js.map +1 -0
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +2 -0
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -0
- package/dist/node_modules/prop-types/lib/has.js +2 -0
- package/dist/node_modules/prop-types/lib/has.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +10 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +10 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +2 -0
- package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/react-bootstrap/esm/Col.js +2 -0
- package/dist/node_modules/react-bootstrap/esm/Col.js.map +1 -0
- package/dist/node_modules/react-bootstrap/esm/Row.js +2 -0
- package/dist/node_modules/react-bootstrap/esm/Row.js.map +1 -0
- package/dist/node_modules/react-bootstrap/esm/ThemeProvider.js +2 -0
- package/dist/node_modules/react-bootstrap/esm/ThemeProvider.js.map +1 -0
- package/dist/node_modules/react-debounce-input/lib/Component.js +2 -0
- package/dist/node_modules/react-debounce-input/lib/Component.js.map +1 -0
- package/dist/node_modules/react-debounce-input/lib/index.js +2 -0
- package/dist/node_modules/react-debounce-input/lib/index.js.map +1 -0
- package/dist/node_modules/react-dropzone/dist/es/index.js +2 -0
- package/dist/node_modules/react-dropzone/dist/es/index.js.map +1 -0
- package/dist/node_modules/react-dropzone/dist/es/utils/index.js +2 -0
- package/dist/node_modules/react-dropzone/dist/es/utils/index.js.map +1 -0
- package/dist/node_modules/react-icons/bs/index.esm.js +2 -0
- package/dist/node_modules/react-icons/bs/index.esm.js.map +1 -0
- package/dist/node_modules/react-icons/lib/esm/iconBase.js +2 -0
- package/dist/node_modules/react-icons/lib/esm/iconBase.js.map +1 -0
- package/dist/node_modules/react-icons/lib/esm/iconContext.js +2 -0
- package/dist/node_modules/react-icons/lib/esm/iconContext.js.map +1 -0
- package/dist/node_modules/react-is/cjs/react-is.development.js +11 -0
- package/dist/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/react-is/cjs/react-is.production.js +11 -0
- package/dist/node_modules/react-is/cjs/react-is.production.js.map +1 -0
- package/dist/node_modules/react-is/index.js +2 -0
- package/dist/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/react-markdown/lib/ast-to-react.js +2 -0
- package/dist/node_modules/react-markdown/lib/ast-to-react.js.map +1 -0
- package/dist/node_modules/react-markdown/lib/get-definitions.js +2 -0
- package/dist/node_modules/react-markdown/lib/get-definitions.js.map +1 -0
- package/dist/node_modules/react-markdown/lib/plugins/disallow-node.js +2 -0
- package/dist/node_modules/react-markdown/lib/plugins/disallow-node.js.map +1 -0
- package/dist/node_modules/react-markdown/lib/plugins/naive-html.js +2 -0
- package/dist/node_modules/react-markdown/lib/plugins/naive-html.js.map +1 -0
- package/dist/node_modules/react-markdown/lib/react-markdown.js +2 -0
- package/dist/node_modules/react-markdown/lib/react-markdown.js.map +1 -0
- package/dist/node_modules/react-markdown/lib/renderers.js +2 -0
- package/dist/node_modules/react-markdown/lib/renderers.js.map +1 -0
- package/dist/node_modules/react-markdown/lib/symbols.js +2 -0
- package/dist/node_modules/react-markdown/lib/symbols.js.map +1 -0
- package/dist/node_modules/react-markdown/lib/uri-transformer.js +2 -0
- package/dist/node_modules/react-markdown/lib/uri-transformer.js.map +1 -0
- package/dist/node_modules/react-markdown/lib/wrap-table-rows.js +2 -0
- package/dist/node_modules/react-markdown/lib/wrap-table-rows.js.map +1 -0
- package/dist/node_modules/react-markdown/node_modules/react-is/cjs/react-is.development.js +10 -0
- package/dist/node_modules/react-markdown/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js +10 -0
- package/dist/node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/react-markdown/node_modules/react-is/index.js +2 -0
- package/dist/node_modules/react-markdown/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/react-modal-image/es/Header.js +2 -0
- package/dist/node_modules/react-modal-image/es/Header.js.map +1 -0
- package/dist/node_modules/react-modal-image/es/Image.js +2 -0
- package/dist/node_modules/react-modal-image/es/Image.js.map +1 -0
- package/dist/node_modules/react-modal-image/es/Lightbox.js +2 -0
- package/dist/node_modules/react-modal-image/es/Lightbox.js.map +1 -0
- package/dist/node_modules/react-modal-image/es/icons.js +2 -0
- package/dist/node_modules/react-modal-image/es/icons.js.map +1 -0
- package/dist/node_modules/react-modal-image/es/styles.js +2 -0
- package/dist/node_modules/react-modal-image/es/styles.js.map +1 -0
- package/dist/node_modules/react-timer-hook/dist/index.js +2 -0
- package/dist/node_modules/react-timer-hook/dist/index.js.map +1 -0
- package/dist/node_modules/react-toastify/dist/react-toastify.esm.js +2 -0
- package/dist/node_modules/react-toastify/dist/react-toastify.esm.js.map +1 -0
- package/dist/node_modules/remark-gfm/index.js +2 -0
- package/dist/node_modules/remark-gfm/index.js.map +1 -0
- package/dist/node_modules/remark-parse/index.js +2 -0
- package/dist/node_modules/remark-parse/index.js.map +1 -0
- package/dist/node_modules/repeat-string/index.js +8 -0
- package/dist/node_modules/repeat-string/index.js.map +1 -0
- package/dist/node_modules/sentence-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/sentence-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/snake-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/snake-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/socket.io-client/build/esm/contrib/backo2.js +2 -0
- package/dist/node_modules/socket.io-client/build/esm/contrib/backo2.js.map +1 -0
- package/dist/node_modules/socket.io-client/build/esm/index.js +2 -0
- package/dist/node_modules/socket.io-client/build/esm/index.js.map +1 -0
- package/dist/node_modules/socket.io-client/build/esm/manager.js +2 -0
- package/dist/node_modules/socket.io-client/build/esm/manager.js.map +1 -0
- package/dist/node_modules/socket.io-client/build/esm/on.js +2 -0
- package/dist/node_modules/socket.io-client/build/esm/on.js.map +1 -0
- package/dist/node_modules/socket.io-client/build/esm/socket.js +2 -0
- package/dist/node_modules/socket.io-client/build/esm/socket.js.map +1 -0
- package/dist/node_modules/socket.io-client/build/esm/url.js +2 -0
- package/dist/node_modules/socket.io-client/build/esm/url.js.map +1 -0
- package/dist/node_modules/socket.io-parser/build/esm/binary.js +2 -0
- package/dist/node_modules/socket.io-parser/build/esm/binary.js.map +1 -0
- package/dist/node_modules/socket.io-parser/build/esm/index.js +2 -0
- package/dist/node_modules/socket.io-parser/build/esm/index.js.map +1 -0
- package/dist/node_modules/socket.io-parser/build/esm/is-binary.js +2 -0
- package/dist/node_modules/socket.io-parser/build/esm/is-binary.js.map +1 -0
- package/dist/node_modules/style-inject/dist/style-inject.es.js +2 -0
- package/dist/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
- package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js +2 -0
- package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js.map +1 -0
- package/dist/node_modules/trough/index.js +2 -0
- package/dist/node_modules/trough/index.js.map +1 -0
- package/dist/node_modules/trough/wrap.js +2 -0
- package/dist/node_modules/trough/wrap.js.map +1 -0
- package/dist/node_modules/tslib/tslib.es6.js +2 -0
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/node_modules/unified/index.js +2 -0
- package/dist/node_modules/unified/index.js.map +1 -0
- package/dist/node_modules/unist-util-is/convert.js +2 -0
- package/dist/node_modules/unist-util-is/convert.js.map +1 -0
- package/dist/node_modules/unist-util-stringify-position/index.js +2 -0
- package/dist/node_modules/unist-util-stringify-position/index.js.map +1 -0
- package/dist/node_modules/unist-util-visit/index.js +2 -0
- package/dist/node_modules/unist-util-visit/index.js.map +1 -0
- package/dist/node_modules/unist-util-visit/node_modules/unist-util-visit-parents/color.browser.js +2 -0
- package/dist/node_modules/unist-util-visit/node_modules/unist-util-visit-parents/color.browser.js.map +1 -0
- package/dist/node_modules/unist-util-visit/node_modules/unist-util-visit-parents/index.js +2 -0
- package/dist/node_modules/unist-util-visit/node_modules/unist-util-visit-parents/index.js.map +1 -0
- package/dist/node_modules/unist-util-visit-parents/index.js +2 -0
- package/dist/node_modules/unist-util-visit-parents/index.js.map +1 -0
- package/dist/node_modules/upper-case/dist.es2015/index.js +2 -0
- package/dist/node_modules/upper-case/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/upper-case-first/dist.es2015/index.js +2 -0
- package/dist/node_modules/upper-case-first/dist.es2015/index.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/native.js +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/rng.js +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/v4.js +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -0
- package/dist/node_modules/vfile/index.js +2 -0
- package/dist/node_modules/vfile/index.js.map +1 -0
- package/dist/node_modules/vfile/lib/core.js +2 -0
- package/dist/node_modules/vfile/lib/core.js.map +1 -0
- package/dist/node_modules/vfile/lib/index.js +2 -0
- package/dist/node_modules/vfile/lib/index.js.map +1 -0
- package/dist/node_modules/vfile/lib/minpath.browser.js +2 -0
- package/dist/node_modules/vfile/lib/minpath.browser.js.map +1 -0
- package/dist/node_modules/vfile/lib/minproc.browser.js +2 -0
- package/dist/node_modules/vfile/lib/minproc.browser.js.map +1 -0
- package/dist/node_modules/vfile-message/index.js +2 -0
- package/dist/node_modules/vfile-message/index.js.map +1 -0
- package/dist/node_modules/xtend/immutable.js +2 -0
- package/dist/node_modules/xtend/immutable.js.map +1 -0
- package/dist/package.json/package.json +76 -0
- package/dist/src/NotificationBar/index.js +2 -0
- package/dist/src/NotificationBar/index.js.map +1 -0
- package/dist/src/TwilioChat/Chat.js +2 -0
- package/dist/src/TwilioChat/Chat.js.map +1 -0
- package/dist/src/TwilioChat/index.js +2 -0
- package/dist/src/TwilioChat/index.js.map +1 -0
- package/dist/src/api/api.js +2 -0
- package/dist/src/api/api.js.map +1 -0
- package/dist/src/assets/styles/app.scss.js +2 -0
- package/dist/src/assets/styles/app.scss.js.map +1 -0
- package/dist/src/assets/styles/fonts.css.js +2 -0
- package/dist/src/assets/styles/fonts.css.js.map +1 -0
- package/dist/src/context/GlobalContext.js +2 -0
- package/dist/src/context/GlobalContext.js.map +1 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/utils/alert.js +2 -0
- package/dist/src/utils/alert.js.map +1 -0
- package/dist/src/utils/helperFn.js +2 -0
- package/dist/src/utils/helperFn.js.map +1 -0
- package/dist/utils/alert.d.ts +1 -0
- package/dist/utils/chats.d.ts +231 -0
- package/dist/utils/helperFn.d.ts +2 -0
- package/package.json +45 -7
- package/rollup.config.js +0 -42
- package/src/TwilioChat/index.tsx +0 -15
- package/src/index.ts +0 -2
- package/tsconfig.json +0 -20
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/TwilioChat/index.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef, FormEvent, useContext } from 'react';\nimport { io, Socket } from 'socket.io-client';\nimport FormData from 'form-data';\nimport styled from 'styled-components';\nimport GlobalContext from '../context/GlobalContext';\nimport linkifyHtml from 'linkify-html';\nimport Chat from './Chat';\nimport { Col, Row } from 'react-bootstrap';\nimport moment from 'moment';\nimport { toastrMsg } from '../utils/alert';\nimport { v4 as uuidv4 } from 'uuid';\nimport NoticationBar from '../NotificationBar';\nimport { isStagingOrDevelopment } from '../utils/helperFn';\nimport { useTime } from 'react-timer-hook';\nimport API, { setConfig } from '../api/api';\nimport axios from 'axios';\nimport { useDropzone } from 'react-dropzone';\nimport '../assets/styles/fonts.css';\nimport '../assets/styles/app.scss'\n\nconst icoYouFibre = new URL(\"./assets/images/svg/favicon.svg\", import.meta.url);\nconst icoChat = new URL(\"./assets/images/svg/chat.svg\", import.meta.url);\nconst icoCloseChat = new URL(\"./assets/images/png/ico-close.png\", import.meta.url);\nconst loadingIcon = new URL(\"./assets/images/gif/loader-transparent.gif\", import.meta.url);\nconst icoUpload = new URL(\"./assets/images/svg/youfibre-upload.svg\", import.meta.url);\nconst icoClose = new URL(\"./assets/images/svg/close.svg\", import.meta.url);\nconst notificationSound = new URL(\"./assets/audio/notification.wav\", import.meta.url);\n\ninterface Message {\n createdAt: string;\n from?: string | null;\n files?: string | null;\n message: string | null;\n form: FormType | null;\n messageId: string;\n fromId: string;\n senderType: string;\n}\ninterface FormType {\n type: string;\n value: Array<{ title: string; action: string; placeholder?: string | null; type?: string; required?: boolean; options?:object }>;\n}\n\ntype UserType = 'NEW_CUSTOMER' | 'ACCOUNT_HOLDER' | 'NOT_ACCOUNT_HOLDER';\n\nconst Container = styled.div`\n width: 100%;\n max-width: 700px;\n height: 100%;\n position: relative;\n margin: 0px auto;\n display: flex;\n flex-direction: row;\n align-items: center;\n \n &.direction-column-reverse { flex-direction: column-reverse; }\n &.content-end { justify-content: end; }\n\n`;\n\nconst OverflowContainer = styled(Container)`\n overflow-y: auto;\n`\n\nconst Widget = styled.div`\n position: fixed;\n bottom: 40px;\n right: 40px;\n z-index: 100;\n display: flex;\n flex-direction: column;\n align-items: end;\n gap: 15px;\n`;\n\nconst Icon = styled.div`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #08DE9E;\n width: 50px;\n height: 50px;\n border-radius: 100px;\n cursor: pointer;\n -webkit-box-shadow: 2px 1px 8px 0px rgba(0, 0, 0, 0.27);\n -moz-box-shadow: 2px 1px 8px 0px rgba(0, 0, 0, 0.27);\n box-shadow: 2px 1px 8px 0px rgba(0, 0, 0, 0.27);\n -webkit-user-select: none;\n user-select: none; \n img {\n position: absolute;\n -moz-transition: all 0.3s ease;\n transition: all 0.3s ease;\n\t\t&.icon-hover {\n width: 15px;\n height: 15px;\n\t\t\ttransform: rotate(180deg) scale(.5);\n\t\t\topacity: 0;\n\t\t}\n\t\t&.icon-default {\n width: 20px;\n height: 20px;\n\t\t\ttransform: rotate(0deg) scale(1);\n\t\t\topacity: 1;\n\t\t}\n }\n &:hover {\n -webkit-box-shadow: 2px 1px 12px 0px rgba(0, 0, 0, 0.35);\n -moz-box-shadow: 2px 1px 12px 0px rgba(0, 0, 0, 0.35);\n box-shadow: 2px 1px 12px 0px rgba(0, 0, 0, 0.35);\n }\n &.open {\n\t\t.icon-hover {\n\t\t\ttransform: rotate(0deg) scale(1);\n\t\t\topacity: 1;\n\t\t}\n\t\t.icon-default {\n\t\t\ttransform: rotate(180deg) scale(.5);\n\t\t\topacity: 0;\n\t\t}\n }\n &.fullscreen {\n display: none;\n }\n\n .unread {\n background-color: red;\n padding: 3px;\n display: flex;\n width: 20px;\n height: 20px;\n aspect-ratio: 1 / 1;\n border-radius: 200px;\n color: #ffffff;\n position: absolute;\n top: -4px;\n right: -2px;\n font-size: 11px !important;\n line-height: 0.5rem !important;\n flex-direction: row;\n align-content: center;\n justify-content: center;\n align-items: center;\n -webkit-box-shadow: 2px 1px 8px 0px rgba(0, 0, 0, 0.27);\n -moz-box-shadow: 2px 1px 8px 0px rgba(0, 0, 0, 0.27);\n box-shadow: 2px 1px 8px 0px rgba(0, 0, 0, 0.27);\n animation: pulseAnimation 1.5s infinite;\n @keyframes pulseAnimation {\n 0% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n }\n }\n }\n`;\n\nconst ChatWrapper = styled.div`\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n width: 350px;\n height: 550px;\n border-radius: 5px;\n -webkit-box-shadow: 2px 1px 12px 0px rgba(0, 0, 0, 0.35);\n -moz-box-shadow: 2px 1px 12px 0px rgba(0, 0, 0, 0.35);\n box-shadow: 2px 1px 12px 0px rgba(0, 0, 0, 0.35);\n max-width: 0px;\n max-height: 0px;\n overflow: hidden;\n transition: max-height 0.5s ease-in-out;\n &.show {\n max-width: 350px;\n max-height: 540px;\n }\n .cover {\n background: rgba(255, 255, 255, 0.2);\n position: absolute;\n z-index: 92;\n padding: 14px;\n width: calc(100% - 28px);\n height: calc(100% - 93px);\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n -webkit-user-select: none;\n user-select: none;\n text-align: center;\n overflow: hidden;\n text-overflow: ellipsis;\n &.closed {\n background: rgba(255, 255, 255, 0.9);\n button { margin-top: 2rem; }\n }\n &.upload {\n background: rgba(9, 222, 158, 0.9);\n button { margin-top: 2rem; }\n }\n animation: showCover .4s cubic-bezier(0.41, 0.39, 0.53, 1.38) forwards;\n \n @keyframes showCover {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n }\n .files {\n margin: 0.5rem;\n border-radius: 5px;\n background-color: #c1f7e7;\n padding: 0rem;\n overlay: none;\n display: flex; \n flex-direction: column;\n justify-content: center;\n gap: 0rem;\n .file {\n display: flex;\n flex-direction: row;\n border-radius: 3px;\n justify-content: space-between;\n align-items: center;\n margin: 0.2rem;\n padding: 0.2rem 0.5rem;\n gap: 14px;\n &:hover {\n background-color: #ffffff;\n }\n .fileName {\n font-size: 11px !important;\n line-height: 12px;\n word-break: keep-all;\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .action {\n width: 12px;\n height: 12px;\n opacity: 0.7;\n cursor: pointer;\n &:hover {\n opacity: 1;\n }\n }\n\n }\n }\n &.fullscreen {\n max-width: 100% !important;\n max-height: 100% !important;\n position: fixed;\n left: 0px;\n top: 0px;\n width: 100%;\n height: 100%;\n border-radius: 0px;\n // @media (max-width: 768px) {\n // #listOfMessages {\n // max-height: calc(100vh - 210px);\n // }\n // .chat-content-container {\n // padding-bottom: 4rem;\n // }\n // }\n .cover {\n &.closed {\n height: 100%;\n }\n }\n }\n @media (max-width: 576px) {\n position: fixed;\n z-index: 100;\n bottom: 0px;\n right: 0px;\n width: 100%;\n height: 100%;\n border-radius: 0px;\n &.show {\n max-width: 100%;\n max-height: 100%;\n }\n .cover {\n &.closed, &.upload {\n height: 100%;\n }\n }\n }\n`;\n\nconst ChatHeader = styled.div`\n background-color: #08DE9E;\n width: calc(100% - 30px);\n padding: 15px;\n color: #ffffff;\n flex: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 15px;\n -webkit-box-shadow: -2px 2px 5px 1px rgba(0,0,0,0.2);\n box-shadow: -2px 2px 5px 1px rgba(0,0,0,0.2);\n z-index: 91;\n img {\n width: 30px;\n height: 30px;\n -object-fit: fill;\n object-fit: fill;\n padding: 7px;\n border-radius: 200px;\n cursor: pointer;\n background-color: #FFFFFF;\n &.close {\n display: none;\n background-color: transparent;\n }\n }\n button {\n font-size: 0.9rem;\n }\n a {\n &:hover {\n text-decoration: none !important;\n cursor: pointer;\n }\n }\n span {\n padding: 0px;\n }\n @media (max-width: 576px) {\n img {\n &.close {\n display: block;\n }\n }\n }\n`;\n\nconst ChatContent = styled.div`\n width: 100%;\n padding: 0;\n color: #000000;\n flex: 1;\n display: flex;\n flex-direction: column-reverse;\n overflow-x: hidden;\n .chat-content-container {\n padding-bottom: 1.8rem;\n }\n button {\n display: block;\n background-color: #c1f7e7;\n flex: 0;\n padding: 5px;\n border-radius: 5px;\n color: #263238;\n font-weight: 100;\n font-size: 1rem;\n line-height: 18px;\n font-weight: 100;\n min-width: 40%;\n border: 2px solid #08DE9E;\n cursor: pointer;\n &:hover {\n background-color: #08DE9E;\n }\n }\n @media (max-width: 768px) {\n overflow-y: hidden;\n .chat-content-container {\n overflow-y: auto;\n // padding-bottom: 0;\n }\n }\n`;\n\nconst ChatInput = styled.form`\n background-color: #f4f7f9;\n width: calc(100% - 10px);\n flex: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 10px;\n padding: 5px;\n .action {\n width: 1.3rem;\n height: 1.3rem;\n cursor: pointer;\n opacity: 0.7;\n -webkit-user-select: none;\n user-select: none;\n &:hover {\n opacity: 0.7;\n }\n }\n input {\n background-color: rgba(0,0,0,0);\n border: none;\n border-bottom: 1px solid rgba(0,0,0,0);\n outline: 0px;\n padding: 0px;\n margin-left: 15px;\n font-size: 0.9rem;\n font-weight: 100;\n flex: 1;\n &.invalid {\n border-bottom: 1px solid red;\n }\n }\n button {\n min-width: 90px;\n background-color: #09de9e;\n flex: 0;\n font-size: 0.9rem;\n &:hover {\n background-color: #08c98f;\n }\n &:disabled, &:disabled:hover {\n background-color: rgba(0,0,0,0.05);\n color: #aabbcc !important;\n }\n }\n`;\n\nconst Agent = styled.div`\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n small {\n position: absolute;\n margin-top: -1.6rem;\n margin-right: 14px;\n font-size: 11px !important;\n font-weight: 100;\n line-height: 12px;\n color: #015e9c;\n background-color: #ddf0fc;\n border: 1px solid #ffffff;\n border-radius: 100px;\n padding: 5px 15px;\n z-index: 50;\n }\n`;\n\ninterface Props {\n host: string;\n websocketUrl: string;\n postcodeSchemaId?: string;\n source?: string;\n fullscreen?: boolean;\n clientId:string;\n clientSecret:string;\n customToken?:string|undefined;\n}\n\nconst TwilioChat = ({ host, clientId, clientSecret, customToken, websocketUrl, postcodeSchemaId = \"6162c7da-a37d-4543-af2c-bdea7d49d6ca\", source = \"youfibre\", fullscreen = false}: Props) => {\n const gContext: any = useContext(GlobalContext);\n const outageFormMessage = useRef<string | null>(null);\n const [outage, setOutage] = useState<boolean>(false);\n const [outageMessage, setOutageMessage] = useState<string | null>(null);\n const [logged, setLogged] = useState<boolean>(false);\n const [token, setToken] = useState<string | null>(null);\n const [chatConversationId, setChatConversationId] = useState<string | null>(null);\n const [chatCaseId, setChatCaseId] = useState<string | null>(null);\n const [chatLoading, setChatLoading] = useState<boolean>(false);\n const [chatSending, setChatSending] = useState<boolean>(false);\n const [chatClosing, setChatClosing] = useState<boolean>(false);\n const [openChat, setOpenChat] = useState<boolean>(fullscreen);\n const [chatForm, setChatForm] = useState<{ [key: string]: any }>({});\n const [message, setMessage] = useState<string>('');\n const [chatUserId, setChatUserId] = useState<string | null>(null);\n const [chatUserType, setChatUserType] = useState<UserType | null>(null);\n const [chatUsername, setChatUsername] = useState<string | null>(null);\n const [uploadedFiles, setUploadedFiles] = useState<any>([]);\n const [uploadArea, setUploadArea] = useState<boolean>(false);\n const [resetFormValues, setResetFormValues] = useState<boolean>(false);\n const [chatSessionId, setChatSessionId] = useState<string | null>(null);\n const [confirmClosing, setConfirmClosing] = useState<boolean>(false);\n\n const [twilioChatUrlParams, setTwilioChatUrlParams] = useState<any>(null);\n\n const [chatUnreaded, setChatUnreaded] = useState<boolean>(false);\n\n const [chatActive, setChatActive] = useState<boolean>(true);\n const [appMessages, setAppMessages] = useState<any>(null);\n\n const [animateTabTitle, setAnimateTabTitle] = useState<boolean>(false);\n const [titleIndex, setTitleIndex] = useState(-1);\n \n const titleRef = useRef<string>(\"\");\n let timer = useRef<number>(0);\n const intervalRef = useRef<number | null>(null);\n\n let openChatRef = useRef<boolean>(openChat);\n let visibilityChange = useRef<boolean>(true);\n\n const fileCount = 5;\n const fileSize = 10; // MB\n const fileExtensions = ['jpg', 'jpeg', 'png', 'pdf', 'gif', 'txt', 'mp4', 'mp3'];\n\n const { seconds: londonSec } = useTime({ interval: 1 });\n \n let [agentTyping, setAgentTyping] = useState<boolean>(false);\n let agentIdRef = useRef<string|null>(null);\n\n const defaultMessages:Message[] = [\n {\n createdAt: moment(new Date()).format(),\n message: null,\n fromId: \"Client\",\n senderType: \"CUSTOMER\",\n form: {\n type: \"buttons\",\n value: [\n {\n title: \"I am the account holder\",\n action: \"old_customer\"\n },\n {\n title: \"I am not the account holder\",\n action: \"not_customer\"\n },\n {\n title: \"I am new here\",\n action: \"new_customer\"\n },\n ]\n },\n messageId: \"1\"\n },\n {\n senderType: \"AGENT\",\n createdAt: moment(new Date()).format(),\n from: \"YouFibre\",\n fromId: \"YouFibre\",\n message: \"Welcome to YouFibre!<br />We're going to ask you some questions to ensure we get you through to the right team, so please bear with us!<br />Are you the account holder?\",\n form: null,\n messageId: \"0\"\n }\n ];\n\n const categories = {\n SALES: \"Sales\",\n TECH_SUPPORT: \"Tech Support\",\n INSTALLS_AND_SERVICE_VISITS: \"Installs & Service Visits\",\n MANAGE_MY_ACCOUNT: \"Manage My Account\",\n BILLING: \"Billing\",\n CANCELLATION: \"Cancellation\",\n COMPLAINT: \"Complaint\",\n };\n\n const userTypeLabels = {\n NEW_CUSTOMER: \"New customer\",\n ACCOUNT_HOLDER: \"Account holder\",\n NOT_ACCOUNT_HOLDER: \"Not the account holder\"\n };\n\n const [messages, setMessages] = useState<Message[]>(defaultMessages);\n const [newMessages, setNewMessages] = useState<Message[]|null>(null);\n const messagesRef = useRef<Message[]>(messages);\n const chatBoxRef = useRef<HTMLDivElement | null>(null);\n const sc = useRef<Socket | null>(null);\n\n const scrollToBottom = () => {\n try {\n if (chatBoxRef.current) {\n chatBoxRef.current.scrollIntoView({ behavior: \"smooth\" });\n }\n } catch(e){ }\n };\n\n useEffect(() => {\n if (typeof document !== \"undefined\" && typeof window !== 'undefined'){\n if(animateTabTitle && titleIndex !== -1) {\n if(!localStorage.getItem(\"title\")) localStorage.setItem(\"title\", (typeof document !== \"undefined\" && document.getElementsByTagName('title')[0].textContent) || \"\");\n const updateTitle = () => {\n const title = titleRef.current;\n if (title) {\n const nextIndex = (titleIndex + 1) % title.length;\n document.title = title.slice(nextIndex) + \" \" + title.slice(0, nextIndex);\n setTitleIndex(nextIndex);\n }\n };\n intervalRef.current = window.setInterval(updateTitle, 200); // Change the title every 200ms\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current); // Cleanup on unmount\n }\n };\n } else {\n intervalRef.current = null;\n titleRef.current = \"\";\n }\n }\n }, [titleIndex]);\n\n useEffect(() => {\n setConfig(host, clientId, clientSecret, customToken);\n axios.get(`https://strapi.youfibre.com/api/information`)\n .then((response:any) =>{\n gContext.setAppMessages(response.data); \n })\n .catch((error:any) => {\n gContext.setAppMessages(null);\n });\n\n getUrlParams();\n \n let lastUrl = typeof window !== 'undefined' ? window.location.href : '';\n\n const observer = new MutationObserver(() => {\n if (typeof window !== 'undefined' && lastUrl !== window.location.href) {\n lastUrl = window.location.href;\n getUrlParams();\n }\n });\n\n typeof document !== 'undefined' && observer.observe(document.body, { childList: true, subtree: true });\n\n return () => observer.disconnect();\n }, []);\n\n useEffect(() => {\n // Get Settings from Strapi\n setAppMessages(gContext.appMessages);\n // Chech if current time isn't in time range\n setChatActive(!isTimeInRange());\n }, [gContext.appMessages]);\n\n useEffect(() => {\n // Live check if chat should be active\n setChatActive(!isTimeInRange());\n }, [londonSec]);\n\n useEffect(() => {\n // If we are on the second step - Login form\n !chatActive && !chatCaseId && resetChat();\n }, [chatActive]);\n\n const nowInLondon = new Date().toLocaleString(\"en-GB\", {\n timeZone: \"Europe/London\",\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n });\n\n const timeToSeconds = (timeStr) => {\n if(timeStr) {\n const [hours, minutes, seconds] = timeStr.split(':').map(Number);\n return hours * 3600 + minutes * 60 + seconds;\n }\n }\n\n const isTimeInRange = () => {\n if(gContext.appMessages?.chat_off_mode_toggle && nowInLondon && gContext.appMessages?.chat_off_mode_start && gContext.appMessages?.chat_off_mode_end) {\n const current = timeToSeconds(nowInLondon);\n const start = timeToSeconds(gContext.appMessages?.chat_off_mode_start);\n const end = timeToSeconds(gContext.appMessages?.chat_off_mode_end);\n if (start < end) {\n // Normal range (e.g., 08:00 to 20:00)\n return current >= start && current < end;\n } else {\n // Overnight range (e.g., 20:00 to 08:00)\n return current >= start || current < end;\n }\n } else {\n return false;\n }\n }\n\n const getUrlParams = () => {\n if (typeof window !== 'undefined') {\n setTwilioChatUrlParams(new URLSearchParams(window.location.search));\n }\n }; \n\n useEffect(() => {\n if(twilioChatUrlParams?.get(\"youFibreChat\") === ''){\n // Use params from URL, and init chat with messages from back-end (not from localstorage)\n const fetchData = async () => {\n await new Promise<void>((resolve) => {\n localStorage.setItem('chatUsername', twilioChatUrlParams.get(\"chatUsername\"));\n localStorage.setItem('chatUserId', twilioChatUrlParams.get(\"chatUserId\"));\n localStorage.setItem('chatSessionId', twilioChatUrlParams.get(\"chatSessionId\"));\n localStorage.setItem('conversationId', twilioChatUrlParams.get(\"conversationId\"));\n localStorage.setItem('caseId', twilioChatUrlParams.get(\"caseId\"));\n localStorage.setItem('participantId', twilioChatUrlParams.get(\"participantId\"));\n setChatUserId(twilioChatUrlParams.get(\"participantId\"));\n gContext.goSetRegistrationData({\n ...gContext.goGetRegistrationData(),\n twilioChat: {\n ...gContext.goGetRegistrationData()?.twilioChat || null,\n chatUsername: twilioChatUrlParams.get(\"chatUsername\") || null,\n chatSessionId: twilioChatUrlParams.get(\"chatSessionId\") || null,\n chatUserId: twilioChatUrlParams.get(\"chatUserId\") || null,\n conversationId: twilioChatUrlParams.get(\"conversationId\") || null,\n caseId: twilioChatUrlParams.get(\"caseId\") || null,\n participantId: twilioChatUrlParams.get(\"participantId\") || null,\n }\n });\n resolve();\n });\n init();\n };\n fetchData();\n } else if (twilioChatUrlParams && Object.keys(twilioChatUrlParams).length === 0){\n // Call existing chat\n init();\n } else {\n }\n },[twilioChatUrlParams]);\n \n const init = () => { \n const getData = async () => {\n if(localStorage.getItem('conversationId')){ \n try {\n const response = await API.get(`ChatModule/v1.0/gateway/conversation/${localStorage.getItem('conversationId')}`);\n // Check if the response is okay\n if (!response) {\n console.log(\"Can't check conversation!\");\n return null;\n }\n if(response?.data?.properties?.Status === \"CLOSED\") resetChat();\n else {\n gContext.goSetRegistrationData({\n ...gContext.goGetRegistrationData(),\n twilioChat: {\n ...gContext.goGetRegistrationData()?.twilioChat || null,\n chatUsername: localStorage.getItem('chatUsername') || null,\n chatSessionId: localStorage.getItem('chatSessionId') || null,\n chatUserId: localStorage.getItem('participantId') || null,\n conversationId: localStorage.getItem('conversationId') || null,\n caseId: localStorage.getItem('caseId') || null,\n participantId: localStorage.getItem('participantId') || null,\n }\n });\n }\n setChatLoading(false);\n } catch (error) { console.log('Error fetching conversation status: ', error); }\n }\n };\n getData();\n\n localStorage.removeItem(\"title\");\n setChatConversationId(localStorage.getItem('conversationId') || null);\n setChatCaseId(localStorage.getItem('caseId') || null);\n setChatUserId(localStorage.getItem('participantId') || null);\n agentIdRef.current = localStorage.getItem('agentId') || null;\n setChatSessionId(localStorage.getItem('chatSessionId') || null);\n\n localStorage.getItem('conversationId') && localStorage.getItem('participantId') && setLogged(true);\n localStorage.getItem('chatUsername') && setChatUsername(localStorage.getItem('chatUsername'));\n localStorage.getItem('chatUserType') && setChatUserType(localStorage.getItem('chatUserType') as UserType || 'NEW_CUSTOMER');\n\n setChatForm({\n full_name: localStorage.getItem('chatUsername'),\n email: localStorage.getItem('chatEmail'),\n category: localStorage.getItem('chatCategory'),\n address: localStorage.getItem('chatAddress'),\n last_bill: localStorage.getItem('chatLastBill'),\n });\n localStorage.getItem('chatMessages') ? \n setMessages(JSON.parse(localStorage.getItem('chatMessages') || '')) : \n localStorage.setItem('chatMessages', JSON.stringify(messages));\n\n localStorage.getItem('conversationId') && getAllMessages(localStorage.getItem('conversationId'), \"onLoad\");\n\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n // console.log('Tab is active');\n visibilityChange.current = true;\n if(typeof document !== \"undefined\" && openChatRef.current && localStorage.getItem(\"title\")){\n setAnimateTabTitle(false);\n setTitleIndex(-1);\n setChatUnreaded(false);\n document.title = localStorage.getItem(\"title\") || \"\";\n document.getElementById('inputMessage')?.focus();\n setTimeout(() => localStorage.removeItem(\"title\"), 1000);\n }\n localStorage.getItem('conversationId') && getAllMessages(localStorage.getItem('conversationId'), \"visibilitychange\");\n } else {\n // console.log('Tab is in the background');\n visibilityChange.current = false;\n }\n });\n };\n \n const getAllMessages = async (convID:string|null, location:string) => {\n try{\n if(convID){\n const response:any = await API.get(`NotificationModule/v2.0/records/Conversation/${convID}/links?targetEntities=[\"Message\"]`);\n if(response){\n let tmpMessages:Message[] = await Promise.all(\n response?.Message?.dbRecords.map(async item => ({\n createdAt: item?.createdAt,\n from: item?.properties?.From,\n files: await getFiles(item?.properties?.Files), \n message: item?.properties?.Body,\n form: null,\n messageId: item?.id,\n fromId: item?.createdBy?.id,\n senderType: item.type === \"EVENT\" ? \"EVENT\" : item.properties.SenderType\n }))\n ); \n if(!openChatRef.current && Object.keys(tmpMessages).length > 0){\n setChatUnreaded(true); \n }\n // Sort messages by createdAt (string)\n tmpMessages = tmpMessages.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());\n setMessages(tmpMessages); \n localStorage.setItem('allMessages', JSON.stringify(tmpMessages)); \n }\n } else \n setMessages(defaultMessages); \n } catch (error) {\n console.log('Error fetching messages:', error);\n }\n };\n\n useEffect(() => {\n if (typeof document !== \"undefined\") {\n if (fullscreen) {\n document.body.style.overflow = 'hidden';\n document.documentElement.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n document.documentElement.style.overflow = '';\n }\n }\n }, [fullscreen])\n\n const connectToWebsocket = (sessionId:string|null = null) => {\n return io(`${websocketUrl}/ChatWebsocketModule/TwilioChatWebsocket/v1.0`, \n { \n path: '/ws',\n query: {\n clientId: sessionId \n },\n reconnection: true,\n reconnectionAttempts: Infinity, // Retry indefinitely\n reconnectionDelay: 1000, // Start with a 1-second delay\n reconnectionDelayMax: 5000, // Cap the delay at 5 seconds\n timeout: 10000, // Timeout after 10 seconds\n }); \n };\n\n useEffect(() => { \n if(chatUserId){\n const tmpUUID = chatSessionId || uuidv4();\n setChatSessionId(tmpUUID);\n localStorage.setItem('chatSessionId', tmpUUID);\n \n if(!sc.current) sc.current = connectToWebsocket(tmpUUID);\n\n sc.current?.on('connect', () => {\n console.log('Connected to WebSocket server');\n });\n\n sc.current?.on(\"connect_error\", (err) => {\n console.log(`Connect error due to ${err.message}`);\n sc.current = null;\n }); \n\n sc.current?.on(\"disconnect\", (reason) => {\n console.log(`Disconnected: ${reason}`);\n sc.current = null;\n });\n\n }\n }, [chatUserId]);\n\n useEffect(() => { \n const fetchData = async () => {\n // // Don't delete this code\n // sc.current && sc.current?.onAny((eventName, ...args) => {\n // console.log(\"All events:\", eventName, args);\n // });\n\n if(sc.current && chatCaseId){\n\n sc.current.emit(\"joinRoom\", chatCaseId);\n\n !sc.current.listeners(`case-event-${chatCaseId}`).length && sc.current?.on(`case-event-${chatCaseId}`, (data) => { \n // console.log(`case-event-${chatCaseId}`, data);\n if(data.caseId === localStorage.getItem('caseId')){ \n switch(data.type){\n case \"CASE_UPDATED\": \n agentIdRef.current = data.data.properties.OwnerId; \n localStorage.setItem('agentId', agentIdRef.current || \"\"); break;\n case \"CONVERSATION_CLOSED\": setChatClosing(true); break;\n case \"MESSAGE_CREATED\": receiveMessage(data.data); break;\n default: break;\n }\n }\n });\n \n !sc.current.listeners(`web-chat-input-${chatCaseId}`).length && sc.current?.on(`web-chat-input-${chatCaseId}`, async (data) => {\n // console.log(`web-chat-input-${chatCaseId}`, data);\n if(data.caseId === chatCaseId && data.sender === \"AGENT\"){\n setAgentTyping(true);\n }\n });\n }\n }; \n fetchData();\n }, [chatCaseId]);\n\n\n let typingTimeout:any;\n\n useEffect(() => { \n const fetchData = async () => {\n try {\n typingTimeout = agentTyping ? setTimeout(() => {\n setAgentTyping(false);\n clearTimeout(typingTimeout);\n }, 1500) : false; \n } catch (error) {\n console.log(\"Error fetching data:\", error);\n }\n }; \n fetchData();\n }, [agentTyping]);\n\n useEffect(() => {\n messagesRef.current = messages; \n }, [messages]);\n\n useEffect(() => { \n const fetchData = async () => {\n try {\n if(messages.length && chatCaseId){\n sc.current && sc.current?.emit(`web-chat-input`, {\n caseId: chatCaseId,\n conversationId: chatConversationId,\n message: message,\n sender: 'CUSTOMER'\n });\n } \n } catch (error) {\n console.log(\"Error fetching data:\", error);\n }\n }; \n fetchData();\n }, [message]);\n\n const getFiles = async (files: String[] | null = null) => {\n try{\n let tmpFiles:any = [];\n if(files){\n const response:any = await API.get(`SchemaModule/v1.0/db/File/many?ids=${files}`);\n // Check if the response is okay\n if (!response) {\n console.log(\"Can't close conversation!\");\n } else {\n if(Object.keys(response).length){\n response.map((item) => {\n tmpFiles = [...tmpFiles, {\n id: item?.id || \"\",\n type: item?.properties?.Mimetype || \"\",\n url: item?.properties?.Url || \"\"\n }];\n });\n }\n return (Object.keys(tmpFiles).length !== 0) ? tmpFiles : [];\n }\n } else {\n return [];\n }\n } catch (error) {\n console.log('Error fetching files:', error);\n return [];\n }\n };\n \n const receiveMessage = async (data:any) => { \n if(data && !messagesRef.current.some(obj => obj.messageId === data.id)){\n try{\n data?.Conversation?.dbRecords[0]?.properties?.Status === \"CLOSED\" && setChatClosing(true);\n let tmpFiles:any = [];\n if(data.properties.Files){\n tmpFiles = await getFiles(data.properties.Files);\n if(Object.keys(tmpFiles).length === 0) tmpFiles = null;\n updateMessages(data, tmpFiles);\n } else {\n updateMessages(data, tmpFiles);\n }\n } catch (error) {\n console.log('Error fetching message:', error);\n }\n }\n };\n\n const updateMessages = (data: any, files:any) => {\n let tmpMessage:Message = {\n senderType: data.type !== 'EVENT' ? data.properties.SenderType : data.type,\n createdAt: moment(new Date()).format(),\n from: data.type !== 'EVENT' ? data.properties.From : data.type,\n message: data.type !== 'EVENT' ? data.properties.Body : data.title,\n form: null,\n files: files,\n messageId: data.id,\n fromId: data.type !== 'EVENT' ? data.createdBy.id : \"YouFibre\"\n };\n if(!openChatRef.current || !visibilityChange.current){\n setChatUnreaded(true); \n }\n setNewMessages([...(newMessages || []), tmpMessage]);\n \n setTimeout(() => {\n setNewMessages(null);\n setMessages([tmpMessage, ...messagesRef.current]);\n localStorage.setItem('chatMessages', JSON.stringify([tmpMessage, ...messagesRef.current]));\n setChatLoading(false);\n scrollToBottom();\n }, 400);\n };\n\n useEffect(() => {\n if(typeof document !== 'undefined'){\n if(!localStorage.getItem(\"title\")) localStorage.setItem(\"title\", (typeof document !== \"undefined\" && document.getElementsByTagName('title')[0].textContent) || \"\");\n if(chatUnreaded) {\n let sound = new Audio(notificationSound.toString());\n sound.setAttribute('crossorigin', 'anonymous'); \n sound.play().catch((error) => {\n console.log(\"User interaction required before playing sound\");\n });\n document.title = \"New message | YouFibre\";\n }\n else {\n document.title = localStorage.getItem(\"title\") || '';\n scrollToBottom();\n }\n } \n }, [chatUnreaded]);\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n if(typeof window !== 'undefined' && typeof document !== \"undefined\"){\n if(openChat){\n if(window.innerWidth < 577) document.body.style.overflow = \"hidden\";\n intervalRef.current && clearInterval(intervalRef.current);\n if(localStorage.getItem(\"title\")) document.title = localStorage.getItem(\"title\") || \"\";\n setAnimateTabTitle(false);\n setTitleIndex(-1);\n setChatUnreaded(false);\n document.getElementById('inputMessage')?.focus();\n setTimeout(() => localStorage.removeItem(\"title\"), 1000);\n } else {\n document.body.style.overflow = \"\";\n setConfirmClosing(false);\n setChatClosing(false);\n }\n }\n scrollToBottom();\n openChatRef.current = openChat;\n } catch (error) {\n console.log(\"Error fetching data:\", error);\n }\n }; \n fetchData();\n }, [openChat]);\n\n const validateInput = (data) => {\n // // Don't delete this code\n // if(data.length === 0) return true;\n // const regex = /^[a-zA-Z0-9\\s\\-,.!?()/@#&£€$=+*\"']+$/;\n // return regex.test(data);\n return true;\n };\n\n const resetChat = () => {\n if(sc.current && chatCaseId){\n sc.current.emit(\"leaveRoom\", chatCaseId);\n sc.current.removeAllListeners();\n }\n setChatConversationId(null);\n setChatCaseId(null);\n setUploadedFiles([]);\n setResetFormValues(!resetFormValues);\n setOutage(false);\n setOutageMessage(null);\n outageFormMessage.current = null;\n localStorage.removeItem('chatEmail');\n localStorage.removeItem('conversationId');\n localStorage.removeItem('caseId');\n localStorage.removeItem('participantId');\n localStorage.removeItem('chatUsername');\n localStorage.removeItem('twilio_token');\n localStorage.removeItem('chatMessages');\n localStorage.removeItem('chatUserType');\n localStorage.removeItem('chatCategory'); \n localStorage.removeItem('chatAddress'); \n localStorage.removeItem('chatLastBill');\n localStorage.removeItem('agentId');\n localStorage.removeItem('chatSessionId');\n setChatUsername(null);\n setChatUserType(null);\n setChatUserId(null);\n setChatForm({});\n setChatLoading(false);\n setLogged(true);\n setToken(null);\n agentIdRef.current = null;\n setMessage('');\n localStorage.setItem('chatMessages', JSON.stringify(defaultMessages));\n setNewMessages(null);\n setMessages(defaultMessages);\n scrollToBottom();\n fullscreen && setOpenChat(true);\n\n gContext.goSetRegistrationData({\n ...gContext.goGetRegistrationData(),\n twilioChat: null\n });\n };\n\n const getToken = async (tmpEmail) => {\n try {\n const data = await API.get(`ChatModule/v1.0/gateway/token?identity=${tmpEmail}&source=twilio`);\n return data || null;\n } catch (error) { console.log('Error fetching token:', error); }\n };\n\n const createConversation = async (\n tmpChatUsername:string|null,\n tmpChatEmail:string|null,\n tmpChatAddress:string|null,\n tmpChatLastBill:string|null,\n tmpChatUserType:string|null,\n tmpChatCategory:string|null\n ) => { \n try {\n const response = await API.post(`ChatModule/v1.0/gateway/conversation/create`, \n {\n source: \"twilio\",\n channel: \"WEB_CHAT\",\n identifier: tmpChatEmail || null,\n DpaCustomerName: tmpChatUsername || null,\n DpaCustomerEmail: tmpChatEmail || null,\n DpaCustomerAddress: tmpChatAddress || null,\n DpaCustomerLastBill: tmpChatLastBill || null,\n DpaCustomerType: tmpChatUserType || null,\n DpaCustomerCategory: tmpChatCategory || null\n });\n // Check if the response is okay\n if (!response) {\n console.log(\"Can't create conversation!\");\n setChatActive(false);\n return null;\n }\n // Check if the statusCode matches\n return response ? response : null;\n } catch (error:any) {\n setChatActive(false);\n toastrMsg(error.message.replaceAll('OdinApiError:',''), \"error\");\n }\n };\n\n const closeConversation = async (closedBy:string = \"CUSTOMER\") => {\n try {\n const response = await API.post(\n `ChatModule/v1.0/gateway/conversation/${localStorage.getItem('conversationId')}/close`, \n { closedBy: closedBy }\n );\n // Check if the response is okay\n if (!response) {\n console.log(\"Can't close conversation!\");\n return null;\n }\n // Check if the statusCode matches\n resetChat();\n } catch (error) { console.log('Error closing conversation:', error); }\n };\n\n const sendMessage = async (btnMessage:string|null = null) => {\n if(message.length > 0 || btnMessage || Object.keys(uploadedFiles).length > 0) {\n typeof document !== \"undefined\" && document.getElementById('inputMessage')?.focus();\n let formData = new FormData();\n formData.append('conversationSid', localStorage.getItem('conversationId'));\n formData.append('message', message || btnMessage);\n formData.append('from', localStorage.getItem('chatUsername'));\n formData.append('sender', 'CUSTOMER');\n setMessage('');\n setChatSending(true);\n try{\n Object.keys(uploadedFiles).length > 0 && uploadedFiles.map(async (item: File) => {\n formData.append('files', item);\n }); \n } catch (e){\n\n }\n // Send a Message to the Conversation\n try {\n API.post(`ChatModule/v1.0/gateway/conversation/${localStorage.getItem('conversationId')}/message/send`, formData, {\n headers: {'Content-Type': 'multipart/form-data'}\n })\n .then(data => { \n if(data){\n setUploadedFiles([]);\n setLogged(true);\n setChatSending(false);\n setChatLoading(false);\n } \n else { \n setChatActive(!isTimeInRange());\n // if(data?.data?.statusCode === 500){\n resetChat();\n console.log(\"Conversation is closed\");\n }\n })\n .catch(error => {\n setChatActive(!isTimeInRange());\n console.log('Send a Message:', error);\n });\n } catch (error) {\n console.log(\"Error loading SVG:\", error);\n }\n }\n };\n\n const submitMessage = (e) => {\n e.preventDefault();\n sendMessage();\n };\n\n const submitForm = async () => { \n try {\n setChatLoading(true);\n // Indicating an outage\n const outageStatus = await API.get(`SupportModule/v1.0/Case/outage/verify?contactEmailAddress=${chatForm.email}`)\n .then(data => {\n setChatLoading(false);\n if(data?.data?.statusCode === 200 && data?.data?.data){ \n setOutage(true);\n setOutageMessage(data?.data?.message);\n return true;\n } else {\n startConversation();\n return false;\n }\n })\n .catch(error => {\n console.log('Outage Message:', error);\n });\n } catch (error) { console.log('Error fetching outage: ', error); }\n };\n\n const startConversation = async () => {\n // setMessages(messagesRef.current.slice(1, 0));\n setChatLoading(true);\n localStorage.setItem('chatUsername', chatForm.full_name);\n setChatUsername(chatForm.full_name);\n localStorage.setItem('chatEmail', chatForm.email);\n localStorage.setItem('chatCategory', chatForm.category); \n localStorage.setItem('chatAddress', chatForm.address); \n localStorage.setItem('chatLastBill', chatForm.last_bill);\n // Create Token\n const tmpToken = await getToken(chatForm.email);\n if(tmpToken){\n localStorage.setItem('twilio_token', tmpToken);\n setToken(tmpToken);\n // Create Conversation \n const tmpConversation = await createConversation(\n chatForm.full_name,\n chatForm.email,\n chatForm.address,\n chatForm.last_bill,\n chatUserType,\n chatForm.category \n );\n if(tmpConversation){\n setLogged(true);\n setChatUserId(tmpConversation?.participantId);\n localStorage.setItem('conversationId', tmpConversation?.conversationId);\n localStorage.setItem('caseId', tmpConversation?.caseId);\n localStorage.setItem('participantId', tmpConversation?.participantId);\n setChatCaseId(tmpConversation?.caseId);\n setChatConversationId(tmpConversation?.conversationId);\n gContext.goSetRegistrationData({\n ...gContext.goGetRegistrationData(),\n twilioChat: {\n ...gContext.goGetRegistrationData()?.twilioChat,\n chatUsername: chatForm.full_name,\n chatSessionId: chatSessionId,\n chatUserId: tmpConversation?.participantId,\n conversationId: tmpConversation?.conversationId,\n caseId: tmpConversation?.caseId,\n participantId: tmpConversation?.participantId,\n }\n });\n new Promise<void>((resolve) => {\n setMessages((prev) => {\n resolve();\n return [];\n });\n sendMessage(outageFormMessage.current); \n }).then(() => { \n updateMessages({type: 'EVENT', title: 'Waiting for the agent to join the chat.'}, null);\n });\n } else {\n setChatActive(!isTimeInRange());\n }\n } else {\n setChatLoading(false);\n }\n };\n \n const newAccountHolder = () => {\n setChatUserType('NEW_CUSTOMER');\n localStorage.setItem('chatUserType', 'NEW_CUSTOMER');\n let tmpMessages:Message[] = [\n {\n senderType: \"CUSTOMER\",\n createdAt: moment(new Date()).format(),\n from: \"YouFibre\",\n fromId: \"YouFibre\",\n message: null,\n form: {\n type: \"form\",\n value: [\n {\n title: \"Name\",\n action: \"full_name\",\n placeholder: null,\n type: 'text',\n required: true\n },\n {\n title: \"Email\",\n action: \"email\",\n placeholder: null,\n type: 'email',\n required: true\n },\n {\n title: \"Enter your Postcode\",\n action: \"address\",\n placeholder: \"Example: SW1 4EN\",\n type: 'zip',\n required: true\n },\n {\n title: \"What do you need help with today?\",\n action: \"category\",\n placeholder: null,\n type: 'select',\n required: true,\n options: {\n SALES: \"Sales\",\n TECH_SUPPORT: \"Tech Support\",\n COMPLAINT: \"Complaint\",\n },\n },\n {\n title: \"Submit\",\n action: \"submit_form\",\n type: 'button'\n }\n ]\n },\n messageId: \"3\"\n },\n {\n senderType: \"AGENT\",\n createdAt: moment(new Date()).format(),\n from: \"YouFibre\",\n fromId: \"YouFibre\",\n message: \"We're so happy to hear from you! So that we can provide the best possible support, please provide us with the following information.\",\n form: null,\n messageId: \"2\"\n },\n {\n senderType: \"CUSTOMER\",\n createdAt: moment(new Date()).format(),\n from: \"Client\",\n fromId: \"Client\",\n message: 'I am new here',\n form: null,\n messageId: \"1\"\n }, ...messages.slice(1)];\n setNewMessages([...(newMessages || []), tmpMessages[0]]);\n setTimeout(() => { setNewMessages(null); setMessages(tmpMessages);}, 400);\n // setMessages(tmpMessages);\n localStorage.setItem('chatMessages', JSON.stringify(tmpMessages)); \n };\n\n const notAccountHolder = () => {\n setChatUserType('NOT_ACCOUNT_HOLDER');\n localStorage.setItem('chatUserType', 'NOT_ACCOUNT_HOLDER');\n let tmpMessages:Message[] = [\n {\n senderType: \"CUSTOMER\",\n createdAt: moment(new Date()).format(),\n from: \"YouFibre\",\n fromId: \"YouFibre\",\n message: null,\n form: {\n type: \"form\",\n value: [\n {\n title: \"Name\",\n action: \"full_name\",\n placeholder: null,\n type: 'text',\n required: true\n },\n {\n title: \"Email\",\n action: \"email\",\n placeholder: null,\n type: 'email',\n required: true\n },\n {\n title: \"Enter your Postcode\",\n action: \"address\",\n placeholder: \"Example: SW1 4EN\",\n type: 'zip',\n required: true\n },\n {\n title: \"What do you need help with today?\",\n action: \"category\",\n placeholder: null,\n type: 'select',\n required: true,\n options: {\n SALES: \"Sales\",\n TECH_SUPPORT: \"Tech Support\",\n COMPLAINT: \"Complaint\",\n },\n },\n {\n title: \"Submit\",\n action: \"submit_form\",\n type: 'button'\n }\n ]\n },\n messageId: \"3\"\n },\n {\n senderType: \"AGENT\",\n createdAt: moment(new Date()).format(),\n from: \"YouFibre\",\n fromId: \"YouFibre\",\n message: \"We're so happy to hear from you! So that we can provide the best possible support, please provide us with the following information.\",\n form: null,\n messageId: \"2\"\n },\n {\n senderType: \"CUSTOMER\",\n createdAt: moment(new Date()).format(),\n from: \"Client\",\n fromId: \"Client\",\n message: 'I am not the account holder',\n form: null,\n messageId: \"1\"\n }, ...messages.slice(1)];\n setNewMessages([...(newMessages || []), tmpMessages[0]]);\n setTimeout(() => { setNewMessages(null); setMessages(tmpMessages);}, 400);\n // setMessages(tmpMessages);\n localStorage.setItem('chatMessages', JSON.stringify(tmpMessages)); \n };\n\n const yesAccountHolder = () => {\n setChatUserType('ACCOUNT_HOLDER');\n localStorage.setItem('chatUserType', 'ACCOUNT_HOLDER');\n let tmpMessages:Message[] = [\n {\n senderType: \"CUSTOMER\",\n createdAt: moment(new Date()).format(),\n from: \"YouFibre\",\n fromId: \"YouFibre\",\n message: null,\n form: {\n type: \"form\",\n value: [\n {\n title: \"Name\",\n action: \"full_name\",\n placeholder: null,\n type: 'text',\n required: true\n },\n {\n title: \"Email\",\n action: \"email\",\n placeholder: null,\n type: 'email',\n required: true\n },\n {\n title: \"Enter your Postcode\",\n action: \"address\",\n placeholder: \"Example: SW1 4EN\",\n type: 'zip',\n required: true\n },\n {\n title: \"What was the total value of your last bill?\",\n action: \"last_bill\",\n placeholder: 'Total amount of your last bill',\n type: 'number',\n required: true\n },\n {\n title: \"What do you need help with today?\",\n action: \"category\",\n placeholder: null,\n type: 'select',\n required: true,\n options: {\n SALES: \"Sales\",\n TECH_SUPPORT: \"Tech Support\",\n INSTALLS_AND_SERVICE_VISITS: \"Installs & Service Visits\",\n MANAGE_MY_ACCOUNT: \"Manage My Account\",\n BILLING: \"Billing\",\n CANCELLATION: \"Cancellation\",\n COMPLAINT: \"Complaint\",\n },\n },\n {\n title: \"Submit\",\n action: \"submit_form\",\n type: 'button'\n }\n ]\n },\n messageId: \"3\"\n },\n {\n senderType: \"AGENT\",\n createdAt: moment(new Date()).format(),\n from: \"YouFibre\",\n fromId: \"YouFibre\",\n message: \"We're so happy to hear from you! So that we can provide the best possible support, please provide us with the following information.\",\n form: null,\n messageId: \"2\"\n },\n {\n senderType: \"CUSTOMER\",\n createdAt: moment(new Date()).format(),\n from: \"Client\",\n fromId: \"Client\",\n message: 'I am the account holder',\n form: null,\n messageId: \"1\"\n }, ...messages.slice(1)];\n setNewMessages([...(newMessages || []), tmpMessages[0]]);\n setTimeout(() => { setNewMessages(null); setMessages(tmpMessages);}, 400);\n // setMessages(tmpMessages);\n localStorage.setItem('chatMessages', JSON.stringify(tmpMessages)); \n };\n\n const chatToggle = () => {\n if(chatClosing){\n resetChat();\n setChatClosing(false);\n }\n setOutage(!outage);\n setOpenChat(!openChat);\n };\n \n const buttonAction = (action) => {\n if(chatActive || chatCaseId || isStagingOrDevelopment()){\n switch(action){\n case 'new_customer': newAccountHolder(); break;\n case 'not_customer': notAccountHolder(); break;\n case 'old_customer': yesAccountHolder(); break;\n case 'submit_form': \n if(chatForm.full_name && \n chatForm.address && chatForm.address !== '/' && chatForm.email && \n (((localStorage.getItem(\"chatUserType\") === \"ACCOUNT_HOLDER\") && \n typeof chatForm.last_bill !== \"undefined\") || (localStorage.getItem(\"chatUserType\") !== \"ACCOUNT_HOLDER\")) && chatForm.category && chatUserType){\n outageFormMessage.current = `<b>${userTypeLabels[chatUserType]}</b><br /><b>Full name</b>: ${chatForm.full_name}<br /><b>Email</b>: ${chatForm.email}<br /><b>Address</b>: ${chatForm.address}<br />${(typeof chatForm.last_bill !== 'undefined')?'<b>What was the total value of your last bill</b>: '+chatForm.last_bill+'<br />':''}<b>What do you need help with today</b>: ${categories[chatForm.category]}`;\n submitForm();\n }\n break;\n default: break;\n }\n } else {\n resetChat();\n }\n\n };\n\n const {getRootProps, getInputProps, open} = useDropzone({\n noClick: true,\n noKeyboard: true,\n onDrop: (acceptedFiles:any) => {\n if(chatCaseId){\n acceptedFiles = acceptedFiles.filter(item => item.size < (fileSize*1048576) ? item : toastrMsg(`Maximum file size is ${fileSize}MB`, \"error\"));\n acceptedFiles = acceptedFiles.filter(item => fileExtensions.some(ext => item.name.endsWith(ext)) ? item : toastrMsg(`Unsupported File extension`, \"error\"));\n acceptedFiles = acceptedFiles.filter(item => Object.keys(uploadedFiles.filter(ext => ext.name === item.name)).length === 0); \n Object.keys(uploadedFiles).length + Object.keys(acceptedFiles).length < fileCount+1 ? \n setUploadedFiles([...uploadedFiles, ...acceptedFiles]) : \n toastrMsg(`Maximum ${fileCount} files`, \"warning\");\n setUploadArea(false);\n }\n },\n });\n\n const deleteFile = (name:string) => {\n const tmpFiles = uploadedFiles.filter((itm:any) => itm.name !== name);\n setUploadedFiles(tmpFiles);\n };\n\n return (\n <>\n { (typeof process.env.GATSBY_TWILIO_CHAT_VERSION === 'undefined' || process.env.GATSBY_TWILIO_CHAT_VERSION === '1') && \n <Widget>\n <ChatWrapper\n className={`${openChat ? 'show' : ''} ${fullscreen?'fullscreen':''}`}\n {...getRootProps()}\n onDragOver={() => chatCaseId && setUploadArea(true)}\n onMouseLeave={() => setUploadArea(false)}\n >\n <ChatHeader>\n <Container className='flex-center-justified'>\n <Row className='p-0 m-0 flex-align-center'>\n <div className='flex-center-justified gap-5'>\n <img src={icoYouFibre.toString()} alt=''/>\n <span className='dark-color'> YouFibre</span>\n </div>\n </Row> \n <Row className='p-0 m-0 flex flex-align-center'>\n {!chatConversationId && Object.keys(messages).length > 2 && <button onClick={() => resetChat()} className='small'>Back</button>}\n {chatConversationId && <button onClick={() => setConfirmClosing(true)} className='small'>End conversation</button>}\n {!fullscreen && <img src={icoCloseChat.toString()} className='close' onClick={() => setOpenChat(!openChat)} alt='' />}\n </Row> \n </Container>\n </ChatHeader>\n <NoticationBar type=\"chat\" />\n <ChatContent>\n <Container className={`direction-column-reverse content-end chat-content-container`}>\n <div ref={chatBoxRef} />\n <Chat\n messages={messages}\n chatUsername={chatUsername}\n chatUserId={chatUserId}\n chatConversationId={chatConversationId}\n resetFormValues={resetFormValues}\n setChatForm={setChatForm}\n buttonAction={buttonAction}\n newMessages={newMessages}\n chatActive={chatActive}\n API={API}\n />\n </Container>\n </ChatContent> \n { agentTyping && openChat && <Agent><small>Agent is typing...</small></Agent> }\n { logged && !chatClosing && !messages[0]?.form && <ChatInput className={`${fullscreen?'form-fullscreen':''}`}><OverflowContainer>\n <input id=\"inputMessage\" className={!validateInput(message) ? 'invalid' : ''} autoComplete='off' maxLength={500} onChange={(e) => setMessage(e.target.value)} value={message} type=\"text\" placeholder=\"Write a reply...\" />\n <input {...getInputProps()} />\n <img className='action' alt='Add attachment' src={icoUpload.toString()} onClick={() => open()} />\n <button type='submit' onClick={(e) => submitMessage(e)} disabled={chatSending || !validateInput(message)}>{ chatSending ? <img src={loadingIcon.toString()} width={16} height={16} /> : 'Send'}</button>\n </OverflowContainer></ChatInput> }\n {Object.keys(uploadedFiles).length > 0 && <div className='files'>\n {uploadedFiles.map((file:any) => (\n <div className='file' key={file.name}>\n <div className='fileName'>{file.name}</div>\n <img className='action' src={icoClose.toString()} onClick={() => deleteFile(file.name)} alt='' />\n </div>\n ))}\n </div>}\n { uploadArea && chatCaseId && openChat && <div className='cover dark-color upload'>\n <h4 className='mb-10'>Drag and drop your files here</h4>\n <p className='mb-10'>Maximum {fileCount} files. Limit {fileSize}MB per file.</p>\n <p>Supported files: {fileExtensions && fileExtensions.map((item:string, index) => !['mp4','mp3'].some(ext => ext === item) && (index === 0 ? item : `, ${item}`))}</p>\n </div> }\n { chatLoading && openChat && <div className='cover'><img className=\"make-it-white\" src={loadingIcon.toString()} width={14} height={14} alt='' /></div> }\n { chatClosing && openChat && <div className='cover dark-color closed'>\n <h4 className='mb-10'>Conversation is closed</h4>\n <span className='mb-10'>This chat has now closed. If you need any help, feel free to start a new chat.<br />We're always happy to assist you!</span> \n <button onClick={() => { setChatClosing(false); resetChat();}}>Create new</button>\n </div> }\n { outage && outageMessage && <div className='cover dark-color closed'>\n <h4 className='mb-10'>Outage in your area</h4>\n <span className='mb-10'>{outageMessage}</span> \n <button onClick={() => { resetChat(); }} className='blue-bg' >Got It - Close Chat</button>\n <button onClick={() => { setOutage(false); setOutageMessage(null); startConversation();}}>Still Need Help - Start Chat</button>\n </div> }\n { confirmClosing && openChat && <div className='cover dark-color closed'>\n <h4 className='mb-10'>Close conversation</h4>\n <span className='mb-10'>Are you sure you want to end this conversation?</span> \n <button onClick={() => { setConfirmClosing(false);}}>Cancel</button>\n <button onClick={() => { setConfirmClosing(false); closeConversation(\"CUSTOMER\"); resetChat();}} className='blue-bg'>Confirm</button>\n </div> }\n { !chatActive && openChat && !chatCaseId && appMessages && !isStagingOrDevelopment() && <div className='cover dark-color closed'>\n <h4 className='mb-10'>Out of service</h4>\n <span className='mb-10' dangerouslySetInnerHTML={{ __html: linkifyHtml(appMessages.chat_off_mode_text, { target: \"_blank\" }).replaceAll(/\\r\\n|\\n/g, \"<br />\") }} />\n {!fullscreen && <button onClick={() => setOpenChat(false)}>Close chat</button>}\n </div> }\n </ChatWrapper>\n <Icon onClick={() => chatToggle()} className={`YFChat ${openChat ? 'open' : ''} ${fullscreen?'fullscreen':''}`}>\n <img src={icoChat.toString()} className='icon-default' alt='' />\n <img src={icoCloseChat.toString()} className='icon-hover' alt='' />\n {chatUnreaded && <small className='unread'>1</small>}\n </Icon>\n </Widget>}\n </>\n );\n};\n\nexport default TwilioChat;\n"],"names":["icoYouFibre","URL","url","icoChat","icoCloseChat","loadingIcon","icoUpload","icoClose","notificationSound","Container","styled","div","templateObject_1","__makeTemplateObject","OverflowContainer","templateObject_2","Widget","templateObject_3","Icon","templateObject_4","ChatWrapper","templateObject_5","ChatHeader","templateObject_6","ChatContent","templateObject_7","ChatInput","form","templateObject_8","Agent","templateObject_9","TwilioChat","_a","host","clientId","clientSecret","customToken","websocketUrl","postcodeSchemaId","source","_e","fullscreen","gContext","useContext","GlobalContext","outageFormMessage","useRef","_f","useState","outage","setOutage","_g","outageMessage","setOutageMessage","_h","logged","setLogged","_j","setToken","_k","chatConversationId","setChatConversationId","_l","chatCaseId","setChatCaseId","_m","chatLoading","setChatLoading","_o","chatSending","setChatSending","_p","chatClosing","setChatClosing","_q","openChat","setOpenChat","_r","chatForm","setChatForm","_s","message","setMessage","_t","chatUserId","setChatUserId","_u","chatUserType","setChatUserType","_v","chatUsername","setChatUsername","_w","uploadedFiles","setUploadedFiles","_x","uploadArea","setUploadArea","_y","resetFormValues","setResetFormValues","_z","chatSessionId","setChatSessionId","_0","confirmClosing","setConfirmClosing","_1","twilioChatUrlParams","setTwilioChatUrlParams","_2","chatUnreaded","setChatUnreaded","_3","chatActive","setChatActive","_4","appMessages","setAppMessages","_5","animateTabTitle","setAnimateTabTitle","_6","titleIndex","setTitleIndex","titleRef","intervalRef","openChatRef","visibilityChange","fileExtensions","londonSec","useTime","interval","seconds","_7","agentTyping","setAgentTyping","agentIdRef","defaultMessages","createdAt","moment","Date","format","fromId","senderType","type","value","title","action","messageId","from","categories","SALES","TECH_SUPPORT","INSTALLS_AND_SERVICE_VISITS","MANAGE_MY_ACCOUNT","BILLING","CANCELLATION","COMPLAINT","userTypeLabels","NEW_CUSTOMER","ACCOUNT_HOLDER","NOT_ACCOUNT_HOLDER","_8","messages","setMessages","_9","newMessages","setNewMessages","messagesRef","chatBoxRef","sc","scrollToBottom","current","scrollIntoView","behavior","e","useEffect","document","window","localStorage","getItem","setItem","getElementsByTagName","textContent","setInterval","nextIndex","length","slice","clearInterval","setConfig","axios","get","then","response","data","catch","error","getUrlParams","lastUrl","location","href","observer","MutationObserver","observe","body","childList","subtree","disconnect","isTimeInRange","resetChat","nowInLondon","toLocaleString","timeZone","hour","minute","second","hour12","timeToSeconds","timeStr","split","map","Number","chat_off_mode_toggle","_b","chat_off_mode_start","_c","chat_off_mode_end","start","_d","end","URLSearchParams","search","__awaiter","Promise","resolve","goSetRegistrationData","__assign","goGetRegistrationData","twilioChat","conversationId","caseId","participantId","sent","init","Object","keys","API","concat","properties","Status","console","log","error_1","removeItem","full_name","email","category","address","last_bill","JSON","parse","stringify","getAllMessages","addEventListener","visibilityState","getElementById","focus","setTimeout","convID","all","Message","dbRecords","item","From","getFiles","Files","files","Body","id","createdBy","SenderType","tmpMessages","sort","a","b","getTime","error_2","style","overflow","documentElement","typingTimeout","sessionId","tmpUUID","uuidv4","io","path","query","reconnection","reconnectionAttempts","Infinity","reconnectionDelay","reconnectionDelayMax","timeout","on","err","reason","emit","listeners","OwnerId","receiveMessage","sender","clearTimeout","tmpFiles_1","__spreadArray","Mimetype","Url","error_3","some","obj","Conversation","tmpFiles","updateMessages","error_4","tmpMessage","sound","Audio","toString","setAttribute","play","innerWidth","removeAllListeners","sendMessage","btnMessage","formData_1","FormData","append","post","headers","startConversation","tmpEmail","error_5","tmpToken","tmpChatUsername","tmpChatEmail","tmpChatAddress","tmpChatLastBill","tmpChatUserType","tmpChatCategory","channel","identifier","DpaCustomerName","DpaCustomerEmail","DpaCustomerAddress","DpaCustomerLastBill","DpaCustomerType","DpaCustomerCategory","toastrMsg","error_6","replaceAll","tmpConversation","prev","_10","useDropzone","noClick","noKeyboard","onDrop","acceptedFiles","filter","size","ext","name","endsWith","fileCount","getRootProps","getInputProps","open","React","createElement","Fragment","process","env","GATSBY_TWILIO_CHAT_VERSION","className","onDragOver","onMouseLeave","Row","src","alt","onClick","NoticationBar","ref","Chat","buttonAction","isStagingOrDevelopment","placeholder","required","options","newAccountHolder","notAccountHolder","yesAccountHolder","statusCode","error_8","autoComplete","maxLength","onChange","target","preventDefault","submitMessage","disabled","width","height","file","key","itm","index","closedBy","error_7","closeConversation","dangerouslySetInnerHTML","__html","linkifyHtml","chat_off_mode_text"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{__awaiter as t,__generator as r,__assign as o}from"../../node_modules/tslib/tslib.es6.js";import{C as e}from"../../_virtual/ConfigApi.js";import{Buffer as n}from"buffer";import i from"process";var u;"undefined"!=typeof window&&(window.Buffer=window.Buffer||n,window.process=window.process||i);var c=function(t){return t.replace(/^https?:\/\//,"")},f=function(t){try{var r=new URL(t);return"".concat(r.pathname).concat(r.search).replace(/^\//,"")}catch(r){return t.replace(/^\//,"")}};function d(t,r,o,n){if(void 0===n&&(n=void 0),!t)throw new Error("Host is required");return u=new e.ConfigApi({host:c(t),clientId:r,clientSecret:o},n)}function s(e,n,i){return t(this,arguments,void 0,function(t,e,n,i){return void 0===i&&(i={}),r(this,function(r){if(!u)throw new Error("API not configured. Call setConfig first.");return[2,u.customApi(o(o({path:f(e),method:t.toUpperCase()},void 0!==n&&{body:n}),i))]})})}var p={get:function(t,r){return void 0===r&&(r={}),s("get",t,void 0,r)},post:function(t,r,o){return void 0===o&&(o={}),s("post",t,r,o)},put:function(t,r,o){return void 0===o&&(o={}),s("put",t,r,o)},patch:function(t,r,o){return void 0===o&&(o={}),s("patch",t,r,o)},delete:function(t,r){return void 0===r&&(r={}),s("delete",t,void 0,r)}};export{p as default,d as setConfig};
|
|
2
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sources":["../../../src/api/api.ts"],"sourcesContent":["import { ConfigApi } from '@d19n/youfibre-odin-sdk/dist/api-sdk-v2/ConfigApi.js';\n\n// Polyfills for Buffer/process in browser builds\nimport { Buffer } from 'buffer';\nimport process from 'process';\n\nif (typeof window !== 'undefined') {\n (window as any).Buffer = (window as any).Buffer || Buffer;\n (window as any).process = (window as any).process || process;\n}\n\nlet APIInstance: ConfigApi | undefined;\n\nconst stripProtocol = (host: string) => host.replace(/^https?:\\/\\//, '');\n\nconst formatPath = (urlOrPath: string) => {\n try {\n const u = new URL(urlOrPath);\n return `${u.pathname}${u.search}`.replace(/^\\//, '');\n } catch {\n return urlOrPath.replace(/^\\//, '');\n }\n};\n\n/**\n * Configure the API instance.\n * @param host Full host URL including protocol (e.g., https://youfibre.api.sandbox.odinfusion.com)\n * @param clientId OAuth client ID\n * @param clientSecret OAuth client secret\n * @param customToken Optional custom token\n */\n\nexport function setConfig(\n host: string,\n clientId: string,\n clientSecret: string,\n customToken: string|undefined = undefined\n) {\n if (!host) throw new Error('Host is required');\n APIInstance = new ConfigApi({ host: stripProtocol(host), clientId, clientSecret }, customToken);\n return APIInstance;\n}\n\nasync function callApi(\n method: string,\n urlOrPath: string,\n body?: any,\n options: Record<string, any> = {}\n) {\n if (!APIInstance) throw new Error('API not configured. Call setConfig first.');\n return (APIInstance as any).customApi({\n path: formatPath(urlOrPath),\n method: method.toUpperCase(),\n ...(body !== undefined && { body }),\n ...options,\n });\n}\n\nconst API = {\n get: (url: string, options = {}) => callApi('get', url, undefined, options),\n post: (url: string, body: any, options = {}) => callApi('post', url, body, options),\n put: (url: string, body: any, options = {}) => callApi('put', url, body, options),\n patch: (url: string, body: any, options = {}) => callApi('patch', url, body, options),\n delete: (url: string, options = {}) => callApi('delete', url, undefined, options),\n};\n\nexport default API;\n\n"],"names":["APIInstance","window","Buffer","process","stripProtocol","host","replace","formatPath","urlOrPath","u","URL","pathname","concat","search","_a","setConfig","clientId","clientSecret","customToken","undefined","Error","ConfigApi","callApi","method_1","urlOrPath_1","body_1","__awaiter","this","arguments","method","body","options","customApi","__assign","path","toUpperCase","API","get","url","post","put","patch","delete"],"mappings":"wMAWA,IAAIA,EALkB,oBAAXC,SACRA,OAAeC,OAAUD,OAAeC,QAAUA,EAClDD,OAAeE,QAAWF,OAAeE,SAAWA,GAKvD,IAAMC,EAAgB,SAACC,GAAiB,OAAAA,EAAKC,QAAQ,eAAgB,GAA7B,EAElCC,EAAa,SAACC,GAClB,IACE,IAAMC,EAAI,IAAIC,IAAIF,GAClB,MAAO,UAAGC,EAAEE,UAAQC,OAAGH,EAAEI,QAASP,QAAQ,MAAO,GACnD,CAAE,MAAAQ,GACA,OAAON,EAAUF,QAAQ,MAAO,GAClC,CACF,EAUM,SAAUS,EACdV,EACAW,EACAC,EACAC,GAEA,QAFA,IAAAA,IAAAA,OAAAC,IAEKd,EAAM,MAAM,IAAIe,MAAM,oBAE3B,OADApB,EAAc,IAAIqB,EAAAA,UAAU,CAAEhB,KAAMD,EAAcC,GAAOW,WAAUC,gBAAgBC,EAErF,CAEA,SAAeI,EAAOC,EAAAC,EAAAC,GACpB,OAAAC,EAAAC,KAAAC,eAAA,EAAA,SAAAC,EACArB,EACAsB,EACAC,eAAA,IAAAA,IAAAA,EAAA,CAAA,sBAEA,IAAK/B,EAAa,MAAM,IAAIoB,MAAM,6CAClC,MAAA,CAAA,EAAQpB,EAAoBgC,UAASC,EAAAA,EAAA,CACnCC,KAAM3B,EAAWC,GACjBqB,OAAQA,EAAOM,oBACFhB,IAATW,GAAsB,CAAEA,KAAIA,IAC7BC,QAEN,CAED,IAAMK,EAAM,CACVC,IAAK,SAACC,EAAaP,GAAiB,YAAjB,IAAAA,IAAAA,EAAA,CAAA,GAAiBT,EAAQ,MAAOgB,OAAKnB,EAAWY,EAA/B,EACpCQ,KAAM,SAACD,EAAaR,EAAWC,GAAiB,YAAjB,IAAAA,IAAAA,EAAA,CAAA,GAAiBT,EAAQ,OAAQgB,EAAKR,EAAMC,EAA3B,EAChDS,IAAK,SAACF,EAAaR,EAAWC,GAAiB,YAAjB,IAAAA,IAAAA,EAAA,CAAA,GAAiBT,EAAQ,MAAOgB,EAAKR,EAAMC,EAA1B,EAC/CU,MAAO,SAACH,EAAaR,EAAWC,GAAiB,YAAjB,IAAAA,IAAAA,EAAA,CAAA,GAAiBT,EAAQ,QAASgB,EAAKR,EAAMC,EAA5B,EACjDW,OAAQ,SAACJ,EAAaP,GAAiB,YAAjB,IAAAA,IAAAA,EAAA,CAAA,GAAiBT,EAAQ,SAAUgB,OAAKnB,EAAWY,EAAlC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import n from"../../../node_modules/style-inject/dist/style-inject.es.js";var t='* {\n margin: 0px;\n padding: 0px;\n outline: 0px;\n}\n\n:root {\n font-size: 16px;\n}\n\nbody {\n width: 100%;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.1rem;\n font-family: "DM Sans";\n}\n\n.fs-0 {\n font-size: 0rem !important;\n}\n\n.fw-0 {\n font-weight: 0 !important;\n}\n\n.w-0 {\n width: 0% !important;\n}\n\n.mt-0 {\n margin-top: 0px !important;\n}\n\n.pt-0 {\n padding-top: 0px !important;\n}\n\n.pb-0 {\n padding-bottom: 0px !important;\n}\n\n.pl-0 {\n padding-left: 0px !important;\n}\n\n.pr-0 {\n padding-right: 0px !important;\n}\n\n.mb-0 {\n margin-bottom: 0px !important;\n}\n\n.mv-0 {\n margin: 0px 0 !important;\n}\n\n.mh-0 {\n margin: 0 0px !important;\n}\n\n.pv-0 {\n padding: 0px 0 !important;\n}\n\n.ph-0 {\n padding: 0 0px !important;\n}\n\n.maxw-0 {\n max-width: 0% !important;\n}\n\n.minw-0 {\n min-width: 0% !important;\n}\n\n.gap-0 {\n gap: 0rem !important;\n}\n\n.fs-1 {\n font-size: 1rem !important;\n}\n\n.fw-1 {\n font-weight: 100 !important;\n}\n\n.w-1 {\n width: 1% !important;\n}\n\n.mt-1 {\n margin-top: 1px !important;\n}\n\n.pt-1 {\n padding-top: 1px !important;\n}\n\n.pb-1 {\n padding-bottom: 1px !important;\n}\n\n.pl-1 {\n padding-left: 1px !important;\n}\n\n.pr-1 {\n padding-right: 1px !important;\n}\n\n.mb-1 {\n margin-bottom: 1px !important;\n}\n\n.mv-1 {\n margin: 1px 0 !important;\n}\n\n.mh-1 {\n margin: 0 1px !important;\n}\n\n.pv-1 {\n padding: 1px 0 !important;\n}\n\n.ph-1 {\n padding: 0 1px !important;\n}\n\n.maxw-1 {\n max-width: 1% !important;\n}\n\n.minw-1 {\n min-width: 1% !important;\n}\n\n.gap-1 {\n gap: 0.1rem !important;\n}\n\n.fs-2 {\n font-size: 2rem !important;\n}\n\n.fw-2 {\n font-weight: 200 !important;\n}\n\n.w-2 {\n width: 2% !important;\n}\n\n.mt-2 {\n margin-top: 2px !important;\n}\n\n.pt-2 {\n padding-top: 2px !important;\n}\n\n.pb-2 {\n padding-bottom: 2px !important;\n}\n\n.pl-2 {\n padding-left: 2px !important;\n}\n\n.pr-2 {\n padding-right: 2px !important;\n}\n\n.mb-2 {\n margin-bottom: 2px !important;\n}\n\n.mv-2 {\n margin: 2px 0 !important;\n}\n\n.mh-2 {\n margin: 0 2px !important;\n}\n\n.pv-2 {\n padding: 2px 0 !important;\n}\n\n.ph-2 {\n padding: 0 2px !important;\n}\n\n.maxw-2 {\n max-width: 2% !important;\n}\n\n.minw-2 {\n min-width: 2% !important;\n}\n\n.gap-2 {\n gap: 0.2rem !important;\n}\n\n.fs-3 {\n font-size: 3rem !important;\n}\n\n.fw-3 {\n font-weight: 300 !important;\n}\n\n.w-3 {\n width: 3% !important;\n}\n\n.mt-3 {\n margin-top: 3px !important;\n}\n\n.pt-3 {\n padding-top: 3px !important;\n}\n\n.pb-3 {\n padding-bottom: 3px !important;\n}\n\n.pl-3 {\n padding-left: 3px !important;\n}\n\n.pr-3 {\n padding-right: 3px !important;\n}\n\n.mb-3 {\n margin-bottom: 3px !important;\n}\n\n.mv-3 {\n margin: 3px 0 !important;\n}\n\n.mh-3 {\n margin: 0 3px !important;\n}\n\n.pv-3 {\n padding: 3px 0 !important;\n}\n\n.ph-3 {\n padding: 0 3px !important;\n}\n\n.maxw-3 {\n max-width: 3% !important;\n}\n\n.minw-3 {\n min-width: 3% !important;\n}\n\n.gap-3 {\n gap: 0.3rem !important;\n}\n\n.fs-4 {\n font-size: 4rem !important;\n}\n\n.fw-4 {\n font-weight: 400 !important;\n}\n\n.w-4 {\n width: 4% !important;\n}\n\n.mt-4 {\n margin-top: 4px !important;\n}\n\n.pt-4 {\n padding-top: 4px !important;\n}\n\n.pb-4 {\n padding-bottom: 4px !important;\n}\n\n.pl-4 {\n padding-left: 4px !important;\n}\n\n.pr-4 {\n padding-right: 4px !important;\n}\n\n.mb-4 {\n margin-bottom: 4px !important;\n}\n\n.mv-4 {\n margin: 4px 0 !important;\n}\n\n.mh-4 {\n margin: 0 4px !important;\n}\n\n.pv-4 {\n padding: 4px 0 !important;\n}\n\n.ph-4 {\n padding: 0 4px !important;\n}\n\n.maxw-4 {\n max-width: 4% !important;\n}\n\n.minw-4 {\n min-width: 4% !important;\n}\n\n.gap-4 {\n gap: 0.4rem !important;\n}\n\n.fs-5 {\n font-size: 5rem !important;\n}\n\n.fw-5 {\n font-weight: 500 !important;\n}\n\n.w-5 {\n width: 5% !important;\n}\n\n.mt-5 {\n margin-top: 5px !important;\n}\n\n.pt-5 {\n padding-top: 5px !important;\n}\n\n.pb-5 {\n padding-bottom: 5px !important;\n}\n\n.pl-5 {\n padding-left: 5px !important;\n}\n\n.pr-5 {\n padding-right: 5px !important;\n}\n\n.mb-5 {\n margin-bottom: 5px !important;\n}\n\n.mv-5 {\n margin: 5px 0 !important;\n}\n\n.mh-5 {\n margin: 0 5px !important;\n}\n\n.pv-5 {\n padding: 5px 0 !important;\n}\n\n.ph-5 {\n padding: 0 5px !important;\n}\n\n.maxw-5 {\n max-width: 5% !important;\n}\n\n.minw-5 {\n min-width: 5% !important;\n}\n\n.gap-5 {\n gap: 0.5rem !important;\n}\n\n.fs-6 {\n font-size: 6rem !important;\n}\n\n.fw-6 {\n font-weight: 600 !important;\n}\n\n.w-6 {\n width: 6% !important;\n}\n\n.mt-6 {\n margin-top: 6px !important;\n}\n\n.pt-6 {\n padding-top: 6px !important;\n}\n\n.pb-6 {\n padding-bottom: 6px !important;\n}\n\n.pl-6 {\n padding-left: 6px !important;\n}\n\n.pr-6 {\n padding-right: 6px !important;\n}\n\n.mb-6 {\n margin-bottom: 6px !important;\n}\n\n.mv-6 {\n margin: 6px 0 !important;\n}\n\n.mh-6 {\n margin: 0 6px !important;\n}\n\n.pv-6 {\n padding: 6px 0 !important;\n}\n\n.ph-6 {\n padding: 0 6px !important;\n}\n\n.maxw-6 {\n max-width: 6% !important;\n}\n\n.minw-6 {\n min-width: 6% !important;\n}\n\n.gap-6 {\n gap: 0.6rem !important;\n}\n\n.fs-7 {\n font-size: 7rem !important;\n}\n\n.fw-7 {\n font-weight: 700 !important;\n}\n\n.w-7 {\n width: 7% !important;\n}\n\n.mt-7 {\n margin-top: 7px !important;\n}\n\n.pt-7 {\n padding-top: 7px !important;\n}\n\n.pb-7 {\n padding-bottom: 7px !important;\n}\n\n.pl-7 {\n padding-left: 7px !important;\n}\n\n.pr-7 {\n padding-right: 7px !important;\n}\n\n.mb-7 {\n margin-bottom: 7px !important;\n}\n\n.mv-7 {\n margin: 7px 0 !important;\n}\n\n.mh-7 {\n margin: 0 7px !important;\n}\n\n.pv-7 {\n padding: 7px 0 !important;\n}\n\n.ph-7 {\n padding: 0 7px !important;\n}\n\n.maxw-7 {\n max-width: 7% !important;\n}\n\n.minw-7 {\n min-width: 7% !important;\n}\n\n.gap-7 {\n gap: 0.7rem !important;\n}\n\n.fs-8 {\n font-size: 8rem !important;\n}\n\n.fw-8 {\n font-weight: 800 !important;\n}\n\n.w-8 {\n width: 8% !important;\n}\n\n.mt-8 {\n margin-top: 8px !important;\n}\n\n.pt-8 {\n padding-top: 8px !important;\n}\n\n.pb-8 {\n padding-bottom: 8px !important;\n}\n\n.pl-8 {\n padding-left: 8px !important;\n}\n\n.pr-8 {\n padding-right: 8px !important;\n}\n\n.mb-8 {\n margin-bottom: 8px !important;\n}\n\n.mv-8 {\n margin: 8px 0 !important;\n}\n\n.mh-8 {\n margin: 0 8px !important;\n}\n\n.pv-8 {\n padding: 8px 0 !important;\n}\n\n.ph-8 {\n padding: 0 8px !important;\n}\n\n.maxw-8 {\n max-width: 8% !important;\n}\n\n.minw-8 {\n min-width: 8% !important;\n}\n\n.gap-8 {\n gap: 0.8rem !important;\n}\n\n.fs-9 {\n font-size: 9rem !important;\n}\n\n.fw-9 {\n font-weight: 900 !important;\n}\n\n.w-9 {\n width: 9% !important;\n}\n\n.mt-9 {\n margin-top: 9px !important;\n}\n\n.pt-9 {\n padding-top: 9px !important;\n}\n\n.pb-9 {\n padding-bottom: 9px !important;\n}\n\n.pl-9 {\n padding-left: 9px !important;\n}\n\n.pr-9 {\n padding-right: 9px !important;\n}\n\n.mb-9 {\n margin-bottom: 9px !important;\n}\n\n.mv-9 {\n margin: 9px 0 !important;\n}\n\n.mh-9 {\n margin: 0 9px !important;\n}\n\n.pv-9 {\n padding: 9px 0 !important;\n}\n\n.ph-9 {\n padding: 0 9px !important;\n}\n\n.maxw-9 {\n max-width: 9% !important;\n}\n\n.minw-9 {\n min-width: 9% !important;\n}\n\n.gap-9 {\n gap: 0.9rem !important;\n}\n\n.fs-10 {\n font-size: 10rem !important;\n}\n\n.fw-10 {\n font-weight: 1000 !important;\n}\n\n.w-10 {\n width: 10% !important;\n}\n\n.mt-10 {\n margin-top: 10px !important;\n}\n\n.pt-10 {\n padding-top: 10px !important;\n}\n\n.pb-10 {\n padding-bottom: 10px !important;\n}\n\n.pl-10 {\n padding-left: 10px !important;\n}\n\n.pr-10 {\n padding-right: 10px !important;\n}\n\n.mb-10 {\n margin-bottom: 10px !important;\n}\n\n.mv-10 {\n margin: 10px 0 !important;\n}\n\n.mh-10 {\n margin: 0 10px !important;\n}\n\n.pv-10 {\n padding: 10px 0 !important;\n}\n\n.ph-10 {\n padding: 0 10px !important;\n}\n\n.maxw-10 {\n max-width: 10% !important;\n}\n\n.minw-10 {\n min-width: 10% !important;\n}\n\n.gap-10 {\n gap: 1rem !important;\n}\n\n.fs-11 {\n font-size: 11rem !important;\n}\n\n.fw-11 {\n font-weight: 1100 !important;\n}\n\n.w-11 {\n width: 11% !important;\n}\n\n.mt-11 {\n margin-top: 11px !important;\n}\n\n.pt-11 {\n padding-top: 11px !important;\n}\n\n.pb-11 {\n padding-bottom: 11px !important;\n}\n\n.pl-11 {\n padding-left: 11px !important;\n}\n\n.pr-11 {\n padding-right: 11px !important;\n}\n\n.mb-11 {\n margin-bottom: 11px !important;\n}\n\n.mv-11 {\n margin: 11px 0 !important;\n}\n\n.mh-11 {\n margin: 0 11px !important;\n}\n\n.pv-11 {\n padding: 11px 0 !important;\n}\n\n.ph-11 {\n padding: 0 11px !important;\n}\n\n.maxw-11 {\n max-width: 11% !important;\n}\n\n.minw-11 {\n min-width: 11% !important;\n}\n\n.gap-11 {\n gap: 1.1rem !important;\n}\n\n.fs-12 {\n font-size: 12rem !important;\n}\n\n.fw-12 {\n font-weight: 1200 !important;\n}\n\n.w-12 {\n width: 12% !important;\n}\n\n.mt-12 {\n margin-top: 12px !important;\n}\n\n.pt-12 {\n padding-top: 12px !important;\n}\n\n.pb-12 {\n padding-bottom: 12px !important;\n}\n\n.pl-12 {\n padding-left: 12px !important;\n}\n\n.pr-12 {\n padding-right: 12px !important;\n}\n\n.mb-12 {\n margin-bottom: 12px !important;\n}\n\n.mv-12 {\n margin: 12px 0 !important;\n}\n\n.mh-12 {\n margin: 0 12px !important;\n}\n\n.pv-12 {\n padding: 12px 0 !important;\n}\n\n.ph-12 {\n padding: 0 12px !important;\n}\n\n.maxw-12 {\n max-width: 12% !important;\n}\n\n.minw-12 {\n min-width: 12% !important;\n}\n\n.gap-12 {\n gap: 1.2rem !important;\n}\n\n.fs-13 {\n font-size: 13rem !important;\n}\n\n.fw-13 {\n font-weight: 1300 !important;\n}\n\n.w-13 {\n width: 13% !important;\n}\n\n.mt-13 {\n margin-top: 13px !important;\n}\n\n.pt-13 {\n padding-top: 13px !important;\n}\n\n.pb-13 {\n padding-bottom: 13px !important;\n}\n\n.pl-13 {\n padding-left: 13px !important;\n}\n\n.pr-13 {\n padding-right: 13px !important;\n}\n\n.mb-13 {\n margin-bottom: 13px !important;\n}\n\n.mv-13 {\n margin: 13px 0 !important;\n}\n\n.mh-13 {\n margin: 0 13px !important;\n}\n\n.pv-13 {\n padding: 13px 0 !important;\n}\n\n.ph-13 {\n padding: 0 13px !important;\n}\n\n.maxw-13 {\n max-width: 13% !important;\n}\n\n.minw-13 {\n min-width: 13% !important;\n}\n\n.gap-13 {\n gap: 1.3rem !important;\n}\n\n.fs-14 {\n font-size: 14rem !important;\n}\n\n.fw-14 {\n font-weight: 1400 !important;\n}\n\n.w-14 {\n width: 14% !important;\n}\n\n.mt-14 {\n margin-top: 14px !important;\n}\n\n.pt-14 {\n padding-top: 14px !important;\n}\n\n.pb-14 {\n padding-bottom: 14px !important;\n}\n\n.pl-14 {\n padding-left: 14px !important;\n}\n\n.pr-14 {\n padding-right: 14px !important;\n}\n\n.mb-14 {\n margin-bottom: 14px !important;\n}\n\n.mv-14 {\n margin: 14px 0 !important;\n}\n\n.mh-14 {\n margin: 0 14px !important;\n}\n\n.pv-14 {\n padding: 14px 0 !important;\n}\n\n.ph-14 {\n padding: 0 14px !important;\n}\n\n.maxw-14 {\n max-width: 14% !important;\n}\n\n.minw-14 {\n min-width: 14% !important;\n}\n\n.gap-14 {\n gap: 1.4rem !important;\n}\n\n.fs-15 {\n font-size: 15rem !important;\n}\n\n.fw-15 {\n font-weight: 1500 !important;\n}\n\n.w-15 {\n width: 15% !important;\n}\n\n.mt-15 {\n margin-top: 15px !important;\n}\n\n.pt-15 {\n padding-top: 15px !important;\n}\n\n.pb-15 {\n padding-bottom: 15px !important;\n}\n\n.pl-15 {\n padding-left: 15px !important;\n}\n\n.pr-15 {\n padding-right: 15px !important;\n}\n\n.mb-15 {\n margin-bottom: 15px !important;\n}\n\n.mv-15 {\n margin: 15px 0 !important;\n}\n\n.mh-15 {\n margin: 0 15px !important;\n}\n\n.pv-15 {\n padding: 15px 0 !important;\n}\n\n.ph-15 {\n padding: 0 15px !important;\n}\n\n.maxw-15 {\n max-width: 15% !important;\n}\n\n.minw-15 {\n min-width: 15% !important;\n}\n\n.gap-15 {\n gap: 1.5rem !important;\n}\n\n.fs-16 {\n font-size: 16rem !important;\n}\n\n.fw-16 {\n font-weight: 1600 !important;\n}\n\n.w-16 {\n width: 16% !important;\n}\n\n.mt-16 {\n margin-top: 16px !important;\n}\n\n.pt-16 {\n padding-top: 16px !important;\n}\n\n.pb-16 {\n padding-bottom: 16px !important;\n}\n\n.pl-16 {\n padding-left: 16px !important;\n}\n\n.pr-16 {\n padding-right: 16px !important;\n}\n\n.mb-16 {\n margin-bottom: 16px !important;\n}\n\n.mv-16 {\n margin: 16px 0 !important;\n}\n\n.mh-16 {\n margin: 0 16px !important;\n}\n\n.pv-16 {\n padding: 16px 0 !important;\n}\n\n.ph-16 {\n padding: 0 16px !important;\n}\n\n.maxw-16 {\n max-width: 16% !important;\n}\n\n.minw-16 {\n min-width: 16% !important;\n}\n\n.gap-16 {\n gap: 1.6rem !important;\n}\n\n.fs-17 {\n font-size: 17rem !important;\n}\n\n.fw-17 {\n font-weight: 1700 !important;\n}\n\n.w-17 {\n width: 17% !important;\n}\n\n.mt-17 {\n margin-top: 17px !important;\n}\n\n.pt-17 {\n padding-top: 17px !important;\n}\n\n.pb-17 {\n padding-bottom: 17px !important;\n}\n\n.pl-17 {\n padding-left: 17px !important;\n}\n\n.pr-17 {\n padding-right: 17px !important;\n}\n\n.mb-17 {\n margin-bottom: 17px !important;\n}\n\n.mv-17 {\n margin: 17px 0 !important;\n}\n\n.mh-17 {\n margin: 0 17px !important;\n}\n\n.pv-17 {\n padding: 17px 0 !important;\n}\n\n.ph-17 {\n padding: 0 17px !important;\n}\n\n.maxw-17 {\n max-width: 17% !important;\n}\n\n.minw-17 {\n min-width: 17% !important;\n}\n\n.gap-17 {\n gap: 1.7rem !important;\n}\n\n.fs-18 {\n font-size: 18rem !important;\n}\n\n.fw-18 {\n font-weight: 1800 !important;\n}\n\n.w-18 {\n width: 18% !important;\n}\n\n.mt-18 {\n margin-top: 18px !important;\n}\n\n.pt-18 {\n padding-top: 18px !important;\n}\n\n.pb-18 {\n padding-bottom: 18px !important;\n}\n\n.pl-18 {\n padding-left: 18px !important;\n}\n\n.pr-18 {\n padding-right: 18px !important;\n}\n\n.mb-18 {\n margin-bottom: 18px !important;\n}\n\n.mv-18 {\n margin: 18px 0 !important;\n}\n\n.mh-18 {\n margin: 0 18px !important;\n}\n\n.pv-18 {\n padding: 18px 0 !important;\n}\n\n.ph-18 {\n padding: 0 18px !important;\n}\n\n.maxw-18 {\n max-width: 18% !important;\n}\n\n.minw-18 {\n min-width: 18% !important;\n}\n\n.gap-18 {\n gap: 1.8rem !important;\n}\n\n.fs-19 {\n font-size: 19rem !important;\n}\n\n.fw-19 {\n font-weight: 1900 !important;\n}\n\n.w-19 {\n width: 19% !important;\n}\n\n.mt-19 {\n margin-top: 19px !important;\n}\n\n.pt-19 {\n padding-top: 19px !important;\n}\n\n.pb-19 {\n padding-bottom: 19px !important;\n}\n\n.pl-19 {\n padding-left: 19px !important;\n}\n\n.pr-19 {\n padding-right: 19px !important;\n}\n\n.mb-19 {\n margin-bottom: 19px !important;\n}\n\n.mv-19 {\n margin: 19px 0 !important;\n}\n\n.mh-19 {\n margin: 0 19px !important;\n}\n\n.pv-19 {\n padding: 19px 0 !important;\n}\n\n.ph-19 {\n padding: 0 19px !important;\n}\n\n.maxw-19 {\n max-width: 19% !important;\n}\n\n.minw-19 {\n min-width: 19% !important;\n}\n\n.gap-19 {\n gap: 1.9rem !important;\n}\n\n.fs-20 {\n font-size: 20rem !important;\n}\n\n.fw-20 {\n font-weight: 2000 !important;\n}\n\n.w-20 {\n width: 20% !important;\n}\n\n.mt-20 {\n margin-top: 20px !important;\n}\n\n.pt-20 {\n padding-top: 20px !important;\n}\n\n.pb-20 {\n padding-bottom: 20px !important;\n}\n\n.pl-20 {\n padding-left: 20px !important;\n}\n\n.pr-20 {\n padding-right: 20px !important;\n}\n\n.mb-20 {\n margin-bottom: 20px !important;\n}\n\n.mv-20 {\n margin: 20px 0 !important;\n}\n\n.mh-20 {\n margin: 0 20px !important;\n}\n\n.pv-20 {\n padding: 20px 0 !important;\n}\n\n.ph-20 {\n padding: 0 20px !important;\n}\n\n.maxw-20 {\n max-width: 20% !important;\n}\n\n.minw-20 {\n min-width: 20% !important;\n}\n\n.gap-20 {\n gap: 2rem !important;\n}\n\n.fs-21 {\n font-size: 21rem !important;\n}\n\n.fw-21 {\n font-weight: 2100 !important;\n}\n\n.w-21 {\n width: 21% !important;\n}\n\n.mt-21 {\n margin-top: 21px !important;\n}\n\n.pt-21 {\n padding-top: 21px !important;\n}\n\n.pb-21 {\n padding-bottom: 21px !important;\n}\n\n.pl-21 {\n padding-left: 21px !important;\n}\n\n.pr-21 {\n padding-right: 21px !important;\n}\n\n.mb-21 {\n margin-bottom: 21px !important;\n}\n\n.mv-21 {\n margin: 21px 0 !important;\n}\n\n.mh-21 {\n margin: 0 21px !important;\n}\n\n.pv-21 {\n padding: 21px 0 !important;\n}\n\n.ph-21 {\n padding: 0 21px !important;\n}\n\n.maxw-21 {\n max-width: 21% !important;\n}\n\n.minw-21 {\n min-width: 21% !important;\n}\n\n.gap-21 {\n gap: 2.1rem !important;\n}\n\n.fs-22 {\n font-size: 22rem !important;\n}\n\n.fw-22 {\n font-weight: 2200 !important;\n}\n\n.w-22 {\n width: 22% !important;\n}\n\n.mt-22 {\n margin-top: 22px !important;\n}\n\n.pt-22 {\n padding-top: 22px !important;\n}\n\n.pb-22 {\n padding-bottom: 22px !important;\n}\n\n.pl-22 {\n padding-left: 22px !important;\n}\n\n.pr-22 {\n padding-right: 22px !important;\n}\n\n.mb-22 {\n margin-bottom: 22px !important;\n}\n\n.mv-22 {\n margin: 22px 0 !important;\n}\n\n.mh-22 {\n margin: 0 22px !important;\n}\n\n.pv-22 {\n padding: 22px 0 !important;\n}\n\n.ph-22 {\n padding: 0 22px !important;\n}\n\n.maxw-22 {\n max-width: 22% !important;\n}\n\n.minw-22 {\n min-width: 22% !important;\n}\n\n.gap-22 {\n gap: 2.2rem !important;\n}\n\n.fs-23 {\n font-size: 23rem !important;\n}\n\n.fw-23 {\n font-weight: 2300 !important;\n}\n\n.w-23 {\n width: 23% !important;\n}\n\n.mt-23 {\n margin-top: 23px !important;\n}\n\n.pt-23 {\n padding-top: 23px !important;\n}\n\n.pb-23 {\n padding-bottom: 23px !important;\n}\n\n.pl-23 {\n padding-left: 23px !important;\n}\n\n.pr-23 {\n padding-right: 23px !important;\n}\n\n.mb-23 {\n margin-bottom: 23px !important;\n}\n\n.mv-23 {\n margin: 23px 0 !important;\n}\n\n.mh-23 {\n margin: 0 23px !important;\n}\n\n.pv-23 {\n padding: 23px 0 !important;\n}\n\n.ph-23 {\n padding: 0 23px !important;\n}\n\n.maxw-23 {\n max-width: 23% !important;\n}\n\n.minw-23 {\n min-width: 23% !important;\n}\n\n.gap-23 {\n gap: 2.3rem !important;\n}\n\n.fs-24 {\n font-size: 24rem !important;\n}\n\n.fw-24 {\n font-weight: 2400 !important;\n}\n\n.w-24 {\n width: 24% !important;\n}\n\n.mt-24 {\n margin-top: 24px !important;\n}\n\n.pt-24 {\n padding-top: 24px !important;\n}\n\n.pb-24 {\n padding-bottom: 24px !important;\n}\n\n.pl-24 {\n padding-left: 24px !important;\n}\n\n.pr-24 {\n padding-right: 24px !important;\n}\n\n.mb-24 {\n margin-bottom: 24px !important;\n}\n\n.mv-24 {\n margin: 24px 0 !important;\n}\n\n.mh-24 {\n margin: 0 24px !important;\n}\n\n.pv-24 {\n padding: 24px 0 !important;\n}\n\n.ph-24 {\n padding: 0 24px !important;\n}\n\n.maxw-24 {\n max-width: 24% !important;\n}\n\n.minw-24 {\n min-width: 24% !important;\n}\n\n.gap-24 {\n gap: 2.4rem !important;\n}\n\n.fs-25 {\n font-size: 25rem !important;\n}\n\n.fw-25 {\n font-weight: 2500 !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.mt-25 {\n margin-top: 25px !important;\n}\n\n.pt-25 {\n padding-top: 25px !important;\n}\n\n.pb-25 {\n padding-bottom: 25px !important;\n}\n\n.pl-25 {\n padding-left: 25px !important;\n}\n\n.pr-25 {\n padding-right: 25px !important;\n}\n\n.mb-25 {\n margin-bottom: 25px !important;\n}\n\n.mv-25 {\n margin: 25px 0 !important;\n}\n\n.mh-25 {\n margin: 0 25px !important;\n}\n\n.pv-25 {\n padding: 25px 0 !important;\n}\n\n.ph-25 {\n padding: 0 25px !important;\n}\n\n.maxw-25 {\n max-width: 25% !important;\n}\n\n.minw-25 {\n min-width: 25% !important;\n}\n\n.gap-25 {\n gap: 2.5rem !important;\n}\n\n.fs-26 {\n font-size: 26rem !important;\n}\n\n.fw-26 {\n font-weight: 2600 !important;\n}\n\n.w-26 {\n width: 26% !important;\n}\n\n.mt-26 {\n margin-top: 26px !important;\n}\n\n.pt-26 {\n padding-top: 26px !important;\n}\n\n.pb-26 {\n padding-bottom: 26px !important;\n}\n\n.pl-26 {\n padding-left: 26px !important;\n}\n\n.pr-26 {\n padding-right: 26px !important;\n}\n\n.mb-26 {\n margin-bottom: 26px !important;\n}\n\n.mv-26 {\n margin: 26px 0 !important;\n}\n\n.mh-26 {\n margin: 0 26px !important;\n}\n\n.pv-26 {\n padding: 26px 0 !important;\n}\n\n.ph-26 {\n padding: 0 26px !important;\n}\n\n.maxw-26 {\n max-width: 26% !important;\n}\n\n.minw-26 {\n min-width: 26% !important;\n}\n\n.gap-26 {\n gap: 2.6rem !important;\n}\n\n.fs-27 {\n font-size: 27rem !important;\n}\n\n.fw-27 {\n font-weight: 2700 !important;\n}\n\n.w-27 {\n width: 27% !important;\n}\n\n.mt-27 {\n margin-top: 27px !important;\n}\n\n.pt-27 {\n padding-top: 27px !important;\n}\n\n.pb-27 {\n padding-bottom: 27px !important;\n}\n\n.pl-27 {\n padding-left: 27px !important;\n}\n\n.pr-27 {\n padding-right: 27px !important;\n}\n\n.mb-27 {\n margin-bottom: 27px !important;\n}\n\n.mv-27 {\n margin: 27px 0 !important;\n}\n\n.mh-27 {\n margin: 0 27px !important;\n}\n\n.pv-27 {\n padding: 27px 0 !important;\n}\n\n.ph-27 {\n padding: 0 27px !important;\n}\n\n.maxw-27 {\n max-width: 27% !important;\n}\n\n.minw-27 {\n min-width: 27% !important;\n}\n\n.gap-27 {\n gap: 2.7rem !important;\n}\n\n.fs-28 {\n font-size: 28rem !important;\n}\n\n.fw-28 {\n font-weight: 2800 !important;\n}\n\n.w-28 {\n width: 28% !important;\n}\n\n.mt-28 {\n margin-top: 28px !important;\n}\n\n.pt-28 {\n padding-top: 28px !important;\n}\n\n.pb-28 {\n padding-bottom: 28px !important;\n}\n\n.pl-28 {\n padding-left: 28px !important;\n}\n\n.pr-28 {\n padding-right: 28px !important;\n}\n\n.mb-28 {\n margin-bottom: 28px !important;\n}\n\n.mv-28 {\n margin: 28px 0 !important;\n}\n\n.mh-28 {\n margin: 0 28px !important;\n}\n\n.pv-28 {\n padding: 28px 0 !important;\n}\n\n.ph-28 {\n padding: 0 28px !important;\n}\n\n.maxw-28 {\n max-width: 28% !important;\n}\n\n.minw-28 {\n min-width: 28% !important;\n}\n\n.gap-28 {\n gap: 2.8rem !important;\n}\n\n.fs-29 {\n font-size: 29rem !important;\n}\n\n.fw-29 {\n font-weight: 2900 !important;\n}\n\n.w-29 {\n width: 29% !important;\n}\n\n.mt-29 {\n margin-top: 29px !important;\n}\n\n.pt-29 {\n padding-top: 29px !important;\n}\n\n.pb-29 {\n padding-bottom: 29px !important;\n}\n\n.pl-29 {\n padding-left: 29px !important;\n}\n\n.pr-29 {\n padding-right: 29px !important;\n}\n\n.mb-29 {\n margin-bottom: 29px !important;\n}\n\n.mv-29 {\n margin: 29px 0 !important;\n}\n\n.mh-29 {\n margin: 0 29px !important;\n}\n\n.pv-29 {\n padding: 29px 0 !important;\n}\n\n.ph-29 {\n padding: 0 29px !important;\n}\n\n.maxw-29 {\n max-width: 29% !important;\n}\n\n.minw-29 {\n min-width: 29% !important;\n}\n\n.gap-29 {\n gap: 2.9rem !important;\n}\n\n.fs-30 {\n font-size: 30rem !important;\n}\n\n.fw-30 {\n font-weight: 3000 !important;\n}\n\n.w-30 {\n width: 30% !important;\n}\n\n.mt-30 {\n margin-top: 30px !important;\n}\n\n.pt-30 {\n padding-top: 30px !important;\n}\n\n.pb-30 {\n padding-bottom: 30px !important;\n}\n\n.pl-30 {\n padding-left: 30px !important;\n}\n\n.pr-30 {\n padding-right: 30px !important;\n}\n\n.mb-30 {\n margin-bottom: 30px !important;\n}\n\n.mv-30 {\n margin: 30px 0 !important;\n}\n\n.mh-30 {\n margin: 0 30px !important;\n}\n\n.pv-30 {\n padding: 30px 0 !important;\n}\n\n.ph-30 {\n padding: 0 30px !important;\n}\n\n.maxw-30 {\n max-width: 30% !important;\n}\n\n.minw-30 {\n min-width: 30% !important;\n}\n\n.gap-30 {\n gap: 3rem !important;\n}\n\n.fs-31 {\n font-size: 31rem !important;\n}\n\n.fw-31 {\n font-weight: 3100 !important;\n}\n\n.w-31 {\n width: 31% !important;\n}\n\n.mt-31 {\n margin-top: 31px !important;\n}\n\n.pt-31 {\n padding-top: 31px !important;\n}\n\n.pb-31 {\n padding-bottom: 31px !important;\n}\n\n.pl-31 {\n padding-left: 31px !important;\n}\n\n.pr-31 {\n padding-right: 31px !important;\n}\n\n.mb-31 {\n margin-bottom: 31px !important;\n}\n\n.mv-31 {\n margin: 31px 0 !important;\n}\n\n.mh-31 {\n margin: 0 31px !important;\n}\n\n.pv-31 {\n padding: 31px 0 !important;\n}\n\n.ph-31 {\n padding: 0 31px !important;\n}\n\n.maxw-31 {\n max-width: 31% !important;\n}\n\n.minw-31 {\n min-width: 31% !important;\n}\n\n.gap-31 {\n gap: 3.1rem !important;\n}\n\n.fs-32 {\n font-size: 32rem !important;\n}\n\n.fw-32 {\n font-weight: 3200 !important;\n}\n\n.w-32 {\n width: 32% !important;\n}\n\n.mt-32 {\n margin-top: 32px !important;\n}\n\n.pt-32 {\n padding-top: 32px !important;\n}\n\n.pb-32 {\n padding-bottom: 32px !important;\n}\n\n.pl-32 {\n padding-left: 32px !important;\n}\n\n.pr-32 {\n padding-right: 32px !important;\n}\n\n.mb-32 {\n margin-bottom: 32px !important;\n}\n\n.mv-32 {\n margin: 32px 0 !important;\n}\n\n.mh-32 {\n margin: 0 32px !important;\n}\n\n.pv-32 {\n padding: 32px 0 !important;\n}\n\n.ph-32 {\n padding: 0 32px !important;\n}\n\n.maxw-32 {\n max-width: 32% !important;\n}\n\n.minw-32 {\n min-width: 32% !important;\n}\n\n.gap-32 {\n gap: 3.2rem !important;\n}\n\n.fs-33 {\n font-size: 33rem !important;\n}\n\n.fw-33 {\n font-weight: 3300 !important;\n}\n\n.w-33 {\n width: 33% !important;\n}\n\n.mt-33 {\n margin-top: 33px !important;\n}\n\n.pt-33 {\n padding-top: 33px !important;\n}\n\n.pb-33 {\n padding-bottom: 33px !important;\n}\n\n.pl-33 {\n padding-left: 33px !important;\n}\n\n.pr-33 {\n padding-right: 33px !important;\n}\n\n.mb-33 {\n margin-bottom: 33px !important;\n}\n\n.mv-33 {\n margin: 33px 0 !important;\n}\n\n.mh-33 {\n margin: 0 33px !important;\n}\n\n.pv-33 {\n padding: 33px 0 !important;\n}\n\n.ph-33 {\n padding: 0 33px !important;\n}\n\n.maxw-33 {\n max-width: 33% !important;\n}\n\n.minw-33 {\n min-width: 33% !important;\n}\n\n.gap-33 {\n gap: 3.3rem !important;\n}\n\n.fs-34 {\n font-size: 34rem !important;\n}\n\n.fw-34 {\n font-weight: 3400 !important;\n}\n\n.w-34 {\n width: 34% !important;\n}\n\n.mt-34 {\n margin-top: 34px !important;\n}\n\n.pt-34 {\n padding-top: 34px !important;\n}\n\n.pb-34 {\n padding-bottom: 34px !important;\n}\n\n.pl-34 {\n padding-left: 34px !important;\n}\n\n.pr-34 {\n padding-right: 34px !important;\n}\n\n.mb-34 {\n margin-bottom: 34px !important;\n}\n\n.mv-34 {\n margin: 34px 0 !important;\n}\n\n.mh-34 {\n margin: 0 34px !important;\n}\n\n.pv-34 {\n padding: 34px 0 !important;\n}\n\n.ph-34 {\n padding: 0 34px !important;\n}\n\n.maxw-34 {\n max-width: 34% !important;\n}\n\n.minw-34 {\n min-width: 34% !important;\n}\n\n.gap-34 {\n gap: 3.4rem !important;\n}\n\n.fs-35 {\n font-size: 35rem !important;\n}\n\n.fw-35 {\n font-weight: 3500 !important;\n}\n\n.w-35 {\n width: 35% !important;\n}\n\n.mt-35 {\n margin-top: 35px !important;\n}\n\n.pt-35 {\n padding-top: 35px !important;\n}\n\n.pb-35 {\n padding-bottom: 35px !important;\n}\n\n.pl-35 {\n padding-left: 35px !important;\n}\n\n.pr-35 {\n padding-right: 35px !important;\n}\n\n.mb-35 {\n margin-bottom: 35px !important;\n}\n\n.mv-35 {\n margin: 35px 0 !important;\n}\n\n.mh-35 {\n margin: 0 35px !important;\n}\n\n.pv-35 {\n padding: 35px 0 !important;\n}\n\n.ph-35 {\n padding: 0 35px !important;\n}\n\n.maxw-35 {\n max-width: 35% !important;\n}\n\n.minw-35 {\n min-width: 35% !important;\n}\n\n.gap-35 {\n gap: 3.5rem !important;\n}\n\n.fs-36 {\n font-size: 36rem !important;\n}\n\n.fw-36 {\n font-weight: 3600 !important;\n}\n\n.w-36 {\n width: 36% !important;\n}\n\n.mt-36 {\n margin-top: 36px !important;\n}\n\n.pt-36 {\n padding-top: 36px !important;\n}\n\n.pb-36 {\n padding-bottom: 36px !important;\n}\n\n.pl-36 {\n padding-left: 36px !important;\n}\n\n.pr-36 {\n padding-right: 36px !important;\n}\n\n.mb-36 {\n margin-bottom: 36px !important;\n}\n\n.mv-36 {\n margin: 36px 0 !important;\n}\n\n.mh-36 {\n margin: 0 36px !important;\n}\n\n.pv-36 {\n padding: 36px 0 !important;\n}\n\n.ph-36 {\n padding: 0 36px !important;\n}\n\n.maxw-36 {\n max-width: 36% !important;\n}\n\n.minw-36 {\n min-width: 36% !important;\n}\n\n.gap-36 {\n gap: 3.6rem !important;\n}\n\n.fs-37 {\n font-size: 37rem !important;\n}\n\n.fw-37 {\n font-weight: 3700 !important;\n}\n\n.w-37 {\n width: 37% !important;\n}\n\n.mt-37 {\n margin-top: 37px !important;\n}\n\n.pt-37 {\n padding-top: 37px !important;\n}\n\n.pb-37 {\n padding-bottom: 37px !important;\n}\n\n.pl-37 {\n padding-left: 37px !important;\n}\n\n.pr-37 {\n padding-right: 37px !important;\n}\n\n.mb-37 {\n margin-bottom: 37px !important;\n}\n\n.mv-37 {\n margin: 37px 0 !important;\n}\n\n.mh-37 {\n margin: 0 37px !important;\n}\n\n.pv-37 {\n padding: 37px 0 !important;\n}\n\n.ph-37 {\n padding: 0 37px !important;\n}\n\n.maxw-37 {\n max-width: 37% !important;\n}\n\n.minw-37 {\n min-width: 37% !important;\n}\n\n.gap-37 {\n gap: 3.7rem !important;\n}\n\n.fs-38 {\n font-size: 38rem !important;\n}\n\n.fw-38 {\n font-weight: 3800 !important;\n}\n\n.w-38 {\n width: 38% !important;\n}\n\n.mt-38 {\n margin-top: 38px !important;\n}\n\n.pt-38 {\n padding-top: 38px !important;\n}\n\n.pb-38 {\n padding-bottom: 38px !important;\n}\n\n.pl-38 {\n padding-left: 38px !important;\n}\n\n.pr-38 {\n padding-right: 38px !important;\n}\n\n.mb-38 {\n margin-bottom: 38px !important;\n}\n\n.mv-38 {\n margin: 38px 0 !important;\n}\n\n.mh-38 {\n margin: 0 38px !important;\n}\n\n.pv-38 {\n padding: 38px 0 !important;\n}\n\n.ph-38 {\n padding: 0 38px !important;\n}\n\n.maxw-38 {\n max-width: 38% !important;\n}\n\n.minw-38 {\n min-width: 38% !important;\n}\n\n.gap-38 {\n gap: 3.8rem !important;\n}\n\n.fs-39 {\n font-size: 39rem !important;\n}\n\n.fw-39 {\n font-weight: 3900 !important;\n}\n\n.w-39 {\n width: 39% !important;\n}\n\n.mt-39 {\n margin-top: 39px !important;\n}\n\n.pt-39 {\n padding-top: 39px !important;\n}\n\n.pb-39 {\n padding-bottom: 39px !important;\n}\n\n.pl-39 {\n padding-left: 39px !important;\n}\n\n.pr-39 {\n padding-right: 39px !important;\n}\n\n.mb-39 {\n margin-bottom: 39px !important;\n}\n\n.mv-39 {\n margin: 39px 0 !important;\n}\n\n.mh-39 {\n margin: 0 39px !important;\n}\n\n.pv-39 {\n padding: 39px 0 !important;\n}\n\n.ph-39 {\n padding: 0 39px !important;\n}\n\n.maxw-39 {\n max-width: 39% !important;\n}\n\n.minw-39 {\n min-width: 39% !important;\n}\n\n.gap-39 {\n gap: 3.9rem !important;\n}\n\n.fs-40 {\n font-size: 40rem !important;\n}\n\n.fw-40 {\n font-weight: 4000 !important;\n}\n\n.w-40 {\n width: 40% !important;\n}\n\n.mt-40 {\n margin-top: 40px !important;\n}\n\n.pt-40 {\n padding-top: 40px !important;\n}\n\n.pb-40 {\n padding-bottom: 40px !important;\n}\n\n.pl-40 {\n padding-left: 40px !important;\n}\n\n.pr-40 {\n padding-right: 40px !important;\n}\n\n.mb-40 {\n margin-bottom: 40px !important;\n}\n\n.mv-40 {\n margin: 40px 0 !important;\n}\n\n.mh-40 {\n margin: 0 40px !important;\n}\n\n.pv-40 {\n padding: 40px 0 !important;\n}\n\n.ph-40 {\n padding: 0 40px !important;\n}\n\n.maxw-40 {\n max-width: 40% !important;\n}\n\n.minw-40 {\n min-width: 40% !important;\n}\n\n.gap-40 {\n gap: 4rem !important;\n}\n\n.fs-41 {\n font-size: 41rem !important;\n}\n\n.fw-41 {\n font-weight: 4100 !important;\n}\n\n.w-41 {\n width: 41% !important;\n}\n\n.mt-41 {\n margin-top: 41px !important;\n}\n\n.pt-41 {\n padding-top: 41px !important;\n}\n\n.pb-41 {\n padding-bottom: 41px !important;\n}\n\n.pl-41 {\n padding-left: 41px !important;\n}\n\n.pr-41 {\n padding-right: 41px !important;\n}\n\n.mb-41 {\n margin-bottom: 41px !important;\n}\n\n.mv-41 {\n margin: 41px 0 !important;\n}\n\n.mh-41 {\n margin: 0 41px !important;\n}\n\n.pv-41 {\n padding: 41px 0 !important;\n}\n\n.ph-41 {\n padding: 0 41px !important;\n}\n\n.maxw-41 {\n max-width: 41% !important;\n}\n\n.minw-41 {\n min-width: 41% !important;\n}\n\n.gap-41 {\n gap: 4.1rem !important;\n}\n\n.fs-42 {\n font-size: 42rem !important;\n}\n\n.fw-42 {\n font-weight: 4200 !important;\n}\n\n.w-42 {\n width: 42% !important;\n}\n\n.mt-42 {\n margin-top: 42px !important;\n}\n\n.pt-42 {\n padding-top: 42px !important;\n}\n\n.pb-42 {\n padding-bottom: 42px !important;\n}\n\n.pl-42 {\n padding-left: 42px !important;\n}\n\n.pr-42 {\n padding-right: 42px !important;\n}\n\n.mb-42 {\n margin-bottom: 42px !important;\n}\n\n.mv-42 {\n margin: 42px 0 !important;\n}\n\n.mh-42 {\n margin: 0 42px !important;\n}\n\n.pv-42 {\n padding: 42px 0 !important;\n}\n\n.ph-42 {\n padding: 0 42px !important;\n}\n\n.maxw-42 {\n max-width: 42% !important;\n}\n\n.minw-42 {\n min-width: 42% !important;\n}\n\n.gap-42 {\n gap: 4.2rem !important;\n}\n\n.fs-43 {\n font-size: 43rem !important;\n}\n\n.fw-43 {\n font-weight: 4300 !important;\n}\n\n.w-43 {\n width: 43% !important;\n}\n\n.mt-43 {\n margin-top: 43px !important;\n}\n\n.pt-43 {\n padding-top: 43px !important;\n}\n\n.pb-43 {\n padding-bottom: 43px !important;\n}\n\n.pl-43 {\n padding-left: 43px !important;\n}\n\n.pr-43 {\n padding-right: 43px !important;\n}\n\n.mb-43 {\n margin-bottom: 43px !important;\n}\n\n.mv-43 {\n margin: 43px 0 !important;\n}\n\n.mh-43 {\n margin: 0 43px !important;\n}\n\n.pv-43 {\n padding: 43px 0 !important;\n}\n\n.ph-43 {\n padding: 0 43px !important;\n}\n\n.maxw-43 {\n max-width: 43% !important;\n}\n\n.minw-43 {\n min-width: 43% !important;\n}\n\n.gap-43 {\n gap: 4.3rem !important;\n}\n\n.fs-44 {\n font-size: 44rem !important;\n}\n\n.fw-44 {\n font-weight: 4400 !important;\n}\n\n.w-44 {\n width: 44% !important;\n}\n\n.mt-44 {\n margin-top: 44px !important;\n}\n\n.pt-44 {\n padding-top: 44px !important;\n}\n\n.pb-44 {\n padding-bottom: 44px !important;\n}\n\n.pl-44 {\n padding-left: 44px !important;\n}\n\n.pr-44 {\n padding-right: 44px !important;\n}\n\n.mb-44 {\n margin-bottom: 44px !important;\n}\n\n.mv-44 {\n margin: 44px 0 !important;\n}\n\n.mh-44 {\n margin: 0 44px !important;\n}\n\n.pv-44 {\n padding: 44px 0 !important;\n}\n\n.ph-44 {\n padding: 0 44px !important;\n}\n\n.maxw-44 {\n max-width: 44% !important;\n}\n\n.minw-44 {\n min-width: 44% !important;\n}\n\n.gap-44 {\n gap: 4.4rem !important;\n}\n\n.fs-45 {\n font-size: 45rem !important;\n}\n\n.fw-45 {\n font-weight: 4500 !important;\n}\n\n.w-45 {\n width: 45% !important;\n}\n\n.mt-45 {\n margin-top: 45px !important;\n}\n\n.pt-45 {\n padding-top: 45px !important;\n}\n\n.pb-45 {\n padding-bottom: 45px !important;\n}\n\n.pl-45 {\n padding-left: 45px !important;\n}\n\n.pr-45 {\n padding-right: 45px !important;\n}\n\n.mb-45 {\n margin-bottom: 45px !important;\n}\n\n.mv-45 {\n margin: 45px 0 !important;\n}\n\n.mh-45 {\n margin: 0 45px !important;\n}\n\n.pv-45 {\n padding: 45px 0 !important;\n}\n\n.ph-45 {\n padding: 0 45px !important;\n}\n\n.maxw-45 {\n max-width: 45% !important;\n}\n\n.minw-45 {\n min-width: 45% !important;\n}\n\n.gap-45 {\n gap: 4.5rem !important;\n}\n\n.fs-46 {\n font-size: 46rem !important;\n}\n\n.fw-46 {\n font-weight: 4600 !important;\n}\n\n.w-46 {\n width: 46% !important;\n}\n\n.mt-46 {\n margin-top: 46px !important;\n}\n\n.pt-46 {\n padding-top: 46px !important;\n}\n\n.pb-46 {\n padding-bottom: 46px !important;\n}\n\n.pl-46 {\n padding-left: 46px !important;\n}\n\n.pr-46 {\n padding-right: 46px !important;\n}\n\n.mb-46 {\n margin-bottom: 46px !important;\n}\n\n.mv-46 {\n margin: 46px 0 !important;\n}\n\n.mh-46 {\n margin: 0 46px !important;\n}\n\n.pv-46 {\n padding: 46px 0 !important;\n}\n\n.ph-46 {\n padding: 0 46px !important;\n}\n\n.maxw-46 {\n max-width: 46% !important;\n}\n\n.minw-46 {\n min-width: 46% !important;\n}\n\n.gap-46 {\n gap: 4.6rem !important;\n}\n\n.fs-47 {\n font-size: 47rem !important;\n}\n\n.fw-47 {\n font-weight: 4700 !important;\n}\n\n.w-47 {\n width: 47% !important;\n}\n\n.mt-47 {\n margin-top: 47px !important;\n}\n\n.pt-47 {\n padding-top: 47px !important;\n}\n\n.pb-47 {\n padding-bottom: 47px !important;\n}\n\n.pl-47 {\n padding-left: 47px !important;\n}\n\n.pr-47 {\n padding-right: 47px !important;\n}\n\n.mb-47 {\n margin-bottom: 47px !important;\n}\n\n.mv-47 {\n margin: 47px 0 !important;\n}\n\n.mh-47 {\n margin: 0 47px !important;\n}\n\n.pv-47 {\n padding: 47px 0 !important;\n}\n\n.ph-47 {\n padding: 0 47px !important;\n}\n\n.maxw-47 {\n max-width: 47% !important;\n}\n\n.minw-47 {\n min-width: 47% !important;\n}\n\n.gap-47 {\n gap: 4.7rem !important;\n}\n\n.fs-48 {\n font-size: 48rem !important;\n}\n\n.fw-48 {\n font-weight: 4800 !important;\n}\n\n.w-48 {\n width: 48% !important;\n}\n\n.mt-48 {\n margin-top: 48px !important;\n}\n\n.pt-48 {\n padding-top: 48px !important;\n}\n\n.pb-48 {\n padding-bottom: 48px !important;\n}\n\n.pl-48 {\n padding-left: 48px !important;\n}\n\n.pr-48 {\n padding-right: 48px !important;\n}\n\n.mb-48 {\n margin-bottom: 48px !important;\n}\n\n.mv-48 {\n margin: 48px 0 !important;\n}\n\n.mh-48 {\n margin: 0 48px !important;\n}\n\n.pv-48 {\n padding: 48px 0 !important;\n}\n\n.ph-48 {\n padding: 0 48px !important;\n}\n\n.maxw-48 {\n max-width: 48% !important;\n}\n\n.minw-48 {\n min-width: 48% !important;\n}\n\n.gap-48 {\n gap: 4.8rem !important;\n}\n\n.fs-49 {\n font-size: 49rem !important;\n}\n\n.fw-49 {\n font-weight: 4900 !important;\n}\n\n.w-49 {\n width: 49% !important;\n}\n\n.mt-49 {\n margin-top: 49px !important;\n}\n\n.pt-49 {\n padding-top: 49px !important;\n}\n\n.pb-49 {\n padding-bottom: 49px !important;\n}\n\n.pl-49 {\n padding-left: 49px !important;\n}\n\n.pr-49 {\n padding-right: 49px !important;\n}\n\n.mb-49 {\n margin-bottom: 49px !important;\n}\n\n.mv-49 {\n margin: 49px 0 !important;\n}\n\n.mh-49 {\n margin: 0 49px !important;\n}\n\n.pv-49 {\n padding: 49px 0 !important;\n}\n\n.ph-49 {\n padding: 0 49px !important;\n}\n\n.maxw-49 {\n max-width: 49% !important;\n}\n\n.minw-49 {\n min-width: 49% !important;\n}\n\n.gap-49 {\n gap: 4.9rem !important;\n}\n\n.fs-50 {\n font-size: 50rem !important;\n}\n\n.fw-50 {\n font-weight: 5000 !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.mt-50 {\n margin-top: 50px !important;\n}\n\n.pt-50 {\n padding-top: 50px !important;\n}\n\n.pb-50 {\n padding-bottom: 50px !important;\n}\n\n.pl-50 {\n padding-left: 50px !important;\n}\n\n.pr-50 {\n padding-right: 50px !important;\n}\n\n.mb-50 {\n margin-bottom: 50px !important;\n}\n\n.mv-50 {\n margin: 50px 0 !important;\n}\n\n.mh-50 {\n margin: 0 50px !important;\n}\n\n.pv-50 {\n padding: 50px 0 !important;\n}\n\n.ph-50 {\n padding: 0 50px !important;\n}\n\n.maxw-50 {\n max-width: 50% !important;\n}\n\n.minw-50 {\n min-width: 50% !important;\n}\n\n.gap-50 {\n gap: 5rem !important;\n}\n\n.fs-51 {\n font-size: 51rem !important;\n}\n\n.fw-51 {\n font-weight: 5100 !important;\n}\n\n.w-51 {\n width: 51% !important;\n}\n\n.mt-51 {\n margin-top: 51px !important;\n}\n\n.pt-51 {\n padding-top: 51px !important;\n}\n\n.pb-51 {\n padding-bottom: 51px !important;\n}\n\n.pl-51 {\n padding-left: 51px !important;\n}\n\n.pr-51 {\n padding-right: 51px !important;\n}\n\n.mb-51 {\n margin-bottom: 51px !important;\n}\n\n.mv-51 {\n margin: 51px 0 !important;\n}\n\n.mh-51 {\n margin: 0 51px !important;\n}\n\n.pv-51 {\n padding: 51px 0 !important;\n}\n\n.ph-51 {\n padding: 0 51px !important;\n}\n\n.maxw-51 {\n max-width: 51% !important;\n}\n\n.minw-51 {\n min-width: 51% !important;\n}\n\n.gap-51 {\n gap: 5.1rem !important;\n}\n\n.fs-52 {\n font-size: 52rem !important;\n}\n\n.fw-52 {\n font-weight: 5200 !important;\n}\n\n.w-52 {\n width: 52% !important;\n}\n\n.mt-52 {\n margin-top: 52px !important;\n}\n\n.pt-52 {\n padding-top: 52px !important;\n}\n\n.pb-52 {\n padding-bottom: 52px !important;\n}\n\n.pl-52 {\n padding-left: 52px !important;\n}\n\n.pr-52 {\n padding-right: 52px !important;\n}\n\n.mb-52 {\n margin-bottom: 52px !important;\n}\n\n.mv-52 {\n margin: 52px 0 !important;\n}\n\n.mh-52 {\n margin: 0 52px !important;\n}\n\n.pv-52 {\n padding: 52px 0 !important;\n}\n\n.ph-52 {\n padding: 0 52px !important;\n}\n\n.maxw-52 {\n max-width: 52% !important;\n}\n\n.minw-52 {\n min-width: 52% !important;\n}\n\n.gap-52 {\n gap: 5.2rem !important;\n}\n\n.fs-53 {\n font-size: 53rem !important;\n}\n\n.fw-53 {\n font-weight: 5300 !important;\n}\n\n.w-53 {\n width: 53% !important;\n}\n\n.mt-53 {\n margin-top: 53px !important;\n}\n\n.pt-53 {\n padding-top: 53px !important;\n}\n\n.pb-53 {\n padding-bottom: 53px !important;\n}\n\n.pl-53 {\n padding-left: 53px !important;\n}\n\n.pr-53 {\n padding-right: 53px !important;\n}\n\n.mb-53 {\n margin-bottom: 53px !important;\n}\n\n.mv-53 {\n margin: 53px 0 !important;\n}\n\n.mh-53 {\n margin: 0 53px !important;\n}\n\n.pv-53 {\n padding: 53px 0 !important;\n}\n\n.ph-53 {\n padding: 0 53px !important;\n}\n\n.maxw-53 {\n max-width: 53% !important;\n}\n\n.minw-53 {\n min-width: 53% !important;\n}\n\n.gap-53 {\n gap: 5.3rem !important;\n}\n\n.fs-54 {\n font-size: 54rem !important;\n}\n\n.fw-54 {\n font-weight: 5400 !important;\n}\n\n.w-54 {\n width: 54% !important;\n}\n\n.mt-54 {\n margin-top: 54px !important;\n}\n\n.pt-54 {\n padding-top: 54px !important;\n}\n\n.pb-54 {\n padding-bottom: 54px !important;\n}\n\n.pl-54 {\n padding-left: 54px !important;\n}\n\n.pr-54 {\n padding-right: 54px !important;\n}\n\n.mb-54 {\n margin-bottom: 54px !important;\n}\n\n.mv-54 {\n margin: 54px 0 !important;\n}\n\n.mh-54 {\n margin: 0 54px !important;\n}\n\n.pv-54 {\n padding: 54px 0 !important;\n}\n\n.ph-54 {\n padding: 0 54px !important;\n}\n\n.maxw-54 {\n max-width: 54% !important;\n}\n\n.minw-54 {\n min-width: 54% !important;\n}\n\n.gap-54 {\n gap: 5.4rem !important;\n}\n\n.fs-55 {\n font-size: 55rem !important;\n}\n\n.fw-55 {\n font-weight: 5500 !important;\n}\n\n.w-55 {\n width: 55% !important;\n}\n\n.mt-55 {\n margin-top: 55px !important;\n}\n\n.pt-55 {\n padding-top: 55px !important;\n}\n\n.pb-55 {\n padding-bottom: 55px !important;\n}\n\n.pl-55 {\n padding-left: 55px !important;\n}\n\n.pr-55 {\n padding-right: 55px !important;\n}\n\n.mb-55 {\n margin-bottom: 55px !important;\n}\n\n.mv-55 {\n margin: 55px 0 !important;\n}\n\n.mh-55 {\n margin: 0 55px !important;\n}\n\n.pv-55 {\n padding: 55px 0 !important;\n}\n\n.ph-55 {\n padding: 0 55px !important;\n}\n\n.maxw-55 {\n max-width: 55% !important;\n}\n\n.minw-55 {\n min-width: 55% !important;\n}\n\n.gap-55 {\n gap: 5.5rem !important;\n}\n\n.fs-56 {\n font-size: 56rem !important;\n}\n\n.fw-56 {\n font-weight: 5600 !important;\n}\n\n.w-56 {\n width: 56% !important;\n}\n\n.mt-56 {\n margin-top: 56px !important;\n}\n\n.pt-56 {\n padding-top: 56px !important;\n}\n\n.pb-56 {\n padding-bottom: 56px !important;\n}\n\n.pl-56 {\n padding-left: 56px !important;\n}\n\n.pr-56 {\n padding-right: 56px !important;\n}\n\n.mb-56 {\n margin-bottom: 56px !important;\n}\n\n.mv-56 {\n margin: 56px 0 !important;\n}\n\n.mh-56 {\n margin: 0 56px !important;\n}\n\n.pv-56 {\n padding: 56px 0 !important;\n}\n\n.ph-56 {\n padding: 0 56px !important;\n}\n\n.maxw-56 {\n max-width: 56% !important;\n}\n\n.minw-56 {\n min-width: 56% !important;\n}\n\n.gap-56 {\n gap: 5.6rem !important;\n}\n\n.fs-57 {\n font-size: 57rem !important;\n}\n\n.fw-57 {\n font-weight: 5700 !important;\n}\n\n.w-57 {\n width: 57% !important;\n}\n\n.mt-57 {\n margin-top: 57px !important;\n}\n\n.pt-57 {\n padding-top: 57px !important;\n}\n\n.pb-57 {\n padding-bottom: 57px !important;\n}\n\n.pl-57 {\n padding-left: 57px !important;\n}\n\n.pr-57 {\n padding-right: 57px !important;\n}\n\n.mb-57 {\n margin-bottom: 57px !important;\n}\n\n.mv-57 {\n margin: 57px 0 !important;\n}\n\n.mh-57 {\n margin: 0 57px !important;\n}\n\n.pv-57 {\n padding: 57px 0 !important;\n}\n\n.ph-57 {\n padding: 0 57px !important;\n}\n\n.maxw-57 {\n max-width: 57% !important;\n}\n\n.minw-57 {\n min-width: 57% !important;\n}\n\n.gap-57 {\n gap: 5.7rem !important;\n}\n\n.fs-58 {\n font-size: 58rem !important;\n}\n\n.fw-58 {\n font-weight: 5800 !important;\n}\n\n.w-58 {\n width: 58% !important;\n}\n\n.mt-58 {\n margin-top: 58px !important;\n}\n\n.pt-58 {\n padding-top: 58px !important;\n}\n\n.pb-58 {\n padding-bottom: 58px !important;\n}\n\n.pl-58 {\n padding-left: 58px !important;\n}\n\n.pr-58 {\n padding-right: 58px !important;\n}\n\n.mb-58 {\n margin-bottom: 58px !important;\n}\n\n.mv-58 {\n margin: 58px 0 !important;\n}\n\n.mh-58 {\n margin: 0 58px !important;\n}\n\n.pv-58 {\n padding: 58px 0 !important;\n}\n\n.ph-58 {\n padding: 0 58px !important;\n}\n\n.maxw-58 {\n max-width: 58% !important;\n}\n\n.minw-58 {\n min-width: 58% !important;\n}\n\n.gap-58 {\n gap: 5.8rem !important;\n}\n\n.fs-59 {\n font-size: 59rem !important;\n}\n\n.fw-59 {\n font-weight: 5900 !important;\n}\n\n.w-59 {\n width: 59% !important;\n}\n\n.mt-59 {\n margin-top: 59px !important;\n}\n\n.pt-59 {\n padding-top: 59px !important;\n}\n\n.pb-59 {\n padding-bottom: 59px !important;\n}\n\n.pl-59 {\n padding-left: 59px !important;\n}\n\n.pr-59 {\n padding-right: 59px !important;\n}\n\n.mb-59 {\n margin-bottom: 59px !important;\n}\n\n.mv-59 {\n margin: 59px 0 !important;\n}\n\n.mh-59 {\n margin: 0 59px !important;\n}\n\n.pv-59 {\n padding: 59px 0 !important;\n}\n\n.ph-59 {\n padding: 0 59px !important;\n}\n\n.maxw-59 {\n max-width: 59% !important;\n}\n\n.minw-59 {\n min-width: 59% !important;\n}\n\n.gap-59 {\n gap: 5.9rem !important;\n}\n\n.fs-60 {\n font-size: 60rem !important;\n}\n\n.fw-60 {\n font-weight: 6000 !important;\n}\n\n.w-60 {\n width: 60% !important;\n}\n\n.mt-60 {\n margin-top: 60px !important;\n}\n\n.pt-60 {\n padding-top: 60px !important;\n}\n\n.pb-60 {\n padding-bottom: 60px !important;\n}\n\n.pl-60 {\n padding-left: 60px !important;\n}\n\n.pr-60 {\n padding-right: 60px !important;\n}\n\n.mb-60 {\n margin-bottom: 60px !important;\n}\n\n.mv-60 {\n margin: 60px 0 !important;\n}\n\n.mh-60 {\n margin: 0 60px !important;\n}\n\n.pv-60 {\n padding: 60px 0 !important;\n}\n\n.ph-60 {\n padding: 0 60px !important;\n}\n\n.maxw-60 {\n max-width: 60% !important;\n}\n\n.minw-60 {\n min-width: 60% !important;\n}\n\n.gap-60 {\n gap: 6rem !important;\n}\n\n.fs-61 {\n font-size: 61rem !important;\n}\n\n.fw-61 {\n font-weight: 6100 !important;\n}\n\n.w-61 {\n width: 61% !important;\n}\n\n.mt-61 {\n margin-top: 61px !important;\n}\n\n.pt-61 {\n padding-top: 61px !important;\n}\n\n.pb-61 {\n padding-bottom: 61px !important;\n}\n\n.pl-61 {\n padding-left: 61px !important;\n}\n\n.pr-61 {\n padding-right: 61px !important;\n}\n\n.mb-61 {\n margin-bottom: 61px !important;\n}\n\n.mv-61 {\n margin: 61px 0 !important;\n}\n\n.mh-61 {\n margin: 0 61px !important;\n}\n\n.pv-61 {\n padding: 61px 0 !important;\n}\n\n.ph-61 {\n padding: 0 61px !important;\n}\n\n.maxw-61 {\n max-width: 61% !important;\n}\n\n.minw-61 {\n min-width: 61% !important;\n}\n\n.gap-61 {\n gap: 6.1rem !important;\n}\n\n.fs-62 {\n font-size: 62rem !important;\n}\n\n.fw-62 {\n font-weight: 6200 !important;\n}\n\n.w-62 {\n width: 62% !important;\n}\n\n.mt-62 {\n margin-top: 62px !important;\n}\n\n.pt-62 {\n padding-top: 62px !important;\n}\n\n.pb-62 {\n padding-bottom: 62px !important;\n}\n\n.pl-62 {\n padding-left: 62px !important;\n}\n\n.pr-62 {\n padding-right: 62px !important;\n}\n\n.mb-62 {\n margin-bottom: 62px !important;\n}\n\n.mv-62 {\n margin: 62px 0 !important;\n}\n\n.mh-62 {\n margin: 0 62px !important;\n}\n\n.pv-62 {\n padding: 62px 0 !important;\n}\n\n.ph-62 {\n padding: 0 62px !important;\n}\n\n.maxw-62 {\n max-width: 62% !important;\n}\n\n.minw-62 {\n min-width: 62% !important;\n}\n\n.gap-62 {\n gap: 6.2rem !important;\n}\n\n.fs-63 {\n font-size: 63rem !important;\n}\n\n.fw-63 {\n font-weight: 6300 !important;\n}\n\n.w-63 {\n width: 63% !important;\n}\n\n.mt-63 {\n margin-top: 63px !important;\n}\n\n.pt-63 {\n padding-top: 63px !important;\n}\n\n.pb-63 {\n padding-bottom: 63px !important;\n}\n\n.pl-63 {\n padding-left: 63px !important;\n}\n\n.pr-63 {\n padding-right: 63px !important;\n}\n\n.mb-63 {\n margin-bottom: 63px !important;\n}\n\n.mv-63 {\n margin: 63px 0 !important;\n}\n\n.mh-63 {\n margin: 0 63px !important;\n}\n\n.pv-63 {\n padding: 63px 0 !important;\n}\n\n.ph-63 {\n padding: 0 63px !important;\n}\n\n.maxw-63 {\n max-width: 63% !important;\n}\n\n.minw-63 {\n min-width: 63% !important;\n}\n\n.gap-63 {\n gap: 6.3rem !important;\n}\n\n.fs-64 {\n font-size: 64rem !important;\n}\n\n.fw-64 {\n font-weight: 6400 !important;\n}\n\n.w-64 {\n width: 64% !important;\n}\n\n.mt-64 {\n margin-top: 64px !important;\n}\n\n.pt-64 {\n padding-top: 64px !important;\n}\n\n.pb-64 {\n padding-bottom: 64px !important;\n}\n\n.pl-64 {\n padding-left: 64px !important;\n}\n\n.pr-64 {\n padding-right: 64px !important;\n}\n\n.mb-64 {\n margin-bottom: 64px !important;\n}\n\n.mv-64 {\n margin: 64px 0 !important;\n}\n\n.mh-64 {\n margin: 0 64px !important;\n}\n\n.pv-64 {\n padding: 64px 0 !important;\n}\n\n.ph-64 {\n padding: 0 64px !important;\n}\n\n.maxw-64 {\n max-width: 64% !important;\n}\n\n.minw-64 {\n min-width: 64% !important;\n}\n\n.gap-64 {\n gap: 6.4rem !important;\n}\n\n.fs-65 {\n font-size: 65rem !important;\n}\n\n.fw-65 {\n font-weight: 6500 !important;\n}\n\n.w-65 {\n width: 65% !important;\n}\n\n.mt-65 {\n margin-top: 65px !important;\n}\n\n.pt-65 {\n padding-top: 65px !important;\n}\n\n.pb-65 {\n padding-bottom: 65px !important;\n}\n\n.pl-65 {\n padding-left: 65px !important;\n}\n\n.pr-65 {\n padding-right: 65px !important;\n}\n\n.mb-65 {\n margin-bottom: 65px !important;\n}\n\n.mv-65 {\n margin: 65px 0 !important;\n}\n\n.mh-65 {\n margin: 0 65px !important;\n}\n\n.pv-65 {\n padding: 65px 0 !important;\n}\n\n.ph-65 {\n padding: 0 65px !important;\n}\n\n.maxw-65 {\n max-width: 65% !important;\n}\n\n.minw-65 {\n min-width: 65% !important;\n}\n\n.gap-65 {\n gap: 6.5rem !important;\n}\n\n.fs-66 {\n font-size: 66rem !important;\n}\n\n.fw-66 {\n font-weight: 6600 !important;\n}\n\n.w-66 {\n width: 66% !important;\n}\n\n.mt-66 {\n margin-top: 66px !important;\n}\n\n.pt-66 {\n padding-top: 66px !important;\n}\n\n.pb-66 {\n padding-bottom: 66px !important;\n}\n\n.pl-66 {\n padding-left: 66px !important;\n}\n\n.pr-66 {\n padding-right: 66px !important;\n}\n\n.mb-66 {\n margin-bottom: 66px !important;\n}\n\n.mv-66 {\n margin: 66px 0 !important;\n}\n\n.mh-66 {\n margin: 0 66px !important;\n}\n\n.pv-66 {\n padding: 66px 0 !important;\n}\n\n.ph-66 {\n padding: 0 66px !important;\n}\n\n.maxw-66 {\n max-width: 66% !important;\n}\n\n.minw-66 {\n min-width: 66% !important;\n}\n\n.gap-66 {\n gap: 6.6rem !important;\n}\n\n.fs-67 {\n font-size: 67rem !important;\n}\n\n.fw-67 {\n font-weight: 6700 !important;\n}\n\n.w-67 {\n width: 67% !important;\n}\n\n.mt-67 {\n margin-top: 67px !important;\n}\n\n.pt-67 {\n padding-top: 67px !important;\n}\n\n.pb-67 {\n padding-bottom: 67px !important;\n}\n\n.pl-67 {\n padding-left: 67px !important;\n}\n\n.pr-67 {\n padding-right: 67px !important;\n}\n\n.mb-67 {\n margin-bottom: 67px !important;\n}\n\n.mv-67 {\n margin: 67px 0 !important;\n}\n\n.mh-67 {\n margin: 0 67px !important;\n}\n\n.pv-67 {\n padding: 67px 0 !important;\n}\n\n.ph-67 {\n padding: 0 67px !important;\n}\n\n.maxw-67 {\n max-width: 67% !important;\n}\n\n.minw-67 {\n min-width: 67% !important;\n}\n\n.gap-67 {\n gap: 6.7rem !important;\n}\n\n.fs-68 {\n font-size: 68rem !important;\n}\n\n.fw-68 {\n font-weight: 6800 !important;\n}\n\n.w-68 {\n width: 68% !important;\n}\n\n.mt-68 {\n margin-top: 68px !important;\n}\n\n.pt-68 {\n padding-top: 68px !important;\n}\n\n.pb-68 {\n padding-bottom: 68px !important;\n}\n\n.pl-68 {\n padding-left: 68px !important;\n}\n\n.pr-68 {\n padding-right: 68px !important;\n}\n\n.mb-68 {\n margin-bottom: 68px !important;\n}\n\n.mv-68 {\n margin: 68px 0 !important;\n}\n\n.mh-68 {\n margin: 0 68px !important;\n}\n\n.pv-68 {\n padding: 68px 0 !important;\n}\n\n.ph-68 {\n padding: 0 68px !important;\n}\n\n.maxw-68 {\n max-width: 68% !important;\n}\n\n.minw-68 {\n min-width: 68% !important;\n}\n\n.gap-68 {\n gap: 6.8rem !important;\n}\n\n.fs-69 {\n font-size: 69rem !important;\n}\n\n.fw-69 {\n font-weight: 6900 !important;\n}\n\n.w-69 {\n width: 69% !important;\n}\n\n.mt-69 {\n margin-top: 69px !important;\n}\n\n.pt-69 {\n padding-top: 69px !important;\n}\n\n.pb-69 {\n padding-bottom: 69px !important;\n}\n\n.pl-69 {\n padding-left: 69px !important;\n}\n\n.pr-69 {\n padding-right: 69px !important;\n}\n\n.mb-69 {\n margin-bottom: 69px !important;\n}\n\n.mv-69 {\n margin: 69px 0 !important;\n}\n\n.mh-69 {\n margin: 0 69px !important;\n}\n\n.pv-69 {\n padding: 69px 0 !important;\n}\n\n.ph-69 {\n padding: 0 69px !important;\n}\n\n.maxw-69 {\n max-width: 69% !important;\n}\n\n.minw-69 {\n min-width: 69% !important;\n}\n\n.gap-69 {\n gap: 6.9rem !important;\n}\n\n.fs-70 {\n font-size: 70rem !important;\n}\n\n.fw-70 {\n font-weight: 7000 !important;\n}\n\n.w-70 {\n width: 70% !important;\n}\n\n.mt-70 {\n margin-top: 70px !important;\n}\n\n.pt-70 {\n padding-top: 70px !important;\n}\n\n.pb-70 {\n padding-bottom: 70px !important;\n}\n\n.pl-70 {\n padding-left: 70px !important;\n}\n\n.pr-70 {\n padding-right: 70px !important;\n}\n\n.mb-70 {\n margin-bottom: 70px !important;\n}\n\n.mv-70 {\n margin: 70px 0 !important;\n}\n\n.mh-70 {\n margin: 0 70px !important;\n}\n\n.pv-70 {\n padding: 70px 0 !important;\n}\n\n.ph-70 {\n padding: 0 70px !important;\n}\n\n.maxw-70 {\n max-width: 70% !important;\n}\n\n.minw-70 {\n min-width: 70% !important;\n}\n\n.gap-70 {\n gap: 7rem !important;\n}\n\n.fs-71 {\n font-size: 71rem !important;\n}\n\n.fw-71 {\n font-weight: 7100 !important;\n}\n\n.w-71 {\n width: 71% !important;\n}\n\n.mt-71 {\n margin-top: 71px !important;\n}\n\n.pt-71 {\n padding-top: 71px !important;\n}\n\n.pb-71 {\n padding-bottom: 71px !important;\n}\n\n.pl-71 {\n padding-left: 71px !important;\n}\n\n.pr-71 {\n padding-right: 71px !important;\n}\n\n.mb-71 {\n margin-bottom: 71px !important;\n}\n\n.mv-71 {\n margin: 71px 0 !important;\n}\n\n.mh-71 {\n margin: 0 71px !important;\n}\n\n.pv-71 {\n padding: 71px 0 !important;\n}\n\n.ph-71 {\n padding: 0 71px !important;\n}\n\n.maxw-71 {\n max-width: 71% !important;\n}\n\n.minw-71 {\n min-width: 71% !important;\n}\n\n.gap-71 {\n gap: 7.1rem !important;\n}\n\n.fs-72 {\n font-size: 72rem !important;\n}\n\n.fw-72 {\n font-weight: 7200 !important;\n}\n\n.w-72 {\n width: 72% !important;\n}\n\n.mt-72 {\n margin-top: 72px !important;\n}\n\n.pt-72 {\n padding-top: 72px !important;\n}\n\n.pb-72 {\n padding-bottom: 72px !important;\n}\n\n.pl-72 {\n padding-left: 72px !important;\n}\n\n.pr-72 {\n padding-right: 72px !important;\n}\n\n.mb-72 {\n margin-bottom: 72px !important;\n}\n\n.mv-72 {\n margin: 72px 0 !important;\n}\n\n.mh-72 {\n margin: 0 72px !important;\n}\n\n.pv-72 {\n padding: 72px 0 !important;\n}\n\n.ph-72 {\n padding: 0 72px !important;\n}\n\n.maxw-72 {\n max-width: 72% !important;\n}\n\n.minw-72 {\n min-width: 72% !important;\n}\n\n.gap-72 {\n gap: 7.2rem !important;\n}\n\n.fs-73 {\n font-size: 73rem !important;\n}\n\n.fw-73 {\n font-weight: 7300 !important;\n}\n\n.w-73 {\n width: 73% !important;\n}\n\n.mt-73 {\n margin-top: 73px !important;\n}\n\n.pt-73 {\n padding-top: 73px !important;\n}\n\n.pb-73 {\n padding-bottom: 73px !important;\n}\n\n.pl-73 {\n padding-left: 73px !important;\n}\n\n.pr-73 {\n padding-right: 73px !important;\n}\n\n.mb-73 {\n margin-bottom: 73px !important;\n}\n\n.mv-73 {\n margin: 73px 0 !important;\n}\n\n.mh-73 {\n margin: 0 73px !important;\n}\n\n.pv-73 {\n padding: 73px 0 !important;\n}\n\n.ph-73 {\n padding: 0 73px !important;\n}\n\n.maxw-73 {\n max-width: 73% !important;\n}\n\n.minw-73 {\n min-width: 73% !important;\n}\n\n.gap-73 {\n gap: 7.3rem !important;\n}\n\n.fs-74 {\n font-size: 74rem !important;\n}\n\n.fw-74 {\n font-weight: 7400 !important;\n}\n\n.w-74 {\n width: 74% !important;\n}\n\n.mt-74 {\n margin-top: 74px !important;\n}\n\n.pt-74 {\n padding-top: 74px !important;\n}\n\n.pb-74 {\n padding-bottom: 74px !important;\n}\n\n.pl-74 {\n padding-left: 74px !important;\n}\n\n.pr-74 {\n padding-right: 74px !important;\n}\n\n.mb-74 {\n margin-bottom: 74px !important;\n}\n\n.mv-74 {\n margin: 74px 0 !important;\n}\n\n.mh-74 {\n margin: 0 74px !important;\n}\n\n.pv-74 {\n padding: 74px 0 !important;\n}\n\n.ph-74 {\n padding: 0 74px !important;\n}\n\n.maxw-74 {\n max-width: 74% !important;\n}\n\n.minw-74 {\n min-width: 74% !important;\n}\n\n.gap-74 {\n gap: 7.4rem !important;\n}\n\n.fs-75 {\n font-size: 75rem !important;\n}\n\n.fw-75 {\n font-weight: 7500 !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.mt-75 {\n margin-top: 75px !important;\n}\n\n.pt-75 {\n padding-top: 75px !important;\n}\n\n.pb-75 {\n padding-bottom: 75px !important;\n}\n\n.pl-75 {\n padding-left: 75px !important;\n}\n\n.pr-75 {\n padding-right: 75px !important;\n}\n\n.mb-75 {\n margin-bottom: 75px !important;\n}\n\n.mv-75 {\n margin: 75px 0 !important;\n}\n\n.mh-75 {\n margin: 0 75px !important;\n}\n\n.pv-75 {\n padding: 75px 0 !important;\n}\n\n.ph-75 {\n padding: 0 75px !important;\n}\n\n.maxw-75 {\n max-width: 75% !important;\n}\n\n.minw-75 {\n min-width: 75% !important;\n}\n\n.gap-75 {\n gap: 7.5rem !important;\n}\n\n.fs-76 {\n font-size: 76rem !important;\n}\n\n.fw-76 {\n font-weight: 7600 !important;\n}\n\n.w-76 {\n width: 76% !important;\n}\n\n.mt-76 {\n margin-top: 76px !important;\n}\n\n.pt-76 {\n padding-top: 76px !important;\n}\n\n.pb-76 {\n padding-bottom: 76px !important;\n}\n\n.pl-76 {\n padding-left: 76px !important;\n}\n\n.pr-76 {\n padding-right: 76px !important;\n}\n\n.mb-76 {\n margin-bottom: 76px !important;\n}\n\n.mv-76 {\n margin: 76px 0 !important;\n}\n\n.mh-76 {\n margin: 0 76px !important;\n}\n\n.pv-76 {\n padding: 76px 0 !important;\n}\n\n.ph-76 {\n padding: 0 76px !important;\n}\n\n.maxw-76 {\n max-width: 76% !important;\n}\n\n.minw-76 {\n min-width: 76% !important;\n}\n\n.gap-76 {\n gap: 7.6rem !important;\n}\n\n.fs-77 {\n font-size: 77rem !important;\n}\n\n.fw-77 {\n font-weight: 7700 !important;\n}\n\n.w-77 {\n width: 77% !important;\n}\n\n.mt-77 {\n margin-top: 77px !important;\n}\n\n.pt-77 {\n padding-top: 77px !important;\n}\n\n.pb-77 {\n padding-bottom: 77px !important;\n}\n\n.pl-77 {\n padding-left: 77px !important;\n}\n\n.pr-77 {\n padding-right: 77px !important;\n}\n\n.mb-77 {\n margin-bottom: 77px !important;\n}\n\n.mv-77 {\n margin: 77px 0 !important;\n}\n\n.mh-77 {\n margin: 0 77px !important;\n}\n\n.pv-77 {\n padding: 77px 0 !important;\n}\n\n.ph-77 {\n padding: 0 77px !important;\n}\n\n.maxw-77 {\n max-width: 77% !important;\n}\n\n.minw-77 {\n min-width: 77% !important;\n}\n\n.gap-77 {\n gap: 7.7rem !important;\n}\n\n.fs-78 {\n font-size: 78rem !important;\n}\n\n.fw-78 {\n font-weight: 7800 !important;\n}\n\n.w-78 {\n width: 78% !important;\n}\n\n.mt-78 {\n margin-top: 78px !important;\n}\n\n.pt-78 {\n padding-top: 78px !important;\n}\n\n.pb-78 {\n padding-bottom: 78px !important;\n}\n\n.pl-78 {\n padding-left: 78px !important;\n}\n\n.pr-78 {\n padding-right: 78px !important;\n}\n\n.mb-78 {\n margin-bottom: 78px !important;\n}\n\n.mv-78 {\n margin: 78px 0 !important;\n}\n\n.mh-78 {\n margin: 0 78px !important;\n}\n\n.pv-78 {\n padding: 78px 0 !important;\n}\n\n.ph-78 {\n padding: 0 78px !important;\n}\n\n.maxw-78 {\n max-width: 78% !important;\n}\n\n.minw-78 {\n min-width: 78% !important;\n}\n\n.gap-78 {\n gap: 7.8rem !important;\n}\n\n.fs-79 {\n font-size: 79rem !important;\n}\n\n.fw-79 {\n font-weight: 7900 !important;\n}\n\n.w-79 {\n width: 79% !important;\n}\n\n.mt-79 {\n margin-top: 79px !important;\n}\n\n.pt-79 {\n padding-top: 79px !important;\n}\n\n.pb-79 {\n padding-bottom: 79px !important;\n}\n\n.pl-79 {\n padding-left: 79px !important;\n}\n\n.pr-79 {\n padding-right: 79px !important;\n}\n\n.mb-79 {\n margin-bottom: 79px !important;\n}\n\n.mv-79 {\n margin: 79px 0 !important;\n}\n\n.mh-79 {\n margin: 0 79px !important;\n}\n\n.pv-79 {\n padding: 79px 0 !important;\n}\n\n.ph-79 {\n padding: 0 79px !important;\n}\n\n.maxw-79 {\n max-width: 79% !important;\n}\n\n.minw-79 {\n min-width: 79% !important;\n}\n\n.gap-79 {\n gap: 7.9rem !important;\n}\n\n.fs-80 {\n font-size: 80rem !important;\n}\n\n.fw-80 {\n font-weight: 8000 !important;\n}\n\n.w-80 {\n width: 80% !important;\n}\n\n.mt-80 {\n margin-top: 80px !important;\n}\n\n.pt-80 {\n padding-top: 80px !important;\n}\n\n.pb-80 {\n padding-bottom: 80px !important;\n}\n\n.pl-80 {\n padding-left: 80px !important;\n}\n\n.pr-80 {\n padding-right: 80px !important;\n}\n\n.mb-80 {\n margin-bottom: 80px !important;\n}\n\n.mv-80 {\n margin: 80px 0 !important;\n}\n\n.mh-80 {\n margin: 0 80px !important;\n}\n\n.pv-80 {\n padding: 80px 0 !important;\n}\n\n.ph-80 {\n padding: 0 80px !important;\n}\n\n.maxw-80 {\n max-width: 80% !important;\n}\n\n.minw-80 {\n min-width: 80% !important;\n}\n\n.gap-80 {\n gap: 8rem !important;\n}\n\n.fs-81 {\n font-size: 81rem !important;\n}\n\n.fw-81 {\n font-weight: 8100 !important;\n}\n\n.w-81 {\n width: 81% !important;\n}\n\n.mt-81 {\n margin-top: 81px !important;\n}\n\n.pt-81 {\n padding-top: 81px !important;\n}\n\n.pb-81 {\n padding-bottom: 81px !important;\n}\n\n.pl-81 {\n padding-left: 81px !important;\n}\n\n.pr-81 {\n padding-right: 81px !important;\n}\n\n.mb-81 {\n margin-bottom: 81px !important;\n}\n\n.mv-81 {\n margin: 81px 0 !important;\n}\n\n.mh-81 {\n margin: 0 81px !important;\n}\n\n.pv-81 {\n padding: 81px 0 !important;\n}\n\n.ph-81 {\n padding: 0 81px !important;\n}\n\n.maxw-81 {\n max-width: 81% !important;\n}\n\n.minw-81 {\n min-width: 81% !important;\n}\n\n.gap-81 {\n gap: 8.1rem !important;\n}\n\n.fs-82 {\n font-size: 82rem !important;\n}\n\n.fw-82 {\n font-weight: 8200 !important;\n}\n\n.w-82 {\n width: 82% !important;\n}\n\n.mt-82 {\n margin-top: 82px !important;\n}\n\n.pt-82 {\n padding-top: 82px !important;\n}\n\n.pb-82 {\n padding-bottom: 82px !important;\n}\n\n.pl-82 {\n padding-left: 82px !important;\n}\n\n.pr-82 {\n padding-right: 82px !important;\n}\n\n.mb-82 {\n margin-bottom: 82px !important;\n}\n\n.mv-82 {\n margin: 82px 0 !important;\n}\n\n.mh-82 {\n margin: 0 82px !important;\n}\n\n.pv-82 {\n padding: 82px 0 !important;\n}\n\n.ph-82 {\n padding: 0 82px !important;\n}\n\n.maxw-82 {\n max-width: 82% !important;\n}\n\n.minw-82 {\n min-width: 82% !important;\n}\n\n.gap-82 {\n gap: 8.2rem !important;\n}\n\n.fs-83 {\n font-size: 83rem !important;\n}\n\n.fw-83 {\n font-weight: 8300 !important;\n}\n\n.w-83 {\n width: 83% !important;\n}\n\n.mt-83 {\n margin-top: 83px !important;\n}\n\n.pt-83 {\n padding-top: 83px !important;\n}\n\n.pb-83 {\n padding-bottom: 83px !important;\n}\n\n.pl-83 {\n padding-left: 83px !important;\n}\n\n.pr-83 {\n padding-right: 83px !important;\n}\n\n.mb-83 {\n margin-bottom: 83px !important;\n}\n\n.mv-83 {\n margin: 83px 0 !important;\n}\n\n.mh-83 {\n margin: 0 83px !important;\n}\n\n.pv-83 {\n padding: 83px 0 !important;\n}\n\n.ph-83 {\n padding: 0 83px !important;\n}\n\n.maxw-83 {\n max-width: 83% !important;\n}\n\n.minw-83 {\n min-width: 83% !important;\n}\n\n.gap-83 {\n gap: 8.3rem !important;\n}\n\n.fs-84 {\n font-size: 84rem !important;\n}\n\n.fw-84 {\n font-weight: 8400 !important;\n}\n\n.w-84 {\n width: 84% !important;\n}\n\n.mt-84 {\n margin-top: 84px !important;\n}\n\n.pt-84 {\n padding-top: 84px !important;\n}\n\n.pb-84 {\n padding-bottom: 84px !important;\n}\n\n.pl-84 {\n padding-left: 84px !important;\n}\n\n.pr-84 {\n padding-right: 84px !important;\n}\n\n.mb-84 {\n margin-bottom: 84px !important;\n}\n\n.mv-84 {\n margin: 84px 0 !important;\n}\n\n.mh-84 {\n margin: 0 84px !important;\n}\n\n.pv-84 {\n padding: 84px 0 !important;\n}\n\n.ph-84 {\n padding: 0 84px !important;\n}\n\n.maxw-84 {\n max-width: 84% !important;\n}\n\n.minw-84 {\n min-width: 84% !important;\n}\n\n.gap-84 {\n gap: 8.4rem !important;\n}\n\n.fs-85 {\n font-size: 85rem !important;\n}\n\n.fw-85 {\n font-weight: 8500 !important;\n}\n\n.w-85 {\n width: 85% !important;\n}\n\n.mt-85 {\n margin-top: 85px !important;\n}\n\n.pt-85 {\n padding-top: 85px !important;\n}\n\n.pb-85 {\n padding-bottom: 85px !important;\n}\n\n.pl-85 {\n padding-left: 85px !important;\n}\n\n.pr-85 {\n padding-right: 85px !important;\n}\n\n.mb-85 {\n margin-bottom: 85px !important;\n}\n\n.mv-85 {\n margin: 85px 0 !important;\n}\n\n.mh-85 {\n margin: 0 85px !important;\n}\n\n.pv-85 {\n padding: 85px 0 !important;\n}\n\n.ph-85 {\n padding: 0 85px !important;\n}\n\n.maxw-85 {\n max-width: 85% !important;\n}\n\n.minw-85 {\n min-width: 85% !important;\n}\n\n.gap-85 {\n gap: 8.5rem !important;\n}\n\n.fs-86 {\n font-size: 86rem !important;\n}\n\n.fw-86 {\n font-weight: 8600 !important;\n}\n\n.w-86 {\n width: 86% !important;\n}\n\n.mt-86 {\n margin-top: 86px !important;\n}\n\n.pt-86 {\n padding-top: 86px !important;\n}\n\n.pb-86 {\n padding-bottom: 86px !important;\n}\n\n.pl-86 {\n padding-left: 86px !important;\n}\n\n.pr-86 {\n padding-right: 86px !important;\n}\n\n.mb-86 {\n margin-bottom: 86px !important;\n}\n\n.mv-86 {\n margin: 86px 0 !important;\n}\n\n.mh-86 {\n margin: 0 86px !important;\n}\n\n.pv-86 {\n padding: 86px 0 !important;\n}\n\n.ph-86 {\n padding: 0 86px !important;\n}\n\n.maxw-86 {\n max-width: 86% !important;\n}\n\n.minw-86 {\n min-width: 86% !important;\n}\n\n.gap-86 {\n gap: 8.6rem !important;\n}\n\n.fs-87 {\n font-size: 87rem !important;\n}\n\n.fw-87 {\n font-weight: 8700 !important;\n}\n\n.w-87 {\n width: 87% !important;\n}\n\n.mt-87 {\n margin-top: 87px !important;\n}\n\n.pt-87 {\n padding-top: 87px !important;\n}\n\n.pb-87 {\n padding-bottom: 87px !important;\n}\n\n.pl-87 {\n padding-left: 87px !important;\n}\n\n.pr-87 {\n padding-right: 87px !important;\n}\n\n.mb-87 {\n margin-bottom: 87px !important;\n}\n\n.mv-87 {\n margin: 87px 0 !important;\n}\n\n.mh-87 {\n margin: 0 87px !important;\n}\n\n.pv-87 {\n padding: 87px 0 !important;\n}\n\n.ph-87 {\n padding: 0 87px !important;\n}\n\n.maxw-87 {\n max-width: 87% !important;\n}\n\n.minw-87 {\n min-width: 87% !important;\n}\n\n.gap-87 {\n gap: 8.7rem !important;\n}\n\n.fs-88 {\n font-size: 88rem !important;\n}\n\n.fw-88 {\n font-weight: 8800 !important;\n}\n\n.w-88 {\n width: 88% !important;\n}\n\n.mt-88 {\n margin-top: 88px !important;\n}\n\n.pt-88 {\n padding-top: 88px !important;\n}\n\n.pb-88 {\n padding-bottom: 88px !important;\n}\n\n.pl-88 {\n padding-left: 88px !important;\n}\n\n.pr-88 {\n padding-right: 88px !important;\n}\n\n.mb-88 {\n margin-bottom: 88px !important;\n}\n\n.mv-88 {\n margin: 88px 0 !important;\n}\n\n.mh-88 {\n margin: 0 88px !important;\n}\n\n.pv-88 {\n padding: 88px 0 !important;\n}\n\n.ph-88 {\n padding: 0 88px !important;\n}\n\n.maxw-88 {\n max-width: 88% !important;\n}\n\n.minw-88 {\n min-width: 88% !important;\n}\n\n.gap-88 {\n gap: 8.8rem !important;\n}\n\n.fs-89 {\n font-size: 89rem !important;\n}\n\n.fw-89 {\n font-weight: 8900 !important;\n}\n\n.w-89 {\n width: 89% !important;\n}\n\n.mt-89 {\n margin-top: 89px !important;\n}\n\n.pt-89 {\n padding-top: 89px !important;\n}\n\n.pb-89 {\n padding-bottom: 89px !important;\n}\n\n.pl-89 {\n padding-left: 89px !important;\n}\n\n.pr-89 {\n padding-right: 89px !important;\n}\n\n.mb-89 {\n margin-bottom: 89px !important;\n}\n\n.mv-89 {\n margin: 89px 0 !important;\n}\n\n.mh-89 {\n margin: 0 89px !important;\n}\n\n.pv-89 {\n padding: 89px 0 !important;\n}\n\n.ph-89 {\n padding: 0 89px !important;\n}\n\n.maxw-89 {\n max-width: 89% !important;\n}\n\n.minw-89 {\n min-width: 89% !important;\n}\n\n.gap-89 {\n gap: 8.9rem !important;\n}\n\n.fs-90 {\n font-size: 90rem !important;\n}\n\n.fw-90 {\n font-weight: 9000 !important;\n}\n\n.w-90 {\n width: 90% !important;\n}\n\n.mt-90 {\n margin-top: 90px !important;\n}\n\n.pt-90 {\n padding-top: 90px !important;\n}\n\n.pb-90 {\n padding-bottom: 90px !important;\n}\n\n.pl-90 {\n padding-left: 90px !important;\n}\n\n.pr-90 {\n padding-right: 90px !important;\n}\n\n.mb-90 {\n margin-bottom: 90px !important;\n}\n\n.mv-90 {\n margin: 90px 0 !important;\n}\n\n.mh-90 {\n margin: 0 90px !important;\n}\n\n.pv-90 {\n padding: 90px 0 !important;\n}\n\n.ph-90 {\n padding: 0 90px !important;\n}\n\n.maxw-90 {\n max-width: 90% !important;\n}\n\n.minw-90 {\n min-width: 90% !important;\n}\n\n.gap-90 {\n gap: 9rem !important;\n}\n\n.fs-91 {\n font-size: 91rem !important;\n}\n\n.fw-91 {\n font-weight: 9100 !important;\n}\n\n.w-91 {\n width: 91% !important;\n}\n\n.mt-91 {\n margin-top: 91px !important;\n}\n\n.pt-91 {\n padding-top: 91px !important;\n}\n\n.pb-91 {\n padding-bottom: 91px !important;\n}\n\n.pl-91 {\n padding-left: 91px !important;\n}\n\n.pr-91 {\n padding-right: 91px !important;\n}\n\n.mb-91 {\n margin-bottom: 91px !important;\n}\n\n.mv-91 {\n margin: 91px 0 !important;\n}\n\n.mh-91 {\n margin: 0 91px !important;\n}\n\n.pv-91 {\n padding: 91px 0 !important;\n}\n\n.ph-91 {\n padding: 0 91px !important;\n}\n\n.maxw-91 {\n max-width: 91% !important;\n}\n\n.minw-91 {\n min-width: 91% !important;\n}\n\n.gap-91 {\n gap: 9.1rem !important;\n}\n\n.fs-92 {\n font-size: 92rem !important;\n}\n\n.fw-92 {\n font-weight: 9200 !important;\n}\n\n.w-92 {\n width: 92% !important;\n}\n\n.mt-92 {\n margin-top: 92px !important;\n}\n\n.pt-92 {\n padding-top: 92px !important;\n}\n\n.pb-92 {\n padding-bottom: 92px !important;\n}\n\n.pl-92 {\n padding-left: 92px !important;\n}\n\n.pr-92 {\n padding-right: 92px !important;\n}\n\n.mb-92 {\n margin-bottom: 92px !important;\n}\n\n.mv-92 {\n margin: 92px 0 !important;\n}\n\n.mh-92 {\n margin: 0 92px !important;\n}\n\n.pv-92 {\n padding: 92px 0 !important;\n}\n\n.ph-92 {\n padding: 0 92px !important;\n}\n\n.maxw-92 {\n max-width: 92% !important;\n}\n\n.minw-92 {\n min-width: 92% !important;\n}\n\n.gap-92 {\n gap: 9.2rem !important;\n}\n\n.fs-93 {\n font-size: 93rem !important;\n}\n\n.fw-93 {\n font-weight: 9300 !important;\n}\n\n.w-93 {\n width: 93% !important;\n}\n\n.mt-93 {\n margin-top: 93px !important;\n}\n\n.pt-93 {\n padding-top: 93px !important;\n}\n\n.pb-93 {\n padding-bottom: 93px !important;\n}\n\n.pl-93 {\n padding-left: 93px !important;\n}\n\n.pr-93 {\n padding-right: 93px !important;\n}\n\n.mb-93 {\n margin-bottom: 93px !important;\n}\n\n.mv-93 {\n margin: 93px 0 !important;\n}\n\n.mh-93 {\n margin: 0 93px !important;\n}\n\n.pv-93 {\n padding: 93px 0 !important;\n}\n\n.ph-93 {\n padding: 0 93px !important;\n}\n\n.maxw-93 {\n max-width: 93% !important;\n}\n\n.minw-93 {\n min-width: 93% !important;\n}\n\n.gap-93 {\n gap: 9.3rem !important;\n}\n\n.fs-94 {\n font-size: 94rem !important;\n}\n\n.fw-94 {\n font-weight: 9400 !important;\n}\n\n.w-94 {\n width: 94% !important;\n}\n\n.mt-94 {\n margin-top: 94px !important;\n}\n\n.pt-94 {\n padding-top: 94px !important;\n}\n\n.pb-94 {\n padding-bottom: 94px !important;\n}\n\n.pl-94 {\n padding-left: 94px !important;\n}\n\n.pr-94 {\n padding-right: 94px !important;\n}\n\n.mb-94 {\n margin-bottom: 94px !important;\n}\n\n.mv-94 {\n margin: 94px 0 !important;\n}\n\n.mh-94 {\n margin: 0 94px !important;\n}\n\n.pv-94 {\n padding: 94px 0 !important;\n}\n\n.ph-94 {\n padding: 0 94px !important;\n}\n\n.maxw-94 {\n max-width: 94% !important;\n}\n\n.minw-94 {\n min-width: 94% !important;\n}\n\n.gap-94 {\n gap: 9.4rem !important;\n}\n\n.fs-95 {\n font-size: 95rem !important;\n}\n\n.fw-95 {\n font-weight: 9500 !important;\n}\n\n.w-95 {\n width: 95% !important;\n}\n\n.mt-95 {\n margin-top: 95px !important;\n}\n\n.pt-95 {\n padding-top: 95px !important;\n}\n\n.pb-95 {\n padding-bottom: 95px !important;\n}\n\n.pl-95 {\n padding-left: 95px !important;\n}\n\n.pr-95 {\n padding-right: 95px !important;\n}\n\n.mb-95 {\n margin-bottom: 95px !important;\n}\n\n.mv-95 {\n margin: 95px 0 !important;\n}\n\n.mh-95 {\n margin: 0 95px !important;\n}\n\n.pv-95 {\n padding: 95px 0 !important;\n}\n\n.ph-95 {\n padding: 0 95px !important;\n}\n\n.maxw-95 {\n max-width: 95% !important;\n}\n\n.minw-95 {\n min-width: 95% !important;\n}\n\n.gap-95 {\n gap: 9.5rem !important;\n}\n\n.fs-96 {\n font-size: 96rem !important;\n}\n\n.fw-96 {\n font-weight: 9600 !important;\n}\n\n.w-96 {\n width: 96% !important;\n}\n\n.mt-96 {\n margin-top: 96px !important;\n}\n\n.pt-96 {\n padding-top: 96px !important;\n}\n\n.pb-96 {\n padding-bottom: 96px !important;\n}\n\n.pl-96 {\n padding-left: 96px !important;\n}\n\n.pr-96 {\n padding-right: 96px !important;\n}\n\n.mb-96 {\n margin-bottom: 96px !important;\n}\n\n.mv-96 {\n margin: 96px 0 !important;\n}\n\n.mh-96 {\n margin: 0 96px !important;\n}\n\n.pv-96 {\n padding: 96px 0 !important;\n}\n\n.ph-96 {\n padding: 0 96px !important;\n}\n\n.maxw-96 {\n max-width: 96% !important;\n}\n\n.minw-96 {\n min-width: 96% !important;\n}\n\n.gap-96 {\n gap: 9.6rem !important;\n}\n\n.fs-97 {\n font-size: 97rem !important;\n}\n\n.fw-97 {\n font-weight: 9700 !important;\n}\n\n.w-97 {\n width: 97% !important;\n}\n\n.mt-97 {\n margin-top: 97px !important;\n}\n\n.pt-97 {\n padding-top: 97px !important;\n}\n\n.pb-97 {\n padding-bottom: 97px !important;\n}\n\n.pl-97 {\n padding-left: 97px !important;\n}\n\n.pr-97 {\n padding-right: 97px !important;\n}\n\n.mb-97 {\n margin-bottom: 97px !important;\n}\n\n.mv-97 {\n margin: 97px 0 !important;\n}\n\n.mh-97 {\n margin: 0 97px !important;\n}\n\n.pv-97 {\n padding: 97px 0 !important;\n}\n\n.ph-97 {\n padding: 0 97px !important;\n}\n\n.maxw-97 {\n max-width: 97% !important;\n}\n\n.minw-97 {\n min-width: 97% !important;\n}\n\n.gap-97 {\n gap: 9.7rem !important;\n}\n\n.fs-98 {\n font-size: 98rem !important;\n}\n\n.fw-98 {\n font-weight: 9800 !important;\n}\n\n.w-98 {\n width: 98% !important;\n}\n\n.mt-98 {\n margin-top: 98px !important;\n}\n\n.pt-98 {\n padding-top: 98px !important;\n}\n\n.pb-98 {\n padding-bottom: 98px !important;\n}\n\n.pl-98 {\n padding-left: 98px !important;\n}\n\n.pr-98 {\n padding-right: 98px !important;\n}\n\n.mb-98 {\n margin-bottom: 98px !important;\n}\n\n.mv-98 {\n margin: 98px 0 !important;\n}\n\n.mh-98 {\n margin: 0 98px !important;\n}\n\n.pv-98 {\n padding: 98px 0 !important;\n}\n\n.ph-98 {\n padding: 0 98px !important;\n}\n\n.maxw-98 {\n max-width: 98% !important;\n}\n\n.minw-98 {\n min-width: 98% !important;\n}\n\n.gap-98 {\n gap: 9.8rem !important;\n}\n\n.fs-99 {\n font-size: 99rem !important;\n}\n\n.fw-99 {\n font-weight: 9900 !important;\n}\n\n.w-99 {\n width: 99% !important;\n}\n\n.mt-99 {\n margin-top: 99px !important;\n}\n\n.pt-99 {\n padding-top: 99px !important;\n}\n\n.pb-99 {\n padding-bottom: 99px !important;\n}\n\n.pl-99 {\n padding-left: 99px !important;\n}\n\n.pr-99 {\n padding-right: 99px !important;\n}\n\n.mb-99 {\n margin-bottom: 99px !important;\n}\n\n.mv-99 {\n margin: 99px 0 !important;\n}\n\n.mh-99 {\n margin: 0 99px !important;\n}\n\n.pv-99 {\n padding: 99px 0 !important;\n}\n\n.ph-99 {\n padding: 0 99px !important;\n}\n\n.maxw-99 {\n max-width: 99% !important;\n}\n\n.minw-99 {\n min-width: 99% !important;\n}\n\n.gap-99 {\n gap: 9.9rem !important;\n}\n\n.fs-100 {\n font-size: 100rem !important;\n}\n\n.fw-100 {\n font-weight: 10000 !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.mt-100 {\n margin-top: 100px !important;\n}\n\n.pt-100 {\n padding-top: 100px !important;\n}\n\n.pb-100 {\n padding-bottom: 100px !important;\n}\n\n.pl-100 {\n padding-left: 100px !important;\n}\n\n.pr-100 {\n padding-right: 100px !important;\n}\n\n.mb-100 {\n margin-bottom: 100px !important;\n}\n\n.mv-100 {\n margin: 100px 0 !important;\n}\n\n.mh-100 {\n margin: 0 100px !important;\n}\n\n.pv-100 {\n padding: 100px 0 !important;\n}\n\n.ph-100 {\n padding: 0 100px !important;\n}\n\n.maxw-100 {\n max-width: 100% !important;\n}\n\n.minw-100 {\n min-width: 100% !important;\n}\n\n.gap-100 {\n gap: 10rem !important;\n}\n\n.dark-bg {\n background-color: #07131e;\n}\n\n.green-bg {\n background-color: #08DE9E;\n}\n\n.white-color {\n color: #fff !important;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.page-wrapper {\n overflow: hidden;\n}\n\na {\n text-decoration: none;\n}\n\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.text-right {\n text-align: right;\n}\n\nbutton {\n border: none;\n font-family: "DM Sans" !important;\n background-color: #ffffff;\n color: #07131e;\n font-size: 1.2rem;\n font-weight: 500;\n padding: 0.25rem 1.5rem 0.25rem 1.5rem;\n border-radius: 100px;\n transition: all 0.3s ease-in-out 0s;\n}\nbutton span {\n color: #07131e;\n text-transform: uppercase;\n font-size: 1.5rem;\n font-family: "Abolition-Regular";\n}\nbutton:hover {\n background-color: #08DE9E;\n color: #07131e !important;\n}\nbutton:hover.green-bg {\n background-color: #000000 !important;\n color: #ffffff !important;\n text-transform: none !important;\n}\nbutton:hover.green-bg.sign-up {\n background-color: #ffffff !important;\n color: #07131e !important;\n border-radius: 12px;\n}\nbutton:hover.light-bg {\n background-color: #000000 !important;\n color: #ffffff !important;\n}\nbutton.medium-button {\n font-size: 1.2rem;\n font-weight: 500;\n min-width: 136px;\n padding: 0.25rem 1.5rem 0.25rem 1.5rem;\n}\nbutton.big-button {\n margin-right: 2rem;\n font-size: 1.9rem;\n padding: 0.2rem 4rem 0.2rem 4rem;\n}\nbutton.seeAll-button {\n position: relative;\n top: -3rem;\n float: right;\n}\nbutton.no-border {\n border: none !important;\n}\n\n.centered {\n position: relative;\n margin: 0px auto;\n}\n\n.justify-content-start {\n justify-content: start;\n}\n\n.justify-content-end {\n justify-content: end;\n}\n\n.justify-content-center {\n justify-content: center;\n}\n\n.justify-content-space {\n justify-content: space-between;\n}\n\n.flex-center-justified {\n display: flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n}\n\n.flex-start-justified {\n display: flex;\n width: 100%;\n justify-content: space-between;\n align-items: start;\n}\n\n.flex-end-justified {\n display: flex;\n width: 100%;\n justify-content: end;\n align-items: center;\n}\n\n.position-relative {\n position: relative;\n}\n\n.flex {\n display: flex;\n}\n\n.flex-0 {\n flex: 0;\n}\n\n.flex-1 {\n flex: 1;\n}\n\n.flex-auto {\n flex: 1 1 250px;\n}\n\n.flex-align-center {\n align-items: center;\n}\n\n.flex-column {\n flex-direction: column;\n}\n\n.flexx-row {\n flex-direction: row;\n}\n\n@media (max-width: 991px) {\n .mobile-centered {\n text-align: center !important;\n }\n .mobile-margin-auto {\n margin: auto;\n }\n .reverse-on-mobile {\n flex-direction: column-reverse !important;\n }\n .mobile-logo {\n display: block;\n }\n .desktop-logo {\n display: none;\n }\n}\n@media (min-width: 992px) {\n .mobile-logo {\n display: none;\n }\n .desktop-logo {\n display: block;\n }\n}\n.bg-green {\n background-color: #08DE9E;\n}\n\n.dark-color {\n color: #07131E !important;\n}\n\n.blue-bg {\n background-color: #123EE0;\n color: #fff !important;\n}\n.blue-bg:hover {\n background-color: #4D6EE8;\n color: #fff !important;\n}\n\n.bold {\n font-weight: 600;\n}\n\n#filterSearch::placeholder {\n color: #000;\n font-size: 18px;\n font-weight: 500;\n opacity: 1;\n}\n\nhtml, body {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.3) transparent;\n}\n\n::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n\n::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.3);\n border-radius: 3px;\n}\n\n::-webkit-scrollbar-track {\n background: transparent;\n}\n\n@media (max-width: 1280px) {\n span,\n p {\n font-size: 1rem !important;\n }\n .mobile-centered {\n margin: auto;\n }\n}';n(t);export{t as default};
|
|
2
|
+
//# sourceMappingURL=app.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import n from"../../../node_modules/style-inject/dist/style-inject.es.js";var U="/* latin-ext */\n@font-face {\n font-family: 'DM Sans';\n font-style: italic;\n font-weight: 400;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Fp2ywxg089UriCZa4ET-DNl0.woff2) format('woff2');\n unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n@font-face {\n font-family: 'DM Sans';\n font-style: italic;\n font-weight: 400;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Fp2ywxg089UriCZa4Hz-D.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* latin-ext */\n@font-face {\n font-family: 'DM Sans';\n font-style: italic;\n font-weight: 500;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Ap2ywxg089UriCZaw7ByWB3wTyCg.woff2) format('woff2');\n unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n@font-face {\n font-family: 'DM Sans';\n font-style: italic;\n font-weight: 500;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Ap2ywxg089UriCZaw7ByWCXwT.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* latin-ext */\n@font-face {\n font-family: 'DM Sans';\n font-style: italic;\n font-weight: 700;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Ap2ywxg089UriCZawpBqWB3wTyCg.woff2) format('woff2');\n unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n@font-face {\n font-family: 'DM Sans';\n font-style: italic;\n font-weight: 700;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Ap2ywxg089UriCZawpBqWCXwT.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* latin-ext */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 400;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Hp2ywxg089UriCZ2IHSeH.woff2) format('woff2');\n unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 400;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Hp2ywxg089UriCZOIHQ.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* latin-ext */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 500;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriAWCrCBamC2QX.woff2) format('woff2');\n unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 500;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriAWCrCBimCw.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* latin-ext */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 700;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriASitCBamC2QX.woff2) format('woff2');\n unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 700;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriASitCBimCw.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}";n(U);export{U as default};
|
|
2
|
+
//# sourceMappingURL=fonts.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fonts.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{__assign as e}from"../../node_modules/tslib/tslib.es6.js";import t,{createContext as o,useState as i,useContext as r}from"react";var n=o({}),a=function(o){var r=o.children,a=i({}),d=a[0],s=a[1],l=i({}),u=l[0],c=l[1],v=i(null),g=v[0],f=v[1],p={"Static IP":null,YouMesh:null,"YouMesh Pro":null,YouPhone:null},m={1:{name:"Speed",stepVisited:!0},2:{name:"Go live",stepVisited:!1},3:{name:"Add ons",stepVisited:!1},4:{name:"Payment",stepVisited:!1},5:{name:"Confirmation",stepVisited:!1}},S={"YouPhone Plus":!1,"YouPhone Pro":!1,"Battery Pack":!1,"Transfer landline number":!1},w=function(e){s(e),"undefined"!=typeof window&&localStorage.setItem("webchatData",JSON.stringify(e))},h=function(e){f(e),"undefined"!=typeof window&&window&&localStorage.setItem("registrationData",JSON.stringify(e)),null===e&&"undefined"!=typeof window&&window&&(localStorage.setItem("addonsSelected",JSON.stringify(p)),localStorage.setItem("toggleState",JSON.stringify(S)),localStorage.setItem("steps",JSON.stringify(m)))},y=function(){if(g)return g;if("undefined"!=typeof window&&window&&localStorage.getItem("registrationData")){var e=localStorage.getItem("registrationData");return e&&"undefined"!==e?JSON.parse(e):void 0}};return t.createElement(n.Provider,{value:{webchatData:d,appMessages:u,goSetWebchatData:w,goResetWebchatData:function(){w(null)},setAppMessages:c,goSetRegistrationData:h,goResetRegistrationData:function(){var t,o;h(e(e({},y()),{searchPremiseResults:void 0,personalData:void 0,currentProvider:void 0,checkoutStep:void 0,currentContractType:void 0,addressId:void 0,dateFilter:void 0,accountNumber:void 0,totalPrice:void 0,leadId:void 0,branchCode:void 0,registerStep:void 0,orderItems:null===(o=null===(t=y())||void 0===t?void 0:t.orderItems)||void 0===o?void 0:o.filter(function(e){return"BASE_PRODUCT"===e.properties.Type}),orderId:void 0,addonPrices:void 0,phoneNumber1:void 0,phoneNumber2:void 0,phoneNumber3:void 0,LOAAuthorized:void 0,portFromProvider:void 0,hasVoice:void 0,skipBooking:!1,recontractResponse:void 0,containsYouPhone:void 0,otsOrderId:void 0,otsStatus:void 0,earlierAvailability:void 0})),"undefined"!=typeof window&&window&&(localStorage.setItem("addonsSelected",JSON.stringify(p)),localStorage.setItem("toggleState",JSON.stringify(S)),localStorage.setItem("steps",JSON.stringify(m)))},goGetRegistrationData:y}},r)},d=function(){var e=r(n);if(!e)throw new Error("useGlobalContext must be used within a GlobalProvider");return e};export{a as GlobalProvider,n as default,d as useGlobalContext};
|
|
2
|
+
//# sourceMappingURL=GlobalContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalContext.js","sources":["../../../src/context/GlobalContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, ReactNode } from 'react';\n\ninterface GlobalContextType {\n webchatData: any;\n appMessages: any;\n goSetWebchatData: (data: any) => void;\n goResetWebchatData: () => void;\n goSetRegistrationData: (registrationData: any) => void;\n goResetRegistrationData: () => void;\n goGetRegistrationData: () => any;\n setAppMessages: React.Dispatch<React.SetStateAction<any>>;\n}\n\nconst GlobalContext = createContext<GlobalContextType>({} as GlobalContextType);\n\ninterface GlobalProviderProps {\n children: ReactNode;\n}\n\nexport const GlobalProvider: React.FC<GlobalProviderProps> = ({ children }) => {\n const [webchatData, setWebchatData] = useState<any>({});\n const [appMessages, setAppMessages] = useState<any>({});\n const [registrationData, setRegistrationData] = useState(null);\n\n const initialAddonsSelected = {\n 'Static IP': null,\n 'YouMesh': null,\n 'YouMesh Pro': null,\n 'YouPhone': null\n };\n\n const initialSteps = {\n 1: {\n name: 'Speed',\n stepVisited: true\n },\n 2: {\n name: 'Go live',\n stepVisited: false\n },\n 3: {\n name: 'Add ons',\n stepVisited: false\n },\n 4: {\n name: 'Payment',\n stepVisited: false\n },\n 5: {\n name: 'Confirmation',\n stepVisited: false\n }\n };\n\n const initialToggleState = {\n 'YouPhone Plus': false,\n 'YouPhone Pro': false,\n 'Battery Pack': false,\n 'Transfer landline number': false\n }\n\n const goSetWebchatData = (data: any) => {\n setWebchatData(data);\n if (typeof window !== 'undefined') {\n localStorage.setItem('webchatData', JSON.stringify(data));\n }\n };\n\n const goResetWebchatData = () => {\n goSetWebchatData(null);\n };\n\n\n const goSetRegistrationData = (registrationData) => {\n setRegistrationData(registrationData)\n if (typeof window !== 'undefined' && window) {\n localStorage.setItem('registrationData', JSON.stringify(registrationData));\n }\n // If registration data is reset than reset other data\n if (registrationData === null) {\n if (typeof window !== 'undefined' && window) { \n localStorage.setItem('addonsSelected', JSON.stringify(initialAddonsSelected));\n localStorage.setItem('toggleState', JSON.stringify(initialToggleState));\n localStorage.setItem('steps', JSON.stringify(initialSteps));\n }\n }\n }\n\n const goResetRegistrationData = () => {\n goSetRegistrationData({\n ...goGetRegistrationData(),\n searchPremiseResults: undefined,\n personalData: undefined,\n currentProvider: undefined,\n checkoutStep: undefined,\n currentContractType: undefined,\n addressId: undefined,\n dateFilter: undefined,\n accountNumber: undefined,\n totalPrice: undefined,\n leadId: undefined,\n branchCode: undefined,\n registerStep: undefined,\n orderItems: goGetRegistrationData()?.orderItems?.filter(item => item.properties.Type === 'BASE_PRODUCT'),\n orderId: undefined,\n addonPrices: undefined,\n phoneNumber1: undefined,\n phoneNumber2: undefined,\n phoneNumber3: undefined,\n LOAAuthorized: undefined,\n portFromProvider: undefined,\n hasVoice: undefined,\n skipBooking: false,\n recontractResponse: undefined,\n containsYouPhone: undefined,\n otsOrderId: undefined,\n otsStatus: undefined,\n earlierAvailability: undefined\n })\n\n if (typeof window !== 'undefined' && window) { \n localStorage.setItem('addonsSelected', JSON.stringify(initialAddonsSelected));\n localStorage.setItem('toggleState', JSON.stringify(initialToggleState));\n localStorage.setItem('steps', JSON.stringify(initialSteps));\n }\n }\n\n const goGetRegistrationData = () => {\n if (registrationData) {\n return registrationData\n } else if (typeof window !== 'undefined' && window && localStorage.getItem('registrationData')) {\n var regData = localStorage.getItem('registrationData')\n if (regData && regData !== \"undefined\") {\n return JSON.parse(regData)\n }\n } else {\n return undefined\n }\n }\n\n return (\n <GlobalContext.Provider\n value={{\n webchatData,\n appMessages,\n goSetWebchatData,\n goResetWebchatData,\n setAppMessages,\n goSetRegistrationData,\n goResetRegistrationData,\n goGetRegistrationData\n }}\n >\n {children}\n </GlobalContext.Provider>\n );\n};\n\nexport const useGlobalContext = (): GlobalContextType => {\n const context = useContext(GlobalContext);\n if (!context) {\n throw new Error('useGlobalContext must be used within a GlobalProvider');\n }\n return context;\n};\n\nexport default GlobalContext;\n"],"names":["GlobalContext","createContext","GlobalProvider","_a","children","_b","useState","webchatData","setWebchatData","_c","appMessages","setAppMessages","_d","registrationData","setRegistrationData","initialAddonsSelected","YouMesh","YouPhone","initialSteps","name","stepVisited","initialToggleState","goSetWebchatData","data","window","localStorage","setItem","JSON","stringify","goSetRegistrationData","goGetRegistrationData","getItem","regData","parse","React","createElement","Provider","value","goResetWebchatData","goResetRegistrationData","__assign","searchPremiseResults","undefined","personalData","currentProvider","checkoutStep","currentContractType","addressId","dateFilter","accountNumber","totalPrice","leadId","branchCode","registerStep","orderItems","filter","item","properties","Type","orderId","addonPrices","phoneNumber1","phoneNumber2","phoneNumber3","LOAAuthorized","portFromProvider","hasVoice","skipBooking","recontractResponse","containsYouPhone","otsOrderId","otsStatus","earlierAvailability","useGlobalContext","context","useContext","Error"],"mappings":"wIAaA,IAAMA,EAAgBC,EAAiC,CAAA,GAM1CC,EAAgD,SAACC,GAAE,IAAAC,EAAQD,EAAAC,SAChEC,EAAgCC,EAAc,CAAA,GAA7CC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAC5BI,EAAgCH,EAAc,CAAA,GAA7CI,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAC5BG,EAA0CN,EAAS,MAAlDO,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GAEtCG,EAAwB,CAC5B,YAAa,KACbC,QAAW,KACX,cAAe,KACfC,SAAY,MAGRC,EAAe,CACnB,EAAG,CACDC,KAAM,QACNC,aAAa,GAEf,EAAG,CACDD,KAAM,UACNC,aAAa,GAEf,EAAG,CACDD,KAAM,UACNC,aAAa,GAEf,EAAG,CACDD,KAAM,UACNC,aAAa,GAEf,EAAG,CACDD,KAAM,eACNC,aAAa,IAIXC,EAAqB,CACzB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,4BAA4B,GAGxBC,EAAmB,SAACC,GACxBf,EAAee,GACO,oBAAXC,QACTC,aAAaC,QAAQ,cAAeC,KAAKC,UAAUL,GAEvD,EAOMM,EAAwB,SAAChB,GAC7BC,EAAoBD,GACE,oBAAXW,QAA0BA,QACnCC,aAAaC,QAAQ,mBAAoBC,KAAKC,UAAUf,IAGjC,OAArBA,GACoB,oBAAXW,QAA0BA,SACnCC,aAAaC,QAAQ,iBAAkBC,KAAKC,UAAUb,IACtDU,aAAaC,QAAQ,cAAeC,KAAKC,UAAUP,IACnDI,aAAaC,QAAQ,QAASC,KAAKC,UAAUV,IAGnD,EAyCMY,EAAwB,WAC5B,GAAIjB,EACF,OAAOA,EACF,GAAsB,oBAAXW,QAA0BA,QAAUC,aAAaM,QAAQ,oBAApE,CACL,IAAIC,EAAUP,aAAaM,QAAQ,oBACnC,OAAIC,GAAuB,cAAZA,EACNL,KAAKM,MAAMD,QADpB,CAKF,CACF,EAEA,OACEE,EAAAC,cAACnC,EAAcoC,SAAQ,CACrBC,MAAO,CACL9B,YAAWA,EACXG,YAAWA,EACXY,iBAAgBA,EAChBgB,mBA9EqB,WACzBhB,EAAiB,KACnB,EA6EMX,eAAcA,EACdkB,sBAAqBA,EACrBU,wBA7D0B,mBAC9BV,EAAqBW,EAAAA,EAAA,CAAA,EAChBV,KAAuB,CAC1BW,0BAAsBC,EACtBC,kBAAcD,EACdE,qBAAiBF,EACjBG,kBAAcH,EACdI,yBAAqBJ,EACrBK,eAAWL,EACXM,gBAAYN,EACZO,mBAAeP,EACfQ,gBAAYR,EACZS,YAAQT,EACRU,gBAAYV,EACZW,kBAAcX,EACdY,WAA+C,QAAnCjD,EAAuB,UAAvByB,WAAuB,IAAA3B,OAAA,EAAAA,EAAEmD,kBAAU,IAAAjD,OAAA,EAAAA,EAAEkD,OAAO,SAAAC,GAAQ,MAAyB,iBAAzBA,EAAKC,WAAWC,IAAhB,GAChEC,aAASjB,EACTkB,iBAAalB,EACbmB,kBAAcnB,EACdoB,kBAAcpB,EACdqB,kBAAcrB,EACdsB,mBAAetB,EACfuB,sBAAkBvB,EAClBwB,cAAUxB,EACVyB,aAAa,EACbC,wBAAoB1B,EACpB2B,sBAAkB3B,EAClB4B,gBAAY5B,EACZ6B,eAAW7B,EACX8B,yBAAqB9B,KAGD,oBAAXlB,QAA0BA,SACnCC,aAAaC,QAAQ,iBAAkBC,KAAKC,UAAUb,IACtDU,aAAaC,QAAQ,cAAeC,KAAKC,UAAUP,IACnDI,aAAaC,QAAQ,QAASC,KAAKC,UAAUV,IAEjD,EAyBMY,sBAAqBA,IAGtB1B,EAGP,EAEaqE,EAAmB,WAC9B,IAAMC,EAAUC,EAAW3E,GAC3B,IAAK0E,EACH,MAAM,IAAIE,MAAM,yDAElB,OAAOF,CACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"react";import{GlobalProvider as t}from"./context/GlobalContext.js";import o from"./TwilioChat/index.js";function c(c){var r=c.host,l=c.clientId,n=c.clientSecret,s=c.websocketUrl,i=c.postcodeSchemaId,m=c.source,d=c.fullscreen,a=void 0!==d&&d,u=c.customToken,f=void 0===u?void 0:u;return e.createElement(t,null,e.createElement(o,{host:r,clientId:l,clientSecret:n,websocketUrl:s,postcodeSchemaId:i,source:m,fullscreen:a,customToken:f}))}export{c as default};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport { GlobalProvider } from './context/GlobalContext';\nimport TwilioChat from './TwilioChat';\n\ninterface Props {\n host: string;\n clientId: string;\n clientSecret: string;\n websocketUrl: string;\n postcodeSchemaId: string;\n source: string;\n fullscreen: boolean;\n customToken?: string| undefined;\n}\n\nfunction App({host, clientId, clientSecret, websocketUrl, postcodeSchemaId, source, fullscreen = false, customToken = undefined }: Props) {\n return (\n <GlobalProvider>\n <TwilioChat \n host={host}\n clientId={clientId}\n clientSecret={clientSecret}\n websocketUrl={websocketUrl}\n postcodeSchemaId={postcodeSchemaId}\n source={source}\n fullscreen={fullscreen}\n customToken={customToken}\n />\n </GlobalProvider>\n );\n}\n\nexport default App;\n"],"names":["App","_a","host","clientId","clientSecret","websocketUrl","postcodeSchemaId","source","_b","fullscreen","_c","customToken","undefined","React","GlobalProvider","createElement","TwilioChat"],"mappings":"sHAeA,SAASA,EAAIC,GAAC,IAAAC,EAAID,EAAAC,KAAEC,EAAQF,EAAAE,SAAEC,EAAYH,EAAAG,aAAEC,EAAYJ,EAAAI,aAAEC,EAAgBL,EAAAK,iBAAEC,EAAMN,EAAAM,OAAEC,EAAAP,EAAAQ,WAAAA,OAAU,IAAAD,GAAQA,EAAEE,EAAAT,EAAAU,YAAAA,OAAW,IAAAD,OAAGE,EAASF,EAC7H,OACEG,gBAACC,EAAc,KACXD,EAAAE,cAACC,EAAU,CACTd,KAAMA,EACNC,SAAUA,EACVC,aAAcA,EACdC,aAAcA,EACdC,iBAAkBA,EAClBC,OAAQA,EACRE,WAAYA,EACZE,YAAaA,IAIvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.js","sources":["../../../src/utils/alert.ts"],"sourcesContent":["import { toast } from 'react-toastify';\n\nexport const toastrMsg = (toastrText:any, toastrType:any) => {\n toast(toastrText, {\n type: toastrType\n })\n};"],"names":["toastrMsg","toastrText","toastrType","toast","type"],"mappings":"qFAEO,IAAMA,EAAY,SAACC,EAAgBC,GACtCC,EAAMF,EAAY,CACdG,KAAMF,GAEd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helperFn.js","sources":["../../../src/utils/helperFn.ts"],"sourcesContent":["export const isStagingOrDevelopment = () => {\n const hostName = window.location.host;\n return /staging|localhost/.test(hostName);\n};\n\nexport const isProduction = () => {\n const hostName = window.location.host;\n return !isStagingOrDevelopment();\n};"],"names":["isStagingOrDevelopment","hostName","window","location","host","test"],"mappings":"AAAO,IAAMA,EAAyB,WAClC,IAAMC,EAAWC,OAAOC,SAASC,KACjC,MAAO,oBAAoBC,KAAKJ,EACpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const toastrMsg: (toastrText: any, toastrType: any) => void;
|