{"version":3,"file":"static/js/main.5a0ec830.js","mappings":"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","sources":["../node_modules/base64-js/index.js","../node_modules/buffer/index.js","../node_modules/builtin-status-codes/browser.js","../node_modules/classnames/index.js","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/_lib/requiredArgs/index.js","../node_modules/date-fns/differenceInCalendarDays/index.js","../node_modules/date-fns/differenceInDays/index.js","../node_modules/date-fns/startOfDay/index.js","../node_modules/date-fns/toDate/index.js","../node_modules/events/events.js","../node_modules/extend/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/https-browserify/index.js","../node_modules/ieee754/index.js","../node_modules/inherits/inherits_browser.js","../node_modules/inline-style-parser/index.js","../node_modules/is-buffer/index.js","../node_modules/isarray/index.js","../node_modules/object-assign/index.js","../node_modules/path-to-regexp/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/querystring/decode.js","../node_modules/querystring/encode.js","../node_modules/querystring/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-markdown/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/readable-stream/errors-browser.js","../node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/readable-stream/lib/_stream_readable.js","../node_modules/readable-stream/lib/_stream_transform.js","../node_modules/readable-stream/lib/_stream_writable.js","../node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/readable-stream/readable-browser.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/stream-http/index.js","../node_modules/stream-http/lib/capability.js","../node_modules/stream-http/lib/request.js","../node_modules/stream-http/lib/response.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/string_decoder/node_modules/safe-buffer/index.js","../node_modules/style-to-object/index.js","../node_modules/url/node_modules/punycode/punycode.js","../node_modules/url/url.js","../node_modules/url/util.js","../node_modules/util-deprecate/browser.js","../node_modules/xtend/immutable.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/typeof.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../node_modules/react-ga/dist/esm/utils/console/warn.js","../node_modules/react-ga/dist/esm/components/OutboundLink.js","../node_modules/react-ga/dist/esm/utils/redactEmail.js","../node_modules/react-ga/dist/esm/utils/mightBeEmail.js","../node_modules/react-ga/dist/esm/utils/trim.js","../node_modules/react-ga/dist/esm/utils/toTitleCase.js","../node_modules/react-ga/dist/esm/utils/loadGA.js","../node_modules/react-ga/dist/esm/utils/console/log.js","../node_modules/react-ga/dist/esm/utils/testModeAPI.js","../node_modules/react-ga/dist/esm/core.js","../node_modules/react-ga/dist/esm/utils/format.js","../node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","../node_modules/react-ga/dist/esm/index.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-redux/es/components/connectAdvanced.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-redux/es/utils/bindActionCreators.js","../node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-redux/es/connect/connect.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/react-redux/es/index.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/history/esm/history.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/modules/createNameContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/Prompt.js","../node_modules/react-router/modules/generatePath.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/withRouter.js","../node_modules/react-router/modules/hooks.js","../node_modules/connected-react-router/esm/actions.js","../node_modules/connected-react-router/esm/selectors.js","../node_modules/connected-react-router/esm/ConnectedRouter.js","../node_modules/connected-react-router/esm/reducer.js","../node_modules/connected-react-router/esm/structure/plain/getIn.js","../node_modules/connected-react-router/esm/structure/plain/index.js","../node_modules/connected-react-router/esm/index.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","../node_modules/connected-react-router/esm/middleware.js","store/Models/Api/ApiResponse.ts","store/Models/Surveys/SurveyDataModel.ts","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","utilities/Utilities.ts","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","store/ToxnotServiceClient.ts","store/StateControllers/Survey/RevisionRequestManager.ts","store/StateControllers/Survey/SurveyStateController.ts","store/Models/SharedMaterials/BrowserStateModels.ts","AppServices.ts","store/Models/Filter.ts","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","store/Filtering/FilteringManager.ts","store/Models/SharedMaterials/DataModel.ts","store/Filtering/FilterCheck.ts","store/StateControllers/SharedMaterials/SharedMaterialFiltering.ts","store/StateControllers/SharedMaterials/SharedMaterialsDatabaseStateController.ts","store/StateControllers/Survey/MatchSurveyStateController.ts","store/Models/Api/UserContextResponse.ts","store/StateControllers/Survey/TemplateManagerStateController.ts","store/StateControllers/LoginStateController.ts","store/StateControllers/SharedMaterials/SharedMaterialsManagementStateController.ts","store/StateControllers/SharedMaterials/SharedMaterialsPreviewStateController.ts","store/StateControllers/BulkReport/BulkReportStateController.ts","store/StateControllers/Engagement/EngagementStateController.ts","store/StateControllers/XmlExport/XmlExportStateController.ts","store/Models/XmlExport/XmlExportDataModel.ts","store/StateControllers/Start/StartStateController.ts","store/StateControllers/Supplier/InviteSuppliersStateController.ts","store/Models/OfflineProcesses/OfflineProcessModels.ts","utilities/SaveDataManager.ts","store/Managers/OfflineProcessPollingManager.ts","components/core/ToxnotReactComponentPaths.ts","store/Managers/RegulationManager.ts","store/Managers/ReportTypesManager.ts","store/StateControllers/Customers/CustomerFiltering.ts","store/StateControllers/Customers/CustomersStateController.ts","store/StateControllers/Survey/SurveyResponse/SurveyResponseStates.ts","components/Survey/SurveyResponse/SurveyResponseProgressTextHelper.ts","store/Managers/SurveyResponse/ScipDataManager.ts","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/get.js","store/Managers/SurveyResponse/QuestionRequirementEvaluator.ts","store/StateControllers/Survey/SurveyResponse/SurveyResponseModels.ts","store/Managers/BaseRegulationLogicManager.ts","store/Managers/ResourceConstants.ts","store/Managers/CustomLogicManagers/PfasCustomLogicManager.ts","store/Managers/CustomLogicManagers/ReachAuthorizationCustomLogicManager.ts","store/Managers/CustomLogicManagers/RohsCustomLogicManager.ts","store/Managers/CustomLogicManagers/CaProp65CustomLogicManager.ts","store/Managers/CustomLogicManagers/ReachRegistrationCustomLogicManager.ts","store/Managers/CustomLogicManagers/GenericHideCustomLogicManager.ts","store/Managers/CustomLogicManagers/ScipCustomLogicManager.ts","store/Managers/CustomLogicManagers/CustomLogicManager.ts","store/StateControllers/Survey/SurveyResponse/SurveyResponseController.ts","store/Models/TaskManagement/TaskManagementDataModel.ts","store/StateControllers/TaskManagement/TaskManagementStateController.tsx","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/v4.js","store/Managers/SurveyLocalStorageManager.ts","store/StateControllers/Supplier/SelectSuppliersMaterialsTableStateController.ts","store/index.ts","../node_modules/reactstrap/es/utils.js","../node_modules/reactstrap/es/Container.js","components/StaticPageReloader.tsx","components/Survey/SurveyComponentPaths.ts","components/Engagement/EngagementPaths.ts","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","store/Models/Documents/DocumentModels.ts","components/core/BaseApplicationComponents/ToxnotComponent.tsx","store/Managers/CertificationRendererManager.ts","components/core/ToxnotReactModal/index.tsx","components/core/ToxnotReactTable/index.tsx","components/SharedMaterials/SharedMaterialsReactUtilities.tsx","components/SharedMaterials/Detail/SharedMaterialDetailDataSubsection.tsx","store/Models/UserContext.ts","components/Engagement/Engagement.tsx","components/core/BaseApplicationComponents/ToxnotSignInRequiredComponent.tsx","components/TOW.tsx","components/core/LoadingSpinner/index.tsx","components/core/Upsell/index.tsx","components/Layout.tsx","tow/TowStarter.ts","components/Start/StartOrientation.tsx","store/Managers/BomTemplatesManager.ts","components/core/ToxnotReactStatusComponent.tsx","components/core/ProductMaterialTable/index.tsx","components/core/CollapsibleContainer/index.tsx","components/core/NavPillsDetail/index.tsx","components/Survey/UserAddNamePromptModal/index.tsx","components/core/TopActionsAndScrollableContentContainer/index.tsx","components/core/SlidingDrawer/index.tsx","components/core/SelectSuppliersMaterialsTable/index.tsx","components/Start/StartReport.tsx","components/Start/InviteSuppliersCore.tsx","components/Start/StartImport.tsx","components/Start/StartPassport.tsx","components/Start/StartExperienceGuideComponent.tsx","components/Start/InviteSuppliers.tsx","components/Start/StartSurveyGuide.tsx","components/Start/StartHome.tsx","components/SharedMaterials/SharedMaterialsBrowser.tsx","components/SharedMaterials/Detail/AbstractSharedMaterialDetail.tsx","components/SharedMaterials/SharedMaterialsHome.tsx","components/SharedMaterials/SharedMaterialSupplier.tsx","components/SharedMaterials/Detail/SharedMaterialNotFound.tsx","config/Models.ts","components/core/SidebarDetail/index.tsx","components/Survey/CreateAndEditSurveyPages/CreateAndEditSurveyPreviewRenderer.tsx","config/StandardSummaryDataFieldsManager.ts","application-layer/compliance/RohsExemptions.ts","components/core/DynamicSidebar/index.tsx","components/Upsell/Upsell.tsx","utilities/DeclareCsiDivision.ts","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/unified/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/parse.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/remark-parse/lib/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/unist-util-position/lib/index.js","../node_modules/mdast-util-definitions/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/unist-util-generated/lib/index.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/remark-rehype/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/react-markdown/lib/rehype-filter.js","../node_modules/hast-util-whitespace/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/style-to-object/index.mjs","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/react-markdown/lib/react-markdown.js","../node_modules/ccount/index.js","../node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character/index.js","../node_modules/mdast-util-find-and-replace/node_modules/unist-util-is/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents/lib/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-autolink-literal/lib/index.js","../node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-normalize-identifier/index.js","../node_modules/mdast-util-gfm-footnote/lib/index.js","../node_modules/mdast-util-gfm-strikethrough/lib/index.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/mdast-util-to-markdown/lib/handle/break.js","../node_modules/mdast-util-to-markdown/lib/handle/code.js","../node_modules/mdast-util-to-markdown/lib/util/check-quote.js","../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","../node_modules/mdast-util-to-markdown/node_modules/unist-util-is/lib/index.js","../node_modules/mdast-util-to-markdown/node_modules/unist-util-visit-parents/lib/index.js","../node_modules/mdast-util-to-markdown/node_modules/mdast-util-to-string/lib/index.js","../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","../node_modules/mdast-util-to-markdown/node_modules/unist-util-visit/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/html.js","../node_modules/mdast-util-to-markdown/lib/handle/image.js","../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","../node_modules/mdast-util-to-markdown/lib/handle/link.js","../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule.js","../node_modules/mdast-util-phrasing/node_modules/unist-util-is/lib/index.js","../node_modules/mdast-util-phrasing/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/strong.js","../node_modules/mdast-util-to-markdown/lib/util/check-strong.js","../node_modules/mdast-util-to-markdown/lib/handle/index.js","../node_modules/mdast-util-to-markdown/lib/util/check-fence.js","../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","../node_modules/longest-streak/index.js","../node_modules/mdast-util-to-markdown/lib/handle/definition.js","../node_modules/mdast-util-to-markdown/lib/handle/heading.js","../node_modules/mdast-util-to-markdown/lib/handle/list.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","../node_modules/mdast-util-to-markdown/lib/handle/root.js","../node_modules/mdast-util-to-markdown/lib/handle/text.js","../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","../node_modules/mdast-util-gfm-table/lib/index.js","../node_modules/mdast-util-gfm-task-list-item/lib/index.js","../node_modules/micromark-extension-gfm/node_modules/micromark-util-chunked/index.js","../node_modules/micromark-extension-gfm/node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character/index.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character/index.js","../node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space/index.js","../node_modules/micromark-extension-gfm-footnote/node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-chunked/index.js","../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-character/index.js","../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character/index.js","../node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space/index.js","../node_modules/micromark-extension-gfm-table/lib/edit-map.js","../node_modules/micromark-extension-gfm-table/lib/infer.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character/index.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space/index.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/remark-gfm/lib/index.js","../node_modules/mdast-util-gfm/lib/index.js","../node_modules/mdast-util-newline-to-break/lib/index.js","../node_modules/remark-breaks/lib/index.js","components/core/MarkdownRenderer/MarkdownRenderer.tsx","utilities/IngredientsTableColumn.ts","components/core/DynamicQuestion/index.tsx","store/Managers/RegulationDependentBomColumnsManager.ts","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","components/core/CheckBox/index.tsx","components/core/BaseApplicationComponents/ToxnotMainApplicationViewComponent.tsx","components/Survey/CreateAndEditSurveyPages/CreateAndEditSurveyQuestionsPage.tsx","components/SharedMaterials/Detail/SharedMaterialDetail.tsx","components/SharedMaterials/SharedMaterialRequestComponentBase.tsx","components/SharedMaterials/RequestAccessToSharedMaterials.tsx","components/SharedMaterials/ContactSupplier.tsx","components/SharedMaterials/ShareMaterial.tsx","components/SharedMaterials/SharedMaterialsDatabase.tsx","components/SharedMaterials/CompanyPages/CompanyPageEditor.tsx","components/core/ReportTypeSelector/index.tsx","components/SharedMaterials/PickReportsForCompanyModal.tsx","components/SharedMaterials/CompanyPages/CompanyPagesManager.tsx","components/SharedMaterials/MyPassports/MyPassports.tsx","components/SharedMaterials/AccessRequestInbox.tsx","components/SharedMaterials/GrantGroupAccessInput.tsx","components/SharedMaterials/SharedMaterialsManagement.tsx","components/SharedMaterials/Detail/SharedMaterialPublishPreview.tsx","components/SharedMaterials/SharedMaterialsMain.tsx","store/Managers/SelectedInventoriesManager.ts","store/StateControllers/TaskManagement/Helpers.ts","components/TaskManagement/TaskManagementDetailView.tsx","components/TaskManagement/TaskManagementMain.tsx","components/XmlExport/XmlExportComponentPaths.ts","components/XmlExport/Ipc1752aExportView.tsx","components/BulkReport/BulkReportComponentPath.ts","components/BulkReport/BulkReport.tsx","components/TaskManagement/TaskManagementComponentPaths.ts","components/core/ProgressBar/index.tsx","components/Customers/MyCustomerModals.tsx","components/Customers/MyCustomerDetail.tsx","components/Customers/MyCustomerInfo.tsx","components/core/DropdownMenu/index.tsx","components/Customers/MyCustomerPurchases.tsx","components/Customers/MyCustomerRequestDetail.tsx","components/core/SearchBar/index.tsx","components/core/FiltersContainer/index.tsx","components/Customers/MyCustomerRequests.tsx","components/Customers/RequestReports.tsx","components/core/SelectFileForUpload/index.tsx","components/Customers/MyCustomersHome.tsx","components/Customers/MyCustomersMain.tsx","components/Survey/CreateAndEditSurveyPages/CreateAndEditSurveySummaryPage.tsx","components/Survey/SharedSurveyComponents.tsx","components/Survey/CreateAndEditSurveyPages/CreateAndEditSurveyMessagesPage.tsx","components/Survey/CreateAndEditSurveyPages/CreateAndEditSurveyNotesPage.tsx","components/Survey/CreateAndEditSurveyPages/CreateAndEditSurveyRemindersPage.tsx","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/parseISO/index.js","store/Managers/SurveyStatusManager.ts","components/Survey/CreateAndEditSurveys.tsx","components/Survey/CreateAndEditSurveyPages/CreateAndEditSurveyStatusAndResponsesPage.tsx","components/Survey/SurveyOfflineProgressModal/index.tsx","components/Survey/SurveyAcceptProgressModal/index.tsx","components/Survey/CertificationConsolidationSurveyEditor/CertificationConsolidationSurveyEditor.tsx","components/Survey/SurveyTemplateManager.tsx","components/core/SelectLibraryInventory/index.tsx","components/core/ContentContainer/ContentContainer.tsx","components/core/Heading/Heading.tsx","components/Survey/CertificationConsolidationResponseEditor/CertificationConsolidationResponseEditor.tsx","components/core/GroupMaterials/index.tsx","components/Survey/SurveyResponse/SurveyResponseProgress.tsx","components/core/SurveySidemenuStatus/index.tsx","components/core/SurveySidemenu/index.tsx","components/core/SearchableDropdown/SearchableDropdown.tsx","components/core/TextInput/index.tsx","components/core/TextAreaInput/index.tsx","components/core/DateInput/index.tsx","../node_modules/date-fns/esm/addDays/index.js","components/core/ExtensionRequest/extensionRequest.tsx","components/core/RedirectLink/index.tsx","components/core/Common/CommonModalEditor.tsx","components/core/ProductOverview/index.tsx","components/core/RevisionRequest/RevisionRequest.tsx","components/core/SdsIngredientsImport/index.tsx","components/core/BomEditor/index.tsx","utilities/OfflineProcessStage.ts","components/core/BatchButtons/BatchButtons.tsx","components/core/ArticleCategory/index.tsx","components/core/BulkInputs/BulkInputs.tsx","components/Survey/SurveyResponse/SurveyResponseInstructions.tsx","components/core/DependentDropdowns/index.tsx","components/core/IngredientsTable/index.tsx","components/core/CsiDivision/index.tsx","components/core/MultiText/index.tsx","components/core/UrlInput/index.tsx","components/core/RadioButtons/index.tsx","components/core/CheckBoxes/index.tsx","components/core/DataTable/index.tsx","components/core/ArticleIdentifier/index.tsx","components/core/SubstanceSearchModal/index.tsx","components/core/FileUploader/index.tsx","components/core/ComplianceResponseDate/index.tsx","application-layer/compliance/ReachListVersions.ts","components/core/Certification/index.tsx","components/core/LoadingWrapper/index.tsx","components/core/Characteristics/index.tsx","components/core/CheckboxAndComment/CheckboxAndComment.tsx","utilities/FDACitation/Data.ts","components/DataTables/FDACitationsDataTable/FDAHelper.ts","components/core/MultipleDropdown/MultipleDropdown.tsx","components/core/CmrtDetails/index.tsx","components/DataTables/FDACitationsDataTable/FDACitationsDataTable.tsx","utilities/PackagingLayer/Data.ts","utilities/PackagingLayer/DeclarePackagingLayers.ts","components/core/PackagingDataTable/PackagingDataTable.tsx","components/core/CustomDataTable/CustomDataTable.tsx","utilities/PercentRange.ts","store/Managers/CustomDataTableColumnProvider.ts","components/core/Question/index.tsx","utilities/ValueRange.ts","components/core/MaterialSummary/MaterialSummary.tsx","components/Survey/SurveyResponseSubmit/SurveyResponseSubmit.tsx","store/Managers/CategoriesProvider/CategoriesProvider.ts","components/core/ConcernElements/ConcernElements.tsx","components/core/LinkedArticles/LinkedArticles.tsx","components/core/ScipSurveyPage/ScipSurveyPage.tsx","components/core/QuestionnairePage/index.tsx","components/core/AddMaterials/index.tsx","components/core/SurveyPage/index.tsx","components/core/SurveyNavigation/SurveyNavigation.tsx","components/core/RadioButton/index.tsx","utilities/IntercomManger.ts","components/Consult/Consult.tsx","components/Survey/SurveyResponse.tsx","components/Survey/SurveyMain.tsx","components/Layouts/NonSignedInContentLayout.tsx","components/News/NewsAbstract.tsx","components/ObtainmentReports/ObtainmentReports.tsx","components/News/NewsDetail.tsx","components/News/NewsHome.tsx","components/News/NewsSearch.tsx","components/News/NewsMain.tsx","components/Regulations/RegulationLibrary.tsx","components/Regulations/RegulationsDetailLibrary.tsx","ToxnotBranded.tsx","App.tsx","registerServiceWorker.ts","index.tsx","store/configureStore.ts"],"sourcesContent":["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n}\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getTimezoneOffsetInMilliseconds;\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nfunction getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = requiredArgs;\n\nfunction requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = differenceInCalendarDays;\n\nvar _index = _interopRequireDefault(require(\"../_lib/getTimezoneOffsetInMilliseconds/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../startOfDay/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nfunction differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n (0, _index3.default)(2, arguments);\n var startOfDayLeft = (0, _index2.default)(dirtyDateLeft);\n var startOfDayRight = (0, _index2.default)(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - (0, _index.default)(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - (0, _index.default)(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = differenceInDays;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../differenceInCalendarDays/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\nfunction compareLocalAsc(dateLeft, dateRight) {\n var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full days according to the local timezone\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n//=> 92\n */\n\n\nfunction differenceInDays(dirtyDateLeft, dirtyDateRight) {\n (0, _index3.default)(2, arguments);\n var dateLeft = (0, _index.default)(dirtyDateLeft);\n var dateRight = (0, _index.default)(dirtyDateRight);\n var sign = compareLocalAsc(dateLeft, dateRight);\n var difference = Math.abs((0, _index2.default)(dateLeft, dateRight));\n dateLeft.setDate(dateLeft.getDate() - sign * difference); // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastDayNotFull = Number(compareLocalAsc(dateLeft, dateRight) === -sign);\n var result = sign * (difference - isLastDayNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfDay;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nfunction startOfDay(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\n\nvar _index = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nfunction toDate(argument) {\n (0, _index.default)(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}\n\nmodule.exports = exports.default;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n params = validateParams(params)\n return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n params = validateParams(params)\n return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n if (typeof params === 'string') {\n params = url.parse(params)\n }\n if (!params.protocol) {\n params.protocol = 'https:'\n }\n if (params.protocol !== 'https:') {\n throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n }\n return params\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","/** @license React v16.14.0\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTimeQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","/** @license React v0.19.1\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = Buffer.alloc(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tresetTimers(true)\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tresetTimers(true)\n\t\tself.push(null)\n\t}\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\nmodule.exports.default = StyleToObject; // ESM support\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}\n\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","export default function warn(s) {\n console.warn('[react-ga]', s);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport warn from '../utils/console/warn';\nvar NEWTAB = '_blank';\nvar MIDDLECLICK = 1;\n\nvar OutboundLink = /*#__PURE__*/function (_Component) {\n _inherits(OutboundLink, _Component);\n\n var _super = _createSuper(OutboundLink);\n\n function OutboundLink() {\n var _this;\n\n _classCallCheck(this, OutboundLink);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (event) {\n var _this$props = _this.props,\n target = _this$props.target,\n eventLabel = _this$props.eventLabel,\n to = _this$props.to,\n onClick = _this$props.onClick,\n trackerNames = _this$props.trackerNames;\n var eventMeta = {\n label: eventLabel\n };\n var sameTarget = target !== NEWTAB;\n var normalClick = !(event.ctrlKey || event.shiftKey || event.metaKey || event.button === MIDDLECLICK);\n\n if (sameTarget && normalClick) {\n event.preventDefault();\n OutboundLink.trackLink(eventMeta, function () {\n window.location.href = to;\n }, trackerNames);\n } else {\n OutboundLink.trackLink(eventMeta, function () {}, trackerNames);\n }\n\n if (onClick) {\n onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(OutboundLink, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n href = _this$props2.to,\n target = _this$props2.target,\n oldProps = _objectWithoutProperties(_this$props2, [\"to\", \"target\"]);\n\n var props = _objectSpread(_objectSpread({}, oldProps), {}, {\n target: target,\n href: href,\n onClick: this.handleClick\n });\n\n if (target === NEWTAB) {\n props.rel = \"\".concat(props.rel ? props.rel : '', \" noopener noreferrer\").trim();\n }\n\n delete props.eventLabel;\n delete props.trackerNames;\n return /*#__PURE__*/React.createElement('a', props);\n }\n }]);\n\n return OutboundLink;\n}(Component);\n\n_defineProperty(OutboundLink, \"trackLink\", function () {\n warn('ga tracking not enabled');\n});\n\nexport { OutboundLink as default };\nOutboundLink.propTypes = {\n eventLabel: PropTypes.string.isRequired,\n target: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n trackerNames: PropTypes.arrayOf(PropTypes.string)\n};\nOutboundLink.defaultProps = {\n target: null,\n to: null,\n onClick: null,\n trackerNames: null\n};","import warn from './console/warn';\nimport mightBeEmail from './mightBeEmail';\nvar redacted = 'REDACTED (Potential Email Address)';\nexport default function redactEmail(string) {\n if (mightBeEmail(string)) {\n warn('This arg looks like an email address, redacting.');\n return redacted;\n }\n\n return string;\n}","// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nexport default function mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === 'string' && s.indexOf('@') !== -1;\n}","// GA strings need to have leading/trailing whitespace trimmed, and not all\n// browsers have String.prototoype.trim().\nexport default function trim(s) {\n return s && s.toString().replace(/^\\s+|\\s+$/g, '');\n}","/**\n * To Title Case 2.1 - http://individed.com/code/to-title-case/\n * Copyright 2008-2013 David Gouch. Licensed under the MIT License.\n * https://github.com/gouch/to-title-case\n */\nimport trim from './trim';\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i; // test\n\nexport default function toTitleCase(string) {\n return trim(string).replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== ':' && (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}","var isLoaded = false;\nexport default function (options) {\n if (isLoaded) return;\n isLoaded = true;\n var gaAddress = 'https://www.google-analytics.com/analytics.js';\n\n if (options && options.gaAddress) {\n gaAddress = options.gaAddress;\n } else if (options && options.debug) {\n gaAddress = 'https://www.google-analytics.com/analytics_debug.js';\n }\n\n var onerror = options && options.onerror; // https://developers.google.com/analytics/devguides/collection/analyticsjs/\n\n /* eslint-disable */\n\n (function (i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function () {\n (i[r].q = i[r].q || []).push(arguments);\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n a.onerror = onerror;\n m.parentNode.insertBefore(a, m);\n })(window, document, 'script', gaAddress, 'ga');\n /* eslint-enable */\n\n}","export default function log(s) {\n console.info('[react-ga]', s);\n}","export var gaCalls = [];\nexport default {\n calls: gaCalls,\n ga: function ga() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n gaCalls.push([].concat(args));\n },\n resetCalls: function resetCalls() {\n gaCalls.length = 0;\n }\n};","function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * React Google Analytics Module\n *\n * @package react-ga\n * @author Adam Lofting \n * Atul Varma \n */\n\n/**\n * Utilities\n */\nimport format from './utils/format';\nimport removeLeadingSlash from './utils/removeLeadingSlash';\nimport trim from './utils/trim';\nimport loadGA from './utils/loadGA';\nimport warn from './utils/console/warn';\nimport log from './utils/console/log';\nimport TestModeAPI from './utils/testModeAPI';\n\nvar _isNotBrowser = typeof window === 'undefined' || typeof document === 'undefined';\n\nvar _debug = false;\nvar _titleCase = true;\nvar _testMode = false;\nvar _alwaysSendToDefaultTracker = true;\nvar _redactEmail = true;\n\nvar internalGa = function internalGa() {\n var _window;\n\n if (_testMode) return TestModeAPI.ga.apply(TestModeAPI, arguments);\n if (_isNotBrowser) return false;\n if (!window.ga) return warn('ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually');\n return (_window = window).ga.apply(_window, arguments);\n};\n\nfunction _format(s) {\n return format(s, _titleCase, _redactEmail);\n}\n\nfunction _gaCommand(trackerNames) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var command = args[0];\n\n if (typeof internalGa === 'function') {\n if (typeof command !== 'string') {\n warn('ga command must be a string');\n return;\n }\n\n if (_alwaysSendToDefaultTracker || !Array.isArray(trackerNames)) internalGa.apply(void 0, args);\n\n if (Array.isArray(trackerNames)) {\n trackerNames.forEach(function (name) {\n internalGa.apply(void 0, _toConsumableArray([\"\".concat(name, \".\").concat(command)].concat(args.slice(1))));\n });\n }\n }\n}\n\nfunction _initialize(gaTrackingID, options) {\n if (!gaTrackingID) {\n warn('gaTrackingID is required in initialize()');\n return;\n }\n\n if (options) {\n if (options.debug && options.debug === true) {\n _debug = true;\n }\n\n if (options.titleCase === false) {\n _titleCase = false;\n }\n\n if (options.redactEmail === false) {\n _redactEmail = false;\n }\n\n if (options.useExistingGa) {\n return;\n }\n }\n\n if (options && options.gaOptions) {\n internalGa('create', gaTrackingID, options.gaOptions);\n } else {\n internalGa('create', gaTrackingID, 'auto');\n }\n}\n\nexport function addTrackers(configsOrTrackingId, options) {\n if (Array.isArray(configsOrTrackingId)) {\n configsOrTrackingId.forEach(function (config) {\n if (_typeof(config) !== 'object') {\n warn('All configs must be an object');\n return;\n }\n\n _initialize(config.trackingId, config);\n });\n } else {\n _initialize(configsOrTrackingId, options);\n }\n\n return true;\n}\nexport function initialize(configsOrTrackingId, options) {\n if (options && options.testMode === true) {\n _testMode = true;\n } else {\n if (_isNotBrowser) {\n return;\n }\n\n if (!options || options.standardImplementation !== true) loadGA(options);\n }\n\n _alwaysSendToDefaultTracker = options && typeof options.alwaysSendToDefaultTracker === 'boolean' ? options.alwaysSendToDefaultTracker : true;\n addTrackers(configsOrTrackingId, options);\n}\n/**\n * ga:\n * Returns the original GA object.\n */\n\nexport function ga() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (args.length > 0) {\n internalGa.apply(void 0, args);\n\n if (_debug) {\n log(\"called ga('arguments');\");\n log(\"with arguments: \".concat(JSON.stringify(args)));\n }\n }\n\n return window.ga;\n}\n/**\n * set:\n * GA tracker set method\n * @param {Object} fieldsObject - a field/value pair or a group of field/value pairs on the tracker\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function set(fieldsObject, trackerNames) {\n if (!fieldsObject) {\n warn('`fieldsObject` is required in .set()');\n return;\n }\n\n if (_typeof(fieldsObject) !== 'object') {\n warn('Expected `fieldsObject` arg to be an Object');\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n warn('empty `fieldsObject` given to .set()');\n }\n\n _gaCommand(trackerNames, 'set', fieldsObject);\n\n if (_debug) {\n log(\"called ga('set', fieldsObject);\");\n log(\"with fieldsObject: \".concat(JSON.stringify(fieldsObject)));\n }\n}\n/**\n * send:\n * Clone of the low level `ga.send` method\n * WARNING: No validations will be applied to this\n * @param {Object} fieldObject - field object for tracking different analytics\n * @param {Array} trackerNames - trackers to send the command to\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function send(fieldObject, trackerNames) {\n _gaCommand(trackerNames, 'send', fieldObject);\n\n if (_debug) {\n log(\"called ga('send', fieldObject);\");\n log(\"with fieldObject: \".concat(JSON.stringify(fieldObject)));\n log(\"with trackers: \".concat(JSON.stringify(trackerNames)));\n }\n}\n/**\n * pageview:\n * Basic GA pageview tracking\n * @param {String} path - the current page page e.g. '/about'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n * @param {String} title - (optional) the page title e. g. 'My Website'\n */\n\nexport function pageview(rawPath, trackerNames, title) {\n if (!rawPath) {\n warn('path is required in .pageview()');\n return;\n }\n\n var path = trim(rawPath);\n\n if (path === '') {\n warn('path cannot be an empty string in .pageview()');\n return;\n }\n\n var extraFields = {};\n\n if (title) {\n extraFields.title = title;\n }\n\n if (typeof ga === 'function') {\n _gaCommand(trackerNames, 'send', _objectSpread({\n hitType: 'pageview',\n page: path\n }, extraFields));\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n var extraLog = '';\n\n if (title) {\n extraLog = \" and title: \".concat(title);\n }\n\n log(\"with path: \".concat(path).concat(extraLog));\n }\n }\n}\n/**\n * modalview:\n * a proxy to basic GA pageview tracking to consistently track\n * modal views that are an equivalent UX to a traditional pageview\n * @param {String} modalName e.g. 'add-or-edit-club'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function modalview(rawModalName, trackerNames) {\n if (!rawModalName) {\n warn('modalName is required in .modalview(modalName)');\n return;\n }\n\n var modalName = removeLeadingSlash(trim(rawModalName));\n\n if (modalName === '') {\n warn('modalName cannot be an empty string or a single / in .modalview()');\n return;\n }\n\n if (typeof ga === 'function') {\n var path = \"/modal/\".concat(modalName);\n\n _gaCommand(trackerNames, 'send', 'pageview', path);\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n log(\"with path: \".concat(path));\n }\n }\n}\n/**\n * timing:\n * GA timing\n * @param args.category {String} required\n * @param args.variable {String} required\n * @param args.value {Int} required\n * @param args.label {String} required\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function timing() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref.category,\n variable = _ref.variable,\n value = _ref.value,\n label = _ref.label;\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n if (!category || !variable || typeof value !== 'number') {\n warn('args.category, args.variable ' + 'AND args.value are required in timing() ' + 'AND args.value has to be a number');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'timing',\n timingCategory: _format(category),\n timingVar: _format(variable),\n timingValue: value\n };\n\n if (label) {\n fieldObject.timingLabel = _format(label);\n }\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * event:\n * GA event tracking\n * @param args.category {String} required\n * @param args.action {String} required\n * @param args.label {String} optional\n * @param args.value {Int} optional\n * @param args.nonInteraction {boolean} optional\n * @param args.transport {string} optional\n * @param {{action: string, category: string}} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function event() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref2.category,\n action = _ref2.action,\n label = _ref2.label,\n value = _ref2.value,\n nonInteraction = _ref2.nonInteraction,\n transport = _ref2.transport,\n args = _objectWithoutProperties(_ref2, [\"category\", \"action\", \"label\", \"value\", \"nonInteraction\", \"transport\"]);\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!category || !action) {\n warn('args.category AND args.action are required in event()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: _format(category),\n eventAction: _format(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = _format(label);\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value !== 'number') {\n warn('Expected `args.value` arg to be a Number.');\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== 'undefined') {\n if (typeof nonInteraction !== 'boolean') {\n warn('`args.nonInteraction` must be a boolean.');\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== 'undefined') {\n if (typeof transport !== 'string') {\n warn('`args.transport` must be a string.');\n } else {\n if (['beacon', 'xhr', 'image'].indexOf(transport) === -1) {\n warn('`args.transport` must be either one of these values: `beacon`, `xhr` or `image`');\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'dimension'.length) === 'dimension';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n });\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'metric'.length) === 'metric';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n }); // Send to GA\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * exception:\n * GA exception tracking\n * @param args.description {String} optional\n * @param args.fatal {boolean} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function exception(_ref3, trackerNames) {\n var description = _ref3.description,\n fatal = _ref3.fatal;\n\n if (typeof ga === 'function') {\n // Required Fields\n var fieldObject = {\n hitType: 'exception'\n }; // Optional Fields\n\n if (description) {\n fieldObject.exDescription = _format(description);\n }\n\n if (typeof fatal !== 'undefined') {\n if (typeof fatal !== 'boolean') {\n warn('`args.fatal` must be a boolean.');\n } else {\n fieldObject.exFatal = fatal;\n }\n } // Send to GA\n\n\n send(fieldObject, trackerNames);\n }\n}\nexport var plugin = {\n /**\n * require:\n * GA requires a plugin\n * @param name {String} e.g. 'ecommerce' or 'myplugin'\n * @param options {Object} optional e.g {path: '/log', debug: true}\n * @param trackerName {String} optional e.g 'trackerName'\n */\n require: function require(rawName, options, trackerName) {\n if (typeof ga === 'function') {\n // Required Fields\n if (!rawName) {\n warn('`name` is required in .require()');\n return;\n }\n\n var name = trim(rawName);\n\n if (name === '') {\n warn('`name` cannot be an empty string in .require()');\n return;\n }\n\n var requireString = trackerName ? \"\".concat(trackerName, \".require\") : 'require'; // Optional Fields\n\n if (options) {\n if (_typeof(options) !== 'object') {\n warn('Expected `options` arg to be an Object');\n return;\n }\n\n if (Object.keys(options).length === 0) {\n warn('Empty `options` given to .require()');\n }\n\n ga(requireString, name, options);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"', \").concat(JSON.stringify(options)));\n }\n } else {\n ga(requireString, name);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"');\"));\n }\n }\n }\n },\n\n /**\n * execute:\n * GA execute action for plugin\n * Takes variable number of arguments\n * @param pluginName {String} e.g. 'ecommerce' or 'myplugin'\n * @param action {String} e.g. 'addItem' or 'myCustomAction'\n * @param actionType {String} optional e.g. 'detail'\n * @param payload {Object} optional e.g { id: '1x5e', name : 'My product to track' }\n */\n execute: function execute(pluginName, action) {\n var payload;\n var actionType;\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n if (args.length === 1) {\n payload = args[0];\n } else {\n actionType = args[0];\n payload = args[1];\n }\n\n if (typeof ga === 'function') {\n if (typeof pluginName !== 'string') {\n warn('Expected `pluginName` arg to be a String.');\n } else if (typeof action !== 'string') {\n warn('Expected `action` arg to be a String.');\n } else {\n var command = \"\".concat(pluginName, \":\").concat(action);\n payload = payload || null;\n\n if (actionType && payload) {\n ga(command, actionType, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"actionType: \\\"\".concat(actionType, \"\\\" with payload: \").concat(JSON.stringify(payload)));\n }\n } else if (payload) {\n ga(command, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"with payload: \".concat(JSON.stringify(payload)));\n }\n } else {\n ga(command);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n }\n }\n }\n }\n }\n};\n/**\n * outboundLink:\n * GA outboundLink tracking\n * @param args.label {String} e.g. url, or 'Create an Account'\n * @param {function} hitCallback - Called after processing a hit.\n */\n\nexport function outboundLink(args, hitCallback, trackerNames) {\n if (typeof hitCallback !== 'function') {\n warn('hitCallback function is required');\n return;\n }\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!args || !args.label) {\n warn('args.label is required in outboundLink()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: 'Outbound',\n eventAction: 'Click',\n eventLabel: _format(args.label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA; // Send to GA\n\n send(fieldObject, trackerNames);\n } else {\n // if ga is not defined, return the callback so the application\n // continues to work as expected\n setTimeout(hitCallback, 0);\n }\n}\nexport var testModeAPI = TestModeAPI;\nexport default {\n initialize: initialize,\n ga: ga,\n set: set,\n send: send,\n pageview: pageview,\n modalview: modalview,\n timing: timing,\n event: event,\n exception: exception,\n plugin: plugin,\n outboundLink: outboundLink,\n testModeAPI: TestModeAPI\n};","import redactEmail from './redactEmail';\nimport toTitleCase from './toTitleCase';\nexport default function format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var titleCase = arguments.length > 1 ? arguments[1] : undefined;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var _str = s || '';\n\n if (titleCase) {\n _str = toTitleCase(s);\n }\n\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n\n return _str;\n}","export default function removeLeadingSlash(string) {\n if (string.substring(0, 1) === '/') {\n return string.substring(1);\n }\n\n return string;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport UnboundOutboundLink from './components/OutboundLink';\nimport * as Defaults from './core';\nvar initialize = Defaults.initialize;\nexport { initialize };\nvar addTrackers = Defaults.addTrackers;\nexport { addTrackers };\nvar ga = Defaults.ga;\nexport { ga };\nvar set = Defaults.set;\nexport { set };\nvar send = Defaults.send;\nexport { send };\nvar pageview = Defaults.pageview;\nexport { pageview };\nvar modalview = Defaults.modalview;\nexport { modalview };\nvar timing = Defaults.timing;\nexport { timing };\nvar event = Defaults.event;\nexport { event };\nvar exception = Defaults.exception;\nexport { exception };\nvar plugin = Defaults.plugin;\nexport { plugin };\nvar outboundLink = Defaults.outboundLink;\nexport { outboundLink };\nvar testModeAPI = Defaults.testModeAPI;\nexport { testModeAPI };\nUnboundOutboundLink.origTrackLink = UnboundOutboundLink.trackLink;\nUnboundOutboundLink.trackLink = Defaults.outboundLink;\nexport var OutboundLink = UnboundOutboundLink;\nexport default _objectSpread(_objectSpread({}, Defaults), {}, {\n OutboundLink: OutboundLink\n});","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(store, parentSub) {\n this.store = store;\n this.parentSub = parentSub;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n this.handleChangeWrapper = this.handleChangeWrapper.bind(this);\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.handleChangeWrapper = function handleChangeWrapper() {\n if (this.onStateChange) {\n this.onStateChange();\n }\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = new Subscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, [\"reactReduxForwardedRef\"]);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n var subscription = new Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"]);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"]);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return new Subscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState();\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport { setBatch } from './utils/batch';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport shallowEqual from './utils/shallowEqual';\nsetBatch(batch);\nexport { Provider, connectAdvanced, ReactReduxContext, connect, batch, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","/**\n * This action type will be dispatched when your history\n * receives a location change.\n */\nexport var LOCATION_CHANGE = '@@router/LOCATION_CHANGE';\nexport var onLocationChanged = function onLocationChanged(location, action) {\n var isFirstRendering = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return {\n type: LOCATION_CHANGE,\n payload: {\n location: location,\n action: action,\n isFirstRendering: isFirstRendering\n }\n };\n};\n/**\n * This action type will be dispatched by the history actions below.\n * If you're writing a middleware to watch for navigation events, be sure to\n * look for actions of this type.\n */\n\nexport var CALL_HISTORY_METHOD = '@@router/CALL_HISTORY_METHOD';\n\nvar updateLocation = function updateLocation(method) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return {\n type: CALL_HISTORY_METHOD,\n payload: {\n method: method,\n args: args\n }\n };\n };\n};\n/**\n * These actions correspond to the history API.\n * The associated routerMiddleware will capture these events before they get to\n * your reducer and reissue them as the matching function on your history.\n */\n\n\nexport var push = updateLocation('push');\nexport var replace = updateLocation('replace');\nexport var go = updateLocation('go');\nexport var goBack = updateLocation('goBack');\nexport var goForward = updateLocation('goForward');\nexport var routerActions = {\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward\n};","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { matchPath } from \"react-router\";\n\nvar createSelectors = function createSelectors(structure) {\n var getIn = structure.getIn,\n toJS = structure.toJS;\n\n var isRouter = function isRouter(value) {\n return value != null && _typeof(value) === 'object' && getIn(value, ['location']) && getIn(value, ['action']);\n };\n\n var getRouter = function getRouter(state) {\n var router = toJS(getIn(state, ['router']));\n\n if (!isRouter(router)) {\n throw 'Could not find router reducer in state tree, it must be mounted under \"router\"';\n }\n\n return router;\n };\n\n var getLocation = function getLocation(state) {\n return toJS(getIn(getRouter(state), ['location']));\n };\n\n var getAction = function getAction(state) {\n return toJS(getIn(getRouter(state), ['action']));\n };\n\n var getSearch = function getSearch(state) {\n return toJS(getIn(getRouter(state), ['location', 'search']));\n };\n\n var getHash = function getHash(state) {\n return toJS(getIn(getRouter(state), ['location', 'hash']));\n }; // It only makes sense to recalculate the `matchPath` whenever the pathname\n // of the location changes. That's why `createMatchSelector` memoizes\n // the latest result based on the location's pathname.\n\n\n var createMatchSelector = function createMatchSelector(path) {\n var lastPathname = null;\n var lastMatch = null;\n return function (state) {\n var _ref = getLocation(state) || {},\n pathname = _ref.pathname;\n\n if (pathname === lastPathname) {\n return lastMatch;\n }\n\n lastPathname = pathname;\n var match = matchPath(pathname, path);\n\n if (!match || !lastMatch || match.url !== lastMatch.url) {\n lastMatch = match;\n }\n\n return lastMatch;\n };\n };\n\n return {\n getLocation: getLocation,\n getAction: getAction,\n getRouter: getRouter,\n getSearch: getSearch,\n getHash: getHash,\n createMatchSelector: createMatchSelector\n };\n};\n\nexport default createSelectors;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect, ReactReduxContext } from 'react-redux';\nimport { Router } from 'react-router';\nimport { onLocationChanged as _onLocationChanged } from './actions';\nimport createSelectors from './selectors';\n\nvar createConnectedRouter = function createConnectedRouter(structure) {\n var _createSelectors = createSelectors(structure),\n getLocation = _createSelectors.getLocation;\n /*\n * ConnectedRouter listens to a history object passed from props.\n * When history is changed, it dispatches action to redux store.\n * Then, store will pass props to component to render.\n * This creates uni-directional flow from history->store->router->components.\n */\n\n\n var ConnectedRouter =\n /*#__PURE__*/\n function (_PureComponent) {\n _inherits(ConnectedRouter, _PureComponent);\n\n function ConnectedRouter(props) {\n var _this;\n\n _classCallCheck(this, ConnectedRouter);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ConnectedRouter).call(this, props));\n var store = props.store,\n history = props.history,\n onLocationChanged = props.onLocationChanged;\n _this.inTimeTravelling = false; // Subscribe to store changes to check if we are in time travelling\n\n _this.unsubscribe = store.subscribe(function () {\n // Extract store's location\n var _getLocation = getLocation(store.getState()),\n pathnameInStore = _getLocation.pathname,\n searchInStore = _getLocation.search,\n hashInStore = _getLocation.hash; // Extract history's location\n\n\n var _history$location = history.location,\n pathnameInHistory = _history$location.pathname,\n searchInHistory = _history$location.search,\n hashInHistory = _history$location.hash; // If we do time travelling, the location in store is changed but location in history is not changed\n\n if (pathnameInHistory !== pathnameInStore || searchInHistory !== searchInStore || hashInHistory !== hashInStore) {\n _this.inTimeTravelling = true; // Update history's location to match store's location\n\n history.push({\n pathname: pathnameInStore,\n search: searchInStore,\n hash: hashInStore\n });\n }\n });\n\n var handleLocationChange = function handleLocationChange(location, action) {\n var isFirstRendering = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n // Dispatch onLocationChanged except when we're in time travelling\n if (!_this.inTimeTravelling) {\n onLocationChanged(location, action, isFirstRendering);\n } else {\n _this.inTimeTravelling = false;\n }\n }; // Listen to history changes\n\n\n _this.unlisten = history.listen(handleLocationChange); // Dispatch a location change action for the initial location.\n // This makes it backward-compatible with react-router-redux.\n // But, we add `isFirstRendering` to `true` to prevent double-rendering.\n\n handleLocationChange(history.location, history.action, true);\n return _this;\n }\n\n _createClass(ConnectedRouter, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unlisten();\n this.unsubscribe();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n history = _this$props.history,\n children = _this$props.children;\n return React.createElement(Router, {\n history: history\n }, children);\n }\n }]);\n\n return ConnectedRouter;\n }(PureComponent);\n\n ConnectedRouter.propTypes = {\n store: PropTypes.shape({\n getState: PropTypes.func.isRequired,\n subscribe: PropTypes.func.isRequired\n }).isRequired,\n history: PropTypes.shape({\n action: PropTypes.string.isRequired,\n listen: PropTypes.func.isRequired,\n location: PropTypes.object.isRequired,\n push: PropTypes.func.isRequired\n }).isRequired,\n basename: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n onLocationChanged: PropTypes.func.isRequired\n };\n\n var mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onLocationChanged: function onLocationChanged(location, action, isFirstRendering) {\n return dispatch(_onLocationChanged(location, action, isFirstRendering));\n }\n };\n };\n\n var ConnectedRouterWithContext = function ConnectedRouterWithContext(props) {\n var Context = props.context || ReactReduxContext;\n\n if (Context == null) {\n throw 'Please upgrade to react-redux v6';\n }\n\n return React.createElement(Context.Consumer, null, function (_ref) {\n var store = _ref.store;\n return React.createElement(ConnectedRouter, _extends({\n store: store\n }, props));\n });\n };\n\n ConnectedRouterWithContext.propTypes = {\n context: PropTypes.object\n };\n return connect(null, mapDispatchToProps)(ConnectedRouterWithContext);\n};\n\nexport default createConnectedRouter;","import { LOCATION_CHANGE } from './actions';\n\nvar createConnectRouter = function createConnectRouter(structure) {\n var fromJS = structure.fromJS,\n merge = structure.merge;\n\n var createRouterReducer = function createRouterReducer(history) {\n var initialRouterState = fromJS({\n location: history.location,\n action: history.action\n });\n /*\n * This reducer will update the state with the most recent location history\n * has transitioned to.\n */\n\n return function () {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialRouterState;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n type = _ref.type,\n payload = _ref.payload;\n\n if (type === LOCATION_CHANGE) {\n var location = payload.location,\n action = payload.action,\n isFirstRendering = payload.isFirstRendering; // Don't update the state ref for the first rendering\n // to prevent the double-rendering issue on initilization\n\n return isFirstRendering ? state : merge(state, {\n location: fromJS(location),\n action: action\n });\n }\n\n return state;\n };\n };\n\n return createRouterReducer;\n};\n\nexport default createConnectRouter;","/* Code from github.com/erikras/redux-form by Erik Rasmussen */\nvar getIn = function getIn(state, path) {\n if (!state) {\n return state;\n }\n\n var length = path.length;\n\n if (!length) {\n return undefined;\n }\n\n var result = state;\n\n for (var i = 0; i < length && !!result; ++i) {\n result = result[path[i]];\n }\n\n return result;\n};\n\nexport default getIn;","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport getIn from './getIn';\nvar structure = {\n fromJS: function fromJS(value) {\n return value;\n },\n getIn: getIn,\n merge: function merge(state, payload) {\n return _objectSpread({}, state, payload);\n },\n toJS: function toJS(value) {\n return value;\n }\n};\nexport default structure;","import createConnectedRouter from \"./ConnectedRouter\";\nimport createConnectRouter from \"./reducer\";\nimport createSelectors from \"./selectors\";\nimport plainStructure from \"./structure/plain\";\nexport { LOCATION_CHANGE, CALL_HISTORY_METHOD, onLocationChanged, push, replace, go, goBack, goForward, routerActions } from \"./actions\";\nexport { default as routerMiddleware } from \"./middleware\";\nexport var ConnectedRouter =\n/*#__PURE__*/\ncreateConnectedRouter(plainStructure);\nexport var connectRouter =\n/*#__PURE__*/\ncreateConnectRouter(plainStructure);\n\nvar _createSelectors =\n/*#__PURE__*/\ncreateSelectors(plainStructure),\n getLocation = _createSelectors.getLocation,\n getAction = _createSelectors.getAction,\n getHash = _createSelectors.getHash,\n getSearch = _createSelectors.getSearch,\n createMatchSelector = _createSelectors.createMatchSelector;\n\nexport { getLocation, getAction, getHash, getSearch, createMatchSelector };","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n // Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\n function miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n }\n\n function ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n }\n\n function isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n }\n\n function isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n }\n\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","function createThunkMiddleware(extraArgument) {\n return function (_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n if (typeof action === 'function') {\n return action(dispatch, getState, extraArgument);\n }\n\n return next(action);\n };\n };\n };\n}\n\nvar thunk = createThunkMiddleware();\nthunk.withExtraArgument = createThunkMiddleware;\n\nexport default thunk;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport { CALL_HISTORY_METHOD } from './actions';\n/**\n * This middleware captures CALL_HISTORY_METHOD actions to redirect to the\n * provided history object. This will prevent these actions from reaching your\n * reducer or any middleware that comes after this one.\n */\n\nvar routerMiddleware = function routerMiddleware(history) {\n return function (store) {\n return function (next) {\n return function (action) {\n // eslint-disable-line no-unused-vars\n if (action.type !== CALL_HISTORY_METHOD) {\n return next(action);\n }\n\n var _action$payload = action.payload,\n method = _action$payload.method,\n args = _action$payload.args;\n history[method].apply(history, _toConsumableArray(args));\n };\n };\n };\n};\n\nexport default routerMiddleware;","//\r\n// Strongly typed interfaces for the API's standard JSON responses\r\n//\r\n\r\nexport enum ResultType {\r\n Ok = \"Ok\",\r\n NotFound = \"NotFound\",\r\n NoSeat = \"NoSeat\",\r\n InsufficientPermissions = \"InsufficientPermissions\",\r\n Failure = \"Failure\",\r\n Forbidden = \"Forbidden\",\r\n QuotaExceeded = \"QuotaExceeded\",\r\n NetworkFailure = \"NetworkFailure\",\r\n UploadTooLarge = \"UploadTooLarge\"\r\n}\r\n\r\nexport interface ApiResponse {\r\n result: ResultType | string;\r\n resultMessage?: string;\r\n}\r\n\r\nexport interface ApiDataResponse extends ApiResponse {\r\n data: TData | null;\r\n}\r\n","import { IStringLocalizer } from '../../../utilities/IStringLocalizer';\r\nimport RevisionRequestManager from '../../StateControllers/Survey/RevisionRequestManager';\r\nimport { ExtensionRequestModel } from '../../StateControllers/Survey/SurveyResponse/SurveyResponseModels';\r\nimport { DynamicRegulation } from '../Compliance/DynamicRegulation';\r\nimport { FileTableEntry } from '../Documents/DocumentModels';\r\nimport { InviteSupplierModel, InviteSupplierRowModel } from '../Supplier/Supplier';\r\n\r\n/*\r\n userName: first + last name of user\r\n sendingEmailAddress: connected email (if microsoft email/gmail is connected) or same as emailAddress (used for visual display only)\r\n emailAddress: email address associated with account\r\n */\r\nexport interface VerifiedSenderAddresses {\r\n userName: string,\r\n sendingEmailAddress: string\r\n emailAddress: string\r\n}\r\n\r\nexport interface SurveyInventorySummaryMetadata {\r\n rowSummaryContent: SummaryRowContent[];\r\n hasLinkedMaterials: boolean;\r\n}\r\n\r\nexport interface SummaryRowContent {\r\n columnId: string;\r\n value: string;\r\n}\r\n\r\nexport enum SurveyStatusState {\r\n Sent = 0,\r\n InProgress = 1,\r\n ResponseReceived = 2,\r\n AllAccepted = 3,\r\n Draft = 4,\r\n PartiallyAccepted = 5,\r\n RevisionSent = 6,\r\n RevisonInProgress = 7,\r\n RevisionResponseReceived = 8,\r\n RequestInitiated = 9,\r\n RevisionRequestInitiated = 10,\r\n CustomerAction = 11,\r\n}\r\n\r\nexport interface SurveyReminder {\r\n ownerId: string | null;\r\n requestId: string | null;\r\n reminderId: string | null;\r\n languageToReminderMessageMap: { [language: string]: string };\r\n scheduledDaysSinceRequestSent: number;\r\n scheduledSendDate: number;\r\n state: string;\r\n peekLockTimeout: number;\r\n scheduledSendDateUnix: number\r\n}\r\n\r\nexport interface QuestionnaireAnswerThatMakesBomDataRequiredSetting {\r\n pageTitle: string;\r\n questionText: string;\r\n nativeAnswer: string;\r\n}\r\n\r\nexport interface RevisionDetails {\r\n revisionInstructions: string;\r\n pageIndex: number;\r\n questionIndex: number;\r\n columnId: string;\r\n}\r\n\r\nexport interface QuestionRevision {\r\n revisionInstructions: string;\r\n pageIndex: number;\r\n questionIndex: number;\r\n}\r\n\r\nexport interface BomColumnRevision {\r\n revisionInstructions: string;\r\n columnId: string;\r\n}\r\n\r\nexport interface GeneralRevisionRequest {\r\n generalRevisionInstructions: string;\r\n dateSentIso8601: string | null;\r\n dateRevisionResponseReceivedIso8601: string | null;\r\n sentTo: string | null;\r\n}\r\n\r\nexport interface SupplierQuestionnaireRevisionRequest extends GeneralRevisionRequest {\r\n supplierQuestionRevisions: QuestionRevision[];\r\n}\r\n\r\nexport interface BomRevisionRequest extends GeneralRevisionRequest {\r\n responseInventoryId: string;\r\n bomQuestionnaireQuestionRevisions: QuestionRevision[];\r\n attestationQuestionnaireQuestionRevisions: QuestionRevision[];\r\n bomColumnRevisions: BomColumnRevision[];\r\n sustainabilityRevisionInstructions: string;\r\n circularityRevisionInstructions: string;\r\n vocRevisionInstructions: string;\r\n dynamicRegulationRevisionInstructions: { [dynamicRegulationId: string]: string };\r\n}\r\n\r\nexport interface SurveyHistoryEntryGranularRevisionRequest extends GeneralRevisionRequest {\r\n supplierQuestionnaireRevisionRequest: SupplierQuestionnaireRevisionRequest | null;\r\n bomRevisionRequestTable: { [responseInventoryId: string]: BomRevisionRequest };\r\n}\r\n\r\nexport interface SurveyRequestInventoryMetadata {\r\n inventoryId: string;\r\n customizedName: string;\r\n originalName: string;\r\n}\r\n\r\nexport interface SurveyOfflineResponseData {\r\n supplierResponseText: string;\r\n notes: string;\r\n fileIds: string[];\r\n dateLastUpdated: string; // ISO8601 formatted date time\r\n}\r\n\r\nexport interface SupplierQuestionnaireData {\r\n dateAccepted: string | null; // ISO8601\r\n questionnaire: Questionnaire;\r\n revisionRequest: SupplierQuestionnaireRevisionRequest | null;\r\n files: FileTableEntry[] | null | undefined;\r\n}\r\n\r\nexport interface SurveyRequestResponseHistoryInventoryData {\r\n responseInventoryId: string;\r\n responsePublicInventoryId: string | null;\r\n responseSharedMaterialId: string | null;\r\n targetInventoryId: string | null;\r\n dateAccepted: string | null; // null if not accepted\r\n revisionRequest: BomRevisionRequest | null;\r\n}\r\n\r\nexport interface SurveyRequestResponseHistoryEntry {\r\n historyId: string;\r\n dateReceived: string; // ISO8601\r\n dateAccepted: string | null; // ISO8601, or null if never accepted\r\n supplierQuestionnaireData: SupplierQuestionnaireData | null;\r\n inventoryDataList: SurveyRequestResponseHistoryInventoryData[];\r\n offlineResponseData: SurveyOfflineResponseData | null; // null if no data\r\n revisionEmailText: string;\r\n dateRevisionSent: string | null; // ISO8601\r\n dateRevisionResponseReceived: string | null; // ISO8601\r\n}\r\n\r\nexport interface SurveyRequestNote {\r\n ownerId: string | null;\r\n requestId: string | null;\r\n dateTimePosted: string;\r\n posterName: string;\r\n posterEmail: string;\r\n note: string;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport enum SurveySendStateType {\r\n None,\r\n SendingSurvey,\r\n SendSurveyFailed,\r\n SendSurveyContainsLinkedMaterials,\r\n SendSurveySucceeded,\r\n SendSurveyContainsInvalidFromEmaillAddress,\r\n SendSurveyContainsInvalidCcEmailList,\r\n SendSurveyRefreshTokenFailed\r\n}\r\n\r\nexport enum OverallSurveyType {\r\n BomRelated = \"BomRelated\",\r\n SupplierOnly = \"SupplierOnly\"\r\n}\r\n\r\nexport enum SaveTemplateMode {\r\n Default,\r\n SaveDraftsOnContinue,\r\n SendSurveysOnContinue\r\n}\r\n\r\n//State corresponding to how the Survey UI displays\r\nexport interface SurveyUi {\r\n currentPage: number;\r\n currentLanguage: string;\r\n currentState: SurveyMode;\r\n currentSection: DisplaySection;\r\n showCustomName: boolean;\r\n showErrorMessage: boolean;\r\n dataLoaded: boolean;\r\n showDataSaveMessage: boolean;\r\n sentReminderAlert: boolean;\r\n errorReminderNoMessageAlert: boolean;\r\n errorReminderAlert: boolean;\r\n sendReminderMessage: string;\r\n showErrorScreen: boolean;\r\n showNotFoundErrorScreen: boolean;\r\n surveySendStateType: SurveySendStateType;\r\n responseHistoryListIsExpanded: boolean;\r\n revisionRequestManager: RevisionRequestManager | null;\r\n offlineResponseSupplierResponseInputText: string;\r\n offlineResponseNotesInputText: string;\r\n offlineResponseAttachments: FileList | null;\r\n addOfflineResponseSuccess: boolean | null;\r\n sendGranularRevisionRequestMode: boolean;\r\n viewGranularRevisionRequestHistoryEntryId: string | null;\r\n surveyHasRequestsThatAreRedundantWithCustomQuestionnaire: boolean;\r\n showAdvancedIngredientColumns: boolean;\r\n activeSendOfflineProcessId: string;\r\n activeAcceptOfflineProcessId: string;\r\n showMaterialsTables: boolean;\r\n showMissingSupplierMessage: boolean;\r\n currentTemplateId: string | null;\r\n saveTemplateMode: SaveTemplateMode;\r\n newTemplateName: string;\r\n saveTemplateAnyRadioSelected: boolean;\r\n saveTemplateSelectedTemplateId: string | null;\r\n}\r\n\r\nexport enum DisplaySection {\r\n MaterialDisclosure = \"MaterialDisclosure\",\r\n ComplianceData = \"ComplianceData\",\r\n SustainabilityData = \"SustainibilityData\",\r\n CircularityData = \"CircularityData\",\r\n VocData = \"VocData\",\r\n SupplierInfo = \"SupplierInfo\",\r\n DocumentsCertifications = \"DocumentsCertification\",\r\n CustomQuestions = \"CustomQuestion\",\r\n None = \"None\"\r\n}\r\n\r\nexport enum SurveyMode {\r\n New = 0,\r\n EditExisting = 1,\r\n Template\r\n}\r\n\r\nexport enum QuestionValidationType {\r\n None = 0,\r\n Guid = 1\r\n}\r\n\r\nexport interface QuestionnairePredefinedAnswer {\r\n nativeAnswer: string;\r\n languageToAnswerMap: { [language: string]: string };\r\n}\r\n\r\nexport interface QuestionnaireQuestion {\r\n text: string;\r\n dynamicField: string;\r\n languageToTextMap: { [language: string]: string };\r\n type: string;\r\n value: string;\r\n valueComment: string;\r\n requireFileAttachment: boolean;\r\n predefinedAnswers: QuestionnairePredefinedAnswer[];\r\n nextPageIndexMap: { [nativeAnswer: string]: number };\r\n fileIds: string[];\r\n id: string;\r\n isRequired: boolean;\r\n instructions: string;\r\n languageToInstructionsMap: { [language: string]: string };\r\n conditionalOnQuestion: {\r\n pageType: QuestionnairePageType | null;\r\n questionIndex: number;\r\n answers: string[];\r\n requireOnlyIfParentIsRequired: boolean;\r\n };\r\n feedbackMessage: {\r\n text: string;\r\n answers: string[];\r\n };\r\n questionValidation: {\r\n validationType: QuestionValidationType;\r\n validationMessage: string;\r\n }\r\n summaryFieldKey: string | null;\r\n summaryFieldKeyInventoryFileType: number | null;\r\n summaryFieldQuestionValueToSummaryTableValueMap: { [k: string]: string };\r\n summaryFieldMultiCheckboxIndexToKeyList: string[];\r\n nativeAnswerToMultipleSummaryKeyMap: { [k: string]: string };\r\n metadataPageKey: string;\r\n metadataFieldKey: string;\r\n scipDataKey: string;\r\n disabledValues: string[];\r\n hidden: boolean;\r\n subType: string;\r\n}\r\n\r\nexport enum SurveyPageType {\r\n Instructions,\r\n SupplierQuestionnaire,\r\n AddMaterials,\r\n GroupInventories,\r\n Inventory,\r\n Bom,\r\n Batch\r\n}\r\n\r\n// TODO: KYLE REFCHECK\r\nexport enum QuestionnairePageType {\r\n Custom = \"Custom\",\r\n CaProp65 = \"CaProp65\",\r\n ConflictMinerals = \"ConflictMinerals\",\r\n Red2Green = \"Red2Green\",\r\n REACHCompliance = \"REACHCompliance\",\r\n RoHSCompliance = \"RoHSCompliance\",\r\n SDS = \"SDS\",\r\n LEEDv4 = \"LEEDv4\",\r\n CradleToCradle = \"CradleToCradle\",\r\n ReachRohsStatement = \"ReachRohsStatement\",\r\n Teknion = \"Teknion\",\r\n GeneralCustomUI = \"GeneralCustomUI\",\r\n HPDCustomUI = \"HPDCustomUI\",\r\n Declare = \"Declare\",\r\n ReachAuthorisationCompliance = \"ReachAuthorisationCompliance\",\r\n ScipCustomUI = \"ScipCustomUI\",\r\n ScipQuestionnaire = \"ScipQuestionnaire\",\r\n HniEds = \"HniEds\",\r\n Sustainability = \"Sustainability\",\r\n SustainabilityWaterUse = \"SustainabilityWaterUse\",\r\n SustainabilityEmbodiedCarbon = \"SustainabilityEmbodiedCarbon\",\r\n SustainabilityAssessment = \"SustainabilityAssessment\",\r\n SustainabilityTransparency = \"SustainabilityTransparency\",\r\n SustainabilityOptimization = \"SustainabilityOptimization\",\r\n Circularity = \"Circularity\",\r\n WaterUse = \"WaterUse\",\r\n EmbodiedCarbon = \"EmbodiedCarbon\",\r\n DocumentsAndCertifications = \"DocumentsAndCertifications\",\r\n SDSCustomUI = \"SDSCustomUI\",\r\n DynamicRegulation = \"DynamicRegulation\",\r\n Attestation = \"Attestation\",\r\n BOM = \"BOM\",\r\n VocAll = \"VocAll\",\r\n VocTransparency = \"VocTransparency\",\r\n VocAssessment = \"VocAssessment\",\r\n VocOptimization = \"VocOptimization\",\r\n ReachAuthorisationV2Compliance = \"ReachAuthorisationV2Compliance\",\r\n}\r\n\r\nexport interface QuestionnairePage {\r\n title: string;\r\n languageToTitleMap: { [language: string]: string };\r\n defaultNextPageIndex: number;\r\n type: QuestionnairePageType;\r\n questions: QuestionnaireQuestion[];\r\n regulationId?: string;\r\n hasPageBeenVisited: boolean;\r\n nextClicked?: boolean;\r\n questionRegulatoryData: QuestionRegulatoryData[] | null;\r\n regulatoryListIds: string[];\r\n}\r\n\r\nexport interface QuestionRegulatoryData {\r\n regulationId: string;\r\n applicableQuestionId: string;\r\n containsSubstancesResponse: string;\r\n doesNotContainSubstancesResponse: string;\r\n regulationListIds: string[];\r\n}\r\n\r\nexport interface ComplianceRegulationDetails {\r\n regulationId: string;\r\n regulationListIds: string[];\r\n}\r\n\r\nexport interface Questionnaire {\r\n questionnaireId: string;\r\n formatVersion: number;\r\n languageList: string[];\r\n nativeLanguage: string;\r\n name: string;\r\n languageToNameMap: { [language: string]: string };\r\n instructions: string;\r\n languageToInstructionsMap: { [language: string]: string };\r\n type: number;\r\n showBranding: boolean;\r\n pages: QuestionnairePage[];\r\n inventoryIdList: string[];\r\n}\r\n\r\nexport enum CompleteStatus {\r\n Complete = \"Complete\",\r\n Incomplete = \"Incomplete\",\r\n Error = \"Error\"\r\n}\r\n\r\nexport enum SustainabilityAndCircularityIds {\r\n EmbodiedCarbon = \"EmbodiedCarbon\",\r\n WaterUsageData = \"WaterUsageData\",\r\n EndOfLifeOptions = \"EndOfLifeOptions\",\r\n Contact = \"Contact\",\r\n Instructions = \"Instructions\",\r\n CarbonTransparency = \"SustainabilityTransparency\",\r\n CarbonOther = \"SustainabilityOther\",\r\n}\r\n\r\nexport enum VocIds {\r\n VocTransparency = \"VocTransparency\",\r\n VocOther = \"VocOther\",\r\n}\r\n\r\nexport enum StandardRequestedDocumentType {\r\n HPD = \"HPD\",\r\n VOC = \"VOC\",\r\n C2C = \"C2C\"\r\n}\r\n\r\nexport interface RequestedDocument {\r\n documentCertificationType: string;\r\n documentNameIfOther: string\r\n}\r\n\r\nexport interface SurveyDataRequested {\r\n materialDisclosureAsked: boolean;\r\n complianceList: string[];\r\n circularityDataAsked: boolean;\r\n sustainabilityDataAsked: boolean;\r\n embodiedCarbonDataAsked: boolean;\r\n waterUseDataAsked: boolean;\r\n carbonTransparencyDataAsked: boolean;\r\n carbonOtherDataAsked: boolean;\r\n vocDataAsked: boolean;\r\n vocTransparencyDataAsked: boolean;\r\n vocOtherDataAsked: boolean;\r\n documentsCertificationList: RequestedDocument[];\r\n complianceDataAsked?: boolean,\r\n documentsAsked?: boolean,\r\n customQuestionsAsked?: boolean\r\n anyPassportDataAsked: boolean;\r\n}\r\n\r\nexport interface SurveyData {\r\n verifiedEmailUsers: VerifiedSenderAddresses[];\r\n connectedEmailUsers: VerifiedSenderAddresses[];\r\n manufacturerLogoFileId: string | null;\r\n usersLanguage: string;\r\n requestableColumnIdToFriendlyNameMap: { [columnId: string]: string },\r\n inventoryIdToSummaryRowContentsMap: { [inventoryId: string]: SurveyInventorySummaryMetadata };\r\n columnIdsInSummaryRows: string[];\r\n questionnaireTable: { [questionnaireID: string]: Questionnaire };\r\n revisableHistoryEntryId: string;\r\n enterpriseSupplierSurveyEnabled: boolean;\r\n surveyResponsesThisYearQuotaUsage: number;\r\n defaultSurveyScheduledReminderHour: number;\r\n historyIdsThatAreUnderQuota: string[];\r\n offlineResponseFileTable: { [fileId: string]: OfflineResponseFile };\r\n responseInventoryMetadataTable: { [responseInventoryId: string]: SurveyResponseInventoryMetadata };\r\n templates: SurveyTemplateDataModel[];\r\n surveysToSend: InviteSupplierModel[];\r\n dynamicRegulations: DynamicRegulation[];\r\n offlineProcessDataResponses: any[];\r\n offlineProcessQueuedMaterials: any[];\r\n extensionRequest: ExtensionRequestModel | null;\r\n}\r\n\r\nexport function emptySurveyMetadata(): SurveyData {\r\n return {\r\n verifiedEmailUsers: [],\r\n connectedEmailUsers: [],\r\n manufacturerLogoFileId: null,\r\n usersLanguage: \"en\",\r\n requestableColumnIdToFriendlyNameMap: {},\r\n inventoryIdToSummaryRowContentsMap: {},\r\n columnIdsInSummaryRows: [],\r\n questionnaireTable: {},\r\n revisableHistoryEntryId: \"\",\r\n enterpriseSupplierSurveyEnabled: true,\r\n surveyResponsesThisYearQuotaUsage: 0,\r\n defaultSurveyScheduledReminderHour: 0,\r\n historyIdsThatAreUnderQuota: [],\r\n offlineResponseFileTable: {},\r\n responseInventoryMetadataTable: {},\r\n templates: [],\r\n surveysToSend: [],\r\n dynamicRegulations: [],\r\n offlineProcessDataResponses: [],\r\n offlineProcessQueuedMaterials: [],\r\n extensionRequest: null\r\n };\r\n}\r\n\r\nexport enum SurveyType {\r\n RequestMaterialData_SpecificMaterials = \"RequestMaterialData_SpecificMaterials\",\r\n RequestMaterialData_AllowSupplierToSpecifyMaterials = \"RequestMaterialData_AllowSupplierToSpecifyMaterials\",\r\n JustSupplierQuestionnaire = \"JustSupplierQuestionnaire\",\r\n ConsolidateCertifications = \"ConsolidateCertifications\"\r\n}\r\n\r\nexport interface SurveyResponse {\r\n responseId: string;\r\n requestOwnerId: string;\r\n requestId: string;\r\n state: number;\r\n lastSubmittedResponseWasPublished: boolean;\r\n responseDataJson: string | null;\r\n}\r\n\r\nexport interface SurveyRequestMetadata {\r\n requireSuppliersToDiscloseRegulatoryIngredients: boolean;\r\n additionalColumnIdIdentifiers: string[];\r\n}\r\n\r\nexport interface SurveyRequest {\r\n ownerId: string | null;\r\n requestId: string | null;\r\n surveyType: SurveyType;\r\n bomType: number; // 0: specific material data request, 1: open material data request, 2: only supplier-level info questionnaire request, 3: consolidate certifications request\r\n surveyName: string;\r\n tags: string[];\r\n dataRequested: SurveyDataRequested;\r\n fromName: string;\r\n fromEmailAddress: string;\r\n requestInventoryMetadataList: SurveyRequestInventoryMetadata[];\r\n activationCode: string;\r\n state: number; /// 0 = sent, 1 = in progress, 2 = response received, 3 = all accepted, 4 = draft, 5 = partially accepted, 6 = revision sent, 7 = revision in progress, 8 = revision response received, 9 = request initiated, 10 = revision request initiated\r\n workflowStatus: string;\r\n isInStateOfBeingWorkedOnBySupplier: boolean;\r\n supplierId: string | null;\r\n sendToName: string;\r\n sendToEmail: string;\r\n sendToCompany: string;\r\n acceptedByName: string;\r\n acceptedByEmail: string;\r\n dateSent: string | null; // iso8601\r\n requestorName: string;\r\n requestorEmail: string;\r\n metadataTemplateId?: string | null;\r\n bomQuestionnaireId: string | null;\r\n supplierQuestionnaireId: string | null;\r\n attestationQuestionnaireId: string | null;\r\n responseHistoryList: SurveyRequestResponseHistoryEntry[]\r\n isActivatable: boolean;\r\n responseOwnershipHistoryList: any[]; //TODO\r\n languageList: string[];\r\n nativeLanguage: string | null;\r\n ccEmailList: string[];\r\n emailSubject: string;\r\n emailMessage: string;\r\n entireEmailHtml: string;\r\n requestInstructions: string;\r\n completionInstructions: string;\r\n languageToEmailSubjectMap: { [cultureName: string]: string };\r\n languageToEmailMessageMap: { [cultureName: string]: string };\r\n languageToRequestInstructionsMap: { [cultureName: string]: string };\r\n languageToCompletionInstructionsMap: { [cultureName: string]: string };\r\n languageToSendIn: string | null;\r\n useManufacturerLogo: boolean;\r\n preFillBomQuestionnaireFromSummaryData: boolean;\r\n preFillSupplierQuestionnaireFromSummaryData: boolean;\r\n requireValidationOnResponse: boolean;\r\n autoAcceptEnabled: boolean;\r\n inventoryMetadataToOverwrite: any;\r\n scheduledReminders: SurveyReminder[];\r\n reminderHistory: string[]; // array of is8601 dates\r\n sdsRequested: boolean;\r\n questionnaireAnswerThatMakesBomDataRequired?: QuestionnaireAnswerThatMakesBomDataRequiredSetting | null;\r\n canSendReminderFor: boolean;\r\n numRemindersSent: number;\r\n dateLastReminder?: string; // iso 8601 date\r\n notes: SurveyRequestNote[];\r\n canBeRevised: boolean;\r\n mostRecentHistoryEntry?: any; //TODO\r\n makeBomDataRequiredOnQuestionnaireAnswer: boolean | null,\r\n fields: SurveyRequestedBomColumn[];\r\n openRequestMaterialNames: string[] | null;\r\n includeAttestationLetter: boolean;\r\n metadata: SurveyRequestMetadata;\r\n allowExtensionRequest: boolean;\r\n requestDataJson: string;\r\n bomTemplateConfiguration: BomColumnTemplateConfiguration | null;\r\n}\r\n\r\nexport function emptySurveyRequest(\r\n usersLanguage: string,\r\n columnIdToDefaultColumnRequiredFlagsTable: Readonly<{ [columnId: string]: ColumnRequiredFlags }>\r\n): SurveyRequest {\r\n return {\r\n ownerId: null,\r\n requestId: null,\r\n surveyType: SurveyType.RequestMaterialData_SpecificMaterials,\r\n bomType: 0,\r\n surveyName: \"\",\r\n tags: [],\r\n dataRequested: {\r\n materialDisclosureAsked: false,\r\n circularityDataAsked: false,\r\n sustainabilityDataAsked: false,\r\n embodiedCarbonDataAsked: false,\r\n waterUseDataAsked: false,\r\n carbonTransparencyDataAsked: false,\r\n carbonOtherDataAsked: false,\r\n vocDataAsked: false,\r\n vocTransparencyDataAsked: false,\r\n vocOtherDataAsked: false,\r\n complianceList: [],\r\n documentsCertificationList: [],\r\n anyPassportDataAsked: false\r\n },\r\n fromName: \"\",\r\n fromEmailAddress: \"\",\r\n requestInventoryMetadataList: [],\r\n activationCode: \"\",\r\n state: 0,\r\n workflowStatus: \"\",\r\n isInStateOfBeingWorkedOnBySupplier: false,\r\n supplierId: null,\r\n sendToName: \"\",\r\n sendToEmail: \"\",\r\n sendToCompany: \"\",\r\n acceptedByName: \"\",\r\n acceptedByEmail: \"\",\r\n dateSent: null,\r\n requestorName: \"\",\r\n requestorEmail: \"\",\r\n metadataTemplateId: null,\r\n bomQuestionnaireId: null,\r\n supplierQuestionnaireId: null,\r\n attestationQuestionnaireId: null,\r\n responseHistoryList: [],\r\n isActivatable: false,\r\n responseOwnershipHistoryList: [],//TODO\r\n languageList: [usersLanguage],\r\n nativeLanguage: \"\",\r\n ccEmailList: [],\r\n emailSubject: \"\",\r\n emailMessage: \"\",\r\n entireEmailHtml: \"\",\r\n requestInstructions: \"\",\r\n completionInstructions: \"\",\r\n languageToEmailSubjectMap: {},\r\n languageToEmailMessageMap: {},\r\n languageToRequestInstructionsMap: {},\r\n languageToCompletionInstructionsMap: {},\r\n languageToSendIn: \"\",\r\n useManufacturerLogo: false,\r\n preFillBomQuestionnaireFromSummaryData: false,\r\n preFillSupplierQuestionnaireFromSummaryData: false,\r\n requireValidationOnResponse: false,\r\n autoAcceptEnabled: false,\r\n inventoryMetadataToOverwrite: {},//TODO\r\n scheduledReminders: [],\r\n reminderHistory: [],\r\n sdsRequested: false,\r\n questionnaireAnswerThatMakesBomDataRequired: null,\r\n canSendReminderFor: false,\r\n numRemindersSent: 0,\r\n notes: [],\r\n canBeRevised: false,\r\n makeBomDataRequiredOnQuestionnaireAnswer: false,\r\n fields: [\r\n {\r\n columnId: \"level\",\r\n ...(columnIdToDefaultColumnRequiredFlagsTable[\"level\"])\r\n },\r\n {\r\n columnId: \"part-name\",\r\n ...(columnIdToDefaultColumnRequiredFlagsTable[\"part-name\"])\r\n },\r\n {\r\n columnId: \"casrn\",\r\n ...(columnIdToDefaultColumnRequiredFlagsTable[\"casrn\"])\r\n },\r\n {\r\n columnId: \"percent-by-weight\",\r\n ...(columnIdToDefaultColumnRequiredFlagsTable[\"percent-by-weight\"])\r\n },\r\n ],\r\n openRequestMaterialNames: null,\r\n requestDataJson: \"\",\r\n includeAttestationLetter: false,\r\n metadata: {\r\n requireSuppliersToDiscloseRegulatoryIngredients: false,\r\n additionalColumnIdIdentifiers: []\r\n },\r\n allowExtensionRequest: true,\r\n bomTemplateConfiguration: null\r\n };\r\n}\r\ninterface BomColumnTemplateConfiguration {\r\n extensibleColumns: string[];\r\n}\r\n// state of the survey\r\nexport interface SurveyState {\r\n surveyUi: SurveyUi;\r\n surveyRequest: SurveyRequest;\r\n surveyMetadata: SurveyData;\r\n}\r\n\r\nexport interface SurveyRequestApiResponseBundle {\r\n surveyRequest: SurveyRequest;\r\n surveyData: SurveyData;\r\n}\r\n\r\nexport interface SurveyRequestApiRequestBundle extends SurveyRequestApiResponseBundle {\r\n shouldSend?: boolean;\r\n}\r\n\r\nexport interface SurveyResponseInventoryMetadata {\r\n inventoryName: string;\r\n responseInventoryId: string;\r\n bomQuestionnaire: Questionnaire;\r\n attestationQuestionnaire: Questionnaire;\r\n targetInventoryId: string | null;\r\n sdsMetadata: SurveyResponseInventorySdsMetadata[]\r\n}\r\nexport interface SurveyResponseInventorySdsMetadata {\r\n fileId?: string | null; // TypeScript doesn't support Guid natively, so using string or null\r\n documentId: number;\r\n fileName: string;\r\n documentUrl: string;\r\n}\r\n\r\nexport interface SurveyTemplateDataModel {\r\n ownerId: string | null;\r\n templateId: string | null;\r\n name: string;\r\n dataRequested: SurveyDataRequested;\r\n bomQuestionnaireId: string | null;\r\n supplierQuestionnaireId: string | null;\r\n attestationQuestionnaireId: string | null;\r\n languageList: string[];\r\n nativeLanguage: string | null;\r\n ccEmailList: string;\r\n emailSubject: string;\r\n emailMessage: string;\r\n requestInstructions: string;\r\n completionInstructions: string;\r\n languageToEmailSubjectMap: { [cultureName: string]: string };\r\n languageToEmailMessageMap: { [cultureName: string]: string };\r\n languageToRequestInstructionsMap: { [cultureName: string]: string };\r\n languageToCompletionInstructionsMap: { [cultureName: string]: string };\r\n scheduledReminders: SurveyReminder[];\r\n sdsRequested: boolean;\r\n questionnaireAnswerThatMakesBomDataRequired?: QuestionnaireAnswerThatMakesBomDataRequiredSetting | null;\r\n bomColumns: SurveyRequestedBomColumn[];\r\n useManufacturerLogo: boolean;\r\n preFillBomQuestionnaireFromSummaryData: boolean | null;\r\n preFillSupplierQuestionnaireFromSummaryData: boolean | null;\r\n makeBomDataRequiredOnQuestionnaireAnswer: boolean | null;\r\n requireSuppliersToDiscloseRegulatoryIngredients: boolean;\r\n additionalColumnIdIdentifiers: string[];\r\n includeAttestationLetter: boolean;\r\n}\r\n\r\nexport interface OfflineResponseApiData {\r\n requestId: string;\r\n supplierResponseText: string;\r\n notes: string;\r\n uploadedFileIds: string[]\r\n}\r\n\r\n// retrieved via localStorage.getItem(\"newSurveyData\");\r\nexport interface GetSurveyMetadataRequest {\r\n startFromSurveyTemplateId: string | null;\r\n supplierIdsForSurvey: string[];\r\n inventoryIdsForSurvey: string[];\r\n mode: \"bom\" | \"open-bom\" | \"supplier\";\r\n}\r\n\r\nexport interface SurveyRequestedBomColumn {\r\n columnId: string;\r\n requiredInSummaryRow: boolean;\r\n requiredInLeafRows: boolean;\r\n requiredInNonSummaryNonLeafRows: boolean;\r\n}\r\n\r\nexport interface SurveyableColumn {\r\n columnId: string;\r\n pairedColumnId: string | null; // null when no column paired\r\n canRemove: boolean;\r\n isAdvancedColumn: boolean;\r\n}\r\n\r\nexport interface ColumnRequiredFlags {\r\n requiredInSummaryRow: boolean;\r\n requiredInNonSummaryNonLeafRows: boolean;\r\n requiredInLeafRows: boolean;\r\n}\r\n\r\nexport interface OfflineResponseFile {\r\n filename: string\r\n}\r\n\r\nexport class SurveyComplianceRegulationValues {\r\n public static getLocalizedFriendlyDescriptionMap(dynRegs: Readonly) {\r\n const map: { [key: string]: string } = {};\r\n\r\n for (let dynReg of dynRegs) {\r\n map[dynReg.regulationId] = dynReg.config.name;\r\n }\r\n\r\n return map;\r\n }\r\n\r\n public static getLocalizedDisplayNameMap(dynRegs: Readonly) {\r\n const map: { [key: string]: string } = {};\r\n\r\n for (let dynReg of dynRegs) {\r\n map[dynReg.regulationId] = dynReg.config.displayName?.length > 0 ? dynReg.config.displayName : dynReg.config.name;\r\n }\r\n\r\n return map;\r\n }\r\n}\r\n\r\nexport class OfflineProcessAlertManagerValues {\r\n public static getProcessingTypeToFriendlyDescriptionMap(localizer: IStringLocalizer): { [key: string]: string } {\r\n return {\r\n \"CreateAndSendSurveys\": localizer.localizeString(\"Your survey is being sent.\"),\r\n \"CreateAndSendSupplierInviteSurveys\": localizer.localizeString(\"Your survey is being sent.\"),\r\n \"SendDraftSurvey\": localizer.localizeString(\"Your survey is being sent.\"),\r\n \"ActivateSurveyMaterials\": localizer.localizeString(\"Your survey is being activated.\"),\r\n \"AcceptSurveyMaterials\": localizer.localizeString(\"Your survey response is being accepted.\"),\r\n \"SubmitSurveyResponse\": localizer.localizeString(\"Your survey response is being submitted.\")\r\n };\r\n }\r\n\r\n public static getProcessingTypeToFailedDescriptionMap(localizer: IStringLocalizer): { [key: string]: string } {\r\n return {\r\n \"CreateAndSendSurveys\": localizer.localizeString(\"A survey failed to send.\"),\r\n \"CreateAndSendSupplierInviteSurveys\": localizer.localizeString(\"A survey failed to send.\"),\r\n \"SendDraftSurvey\": localizer.localizeString(\"A survey failed to send.\"),\r\n \"ActivateSurveyMaterials\": localizer.localizeString(\"A survey failed to activate.\"),\r\n \"AcceptSurveyMaterials\": localizer.localizeString(\"A survey response failed to be accepted.\"),\r\n \"SubmitSurveyResponse\": localizer.localizeString(\"A survey response failed to be submitted.\")\r\n };\r\n }\r\n\r\n public static getProcessingTypeToSuccessDescriptionMap(localizer: IStringLocalizer): { [key: string]: string } {\r\n return {\r\n \"CreateAndSendSurveys\": localizer.localizeString(\"Your survey has been sent.\"),\r\n \"CreateAndSendSupplierInviteSurveys\": localizer.localizeString(\"Your survey has been sent.\"),\r\n \"SendDraftSurvey\": localizer.localizeString(\"Your survey has been sent.\"),\r\n \"ActivateSurveyMaterials\": localizer.localizeString(\"Your survey has been activated.\"),\r\n \"AcceptSurveyMaterials\": localizer.localizeString(\"Your survey response has been accepted.\"),\r\n \"SubmitSurveyResponse\": localizer.localizeString(\"Your survey has been submitted.\")\r\n };\r\n }\r\n}\r\n\r\nexport enum OfflineProcessType {\r\n CreateAndSendSupplierInviteSurveys = \"CreateAndSendSupplierInviteSurveys\",\r\n ExportDashboard = \"ExportDashboard\",\r\n CreateAndSendOrSaveSurvey = \"CreateAndSendOrSaveSurvey\",\r\n SendDraftSurvey = \"SendDraftSurvey\",\r\n Report = \"Report\"\r\n}\r\n\r\nexport enum OfflineProcessingStageType {\r\n Queued = \"Queued\",\r\n Working = \"Working\",\r\n TotallyComplete = \"TotallyComplete\",\r\n Failed = \"Failed\"\r\n}\r\n\r\nexport enum QuestionType {\r\n MultipleDropdown = \"multiple-dropdown\",\r\n DataTable = \"data-table\",\r\n MultiCheckbox = \"multi-checkbox\",\r\n Attestation = \"attestation\",\r\n Multiple = \"multiple\",\r\n Text = \"text\",\r\n Comment = \"comment\",\r\n File = \"file\",\r\n Datetime = \"date-time\",\r\n ImageUrl = \"image-url\",\r\n Url = \"url\",\r\n MultiText = \"multi-text\",\r\n ScipArticleCategory = \"scip-article-category\",\r\n CsiDivision = \"csi-division\",\r\n ScipArticleIdentifier = \"scip-article-identifier\",\r\n IngredientTable = \"ingredients-table\",\r\n Certification = \"certification\",\r\n ComplianceResponseDate = \"compliance-response-date\",\r\n ComplianceResponseDateReach = \"compliance-response-date-reach\",\r\n ScipCharacteristics = \"scip-characteristics\",\r\n CheckboxAndComment = \"checkbox-and-comment\",\r\n CmrtComplianceAnswer = \"cmrt-compliance-answer\",\r\n CmrtCompanyQuestionAnswer = \"cmrt-company-question-answer\",\r\n CmrtDetails = \"cmrt_details_json\",\r\n Subsection = \"sub-section\"\r\n}\r\n\r\nexport enum QuestionSubType {\r\n FDA = \"fda-citation-data-table\",\r\n FCN = \"fcn-data-table\",\r\n Polymer = \"polymer-data-table\",\r\n Packaging = \"packaging-layer-data-table\",\r\n PrintingTechnique = \"printing-technique-data-table\",\r\n ProductionSite = \"production-site-data-table\"\r\n}\r\n\r\nexport interface ArticleIdentifier {\r\n identifierTypeId: string;\r\n value: string;\r\n typeOtherText: string;\r\n}\r\n\r\ninterface SurveyResponseInventoryDataMetadata {\r\n questionnairePageIndicesVisited: number[];\r\n bomEditorPageVisited: boolean;\r\n}\r\n\r\nexport interface SurveyResponseInventoryData {\r\n responderOwnedResponseInventoryId: string;\r\n requestorOwnedResponseInventoryId: string | null;\r\n requestorTargetLibraryInventoryId: string | null;\r\n publicInventoryId: string | null;\r\n sharedMaterialId: string | null;\r\n revisionRequest: BomRevisionRequest | null;\r\n questionnaireHasBeenWalkedThrough: boolean;\r\n bomDataHasBeenAdded: boolean;\r\n supplierLibraryInventoryId: string | null;\r\n metadata: SurveyResponseInventoryDataMetadata;\r\n}\r\n\r\nexport enum ResponseBomType {\r\n SuppliedBoms = \"SuppliedBoms\",\r\n Open = \"Open\",\r\n None = \"None\",\r\n CertificationConsolidation = \"CertificationConsolidation\"\r\n}\r\n\r\n// see: class DbSurveyResponseInventoryGroup\r\nexport interface SurveyResponseInventoryGroup {\r\n groupName: string;\r\n groupInventoryId: string | null;\r\n responderOwnedResponseInventoryIdList: string[];\r\n supplierLibraryInventoryId: string | null;\r\n publicInventoryId: string | null;\r\n sharedMaterialId: string | null;\r\n}\r\n\r\nexport type GroupedResponseInventories = { [groupName: string]: SurveyResponseInventoryGroup };\r\n\r\nexport interface SurveyResponseOfflineProcessStatus {\r\n isOfflineProcessStarted: boolean;\r\n}\r\n\r\nexport interface SurveyResponseModel {\r\n responseId: string;\r\n ownerId: string;\r\n requestOwnerId: string;\r\n requestId: string;\r\n state: number;\r\n lastSubmittedResponseWasPublished: boolean;\r\n responseDataJson: string | null;\r\n bomType: ResponseBomType;\r\n isRevisionResponse: boolean;\r\n supplierQuestionnaireData: SupplierQuestionnaireData | null;\r\n inventoryDataList: SurveyResponseInventoryData[];\r\n revisionReqInvNames: string[];\r\n companyName: string;\r\n groupedResponseInventories: GroupedResponseInventories;\r\n files: FileTableEntry[];\r\n}\r\n\r\nexport class MetadataFieldTypes {\r\n // TODO: build out and consolidate the rest of the types\r\n static readonly MultipleDropdown = \"multiple-dropdown\";\r\n static readonly MultiText = \"multi-text\";\r\n static readonly DataTable = \"data-table\";\r\n static readonly IngredientsTable = \"ingredients-table\";\r\n static readonly Certification = \"certification\";\r\n static readonly CsiDivision = \"csi-division\";\r\n static readonly ScipArticleIdentifier = \"scip-article-identifier\";\r\n static readonly ScipArticleCategory = \"scip-article-category\";\r\n static readonly MultiCheckbox = \"multi-checkbox\";\r\n static readonly Attestation = \"attestation\";\r\n static readonly Subsection = \"sub-section\";\r\n}\r\n\r\nexport interface InventoryRow {\r\n isExpanded: boolean;\r\n isVisible: boolean;\r\n inventoryId: string;\r\n rowIndex: number;\r\n rowNumber: number;\r\n level: number;\r\n linkedInventoryId: string;\r\n isReachArticle: boolean;\r\n missingLinkedComponent: boolean;\r\n isLinkedRow: boolean;\r\n assignedSubstanceId: string | null;\r\n assignedPrivateSubstanceId: string | null;\r\n deepProprietarySubstanceId: string | null;\r\n casNumber: string;\r\n chemicalName: string;\r\n privateCasNumber: string;\r\n privateChemicalName: string;\r\n privateHazardRating: string;\r\n privateHcodes: string;\r\n overrideCasNumber: string;\r\n overrideChemicalName: string;\r\n overrideHazardRating: string;\r\n overrideHcodes: string;\r\n overrideEcNumber: string;\r\n overallScore: string;\r\n substanceBiodegradabilityStatus: string;\r\n partName: string;\r\n description: string;\r\n supplier: string;\r\n userFacingSupplierId: string;\r\n externalDbId: string;\r\n weight: string;\r\n yield: string;\r\n unitOfMeasure: string;\r\n materialType: string;\r\n materialFamily: string;\r\n percentByWeight: string;\r\n componentPercentByWeight: string;\r\n wetComponentPercentByWeight: string;\r\n percentOfWetIngredientInFinalProduct: string;\r\n wetUnitWeight: string;\r\n wetWeight: string;\r\n wetOverallPercentByWeight: string;\r\n isProprietary: boolean;\r\n isDeepProprietary: boolean;\r\n nanomaterial: string;\r\n notes: string;\r\n plant: string;\r\n recycledContent: string;\r\n role: string;\r\n residualsAndImpuritiesEvaluation: string;\r\n residualsAndImpuritiesNotes: string;\r\n threshold: string;\r\n url: string;\r\n alternative: string;\r\n quantity: string;\r\n unitWeight: string;\r\n percentPostConsumerRecycledContent: string;\r\n percentPreConsumerRecycledContent: string;\r\n scrapRate: string;\r\n c2cTechnicalOrBiologicalNutrient: string;\r\n c2cRecyclable: string;\r\n c2cBiodegradable: string;\r\n c2cDisassemblability: string;\r\n c2cPercentRapidlyRenewableContent: string;\r\n c2cDescriptionOfRapidlyRenewableContent: string;\r\n c2cEmc: string;\r\n c2cNotes: string;\r\n dataSource: string;\r\n supplierPartNumber: string;\r\n reachNumber: string;\r\n pbtOrVpvb: string;\r\n clpClassification: string;\r\n versionDescription: string;\r\n scipConcernElementMaterialCategory: string;\r\n scipConcernElementMixtureCategory: string;\r\n serializedHpdSpecialCondition: string;\r\n extensibleColumns: string[];\r\n allListMetadataList: ListEntry[];\r\n inheritedAllListMetadataList: ListEntry[];\r\n inheritedScore: string;\r\n inheritedSubstanceBiodegradabilityStatus: string | null; // can be null\r\n ecNumbers: string[];\r\n privateEcNumber: string;\r\n relativePercentIsCalculated: boolean;\r\n overallPercentIsCalculated: boolean;\r\n weightIsCalculated: boolean;\r\n unitWeightIsCalculated: boolean;\r\n wetWeightIsCalculated: boolean;\r\n wetRelativePercentIsCalculated: boolean;\r\n wetOverallPercentByWeightIsCalculated: boolean;\r\n percentOfWetIngredientInFinalProductIsCalculated: boolean;\r\n percentPreConsumerRecycledIsCalculated: boolean;\r\n percentPostConsumerRecycledIsCalculated: boolean;\r\n recycledContentTotalIsCalculated: boolean;\r\n c2cRecyclableIsCalculated: boolean;\r\n scrapRateIsCalculated: boolean;\r\n linkedInventorySummaryData: { [field: string]: string };\r\n c2cRenewableContentIsCalculated: boolean;\r\n productNumber: string;\r\n scipSubmissionId: string;\r\n otherStandardColumnsTable: { [columnId: string]: string };\r\n}\r\n\r\nexport interface ListEntry {\r\n listId: string;\r\n listType: number;\r\n substanceId: string;\r\n listName: string;\r\n casNumber: string;\r\n reasonForInclusion: string;\r\n}\r\n\r\nexport enum AlertType {\r\n Green,\r\n Red,\r\n Gray\r\n}\r\n\r\nexport interface IngredientsAlertModel {\r\n text: string;\r\n alertType: AlertType;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport enum ScipCharacteristicType {\r\n Height = \"Height\",\r\n Length = \"Length\",\r\n Width = \"Width\",\r\n Diameter = \"Diameter\",\r\n Density = \"Density\",\r\n Weight = \"Weight\",\r\n Volume = \"Volume\",\r\n Colour = \"Colour\",\r\n Other = \"Other\"\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport interface ScipCharacteristic {\r\n type: ScipCharacteristicType;\r\n typeOtherText: string\r\n value: string;\r\n unitId: string;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nenum ScipSubmissionStateType {\r\n Draft = \"Draft\",\r\n SubmittedPending = \"SubmittedPending\",\r\n SubmittedAccepted = \"SubmittedAccepted\",\r\n SubmittedRejected = \"SubmittedRejected\"\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport interface LinkedArticleType {\r\n submissionData: ScipSubmissionData;\r\n numberOfUnits: string;\r\n}\r\n\r\n// ===============================================================================\r\n\r\ninterface DisassemblingInstruction {\r\n toxnotFileId: string;\r\n languageCode: string;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport interface MaterialCategoryType {\r\n categoryId: string;\r\n additionalCharacteristics: string[];\r\n typeOtherText: string;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport interface ConcernElement {\r\n referenceSubstanceName: string;\r\n casNumber: string;\r\n casName: string; // substance/chemical name\r\n concentrationRange: {\r\n lowerBound: number;\r\n upperBound: number;\r\n };\r\n materialCategory: MaterialCategoryType;\r\n mixtureCategoryId: string;\r\n}\r\n\r\n// ===============================================================================\r\n\r\ninterface OtherNameType {\r\n typeId: string; // brand | model | type | other (text)\r\n name: string;\r\n typeOtherText: string;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport interface ScipSubmissionData {\r\n scipSubmissionId: string;\r\n sourceInventoryId: string;\r\n sourceInventoryName: string;\r\n sourceInventoryDescription: string;\r\n state: ScipSubmissionStateType;\r\n dateSubmitted: string;\r\n submissionNumber: string;\r\n scipNumber?: string;\r\n oldScipNumber?: string;\r\n echaUserReportUrl: string;\r\n articleName: string;\r\n otherNames: OtherNameType[];\r\n primaryArticleIdentifier: ArticleIdentifier;\r\n otherArticleIdentifiers: ArticleIdentifier[];\r\n articleCategoryIds: string[];\r\n productionInEuropeanUnionId: string;\r\n characteristics: ScipCharacteristic[];\r\n safeUseInstructions: string;\r\n disassemblingInstructions: DisassemblingInstruction[];\r\n toxnotInventoryPhotoFileId: string; // null => no file specified\r\n linkedArticles: LinkedArticleType[];\r\n concernElements: ConcernElement[];\r\n noSafeUseInstructionRequired: boolean;\r\n isScipNumberManuallyEntered?: boolean;\r\n inventoryRowIndex: number | null;\r\n hasScipNumber: string | null;\r\n}\r\n\r\nexport interface CustomColumn {\r\n customColumnName: string;\r\n customColumnIndex: number;\r\n customColumnType: QuestionType.Text | QuestionType.Datetime | QuestionType.MultipleDropdown;\r\n required?: boolean;\r\n validationMessage?: string;\r\n predefinedAnswers?: QuestionnairePredefinedAnswer[];\r\n}\r\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","//\r\n// Utility extensions and functions\r\n//\r\n\r\nimport { IStringLocalizer } from \"./IStringLocalizer\";\r\n\r\n// ===============================================================================\r\n\r\ndeclare global {\r\n interface Array {\r\n containsAnyOf(this: T[], suppliedTargets: T[]): boolean;\r\n take(this: Array, count: number): Array;\r\n skip(this: Array, count: number): Array;\r\n distinct(this: Array): Array;\r\n distinctByStringProjection(this: Array, projection: (obj: T) => string): Array;\r\n firstOrDefault(this: Array, predicate: (obj: T) => boolean): (T | null);\r\n first(this: Array, predicate: (obj: T) => boolean): T;\r\n selectMany(this: Array, selector: (obj: T) => Array): Array;\r\n orderBy(this: Array, selector: (obj: T) => string): Array;\r\n orderByDescending(this: Array, selector: (obj: T) => string): Array;\r\n truncateAndJoinListOfStringsWithCountDescription(this: Array, localizer: IStringLocalizer, truncateThreshold: number, joinString: string): string;\r\n equalTo(this: Array, a2: Array, enforceOrginalOrder?: boolean): boolean;\r\n getDuplicates(this: Array): Array;\r\n toDictionary(this: Array, keySelector: (obj: T) => string): { [key: string]: T };\r\n }\r\n\r\n interface String {\r\n coalesceToMaxSizeAndIndicateTruncationWithEllipsis(this: string, maxSize: number): string;\r\n emptyCoalesce(this: string, coalescedValue: string): string;\r\n trimStartString(this: string, startString: string): string;\r\n trimEndString(this: string, endString: string): string;\r\n trimChar(this: string, char: string): string;\r\n trimChars(this: string, chars: string[]): string;\r\n toDoubleOrDefault(this: string, defaultToUse: number): number;\r\n isDigit(this: string): boolean;\r\n isWhitespace(this: string): boolean;\r\n }\r\n\r\n interface Number {\r\n roundBy(this: number, decimalPts: number): number;\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Array extensions\r\n//\r\n\r\nArray.prototype.containsAnyOf = function (this: T[], suppliedTargets: T[]): boolean {\r\n return this.some(item => suppliedTargets.includes(item));\r\n}\r\n\r\n// ===============================================================================\r\n\r\nArray.prototype.take = function (this: T[], count: number) {\r\n return this.slice(0, count);\r\n};\r\n\r\n// ===============================================================================\r\n\r\nArray.prototype.skip = function (this: T[], count: number) {\r\n return this.slice(count);\r\n};\r\n\r\n// ===============================================================================\r\n\r\nArray.prototype.distinct = function (this: Array): Array {\r\n return Array.from(new Set(this));\r\n};\r\n\r\n// ===============================================================================\r\n\r\nArray.prototype.distinctByStringProjection = function (this: Array, projection: (obj: T) => string): Array {\r\n const stringsEncounteredAlready = new Set();\r\n const output: T[] = [];\r\n\r\n for (let item of this) {\r\n const stringProjection = projection(item);\r\n\r\n if (stringsEncounteredAlready.has(stringProjection)) {\r\n continue;\r\n }\r\n\r\n stringsEncounteredAlready.add(stringProjection);\r\n output.push(item);\r\n }\r\n\r\n return output;\r\n};\r\n\r\n// ===============================================================================\r\n\r\nArray.prototype.toDictionary = function (this: Array, keySelector: (obj: T) => string): { [key: string]: T } {\r\n const dictionary: { [key: string]: T } = {};\r\n\r\n for (let obj of this) {\r\n const key = keySelector(obj);\r\n\r\n dictionary[key] = obj;\r\n }\r\n\r\n return dictionary;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nArray.prototype.firstOrDefault = function (this: Array, predicate: (obj: T) => boolean): (T | null) {\r\n for (let i = 0; i < this.length; i++) {\r\n if (predicate(this[i])) {\r\n return this[i];\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nArray.prototype.first = function (this: Array, predicate: (obj: T) => boolean): T {\r\n for (let i = 0; i < this.length; i++) {\r\n if (predicate(this[i])) {\r\n return this[i];\r\n }\r\n }\r\n\r\n throw new Error(\"Element not found\");\r\n};\r\n\r\n// ===============================================================================\r\n\r\nArray.prototype.selectMany = function (this: Array, selector: (obj: T) => Array): Array {\r\n const ret: Array = [];\r\n\r\n for (let item of this) {\r\n const mapped = selector(item);\r\n\r\n for (let mappedItem of mapped) {\r\n ret.push(mappedItem);\r\n }\r\n }\r\n\r\n return ret;\r\n};\r\n\r\n// ===============================================================================\r\n\r\nArray.prototype.orderBy = function (this: Array, selector: (obj: T) => string): Array {\r\n const temp = this.slice();\r\n\r\n temp.sort((a, b) => selector(a).localeCompare(selector(b)));\r\n\r\n return temp;\r\n};\r\n\r\n// ===============================================================================\r\n\r\nArray.prototype.orderByDescending = function (this: Array, selector: (obj: T) => string): Array {\r\n const temp = this.slice();\r\n\r\n temp.sort((a, b) => {\r\n const v = selector(a).localeCompare(selector(b));\r\n\r\n return -v;\r\n });\r\n\r\n return temp;\r\n};\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Determines if one string array is equal to another. A boolean enforceOriginalOrder\r\n * can be passed in to determine if the order of elements in the array should also\r\n * determine if they are equal.\r\n */\r\nArray.prototype.equalTo = function (this: Array, a2: Array, enforceOriginalOrder?: boolean): boolean {\r\n if (this.length !== a2.length) {\r\n return false;\r\n }\r\n\r\n let a1ToUse = this;\r\n let a2ToUse = a2;\r\n\r\n if (!enforceOriginalOrder) {\r\n a1ToUse = this.orderBy(x => x.toString());\r\n a2ToUse = a2.orderBy(x => x.toString());\r\n }\r\n\r\n for (let i = 0; i < a1ToUse.length; ++i) {\r\n if (a1ToUse[i] !== a2ToUse[i]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Given an array with possibel duplicate entries, this function returns an array\r\n * of all duplicate items found. \r\n * \r\n * For example: \r\n * const a1 = [a,b,b,c];\r\n * return a1.getDuplicates(); // [b]\r\n */\r\nArray.prototype.getDuplicates = function (this: Array): Array {\r\n return Array.from(new Set(this.filter((item, index) => this.indexOf(item) !== index)));\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * If the source array is <= the threshold length, it is returned joined w/ the join string.\r\n * If it's > threshold, then a string w/ only the first N items is returned with an appended string of \"and K more\" where K is the number\r\n * not included in the string.\r\n * \r\n * Useful for displaying potentially long lists in a summary form in UI\r\n */\r\nArray.prototype.truncateAndJoinListOfStringsWithCountDescription = function (this: Array, localizer: IStringLocalizer, truncateThreshold: number, joinString: string): string {\r\n if (this.length > truncateThreshold) {\r\n return this\r\n .take(truncateThreshold)\r\n .concat([localizer.localizeStringFormat(\"and {0} more\", this.length - truncateThreshold)])\r\n .join(joinString);\r\n }\r\n else {\r\n return this.join(joinString);\r\n }\r\n};\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// String extensions\r\n//\r\n\r\nString.prototype.trimStartString = function (this: string, startString: string): string {\r\n if (stringStartsWith(this, startString)) {\r\n return this.substring(startString.length);\r\n }\r\n else {\r\n return this.valueOf();\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nString.prototype.trimEndString = function (this: string, endString: string): string {\r\n if (this.endsWith(endString)) {\r\n return this.substring(0, this.length - endString.length);\r\n }\r\n else {\r\n return this.valueOf();\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nString.prototype.trimChar = function (this: string, charToTrim: string): string {\r\n let ret = this.toString();\r\n\r\n while ((ret.length > 0) && (ret.charAt(0) === charToTrim)) {\r\n ret = ret.substring(1);\r\n }\r\n\r\n while ((ret.length > 0) && (ret.charAt(ret.length - 1) === charToTrim)) {\r\n ret = ret.substring(0, ret.length - 1);\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nString.prototype.trimChars = function (this: string, charsToTrim: string[]): string {\r\n let ret = this.toString();\r\n\r\n for (let charToTrim of charsToTrim) {\r\n ret = ret.trimChar(charToTrim);\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nString.prototype.toDoubleOrDefault = function (this: string, defaultToUse: number): number {\r\n let s = this;\r\n\r\n const commaSplits = s.split(',');\r\n\r\n if (commaSplits.length == 2) {\r\n // assume it's an EU style decimal, e.g. 100,23 == 100.23\r\n s = s.replace(\",\", \".\");\r\n }\r\n else {\r\n // it's comma separated, e.g. \"1,000,000\" == \"1000000\"\r\n s = s.replace(\",\", \"\");\r\n }\r\n\r\n const float = parseFloat(s);\r\n\r\n if (isNaN(float)) {\r\n return defaultToUse;\r\n }\r\n else {\r\n return float;\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nString.prototype.isDigit = function (this: string): boolean {\r\n return (this.length > 0) &&\r\n (this[0] >= '0') &&\r\n (this[0] <= '9');\r\n}\r\n\r\n// ===============================================================================\r\n\r\nString.prototype.isWhitespace = function (this: string): boolean {\r\n return (this.length > 0) && (this.trim().length === 0);\r\n}\r\n\r\n// ===============================================================================\r\n\r\nString.prototype.emptyCoalesce = function (this: string, coalescedValue: string): string {\r\n return ((this === null) || (this.length === 0))\r\n ? coalescedValue\r\n : this.valueOf();\r\n}\r\n\r\n// ===============================================================================\r\n\r\nString.prototype.coalesceToMaxSizeAndIndicateTruncationWithEllipsis = function (this: string, maxSize: number): string {\r\n maxSize = Math.max(maxSize, 3);\r\n\r\n if (this.length <= maxSize) {\r\n return this.valueOf();\r\n }\r\n\r\n return this.substring(0, Math.min(this.length, maxSize - 3)) + \"...\";\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Number extensions\r\n//\r\n\r\nNumber.prototype.roundBy = function (this: number, decimalPts: number): number {\r\n const power = Math.pow(10, decimalPts);\r\n\r\n const val = this * power;\r\n\r\n return (Math.round(val) / power);\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Helper functions\r\n//\r\n\r\nexport function copyContentFromHTMLInputElementToClipboard(element: HTMLInputElement) {\r\n element.select();\r\n navigator.clipboard.writeText(element.value);\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function addhostnameToString(s: string) {\r\n if (s.length > 0) {\r\n if (s[0] === \"/\") {\r\n s = s.slice(1);\r\n }\r\n }\r\n\r\n return `https://${location.host}/${s}`;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function nullOrEmptyCoalesce(s: string | null | undefined, coalesceVal: string){\r\n if ((s === null) || (s === undefined) || (s.length === 0)) {\r\n return coalesceVal;\r\n }\r\n\r\n return s;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function booleanToString(booleanVal: boolean) {\r\n return booleanVal ? \"true\" : \"false\"\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Checks a given string to determine if its a valid email address.\r\n * Returns true if it is, else returns false.\r\n * \r\n * @param emailAddress the email address to check.\r\n */\r\nexport function isValidEmailAddress(emailAddress: string): boolean {\r\n emailAddress = emailAddress.trim();\r\n\r\n if (emailAddress.length === 0) {\r\n return false;\r\n }\r\n\r\n const pattern = /^([a-z\\d!#$%&'*+\\-\\/=?^_`{|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+(\\.[a-z\\d!#$%&'*+\\-\\/=?^_`{|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+)*|\"((([ \\t]*\\r\\n)?[ \\t]+)?([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*(([ \\t]*\\r\\n)?[ \\t]+)?\")@(([a-z\\d\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|[a-z\\d\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF][a-z\\d\\-._~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]*[a-z\\d\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])\\.)+([a-z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|[a-z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF][a-z\\d\\-._~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]*[a-z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])\\.?$/i;\r\n return pattern.test(emailAddress);\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function stringStartsWith(source: string, substring: string): boolean {\r\n if (!source) {\r\n return false;\r\n }\r\n\r\n return source.indexOf(substring) === 0;\r\n}\r\n\r\nexport { }\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import { request } from 'https';\r\nimport { TowState } from '../AppServices';\r\nimport { booleanToString } from '../utilities/Utilities';\r\nimport { AcceptBomResponsesRequest, AcceptBomResponsesResult, AcceptBomsContext, OfflineProcessDataResponseResult } from './Models/Api/AcceptBomsResponsesModels';\r\nimport { ApiDataResponse, ApiResponse, ResultType } from './Models/Api/ApiResponse';\r\nimport AppServicesResponse from './Models/Api/AppServicesResponse';\r\nimport { BulkReportRequest } from './Models/Api/BulkReportRequest';\r\nimport { CertificationConsolidationSurveyRequest, CertificationConsolidationSurveyResponse } from './Models/Api/CertificationConsolidationSurveyRequest';\r\nimport { ClientTeamRequestGetResult } from './Models/Api/Consultants/ClientTeamRequestGetResult';\r\nimport { CreateReportRequest, FavoriteAndPrivateListDefinitionsGetAllResponse, UpdateCustomerRequest } from './Models/Api/CustomerApiRequestsAndResponses';\r\nimport GetStartDataResponse from './Models/Api/GetStartDataResponse';\r\nimport { InitializeCreateAndSendSurveysOfflineProcessRequest, InitializeCreateAndSendSurveysOfflineProcessResponse } from './Models/Api/InitializeCreateAndSendSurveysOfflineProcess';\r\nimport { InventoriesGetNamesResponse } from './Models/Api/InventoriesGetName';\r\nimport { InviteSuppliersBundleResponse } from './Models/Api/InviteSuppliersBundleResponse';\r\nimport SharedMaterialAccessRequestData from './Models/Api/SharedMaterialAccessRequestData';\r\nimport { GetCompanyFromCustomUrlNameResponse } from './Models/Api/SharedMaterials/GetCompanyFromCustomUrlName';\r\nimport SharedMaterialsAccessControlListInsertRequest from './Models/Api/SharedMaterialsAccessControlListInsertRequest';\r\nimport * as EmailRequests from './Models/Api/SharedMaterialsEmailRequests';\r\nimport { SharedMaterialsRemoveSharedMaterialsFromCatalogsRequest } from './Models/Api/SharedMaterialsRemoveSharedMaterialsFromCatalogsRequest';\r\nimport { SurveyEditorCreateNewSurveyRequestData } from './Models/Api/SurveyEditorCreateNewSurveyRequestModel';\r\nimport { CertificationConsolidationResponse, CertificationConsolidationUpdateResult } from './Models/Api/Surveys/CertificationConsolidationApiModels';\r\nimport { ScipData, ScipSubmissionDataAll } from './Models/Api/Surveys/ScipData';\r\nimport { SubmitResponseToRequestorOfflineProcessResponse } from './Models/Api/Surveys/SubmitResponseToRequestorOfflineProcessResponse';\r\nimport SurveyTemplateManagerBundleResponse from './Models/Api/SurveyTemplateManagerBundleResponse';\r\nimport { TowDeleteRequest, TowUpdateRequest } from './Models/Api/TowRequests';\r\nimport UpdateCompanyRequest from './Models/Api/UpdateCompanyRequest';\r\nimport UploadFileResponse from './Models/Api/UploadFileResponse';\r\nimport { UserContextResponse } from './Models/Api/UserContextResponse';\r\nimport { Customer, CustomerRequest, MyCustomersBundle, Purchase } from './Models/Customers/Customer';\r\nimport { FileTableEntry } from './Models/Documents/DocumentModels';\r\nimport { FullInventory } from './Models/Inventories/FullInventory';\r\nimport { SimpleInventory, SimpleInventoryWithLinkedMaterialInfo } from './Models/Inventories/SimpleInventory';\r\nimport { BaseOfflineProcessData, CreateAndSendSurveysOfflineProcessData, OfflineGeneralSurveyProcessData } from './Models/OfflineProcesses/OfflineProcessModels';\r\nimport * as SharedMaterialsDataModel from './Models/SharedMaterials/DataModel';\r\nimport { InviteSupplierModel, Supplier } from './Models/Supplier/Supplier';\r\nimport * as SurveyDataModel from './Models/Surveys/SurveyDataModel';\r\nimport { OfflineResponseApiData, SurveyRequestResponseHistoryEntry } from './Models/Surveys/SurveyDataModel';\r\nimport { Task, TaskManagementApiRequest, TaskManagementApiResponse } from \"./Models/TaskManagement/TaskManagementDataModel\";\r\nimport { Ipc1752AXmlData } from './Models/XmlExport/XmlExportDataModel';\r\nimport { EngageConnectFormData } from './StateControllers/Engagement/EngagementStateController';\r\nimport { CoreSurveyResponseData, InventoryDetailsResponse, SurveyResponseValidationResult, WriteGroupedResponseInventoriesResult, ComplianceScoreResult, ExtensionRequestModel, PlausibilityData } from './StateControllers/Survey/SurveyResponse/SurveyResponseModels';\r\nimport {SharedMaterialsCatalogRequest, SharedMaterialsCatalogResult} from \"./Models/Api/SharedMaterials/SharedMaterialsCatalogResult\";\r\nimport {SharedMaterialPreviewDetailResponse} from \"./Models/Api/SharedMaterials/SharedMaterialPreviewDetailResponse\";\r\nimport {SharedMaterialEngageResponse} from \"./Models/Api/SharedMaterials/SharedMaterialEngageResponse\";\r\nimport { InventorySdsToFileNameMap } from './Models/Api/InventorySdsToFileNameMap';\r\nimport {ObtainmentReportsResult} from \"./Models/Api/ObtainmentReports/ObtainmentReportsResult\";\r\n\r\n// ===============================================================================\r\n\r\nexport interface InventoryComplianceScoresRequest {\r\n inventoryId: string;\r\n flagZerosAndMissingPercentagesOnSubstances: boolean;\r\n}\r\n\r\nexport interface InventoryComplianceScoresResponse {\r\n result: string;\r\n complianceScoreResults: {\r\n [regulationId: string]: ComplianceScoreResult | null\r\n };\r\n}\r\n\r\nexport interface LibraryFilterModel {\r\n type: string;\r\n arguments: string[];\r\n values: string[];\r\n}\r\n\r\nexport interface LibraryFiltersModel {\r\n activeFilters: LibraryFilterModel[];\r\n}\r\n\r\nexport interface LibraryInventoriesGetInventory {\r\n inventoryId: string;\r\n name: string;\r\n description: string;\r\n plantName: string;\r\n supplierId: string | null;\r\n supplierName: string;\r\n isComponent: boolean;\r\n folderId: string | null;\r\n tags: string[];\r\n}\r\n\r\nexport interface LibraryInventoriesGetResult {\r\n result: string;\r\n totalNumberOfInventories: number;\r\n pageOfInventories: LibraryInventoriesGetInventory[];\r\n}\r\n\r\n//\r\n// All public api methods return a result or a data result\r\n//\r\n\r\nexport interface Result {\r\n success: boolean;\r\n result: ResultType | string;\r\n}\r\n\r\nexport interface DataResult extends Result {\r\n data: TData | null;\r\n}\r\n\r\ninterface FetchSettings {\r\n method: \"GET\" | \"POST\" | \"PUT\"; // Default is GET\r\n body?: BodyInit;\r\n headers?: HeadersInit;\r\n timeoutInMilliseconds?: number; // defaults to 30 s\r\n}\r\n\r\ninterface FetchResult {\r\n result: ResultType;\r\n httpResponse: Response | null;\r\n}\r\n\r\ndeclare const appInsights: any;\r\n\r\n// ===============================================================================\r\n\r\nexport class ToxnotServiceClient {\r\n\r\n // ===============================================================================\r\n\r\n private async fetchImpl(endpoint: string, queryParameters: { [parameter: string]: string } | null, fetchSettings: FetchSettings = { method: \"GET\" }, prependApiVersion: boolean = true): Promise {\r\n try {\r\n // Enable below code if you need to capture all the APIs with yser information\r\n //try {\r\n // appInsights.trackEvent({\r\n // name: endpoint,\r\n // properties: queryParameters\r\n // });\r\n //}\r\n //catch (e) {\r\n // console.log('appinsight error - ' + e);\r\n //}\r\n const abortController = new AbortController();\r\n\r\n fetchSettings.timeoutInMilliseconds ??= 30000; // default 30 seconds\r\n\r\n const timeoutTimerId = setTimeout(() => abortController.abort(), fetchSettings.timeoutInMilliseconds);\r\n\r\n // send an http request to the endpoint and get back an http response\r\n\r\n let fullPath = prependApiVersion ? `/Api/v2/${endpoint}` : `/Api/${endpoint}`;\r\n\r\n if (queryParameters !== null) {\r\n const queryParameterKeyList = Object.keys(queryParameters);\r\n\r\n if (queryParameterKeyList.length > 0) {\r\n const serializedParameters = queryParameterKeyList\r\n .map(parameter => `${encodeURIComponent(parameter)}=${encodeURIComponent(queryParameters[parameter])}`)\r\n .join(\"&\");\r\n\r\n fullPath += `?${serializedParameters}`;\r\n }\r\n }\r\n\r\n const httpResponse = await fetch(\r\n fullPath,\r\n {\r\n method: fetchSettings.method,\r\n signal: abortController.signal,\r\n headers: fetchSettings.headers,\r\n body: fetchSettings.body\r\n });\r\n\r\n clearTimeout(timeoutTimerId);\r\n\r\n //\r\n // Check server responses that indicate failure\r\n //\r\n\r\n if (!httpResponse.ok) {\r\n // Forbidden\r\n if (httpResponse.status === 403) {\r\n window.location.href = \"/Account/SignIn\";\r\n\r\n return {\r\n result: ResultType.Forbidden,\r\n httpResponse: httpResponse\r\n };\r\n }\r\n // Not Found\r\n else if (httpResponse.status === 404) {\r\n return {\r\n result: ResultType.NotFound,\r\n httpResponse: httpResponse\r\n };\r\n }\r\n else if (httpResponse.status === 413) {\r\n return {\r\n result: ResultType.UploadTooLarge,\r\n httpResponse: httpResponse\r\n };\r\n }\r\n else {\r\n console.log(\"SERVICE CLIENT ERROR: status=\" + httpResponse.status + \" textStatus=\" + (httpResponse.statusText ?? \"null\"));\r\n\r\n return {\r\n result: ResultType.Failure,\r\n httpResponse: httpResponse\r\n };\r\n }\r\n }\r\n\r\n //\r\n // If we get here, we've got a successful response.\r\n //\r\n\r\n return {\r\n result: ResultType.Ok,\r\n httpResponse: httpResponse\r\n }\r\n }\r\n catch (error) {\r\n return {\r\n result: ResultType.Failure,\r\n httpResponse: null\r\n }\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private async getObjectFromResponseBody(httpResponse: Response) {\r\n const bodyObject = await httpResponse.json() as T;\r\n\r\n return bodyObject;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private async fetchGet(endpoint: string, queryParameters?: { [parameter: string]: string } | null, timoutInMilliseconds?: number): Promise> {\r\n const fetchSettings: FetchSettings = { method: \"GET\" };\r\n\r\n fetchSettings.timeoutInMilliseconds = timoutInMilliseconds ?? 30000;\r\n\r\n queryParameters ??= null;\r\n const { result, httpResponse } = await this.fetchImpl(endpoint, queryParameters, fetchSettings);\r\n\r\n if (result !== ResultType.Ok) {\r\n return {\r\n success: false,\r\n result: result,\r\n data: null\r\n };\r\n }\r\n\r\n if (httpResponse == null) {\r\n throw new Error(\"Unexpected null http response\");\r\n }\r\n\r\n const apiResponse = await this.getObjectFromResponseBody>(httpResponse);\r\n\r\n return {\r\n success: apiResponse.result === ResultType.Ok,\r\n result: apiResponse.result,\r\n data: apiResponse.data\r\n };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getPostSettings(requestObject: TRequest | null, timeoutInMilliseconds?: number): FetchSettings {\r\n timeoutInMilliseconds ??= 30000; // default 30 seconds\r\n\r\n if (requestObject === null) {\r\n return {\r\n method: \"POST\",\r\n timeoutInMilliseconds: timeoutInMilliseconds\r\n };\r\n }\r\n\r\n const settings: FetchSettings = {\r\n method: \"POST\",\r\n body: JSON.stringify(requestObject),\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n timeoutInMilliseconds: timeoutInMilliseconds\r\n };\r\n\r\n return settings;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private async fetchPostWithNoDataResponse(\r\n endpoint: string,\r\n queryParameters: { [parameter: string]: string } | null,\r\n requestObject: TRequest | null = null,\r\n timeoutInMilliseconds?: number\r\n ): Promise {\r\n const settings = this.getPostSettings(requestObject, timeoutInMilliseconds);\r\n \r\n const { result, httpResponse } = await this.fetchImpl(endpoint, queryParameters, settings);\r\n if (result !== ResultType.Ok) {\r\n return {\r\n success: false,\r\n result: result\r\n };\r\n }\r\n\r\n if (httpResponse == null) {\r\n throw new Error(\"Unexpected null http response\");\r\n }\r\n\r\n const apiResponse = await this.getObjectFromResponseBody(httpResponse);\r\n\r\n return {\r\n success: apiResponse.result === ResultType.Ok,\r\n result: apiResponse.result\r\n };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private async fetchPostForm(\r\n endpoint: string,\r\n formParameters: { [parameter: string]: string } | null,\r\n files: { [parameter: string]: File } | null,\r\n timeoutInMilliseconds?: number,\r\n prependApiVersion: boolean = true\r\n ) {\r\n const formData = new FormData();\r\n\r\n if (formParameters !== null) {\r\n const formKeys = Object.keys(formParameters);\r\n\r\n for (let formKey of formKeys) {\r\n formData.append(formKey, formParameters[formKey]);\r\n }\r\n }\r\n\r\n if (files !== null) {\r\n const fileKeys = Object.keys(files);\r\n\r\n for (let fileKey of fileKeys) {\r\n formData.append(fileKey, files[fileKey]);\r\n }\r\n }\r\n\r\n const settings: FetchSettings = {\r\n method: \"POST\",\r\n body: formData,\r\n timeoutInMilliseconds: timeoutInMilliseconds\r\n };\r\n\r\n return await this.fetchImpl(endpoint, null, settings, prependApiVersion);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private async fetchPutForm(\r\n endpoint: string,\r\n formParameters: { [parameter: string]: string } | null,\r\n timeoutInMilliseconds?: number\r\n ) {\r\n const formData = new FormData();\r\n\r\n if (formParameters !== null) {\r\n const formKeys = Object.keys(formParameters);\r\n\r\n for (let formKey of formKeys) {\r\n formData.append(formKey, formParameters[formKey]);\r\n }\r\n }\r\n\r\n const settings: FetchSettings = {\r\n method: \"PUT\",\r\n body: formData,\r\n timeoutInMilliseconds: timeoutInMilliseconds\r\n };\r\n\r\n return await this.fetchImpl(endpoint, null, settings);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private async fetchPostFormWithGenericResponse(\r\n endpoint: string,\r\n formParameters: { [parameter: string]: string } | null,\r\n files: { [parameter: string]: File } | null\r\n ): Promise {\r\n const { result, httpResponse } = await this.fetchPostForm(endpoint, formParameters, files);\r\n\r\n if (result !== ResultType.Ok) {\r\n return null;\r\n }\r\n\r\n if (httpResponse == null) {\r\n throw new Error(\"Unexpected null http response\");\r\n }\r\n\r\n const apiResponse = await this.getObjectFromResponseBody(httpResponse);\r\n\r\n return apiResponse;\r\n }\r\n // ===============================================================================\r\n\r\n private async fetchPostFormWithDataResponse(\r\n endpoint: string,\r\n formParameters: { [parameter: string]: string } | null,\r\n files: { [parameter: string]: File } | null,\r\n timeoutInMilliseconds?: number,\r\n prependApiVersion: boolean = true\r\n ): Promise> {\r\n const { result, httpResponse } = await this.fetchPostForm(endpoint, formParameters, files, timeoutInMilliseconds, prependApiVersion);\r\n\r\n if (result !== ResultType.Ok) {\r\n return {\r\n success: false,\r\n result: result,\r\n data: null\r\n };\r\n }\r\n\r\n if (httpResponse == null) {\r\n throw new Error(\"Unexpected null http response\");\r\n }\r\n\r\n try {\r\n const apiResponse = await this.getObjectFromResponseBody>(httpResponse);\r\n return {\r\n success: true,\r\n result: apiResponse.result,\r\n data: apiResponse.data\r\n };\r\n } catch (error) {\r\n return {\r\n success: result === ResultType.Ok,\r\n result: result,\r\n data: null\r\n };\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private async fetchPutFormResponse(\r\n endpoint: string,\r\n formParameters: { [parameter: string]: string } | null,\r\n timeoutInMilliseconds?: number\r\n ): Promise {\r\n\r\n const { result, httpResponse } = await this.fetchPutForm(endpoint, formParameters, timeoutInMilliseconds);\r\n if (result !== ResultType.Ok) {\r\n return {\r\n success: false,\r\n result: result,\r\n };\r\n }\r\n\r\n if (httpResponse == null) {\r\n throw new Error(\"Unexpected null http response\");\r\n }\r\n\r\n return {\r\n success: true,\r\n result: result\r\n };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private async fetchPostFormWithNoDataResponse(\r\n endpoint: string,\r\n formParameters: { [parameter: string]: string } | null,\r\n files: { [parameter: string]: File } | null\r\n ): Promise {\r\n const { result, httpResponse } = await this.fetchPostForm(endpoint, formParameters, files);\r\n\r\n if (result !== ResultType.Ok) {\r\n return {\r\n success: false,\r\n result: result,\r\n };\r\n }\r\n\r\n return {\r\n success: true,\r\n result: result,\r\n };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private async fetchPostWithDataResponse(endpoint: string, queryParameters: { [parameter: string]: string } | null, requestObject: TRequest, timeoutInMilliseconds?: number, prependApiVersion: boolean = true) {\r\n const settings = this.getPostSettings(requestObject, timeoutInMilliseconds);\r\n\r\n const { result, httpResponse } = await this.fetchImpl(endpoint, queryParameters, settings, prependApiVersion);\r\n\r\n if (result !== ResultType.Ok) {\r\n return {\r\n success: false,\r\n result: result,\r\n data: null\r\n };\r\n }\r\n\r\n if (httpResponse == null) {\r\n throw new Error(\"Unexpected null http response\");\r\n }\r\n\r\n const apiResponse = await this.getObjectFromResponseBody>(httpResponse);\r\n\r\n return {\r\n ...apiResponse,\r\n success: apiResponse.result === ResultType.Ok,\r\n result: apiResponse.result,\r\n data: apiResponse.data\r\n };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private async fetchPostWithResponse(endpoint: string, queryParameters: { [parameter: string]: string } | null, requestObject: TRequest, timeoutInMilliseconds?: number, prependApiVersion: boolean = true) {\r\n const settings = this.getPostSettings(requestObject, timeoutInMilliseconds);\r\n\r\n const { result, httpResponse } = await this.fetchImpl(endpoint, queryParameters, settings, prependApiVersion);\r\n\r\n if (result !== ResultType.Ok) {\r\n return {\r\n success: false,\r\n result: result,\r\n data: null\r\n };\r\n }\r\n\r\n if (httpResponse == null) {\r\n throw new Error(\"Unexpected null http response\");\r\n }\r\n\r\n const apiResponse = await this.getObjectFromResponseBody(httpResponse);\r\n\r\n return {\r\n success: true,\r\n result: ResultType.Ok,\r\n data: {\r\n ...apiResponse\r\n }\r\n };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getUserContext(): Promise> {\r\n return await this.fetchGet(\"UserContext\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getAppServices(): Promise> {\r\n return await this.fetchGet(\"AppServices\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getAllSharedMaterialsCoreData(request: SharedMaterialsCatalogRequest): Promise> \r\n {\r\n return await this.fetchPostWithDataResponse(\"SharedMaterialsCatalog\", null, request);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getAllSharedMaterialsCompaniesData(\r\n rowsPerPage: number = 50, \r\n pageIndex: number = 0, \r\n searchText: string, \r\n sortDirection: boolean = true,\r\n ): Promise> \r\n {\r\n let params: { [params: string]: string } = {\r\n \"rowsPerPage\": rowsPerPage.toString(),\r\n \"pageIndex\": pageIndex.toString(),\r\n };\r\n\r\n if (searchText !== null) {\r\n params[\"searchText\"] = searchText.toString();\r\n }\r\n \r\n params[\"sortAscending\"] = sortDirection ? \"true\" : \"false\";\r\n\r\n return await this.fetchGet(\"SharedMaterialsCompanies\", params);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getSharedMaterialDetail(sharedMaterialId: string, accessCode: string | null = null): Promise> {\r\n const params: { [params: string]: string } = {\r\n \"sharedMaterialId\": sharedMaterialId,\r\n };\r\n\r\n if (accessCode !== null) {\r\n params[\"accessCode\"] = accessCode\r\n }\r\n\r\n return await this.fetchGet(\r\n \"SharedMaterialDetail\",\r\n params\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async updateSharedMaterialsCompany(request: UpdateCompanyRequest): Promise> {\r\n return await this.fetchPostWithDataResponse(\"SharedMaterialsCompanyUpdate\", null, request);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async offlineProcessDelete(request: string): Promise> {\r\n return await this.fetchGet(\"OfflineProcessDelete\", { operationId: request });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async sharedMaterialsCompaniesGet(): Promise> {\r\n return await this.fetchGet(\"SharedMaterialsCompaniesGet\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async sharedMaterialsCompaniesDelete(companyIds: string[]): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"SharedMaterialsCompaniesDelete\", null, { companyIds: companyIds });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getSharedMaterialPreview(publicInventoryId: string, publicInventoryDataId: string, inBulkPublishMode: boolean): Promise> {\r\n return await this.fetchGet(\r\n \"PreviewSM2\",\r\n {\r\n \"publicInventoryId\": publicInventoryId,\r\n \"publicInventoryDataId\": publicInventoryDataId,\r\n \"inBulkPublishMode\": booleanToString(inBulkPublishMode)\r\n }\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getSharedMaterialEngage(companyName: string, productName: string): Promise> {\r\n return await this.fetchGet(\r\n \"Engage\",\r\n {\r\n \"companyName\": companyName,\r\n \"productName\": productName\r\n }\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async uploadGeneralImageFile(\r\n fileName: string,\r\n description: string,\r\n type: number,\r\n isSupplierUpload: boolean,\r\n isPublic: boolean,\r\n file: File\r\n ): Promise> {\r\n return await this.fetchPostFormWithDataResponse(\r\n \"GeneralFile\",\r\n {\r\n \"name\": fileName,\r\n \"description\": description,\r\n \"type\": type.toString(),\r\n \"isSupplierUpload\": isSupplierUpload ? \"True\" : \"False\",\r\n \"isPublic\": isPublic ? \"True\" : \"False\"\r\n },\r\n {\r\n \"fileData\": file\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async sharedMaterialsGetForTeam(): Promise> {\r\n return await this.fetchGet(\"SharedMaterialsGetForTeam\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getSharedMaterialsCompany(ownerId: string, companyId: string): Promise> {\r\n const params = {\r\n \"ownerId\": ownerId,\r\n \"companyId\": companyId\r\n };\r\n\r\n return this.fetchGet(\"SharedMaterialsCompanyGet\", params);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getSharedMaterialsCompanyFirst(ownerId: string): Promise> {\r\n const params = {\r\n \"ownerId\": ownerId,\r\n };\r\n\r\n return this.fetchGet(\"SharedMaterialsCompanyGetFirst\", params);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async contactCompany(request: EmailRequests.ContactACompanyRequest) {\r\n return await this.fetchPostWithNoDataResponse(\"SharedMaterialsContactACompany\", null, request);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async shareMaterialByEmail(request: EmailRequests.ShareAMaterialRequest): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"SharedMaterialsShareAMaterial\", null, request);\r\n }\r\n\r\n public async sharedMaterialsGetByIds(sharedMaterialIds: string[]): Promise> {\r\n return await this.fetchPostWithDataResponse(\"SharedMaterialsGetByIds\", null, sharedMaterialIds);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async requestAccessPermission(accessRequestData: SharedMaterialAccessRequestData) {\r\n return await this.fetchPostWithNoDataResponse(\"SharedMaterialsAccessRequestInsert\", null, accessRequestData);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n //\r\n // Shared Materials Access Requests and Control\r\n //\r\n\r\n public async getSharedMaterialAccessRequests(): Promise> {\r\n return await this.fetchGet(\"SharedMaterialsAccessRequestGetAll\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async respondToSharedMaterialAccessRequest(requestId: string, responseType: SharedMaterialsDataModel.AccessRequestResponseType): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"SharedMaterialsAccessRequestRespond\", { \"requestId\": requestId, \"type\": responseType.toString() }, request);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getCompanyHasPublishedSharedMaterials(): Promise> {\r\n return await this.fetchGet(\"SharedMaterialCompanyHasPublishedMaterials\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async sharedMaterialsGetAccessManagerBundle(): Promise> {\r\n return await this.fetchGet(\"SharedMaterialsGetAccessManagerBundle\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async batchSurveyResponseBomImport(responseId: string, file: File): Promise {\r\n return await this.fetchPostFormWithGenericResponse(\"BatchSurveyResponseBomImport\", { \"responseId\": responseId }, {\"spreadsheetFile\": file },);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async importDataGet(importId: string, retrurnResults: string): Promise {\r\n return await this.fetchPostFormWithGenericResponse(\"ImportDataGet\", { \"importId\": importId, \"retrurnResults\": retrurnResults },null);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async fetchCmrt(file: File) {\r\n return await this.fetchPostFormWithGenericResponse(\"FetchCmrt\", null, { \"fileData\": file });\r\n }\r\n\r\n\r\n // ===============================================================================\r\n\r\n public async FetchCountries() {\r\n return await this.fetchPostFormWithGenericResponse(\"FetchCountries\", null, null);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async enqueueImport(importId: string): Promise {\r\n return await this.fetchPostFormWithNoDataResponse(\"EnqueueImport\", { \"importId\": importId }, null);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async removeFromAccessControlList(teamOwnerIdWithAccess: string, sharedMaterialId: string): Promise {\r\n return await this.fetchPostWithNoDataResponse(\r\n \"SharedMaterialsAccessControlListDelete\",\r\n {\r\n \"teamOwnerIdWithAccess\": teamOwnerIdWithAccess,\r\n \"sharedMaterialId\": sharedMaterialId\r\n },\r\n null);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async grantGroupAccess(insertRequest: SharedMaterialsAccessControlListInsertRequest): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"SharedMaterialsAccessControlListInsert\", null, insertRequest);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async sharedMaterialsUpdateFetchForCatalogs(request: SharedMaterialsRemoveSharedMaterialsFromCatalogsRequest): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"SharedMaterialsUpdateFetchForCatalogs\", null, request);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n //\r\n // TOW\r\n //\r\n\r\n public async getActiveTows(): Promise> {\r\n return await this.fetchGet(\"ActiveTows\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async towUpdate(request: TowUpdateRequest): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"TowUpdate\", null, request);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async towDelete(request: TowDeleteRequest): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"TowDelete\", null, request);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async tryRedirectToMainApp(url: string): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"TryRedirectToMainApp\", { \"url\": url }, null);\r\n }\r\n\r\n //================================================================================\r\n\r\n public async getDataCollectionRequest(requestId: string, timeoutInMilliseconds?: number): Promise> {\r\n return await this.fetchPostFormWithDataResponse(\"GetDataCollectionRequest\", { \"requestId\": requestId, \"version\": \"2\" }, null, timeoutInMilliseconds);\r\n }\r\n\r\n //================================================================================\r\n\r\n public async createDataCollectionRequest(model: SurveyEditorCreateNewSurveyRequestData): Promise> {\r\n return await this.fetchPostWithDataResponse(\"CreateDataCollectionRequests\", null, model,\r\n 10 * 60 * 1000); // 10 minute timeout\r\n }\r\n\r\n //================================================================================\r\n\r\n public async sendDataCollectionRequestDraft(requestId: string): Promise> {\r\n return await this.fetchPostWithDataResponse(\r\n \"SendDataCollectionRequestDraft\",\r\n { \"requestId\": requestId, \"version\": \"2\" },\r\n \"\", //requestObject, string cannot be null but we don't need a requestobject\r\n 10 * 60 * 1000); // 10 minute timeout\r\n }\r\n\r\n //================================================================================\r\n\r\n public async surveyRequestUpdate(model: SurveyDataModel.SurveyRequest): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"DataCollectionRequestUpdate\", null, model,\r\n 10 * 60 * 1000); // 10 minute timeout\r\n }\r\n\r\n //================================================================================\r\n\r\n public async surveySetAsNoValidationRequired(requestId: string): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"SurveySetAsNoValidationRequired\", { \"requestId\": requestId, \"version\": \"2\" }, null);\r\n }\r\n\r\n //================================================================================\r\n\r\n public async sendRequestReminderEmails(requestIds: Readonly, reminderMessage: string): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"SendRequestReminderEmails\", null, { \"requestIds\": requestIds, \"reminderMessage\": reminderMessage });\r\n }\r\n\r\n //=================================================================================\r\n\r\n public async getDataCollectionTemplatesAll(): Promise> {\r\n return await this.fetchPostFormWithDataResponse(\"DataCollectionTemplateGetAll\", null, null);\r\n }\r\n\r\n //=================================================================================\r\n\r\n public async deleteDataCollectionTemplate(templateId: string): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"DataCollectionTemplateDelete\", { \"templateId\": templateId }, null)\r\n }\r\n\r\n //=================================================================================\r\n\r\n public async dataCollectionResponseImportInventory(responseId: string | null, responseInventoryId: string | null, sourceInventoryId: string): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"DataCollectionResponseImportInventory\", { \"responseId\": responseId ?? \"\", \"responseInventoryId\": responseInventoryId ?? \"\", \"sourceInventoryId\": sourceInventoryId, }, null)\r\n }\r\n\r\n //=================================================================================\r\n\r\n public async updateDataCollectionTemplate(model: SurveyDataModel.SurveyTemplateDataModel): Promise> {\r\n return await this.fetchPostWithDataResponse(\"DataCollectionTemplateUpdate\", null, model);\r\n }\r\n\r\n //=================================================================================\r\n\r\n public async getDataCollectionMetadata(inventoryIdsInRequest: string[]): Promise> {\r\n return await this.fetchPostWithDataResponse(\"GetDataCollectionMetadata\", null, { inventoryIdsInRequest: inventoryIdsInRequest });\r\n }\r\n\r\n //=================================================================================\r\n\r\n public async passportTemplateGet(sharedMaterialId: string, accessCode: string | null): Promise> {\r\n return await this.fetchGet(\"PassportTemplateGet\", { sharedMaterialId: sharedMaterialId, accessCode: accessCode ?? \"\" });\r\n }\r\n\r\n //=================================================================================\r\n\r\n public async passportTemplatePost(sharedMaterialId: string, accessCode: string | null, data: SurveyEditorCreateNewSurveyRequestData): Promise> {\r\n return await this.fetchPostWithDataResponse(\"PassportTemplatePost\", { sharedMaterialId: sharedMaterialId, accessCode: accessCode ?? \"\" }, data);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async addSharedMaterialToLibrary(sharedMaterialId: string): Promise> {\r\n return await this.fetchPostWithDataResponse(\"SharedMaterialCopyToUserLibraryInventory\",\r\n {\r\n \"sharedMaterialId\": sharedMaterialId,\r\n },\r\n null\r\n );\r\n }\r\n\r\n //=================================================================================\r\n\r\n public async exportSurveyRequest(surveyId: string): Promise> {\r\n return await this.fetchPostWithDataResponse(\"ExportSurveyRequest\", null, surveyId);\r\n }\r\n\r\n //=================================================================================\r\n\r\n public async search(query: string, pageNum: string): Promise {\r\n return await this.fetchPostFormWithGenericResponse(\"Search\", { \"query\": query, \"pageNum\": pageNum }, null);\r\n }\r\n\r\n //===============================================================================\r\n\r\n public async sharedMaterialsSearchSimilar(materialNames: string, supplierName: string): Promise> {\r\n return await this.fetchPostWithDataResponse(\"SharedMaterialsSearchSimilar\", { \"materialNames\": materialNames, \"supplierNames\": supplierName }, null);\r\n }\r\n\r\n // ==============================================================================\r\n\r\n public async copySharedMaterialDataIntoLibraryInventory(sharedMaterialId: string, targetInventoryId: string): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"CopySharedMaterialDataIntoInventory\", { \"sharedMaterialId\": sharedMaterialId, \"targetInventoryId\": targetInventoryId }, null);\r\n }\r\n\r\n // ==============================================================================\r\n\r\n public async surveyAcceptBomResponses(requestId: string, acceptBomsContext: AcceptBomsContext, saveCopies: boolean): Promise>> {\r\n const request: AcceptBomResponsesRequest = {\r\n requestId: requestId,\r\n acceptBomsContext: acceptBomsContext,\r\n saveCopies: saveCopies\r\n };\r\n\r\n return await this.fetchPostWithDataResponse>(\"AcceptDataCollectionBomResponses\", null, request, 60000);\r\n }\r\n\r\n // ==============================================================================\r\n\r\n public async surveyAcceptSupplierLevelResponse(requestId: string, historyId: string): Promise> {\r\n return await this.fetchPostFormWithDataResponse(\r\n \"AcceptDataCollectionSupplierResponse\",\r\n {\r\n \"requestId\": requestId,\r\n \"historyId\": historyId\r\n },\r\n null);\r\n }\r\n\r\n // ==============================================================================\r\n\r\n public async surveyRequestAddOfflineResponse(data: OfflineResponseApiData): Promise> {\r\n return await this.fetchPostWithDataResponse(\"SurveyRequestAddOfflineResponseHistoryEntry\", null, data);\r\n }\r\n\r\n // ==============================================================================\r\n\r\n public async surveySendGeneralRevisionRequest(requestId: string, revisionInstructions: string): Promise {\r\n const request = {\r\n requestId: requestId,\r\n historyId: null,\r\n generalRevisionRequest: {\r\n generalRevisionInstructions: revisionInstructions\r\n }\r\n };\r\n\r\n return await this.fetchPostWithNoDataResponse(\"SendRevisionRequest\", null, request, 10 * 60 * 1000);\r\n }\r\n\r\n // ==============================================================================\r\n\r\n public async surveySendGranularRevisionRequest(requestId: string, historyEntryId: string, granularRevisionRequest: SurveyDataModel.SurveyHistoryEntryGranularRevisionRequest): Promise {\r\n const request = {\r\n requestId: requestId,\r\n historyId: historyEntryId,\r\n granularRevisionRequest: granularRevisionRequest\r\n };\r\n\r\n return await this.fetchPostWithNoDataResponse(\"SendRevisionRequest\", null, request, 10 * 60 * 1000);\r\n }\r\n\r\n // ==============================================================================\r\n\r\n public async uploadGeneralFile(\r\n fileName: string,\r\n description: string,\r\n type: number,\r\n isSupplierUpload: boolean,\r\n isPublic: boolean,\r\n file: File,\r\n metadataType?: number,\r\n inventoryId?: string\r\n ): Promise> {\r\n return await this.fetchPostFormWithDataResponse(\r\n \"GeneralFile\",\r\n {\r\n \"name\": fileName,\r\n \"description\": description,\r\n \"type\": type.toString(),\r\n \"inventoryId\": inventoryId ?? \"\",\r\n \"metadataType\": metadataType ? metadataType.toString() : \"\",\r\n \"isSupplierUpload\": isSupplierUpload ? \"True\" : \"False\",\r\n \"isPublic\": isPublic ? \"True\" : \"False\"\r\n },\r\n {\r\n \"fileData\": file\r\n });\r\n }\r\n\r\n // ==============================================================================\r\n\r\n public async updateInventoryDetails(\r\n inventoryId: string,\r\n name: string,\r\n description: string,\r\n fileId: string\r\n ): Promise {\r\n return await this.fetchPutFormResponse(\"UpdateInventoryDetails\", {\r\n \"inventoryId\": inventoryId,\r\n \"name\": name,\r\n \"description\": description,\r\n \"photoFileId\": fileId\r\n });\r\n }\r\n\r\n // ==============================================================================\r\n \r\n public async addInventory(\r\n responseId: string,\r\n inventoryName: string,\r\n ): Promise> {\r\n return await this.fetchPostWithResponse(\"AddInventory\", {\r\n \"responseId\": responseId,\r\n \"inventoryName\": inventoryName\r\n },{});\r\n }\r\n\r\n // ==============================================================================\r\n\r\n public async deleteInventory(\r\n responseId: string,\r\n inventoryId: string,\r\n ): Promise> {\r\n return await this.fetchPostWithResponse(\"deleteInventory\", {\r\n \"responseId\": responseId,\r\n \"inventoryId\": inventoryId\r\n },null);\r\n }\r\n\r\n // ==============================================================================\r\n\r\n public async dataCollectionResponseWriteGroupedResponseInventories(\r\n responseId: string,\r\n groupedResponseInventories: { [name: string]: SurveyDataModel.SurveyResponseInventoryGroup }\r\n ): Promise> {\r\n return await this.fetchPostWithDataResponse(\r\n \"DataCollectionResponseWriteGroupedResponseInventories\",\r\n null,\r\n {\r\n responseId: responseId,\r\n groupedResponseInventories: groupedResponseInventories\r\n });\r\n }\r\n\r\n // ==============================================================================\r\n\r\n public async uploadInventoryFile(\r\n fileName: string,\r\n description: string,\r\n type: number,\r\n isSupplierUpload: boolean,\r\n isPublic: boolean,\r\n file: File,\r\n metadataType?: number,\r\n inventoryId?: string,\r\n isDelete?: boolean,\r\n fileId?: string\r\n ): Promise> {\r\n return await this.fetchPostFormWithDataResponse(\r\n \"InventoryFile\",\r\n {\r\n \"name\": fileName,\r\n \"description\": description,\r\n \"type\": type.toString(),\r\n \"inventoryId\": inventoryId ?? \"\",\r\n \"metadataType\": metadataType ? metadataType.toString() : \"\",\r\n \"isSupplierUpload\": isSupplierUpload ? \"True\" : \"False\",\r\n \"isPublic\": isPublic ? \"True\" : \"False\",\r\n \"version\": \"2\",\r\n \"delete\": isDelete ? \"True\" : \"False\",\r\n \"fileId\": fileId ?? \"\"\r\n },\r\n {\r\n \"fileData\": file\r\n });\r\n }\r\n\r\n // ==============================================================================\r\n\r\n public async deleteGeneralFile(fileId: string): Promise> {\r\n return await this.fetchPostFormWithDataResponse(\r\n \"GeneralFile\",\r\n {\r\n \"fileId\": fileId,\r\n \"delete\": \"True\"\r\n }, null);\r\n };\r\n\r\n public async deleteInventoryFile(fileId: string, inventoryId:string): Promise> {\r\n return await this.fetchPostFormWithDataResponse(\r\n \"InventoryFile\",\r\n {\r\n \"fileId\": fileId,\r\n \"delete\": \"True\",\r\n \"inventoryId\": inventoryId\r\n }, null);\r\n };\r\n\r\n // ==============================================================================\r\n\r\n public async getSourceInventoryIdForPublicInventoryId(publicInventoryId: string): Promise> {\r\n return await this.fetchPostWithDataResponse(\"GetSourceInventoryIdForPublicInventoryId\",\r\n {\r\n \"publicInventoryId\": publicInventoryId,\r\n },\r\n null\r\n );\r\n }\r\n\r\n public async importSdsIngredientsIntoBom(inventoryId: string, sdsId: string, ingredientsData: string, overWriteBomRows: boolean = true): Promise> {\r\n return await this.fetchPostWithDataResponse(\"ImportSdsIngredientsIntoBom\",\r\n {\r\n \"inventoryId\": inventoryId,\r\n \"sdsId\": sdsId,\r\n \"ingredientsData\": ingredientsData,\r\n \"overWriteBomRows\": overWriteBomRows.toString()\r\n },\r\n null\r\n );\r\n }\r\n\r\n public async inventoryGetAllSdsWithFile(inventoryId: string): Promise> {\r\n return await this.fetchPostWithDataResponse(\"InventoryGetAllSdsWithFile\",\r\n {\r\n \"inventoryId\": inventoryId,\r\n },\r\n null\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async engageConnectWithAssaAbloy(request: EngageConnectFormData): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"EngageConnectWithAssaAbloy\", null, request);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getStartData(): Promise> {\r\n return await this.fetchGet(\"GetStartData\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async importSuppliersFromFile(file: File): Promise> {\r\n return await this.fetchPostFormWithDataResponse(\r\n \"InviteSuppliersImport\",\r\n null,\r\n {\r\n \"fileData\": file\r\n }\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async suppliersGet(): Promise> {\r\n return await this.fetchGet(\"SuppliersGet\", null);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async inviteSuppliersBundleGet(): Promise> {\r\n return await this.fetchGet(\"InviteSuppliersBundleGet\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async initializeCreateAndSendSurveysOfflineProcess(request: InitializeCreateAndSendSurveysOfflineProcessRequest): Promise> {\r\n return await this.fetchPostWithDataResponse(\r\n \"InitializeCreateAndSendSurveysOfflineProcess\",\r\n null,\r\n request\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async initializeOneClickSendSurveysOfflineProcess(selectedInventoryIds: string[], templateId: string): Promise> {\r\n return await this.fetchPostWithDataResponse(\r\n \"InitializeOneClickSendSurveysOfflineProcess\",\r\n null,\r\n {\r\n templateId: templateId,\r\n selectedInventoryIds: selectedInventoryIds\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async createAndSendSurveysOfflineProcessDataGet(operationId: string, returnResults: boolean): Promise> {\r\n return await this.fetchGet(\r\n \"CreateAndSendSurveysOfflineProcessDataGet\",\r\n {\r\n \"operationId\": operationId,\r\n \"returnResults\": returnResults.toString()\r\n }\r\n );\r\n }\r\n\r\n\r\n // ===============================================================================\r\n\r\n public async offlineProcessGet(operationId: string, requestContext: boolean) {\r\n return await this.fetchGet(\r\n \"OfflineProcessGet\",\r\n {\r\n \"operationId\": operationId,\r\n \"requestContext\": requestContext ? \"True\" : \"False\"\r\n }\r\n );\r\n };\r\n\r\n // ===============================================================================\r\n\r\n public async inventoriesCountLibraryBoms(): Promise> {\r\n return await this.fetchGet(\"InventoriesCountLibraryBoms\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getIpc1752aData(inventoryId: string, refresh: boolean): Promise> {\r\n return await this.fetchPostWithDataResponse(\"GetIpc1752aPreviewData\", { \"inventoryId\": inventoryId, \"refresh\": refresh ? \"True\" : \"False\" }, null);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async setIpc1752aData(ipc1752aData: Ipc1752AXmlData, inventoryId: string) {\r\n const request = {\r\n ipc1752aDataJson: ipc1752aData,\r\n inventoryId: inventoryId\r\n }\r\n\r\n return await this.fetchPostWithNoDataResponse(\"SetIpc1752aData\", null, request);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async updateCustomer(customer: UpdateCustomerRequest): Promise> {\r\n return await this.fetchPostWithDataResponse(\r\n \"CustomerUpdate\",\r\n null,\r\n customer\r\n )\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getCustomersBundle(): Promise> {\r\n return await this.fetchGet(\"CustomersGetBundle\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async deleteCustomers(customerIds: string[]): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"CustomersDelete\", null, customerIds);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async uploadCustomers(file: File): Promise {\r\n return await this.fetchPostFormWithNoDataResponse(\r\n \"UploadCustomers\",\r\n null,\r\n {\r\n \"fileData\": file\r\n }\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async checkIfCompanyCustomUrlIsValid(companyId: string | null, customName: string): Promise> {\r\n const params: { [param: string]: string } = {};\r\n params[\"customUrlName\"] = customName;\r\n\r\n if (companyId !== null) {\r\n params[\"companyId\"] = companyId;\r\n }\r\n\r\n return await this.fetchGet(\"CompanyCustomUrlNameIsValid\", params);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getCompanyFromCustomUrlName(customUrlName: string): Promise> {\r\n return await this.fetchGet(\"GetCompanyFromCustomUrlName\", { \"customUrlName\": customUrlName });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async createCustomerReportRequest(request: CreateReportRequest): Promise> {\r\n return await this.fetchPostWithDataResponse(\"CreateCustomerReportRequest\", null, request);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async updateCustomerRequest(request: CustomerRequest): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"CustomerRequestUpdate\", null, request);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async respondToCustomerRequests(requestIds: string[]): Promise> {\r\n return await this.fetchPostWithDataResponse(\"RespondToCustomerRequests\", null, { customerRequestIds: requestIds });\r\n }\r\n\r\n // ==============================================================================\r\n\r\n public async getInventoriesNames(inventoryIds: string[]): Promise> {\r\n return await this.fetchPostWithDataResponse<{ inventoryIds: string[] }, InventoriesGetNamesResponse[]>(\"InventoriesGetNames\", null, { inventoryIds: inventoryIds });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async initializeBulkReporting(request: BulkReportRequest): Promise> {\r\n return await this.fetchPostWithDataResponse(\"InitializeBulkReporting\", null, request);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async favoriteAndPrivateListDefinitionsGetAll(): Promise> {\r\n return await this.fetchGet(\"FavoriteAndPrivateListDefinitionsGetAll\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async offlineProcessDataGet(operationId: string, requestContext: boolean): Promise>> {\r\n return await this.fetchGet(\"OfflineProcessGet\", { \"operationId\": operationId, \"requestContext\": requestContext ? \"True\" : \"False\" });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async customerRequestGet(requestId: string): Promise> {\r\n return await this.fetchGet(\"CustomerRequestGet\", { \"requestId\": requestId });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async customerInventoryPurchasesUpdate(customerId: string, inventoryIds: string[]): Promise> {\r\n return await this.fetchPostWithDataResponse(\"CustomerInventoryPurchasesUpdate\", { \"customerId\": customerId }, inventoryIds);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async customerInventoryPurchasesGetAllForCustomer(customerId: string): Promise> {\r\n return await this.fetchGet(\"CustomerInventoryPurchasesGetAllForCustomer\", { \"customerId\": customerId });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async customerInventoryPurchasesDelete(customerId: string, inventoryIds: string[]): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"CustomerInventoryPurchasesDelete\", { \"customerId\": customerId }, inventoryIds);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async customerRequestUpdateInventoriesToReport(requestId: string, inventoryIds: string[]): Promise> {\r\n return await this.fetchPostWithDataResponse(\"CustomerRequestUpdateInventoriesToReport\", { \"requestId\": requestId }, inventoryIds);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getAllCustomersAffectedByInventoryChanges(inventoryIds: string[]): Promise> {\r\n return await this.fetchPostWithDataResponse(\"GetAllCustomersAffectedByInventoryChanges\", null, { inventoryIds: inventoryIds });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async updateAffectedCustomersAboutInventories(inventoryIds: string[]): Promise> {\r\n return await this.fetchPostWithDataResponse(\"UpdateAffectedCustomersAboutInventories\", null, { inventoryIds: inventoryIds });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getTaskManagementTasks(): Promise> {\r\n return await this.fetchPostWithDataResponse(\"TaskManagementTasksGet\", null, null)\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async updateTaskManagementTask(task: TaskManagementApiRequest, sendAssignmentEmail: boolean): Promise> {\r\n return await this.fetchPostWithDataResponse(\"TaskManagementTaskUpdate\", null, task);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async deleteTaskManagementTask(taskIds: string[]) {\r\n return await this.fetchPostWithNoDataResponse(\"TaskManagementTaskDelete\", null, taskIds);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async bulkUpdateTaskManagementTask(tasks: Task[], sendAssignmentEmail: string) {\r\n return await this.fetchPostWithNoDataResponse(\"TaskManagementTaskBulkUpdate\", { \"sendAssignmentEmail\": sendAssignmentEmail }, tasks);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getTaskManagementLinkedInventoriesNames(inventoryIds: string[]): Promise> {\r\n return await this.fetchPostWithDataResponse(\"TaskManagementGetLinkedInventoriesNames\", null, inventoryIds);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getAllowedReportTypesForCurrentUser(onlyAllowBulkReportTypes: boolean): Promise> {\r\n return await this.fetchGet(\"GetAllowedReportTypesForCurrentUser\", { \"onlyAllowBulkReportTypes\": booleanToString(onlyAllowBulkReportTypes) });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async upsellWrite(description: string): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"UpsellWrite\", { \"description\": description }, null);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async inventoriesGetForSupplier(supplierId: string): Promise> {\r\n return await this.fetchGet(\"InventoriesGetForSupplier\", { \"supplierId\": supplierId });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async inventoriesGetForSupplierIds(supplierIds: string[]): Promise> {\r\n return await this.fetchPostWithDataResponse(\"InventoriesGetForSuppliers\", null, supplierIds);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async setSurveyTemplateAsDefault(templateId: string): Promise {\r\n return await this.fetchGet(\"SetDefaultSurveyTemplate\", { \"templateId\": templateId })\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async surveyTemplateManagerBundleGet(): Promise> {\r\n return await this.fetchPostFormWithDataResponse(\"SurveyTemplateManagerBundleGet\", null, null);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async userUpdateProfileName(name: string): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"UserUpdateProfileName\", { \"name\": name }, null);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async sendCertificationConsolidationSurveyRequest(request: CertificationConsolidationSurveyRequest): Promise> {\r\n return await this.fetchPostWithDataResponse(\"SendCertificationConsolidationSurveyRequest\", null, request);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getCertificationConsolidationResponse(responseId: string): Promise> {\r\n return await this.fetchGet(\"GetCertificationConsolidationResponse\", { \"responseId\": responseId });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async updateCertificationConsolidationResponse(response: CertificationConsolidationResponse, submit: boolean = false): Promise> {\r\n return await this.fetchPostWithDataResponse(\"UpdateCertificationConsolidationResponse\", { \"submit\": submit ? \"True\" : \"False\" }, response);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async getInventory(inventoryId: string): Promise> {\r\n return await this.fetchGet(\"GetInventory\", { \"inventoryId\": inventoryId });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async dataCollectionRequestGetInventoryMetadata(inventoryIds: string[]): Promise> {\r\n return await this.fetchPostWithDataResponse(\"DataCollectionRequestGetInventoryMetadata\", null, { inventoryIds: inventoryIds });\r\n }\r\n\r\n public async getDataCollectionResponse(requestId: string): Promise> {\r\n return this.fetchGet(\"GetDataCollectionResponse\", { \"requestId\": requestId });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async createLibraryInventory(\r\n name: string,\r\n description: string,\r\n supplier: string,\r\n plant: string,\r\n isComponent: boolean\r\n ): Promise> {\r\n return await this.fetchPostFormWithDataResponse(\r\n \"CreateLibraryInventory\",\r\n {\r\n \"name\": name,\r\n \"description\": description,\r\n \"supplier\": supplier,\r\n \"plant\": plant,\r\n \"isComponent\": isComponent.toString()\r\n },\r\n null\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async libraryInventoriesGetForUserFilteredSortedAndPaged(\r\n returnMaterials: boolean,\r\n searchTerms: string[],\r\n folderId: string | null,\r\n rowsPerPage: number,\r\n pageIndex: number\r\n ): Promise {\r\n const filters: LibraryFiltersModel = {\r\n activeFilters: []\r\n };\r\n\r\n if (searchTerms.length > 0) {\r\n filters.activeFilters.push({\r\n type: \"Search\",\r\n arguments: [],\r\n values: [searchTerms.join(\"\\n\")]\r\n });\r\n }\r\n\r\n var data: { [k: string]: string } = {\r\n \"returnMaterials\": returnMaterials ? \"True\" : \"False\",\r\n \"inventoriesSort\": \"name\",\r\n \"sortAscending\": \"True\",\r\n \"filtersJson\": JSON.stringify(filters),\r\n \"rowsPerPage\": rowsPerPage.toString(),\r\n \"pageIndex\": pageIndex.toString(),\r\n \"includeVersionHistory\": \"False\",\r\n \"restrictResultsToFolderId\": \"False\"\r\n };\r\n\r\n if (folderId !== null) {\r\n data[\"folderId\"] = folderId;\r\n data[\"restrictResultsToFolderId\"] = \"True\";\r\n }\r\n\r\n return await this.fetchPostFormWithGenericResponse(\"LibraryInventoriesGetForUserFilteredSortedAndPaged\", data, null);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async clientTeamRequestGet(code: string): Promise> {\r\n return await this.fetchPostFormWithDataResponse(\"ClientTeamRequestGet\", { \"code\": code }, null);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async dataCollectionImportFileResponse(requestId: string, fileId: string): Promise> {\r\n return this.fetchPostWithDataResponse(\"DataCollectionImportFileResponse\", null, { requestId: requestId, fileId: fileId });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async publicationsDelete(publicInventoryIds: string[]): Promise {\r\n return this.fetchPostWithNoDataResponse(\"PublicationsDelete\", null, { publicInventoryIds: publicInventoryIds });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public getCoreSurveyResponseData(responseId: string, page: number): Promise> {\r\n return this.fetchGet(\"GetCoreSurveyResponseData\", { \"responseId\": responseId, \"page\": page.toString() });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public getCoreSurveyResponseDataForAddedMaterials(responseId: string): Promise> {\r\n return this.fetchGet(\"GetAddedMaterialsData\", { \"responseId\": responseId });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public getInventoryDetails(responseId: string, inventoryId: string): Promise> {\r\n return this.fetchGet(\"GetInventoryDetails\", { \"responseId\": responseId, \"inventoryId\": inventoryId });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async scipIuclidStaticDataGet(): Promise> {\r\n return await this.fetchPostWithResponse(\"ScipIuclidStaticDataGet\", null, null);\r\n }\r\n\r\n public async scipSubmissionUpdate(scipSubmission: SurveyDataModel.ScipSubmissionData, shouldSavePublicInventoryDataDraft:boolean = false): Promise {\r\n return this.fetchPostWithNoDataResponse(\"ScipSubmissionUpdate\", null, {\r\n scipSubmission: scipSubmission,\r\n shouldSavePublicInventoryDataDraft: shouldSavePublicInventoryDataDraft });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async scipSubmissionGet(inventoryId: string, isPassport: boolean, isSurvey: boolean = false): Promise> {\r\n return await this.fetchPostWithResponse(\r\n \"ScipSubmissionGet\",\r\n {\r\n \"inventoryId\": inventoryId,\r\n \"isPassport\": booleanToString(isPassport),\r\n \"isSurvey\": booleanToString(isSurvey)\r\n },\r\n null\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n // TODO: large-surveys // use paging\r\n public async validateDataCollectionResponse(responseId: string, inventoryIds: string[], optionalQuestionsInventoryIds: string[] | null = null): Promise> {\r\n return await this.fetchPostWithResponse(\r\n \"ValidateDataCollectionResponse\",\r\n {\r\n \"responseId\": responseId\r\n }, \r\n {\r\n \"inventoryIds\": inventoryIds,\r\n \"optionalQuestionsInventoryIds\": optionalQuestionsInventoryIds\r\n },\r\n 1000 * 60 * 15,\r\n false);\r\n }\r\n\r\n public async validateSupplierQuestionnaire(responseId: string): Promise> {\r\n return await this.fetchPostWithResponse(\r\n \"ValidateSupplierQuestionnaire\",\r\n {\r\n \"responseId\": responseId,\r\n },\r\n null,\r\n 1000 * 60 * 15,\r\n false);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async inventoryComplianceScores(requestData: InventoryComplianceScoresRequest): Promise<{\r\n result: ResultType.NotFound | ResultType.NoSeat | ResultType.InsufficientPermissions | ResultType.Failure | ResultType.Forbidden | ResultType.QuotaExceeded | ResultType.NetworkFailure | ResultType.UploadTooLarge;\r\n data: null;\r\n success: boolean\r\n } | {\r\n result: ResultType | string;\r\n data: InventoryComplianceScoresResponse;\r\n success: boolean\r\n }> {\r\n return await this.fetchPostWithResponse(\r\n \"InventoryComplianceScores\",\r\n { \"inventoryId\": requestData.inventoryId, \"flagZerosAndMissingPercentagesOnSubstances\": requestData.flagZerosAndMissingPercentagesOnSubstances.toString() },\r\n null,\r\n 1000 * 60 * 15,\r\n false);\r\n\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async dataCollectionResponseForward(emailAddress: string, message: string, responseId: string): Promise {\r\n return await this.fetchPostWithNoDataResponse(\"DataCollectionResponseForward\", null, { \"emailAddress\": emailAddress, \"message\": message, \"responseId\": responseId });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public questionnaireResponseUpdate(responseId: string, inventoryId: string, isAttestationQuestionnaire: boolean, questionnaire: SurveyDataModel.Questionnaire, fileList: FileTableEntry[] | null | undefined): Promise {\r\n return this.fetchPostFormWithDataResponse(\"QuestionnaireResponseUpdate\", { \"responseId\": responseId, \"inventoryId\": inventoryId, \"isAttestationQuestionnaire\": isAttestationQuestionnaire.toString(), \"questionnaireJson\": JSON.stringify(questionnaire), \"fileIdInventoryIdAndFileMetadataListJson\": JSON.stringify(fileList) }, null, undefined, false);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public inventorySummaryDataQuestionnaireResponseUpdate(responseId: string, inventory: InventoryDetailsResponse, questionnaire: SurveyDataModel.Questionnaire): Promise {\r\n questionnaire.inventoryIdList = [inventory.inventoryId];\r\n return this.fetchPostFormWithDataResponse(\"InventorySummaryDataQuestionnaireResponseUpdate\", { \"responseId\": responseId, \"inventoryId\": inventory.inventoryId, \"questionnaireJson\": JSON.stringify(questionnaire), \"fileIdInventoryIdAndFileMetadataListJson\": JSON.stringify(inventory.fileList) }, null, undefined, false);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public submitDataCollectionResponse(\r\n responseId: string,\r\n shouldConvertWeightsToRangesOnPublish: boolean,\r\n companyIdForPublish: string | null,\r\n companyNameForPublish: string,\r\n accessLevel: SharedMaterialsDataModel.SharedMaterialAccessType\r\n ): Promise> {\r\n const params: { [param: string]: string } = {\r\n \"responseId\": responseId,\r\n \"shouldConvertWeightsToRangesOnPublish\": booleanToString(shouldConvertWeightsToRangesOnPublish),\r\n \"companyNameForPublish\": companyNameForPublish,\r\n \"accessLevel\": accessLevel.toString()\r\n };\r\n\r\n if (companyIdForPublish !== null) {\r\n params[\"companyIdForPublish\"] = companyIdForPublish;\r\n\r\n }\r\n\r\n return this.fetchPostWithDataResponse(\"SubmitDataCollectionResponse\", params, null);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async dataCollectionResponseInventoryDataUpdateMetadata(responseId: string, inventoryData: SurveyDataModel.SurveyResponseInventoryData) {\r\n return this.fetchPostWithNoDataResponse(\r\n \"DataCollectionResponseInventoryDataUpdateMetadata\",\r\n null,\r\n {\r\n responseId: responseId,\r\n inventoryData: inventoryData\r\n }\r\n )\r\n }\r\n\r\n // ===============================================================================\r\n public async updateExtensionRequest(responseId: string, extensionRequest: ExtensionRequestModel): Promise> {\r\n return await this.fetchPostWithDataResponse(\r\n \"UpdateExtensionRequest\",\r\n {\r\n \"responseId\": responseId\r\n },\r\n extensionRequest\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n public async removeExtensionRequest(extensionRequestId: string, responseOwnerId: string) {\r\n await this.fetchPostWithNoDataResponse(\r\n \"RemoveExtensionRequest\",\r\n {\r\n \"extensionRequestId\": extensionRequestId,\r\n \"responseOwnerId\": responseOwnerId\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public getPlausibilityData(inventoryId: string, ownerId: string): Promise> {\r\n return this.fetchGet(\"GetPlausibilityData\", { \"inventoryId\": inventoryId, \"ownerId\": ownerId });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public getObtainmentReports(pageIndex: number, rowsPerPage: number): Promise> {\r\n return this.fetchGet(\"ObtainmentReports\", { \"pageIndex\": pageIndex.toString(), \"rowsPerPage\": rowsPerPage.toString() });\r\n }\r\n public async updateUserProfileLanguage(cultureName: string): Promise> {\r\n const response = await this.fetchPostWithDataResponse('UpdateUserProfileLanguage', { \"cultureName\": cultureName.toString() }, null);\r\n let dataResult = {\r\n data: response.success ? { message: 'User Language Updated.' } : null,\r\n result: response.result,\r\n success: response.success\r\n };\r\n return dataResult;\r\n }\r\n}\r\n\r\n","import * as React from 'react';\r\nimport { QuestionRevision, BomColumnRevision, GeneralRevisionRequest, SupplierQuestionnaireRevisionRequest, BomRevisionRequest, SurveyHistoryEntryGranularRevisionRequest } from '../../Models/Surveys/SurveyDataModel'\r\n\r\nexport default class RevisionRequestManager {\r\n private _surveyRequestId: string;\r\n private _historyEntryId: string;\r\n private _granularRevisionRequest: SurveyHistoryEntryGranularRevisionRequest | null;\r\n\r\n // ===============================================================================\r\n\r\n public constructor(\r\n surveyRequestId: string,\r\n historyEntryId: string\r\n ) {\r\n this._surveyRequestId = surveyRequestId;\r\n this._historyEntryId = historyEntryId;\r\n this._granularRevisionRequest = null;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n static fromOther(other: RevisionRequestManager) {\r\n return new RevisionRequestManager(other._surveyRequestId, other._historyEntryId);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public getGranularRevisionRequest() {\r\n return this._granularRevisionRequest;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getLocalStorageKeyForSurveyHistoryEntryRevisionRequests() {\r\n return \"survey-history-entry-revision-requests-\" + this._historyEntryId;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public setGeneralEmailInstructions(message: string) {\r\n if (this._granularRevisionRequest === null) {\r\n throw new Error(\"no granular revision request loaded\");\r\n }\r\n\r\n this._granularRevisionRequest.generalRevisionInstructions = message;\r\n\r\n this.saveSurveyHistoryEntryRevisionRequests();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public loadSurveyHistoryEntryRevisionRequests() {\r\n const storageKey = this.getLocalStorageKeyForSurveyHistoryEntryRevisionRequests();\r\n\r\n const json = localStorage.getItem(storageKey);\r\n\r\n if (json === null) {\r\n this._granularRevisionRequest = {\r\n generalRevisionInstructions: \"\",\r\n supplierQuestionnaireRevisionRequest: null,\r\n bomRevisionRequestTable: {},\r\n dateSentIso8601: null,\r\n dateRevisionResponseReceivedIso8601: null,\r\n sentTo: null\r\n };\r\n\r\n return;\r\n }\r\n\r\n const object = JSON.parse(json);\r\n\r\n //\r\n // Migrate legacy data\r\n //\r\n\r\n if (object[\"dateRevisionRequestRecievedIso8601\"] !== undefined) {\r\n object[\"dateRevisionResponseReceivedIso8601\"] = object[\"dateRevisionRequestRecievedIso8601\"];\r\n delete object[\"dateRevisionRequestRecievedIso8601\"];\r\n }\r\n\r\n if (object[\"supplierQuestionnaireRevisionRequest\"] !== null) {\r\n if (object[\"supplierQuestionnaireRevisionRequest\"][\"dateRevisionRequestRecievedIso8601\"] !== undefined) {\r\n object[\"supplierQuestionnaireRevisionRequest\"][\"dateRevisionResponseReceivedIso8601\"] = object[\"supplierQuestionnaireRevisionRequest\"][\"dateRevisionRequestRecievedIso8601\"];\r\n delete object[\"supplierQuestionnaireRevisionRequest\"][\"dateRevisionRequestRecievedIso8601\"];\r\n }\r\n }\r\n\r\n for (let bomKey of Object.keys(object[\"bomRevisionRequestTable\"])) {\r\n const bomRevisionRequest = object[\"bomRevisionRequestTable\"][bomKey];\r\n\r\n if (bomRevisionRequest[\"dateRevisionRequestRecievedIso8601\"] !== undefined) {\r\n bomRevisionRequest[\"dateRevisionResponseReceivedIso8601\"] = bomRevisionRequest[\"dateRevisionRequestRecievedIso8601\"];\r\n delete bomRevisionRequest[\"dateRevisionRequestRecievedIso8601\"];\r\n }\r\n\r\n const newProperties = [\r\n \"sustainabilityRevisionInstructions\",\r\n \"circularityRevisionInstructions\"\r\n ];\r\n\r\n for (let newProperty of newProperties) {\r\n if (bomRevisionRequest[newProperty] === undefined) {\r\n bomRevisionRequest[newProperty] = \"\";\r\n }\r\n }\r\n\r\n if (!bomRevisionRequest.dynamicRegulationRevisionInstructions) {\r\n bomRevisionRequest.dynamicRegulationRevisionInstructions = {};\r\n }\r\n }\r\n\r\n this._granularRevisionRequest = object as SurveyHistoryEntryGranularRevisionRequest;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private saveSurveyHistoryEntryRevisionRequests() {\r\n const json = JSON.stringify(this._granularRevisionRequest);\r\n\r\n const storageKey = this.getLocalStorageKeyForSurveyHistoryEntryRevisionRequests();\r\n\r\n localStorage.setItem(storageKey, json);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * @return whether all specific revision instructions in the given request are empty.\r\n */\r\n public static allSpecificRevisionInstructionsAreEmpty(bomRevisionRequest: BomRevisionRequest): boolean {\r\n return (bomRevisionRequest.bomQuestionnaireQuestionRevisions.length === 0) &&\r\n (bomRevisionRequest.attestationQuestionnaireQuestionRevisions.length === 0) &&\r\n (bomRevisionRequest.bomColumnRevisions.length === 0) &&\r\n !Object.values(bomRevisionRequest.dynamicRegulationRevisionInstructions).find(x => x.length > 0) &&\r\n (bomRevisionRequest.sustainabilityRevisionInstructions.length === 0) &&\r\n (bomRevisionRequest.circularityRevisionInstructions.length === 0);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public activeRequestIsEmpty() {\r\n if (this._granularRevisionRequest === null) {\r\n return true;\r\n }\r\n\r\n return (this._granularRevisionRequest.supplierQuestionnaireRevisionRequest === null) &&\r\n Object.keys(this._granularRevisionRequest.bomRevisionRequestTable).every(id => {\r\n const bomRevisionRequest = this._granularRevisionRequest!.bomRevisionRequestTable[id];\r\n\r\n return RevisionRequestManager.allSpecificRevisionInstructionsAreEmpty(bomRevisionRequest);\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public supplierQuestionnaireIsMarkedForRevision() {\r\n if (this._granularRevisionRequest === null) {\r\n return false;\r\n }\r\n\r\n return (this._granularRevisionRequest.supplierQuestionnaireRevisionRequest !== null) &&\r\n ((this._granularRevisionRequest.supplierQuestionnaireRevisionRequest.generalRevisionInstructions.length > 0) ||\r\n (this._granularRevisionRequest.supplierQuestionnaireRevisionRequest.supplierQuestionRevisions.length > 0));\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public getSupplierQuestionnaireRevisionRequest() {\r\n return this._granularRevisionRequest?.supplierQuestionnaireRevisionRequest;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public bomIsMarkedForRevision(responseInventoryId: string) {\r\n if (this._granularRevisionRequest === null) {\r\n return false;\r\n }\r\n\r\n const bomRevisionRequest = this._granularRevisionRequest.bomRevisionRequestTable[responseInventoryId];\r\n\r\n if (!bomRevisionRequest) {\r\n return false;\r\n }\r\n\r\n return (bomRevisionRequest.generalRevisionInstructions.length > 0) ||\r\n (bomRevisionRequest.bomQuestionnaireQuestionRevisions.length > 0) ||\r\n (bomRevisionRequest.attestationQuestionnaireQuestionRevisions.length > 0) ||\r\n (bomRevisionRequest.bomColumnRevisions.length > 0);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public getBomRevisionRequest(responseInventoryId: string) {\r\n return this._granularRevisionRequest?.bomRevisionRequestTable[responseInventoryId] ?? null;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public copyBomRevisionToOtherBoms(sourceResponseInventoryId: string, destinationResponseInventoryIds: string[]) {\r\n if (this._granularRevisionRequest === null) {\r\n throw new Error(\"not initialized\");\r\n }\r\n\r\n const sourceBomRevisionRequest = this._granularRevisionRequest.bomRevisionRequestTable[sourceResponseInventoryId];\r\n\r\n if (!sourceBomRevisionRequest) {\r\n return;\r\n }\r\n\r\n for (let destinationResponseInventoryId of destinationResponseInventoryIds) {\r\n this._granularRevisionRequest.bomRevisionRequestTable[destinationResponseInventoryId] = {\r\n ...sourceBomRevisionRequest,\r\n responseInventoryId: destinationResponseInventoryId\r\n };\r\n }\r\n\r\n this.saveSurveyHistoryEntryRevisionRequests();\r\n }\r\n\r\n public removeRevisionFromRequestTable(responseInventoryId:string) {\r\n delete this._granularRevisionRequest?.bomRevisionRequestTable[responseInventoryId];\r\n this.saveSurveyHistoryEntryRevisionRequests();\r\n }\r\n\r\n public getCurrentHistoryId() {\r\n return this._historyEntryId;\r\n }\r\n}","import { Action, Reducer } from 'redux';\r\nimport { AppServices } from '../../../AppServices';\r\nimport '../../../utilities/Utilities';\r\nimport { ResultType } from '../../Models/Api/ApiResponse';\r\nimport { SurveyEditorCreateNewSurveyRequestData } from '../../Models/Api/SurveyEditorCreateNewSurveyRequestModel';\r\nimport { InviteSupplierModel } from '../../Models/Supplier/Supplier';\r\nimport { ColumnRequiredFlags, SurveyDataRequested, DisplaySection, emptySurveyMetadata, emptySurveyRequest, OfflineResponseApiData, QuestionnairePageType, SurveyableColumn, SurveyData, SurveyMode, SurveyRequest, SurveyRequestedBomColumn, SurveyRequestApiRequestBundle, SurveySendStateType, SurveyState, SurveyTemplateDataModel, SurveyUi, SurveyRequestInventoryMetadata, SaveTemplateMode } from '../../Models/Surveys/SurveyDataModel';\r\nimport { ApplicationState, AppThunkAction, AppThunkActionAsync } from './../../';\r\nimport { DataResult, ToxnotServiceClient } from './../../ToxnotServiceClient';\r\nimport RevisionRequestManager from './RevisionRequestManager';\r\nimport * as Models from '../../../store/Models/Surveys/SurveyDataModel';\r\nimport { InventoryIdentifiers } from './SurveyResponse/SurveyResponseModels';\r\n\r\n// ==============================================================================\r\n\r\n//\r\n// these are the default \"required\" flags for selected bom columns\r\n// anything not in this list will default to { requiredInSummaryRow: false, requiredInNonSummaryNonLeafRows: true, requiredInLeafRows: true }\r\n//\r\nexport const columnIdToDefaultColumnRequiredFlagsTable: Readonly<{ [columnId: string]: ColumnRequiredFlags }> = {\r\n \"level\": { requiredInSummaryRow: true, requiredInNonSummaryNonLeafRows: true, requiredInLeafRows: true },\r\n \"part-name\": { requiredInSummaryRow: false, requiredInNonSummaryNonLeafRows: true, requiredInLeafRows: false },\r\n \"casrn\": { requiredInSummaryRow: false, requiredInNonSummaryNonLeafRows: false, requiredInLeafRows: true },\r\n \"role\": { requiredInSummaryRow: false, requiredInNonSummaryNonLeafRows: false, requiredInLeafRows: true },\r\n \"percent-post-consumer-recycled-content\": { requiredInSummaryRow: true, requiredInNonSummaryNonLeafRows: false, requiredInLeafRows: false },\r\n \"percent-pre-consumer-recycled-content\": { requiredInSummaryRow: true, requiredInNonSummaryNonLeafRows: false, requiredInLeafRows: false },\r\n \"recycled-content\": { requiredInSummaryRow: true, requiredInNonSummaryNonLeafRows: false, requiredInLeafRows: false },\r\n \"material-type\": { requiredInSummaryRow: true, requiredInNonSummaryNonLeafRows: false, requiredInLeafRows: false },\r\n \"component-percent-by-weight\": { requiredInSummaryRow: false, requiredInNonSummaryNonLeafRows: false, requiredInLeafRows: true },\r\n \"percent-by-weight\": { requiredInSummaryRow: false, requiredInNonSummaryNonLeafRows: true, requiredInLeafRows: true },\r\n \"weight\": { requiredInSummaryRow: false, requiredInNonSummaryNonLeafRows: true, requiredInLeafRows: true },\r\n \"unit-weight\": { requiredInSummaryRow: true, requiredInNonSummaryNonLeafRows: true, requiredInLeafRows: false },\r\n \"quantity\": { requiredInSummaryRow: true, requiredInNonSummaryNonLeafRows: true, requiredInLeafRows: false }\r\n};\r\n\r\n//\r\n// these columns can't be set to \"required\" in the summary row in a survey because they can't be edited in the summary row\r\n//\r\nconst disabledColumnsInSummaryRow: Readonly<{ [columnId: string]: boolean }> = {\r\n \"alternative\": true,\r\n \"component-percent-by-weight\": true,\r\n \"percent-by-weight\": true,\r\n \"percent-of-wet-ingredient-in-final-product\": true,\r\n \"quantity\": true,\r\n \"role\": true,\r\n \"version-description\": true,\r\n \"weight\": true,\r\n \"wet-component-percent-by-weight\": true,\r\n \"wet-overall-percent-by-weight\": true,\r\n \"wet-weight\": true,\r\n};\r\n\r\nexport function isColumnDisabledInSummaryRow(columnId: string) {\r\n return disabledColumnsInSummaryRow[columnId] ?? false;\r\n}\r\n\r\nexport const surveyableColumns: Readonly = [\r\n { columnId: \"level\", canRemove: false, pairedColumnId: null, isAdvancedColumn: false },\r\n { columnId: \"part-name\", canRemove: false, pairedColumnId: null, isAdvancedColumn: false },\r\n { columnId: \"casrn\", canRemove: false, pairedColumnId: null, isAdvancedColumn: false },\r\n { columnId: \"percent-by-weight\", canRemove: false, pairedColumnId: null, isAdvancedColumn: false },\r\n { columnId: \"component-percent-by-weight\", canRemove: true, pairedColumnId: null, isAdvancedColumn: false },\r\n { columnId: \"percent-pre-consumer-recycled-content\", pairedColumnId: \"percent-post-consumer-recycled-content\", canRemove: true, isAdvancedColumn: false },\r\n { columnId: \"role\", canRemove: true, pairedColumnId: null, isAdvancedColumn: false },\r\n { columnId: \"description\", canRemove: true, pairedColumnId: null, isAdvancedColumn: false },\r\n { columnId: \"notes\", canRemove: true, pairedColumnId: null, isAdvancedColumn: false },\r\n { columnId: \"c2c-percent-rapidly-renewable-content\", canRemove: true, pairedColumnId: null, isAdvancedColumn: false },\r\n { columnId: \"c2c-description-of-rapidly-renewable-content\", canRemove: true, pairedColumnId: null, isAdvancedColumn: false },\r\n { columnId: \"c2c-recyclable\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"c2c-biodegradable\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"c2c-disassemblability\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"wet-component-percent-by-weight\", pairedColumnId: \"percent-of-wet-ingredient-in-final-product\", canRemove: true, isAdvancedColumn: true },\r\n { columnId: \"residuals-and-impurities-notes\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"material-type\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"nanomaterial\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"supplier\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"unit-weight\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"threshold\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"quantity\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"scrap-rate\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"supplier-part-number\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"scip-concern-element-mixture-category\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"scip-concern-element-material-category\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"unit-of-measure\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"recycled-content\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"data-source\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"hpd-special-condition\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"reach-number\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"product-number\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"pbt-or-vpvb\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"clp-classification\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"physical-state\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"tsca-accession\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"pmn\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"oecd-code\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n { columnId: \"authorisation-granted\", canRemove: true, pairedColumnId: null, isAdvancedColumn: true },\r\n];\r\n\r\nexport const additionalIdentityColumnsIds: { [columnId: string]: (inventory: InventoryIdentifiers) => string | number } = {\r\n [\"part-name\"]: (inventory) => inventory.name,\r\n [\"description\"]: (inventory) => inventory.description,\r\n [\"product-number\"]: (inventory) => inventory.productNumber,\r\n [\"supplier-part-number\"]: (inventory) => inventory.supplierPartNumber\r\n};\r\n\r\n// ===============================================================================\r\n\r\nconst SurveySetUIState = \"SET_STATE_UI\";\r\ninterface SurveySetUIState {\r\n type: typeof SurveySetUIState;\r\n value: Partial;\r\n}\r\n\r\nexport const SurveySetSurveyRequest = \"SET_SURVEY_REQUEST\";\r\nexport interface SurveySetSurveyRequest {\r\n type: typeof SurveySetSurveyRequest;\r\n value: Partial;\r\n}\r\n\r\nexport const SurveySetSurveyMetadata = \"SET_SURVEY_METADATA\";\r\nexport interface SurveySetSurveyMetadata {\r\n type: typeof SurveySetSurveyMetadata;\r\n value: Partial;\r\n}\r\n\r\nexport function getInitialState(usersLanguage: string, surveyIsDraft: boolean): SurveyState {\r\n return {\r\n surveyUi: {\r\n currentPage: surveyIsDraft ? 0 : 4,\r\n currentLanguage: usersLanguage,\r\n currentState: SurveyMode.New,\r\n currentSection: DisplaySection.MaterialDisclosure,\r\n showCustomName: false,\r\n showErrorMessage: false,\r\n dataLoaded: false,\r\n showDataSaveMessage: false,\r\n sentReminderAlert: false,\r\n errorReminderAlert: false,\r\n errorReminderNoMessageAlert: false,\r\n sendReminderMessage: \"\",\r\n showErrorScreen: false,\r\n showNotFoundErrorScreen: false,\r\n surveySendStateType: SurveySendStateType.None,\r\n responseHistoryListIsExpanded: false,\r\n revisionRequestManager: null,\r\n offlineResponseSupplierResponseInputText: \"\",\r\n offlineResponseNotesInputText: \"\",\r\n offlineResponseAttachments: null,\r\n addOfflineResponseSuccess: null,\r\n sendGranularRevisionRequestMode: false,\r\n viewGranularRevisionRequestHistoryEntryId: null,\r\n surveyHasRequestsThatAreRedundantWithCustomQuestionnaire: false,\r\n showAdvancedIngredientColumns: false,\r\n activeSendOfflineProcessId: \"\",\r\n activeAcceptOfflineProcessId: \"\",\r\n showMaterialsTables: true,\r\n showMissingSupplierMessage: false,\r\n currentTemplateId: null,\r\n saveTemplateMode: SaveTemplateMode.Default,\r\n saveTemplateAnyRadioSelected: false,\r\n newTemplateName: \"\",\r\n saveTemplateSelectedTemplateId: null\r\n },\r\n surveyRequest: emptySurveyRequest(usersLanguage, columnIdToDefaultColumnRequiredFlagsTable),\r\n surveyMetadata: emptySurveyMetadata()\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\ntype KnownAction = SurveySetSurveyMetadata | SurveySetUIState | SurveySetSurveyRequest;\r\n\r\nexport const actionCreators = {\r\n // ===============================================================================\r\n\r\n showSaveTemplateModal: (mode: SaveTemplateMode): AppThunkAction => (dispatch, getState) => {\r\n const currentTemplateId = getState().createAndEditSurveysState?.surveyUi.currentTemplateId;\r\n\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n saveTemplateMode: mode,\r\n saveTemplateAnyRadioSelected: false,\r\n newTemplateName: \"\",\r\n saveTemplateSelectedTemplateId: currentTemplateId\r\n }\r\n });\r\n\r\n $(\"#survey-template-save-modal\").modal('show');\r\n },\r\n\r\n // ===============================================================================\r\n\r\n addReminder: (date: string, message: string): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n let scheduledDaysSinceRequestSince: number = 0;\r\n let scheduledDate: Date = new Date();\r\n\r\n if (state.surveyUi.currentState === SurveyMode.Template) {\r\n const now = new Date();\r\n scheduledDate = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);\r\n scheduledDate.setDate(scheduledDate.getDate() + Number.parseInt(date));\r\n scheduledDaysSinceRequestSince = Number.parseInt(date);\r\n\r\n } else {\r\n const splits = date.split('-').map(s => parseInt(s));\r\n const scheduledSendDate = new Date(splits[0], splits[1] - 1, splits[2]);\r\n const now = new Date();\r\n const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\r\n scheduledDate = scheduledSendDate;\r\n scheduledDaysSinceRequestSince = Math.ceil((scheduledSendDate.getTime() - today.getTime()) / 1000.0 / 60.0 / 60.0 / 24.0) - 1\r\n }\r\n\r\n const value = {\r\n ...state.surveyRequest,\r\n scheduledReminders: [\r\n ...state.surveyRequest.scheduledReminders,\r\n {\r\n ownerId: null,\r\n requestId: null,\r\n reminderId: null,\r\n languageToReminderMessageMap: { [state.surveyUi.currentLanguage]: message },\r\n scheduledDaysSinceRequestSent: scheduledDaysSinceRequestSince,\r\n scheduledSendDate: scheduledDate.getTime(),\r\n state: \"NeedsToBeSent\",\r\n peekLockTimeout: 0,\r\n scheduledSendDateUnix: scheduledDate.getTime(),\r\n }\r\n ]\r\n }\r\n\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: value\r\n });\r\n\r\n saveData(dispatch, getState);\r\n },\r\n\r\n // ===============================================================================\r\n\r\n removeReminder: (index: number): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const value = {\r\n ...state.surveyRequest,\r\n scheduledReminders: [\r\n ...state.surveyRequest.scheduledReminders.filter((value, i) => i != index)\r\n ]\r\n }\r\n\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: value\r\n });\r\n\r\n saveData(dispatch, getState);\r\n },\r\n\r\n //================================================================================\r\n\r\n editReminderMessage: (index: number, newMessage: string): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const value = {\r\n ...state.surveyRequest,\r\n scheduledReminders: [\r\n ...state.surveyRequest.scheduledReminders.map((value, i) => {\r\n if (i === index) {\r\n value.languageToReminderMessageMap[state.surveyUi.currentLanguage] = newMessage\r\n }\r\n return value\r\n })\r\n ]\r\n }\r\n\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: value\r\n });\r\n\r\n saveData(dispatch, getState);\r\n },\r\n\r\n //================================================================================\r\n\r\n editNote: (index: number, newMessage: string): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const value = {\r\n ...state.surveyRequest,\r\n notes: [\r\n ...state.surveyRequest.notes.map((value, i) => {\r\n if (i === index) {\r\n value.note = newMessage\r\n }\r\n return value\r\n })\r\n ]\r\n }\r\n\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: value\r\n });\r\n\r\n saveData(dispatch, getState);\r\n },\r\n\r\n // ===============================================================================\r\n\r\n removeOtherDocuments: (index: number): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n\r\n const value = {\r\n ...state.surveyRequest,\r\n dataRequested: {\r\n ...state.surveyRequest.dataRequested,\r\n documentsCertificationList: [\r\n ...state.surveyRequest.dataRequested.documentsCertificationList.filter((value, i) => i != index)\r\n ]\r\n }\r\n }\r\n\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: value\r\n });\r\n\r\n saveData(dispatch, getState);\r\n },\r\n\r\n //================================================================================\r\n\r\n editOtherDocuments: (index: number, newMessage: string): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const value = {\r\n ...state.surveyRequest,\r\n dataRequested: {\r\n ...state.surveyRequest.dataRequested,\r\n documentsCertificationList: [\r\n ...state.surveyRequest.dataRequested.documentsCertificationList.map((value, i) => {\r\n if (i === index) {\r\n value.documentNameIfOther = newMessage\r\n }\r\n return value\r\n })\r\n ]\r\n }\r\n }\r\n\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: value\r\n });\r\n\r\n saveData(dispatch, getState);\r\n\r\n },\r\n\r\n // ===============================================================================\r\n\r\n setLanguageMap: (item: string, key: string, value: string): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const getValue = (item: string) => {\r\n switch (item) {\r\n case \"languageToEmailSubjectMap\":\r\n return {\r\n ...state.surveyRequest,\r\n languageToEmailSubjectMap: {\r\n ...state.surveyRequest.languageToEmailSubjectMap,\r\n [key]: value\r\n }\r\n }\r\n case \"languageToEmailMessageMap\":\r\n return {\r\n ...state.surveyRequest,\r\n languageToEmailMessageMap: {\r\n ...state.surveyRequest.languageToEmailMessageMap,\r\n [key]: value\r\n }\r\n }\r\n case \"languageToRequestInstructionsMap\":\r\n return {\r\n ...state.surveyRequest,\r\n languageToRequestInstructionsMap: {\r\n ...state.surveyRequest.languageToEmailSubjectMap,\r\n [key]: value\r\n }\r\n }\r\n case \"languageToCompletionInstructionsMap\":\r\n return {\r\n ...state.surveyRequest,\r\n languageToCompletionInstructionsMap: {\r\n ...state.surveyRequest.languageToCompletionInstructionsMap,\r\n [key]: value\r\n }\r\n }\r\n default:\r\n return state.surveyRequest\r\n }\r\n }\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: getValue(item)\r\n });\r\n },\r\n\r\n // ===============================================================================\r\n\r\n goToMaterialsTab: () => ({\r\n type: SurveySetUIState,\r\n value: {\r\n currentPage: 0\r\n }\r\n }),\r\n\r\n // ===============================================================================\r\n\r\n sendSurvey: (): AppThunkActionAsync => async (dispatch, getState) => {\r\n const applicationState = getState();\r\n\r\n applicationState.appServices?.trackEvent(\"Begin_sendSurvey\");\r\n\r\n const appServices = applicationState.appServices;\r\n\r\n const surveyEditorstate = applicationState.createAndEditSurveysState;\r\n\r\n const selectMaterialsSuppliersTableState = applicationState.selectSuppliersMaterialsTableState;\r\n\r\n if (!surveyEditorstate || !appServices || !selectMaterialsSuppliersTableState) {\r\n return;\r\n }\r\n\r\n const hasEmail = surveyEditorstate.surveyRequest.fromEmailAddress !== \"\" && surveyEditorstate.surveyRequest.fromEmailAddress !== null;\r\n const hasName = surveyEditorstate.surveyRequest.fromName !== \"\" && surveyEditorstate.surveyRequest.fromName !== null;\r\n const hasDataRequested = surveyEditorstate.surveyRequest.dataRequested.materialDisclosureAsked ||\r\n surveyEditorstate.surveyRequest.dataRequested.circularityDataAsked ||\r\n surveyEditorstate.surveyRequest.dataRequested.complianceDataAsked ||\r\n surveyEditorstate.surveyRequest.dataRequested.customQuestionsAsked ||\r\n surveyEditorstate.surveyRequest.dataRequested.documentsAsked ||\r\n surveyEditorstate.surveyRequest.dataRequested.sustainabilityDataAsked ||\r\n surveyEditorstate.surveyRequest.dataRequested.embodiedCarbonDataAsked ||\r\n surveyEditorstate.surveyRequest.dataRequested.waterUseDataAsked ||\r\n surveyEditorstate.surveyRequest.dataRequested.carbonTransparencyDataAsked ||\r\n surveyEditorstate.surveyRequest.dataRequested.carbonOtherDataAsked ||\r\n surveyEditorstate.surveyRequest.dataRequested.vocDataAsked ||\r\n surveyEditorstate.surveyRequest.dataRequested.vocTransparencyDataAsked ||\r\n surveyEditorstate.surveyRequest.dataRequested.vocOtherDataAsked;\r\n\r\n if (!(hasEmail && hasName && hasDataRequested)) {\r\n alert(appServices.localizeString(\"You must fill in your requestor email, and request some data.\"));\r\n if (!hasDataRequested) {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n currentPage: 1\r\n }\r\n });\r\n }\r\n else if (!hasName || !hasEmail) {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n currentPage: 3\r\n }\r\n });\r\n }\r\n return;\r\n }\r\n\r\n applicationState.appServices?.trackEvent(\r\n \"sendSurvey-withContext:\",\r\n {\r\n fromName: surveyEditorstate.surveyRequest.fromName,\r\n fromEmailAddress: surveyEditorstate.surveyRequest.fromEmailAddress\r\n });\r\n\r\n if (surveyEditorstate.surveyRequest.dataRequested.complianceList.includes(\"SCIP\") && !surveyEditorstate.surveyRequest.dataRequested.complianceList.includes(\"Reach Candidate\")) {\r\n alert(appServices.localizeString(\"You must include REACH Candidate to include SCIP as well.\"));\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n currentPage: 1,\r\n currentSection: DisplaySection.ComplianceData\r\n }\r\n });\r\n return;\r\n }\r\n\r\n $(\"#survey-update-confirmation-modal\").modal(\"hide\");\r\n\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n surveySendStateType: SurveySendStateType.SendingSurvey\r\n }\r\n });\r\n\r\n $(\"#offline-survey-progress-modal\").modal(\"show\");\r\n\r\n let apiResult: DataResult;\r\n\r\n if (surveyEditorstate.surveyRequest.requestId != null) {\r\n\r\n apiResult = await sendDraftSurvey({ surveyData: surveyEditorstate.surveyMetadata, surveyRequest: surveyEditorstate.surveyRequest, shouldSend: true }, surveyEditorstate.surveyRequest.requestId, appServices, dispatch);\r\n\r\n } else {\r\n\r\n apiResult = await sendOrSaveNewSurvey(surveyEditorstate.surveyMetadata, surveyEditorstate.surveyRequest, selectMaterialsSuppliersTableState?.supplierRowModels, appServices, dispatch, true);\r\n\r\n }\r\n\r\n if (apiResult.result !== ResultType.Ok) {\r\n if (apiResult.result === \"InventoryContainsLinkedMaterials\") {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n surveySendStateType: SurveySendStateType.SendSurveyContainsLinkedMaterials\r\n }\r\n });\r\n }\r\n else if (apiResult.result === \"BadCcEmailList\") {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n surveySendStateType: SurveySendStateType.SendSurveyContainsInvalidCcEmailList\r\n }\r\n });\r\n }\r\n else if (apiResult.result === \"BadEmailAddress\") {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n surveySendStateType: SurveySendStateType.SendSurveyContainsInvalidFromEmaillAddress\r\n }\r\n });\r\n }\r\n else if (apiResult.result == \"InvalidEmailToken\") {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n surveySendStateType: SurveySendStateType.SendSurveyRefreshTokenFailed\r\n }\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n surveySendStateType: SurveySendStateType.SendSurveyFailed\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (apiResult.data == null) {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n surveySendStateType: SurveySendStateType.SendSurveyFailed\r\n }\r\n });\r\n }\r\n\r\n if (apiResult.success && apiResult.data !== null) {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n surveySendStateType: SurveySendStateType.SendSurveySucceeded,\r\n activeSendOfflineProcessId: apiResult.data,\r\n showDataSaveMessage: false\r\n }\r\n });\r\n }\r\n\r\n },\r\n\r\n // ===============================================================================\r\n\r\n getExistingSurveyState: (requestId: string): AppThunkActionAsync => async (dispatch, getState) => {\r\n await getSurvey(requestId, dispatch);\r\n },\r\n\r\n // ===============================================================================\r\n\r\n refreshRevisionRequestData: (): AppThunkAction => (dispatch, getState) => {\r\n const applicationState = getState();\r\n\r\n if (!applicationState.createAndEditSurveysState || !applicationState.createAndEditSurveysState.surveyUi.revisionRequestManager) {\r\n return;\r\n }\r\n\r\n let refreshedRevisionRequestManager = RevisionRequestManager.fromOther(applicationState.createAndEditSurveysState.surveyUi.revisionRequestManager);\r\n\r\n refreshedRevisionRequestManager.loadSurveyHistoryEntryRevisionRequests();\r\n\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n revisionRequestManager: refreshedRevisionRequestManager\r\n }\r\n });\r\n },\r\n // ===============================================================================\r\n\r\n setSurveyAsNoValidationRequired: (): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n surveySetAsNoValidationRequired(state.surveyRequest.requestId, dispatch);\r\n },\r\n\r\n // ===============================================================================\r\n\r\n resetSendReminderState: (): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n if (!appState || !appState.createAndEditSurveysState) {\r\n return;\r\n }\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n sendReminderMessage: \"\",\r\n errorReminderNoMessageAlert: false,\r\n errorReminderAlert: false,\r\n sentReminderAlert: false\r\n }\r\n });\r\n },\r\n\r\n // ===============================================================================\r\n\r\n sendReminder: (): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n if (!appState || !appState.createAndEditSurveysState) {\r\n return;\r\n }\r\n if (appState.createAndEditSurveysState.surveyUi.sendReminderMessage === \"\") {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n errorReminderNoMessageAlert: true,\r\n errorReminderAlert: false,\r\n sentReminderAlert: false\r\n }\r\n });\r\n return;\r\n }\r\n sendReminder(appState.createAndEditSurveysState.surveyRequest.requestId, appState.createAndEditSurveysState.surveyUi.sendReminderMessage, dispatch);\r\n },\r\n\r\n // ===============================================================================\r\n\r\n deleteTemplate: (templateId: string): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n if (!appState || !appState.createAndEditSurveysState) {\r\n return;\r\n }\r\n deleteSurveyTemplate(templateId, dispatch, appState.createAndEditSurveysState.surveyMetadata.templates);\r\n },\r\n\r\n // ===============================================================================\r\n\r\n saveTemplate: (existingTemplateId: string | null): AppThunkActionAsync => async (dispatch, getState) => {\r\n const appState = getState();\r\n if (!appState || !appState.createAndEditSurveysState) {\r\n return;\r\n }\r\n\r\n await saveSurveyTemplate(dispatch, appState.createAndEditSurveysState, existingTemplateId, appState.appServices!);\r\n // TODO: progress indicator?\r\n\r\n $(\"#survey-template-save-modal\").modal(\"hide\");\r\n },\r\n\r\n // ===============================================================================\r\n\r\n getNewSurveyMetadata: (inventoryIdsForSurvey: string[], forTemplates: boolean = false): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState();\r\n if (!state || !state.createAndEditSurveysState) {\r\n return;\r\n }\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const metadataApiResult = await serviceClient.getDataCollectionMetadata(inventoryIdsForSurvey);\r\n\r\n if (!metadataApiResult.success || !metadataApiResult.data) {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n showErrorMessage: true\r\n }\r\n });\r\n return;\r\n }\r\n\r\n const fromVerifiedAddresses = metadataApiResult.data.surveyData.verifiedEmailUsers.filter(v => v.emailAddress == state.appServices!.userContext!.emailAddress);\r\n const fromConnectedAddresses = metadataApiResult.data.surveyData.connectedEmailUsers.filter(v => v.emailAddress == state.appServices!.userContext!.emailAddress);\r\n dispatch({\r\n type: SurveySetSurveyMetadata,\r\n value: {\r\n ...metadataApiResult.data.surveyData\r\n }\r\n });\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: {\r\n bomType: 0,\r\n nativeLanguage: state.appServices?.getUserCultureNameOrDefault(),\r\n languageList: [state.appServices?.getUserCultureNameOrDefault() ?? \"en\"],\r\n useManufacturerLogo: metadataApiResult.data.surveyData.manufacturerLogoFileId != null,\r\n languageToSendIn: state.appServices?.getUserCultureNameOrDefault(),\r\n fromEmailAddress: fromConnectedAddresses.length > 0 ? fromConnectedAddresses[0].sendingEmailAddress : (fromVerifiedAddresses.length > 0 ? fromVerifiedAddresses[0].emailAddress : (state.appServices?.userContext?.emailAddress ?? \"\")),\r\n fromName: fromConnectedAddresses.length > 0 ? fromConnectedAddresses[0].userName : (fromVerifiedAddresses.length > 0 ? fromVerifiedAddresses[0].userName : (state.appServices?.userContext?.fullName ?? \"\"))\r\n }\r\n });\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n currentState: forTemplates ? SurveyMode.Template : SurveyMode.New,\r\n currentLanguage: state.appServices?.getUserCultureNameOrDefault(),\r\n currentSection: DisplaySection.MaterialDisclosure,\r\n currentPage: forTemplates ? 1 : 0\r\n }\r\n });\r\n\r\n const templateApiResult = await serviceClient.getDataCollectionTemplatesAll();\r\n\r\n let templates: SurveyTemplateDataModel[] = [];\r\n\r\n if (templateApiResult.result === ResultType.Ok) {\r\n templates = templateApiResult.data ?? [];\r\n dispatch({\r\n type: SurveySetSurveyMetadata,\r\n value: {\r\n templates: templates\r\n }\r\n });\r\n }\r\n },\r\n\r\n // ===============================================================================\r\n\r\n setSurveyUIData: (value: Partial) => ({\r\n type: SurveySetUIState,\r\n value: value\r\n }),\r\n\r\n // ===============================================================================\r\n\r\n setFromEmailAddress: (emailAddress: string): AppThunkAction => (disptach, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const verifiedUser = state.surveyMetadata.verifiedEmailUsers.firstOrDefault(v => v.sendingEmailAddress === emailAddress);\r\n const connectedUser = state.surveyMetadata.connectedEmailUsers.firstOrDefault(v => v.sendingEmailAddress === emailAddress);\r\n\r\n let value: Partial = {}\r\n\r\n if (connectedUser !== null) {\r\n value = {\r\n fromEmailAddress: connectedUser.sendingEmailAddress,\r\n fromName: connectedUser.userName\r\n }\r\n } else if (verifiedUser !== null) {\r\n value = {\r\n fromEmailAddress: verifiedUser.emailAddress,\r\n fromName: verifiedUser.userName\r\n }\r\n } else {\r\n value = {\r\n fromEmailAddress: emailAddress\r\n }\r\n }\r\n\r\n disptach({\r\n type: SurveySetSurveyRequest,\r\n value: value\r\n });\r\n },\r\n\r\n // ===============================================================================\r\n setSurveyRequestData: (value: Partial): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: value\r\n });\r\n saveData(dispatch, getState);\r\n },\r\n\r\n // ===============================================================================\r\n setSurveyMetadata: (value: Partial): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n\r\n if (!state || !value) {\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: SurveySetSurveyMetadata,\r\n value: value\r\n });\r\n },\r\n\r\n // ===============================================================================\r\n setDataRequested: (value: Partial): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: {\r\n dataRequested: {\r\n ...state.surveyRequest.dataRequested,\r\n ...value,\r\n }\r\n }\r\n });\r\n saveData(dispatch, getState);\r\n },\r\n\r\n // ============================================================================\r\n\r\n saveNewSurveyAsDraft: (): AppThunkAction => (dispatch, getState) => {\r\n saveSurvey(getState, null, dispatch);\r\n },\r\n\r\n // ===========================================================================\r\n\r\n // null for flags means use default flags for the given column\r\n updateRequestedBomColumnRequirementState: (columnId: string, flags: ColumnRequiredFlags | null): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const columnIndexToUpdate = state.surveyRequest.fields.findIndex(columnData => columnData.columnId === columnId);\r\n\r\n if (columnIndexToUpdate === -1) {\r\n return;\r\n }\r\n\r\n if (flags === null) {\r\n let defaultFlags = columnIdToDefaultColumnRequiredFlagsTable[columnId];\r\n if (!defaultFlags) {\r\n defaultFlags = { requiredInSummaryRow: false, requiredInNonSummaryNonLeafRows: true, requiredInLeafRows: true };\r\n }\r\n\r\n flags = defaultFlags;\r\n }\r\n\r\n const newColumnData = {\r\n ...state.surveyRequest.fields[columnIndexToUpdate],\r\n ...flags\r\n };\r\n\r\n const newFields = [...state.surveyRequest.fields];\r\n\r\n newFields[columnIndexToUpdate] = newColumnData;\r\n\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: {\r\n fields: newFields\r\n }\r\n });\r\n },\r\n\r\n // ===========================================================================\r\n\r\n toggleBomColumn: (column: SurveyableColumn, columnExistsInSurveyRequest: boolean, customRequiredFlags?: ColumnRequiredFlags): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const columnIds = [column.columnId];\r\n\r\n if (column.pairedColumnId !== null) {\r\n columnIds.push(column.pairedColumnId);\r\n }\r\n\r\n if (columnExistsInSurveyRequest) {\r\n // remove columnIds\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: {\r\n fields: state.surveyRequest.fields.filter(bomColumn => !columnIds.some(v => v === bomColumn.columnId))\r\n }\r\n })\r\n } else {\r\n // add columnIds\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: {\r\n fields: state.surveyRequest.fields.concat(columnIds.map(columnId => {\r\n let requiredFlags = customRequiredFlags ?? columnIdToDefaultColumnRequiredFlagsTable[columnId];\r\n\r\n if (!requiredFlags) {\r\n requiredFlags = { requiredInSummaryRow: false, requiredInNonSummaryNonLeafRows: true, requiredInLeafRows: true };\r\n }\r\n\r\n return (\r\n {\r\n columnId: columnId,\r\n canRemove: true,\r\n requiredInLeafRows: requiredFlags.requiredInLeafRows,\r\n requiredInNonSummaryNonLeafRows: requiredFlags.requiredInLeafRows,\r\n requiredInSummaryRow: requiredFlags.requiredInSummaryRow\r\n }\r\n );\r\n }))\r\n }\r\n })\r\n }\r\n },\r\n\r\n // ===========================================================================\r\n\r\n addOfflineResponse: (): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState().createAndEditSurveysState;\r\n if (!state) {\r\n return;\r\n }\r\n await sendOfflineResponse(state.surveyRequest.requestId, state.surveyUi.offlineResponseSupplierResponseInputText,\r\n state.surveyUi.offlineResponseNotesInputText, state.surveyUi.offlineResponseAttachments, dispatch, state);\r\n },\r\n\r\n // ===========================================================================\r\n\r\n saveExistingDraftSurveyManually: (): AppThunkAction => (dispatch, getState) => {\r\n const requestId = getState().createAndEditSurveysState?.surveyRequest.requestId;\r\n if (requestId != null) {\r\n saveSurvey(getState, requestId, dispatch);\r\n }\r\n },\r\n\r\n // ===========================================================================\r\n\r\n fetchInventorySummaryMetadata: (supplierRowModels: InviteSupplierModel[]): AppThunkActionAsync => async (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n const state = appState.createAndEditSurveysState;\r\n\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const inventoryIdsToFetchFor = supplierRowModels\r\n .selectMany(rowModel => rowModel.requestedMaterials.map(r => r.inventoryId))\r\n .filter(inventoryId => inventoryId !== null)\r\n .map(inventoryId => inventoryId!);\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const apiResult = await serviceClient.dataCollectionRequestGetInventoryMetadata(inventoryIdsToFetchFor);\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n const newInventorySummaryMetadata = {\r\n ...state.surveyMetadata.inventoryIdToSummaryRowContentsMap,\r\n ...apiResult.data\r\n };\r\n\r\n dispatch({ type: SurveySetSurveyMetadata, value: { inventoryIdToSummaryRowContentsMap: newInventorySummaryMetadata } });\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport const reducer: Reducer = (state: SurveyState | undefined, action: Action): SurveyState => {\r\n if (state === undefined) {\r\n return getInitialState(\"en\", true);\r\n }\r\n\r\n switch (action.type) {\r\n case SurveySetUIState:\r\n const surveyState = (action as SurveySetUIState).value;\r\n return {\r\n ...state,\r\n surveyUi: {\r\n ...state.surveyUi,\r\n ...surveyState\r\n }\r\n }\r\n case SurveySetSurveyMetadata:\r\n return {\r\n ...state,\r\n surveyMetadata: {\r\n ...state.surveyMetadata,\r\n ...(action as SurveySetSurveyMetadata).value\r\n }\r\n }\r\n case SurveySetSurveyRequest:\r\n const newState = {\r\n ...state,\r\n surveyRequest: {\r\n ...state.surveyRequest,\r\n ...(action as SurveySetSurveyRequest).value\r\n },\r\n lastSeenReduxAction: SurveySetSurveyRequest\r\n };\r\n\r\n const validNotRedundant = validateSurveyForRedundantRequests(newState.surveyRequest, newState.surveyMetadata);\r\n\r\n newState.surveyUi.surveyHasRequestsThatAreRedundantWithCustomQuestionnaire = !validNotRedundant;\r\n\r\n return newState;\r\n }\r\n return state;\r\n}\r\n\r\n// ===============Data Sync==============================================\r\n\r\nfunction saveData(dispatch: (action: KnownAction) => void, getState: () => ApplicationState) {\r\n const appState = getState();\r\n\r\n const newState = appState.createAndEditSurveysState;\r\n if (!newState) {\r\n return;\r\n }\r\n if (newState && newState.surveyUi.currentState === SurveyMode.EditExisting && newState.surveyUi.dataLoaded) {\r\n //Transpose data from select materials table into responseHistoryMetadata\r\n saveSurvey(getState, newState.surveyRequest.requestId, dispatch);\r\n }\r\n if (newState && newState.surveyUi.currentState === SurveyMode.Template && newState.surveyUi.dataLoaded && newState.surveyUi.currentTemplateId) {\r\n saveSurveyTemplate(dispatch, newState, newState.surveyUi.currentTemplateId, appState.appServices!);\r\n }\r\n}\r\n\r\n//================Helper Methods=========================================\r\n\r\n/**\r\n * Checks to see if the survey is requesting data (e.g. compliance) that is redundant\r\n * with data requests inside the custom questionnaire.\r\n * \r\n * returns true iff no redundancy\r\n */\r\nfunction validateSurveyForRedundantRequests(surveyRequest: SurveyRequest, surveyMetadata: SurveyData) {\r\n const complianceValueToFriendlyNameMap = Models.SurveyComplianceRegulationValues.getLocalizedFriendlyDescriptionMap(surveyMetadata.dynamicRegulations);\r\n\r\n if (!surveyRequest.dataRequested.customQuestionsAsked ||\r\n (surveyRequest.bomQuestionnaireId === null)) {\r\n return true;\r\n }\r\n\r\n if (!surveyRequest.dataRequested.complianceDataAsked) {\r\n return true;\r\n }\r\n\r\n const bomQuestionnaire = surveyMetadata.questionnaireTable[surveyRequest.bomQuestionnaireId ?? \"\"];\r\n\r\n if (!bomQuestionnaire) {\r\n return true;\r\n }\r\n\r\n const complianceRegulationToQuestionnairePageTypeMap: { [regulation: string]: QuestionnairePageType } = {\r\n \"California Proposition 65\": QuestionnairePageType.CaProp65,\r\n \"Conflict Minerals\": QuestionnairePageType.ConflictMinerals,\r\n \"REACH - Candidate List\": QuestionnairePageType.REACHCompliance,\r\n \"EU REACH SCIP Database\": QuestionnairePageType.ScipQuestionnaire,\r\n \"REACH - Authorisation List\": QuestionnairePageType.ReachAuthorisationCompliance,\r\n \"RoHS\": QuestionnairePageType.RoHSCompliance\r\n };\r\n\r\n for (let questionnairePage of bomQuestionnaire.pages) {\r\n for (let complianceRegulationInSurvey of surveyRequest.dataRequested.complianceList) {\r\n const matchingPageTitle = complianceValueToFriendlyNameMap[complianceRegulationInSurvey];\r\n const matchingPageType = complianceRegulationToQuestionnairePageTypeMap[matchingPageTitle];\r\n\r\n if (questionnairePage.type === matchingPageType) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function saveSurvey(getState: () => ApplicationState, requestId: string | null, dispatch: (action: KnownAction) => void) {\r\n\r\n const state = getState().createAndEditSurveysState!;\r\n const selectMaterialsAndSuppliersState = getState().selectSuppliersMaterialsTableState!;\r\n\r\n function dispatchFailedResult() {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n showErrorMessage: true,\r\n showDataSaveMessage: false\r\n }\r\n });\r\n }\r\n\r\n let apiResult;\r\n\r\n if (requestId != null) {\r\n\r\n // Save data from a draft survey \r\n apiResult = await saveExistingSurvey(state.surveyRequest, state.surveyMetadata, selectMaterialsAndSuppliersState.supplierRowModels);\r\n\r\n if (!apiResult.success || apiResult.result !== ResultType.Ok) {\r\n dispatchFailedResult();\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n showDataSaveMessage: true,\r\n showErrorMessage: false\r\n }\r\n });\r\n\r\n } else {\r\n\r\n // Save a New survey as a draft survey\r\n\r\n //Check for Empty Supplier\r\n if (selectMaterialsAndSuppliersState.supplierRowModels.length === 0 || selectMaterialsAndSuppliersState.supplierRowModels.some(v => v.contactEmail.trim().length === 0 || v.supplierName.trim().length === 0)) {\r\n alert(getState().appServices?.localizeString(\"The company name and email address fields cannot be blank.\"));\r\n return;\r\n }\r\n\r\n $(\"#offline-survey-progress-modal\").modal(\"show\");\r\n\r\n apiResult = await sendOrSaveNewSurvey(state.surveyMetadata, state.surveyRequest, selectMaterialsAndSuppliersState.supplierRowModels, getState().appServices!, dispatch, false);\r\n\r\n if (!apiResult.success || apiResult.result !== ResultType.Ok || apiResult.data === null) {\r\n dispatchFailedResult();\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n showDataSaveMessage: true,\r\n showErrorMessage: false,\r\n activeSendOfflineProcessId: apiResult.data\r\n }\r\n });\r\n }\r\n\r\n if (state.surveyUi.currentState === SurveyMode.New) window.location.href = \"/Surveys/SupplierSurveys\";\r\n\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function saveExistingSurvey(surveyRequest: SurveyRequest, surveyMetadata: SurveyData, selectedSuppliersMaterials: InviteSupplierModel[]) {\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const requestedMaterials = selectedSuppliersMaterials[0]?.requestedMaterials ?? [];\r\n const newRequestInventoryMetadataList: SurveyRequestInventoryMetadata[] = requestedMaterials.map((v): SurveyRequestInventoryMetadata => { return { inventoryId: v.inventoryId!, customizedName: v.customName ?? \"\", originalName: v.name } });\r\n const surveyRequestNew: SurveyRequest = {\r\n ...surveyRequest,\r\n requestInventoryMetadataList: newRequestInventoryMetadataList,\r\n dataRequested: {\r\n ...surveyRequest.dataRequested,\r\n documentsCertificationList: surveyRequest.dataRequested.documentsAsked ? surveyRequest.dataRequested.documentsCertificationList : [],\r\n complianceList: surveyRequest.dataRequested.complianceDataAsked ? surveyRequest.dataRequested.complianceList : []\r\n },\r\n supplierQuestionnaireId: surveyRequest.dataRequested.customQuestionsAsked ? surveyRequest.supplierQuestionnaireId : null,\r\n bomQuestionnaireId: surveyRequest.dataRequested.customQuestionsAsked ? surveyRequest.bomQuestionnaireId : null,\r\n attestationQuestionnaireId: surveyRequest.dataRequested.customQuestionsAsked ? surveyRequest.attestationQuestionnaireId : null,\r\n preFillBomQuestionnaireFromSummaryData: surveyRequest.preFillBomQuestionnaireFromSummaryData,\r\n preFillSupplierQuestionnaireFromSummaryData: surveyRequest.preFillSupplierQuestionnaireFromSummaryData,\r\n makeBomDataRequiredOnQuestionnaireAnswer: surveyRequest.makeBomDataRequiredOnQuestionnaireAnswer,\r\n questionnaireAnswerThatMakesBomDataRequired: surveyRequest.questionnaireAnswerThatMakesBomDataRequired,\r\n includeAttestationLetter: surveyRequest.includeAttestationLetter\r\n };\r\n\r\n const apiResult = await serviceClient.surveyRequestUpdate(surveyRequestNew);\r\n\r\n return apiResult;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function sendOrSaveNewSurvey(surveyMetadata: SurveyData, surveyRequest: SurveyRequest, selectedSuppliersMaterials: InviteSupplierModel[], appServices: AppServices, dispatch: (action: KnownAction) => void, shouldSend: boolean) {\r\n\r\n const data: SurveyEditorCreateNewSurveyRequestData = {\r\n ...surveyRequest,\r\n supplierModels: selectedSuppliersMaterials,\r\n shouldSend: shouldSend,\r\n ...surveyRequest.dataRequested,\r\n questionnaireAnswerThatMakesBomDataRequired: surveyRequest.dataRequested.customQuestionsAsked ? surveyRequest.questionnaireAnswerThatMakesBomDataRequired ?? null : null,\r\n documentsCertificationsAskedList: surveyRequest.dataRequested.documentsAsked ? surveyRequest.dataRequested.documentsCertificationList : [],\r\n complianceDataAskedList: surveyRequest.dataRequested.complianceDataAsked ? surveyRequest.dataRequested.complianceList : [],\r\n supplierQuestionnaireId: surveyRequest.dataRequested.customQuestionsAsked ? surveyRequest.supplierQuestionnaireId : null,\r\n bomQuestionnaireId: surveyRequest.dataRequested.customQuestionsAsked ? surveyRequest.bomQuestionnaireId : null,\r\n attestationQuestionnaireId: surveyRequest.dataRequested.customQuestionsAsked ? surveyRequest.attestationQuestionnaireId : null\r\n }\r\n\r\n if (shouldSend) {\r\n appServices.trackEvent(\"sent-surveys\", data.supplierModels.length);\r\n if (data.languageList.length >= 2) {\r\n appServices.trackEvent(\"sent-survey-with-multiple-languages\");\r\n }\r\n }\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n const apiResult = await serviceClient.createDataCollectionRequest(data);\r\n return apiResult;\r\n}\r\n\r\n// ===============================================================================\r\nasync function sendDraftSurvey(data: SurveyRequestApiRequestBundle, requestId: string | null, appServices: AppServices, dispatch: (action: KnownAction) => void) {\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n appServices.trackEvent(\"sent-surveys\", 1);\r\n\r\n if (data.surveyRequest.languageList.length >= 2) {\r\n appServices.trackEvent(\"sent-survey-with-multiple-languages\");\r\n }\r\n\r\n const apiResult = await serviceClient.sendDataCollectionRequestDraft(requestId!);\r\n\r\n if (!apiResult.success) {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n surveySendStateType: SurveySendStateType.SendSurveyFailed\r\n }\r\n });\r\n }\r\n\r\n return apiResult;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function getSurvey(requestId: string | null, dispatch: (action: KnownAction) => void) {\r\n const serviceClient = new ToxnotServiceClient();\r\n if (requestId === null) {\r\n return;\r\n }\r\n\r\n const apiResult = await serviceClient.getDataCollectionRequest(requestId, 300000);\r\n\r\n if (!apiResult.success || (apiResult.result !== ResultType.Ok) || !apiResult.data || !apiResult.data.surveyRequest) {\r\n throw new Error(\"Failed to get survey\");\r\n }\r\n\r\n const surveyRequest = apiResult.data.surveyRequest;\r\n const surveyData = apiResult.data.surveyData;\r\n\r\n surveyData.offlineProcessQueuedMaterials = getOfflineProcessQueuedMaterials(surveyData.offlineProcessDataResponses);\r\n\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: {\r\n ...surveyRequest,\r\n dataRequested: {\r\n ...surveyRequest.dataRequested,\r\n complianceDataAsked: surveyRequest.dataRequested.complianceList.length > 0,\r\n documentsAsked: surveyRequest.dataRequested.documentsCertificationList.length > 0,\r\n customQuestionsAsked: surveyRequest.bomQuestionnaireId != null || surveyRequest.supplierQuestionnaireId != null || surveyRequest.attestationQuestionnaireId != null,\r\n sustainabilityDataAsked: surveyRequest.dataRequested.embodiedCarbonDataAsked || surveyRequest.dataRequested.waterUseDataAsked || surveyRequest.dataRequested.carbonOtherDataAsked || surveyRequest.dataRequested.carbonTransparencyDataAsked\r\n }\r\n }\r\n });\r\n\r\n dispatch({\r\n type: SurveySetSurveyMetadata,\r\n value: {\r\n ...surveyData\r\n }\r\n });\r\n\r\n let templates: SurveyTemplateDataModel[] = [];\r\n\r\n const templateApiResult = await serviceClient.getDataCollectionTemplatesAll();\r\n\r\n if (templateApiResult.result === ResultType.Ok) {\r\n templates = templateApiResult.data ?? [];\r\n\r\n dispatch({\r\n type: SurveySetSurveyMetadata,\r\n value: {\r\n templates: templates\r\n }\r\n });\r\n }\r\n\r\n let revisionRequestManager: RevisionRequestManager | null = null;\r\n\r\n if (surveyRequest.responseHistoryList.length > 0) {\r\n revisionRequestManager = new RevisionRequestManager(surveyRequest.requestId!, surveyRequest.responseHistoryList[0].historyId);\r\n\r\n revisionRequestManager.loadSurveyHistoryEntryRevisionRequests();\r\n }\r\n\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n currentPage: (surveyRequest.state === 4) ? 0 : 4,\r\n revisionRequestManager: revisionRequestManager,\r\n currentSection: (surveyRequest.bomType === 2) ? DisplaySection.CustomQuestions : DisplaySection.MaterialDisclosure,\r\n currentState: SurveyMode.EditExisting\r\n }\r\n });\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction getOfflineProcessQueuedMaterials(dataResponses: any[]) {\r\n const offlineProcessQueuedMaterials: any[] = [];\r\n\r\n for (var i = 0; i < dataResponses.length; i++) {\r\n if (dataResponses[i].state.processingStage !== Models.OfflineProcessingStageType.TotallyComplete.toString() &&\r\n dataResponses[i].state.processingStage !== Models.OfflineProcessingStageType.Failed.toString()) {\r\n let inventoryIds = dataResponses[i].context.requestorResponseInventoryIds;\r\n\r\n for (var j = 0; j < inventoryIds.length; j++) {\r\n let id = inventoryIds[j];\r\n\r\n if (offlineProcessQueuedMaterials.indexOf(id) === -1) {\r\n offlineProcessQueuedMaterials.push(id);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return offlineProcessQueuedMaterials;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function doLinkedMaterialsExist(surveyState: SurveyState) {\r\n return Object.values(surveyState.surveyMetadata.inventoryIdToSummaryRowContentsMap).some(s => s.hasLinkedMaterials);\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function deleteSurveyTemplate(templateId: string | null, dispatch: (action: KnownAction) => void, templates: SurveyTemplateDataModel[]) {\r\n const serviceClient = new ToxnotServiceClient();\r\n if (templateId != null) {\r\n const apiResult = await serviceClient.deleteDataCollectionTemplate(templateId);\r\n if (apiResult.success && apiResult.result === ResultType.Ok) {\r\n dispatch({\r\n type: SurveySetSurveyMetadata,\r\n value: {\r\n templates: templates.filter((v, i) => v.templateId != templateId)\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n// Updates both as a new or an existing template\r\nasync function saveSurveyTemplate(dispatch: (action: KnownAction) => void, state: SurveyState, existingTemplateId: string | null, appServices: AppServices) {\r\n const serviceClient = new ToxnotServiceClient();\r\n const existingTemplate = state.surveyMetadata.templates.find(v => v.templateId === existingTemplateId);\r\n const existingTemplateName = existingTemplate?.name ?? \"\";\r\n const model: SurveyTemplateDataModel = {\r\n ownerId: existingTemplate?.ownerId ?? \"\",\r\n templateId: existingTemplateId,\r\n name: existingTemplateId ? existingTemplateName : state.surveyUi.newTemplateName,\r\n dataRequested: {\r\n ...state.surveyRequest.dataRequested,\r\n embodiedCarbonDataAsked: state.surveyRequest.dataRequested.sustainabilityDataAsked ? state.surveyRequest.dataRequested.embodiedCarbonDataAsked : false,\r\n waterUseDataAsked: state.surveyRequest.dataRequested.sustainabilityDataAsked ? state.surveyRequest.dataRequested.waterUseDataAsked : false,\r\n carbonTransparencyDataAsked: state.surveyRequest.dataRequested.sustainabilityDataAsked ? state.surveyRequest.dataRequested.carbonTransparencyDataAsked : false,\r\n carbonOtherDataAsked: state.surveyRequest.dataRequested.sustainabilityDataAsked ? state.surveyRequest.dataRequested.carbonOtherDataAsked : false,\r\n vocOtherDataAsked: state.surveyRequest.dataRequested.vocDataAsked ? state.surveyRequest.dataRequested.vocOtherDataAsked : false,\r\n vocTransparencyDataAsked: state.surveyRequest.dataRequested.vocDataAsked ? state.surveyRequest.dataRequested.vocTransparencyDataAsked : false,\r\n documentsCertificationList: state.surveyRequest.dataRequested.documentsAsked ? state.surveyRequest.dataRequested.documentsCertificationList : [],\r\n complianceList: state.surveyRequest.dataRequested.complianceDataAsked ? state.surveyRequest.dataRequested.complianceList : []\r\n },\r\n bomQuestionnaireId: state.surveyRequest.dataRequested.customQuestionsAsked ? state.surveyRequest.bomQuestionnaireId : null,\r\n supplierQuestionnaireId: state.surveyRequest.dataRequested.customQuestionsAsked ? state.surveyRequest.supplierQuestionnaireId : null,\r\n attestationQuestionnaireId: state.surveyRequest.dataRequested.customQuestionsAsked ? state.surveyRequest.attestationQuestionnaireId : null,\r\n languageList: state.surveyRequest.languageList,\r\n nativeLanguage: state.surveyRequest.nativeLanguage,\r\n ccEmailList: state.surveyRequest.ccEmailList.join(\", \"),\r\n emailSubject: state.surveyRequest.emailSubject,\r\n emailMessage: state.surveyRequest.emailMessage,\r\n requestInstructions: state.surveyRequest.requestInstructions,\r\n completionInstructions: state.surveyRequest.completionInstructions,\r\n languageToEmailSubjectMap: state.surveyRequest.languageToEmailSubjectMap,\r\n languageToEmailMessageMap: state.surveyRequest.languageToEmailMessageMap,\r\n languageToRequestInstructionsMap: state.surveyRequest.languageToRequestInstructionsMap,\r\n languageToCompletionInstructionsMap: state.surveyRequest.languageToCompletionInstructionsMap,\r\n scheduledReminders: state.surveyRequest.scheduledReminders,\r\n sdsRequested: state.surveyRequest.sdsRequested,\r\n questionnaireAnswerThatMakesBomDataRequired: state.surveyRequest.dataRequested.customQuestionsAsked && state.surveyRequest.makeBomDataRequiredOnQuestionnaireAnswer ? state.surveyRequest.questionnaireAnswerThatMakesBomDataRequired : null,\r\n bomColumns: state.surveyRequest.fields,\r\n useManufacturerLogo: state.surveyRequest.useManufacturerLogo,\r\n preFillBomQuestionnaireFromSummaryData: state.surveyRequest.dataRequested.customQuestionsAsked ? state.surveyRequest.preFillBomQuestionnaireFromSummaryData : false,\r\n preFillSupplierQuestionnaireFromSummaryData: state.surveyRequest.dataRequested.customQuestionsAsked ? state.surveyRequest.preFillSupplierQuestionnaireFromSummaryData : false,\r\n makeBomDataRequiredOnQuestionnaireAnswer: state.surveyRequest.dataRequested.customQuestionsAsked ? state.surveyRequest.makeBomDataRequiredOnQuestionnaireAnswer : false,\r\n requireSuppliersToDiscloseRegulatoryIngredients: state.surveyRequest.metadata.requireSuppliersToDiscloseRegulatoryIngredients,\r\n additionalColumnIdIdentifiers: state.surveyRequest.metadata.additionalColumnIdIdentifiers,\r\n includeAttestationLetter: state.surveyRequest.includeAttestationLetter ? state.surveyRequest.includeAttestationLetter : false\r\n };\r\n\r\n // All templates must have a valid name.\r\n if (model.name.trim() === \"\") {\r\n model.name = appServices.localizeString(\"Unknown Survey Template.\");\r\n }\r\n\r\n const apiResult = await serviceClient.updateDataCollectionTemplate(model);\r\n if (apiResult.success && apiResult.result === ResultType.Ok) {\r\n model.templateId = apiResult.data;\r\n if (existingTemplateId) {\r\n dispatch({\r\n type: SurveySetSurveyMetadata,\r\n value: {\r\n templates: [\r\n ...state.surveyMetadata.templates.map((value, i) => {\r\n if (value.templateId === existingTemplateId) {\r\n value = model\r\n }\r\n return value\r\n })\r\n ]\r\n }\r\n });\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: SurveySetSurveyMetadata,\r\n value: {\r\n templates: state.surveyMetadata.templates.concat(model)\r\n }\r\n });//Save Template\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function sendReminder(requestId: string | null, message: string, dispatch: (action: KnownAction) => void) {\r\n if (requestId === null) {\r\n return;\r\n }\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const apiResult = await serviceClient.sendRequestReminderEmails([requestId], message);\r\n if (apiResult.result === ResultType.Ok) {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: { sentReminderAlert: true, errorReminderAlert: false, errorReminderNoMessageAlert: false }\r\n })\r\n } else {\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: { errorReminderAlert: true, sentReminderAlert: false, errorReminderNoMessageAlert: false }\r\n })\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function surveySetAsNoValidationRequired(requestId: string | null, dispatch: (action: KnownAction) => void) {\r\n const serviceClient = new ToxnotServiceClient();\r\n if (requestId != null) {\r\n const apiResult = await serviceClient.surveySetAsNoValidationRequired(requestId);\r\n if (apiResult.result == ResultType.Ok && apiResult.success) {\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: {\r\n requireValidationOnResponse: false\r\n }\r\n })\r\n }\r\n }\r\n}\r\n\r\n// ============================================================================\r\n\r\nasync function sendOfflineResponse(requestId: string | null, responseText: string, notes: string, fileList: FileList | null, dispatch: (action: KnownAction) => void, state: SurveyState) {\r\n const serviceClient = new ToxnotServiceClient();\r\n if (requestId === null) {\r\n return\r\n }\r\n const uploadedFileIds: string[] = [];\r\n const uploadedFiles: [fileId: string, fileName: string][] = [];\r\n if (fileList != null) {\r\n for (let x = 0; x < fileList.length; x++) {\r\n const file = fileList.item(x);\r\n if (file != null) {\r\n const apiResult = await serviceClient.uploadGeneralFile(file.name, \"\", 0, false, false, file);\r\n if (apiResult.data != null && apiResult.result === ResultType.Ok) {\r\n uploadedFileIds.push(apiResult.data.fileId);\r\n uploadedFiles.push([apiResult.data.fileId, file.name]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const dataToUpload: OfflineResponseApiData = {\r\n requestId: requestId,\r\n supplierResponseText: responseText,\r\n notes: notes,\r\n uploadedFileIds: uploadedFileIds\r\n }\r\n\r\n const offlineResponseApiResult = await serviceClient.surveyRequestAddOfflineResponse(dataToUpload);\r\n let success = false;\r\n if (offlineResponseApiResult.result === ResultType.Ok) {\r\n success = true;\r\n if (offlineResponseApiResult.data != null) {\r\n const newHistoryEntry = offlineResponseApiResult.data;\r\n dispatch({\r\n type: SurveySetSurveyRequest,\r\n value: {\r\n responseHistoryList: state.surveyRequest.responseHistoryList.concat(newHistoryEntry)\r\n }\r\n });\r\n for (let f of uploadedFiles) {\r\n dispatch({\r\n type: SurveySetSurveyMetadata,\r\n value: {\r\n offlineResponseFileTable: {\r\n ...state.surveyMetadata.offlineResponseFileTable,\r\n [f[0]]: { filename: f[1] }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n dispatch({\r\n type: SurveySetUIState,\r\n value: {\r\n addOfflineResponseSuccess: success\r\n }\r\n });\r\n}\r\n","export interface FilterMenu {\r\n filterId: string;\r\n title: string;\r\n values: string[];\r\n expanded: boolean;\r\n filterParameter: string | null;\r\n}\r\n\r\nexport interface ActiveFilter {\r\n filterId: string;\r\n value: string;\r\n}\r\n\r\nexport enum SortDirectionType {\r\n Ascending,\r\n Descending\r\n}\r\n\r\nexport interface SortContext {\r\n sortType: SortTypes;\r\n sortDirection: SortDirectionType;\r\n}\r\n\r\nexport enum RequestState {\r\n Default,\r\n Sending,\r\n Sent,\r\n FailedToSend\r\n}\r\n\r\nexport enum RegulationFiterType {\r\n Compliant = \"Compliant\",\r\n PossiblyCompliant = \"PossiblyComplaint\"\r\n}\r\n\r\nexport interface Column {\r\n name: string;\r\n columnId: string;\r\n width: number;\r\n}\r\n\r\nexport interface SharedMaterialsTableColumns {\r\n checkbox: Column;\r\n photo: Column;\r\n supplierName: Column;\r\n materialName: Column;\r\n category: Column;\r\n fmd: Column;\r\n \r\n}\r\n\r\nexport enum ColumnId {\r\n Checkbox = \"Checkbox\",\r\n Photo = \"Photo\",\r\n SupplierName = \"SupplierName\",\r\n Name = \"Name\",\r\n Category = \"Category\",\r\n Fmd = \"Fmd\",\r\n Sds = \"Sds\"\r\n}\r\n\r\nexport enum SortTypes {\r\n SupplierName,\r\n PassportName,\r\n Category,\r\n Featured\r\n}\r\n\r\nexport enum BrowserSearchMode {\r\n Materials,\r\n Companies\r\n}\r\n","import { UserContext } from \"./store/Models/UserContext\";\r\nimport { IStringLocalizer } from \"./utilities/IStringLocalizer\";\r\n\r\n// ===============================================================================\r\n\r\nexport interface TowState {\r\n taskId: string,\r\n type: string,\r\n jsonState: string\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport interface ToxnotConfiguration {\r\n toxnotWebAppUrlEndpoint: string;\r\n surveyQuestionBankEnabled: boolean;\r\n googleDeclarePageReadOnly: boolean;\r\n maxFileUploadSizeInBytes: number;\r\n teamSeatTimeoutInMinutes: number;\r\n largeBomRowCountThreshold: number;\r\n thirdPartyVerificationEnabled: boolean;\r\n declare2EnabledForAll: boolean;\r\n isProductionServer: boolean;\r\n isDevelopmentServer: boolean;\r\n isBetaServer: boolean;\r\n inventoryLockTimeoutInSeconds: number;\r\n inventoryLockPollingFrequencyInSeconds: number;\r\n inTestingMode: boolean;\r\n newsBffBaseUrl: string;\r\n newsOpenedArticleUrl: string;\r\n newsNewsletterArchiveUrl: string;\r\n newsSearchBaseUrl: string;\r\n regulationsBffBaseUrl: string;\r\n regulationsApiBaseUrl: string;\r\n exchangeFreeUsersAccountId: number;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Application insights object, included via javascript snippet in index.html.\r\n// Used to send events to Application Insights in Azure.\r\n// We use these events to track metrics like \"how many users sent a survey\" or \"how many users created a declare\r\n// label.\"\r\n//\r\n\r\ndeclare const appInsights: any;\r\n\r\n//\r\n// these localization resource maps are included by index.html and will exist globally\r\n//\r\n\r\ndeclare const localization_englishStringToCustomKeyMap: { [englishString: string]: string };\r\ndeclare const toxnotCoreContent_de: { [defaultString: string]: string };\r\ndeclare const toxnotCoreContent_es: { [defaultString: string]: string };\r\ndeclare const toxnotCoreContent_fr: { [defaultString: string]: string };\r\ndeclare const toxnotCoreContent_it: { [defaultString: string]: string };\r\ndeclare const toxnotCoreContent_ja: { [defaultString: string]: string };\r\ndeclare const toxnotCoreContent_pt: { [defaultString: string]: string };\r\ndeclare const toxnotCoreContent_th: { [defaultString: string]: string };\r\ndeclare const toxnotCoreContent_zh: { [defaultString: string]: string };\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Services and data used by all views\r\n */\r\nexport class AppServices implements IStringLocalizer {\r\n public readonly userContext: Readonly | null;\r\n\r\n public readonly config: Readonly;\r\n\r\n public readonly towState: TowState | null;\r\n\r\n private readonly defaultCultureName: string = \"en\";\r\n\r\n private selectedCultureName: string = \"en\";\r\n\r\n private readonly _localizationResourceLookupTable: Readonly<{\r\n [cultureName: string]: { [defaultString: string]: string };\r\n }>;\r\n\r\n\r\n // ===============================================================================\r\n\r\n public constructor(userContext: Readonly | null, towState: TowState | null, config: Readonly) {\r\n this.userContext = userContext;\r\n this.towState = towState;\r\n\r\n this._localizationResourceLookupTable = {\r\n \"de\": toxnotCoreContent_de,\r\n \"es\": toxnotCoreContent_es,\r\n \"fr\": toxnotCoreContent_fr,\r\n \"it\": toxnotCoreContent_it,\r\n \"ja\": toxnotCoreContent_ja,\r\n \"pt\": toxnotCoreContent_pt,\r\n \"th\": toxnotCoreContent_th,\r\n \"zh\": toxnotCoreContent_zh\r\n };\r\n\r\n this.config = config;\r\n\r\n if (userContext !== null) {\r\n this.setUserCultureName(userContext.cultureName);\r\n\r\n const applicationInsightsUserEmailAddress = userContext.emailAddress;\r\n const applicationInsightsUserActiveTeamName = userContext.teamName;\r\n const encodedApplicationInsightsUserId = applicationInsightsUserEmailAddress.replace(/[,;=| ]+/g, \"_\");\r\n const encodedApplicationInsightsAccountId = applicationInsightsUserActiveTeamName.replace(/[,;=| ]+/g, \"_\");\r\n\r\n appInsights.setAuthenticatedUserContext(encodedApplicationInsightsUserId, encodedApplicationInsightsAccountId);\r\n var telemetryInitializer = (envelope: any) => {\r\n envelope.tags[\"UserId\"] = userContext.userId;\r\n envelope.tags[\"EmailAddress\"] = userContext.emailAddress;\r\n envelope.tags[\"TeamOwnerId\"] = userContext.teamOwnerId;\r\n envelope.tags[\"TeamName\"] = userContext.teamName;\r\n }\r\n appInsights.addTelemetryInitializer(telemetryInitializer);\r\n\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Localizes a given english string into the given culture.\r\n * \r\n * @param cultureName The culture to localize s to\r\n * @param s The string to localize\r\n * \r\n * @returns The translated version of s\r\n */\r\n public localizeStringToCultureName(cultureName: string, s: string): string {\r\n const cultureResource = this._localizationResourceLookupTable[cultureName];\r\n\r\n if (cultureResource === undefined) {\r\n return s;\r\n }\r\n\r\n const customKey = localization_englishStringToCustomKeyMap[s];\r\n\r\n const localizedString = cultureResource[customKey ?? s];\r\n\r\n if (localizedString === undefined) {\r\n return s;\r\n }\r\n\r\n return localizedString;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Localizes a given english string into the language currently selected\r\n * by the user.\r\n * \r\n * @param s The string to localize\r\n * \r\n * @returns The translated version of s\r\n */\r\n public localizeString(s: string): string { \r\n return this.localizeStringToCultureName(this.selectedCultureName, s);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Returns the user's culture name or default culture name.\r\n */\r\n public getUserCultureNameOrDefault() {\r\n return this.userContext?.cultureName ?? this.defaultCultureName;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Returns the user's culture name or default culture name.\r\n */\r\n public setUserCultureName(lang: string) {\r\n this.selectedCultureName = lang;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Localizes a given english string into the given culture name,\r\n * substituting args into the string as a template.\r\n * \r\n * @param cultureName The culture to localize s to\r\n * @param formatString The string to localize, of the form \"content {0} content {1} ...\"\r\n * where the ith element in args is substituted into \"{i}\"\r\n * \r\n * @returns The translated version of formatString\r\n */\r\n public localizeStringToCultureNameFormat(cultureName: string, formatString: string, ...args: any[]): string {\r\n let localizedFormatString = this.localizeStringToCultureName(cultureName, formatString);\r\n\r\n let i = 0;\r\n let startPlaceholder = -1;\r\n\r\n let ret = \"\";\r\n\r\n while (i < localizedFormatString.length) {\r\n let substitution: string | null = null;\r\n\r\n if (localizedFormatString[i] === '{') {\r\n if (startPlaceholder !== -1) {\r\n startPlaceholder = -1;\r\n }\r\n else {\r\n startPlaceholder = i;\r\n }\r\n }\r\n else if (localizedFormatString[i] === '}') {\r\n if (startPlaceholder !== -1) {\r\n const index = parseInt(localizedFormatString.substr(startPlaceholder + 1, i - startPlaceholder - 1));\r\n\r\n substitution = args[index].toString() ?? \"\";\r\n\r\n startPlaceholder = -1;\r\n }\r\n }\r\n\r\n if (substitution !== null) {\r\n ret += substitution;\r\n }\r\n else if (startPlaceholder === -1) {\r\n ret += localizedFormatString[i];\r\n }\r\n\r\n ++i;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Localizes a given english string into the language currently selected\r\n * by the user, substituting args into the string as a template.\r\n * \r\n * @param formatString The string to localize, of the form \"content {0} content {1} ...\"\r\n * where the ith element in args is substituted into \"{i}\"\r\n * \r\n * @returns The translated version of formatString\r\n */\r\n public localizeStringFormat(formatString: string, ...args: any[]): string {\r\n return this.localizeStringToCultureNameFormat(this.getUserCultureNameOrDefault(), formatString, args);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public static dupe(appServices: AppServices, towState: TowState | null, config: ToxnotConfiguration) {\r\n return new AppServices(appServices.userContext, towState, config);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public displayApiErrorMessage(localizedMessage?: string) {\r\n alert(localizedMessage ?? this.localizeString(\"Sorry, there was a problem accessing the service.\"));\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Returns the display name of the given culture in the default culture.\r\n * e.g. if the default culture is English, and the cultureName is \"es\", then\r\n * this returns \"Spanish\"\r\n * \r\n * @param cultureName The culture name to get the display name for\r\n */\r\n public getDisplayNameForCultureNameInDefaultLocale(cultureName: string): string {\r\n return AppServices.cultureNameToDefaultDisplayNameMap[cultureName] ?? \"Unknown\";\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Returns the localized display name of the given culture name,\r\n * localized to the user's current language.\r\n * \r\n * @param cultureName The culture name to get the display name for, e.g. \"en\" or \"es\"\r\n */\r\n public getLocalizedDisplayNameForCultureName(cultureName: string): string {\r\n return this.localizeString(this.getDisplayNameForCultureNameInDefaultLocale(cultureName));\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Tracks an event in our cloud analytics service, Application Insights (on Azure).\r\n *\r\n * @param event the name of the event to track\r\n * @param context optional; any context data that goes with the event\r\n */\r\n public trackEvent(event: string, context?: any) {\r\n const isLoggedIn = this.userContext !== null;\r\n\r\n const isToxnotEmployee = isLoggedIn &&\r\n (this.userContext!.emailAddress.endsWith(\"@toxnot.com\") ||\r\n (this.userContext!.emailAddress === \"bill.hoffman@outlook.com\") ||\r\n (this.userContext!.emailAddress === \"ignag@hotmail.com\"));\r\n\r\n if (this.config.inTestingMode || !this.config.isProductionServer || isToxnotEmployee) {\r\n console.log(event + \" \" + JSON.stringify(context));\r\n return;\r\n }\r\n\r\n if (!appInsights) {\r\n return;\r\n }\r\n\r\n let subscriptionName = \"\";\r\n let isFre = false;\r\n\r\n if (this.userContext) {\r\n subscriptionName = this.userContext.isSubscriptionActive ? this.userContext.subscription.baseSubscriptionProduct.productName : \"\";\r\n isFre = this.userContext.isFre;\r\n }\r\n\r\n const eventProperties: any = {\r\n SubscriptionName: subscriptionName,\r\n IsFre: isFre\r\n };\r\n\r\n if (context) {\r\n eventProperties[\"Context\"] = context;\r\n }\r\n\r\n appInsights.trackEvent({\r\n name: event,\r\n properties: eventProperties\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Tracks the current URL path as a page view in our cloud analytics service, Application Insights (on Azure).\r\n */\r\n public trackCurrentUrlPath() {\r\n appInsights.trackPageView();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Redirects the user to the Sign In page.\r\n */\r\n public static redirectToSignInPage() {\r\n window.location.href = \"/Account/SignIn?urlReferrer=\" + encodeURIComponent(window.location.pathname);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public static redirectToGetStarted() {\r\n window.location.href = \"/Start\"\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private static readonly cultureNameToDefaultDisplayNameMap: Readonly<{ [locale: string]: string }> = {\r\n \"en\": \"English\",\r\n \"zh\": \"Chinese\",\r\n \"fr\": \"French\",\r\n \"de\": \"German\",\r\n \"it\": \"Italian\",\r\n \"ja\": \"Japanese\",\r\n \"pt\": \"Portueguese\",\r\n \"es\": \"Spanish\",\r\n \"th\": \"Thai\"\r\n };\r\n}\r\n","// ===============================================================================\r\n\r\n/**\r\n* All filter ids.\r\n*/\r\nexport enum FilterId {\r\n MyCustomerSearch = \"MyCustomerSearch\",\r\n HasActiveRequests = \"HasActiveRequests\",\r\n SharedMaterialsSearch = \"SharedMaterialsSearch\",\r\n Category = \"Category\",\r\n Sds = \"Sds\",\r\n SupplierId = \"SupplierId\",\r\n MyCustomerRequestsSearch = \"MyCustomerRequestsSearch\",\r\n SharedMaterialsCompliance = \"SharedMaterialsCompliance\"\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Standard filters.\r\n*/\r\n\r\nexport interface Filter {\r\n value: string;\r\n filterId: FilterId | string;\r\n filterParameter: string | null;\r\n}\r\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import { Filter } from \"../Models/Filter\";\r\nimport { FilterCheck } from \"./FilterCheck\";\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Abstract class for filtering objects. This is the base class for all filtering\r\n * managers.\r\n * \r\n * TData is the type of the objects we are filtering\r\n*/\r\nexport abstract class FilteringManager{\r\n // ===============================================================================\r\n\r\n /**\r\n * Does the main filtering operation. Given an object to compare and a list of filter checks,\r\n * this method, iterates through all the checks, keeping track of which checks an object\r\n * passed. \r\n * \r\n * If there are 2 filters with the same filter id, they are OR'd together, meaning the object \r\n * has to pass at least one of them. Filters with different ids are AND'd together, meaning\r\n * object has to pass all of them\r\n * \r\n * @param object the object to see if it passes the checks.\r\n * @param checks filter checks\r\n */\r\n protected doesObjectPassChecks(object: TData, checks: FilterCheck[]) {\r\n const passedMap =\r\n checks.reduce(\r\n (accumulator, currentFilter) => {\r\n accumulator[currentFilter.getActiveFilter().filterId] = false;\r\n\r\n return accumulator;\r\n },\r\n {} as { [filterId: string]: boolean }\r\n );\r\n\r\n for (let check of checks) {\r\n const passesFilter = check.passesCheck(object);\r\n\r\n if (passesFilter) {\r\n passedMap[check.getActiveFilter().filterId] = true;\r\n }\r\n }\r\n\r\n return Object.keys(passedMap).every(filterId => passedMap[filterId]);\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Abstract class for filtering objects. Subclasses must override the factory method\r\n * which determines which filter checks to instantiate.\r\n * \r\n * TData is the type of the objects we are filtering\r\n*/\r\nexport abstract class FilteringManagerNoContext extends FilteringManager{\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * This method uses a given filter id to instantiate the correct filter check class,\r\n * passing the context to this class if needed.\r\n * \r\n * @param filter the active filter to determine what filter check corresponds to it.\r\n */\r\n protected abstract filterCheckFactory(filter: Filter): FilterCheck;\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Given a list of objects, context for those objects, and a list of filters,\r\n * this method returns the filtered list of those objects.\r\n * \r\n * @param filter the active filter to determine what filter check corresponds to it.\r\n */\r\n public getFilteredArray(objects: TData[], activeFilters: Filter[]) {\r\n if (activeFilters.length === 0) {\r\n return objects;\r\n }\r\n\r\n const allChecks = activeFilters.map(f => this.filterCheckFactory(f))\r\n\r\n return objects.filter(o => this.doesObjectPassChecks(o, allChecks));\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Abstract class for filtering objects. Subclasses must override the factory method\r\n * which determines which filter checks to instantiate. This abstract class expects a\r\n * context type which is used to help determine if objects pass a filter. This context\r\n * is determined by subclasses.\r\n * \r\n * TData is the type of the objects we are filtering\r\n * TContext is the type of the context the objects may need for filtering\r\n*/\r\nexport abstract class FilteringManagerWithContext extends FilteringManager {\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * This method uses a given filter id to instantiate the correct filter check class,\r\n * passing the context to this class if needed.\r\n * \r\n * @param filter the active filter to determine what filter check corresponds to it.\r\n * @param context filtering context needed by some of the concrete filter checks\r\n */\r\n protected abstract filterCheckFactory(filter: Filter, context: TContext): FilterCheck;\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Given a list of objects, context for those objects, and a list of filters,\r\n * this method returns the filtered list of those objects.\r\n * \r\n * @param filter the active filter to determine what filter check corresponds to it.\r\n * @param context filtering context needed by some of the concrete filter checks\r\n */\r\n public getFilteredArray(objects: TData[], context: TContext, activeFilters: Filter[]) {\r\n if (activeFilters.length === 0) {\r\n return objects;\r\n }\r\n\r\n const allChecks = activeFilters.map(f => this.filterCheckFactory(f, context)) \r\n\r\n return objects.filter(o => this.doesObjectPassChecks(o, allChecks));\r\n }\r\n}","import { IStringLocalizer } from '../../../utilities/IStringLocalizer';\r\nimport { ReportTypeWithContext } from '../Api/CustomerApiRequestsAndResponses';\r\nimport { Certification } from '../Certifications';\r\nimport { FileTableEntry } from '../Documents/DocumentModels';\r\nimport { SoldItem } from '../SoldItems';\r\nimport { DynamicRegulation } from \"../Compliance/DynamicRegulation\";\r\n\r\nexport type SharedMaterialIdToCoreDataTable = { [sharedMaterialId: string]: SharedMaterialCoreData };\r\n\r\nexport enum SharedMaterialFmdDiscloureType {\r\n Ppm100 = \"Ppm100\",\r\n Ppm1000 = \"Ppm1000\",\r\n PerGhsSds = \"PerGhsSds\",\r\n PerOshaMsds = \"PerOshaMsds\",\r\n Other = \"Other\"\r\n}\r\n\r\nexport function localizeSharedMaterialFmdDisclosureType(type: SharedMaterialFmdDiscloureType,\r\n localizer: IStringLocalizer): string {\r\n switch (type) {\r\n case SharedMaterialFmdDiscloureType.Ppm1000: return \"1000 ppm\";\r\n case SharedMaterialFmdDiscloureType.Ppm100: return \"100 ppm\";\r\n case SharedMaterialFmdDiscloureType.PerGhsSds: return \"Per GHS SDS\";\r\n case SharedMaterialFmdDiscloureType.PerOshaMsds: return \"Per OSHA MSDS\";\r\n default: return localizer.localizeString(\"Other\");\r\n }\r\n}\r\n\r\nexport enum SharedMaterialAccessType {\r\n Private = \"Private\",\r\n Protected = \"Protected\",\r\n Public = \"Public\"\r\n}\r\n\r\nexport enum StandardComplianceScoreType {\r\n Unknown = \"Unknown\",\r\n Compliant = \"Compliant\",\r\n NonCompliant = \"NonCompliant\"\r\n}\r\n\r\nexport enum StandardComplianceScoreAsNumber {\r\n Unknown,\r\n Compliant,\r\n NonCompliant\r\n}\r\n\r\nexport interface SharedMaterialsAccessRequest {\r\n ownerId: string;\r\n requestId: string;\r\n requestorTeamOwnerId: string;\r\n requestorUserId: string;\r\n sharedMaterialIds: string[];\r\n dateSent: string //ISO8061 format.\r\n}\r\n\r\nexport interface SharedMaterialsAccessRequestCatalogRequest extends SharedMaterialsAccessRequest {\r\n requestorName: string;\r\n requestorEmail: string;\r\n}\r\n\r\nexport interface SharedMaterialsAccessRequestCatalog {\r\n accessRequests: SharedMaterialsAccessRequestCatalogRequest[];\r\n allSharedMaterialsCoreDataMap: { [sharedMaterialIds: string]: SharedMaterialCoreData };\r\n}\r\n\r\nexport enum AccessRequestResponseType {\r\n Approved,\r\n Declined\r\n}\r\n\r\nexport interface CompanyInfo {\r\n description: string;\r\n websiteUrl: string;\r\n}\r\n\r\ninterface BaseSharedMaterialsCompany {\r\n ownerId: string;\r\n name: string;\r\n logoFileId: string | null;\r\n contactEmail: string;\r\n}\r\n\r\nexport interface SharedMaterialsCatalogCompany extends BaseSharedMaterialsCompany {\r\n isUnClaimed?: boolean;\r\n companyId: string;\r\n}\r\n\r\nexport interface SharedMaterialsFullCompany extends SharedMaterialsCatalogCompany {\r\n companyInfo: CompanyInfo | null;\r\n customUrlName: string | null;\r\n reports: string[];\r\n}\r\n\r\nexport interface SharedMaterialsEditableCompany extends BaseSharedMaterialsCompany {\r\n companyId: string | null; // null means the company doesn't exist yet\r\n companyInfo: CompanyInfo | null;\r\n customUrlName: string | null;\r\n reports: string[];\r\n localModelId: string;\r\n}\r\n\r\nexport interface CustomReportTypesInfo {\r\n customReportTypes: string[];\r\n overallReportId: string;\r\n}\r\n\r\nexport interface SharedMaterialCoreData {\r\n ownerId: string;\r\n sharedMaterialId: string;\r\n implementationInventoryId: string;\r\n publicInventoryId: string;\r\n publicInventoryDataId: string;\r\n accessLevel: SharedMaterialAccessType;\r\n hasAccess: boolean;\r\n materialName: string;\r\n companyName: string;\r\n materialPhotoFileId: string | null;\r\n sku: string;\r\n categories: string[];\r\n regulationIdToComplianceScoreMap: { [regulationId: string]: StandardComplianceScoreType };\r\n scoreRohs: StandardComplianceScoreType | null;\r\n scoreCal65: StandardComplianceScoreType | null;\r\n scoreCm: StandardComplianceScoreType | null;\r\n scoreReach: StandardComplianceScoreType | null;\r\n scoreReachAuth: StandardComplianceScoreType | null;\r\n scoreReachAuthV2: StandardComplianceScoreType | null;\r\n fmdStatus: SharedMaterialFmdDiscloureType | null;\r\n hasSdsStatus: boolean | null;\r\n lastModified: string; // ISO8601 date-time string\r\n fetchForCatalogs: boolean;\r\n companyId: string;\r\n}\r\n\r\nexport interface SharedMaterialsCatalogData {\r\n materials: SharedMaterialCoreData[];\r\n categories: string[];\r\n dynamicRegulationTable: { [regulationId: string]: DynamicRegulation };\r\n totalNumberOfMaterials: number;\r\n}\r\n\r\nexport enum SharedMaterialInventoryType {\r\n RawMaterial = \"RawMaterial\",\r\n Article = \"Article\"\r\n}\r\n\r\ninterface SearchResult {\r\n substanceId: string;\r\n privateSubstanceId: string;\r\n casNumber: string;\r\n chemicalName: string;\r\n alsoCalled: string;\r\n overallScore: string;\r\n biodegradabilityStatus: string;\r\n ecNumbers: string[];\r\n}\r\n\r\nexport interface SubstanceResult {\r\n result: string;\r\n resultsList: SearchResult[];\r\n pageNum: number;\r\n pageStartRowIndex: number;\r\n totalNumRows: number;\r\n numPagesOfToxnotSubstanceData: number;\r\n numPagesOfPrivateSubstanceData: number;\r\n totalNumPages: number;\r\n}\r\n\r\nexport interface SharedMaterialGeneralData {\r\n description: string;\r\n idOrPartNum: string;\r\n uuid: string;\r\n countryOfOrigin: string;\r\n qrCodeFileId: string | null;\r\n regionalAvailability: string[];\r\n purchaseUrl: string;\r\n inventoryType: SharedMaterialInventoryType;\r\n}\r\n\r\nexport enum SharedMaterialScope {\r\n ProductStage = \"ProductStage\",\r\n ConstructionStage = \"ConstructionStage\",\r\n UseStage = \"UseStage\",\r\n EndOfLifeStage = \"EndOfLifeStage\",\r\n ReuseRecoveryRecyclingPotential = \"ReuseRecoveryRecyclingPotential\"\r\n}\r\n\r\nexport function getFriendlyNameFromScope(localizer: IStringLocalizer, type: SharedMaterialScope) {\r\n const map = {\r\n [SharedMaterialScope.ProductStage]: localizer.localizeString(\"Product Stage (Cradle-to-Gate) A1-A3\"),\r\n [SharedMaterialScope.ConstructionStage]: localizer.localizeString(\"Construction Stage A4-A5\"),\r\n [SharedMaterialScope.UseStage]: localizer.localizeString(\"Use Stage B1-B5\"),\r\n [SharedMaterialScope.EndOfLifeStage]: localizer.localizeString(\"End of Life Stage C1-D4\"),\r\n [SharedMaterialScope.ReuseRecoveryRecyclingPotential]: localizer.localizeString(\"Reuse/Recovery/Recycling Potential D\"),\r\n };\r\n\r\n return map[type] ?? \"?\";\r\n}\r\n\r\nexport interface SharedMaterialSustainabilityDataTransparency { }\r\n\r\nexport interface SharedMaterialAllSustainabilityDataAssessmentCommitmentOptimization { }\r\n\r\nexport interface SharedMaterialAllSustainabilityData {\r\n embodiedCarbon: SharedMaterialSustainabilityData | null;\r\n waterUse: SharedMaterialSustainabilityData | null;\r\n transparency: SharedMaterialSustainabilityDataTransparency | null;\r\n assessmentCommitmentOptimization: SharedMaterialAllSustainabilityDataAssessmentCommitmentOptimization | null;\r\n}\r\n\r\nexport interface SharedMaterialSustainabilityData {\r\n amount: string;\r\n productUnit: string;\r\n scope: SharedMaterialScope[];\r\n supportingDocumentFileIds: string[];\r\n}\r\n\r\nexport enum SharedMaterialVocTestingType {\r\n Content = \"Content\",\r\n Emissions = \"Emissions\",\r\n FormaldehydeEmissions = \"FormaldehydeEmissions\",\r\n InherentlyNonEmitting = \"InherentlyNonEmitting\"\r\n}\r\n\r\nexport function getFriendlyNameForVocTestingType(localizer: IStringLocalizer, type: SharedMaterialVocTestingType) {\r\n const map = {\r\n [SharedMaterialVocTestingType.Content]: localizer.localizeString(\"VOC Content\"),\r\n [SharedMaterialVocTestingType.Emissions]: localizer.localizeString(\"VOC Emissions\"),\r\n [SharedMaterialVocTestingType.FormaldehydeEmissions]: localizer.localizeString(\"Formaldehyde Emissions\"),\r\n [SharedMaterialVocTestingType.InherentlyNonEmitting]: localizer.localizeString(\"Inherently Non-Emitting\"),\r\n };\r\n\r\n return map[type] ?? \"\";\r\n}\r\n\r\nexport interface SharedMaterialVocDataTransparency {\r\n testingTypes: SharedMaterialVocTestingType[];\r\n vocContent: string;\r\n}\r\n\r\nexport interface SharedMaterialVocDataAssessmentCommitmentOptimization { }\r\n\r\nexport interface SharedMaterialVocData {\r\n transparency: SharedMaterialVocDataTransparency | null;\r\n assessmentCommitmentOptimization: SharedMaterialVocDataAssessmentCommitmentOptimization | null;\r\n}\r\n\r\nexport interface SharedMaterialInstructionsInstallation {\r\n documentFileIds: string[];\r\n notes: string;\r\n}\r\n\r\nexport interface SharedMaterialInstructionsUsePhase {\r\n lifeExpectancy: string;\r\n documentFileIds: string[];\r\n warrantyNotes: string;\r\n}\r\n\r\nexport interface SharedMaterialInstructionsSpecifications {\r\n specifications: string[][];\r\n}\r\n\r\nexport interface SharedMaterialInstructions {\r\n installation: SharedMaterialInstructionsInstallation | null;\r\n usePhase: SharedMaterialInstructionsUsePhase | null;\r\n specifications: SharedMaterialInstructionsSpecifications | null;\r\n}\r\n\r\nexport enum LbcRedListStatus {\r\n RedListFree = \"RedListFree\",\r\n RedListApproved = \"RedListApproved\",\r\n Declared = \"Declared\",\r\n Unknown = \"Unknown\"\r\n}\r\n\r\nexport enum SharedMaterialPackaging {\r\n Undefined = \"Undefined\",\r\n Included = \"Included\",\r\n Excluded = \"Excluded\"\r\n}\r\n\r\nexport enum SharedMaterialEolOptionType {\r\n DesignedForMaintenanceAndRepair = \"DesignedForMaintenanceAndRepair\",\r\n DesignedForDisassembly = \"DesignedForDisassembly\",\r\n DesignedForReUse = \"DesignedForReUse\",\r\n TakeBackProgram = \"TakeBackProgram\",\r\n Recycling = \"Recycling\",\r\n Other = \"Other\"\r\n}\r\n\r\nexport interface SharedMaterialEolOption {\r\n type: SharedMaterialEolOptionType,\r\n description: string,\r\n attachmentFileIds: string[],\r\n supportingLink: string\r\n}\r\n\r\nexport interface SharedMaterialEolOption_DesignedForMaintenanceAndRepair extends SharedMaterialEolOption {\r\n maintainedByUntrained: boolean,\r\n maintainedByTrained: boolean,\r\n maintenanceNotRequired: boolean,\r\n maintenanceNotPossible: boolean,\r\n consumableReplacedByUntrained: boolean,\r\n sparePartsAvailable: boolean\r\n}\r\n\r\nexport interface SharedMaterialEolOption_DesignedForDisassembly extends SharedMaterialEolOption {\r\n instructions: string\r\n}\r\n\r\nexport interface SharedMaterialEolOption_DesignedForReuse extends SharedMaterialEolOption {\r\n minimalModification: boolean,\r\n ceMark: boolean,\r\n refurbishment: boolean,\r\n remanufacturing: boolean,\r\n dedicatedCollectionSystem: boolean,\r\n emitted: boolean,\r\n industrialCascading: boolean,\r\n industrialComposter: boolean,\r\n homeComposter: boolean,\r\n biodegestion: boolean,\r\n incineration: boolean,\r\n recyclingPercent: string,\r\n leakagePercent: string\r\n}\r\n\r\nexport interface SharedMaterialEolOption_TakeBackProgram extends SharedMaterialEolOption {\r\n instructions: string\r\n}\r\n\r\nexport interface SharedMaterialEolOption_Recycling extends SharedMaterialEolOption {\r\n instructions: string\r\n}\r\n\r\nexport interface SharedMaterialEolOption_Other extends SharedMaterialEolOption {\r\n name: string\r\n}\r\n\r\nexport interface SharedMaterialCircularityData {\r\n packaging: SharedMaterialPackaging;\r\n packagingInformation: string;\r\n eolContact: string;\r\n eolOptions: SharedMaterialEolOption[];\r\n rapidlyRenewableContentRollUpPercent: string,\r\n recycledContentRollUpPercent: string;\r\n preConsumerRecyclableContentRollUpPercent: string;\r\n postConsumerRecyclableContentRollUpPercent: string;\r\n productCircularityDataSheetFileId: string | null;\r\n}\r\n\r\nexport interface SharedMaterialBomData {\r\n disclosureThreshold: string;\r\n}\r\n\r\nexport interface SharedMaterialComplianceDetailData {\r\n hasScipData: boolean;\r\n\r\n}export interface SdsDetailData {\r\n hasSdsFields: boolean;\r\n}\r\n\r\nexport interface SharedMaterialReport {\r\n reportType: ReportTypeWithContext,\r\n fileId: string;\r\n}\r\n\r\nexport interface SharedMaterialDetailRestrictedData {\r\n bomData: SharedMaterialBomData | null;\r\n complianceDetail: SharedMaterialComplianceDetailData;\r\n sustainability: SharedMaterialAllSustainabilityData | null;\r\n circularity: SharedMaterialCircularityData | null;\r\n documentFileIds: string[];\r\n reports: SharedMaterialReport[];\r\n soldItems: SoldItem[] | null;\r\n certifications: Certification[] | null;\r\n vocData: SharedMaterialVocData | null;\r\n instructions: SharedMaterialInstructions | null;\r\n lbcRedListStatus: LbcRedListStatus | null;\r\n sdsData: SdsDetailData;\r\n}\r\n\r\nexport interface SharedMaterialDetailData {\r\n sharedMaterialId: string;\r\n general: SharedMaterialGeneralData;\r\n restrictedData: SharedMaterialDetailRestrictedData | null;\r\n}\r\n\r\nexport interface SharedMaterialDetailResponse {\r\n detailData: SharedMaterialDetailData;\r\n fileTable: { [fileId: string]: FileTableEntry };\r\n libraryInventoryId: string | null;\r\n isUnClaimed: boolean;\r\n dynamicRegulationTable: Readonly<{ [regulationId: string]: DynamicRegulation }>;\r\n}\r\n\r\nexport interface SharedMaterial {\r\n coreData: SharedMaterialCoreData;\r\n detailData: SharedMaterialDetailData;\r\n}\r\n\r\nexport interface SharedMaterialsAccessControlListInfo {\r\n ownerId: string;\r\n teamOwnerIdWithAccess: string;\r\n sharedMaterialId: string;\r\n userWithAccessName: string;\r\n userWithAccessEmail: string;\r\n}\r\n\r\nexport interface AccessManagerBundle {\r\n accessControlListMap: { [sharedMaterialId: string]: SharedMaterialsAccessControlListInfo[] },\r\n numberOfActiveAccessRequests: number;\r\n}\r\n\r\nexport interface UploadResult {\r\n result: string;\r\n importId: string;\r\n}\r\n\r\nexport interface OfflineResult {\r\n result: string;\r\n import: ImportResult;\r\n}\r\n\r\nexport interface ImportResult {\r\n state: StateImportResult;\r\n}\r\n\r\nexport interface StateImportResult {\r\n currentProgressItemIndex: number;\r\n progressTotalNumItems: number;\r\n processingStage: string;\r\n}\r\n\r\nexport enum ProcessingStage {\r\n Queued = \"Queued\",\r\n UploadingInitialSpreadsheet = \"UploadingInitialSpreadsheet\",\r\n UploadingSdsFiles = \"UploadingSdsFiles\",\r\n ImportingSpreadsheetData = \"ImportingSpreadsheetData\",\r\n ImportingSpreadsheetLibrary = \"ImportingSpreadsheetLibrary\",\r\n ExtractingAndLinking = \"ExtractingAndLinking\",\r\n ProcessingSdsFiles = \"ProcessingSdsFiles\",\r\n WritingSuppliers = \"WritingSuppliers\",\r\n CompleteAndNeedsQa = \"CompleteAndNeedsQa\",\r\n TotallyComplete = \"TotallyComplete\",\r\n Failed = \"Failed\",\r\n WritingMyGreenLabProducts = \"WritingMyGreenLabProducts\",\r\n GeneratingMyGreenLabLabels = \"GeneratingMyGreenLabLabels\",\r\n Publishing = \"Publishing\",\r\n InventoryLibraryReadingMaterials = \"InventoryLibraryReadingMaterials\",\r\n InventoryLibraryWritingMaterials = \"InventoryLibraryWritingMaterials\",\r\n LookingUpSubstances = \"LookingUpSubstances\",\r\n InventoryLibraryWritingBomRowData = \"InventoryLibraryWritingBomRowData\",\r\n InventoryLibraryComputingComplianceScores = \"InventoryLibraryComputingComplianceScores\",\r\n InventoryLibraryWritingSummaryData = \"InventoryLibraryWritingSummaryData\",\r\n InventorySummaryDataLibraryProcessingRows = \"InventorySummaryDataLibraryProcessingRows\",\r\n InventorySummaryDataLibraryWritingSummaryData = \"InventorySummaryDataLibraryWritingSummaryData\",\r\n InventorySummaryDataLibraryComputingComplianceScores = \"InventorySummaryDataLibraryComputingComplianceScores\"\r\n}\r\n","import { Filter } from \"../Models/Filter\";\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * A FilterCheck is a class that checks to see if an object passes a given filter. \r\n * This class is abstract and its children should handle specific filtering (e.g. Search,\r\n * Category, etc.)\r\n*/\r\nexport abstract class FilterCheck {\r\n\r\n // ===============================================================================\r\n\r\n protected _activeFilter: Filter;\r\n\r\n // ===============================================================================\r\n\r\n constructor(activeFilter: Filter) {\r\n this._activeFilter = activeFilter;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public getActiveFilter() {\r\n return this._activeFilter;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Abstract method to be overriden by subclasses. Given an object to check, determine\r\n * if that model passes a filter.\r\n * \r\n * @param object the object to check\r\n */\r\n public abstract passesCheck(object: TData): boolean;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * A FilterCheckWithContext is a class that checks to see if an object passes a given filter. \r\n * This class is abstract and its children should handle specific filtering (e.g. Search,\r\n * Category, etc.). This class also takes in a context which helps in determining if an\r\n * object passes a filter.\r\n*/\r\nexport abstract class FilterCheckWithContext extends FilterCheck{\r\n protected _context: TContext;\r\n\r\n constructor(activeFilter: Filter, context: TContext) {\r\n super(activeFilter);\r\n this._context = context;\r\n }\r\n}\r\n","import {Filter, FilterId} from \"../../Models/Filter\";\r\nimport {FilteringManagerWithContext} from \"../../Filtering/FilteringManager\";\r\nimport {FilterCheckWithContext} from \"../../Filtering/FilterCheck\";\r\nimport {\r\n SharedMaterialCoreData,\r\n SharedMaterialsCatalogCompany,\r\n StandardComplianceScoreType\r\n} from \"../../Models/SharedMaterials/DataModel\";\r\nimport {RegulationFiterType} from \"../../Models/SharedMaterials/BrowserStateModels\";\r\n\r\n\r\nexport interface SharedMaterialFilterCheckContext {\r\n suppliersTable: { [supplierId: string]: SharedMaterialsCatalogCompany };\r\n}\r\n\r\nconst UnrestrictedFilters = new Set([\r\n FilterId.Category,\r\n FilterId.SharedMaterialsSearch,\r\n FilterId.SupplierId\r\n]);\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Abstract class for all shared material filter checks. The passes check method for this\r\n * class makes sure the shared material object being passed in can be filtered on i.e. \r\n * the current user has access to it or the active filter is an unrestricted filter.\r\n*/\r\nabstract class SharedMaterialsFilterCheck extends FilterCheckWithContext {\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * To be overriden by subclasses. This method does all the logic for checking to \r\n * see if a shared material passes a filter.\r\n * \r\n * @param object the object to compare\r\n */\r\n protected abstract passesConcreteCheck(object: SharedMaterialCoreData): boolean;\r\n\r\n // ===============================================================================\r\n\r\n public passesCheck(object: SharedMaterialCoreData) {\r\n if (!object.hasAccess && !UnrestrictedFilters.has(this._activeFilter.filterId)) {\r\n return false;\r\n }\r\n\r\n return this.passesConcreteCheck(object);\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Handles the search filter for the shared material browser.\r\n*/\r\nexport class SharedMaterialsSearchFilterCheck extends SharedMaterialsFilterCheck {\r\n\r\n // ===============================================================================\r\n\r\n private _searchTerms: string[];\r\n\r\n // ===============================================================================\r\n\r\n constructor(activeFilter: Filter, context: SharedMaterialFilterCheckContext) {\r\n super(activeFilter, context);\r\n this._searchTerms = this._activeFilter.value.split(' ').map(s => s.trim().toLowerCase()).filter(s => s.length > 0);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Gets the companay name to use for a shared material.\r\n */\r\n private getCompanyName(companyId: string, companies: { [companyId: string]: SharedMaterialsCatalogCompany }) {\r\n const company = companies[companyId] ?? null;\r\n const nameToUse = company?.name ?? \"\";\r\n\r\n return nameToUse.length === 0 ? \"Unknown\" : nameToUse;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Gets a list of searchable strings for a shared material\r\n */\r\n private getSearchableStringsFromSharedMaterial(suppliersTable: { [id: string]: SharedMaterialsCatalogCompany }, sharedMaterial: SharedMaterialCoreData) {\r\n const ret = [\r\n sharedMaterial.materialName,\r\n this.getCompanyName(sharedMaterial.companyId, suppliersTable),\r\n sharedMaterial.sku\r\n ];\r\n\r\n for (let category of sharedMaterial.categories) {\r\n ret.push(category);\r\n }\r\n\r\n return ret.map(s => s.trim().toLowerCase());\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected passesConcreteCheck(object: SharedMaterialCoreData) {\r\n const searchableStringsForSharedMaterial = this.getSearchableStringsFromSharedMaterial(this._context.suppliersTable, object);\r\n return searchableStringsForSharedMaterial.some(s => this._searchTerms.every(st => s.indexOf(st) !== -1));\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Handles a shared material regulation filter\r\n*/\r\nexport class SharedMaterialsRegulationFilterCheck extends SharedMaterialsFilterCheck {\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Returns true of false if a shared material passes a regulation filter.\r\n * \r\n * @param regulationFilterType the regulation type we are checking the shared material against.\r\n * @param score the compliance score the shared material has for that regualation type\r\n */\r\n private passesRegulationFilter(regulationFilterType: RegulationFiterType, score: StandardComplianceScoreType | null) {\r\n const isCompliant = regulationFilterType === RegulationFiterType.Compliant\r\n\r\n return (\r\n // Restricted and no data will have a score of null. If the filter is not looking for compliant, we allow all shared materials that \r\n // have a score of null or unknown to pass.\r\n (!isCompliant && (score !== StandardComplianceScoreType.Compliant && score !== StandardComplianceScoreType.NonCompliant)) ||\r\n (isCompliant && score === StandardComplianceScoreType.Compliant)\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Based on the filter value as a regulations filter type, this method returns true of false if the shared materials passes that\r\n * regulation filter.\r\n */\r\n private applyRegulationFilter(activeFilter: Filter, sharedMaterial: SharedMaterialCoreData): boolean {\r\n const score = sharedMaterial.regulationIdToComplianceScoreMap[activeFilter.filterParameter ?? \"\"] ?? null;\r\n\r\n return this.passesRegulationFilter(activeFilter.value as RegulationFiterType, score);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected passesConcreteCheck(object: SharedMaterialCoreData) {\r\n return this.applyRegulationFilter(this._activeFilter, object);\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Handles a shared material category filter\r\n*/\r\nexport class SharedMaterialsCategoryFilterCheck extends SharedMaterialsFilterCheck {\r\n\r\n // ===============================================================================\r\n\r\n protected passesConcreteCheck(object: SharedMaterialCoreData) {\r\n return object.categories.some(c => c.toLowerCase().trim() === this._activeFilter.value.toLowerCase().trim());\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Handles a shared material sds filter\r\n*/\r\nexport class SharedMaterialsSdsFilterCheck extends SharedMaterialsFilterCheck {\r\n\r\n // ===============================================================================\r\n\r\n protected passesConcreteCheck(object: SharedMaterialCoreData) {\r\n const valueToCompare = object.hasSdsStatus ? \"yes\" : \"no\";\r\n return valueToCompare.toLowerCase().trim() === this._activeFilter.value.toLowerCase().trim();\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Handles a shared material supplier filter\r\n*/\r\nexport class SharedMaterialsSupplierIdFilterCheck extends SharedMaterialsFilterCheck {\r\n\r\n // ===============================================================================\r\n\r\n protected passesConcreteCheck(object: SharedMaterialCoreData) {\r\n return object.companyId === this._activeFilter.value.toLowerCase().trim();\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Concrete class for all shared materials filtering operations.\r\n*/\r\nexport class SharedMaterialsFilteringManager extends FilteringManagerWithContext {\r\n protected filterCheckFactory(activeFilter: Filter, context: SharedMaterialFilterCheckContext) {\r\n switch (activeFilter.filterId) {\r\n case FilterId.SharedMaterialsSearch:\r\n return new SharedMaterialsSearchFilterCheck(activeFilter, context);\r\n case FilterId.Category:\r\n return new SharedMaterialsCategoryFilterCheck(activeFilter, context);\r\n case FilterId.Sds:\r\n return new SharedMaterialsSdsFilterCheck(activeFilter, context);\r\n case FilterId.SupplierId:\r\n return new SharedMaterialsSupplierIdFilterCheck(activeFilter, context);\r\n case FilterId.SharedMaterialsCompliance:\r\n return new SharedMaterialsRegulationFilterCheck(activeFilter, context);\r\n default:\r\n throw new Error(\"Unknown Shared Material Filter Id: \" + activeFilter.filterId);\r\n }\r\n }\r\n}\r\n","import { Action, AnyAction, Reducer } from 'redux';\r\nimport { ApplicationState, AppThunkAction, AppThunkActionAsync } from './../../';\r\nimport * as BrowserStateModels from './../../Models/SharedMaterials/BrowserStateModels';\r\nimport * as Models from './../../Models/SharedMaterials/DataModel';\r\nimport { ToxnotServiceClient } from './../../ToxnotServiceClient';\r\nimport '../../../utilities/Utilities';\r\nimport { IStringLocalizer } from '../../../utilities/IStringLocalizer';\r\nimport { AppServices } from '../../../AppServices';\r\nimport { SharedMaterialFilterCheckContext, SharedMaterialsFilteringManager } from './SharedMaterialFiltering';\r\nimport { Filter, FilterId } from '../../Models/Filter';\r\nimport { SurveyEditorCreateNewSurveyRequestData } from '../../Models/Api/SurveyEditorCreateNewSurveyRequestModel';\r\nimport * as SurveyStateController from '../../../store/StateControllers/Survey/SurveyStateController';\r\nimport { SharedMaterialCoreData } from './../../Models/SharedMaterials/DataModel';\r\nimport { SurveyState } from '../../Models/Surveys/SurveyDataModel';\r\nimport { ResultType } from '../../Models/Api/ApiResponse';\r\nimport { DynamicRegulation } from \"../../Models/Compliance/DynamicRegulation\";\r\nimport { FilterMenu, SortDirectionType } from \"./../../Models/SharedMaterials/BrowserStateModels\";\r\nimport { SharedMaterialsCatalogRequest } from '../../Models/Api/SharedMaterials/SharedMaterialsCatalogResult';\r\n\r\nexport type SharedMaterialDataModelType = Models.SharedMaterialCoreData | Models.SharedMaterialsCatalogCompany;\r\n\r\nexport const rowPerPageValue: number = 50;\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// State definition\r\n//\r\n\r\nexport enum AddToLibraryState {\r\n Default,\r\n Adding,\r\n Added,\r\n Failed\r\n}\r\n\r\nexport enum SharedMaterialDetailStatus {\r\n Loading,\r\n NotFound,\r\n Found\r\n}\r\n\r\nexport interface BrowserState {\r\n sortContext: BrowserStateModels.SortContext;\r\n activeFilters: Filter[];\r\n filteredSharedMaterialsCoreData: Models.SharedMaterialCoreData[];\r\n browserRowModels: SharedMaterialDataModelType[],\r\n filterMenus: BrowserStateModels.FilterMenu[];\r\n currentlySelectedSharedMaterialIds: { [id: string]: string };\r\n searchMode: BrowserStateModels.BrowserSearchMode;\r\n}\r\n\r\ninterface SpecificBrowserStateData {\r\n filteredSharedMaterialsCoreData: Models.SharedMaterialCoreData[];\r\n filterMenus: BrowserStateModels.FilterMenu[];\r\n browserRowModels: SharedMaterialDataModelType[];\r\n}\r\n\r\nexport interface SharedMaterialDetailState {\r\n status: SharedMaterialDetailStatus;\r\n detailBundle: Models.SharedMaterialDetailResponse | null;\r\n collapsedSections: string[];\r\n addingState: AddToLibraryState;\r\n isSlidingDrawerOpen: boolean;\r\n isSlidingDrawerDataLoaded: boolean;\r\n isSlidingDrawerDataError: boolean;\r\n isSendingSurveys: boolean;\r\n isSendingSurveysError: boolean;\r\n isSendingSurveysSuccess: boolean;\r\n isSnapshotSurveyStateSaved: boolean;\r\n snapshotSurveyState: SurveyState\r\n}\r\n\r\nexport interface RequestState {\r\n state: BrowserStateModels.RequestState;\r\n}\r\n\r\nexport interface CurrentlySelectedSupplierState {\r\n isLoading: boolean;\r\n supplier: Models.SharedMaterialsFullCompany | null;\r\n}\r\n\r\nexport interface SharedMaterialsState {\r\n isLoadingCatalog: boolean;\r\n sharedMaterialsCoreData: SharedMaterialDataModelType[];\r\n sharedMaterialsCoreDataMap: { [sharedMaterialId: string]: Models.SharedMaterialCoreData };\r\n totalNumberOfCatalog: number;\r\n currentPage: number;\r\n homeBrowserState: BrowserState;\r\n supplierBrowserState: BrowserState;\r\n sharedMaterialDetailState: SharedMaterialDetailState;\r\n requestState: RequestState | null;\r\n currentlySelectedSupplierState: CurrentlySelectedSupplierState;\r\n hasSeenExchangeFirstRunExperience: boolean;\r\n dynamicRegulationTable: Readonly<{ [regulationId: string]: DynamicRegulation }>;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action definitions\r\n//\r\n\r\nexport enum BrowserEndpoint {\r\n Home,\r\n Supplier\r\n}\r\n\r\nconst RequestSharedMaterialsCompaniesDataValue = \"REQUEST_SHARED_MATERIALS_COMPANIES_DATA\";\r\nconst ReceiveSharedMaterialsCompaniesDataValue = \"RECEIVE_SHARED_MATERIALS_COMPANIES_DATA\";\r\n\r\ninterface RequestSharedMaterialsCompaniesDataAction {\r\n type: typeof RequestSharedMaterialsCompaniesDataValue;\r\n}\r\n\r\ninterface ReceiveSharedMaterialsCompaniesDataAction {\r\n type: typeof ReceiveSharedMaterialsCompaniesDataValue;\r\n sharedMaterialsCoreData: Models.SharedMaterialsCatalogCompany[];\r\n totalNumberOfCatalog: number;\r\n currentPage: number;\r\n}\r\n\r\nconst RequestSharedMaterialsCoreDataValue = \"REQUEST_SHARED_MATERIALS_CORE_DATA\";\r\ntype RequestSharedMaterialsCoreDataType = typeof RequestSharedMaterialsCoreDataValue;\r\n\r\ninterface RequestSharedMaterialsCoreDataAction {\r\n type: RequestSharedMaterialsCoreDataType;\r\n}\r\n\r\nconst ReceiveSharedMaterialsCoreDataValue = \"RECEIVE_SHARED_MATERIALS_CORE_DATA\";\r\ntype ReceiveSharedMaterialsCoreDataType = typeof ReceiveSharedMaterialsCoreDataValue;\r\n\r\ninterface ReceiveSharedMaterialsCoreDataAction {\r\n type: ReceiveSharedMaterialsCoreDataType;\r\n sharedMaterialsCoreData: SharedMaterialDataModelType[]\r\n sharedMaterialsCoreDataMap: { [sharedMaterialId: string]: Models.SharedMaterialCoreData };\r\n allSharedMaterialsSuppliers: { [supplierId: string]: Models.SharedMaterialsCatalogCompany };\r\n specificHomeBrowserStateData: SpecificBrowserStateData;\r\n specificSupplierBrowserStateData: SpecificBrowserStateData;\r\n dynamicRegulationTable: Readonly<{ [regulationId: string]: DynamicRegulation }>;\r\n totalNumberOfCatalog: number;\r\n currentPage: number;\r\n categories: string[];\r\n}\r\n\r\n\r\nconst SetSortValue = \"SET_SORT\";\r\ntype SetSortType = typeof SetSortValue;\r\n\r\ninterface SetSortAction {\r\n type: SetSortType;\r\n browserEndpoint: BrowserEndpoint;\r\n sortContext: BrowserStateModels.SortContext;\r\n filteredSharedMaterialsCoreData: Models.SharedMaterialCoreData[];\r\n browserRows: SharedMaterialDataModelType[];\r\n}\r\n\r\nconst FilterActionValue = \"FILTER_ACTION\";\r\ntype FilterActionType = typeof FilterActionValue;\r\n\r\ninterface FilterAction {\r\n type: FilterActionType;\r\n browserEndpoint: BrowserEndpoint;\r\n activeFilters: Filter[];\r\n filteredSharedMaterialsCoreData: Models.SharedMaterialCoreData[];\r\n browserRows: SharedMaterialDataModelType[];\r\n}\r\n\r\nconst UpdateFilterMenusValue = \"UPDATE_FILTER_MENUS\";\r\ntype UpdateFilterMenusType = typeof UpdateFilterMenusValue;\r\n\r\ninterface UpdateFilterMenusAction {\r\n type: UpdateFilterMenusType;\r\n filterMenus: BrowserStateModels.FilterMenu[];\r\n browserEndpoint: BrowserEndpoint;\r\n}\r\n\r\nconst UpdateDetailStateValue = \"UPDATE_DETAIL_STATE\";\r\ntype UpdateDetailStateType = typeof UpdateDetailStateValue;\r\n\r\ninterface UpdateDetailStateAction {\r\n type: UpdateDetailStateType\r\n value: Partial;\r\n}\r\n\r\nconst UpdateRequestStateValue = \"UPDATE_REQUEST_STATE\";\r\ntype UpdateRequestStateType = typeof UpdateRequestStateValue;\r\n\r\ninterface UpdateRequestStateAction {\r\n type: UpdateRequestStateType\r\n requestState: BrowserStateModels.RequestState | null;\r\n}\r\n\r\nconst RequestSharedMaterialDetailValue = \"REQUEST_SHARED_MATERIAL_DETAIL\";\r\ntype RequestSharedMaterialDetailType = typeof RequestSharedMaterialDetailValue;\r\n\r\ninterface RequestSharedMaterialDetailAction {\r\n type: RequestSharedMaterialDetailType;\r\n}\r\n\r\nconst ReceiveSharedMaterialDetailValue = \"RECEIVE_SHARED_MATERIAL_DETAIL\";\r\ntype ReceiveSharedMaterialDetailType = typeof ReceiveSharedMaterialDetailValue;\r\n\r\ninterface ReceiveSharedMaterialDetailAction {\r\n type: ReceiveSharedMaterialDetailType;\r\n detailBundle: Models.SharedMaterialDetailResponse;\r\n}\r\n\r\nconst UpdateDetailDataSectionsValue = \"UPDATE_DETAIL_DATA_SECTIONS\";\r\ntype UpdateDetailDataSectionsType = typeof UpdateDetailDataSectionsValue;\r\n\r\ninterface UpdateDetailDataSectionsAction {\r\n type: UpdateDetailDataSectionsType;\r\n collapsedSections: string[];\r\n}\r\n\r\nconst UpdateSelectedSharedMaterialsValue = \"UPDATE_SELECTED_SHARED_MATERIALS\";\r\ntype UpdateSelectedSharedMaterialsType = typeof UpdateSelectedSharedMaterialsValue;\r\n\r\ninterface UpdateSelectedSharedMaterialsAction {\r\n type: UpdateSelectedSharedMaterialsType;\r\n selectedMaterialIds: { [id: string]: string };\r\n}\r\n\r\nconst RequestSupplierWithOwnerIdValue = \"REQUEST_SUPPLIER_WITH_OWNER_ID\";\r\n\r\ninterface RequestSupplierWithOwnerIdAction {\r\n type: typeof RequestSupplierWithOwnerIdValue;\r\n}\r\n\r\nconst ReceiveSupplierWithOwnerIdValue = \"RECEIVE_SUPPLIER_WITH_OWNER_ID\";\r\n\r\ninterface ReceiveSupplierWithOwnerIdAction {\r\n type: typeof ReceiveSupplierWithOwnerIdValue;\r\n supplier: Models.SharedMaterialsFullCompany;\r\n}\r\n\r\nconst AddToLibraryValue = \"ADD_TO_LIBRARY\";\r\n\r\ninterface AddToLibraryAction {\r\n type: typeof AddToLibraryValue;\r\n libraryInventoryId: string | null;\r\n state: AddToLibraryState;\r\n}\r\n\r\nconst SetHasSeenExchangeFirstRunExperienceActionTypeValue = \"SET_HAS_SEEN_EXCHANGE_FIRST_RUN_EXPERIENCE\";\r\ntype SetHasSeenExchangeFirstRunExperienceActionType = typeof SetHasSeenExchangeFirstRunExperienceActionTypeValue;\r\n\r\ninterface SetHasSeenExchangeFirstRunExperienceAction {\r\n type: SetHasSeenExchangeFirstRunExperienceActionType;\r\n hasSeenExchangeFirstRunExperience: boolean;\r\n}\r\n\r\nconst SetSearchModeValue = \"SET_SEARCH_MODE\";\r\n\r\ninterface SetSearchModeAction {\r\n type: typeof SetSearchModeValue;\r\n searchMode: BrowserStateModels.BrowserSearchMode;\r\n newSortContext: BrowserStateModels.SortContext | null; // null means leave it the same as it already is; non-null, then set it to this value\r\n}\r\n\r\nconst ClearDetailStateValue = \"CLEAR_DETAIL_STATE\";\r\n\r\ninterface ClearDetailStateAction {\r\n type: typeof ClearDetailStateValue;\r\n}\r\n\r\nconst SetSharedMaterialDetailStatusValue = \"SET_SHARED_MATERIAL_DETAIL_STATUS\";\r\n\r\ninterface SetSharedMaterialDetailStatusAction {\r\n type: typeof SetSharedMaterialDetailStatusValue;\r\n status: SharedMaterialDetailStatus;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Implementation\r\n//\r\n\r\n// ===============================================================================\r\n\r\nfunction getDefaultBrowserState(): BrowserState {\r\n return {\r\n sortContext: {\r\n sortType: BrowserStateModels.SortTypes.Featured,\r\n sortDirection: BrowserStateModels.SortDirectionType.Ascending\r\n },\r\n filterMenus: [],\r\n activeFilters: [],\r\n filteredSharedMaterialsCoreData: [],\r\n currentlySelectedSharedMaterialIds: {},\r\n browserRowModels: [],\r\n searchMode: BrowserStateModels.BrowserSearchMode.Materials,\r\n };\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction shouldIncludeSupplierRow(sortContext: BrowserStateModels.SortContext, activeFilters: BrowserStateModels.ActiveFilter[]) {\r\n const supplierFilters = activeFilters.filter(f => f.filterId === FilterId.SupplierId);\r\n\r\n return ((supplierFilters.length !== 1) && (sortContext.sortType === BrowserStateModels.SortTypes.SupplierName));\r\n}\r\n\r\n// ===============================================================================\r\n\r\n\r\nfunction createMapFromSupplierList(suppliers: Models.SharedMaterialsCatalogCompany[]) {\r\n const returnMap: { [supplierId: string]: Models.SharedMaterialsCatalogCompany } = {};\r\n\r\n for (let supplier of suppliers) {\r\n returnMap[supplier.companyId] = supplier;\r\n }\r\n\r\n return returnMap;\r\n}\r\n\r\n\r\n// ===============================================================================\r\n\r\nfunction buildComplianceFilter(title: string, filterParameter: string): FilterMenu {\r\n return {\r\n filterId: title,\r\n title: title,\r\n values: [\r\n BrowserStateModels.RegulationFiterType.Compliant, BrowserStateModels.RegulationFiterType.PossiblyCompliant\r\n ],\r\n expanded: true,\r\n filterParameter: filterParameter\r\n };\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction getFilterMenusForSharedMaterials(sharedMaterials: Models.SharedMaterialCoreData[], dynRegs: { [regulationId: string]: DynamicRegulation }, localizer: IStringLocalizer, categories: string[]): BrowserStateModels.FilterMenu[] {\r\n let menuCategory: FilterMenu[] = [\r\n {\r\n filterId: FilterId.Category,\r\n title: localizer.localizeString(\"Category\"),\r\n values: categories || [],\r\n expanded: true,\r\n filterParameter: null\r\n }\r\n ];\r\n\r\n let menuHasSDS: FilterMenu[] = [\r\n {\r\n filterId: FilterId.Sds,\r\n title: localizer.localizeString(\"Has SDS\"),\r\n values: [\r\n localizer.localizeString(\"Yes\"), localizer.localizeString(\"No\"),\r\n ],\r\n expanded: true,\r\n filterParameter: null\r\n }\r\n ];\r\n\r\n let dynRegComplFilter: FilterMenu[] = [];\r\n\r\n const distinctRegIds = Object.keys(dynRegs);\r\n\r\n for (let distinctRegId of distinctRegIds) {\r\n dynRegComplFilter.push(buildComplianceFilter(dynRegs[distinctRegId]?.config.name ?? \"Unknown Regulation\", distinctRegId));\r\n }\r\n\r\n return menuCategory.concat(dynRegComplFilter, menuHasSDS);\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction getCompanyName(companyId: string, companies: { [teamOwnerId: string]: Models.SharedMaterialsCatalogCompany }) {\r\n const company = companies[companyId] ?? null;\r\n const nameToUse = company?.name ?? \"\";\r\n\r\n return nameToUse.length === 0 ? \"Unknown\" : nameToUse;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction applyActiveFilters(\r\n suppliersTable: { [id: string]: Models.SharedMaterialsCatalogCompany },\r\n allSharedMaterials: Models.SharedMaterialCoreData[],\r\n activeFilters: Filter[]\r\n): Models.SharedMaterialCoreData[] {\r\n\r\n const filteringManager = new SharedMaterialsFilteringManager();\r\n\r\n const context: SharedMaterialFilterCheckContext = {\r\n suppliersTable: suppliersTable\r\n };\r\n\r\n return filteringManager.getFilteredArray(allSharedMaterials, context, activeFilters);\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction sortSharedMaterials(suppliers: { [teamOwnerId: string]: Models.SharedMaterialsCatalogCompany }, sharedMaterials: Models.SharedMaterialCoreData[], sortContext: BrowserStateModels.SortContext) {\r\n const getStringValue = (data: Models.SharedMaterialCoreData, sortType: BrowserStateModels.SortTypes) => {\r\n switch (sortType) {\r\n case BrowserStateModels.SortTypes.PassportName:\r\n return data.materialName;\r\n case BrowserStateModels.SortTypes.SupplierName:\r\n return getCompanyName(data.ownerId, suppliers);\r\n case BrowserStateModels.SortTypes.Category:\r\n return data.categories.join(\", \");\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n // current priorities:\r\n // photo is #1\r\n // company name is #2\r\n // any number of categories is #3\r\n const getFeaturedBucketValue = (data: Models.SharedMaterialCoreData) => {\r\n const hasPhotoId = data.materialPhotoFileId !== null;\r\n const hasCompanyName = getStringValue(data, BrowserStateModels.SortTypes.SupplierName) !== \"\";\r\n const hasSomeCategories = data.categories[0] !== \"Uncategorized\";\r\n\r\n // bucket 0: has everything\r\n if (hasPhotoId && hasCompanyName && hasSomeCategories) {\r\n return 0;\r\n }\r\n // bucket 1: has photo and company name, no categories\r\n if (hasPhotoId && hasCompanyName) {\r\n return 1;\r\n }\r\n // bucket 2: has photo and categories, no company name\r\n if (hasPhotoId && hasSomeCategories) {\r\n return 2;\r\n }\r\n // bucket 3: has categories and company name, no photo\r\n if (hasCompanyName && hasSomeCategories) {\r\n return 3;\r\n }\r\n // bucket 4: has photo\r\n if (hasPhotoId) {\r\n return 4;\r\n }\r\n // bucket 5: has company\r\n if (hasCompanyName) {\r\n return 5;\r\n }\r\n // bucket 6: has categories\r\n if (hasSomeCategories) {\r\n return 6;\r\n }\r\n\r\n // arbitrary large number for \"this has nothing\"\r\n return Number.MAX_SAFE_INTEGER;\r\n }\r\n\r\n // sort function used for the \"featured\" sort option\r\n const featuredSort = (a: Models.SharedMaterialCoreData, b: Models.SharedMaterialCoreData) => {\r\n const a_bucketValue = getFeaturedBucketValue(a);\r\n const b_bucketValue = getFeaturedBucketValue(b);\r\n\r\n if (a_bucketValue < b_bucketValue) {\r\n return -1;\r\n }\r\n else if (a_bucketValue > b_bucketValue) {\r\n return 1;\r\n }\r\n else {\r\n return a.materialName.localeCompare(b.materialName);\r\n }\r\n }\r\n\r\n // sort function used for any column option (supplier name, passport name, category)\r\n const columnSort = (a: Models.SharedMaterialCoreData, b: Models.SharedMaterialCoreData) => {\r\n const v_a = getStringValue(a, sortContext.sortType);\r\n const v_b = getStringValue(b, sortContext.sortType);\r\n let i = 0;\r\n\r\n if (v_a !== null && v_b !== null) {\r\n i = v_a.localeCompare(v_b);\r\n\r\n if (i === 0) {\r\n // break tie with ownerId\r\n i = a.ownerId.localeCompare(b.ownerId);\r\n\r\n // if same supplier, sort by material name\r\n if (i === 0) {\r\n i = a.materialName.localeCompare(b.materialName);\r\n }\r\n }\r\n }\r\n\r\n return sortContext.sortDirection === BrowserStateModels.SortDirectionType.Ascending ? i : -i;\r\n }\r\n\r\n const newArray = [...sharedMaterials];\r\n newArray.sort(sortContext.sortType === BrowserStateModels.SortTypes.Featured ? featuredSort : columnSort);\r\n return newArray;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction createAllSharedMaterialsCoreDataMap(allSharedMaterials: Models.SharedMaterialCoreData[]) {\r\n const map: { [sharedMaterialId: string]: Models.SharedMaterialCoreData } = {};\r\n\r\n for (let material of allSharedMaterials) {\r\n map[material.sharedMaterialId] = material;\r\n }\r\n\r\n return map;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action creators\r\n//\r\n\r\ntype KnownAction =\r\n RequestSharedMaterialsCoreDataAction |\r\n ReceiveSharedMaterialsCoreDataAction |\r\n FilterAction |\r\n SetSortAction |\r\n UpdateFilterMenusAction |\r\n RequestSharedMaterialDetailAction |\r\n ReceiveSharedMaterialDetailAction |\r\n UpdateDetailDataSectionsAction |\r\n UpdateRequestStateAction |\r\n UpdateSelectedSharedMaterialsAction |\r\n RequestSupplierWithOwnerIdAction |\r\n ReceiveSupplierWithOwnerIdAction |\r\n AddToLibraryAction |\r\n SetHasSeenExchangeFirstRunExperienceAction |\r\n SetSearchModeAction |\r\n ClearDetailStateAction |\r\n SetSharedMaterialDetailStatusAction |\r\n UpdateDetailStateAction |\r\n SurveyStateController.SurveySetSurveyRequest |\r\n SurveyStateController.SurveySetSurveyMetadata |\r\n RequestSharedMaterialsCompaniesDataAction | \r\n ReceiveSharedMaterialsCompaniesDataAction;\r\n\r\n// Service Layer API Client.\r\nconst toxnotServiceClient = new ToxnotServiceClient();\r\n\r\nfunction createBrowserRowModels(\r\n supplierMap: { [id: string]: Models.SharedMaterialsCatalogCompany },\r\n searchMode: BrowserStateModels.BrowserSearchMode,\r\n filteredSharedMaterialsCoreData: Models.SharedMaterialCoreData[],\r\n sortContext: BrowserStateModels.SortContext,\r\n activeFilters: BrowserStateModels.ActiveFilter[]\r\n) {\r\n const rowModelsToReturn: SharedMaterialDataModelType[] = [];\r\n\r\n if (searchMode === BrowserStateModels.BrowserSearchMode.Companies) {\r\n rowModelsToReturn.push(...Object.values(supplierMap));\r\n }\r\n\r\n if (searchMode !== BrowserStateModels.BrowserSearchMode.Companies) {\r\n rowModelsToReturn.push(...filteredSharedMaterialsCoreData);\r\n }\r\n\r\n return rowModelsToReturn;\r\n}\r\n\r\nfunction getComputedDataForBrowserState(\r\n targetBrowserState: BrowserState,\r\n supplierMap: { [id: string]: Models.SharedMaterialsCatalogCompany },\r\n materials: Models.SharedMaterialCoreData[],\r\n dynRegs: { [regulationId: string]: DynamicRegulation },\r\n localizer: IStringLocalizer,\r\n categories: string[],\r\n): SpecificBrowserStateData {\r\n let filteredSharedMaterialsCoreData = applyActiveFilters(supplierMap, materials, targetBrowserState.activeFilters);\r\n\r\n filteredSharedMaterialsCoreData = sortSharedMaterials(supplierMap, filteredSharedMaterialsCoreData, targetBrowserState.sortContext);\r\n\r\n const browserRowModels = createBrowserRowModels(supplierMap, targetBrowserState.searchMode, materials, targetBrowserState.sortContext, targetBrowserState.activeFilters);\r\n\r\n const filterMenus = getFilterMenusForSharedMaterials(materials, dynRegs, localizer, categories);\r\n\r\n return {\r\n filteredSharedMaterialsCoreData: filteredSharedMaterialsCoreData,\r\n filterMenus: filterMenus,\r\n browserRowModels: browserRowModels\r\n }\r\n}\r\n\r\n\r\nasync function dispatchGetAllSharedSharedMaterialsAsync(state: ApplicationState, localizer: IStringLocalizer, \r\n dispatch: (action: KnownAction) => void, \r\n accessCode: string | null = null, \r\n pageNumber: number = 0, \r\n rowPerPage: number = rowPerPageValue, \r\n searchText: string = \"\", \r\n selectedFilters: { [filterId: string]: string[]},\r\n sortType: number = BrowserStateModels.SortTypes.PassportName, \r\n sortDirection: SortDirectionType = SortDirectionType.Ascending,\r\n companyId: string | null = null,\r\n sharedMaterialId: string | null = null,\r\n ) {\r\n if (!state || !state.appServices || !state.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n let filterCategories = \"\";\r\n\r\n if (selectedFilters?.Category?.length > 0) {\r\n filterCategories = selectedFilters?.Category.join(\",\");\r\n }\r\n\r\n // Prepare additional filters\r\n const joinOrNull = (arr: string[] | undefined): string | null => \r\n arr && arr.length > 0 ? arr.join(\",\") : null;\r\n \r\n const additionalFilters = {\r\n score_cal65: joinOrNull(selectedFilters['California Proposition 65']),\r\n score_cm: joinOrNull(selectedFilters['Conflict Minerals']),\r\n score_reach: joinOrNull(selectedFilters['EU REACH - Candidate List & SCIP']),\r\n score_reach_auth: joinOrNull(selectedFilters['REACH Authorisation List']),\r\n score_rohs: joinOrNull(selectedFilters['EU RoHS']),\r\n score_reach_auth_v2: joinOrNull(selectedFilters['EU REACH Authorisation and Restriction'])\r\n };\r\n\r\n // While waiting for response, enter loading state\r\n dispatch({ type: RequestSharedMaterialsCoreDataValue });\r\n\r\n const isSortAcceding = sortDirection == SortDirectionType.Ascending ? true : false;\r\n\r\n let hasSds = null;\r\n if (selectedFilters?.Sds && selectedFilters?.Sds.length == 1)\r\n hasSds = selectedFilters?.Sds[0] == \"Yes\" ? true : false;\r\n\r\n const request: SharedMaterialsCatalogRequest = {\r\n accessCode: accessCode || null,\r\n rowsPerPage: rowPerPage,\r\n pageIndex: pageNumber,\r\n companyId: companyId || null,\r\n searchText: searchText,\r\n categories: filterCategories,\r\n sortType: sortType,\r\n sortAscending: isSortAcceding,\r\n sharedMaterialId: sharedMaterialId || null,\r\n scoreCal65: additionalFilters.score_cal65,\r\n scoreCm: additionalFilters.score_cm,\r\n scoreReach: additionalFilters.score_reach,\r\n scoreReachAuth: additionalFilters.score_reach_auth,\r\n scoreRohs: additionalFilters.score_rohs,\r\n scoreReachAuthV2: additionalFilters.score_reach_auth_v2,\r\n hasSds: hasSds \r\n };\r\n\r\n // Call API\r\n const apiResult = await toxnotServiceClient.getAllSharedMaterialsCoreData(request);\r\n\r\n if (!apiResult.success || (apiResult.data === null)) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n const totalResult = apiResult.data.catalog.totalNumberOfMaterials;\r\n\r\n const materials = apiResult.data.catalog.materials;\r\n const categories = apiResult.data.catalog.categories;\r\n\r\n const supplierMap = {};\r\n\r\n const sharedMaterialsCoreDataMap = createAllSharedMaterialsCoreDataMap(materials);\r\n\r\n const specificHomeBrowserStateData = getComputedDataForBrowserState(state.sharedMaterialsState.homeBrowserState, supplierMap, materials, apiResult.data.dynamicRegulationTable, localizer, categories);\r\n\r\n const specificSupplierBrowserStateData = getComputedDataForBrowserState(state.sharedMaterialsState.supplierBrowserState, supplierMap, materials, apiResult.data.dynamicRegulationTable, localizer, categories);\r\n\r\n dispatch({\r\n type: ReceiveSharedMaterialsCoreDataValue,\r\n sharedMaterialsCoreData: materials,\r\n sharedMaterialsCoreDataMap: sharedMaterialsCoreDataMap,\r\n allSharedMaterialsSuppliers: {},\r\n specificHomeBrowserStateData: specificHomeBrowserStateData,\r\n specificSupplierBrowserStateData: specificSupplierBrowserStateData,\r\n dynamicRegulationTable: apiResult.data.dynamicRegulationTable,\r\n totalNumberOfCatalog: totalResult,\r\n currentPage: pageNumber,\r\n categories: categories,\r\n });\r\n}\r\n\r\nasync function dispatchGetAllSharedMaterialsCompaniesData(state: ApplicationState,\r\n dispatch: (action: KnownAction) => void,\r\n pageNumber: number = 0,\r\n rowPerPage: number = rowPerPageValue,\r\n searchText: string = \"\",\r\n sortDirection: SortDirectionType = SortDirectionType.Ascending\r\n ) {\r\n if (!state || !state.appServices || !state.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n dispatch({ type: RequestSharedMaterialsCompaniesDataValue });\r\n\r\n const isSortAcceding = sortDirection == SortDirectionType.Ascending ? true : false;\r\n\r\n const apiResult = await toxnotServiceClient.getAllSharedMaterialsCompaniesData(rowPerPage, pageNumber, searchText, isSortAcceding);\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: ReceiveSharedMaterialsCompaniesDataValue,\r\n sharedMaterialsCoreData: apiResult.data.companies,\r\n totalNumberOfCatalog: apiResult.data.totalNumberOfSharedMaterialCompanies,\r\n currentPage: pageNumber\r\n });\r\n};\r\n\r\nasync function dispatchGetSharedMaterialDetail(state: ApplicationState, sharedMaterialIdToFetch: string, dispatch: (action: KnownAction) => void, accessCode: string | null = null) {\r\n if (!state || !state.sharedMaterialsState || !state.appServices) {\r\n return;\r\n }\r\n\r\n if (state.sharedMaterialsState.sharedMaterialDetailState.detailBundle?.detailData.sharedMaterialId === sharedMaterialIdToFetch) {\r\n // the given shared material is already loaded\r\n return;\r\n }\r\n\r\n dispatch({ type: RequestSharedMaterialDetailValue });\r\n\r\n const apiResult = await toxnotServiceClient.getSharedMaterialDetail(sharedMaterialIdToFetch, accessCode);\r\n\r\n if (!apiResult.success) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n // Means the user does not have access to the shared material or the shared material no longer exists\r\n if (apiResult.data === null) {\r\n // If user is not signed in redirect to sign in page.\r\n if (state.appServices.userContext === null) {\r\n AppServices.redirectToSignInPage();\r\n return;\r\n }\r\n\r\n dispatch({ type: SetSharedMaterialDetailStatusValue, status: SharedMaterialDetailStatus.NotFound })\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: ReceiveSharedMaterialDetailValue,\r\n detailBundle: apiResult.data\r\n });\r\n}\r\n\r\nasync function dispatchGetSupplierIdsAsync(state: ApplicationState, ownerId: string, dispatch: (action: KnownAction) => void, companyId?: string) {\r\n if (!state || !state.appServices) {\r\n return;\r\n }\r\n\r\n dispatch({ type: RequestSupplierWithOwnerIdValue });\r\n\r\n const apiResult = companyId ? await toxnotServiceClient.getSharedMaterialsCompany(ownerId, companyId) : await toxnotServiceClient.getSharedMaterialsCompanyFirst(ownerId);\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatch({ type: ReceiveSupplierWithOwnerIdValue, supplier: apiResult.data })\r\n}\r\n\r\n\r\nfunction dispatchFilterAction(\r\n sharedMaterialsCoreData: SharedMaterialDataModelType[],\r\n targetBrowserState: BrowserState,\r\n newActiveFilters: Filter[],\r\n browserEndpoint: BrowserEndpoint,\r\n dispatch: (action: KnownAction) => void,\r\n state: SharedMaterialsState\r\n) {\r\n let filteredSharedMaterialsCoreData = applyActiveFilters({}, sharedMaterialsCoreData as Models.SharedMaterialCoreData[], newActiveFilters);\r\n\r\n filteredSharedMaterialsCoreData = sortSharedMaterials({}, filteredSharedMaterialsCoreData, targetBrowserState.sortContext);\r\n\r\n const newBrowserRows = createBrowserRowModels({}, targetBrowserState.searchMode, filteredSharedMaterialsCoreData, targetBrowserState.sortContext, newActiveFilters);\r\n\r\n dispatch({\r\n type: FilterActionValue,\r\n browserEndpoint: browserEndpoint,\r\n activeFilters: newActiveFilters,\r\n filteredSharedMaterialsCoreData: filteredSharedMaterialsCoreData,\r\n browserRows: newBrowserRows\r\n });\r\n}\r\n\r\nfunction getBrowserStateForBrowserEndpoint(state: SharedMaterialsState, browserEndpoint: BrowserEndpoint) {\r\n if (browserEndpoint === BrowserEndpoint.Home) {\r\n return state.homeBrowserState;\r\n }\r\n else if (browserEndpoint === BrowserEndpoint.Supplier) {\r\n return state.supplierBrowserState;\r\n }\r\n else {\r\n throw new Error(`Unknown browser endpoint: ${browserEndpoint}`);\r\n }\r\n}\r\n\r\nexport function toggleCollapsedSection(dataSectionId: string, collapsedSections: string[]) {\r\n const sectionIdIndex = collapsedSections.indexOf(dataSectionId);\r\n const containsSectionId = -1 === sectionIdIndex;\r\n if (containsSectionId) {\r\n collapsedSections.push(dataSectionId);\r\n }\r\n else {\r\n collapsedSections.splice(sectionIdIndex, 1);\r\n }\r\n}\r\n\r\nexport const actionCreators = {\r\n // All materials are loaded in everytime this is called even if they are already in memory. This is to ensure any updates to a shared material are\r\n // instantly displayed in the homescreen. Therefore, this function should only be called by the top level shared material component.\r\n // This avoids constantly loading in material when a user is navgating around. \r\n getLocalState: (): AppThunkAction => (dispatch, getState) => {\r\n return getState().sharedMaterialsState;\r\n },\r\n getPassportTemplate: (coreData: SharedMaterialCoreData, accessCode: string | null): AppThunkActionAsync => async (dispatch, getState) => {\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const metadataApiResult = await serviceClient.getDataCollectionMetadata([coreData.publicInventoryId]);\r\n const passportApiResult = await serviceClient.passportTemplateGet(coreData.sharedMaterialId, accessCode);\r\n\r\n if (!metadataApiResult.success || !metadataApiResult.data || !passportApiResult.success || !passportApiResult.data) {\r\n return dispatch({\r\n type: UpdateDetailStateValue,\r\n value: { isSlidingDrawerDataError: true }\r\n });\r\n }\r\n\r\n dispatch({\r\n type: SurveyStateController.SurveySetSurveyMetadata,\r\n value: metadataApiResult.data.surveyData\r\n });\r\n\r\n const bomQuestionnareIdToUse = passportApiResult.data.bomQuestionnaireId != null ? (metadataApiResult.data.surveyData.questionnaireTable[passportApiResult.data.bomQuestionnaireId] ? passportApiResult.data.bomQuestionnaireId : null) : null;\r\n const supplierQuestionnareIdToUse = passportApiResult.data.supplierQuestionnaireId != null ? (metadataApiResult.data.surveyData.questionnaireTable[passportApiResult.data.supplierQuestionnaireId] ? passportApiResult.data.supplierQuestionnaireId : null) : null;\r\n const attestationQuestionnareIdToUse = passportApiResult.data.attestationQuestionnaireId != null ? (metadataApiResult.data.surveyData.questionnaireTable[passportApiResult.data.attestationQuestionnaireId] ? passportApiResult.data.attestationQuestionnaireId : null) : null;\r\n\r\n // on the fly migration of legacy templates\r\n\r\n if (!passportApiResult.data.bomColumns.some(f => f.columnId === \"level\")) {\r\n passportApiResult.data.bomColumns.splice(0, 0, {\r\n columnId: \"level\",\r\n ...SurveyStateController.columnIdToDefaultColumnRequiredFlagsTable[\"level\"]\r\n });\r\n }\r\n\r\n if (!passportApiResult.data.bomColumns.some(f => f.columnId === \"part-name\")) {\r\n passportApiResult.data.bomColumns.splice(1, 0, {\r\n columnId: \"part-name\",\r\n ...SurveyStateController.columnIdToDefaultColumnRequiredFlagsTable[\"part-name\"]\r\n });\r\n }\r\n\r\n if (!passportApiResult.data.bomColumns.some(f => f.columnId === \"casrn\")) {\r\n passportApiResult.data.bomColumns.splice(2, 0, {\r\n columnId: \"casrn\",\r\n ...SurveyStateController.columnIdToDefaultColumnRequiredFlagsTable[\"casrn\"]\r\n });\r\n }\r\n\r\n if (!passportApiResult.data.bomColumns.some(f => f.columnId === \"percent-by-weight\")) {\r\n passportApiResult.data.bomColumns.splice(3, 0, {\r\n columnId: \"percent-by-weight\",\r\n ...SurveyStateController.columnIdToDefaultColumnRequiredFlagsTable[\"percent-by-weight\"]\r\n });\r\n }\r\n\r\n dispatch({\r\n type: SurveyStateController.SurveySetSurveyRequest,\r\n value: {\r\n ...passportApiResult.data,\r\n fields: passportApiResult.data.bomColumns,\r\n nativeLanguage: passportApiResult.data.nativeLanguage ?? \"en\",\r\n ccEmailList: passportApiResult.data.ccEmailList.split(\",\"),\r\n preFillBomQuestionnaireFromSummaryData: passportApiResult.data.preFillBomQuestionnaireFromSummaryData ?? false,\r\n preFillSupplierQuestionnaireFromSummaryData: passportApiResult.data.preFillSupplierQuestionnaireFromSummaryData ?? false,\r\n makeBomDataRequiredOnQuestionnaireAnswer: passportApiResult.data.makeBomDataRequiredOnQuestionnaireAnswer ?? false,\r\n includeAttestationLetter: passportApiResult.data.includeAttestationLetter ?? false\r\n }\r\n });\r\n\r\n const dataRequested = {\r\n complianceDataAsked: passportApiResult.data.dataRequested.complianceList.length > 0,\r\n documentsAsked: passportApiResult.data.dataRequested.documentsCertificationList.length > 0,\r\n customQuestionsAsked: bomQuestionnareIdToUse != null || supplierQuestionnareIdToUse != null || attestationQuestionnareIdToUse != null,\r\n };\r\n\r\n let createAndEditSurveysState = getState().createAndEditSurveysState;\r\n\r\n if (createAndEditSurveysState !== undefined) {\r\n dispatch({\r\n type: SurveyStateController.SurveySetSurveyRequest,\r\n value: {\r\n dataRequested: {\r\n ...createAndEditSurveysState.surveyRequest.dataRequested,\r\n ...dataRequested,\r\n }\r\n }\r\n });\r\n }\r\n\r\n let globalState = getState();\r\n\r\n if (!globalState.sharedMaterialsState?.sharedMaterialDetailState.isSnapshotSurveyStateSaved) {\r\n createAndEditSurveysState = getState().createAndEditSurveysState;\r\n\r\n dispatch({\r\n type: UpdateDetailStateValue,\r\n value: {\r\n snapshotSurveyState: createAndEditSurveysState,\r\n isSnapshotSurveyStateSaved: true\r\n }\r\n });\r\n }\r\n\r\n dispatch({\r\n type: UpdateDetailStateValue,\r\n value: { isSlidingDrawerDataLoaded: true }\r\n });\r\n },\r\n sendRequestInformationSurvey: (coreData: SharedMaterialCoreData, libraryInventoryId: string | null, accessCode: string | null): AppThunkActionAsync => async (dispatch, getState) => {\r\n const applicationState = getState();\r\n const surveyEditorstate = applicationState.createAndEditSurveysState;\r\n\r\n if (!surveyEditorstate) {\r\n return;\r\n }\r\n\r\n const surveyRequest = surveyEditorstate.surveyRequest;\r\n\r\n const data: SurveyEditorCreateNewSurveyRequestData = {\r\n ...surveyRequest,\r\n supplierModels: [],\r\n shouldSend: true,\r\n ...surveyRequest.dataRequested,\r\n questionnaireAnswerThatMakesBomDataRequired: surveyRequest.dataRequested.customQuestionsAsked ? surveyRequest.questionnaireAnswerThatMakesBomDataRequired ?? null : null,\r\n documentsCertificationsAskedList: surveyRequest.dataRequested.documentsAsked ? surveyRequest.dataRequested.documentsCertificationList : [],\r\n complianceDataAskedList: surveyRequest.dataRequested.complianceDataAsked ? surveyRequest.dataRequested.complianceList : [],\r\n supplierQuestionnaireId: surveyRequest.dataRequested.customQuestionsAsked ? surveyRequest.supplierQuestionnaireId : null,\r\n bomQuestionnaireId: surveyRequest.dataRequested.customQuestionsAsked ? surveyRequest.bomQuestionnaireId : null,\r\n attestationQuestionnaireId: surveyRequest.dataRequested.customQuestionsAsked ? surveyRequest.attestationQuestionnaireId : null,\r\n };\r\n\r\n dispatch({\r\n type: UpdateDetailStateValue,\r\n value: { isSendingSurveys: true, isSendingSurveysError: false, isSendingSurveysSuccess: false }\r\n });\r\n\r\n $(\"#send-survey-modal\").modal(\"show\");\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n if (libraryInventoryId === null) {\r\n dispatch({ type: AddToLibraryValue, libraryInventoryId: null, state: AddToLibraryState.Adding });\r\n\r\n const addToLibraryApiResult = await serviceClient.addSharedMaterialToLibrary(coreData.sharedMaterialId);\r\n\r\n if (!addToLibraryApiResult.data) {\r\n applicationState.appServices?.displayApiErrorMessage(applicationState.appServices.localizeString(\"Sorry, there was a problem adding to your library.\"))\r\n }\r\n\r\n dispatch({ type: AddToLibraryValue, libraryInventoryId: addToLibraryApiResult.data, state: addToLibraryApiResult.success ? AddToLibraryState.Added : AddToLibraryState.Failed });\r\n }\r\n\r\n const postApiResult = await serviceClient.passportTemplatePost(coreData.sharedMaterialId, accessCode, data);\r\n\r\n if (postApiResult.result !== ResultType.Ok) {\r\n dispatch({\r\n type: UpdateDetailStateValue,\r\n value: { isSendingSurveysError: true }\r\n });\r\n } else {\r\n dispatch({\r\n type: UpdateDetailStateValue,\r\n value: { isSendingSurveysSuccess: true }\r\n });\r\n }\r\n\r\n dispatch({\r\n type: UpdateDetailStateValue,\r\n value: { isSendingSurveys: false }\r\n });\r\n },\r\n updateDetailStateValue: (newValue: Partial): AppThunkAction => (dispatch, getState) => {\r\n dispatch({\r\n type: UpdateDetailStateValue,\r\n value: newValue\r\n });\r\n },\r\n getAllSharedMaterialsCompaniesData: (\r\n pageNumber: number = 0,\r\n rowPerPage: number = rowPerPageValue,\r\n searchText: string = \"\",\r\n sortDirection: SortDirectionType = SortDirectionType.Ascending\r\n ): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n \r\n if (!state || !state.sharedMaterialsState || !state.appServices) {\r\n return;\r\n }\r\n\r\n dispatchGetAllSharedMaterialsCompaniesData(state, dispatch, pageNumber, rowPerPage, searchText, sortDirection) \r\n },\r\n loadSharedMaterialsIfNeeded: (localizer: IStringLocalizer, \r\n urlEncodedAccessCode: string | null = null, \r\n pageNumber: number = 0, \r\n searchText = \"\", \r\n rowPerPage: number = rowPerPageValue, \r\n selectedFilters: { [filterId: string]: string[]}, \r\n sortType: BrowserStateModels.SortTypes = BrowserStateModels.SortTypes.PassportName, \r\n sortDirection: SortDirectionType = SortDirectionType.Ascending,\r\n companyId: string | null = null,\r\n sharedMaterialId: string | null = null,\r\n\r\n ): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n dispatchGetAllSharedSharedMaterialsAsync(appState, localizer, dispatch, urlEncodedAccessCode, pageNumber, rowPerPage, searchText, selectedFilters, sortType, sortDirection, companyId, sharedMaterialId);\r\n },\r\n loadExchangeFreState: (): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n const hasSeenExchangeFirstRunExperience = (localStorage.getItem(\"has-seen-exhange-fre\") ?? \"false\") === \"true\";\r\n\r\n dispatch({\r\n type: SetHasSeenExchangeFirstRunExperienceActionTypeValue,\r\n hasSeenExchangeFirstRunExperience: hasSeenExchangeFirstRunExperience\r\n });\r\n },\r\n setHasSeenExchangeFreState: (hasSeenExchangeFirstRunExperience: boolean): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n localStorage.setItem(\"has-seen-exhange-fre\", hasSeenExchangeFirstRunExperience ? \"true\" : \"false\");\r\n\r\n dispatch({\r\n type: SetHasSeenExchangeFirstRunExperienceActionTypeValue,\r\n hasSeenExchangeFirstRunExperience: hasSeenExchangeFirstRunExperience\r\n });\r\n },\r\n toggleFilterMenu: (browserEndpoint: BrowserEndpoint, filterId: string): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n const sharedMaterialsState = appState.sharedMaterialsState;\r\n const targetBrowserState = getBrowserStateForBrowserEndpoint(sharedMaterialsState, browserEndpoint);\r\n\r\n const newFilterMenus = targetBrowserState.filterMenus.map(filterMenu => {\r\n if (filterMenu.filterId !== filterId) {\r\n return filterMenu;\r\n }\r\n else {\r\n return {\r\n ...filterMenu,\r\n expanded: !filterMenu.expanded\r\n }\r\n }\r\n });\r\n\r\n dispatch({\r\n type: UpdateFilterMenusValue,\r\n filterMenus: newFilterMenus,\r\n browserEndpoint\r\n });\r\n },\r\n activateFilter: (browserEndpoint: BrowserEndpoint, filterId: FilterId, value: string, filterParameter: string | null): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n const sharedMaterialsState = appState.sharedMaterialsState;\r\n\r\n const targetBrowserState = getBrowserStateForBrowserEndpoint(sharedMaterialsState, browserEndpoint);\r\n\r\n if (targetBrowserState === null) {\r\n return;\r\n }\r\n\r\n const newActiveFilters = targetBrowserState.activeFilters.some(f => (f.filterId === filterId) && (f.value === value))\r\n ? targetBrowserState.activeFilters\r\n : targetBrowserState.activeFilters.concat({\r\n filterId: filterId,\r\n value: value,\r\n filterParameter: filterParameter\r\n });\r\n\r\n dispatchFilterAction(sharedMaterialsState.sharedMaterialsCoreData, targetBrowserState, newActiveFilters, browserEndpoint, dispatch, sharedMaterialsState);\r\n },\r\n deactivateFilter: (browserEndpoint: BrowserEndpoint, filterIdToRemove: string, filterValueToRemove: string): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n const sharedMaterialsState = appState.sharedMaterialsState;\r\n\r\n const targetBrowserState = getBrowserStateForBrowserEndpoint(sharedMaterialsState, browserEndpoint);\r\n\r\n if (targetBrowserState === null) {\r\n return;\r\n }\r\n\r\n const newActiveFilters = targetBrowserState.activeFilters.filter(f => (f.filterId !== filterIdToRemove) || (f.value !== filterValueToRemove));\r\n\r\n dispatchFilterAction(sharedMaterialsState.sharedMaterialsCoreData, targetBrowserState, newActiveFilters, browserEndpoint, dispatch, sharedMaterialsState);\r\n },\r\n loadSharedMaterialDetail: (sharedMaterialIdToFetch: string, localizer: IStringLocalizer, accessCode: string | null = null): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n if (appState.sharedMaterialsState.sharedMaterialDetailState === null) {\r\n return;\r\n }\r\n \r\n dispatchGetSharedMaterialDetail(appState, sharedMaterialIdToFetch, dispatch, accessCode);\r\n },\r\n clearSharedMaterialDetailState: (): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n if (appState.sharedMaterialsState.sharedMaterialDetailState === null) {\r\n return;\r\n }\r\n\r\n dispatch({ type: ClearDetailStateValue });\r\n },\r\n toggleDetailDataSection: (dataSectionId: string): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n const sharedMaterialDetail = appState.sharedMaterialsState.sharedMaterialDetailState;\r\n\r\n if (sharedMaterialDetail === null) {\r\n return;\r\n }\r\n\r\n const collapsedSections = sharedMaterialDetail.collapsedSections;\r\n\r\n toggleCollapsedSection(dataSectionId, collapsedSections);\r\n\r\n dispatch({ type: UpdateDetailDataSectionsValue, collapsedSections: collapsedSections });\r\n },\r\n initializeRequest: (): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n dispatch({ type: UpdateRequestStateValue, requestState: BrowserStateModels.RequestState.Default });\r\n },\r\n requestAccessToSharedMaterials: (sharedMaterialIds: string[]): AppThunkActionAsync => async (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n if (sharedMaterialIds.length === 0) {\r\n return;\r\n }\r\n\r\n const sharedMaterialsBeingRequested = Object.values(appState.sharedMaterialsState.sharedMaterialsCoreDataMap).filter(s => sharedMaterialIds.includes(s.sharedMaterialId));\r\n\r\n // The shared materials being requested should all have the same owner and company id\r\n if ((sharedMaterialsBeingRequested.map(s => s.ownerId).distinct().length > 1) ||\r\n (sharedMaterialsBeingRequested.map(s => s.companyId).distinct().length > 1)) {\r\n throw new Error(\"Passports being requested did not have same owner or company ids\");\r\n }\r\n\r\n dispatch({ type: UpdateRequestStateValue, requestState: BrowserStateModels.RequestState.Sending });\r\n\r\n const apiResult = await toxnotServiceClient.requestAccessPermission({\r\n sharedMaterialsOwnerId: sharedMaterialsBeingRequested[0].ownerId,\r\n sharedMaterialIds: sharedMaterialIds,\r\n })\r\n\r\n dispatch({ type: UpdateRequestStateValue, requestState: apiResult.success ? BrowserStateModels.RequestState.Sent : BrowserStateModels.RequestState.FailedToSend });\r\n },\r\n contactCompany: (companyId: string, message: string, sharedMaterialId?: string): AppThunkActionAsync => async (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState || !appState.appServices) {\r\n return;\r\n }\r\n\r\n dispatch({ type: UpdateRequestStateValue, requestState: BrowserStateModels.RequestState.Sending });\r\n\r\n let ownerId = '';\r\n if (appState.sharedMaterialsState.sharedMaterialsCoreData.length > 0) {\r\n ownerId = appState.sharedMaterialsState.sharedMaterialsCoreData.filter((data) => data.companyId == companyId)[0].ownerId \r\n } else if(appState.appServices.userContext) {\r\n ownerId= appState.appServices.userContext.teamOwnerId\r\n }\r\n \r\n const apiResult = await toxnotServiceClient.contactCompany({\r\n ownerId: ownerId,\r\n companyId: companyId,\r\n message: message,\r\n sharedMaterialId: sharedMaterialId\r\n });\r\n\r\n dispatch({ type: UpdateRequestStateValue, requestState: apiResult.success ? BrowserStateModels.RequestState.Sent : BrowserStateModels.RequestState.FailedToSend });\r\n },\r\n shareMaterialByEmail: (emailAddresses: string[], message: string, sharedMaterialId: string): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n toxnotServiceClient.shareMaterialByEmail({ emailAddresses: emailAddresses, message: message, sharedMaterialId: sharedMaterialId })\r\n .then(apiResult => {\r\n dispatch({ type: UpdateRequestStateValue, requestState: apiResult.success ? BrowserStateModels.RequestState.Sent : BrowserStateModels.RequestState.FailedToSend });\r\n });\r\n\r\n dispatch({ type: UpdateRequestStateValue, requestState: BrowserStateModels.RequestState.Sending });\r\n },\r\n selectSharedMaterial: (selectedMaterialIds: {\r\n [id: string]: string;\r\n }): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n dispatch({ type: UpdateSelectedSharedMaterialsValue, selectedMaterialIds: selectedMaterialIds });\r\n },\r\n getSupplierFromIds: (ownerId: string, companyId?: string): AppThunkActionAsync => async (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n await dispatchGetSupplierIdsAsync(appState, ownerId, dispatch, companyId);\r\n },\r\n addToMyLibrary: (sharedMaterialId: string): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!(appState && appState.sharedMaterialsState && appState.sharedMaterialsState.sharedMaterialDetailState && appState.appServices)) {\r\n return;\r\n }\r\n\r\n toxnotServiceClient.addSharedMaterialToLibrary(sharedMaterialId)\r\n .then(result => {\r\n if (!result.data) {\r\n appState.appServices?.displayApiErrorMessage(appState.appServices.localizeString(\"Sorry, there was a problem adding to your library.\"))\r\n }\r\n\r\n dispatch({ type: AddToLibraryValue, libraryInventoryId: result.data, state: result.success ? AddToLibraryState.Added : AddToLibraryState.Failed });\r\n });\r\n\r\n dispatch({ type: AddToLibraryValue, libraryInventoryId: null, state: AddToLibraryState.Adding });\r\n },\r\n goToSourceMaterial: (publicInventoryId: string): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!(appState && appState.sharedMaterialsState && appState.sharedMaterialsState.sharedMaterialDetailState && appState.appServices)) {\r\n return;\r\n }\r\n\r\n toxnotServiceClient.getSourceInventoryIdForPublicInventoryId(publicInventoryId)\r\n .then(result => {\r\n if (!result.data) {\r\n appState.appServices?.displayApiErrorMessage(appState.appServices.localizeString(\"Sorry, there was a problem finding the source Material.\"))\r\n }\r\n else {\r\n location.href = \"/Data/Inventory?inventoryId=\" + encodeURIComponent(result.data);\r\n }\r\n });\r\n },\r\n setSearchMode: (searchMode: BrowserStateModels.BrowserSearchMode): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsState) {\r\n return;\r\n }\r\n\r\n let newSortContext: BrowserStateModels.SortContext | null = null;\r\n\r\n if ((searchMode === BrowserStateModels.BrowserSearchMode.Companies) && (appState.sharedMaterialsState.homeBrowserState.sortContext.sortType !== BrowserStateModels.SortTypes.SupplierName)) {\r\n newSortContext = {\r\n sortType: BrowserStateModels.SortTypes.SupplierName,\r\n sortDirection: BrowserStateModels.SortDirectionType.Ascending\r\n };\r\n }\r\n\r\n dispatch({\r\n type: SetSearchModeValue,\r\n searchMode: searchMode,\r\n newSortContext\r\n });\r\n }\r\n};\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Reducer\r\n//\r\n\r\nconst defaultCurrentlySelectedSupplier: CurrentlySelectedSupplierState = {\r\n isLoading: true,\r\n supplier: null\r\n};\r\n\r\nconst defaultSharedMaterialDetailState: SharedMaterialDetailState = {\r\n status: SharedMaterialDetailStatus.Loading,\r\n detailBundle: null,\r\n collapsedSections: [],\r\n addingState: AddToLibraryState.Default,\r\n isSlidingDrawerOpen: false,\r\n isSlidingDrawerDataLoaded: false,\r\n isSlidingDrawerDataError: false,\r\n isSendingSurveys: false,\r\n isSendingSurveysError: false,\r\n isSendingSurveysSuccess: false,\r\n isSnapshotSurveyStateSaved: false,\r\n snapshotSurveyState: SurveyStateController.getInitialState(\"en\", true)\r\n}\r\n\r\nconst initialState: SharedMaterialsState = {\r\n isLoadingCatalog: true,\r\n sharedMaterialsCoreData: [],\r\n sharedMaterialsCoreDataMap: {},\r\n totalNumberOfCatalog: 0,\r\n currentPage: 0,\r\n homeBrowserState: { ...getDefaultBrowserState() },\r\n supplierBrowserState: {\r\n ...getDefaultBrowserState(),\r\n sortContext: {\r\n sortType: BrowserStateModels.SortTypes.PassportName,\r\n sortDirection: BrowserStateModels.SortDirectionType.Ascending\r\n }\r\n },\r\n sharedMaterialDetailState: {\r\n ...defaultSharedMaterialDetailState\r\n },\r\n requestState: null,\r\n currentlySelectedSupplierState: defaultCurrentlySelectedSupplier,\r\n hasSeenExchangeFirstRunExperience: false,\r\n dynamicRegulationTable: {}\r\n};\r\n\r\nfunction getCopyOfTargetBrowserState(state: SharedMaterialsState, browserEndpoint: BrowserEndpoint) {\r\n if (browserEndpoint === BrowserEndpoint.Home) {\r\n return { ...state.homeBrowserState };\r\n }\r\n else if ((browserEndpoint === BrowserEndpoint.Supplier) && (state.supplierBrowserState !== null)) {\r\n return { ...state.supplierBrowserState };\r\n }\r\n else {\r\n throw new Error(`invalid browser endpoint - ${browserEndpoint}`);\r\n }\r\n}\r\n\r\nexport const reducer: Reducer = (state: SharedMaterialsState | undefined, incomingAction: Action): SharedMaterialsState => {\r\n if (state === undefined) {\r\n return initialState;\r\n }\r\n\r\n let targetBrowserState: BrowserState;\r\n\r\n switch (incomingAction.type) {\r\n case UpdateDetailStateValue:\r\n const detailStateAction = incomingAction as AnyAction;\r\n\r\n return {\r\n ...state,\r\n sharedMaterialDetailState: {\r\n ...state.sharedMaterialDetailState,\r\n ...detailStateAction.value\r\n }\r\n };\r\n\r\n case RequestSharedMaterialsCoreDataValue:\r\n return {\r\n ...state,\r\n isLoadingCatalog: true,\r\n sharedMaterialsCoreData: [],\r\n };\r\n\r\n case ReceiveSharedMaterialsCoreDataValue:\r\n const receiveMaterialsCoreDataAction = incomingAction as ReceiveSharedMaterialsCoreDataAction;\r\n return {\r\n ...state,\r\n isLoadingCatalog: false,\r\n sharedMaterialsCoreData: receiveMaterialsCoreDataAction.sharedMaterialsCoreData,\r\n sharedMaterialsCoreDataMap: receiveMaterialsCoreDataAction.sharedMaterialsCoreDataMap,\r\n totalNumberOfCatalog: receiveMaterialsCoreDataAction.totalNumberOfCatalog,\r\n currentPage: receiveMaterialsCoreDataAction.currentPage,\r\n homeBrowserState: {\r\n sortContext: state.homeBrowserState.sortContext,\r\n activeFilters: state.homeBrowserState.activeFilters,\r\n currentlySelectedSharedMaterialIds: {},\r\n searchMode: state.homeBrowserState.searchMode,\r\n ...receiveMaterialsCoreDataAction.specificHomeBrowserStateData\r\n },\r\n supplierBrowserState: {\r\n sortContext: state.supplierBrowserState.sortContext,\r\n activeFilters: state.supplierBrowserState.activeFilters,\r\n currentlySelectedSharedMaterialIds: {},\r\n searchMode: state.supplierBrowserState.searchMode,\r\n ...receiveMaterialsCoreDataAction.specificSupplierBrowserStateData\r\n },\r\n dynamicRegulationTable: receiveMaterialsCoreDataAction.dynamicRegulationTable\r\n };\r\n case RequestSharedMaterialsCompaniesDataValue:\r\n return {\r\n ...state,\r\n isLoadingCatalog: true\r\n };\r\n \r\n case ReceiveSharedMaterialsCompaniesDataValue:\r\n const receiveCompaniesDataAction = incomingAction as ReceiveSharedMaterialsCompaniesDataAction;\r\n return {\r\n ...state,\r\n isLoadingCatalog: false,\r\n sharedMaterialsCoreData: receiveCompaniesDataAction.sharedMaterialsCoreData,\r\n totalNumberOfCatalog: receiveCompaniesDataAction.totalNumberOfCatalog,\r\n currentPage: receiveCompaniesDataAction.currentPage,\r\n };\r\n\r\n\r\n case SetSortValue:\r\n const setSortAction = incomingAction as SetSortAction;\r\n\r\n targetBrowserState = getCopyOfTargetBrowserState(state, setSortAction.browserEndpoint);\r\n\r\n targetBrowserState.sortContext = setSortAction.sortContext;\r\n targetBrowserState.filteredSharedMaterialsCoreData = setSortAction.filteredSharedMaterialsCoreData;\r\n targetBrowserState.browserRowModels = setSortAction.browserRows;\r\n\r\n return {\r\n ...state,\r\n homeBrowserState: setSortAction.browserEndpoint === BrowserEndpoint.Home ? targetBrowserState : state.homeBrowserState,\r\n supplierBrowserState: setSortAction.browserEndpoint === BrowserEndpoint.Supplier ? targetBrowserState : state.supplierBrowserState,\r\n };\r\n\r\n case FilterActionValue:\r\n const filterAction = incomingAction as FilterAction;\r\n\r\n targetBrowserState = getCopyOfTargetBrowserState(state, filterAction.browserEndpoint);\r\n\r\n targetBrowserState.activeFilters = filterAction.activeFilters;\r\n targetBrowserState.filteredSharedMaterialsCoreData = filterAction.filteredSharedMaterialsCoreData;\r\n targetBrowserState.browserRowModels = filterAction.browserRows;\r\n\r\n return {\r\n ...state,\r\n homeBrowserState: filterAction.browserEndpoint === BrowserEndpoint.Home ? targetBrowserState : state.homeBrowserState,\r\n supplierBrowserState: filterAction.browserEndpoint === BrowserEndpoint.Supplier ? targetBrowserState : state.supplierBrowserState,\r\n };\r\n\r\n case UpdateFilterMenusValue:\r\n const updateFilterMenusAction = incomingAction as UpdateFilterMenusAction;\r\n\r\n targetBrowserState = getCopyOfTargetBrowserState(state, updateFilterMenusAction.browserEndpoint);\r\n\r\n targetBrowserState.filterMenus = updateFilterMenusAction.filterMenus;\r\n\r\n return {\r\n ...state,\r\n homeBrowserState: updateFilterMenusAction.browserEndpoint === BrowserEndpoint.Home ? targetBrowserState : state.homeBrowserState,\r\n supplierBrowserState: updateFilterMenusAction.browserEndpoint === BrowserEndpoint.Supplier ? targetBrowserState : state.supplierBrowserState,\r\n };\r\n\r\n case RequestSharedMaterialDetailValue:\r\n return {\r\n ...state,\r\n sharedMaterialDetailState: {\r\n ...state.sharedMaterialDetailState,\r\n status: SharedMaterialDetailStatus.Loading,\r\n collapsedSections: state.sharedMaterialDetailState.collapsedSections,\r\n detailBundle: null\r\n },\r\n };\r\n\r\n case ReceiveSharedMaterialDetailValue:\r\n const receiveSharedMaterialDetailAction = incomingAction as ReceiveSharedMaterialDetailAction;\r\n\r\n return {\r\n ...state,\r\n sharedMaterialDetailState: {\r\n ...state.sharedMaterialDetailState,\r\n status: SharedMaterialDetailStatus.Found,\r\n collapsedSections: state.sharedMaterialDetailState.collapsedSections,\r\n detailBundle: receiveSharedMaterialDetailAction.detailBundle,\r\n },\r\n };\r\n\r\n case UpdateDetailDataSectionsValue:\r\n if (state.sharedMaterialDetailState === null) {\r\n throw new Error(\"Invalid operation - shared material detail is null\");\r\n }\r\n\r\n return {\r\n ...state,\r\n sharedMaterialDetailState: {\r\n ...state.sharedMaterialDetailState,\r\n status: state.sharedMaterialDetailState.status,\r\n collapsedSections: (incomingAction as UpdateDetailDataSectionsAction).collapsedSections,\r\n detailBundle: state.sharedMaterialDetailState.detailBundle\r\n },\r\n };\r\n\r\n case UpdateRequestStateValue:\r\n const newRequestState = (incomingAction as UpdateRequestStateAction).requestState;\r\n\r\n return {\r\n ...state,\r\n requestState: newRequestState === null\r\n ? null\r\n : {\r\n state: newRequestState\r\n },\r\n };\r\n\r\n case UpdateSelectedSharedMaterialsValue:\r\n const selectSharedMaterialAction = (incomingAction as UpdateSelectedSharedMaterialsAction);\r\n\r\n return {\r\n ...state,\r\n supplierBrowserState: {\r\n ...state.supplierBrowserState,\r\n currentlySelectedSharedMaterialIds: selectSharedMaterialAction.selectedMaterialIds\r\n },\r\n };\r\n\r\n case RequestSupplierWithOwnerIdValue:\r\n return {\r\n ...state,\r\n currentlySelectedSupplierState: {\r\n ...defaultCurrentlySelectedSupplier,\r\n }\r\n };\r\n case ReceiveSupplierWithOwnerIdValue:\r\n const receiveSupplierAction = incomingAction as ReceiveSupplierWithOwnerIdAction;\r\n return {\r\n ...state,\r\n currentlySelectedSupplierState: {\r\n isLoading: false,\r\n supplier: receiveSupplierAction.supplier\r\n }\r\n };\r\n case AddToLibraryValue:\r\n const addToLibraryAction = incomingAction as AddToLibraryAction;\r\n return {\r\n ...state,\r\n sharedMaterialDetailState: {\r\n ...state.sharedMaterialDetailState,\r\n detailBundle: {\r\n ...state.sharedMaterialDetailState.detailBundle!,\r\n libraryInventoryId: addToLibraryAction.libraryInventoryId\r\n },\r\n addingState: addToLibraryAction.state,\r\n }\r\n };\r\n case SetHasSeenExchangeFirstRunExperienceActionTypeValue:\r\n return {\r\n ...state,\r\n hasSeenExchangeFirstRunExperience: (incomingAction as SetHasSeenExchangeFirstRunExperienceAction).hasSeenExchangeFirstRunExperience\r\n };\r\n case SetSearchModeValue:\r\n const setSearchModeAction = incomingAction as SetSearchModeAction;\r\n\r\n return {\r\n ...state,\r\n homeBrowserState: {\r\n ...state.homeBrowserState,\r\n activeFilters: state.homeBrowserState.activeFilters,\r\n sortContext: setSearchModeAction.newSortContext ?? { ...state.homeBrowserState.sortContext },\r\n searchMode: setSearchModeAction.searchMode,\r\n }\r\n };\r\n case ClearDetailStateValue:\r\n return {\r\n ...state,\r\n sharedMaterialDetailState: {\r\n ...defaultSharedMaterialDetailState\r\n }\r\n };\r\n case SetSharedMaterialDetailStatusValue:\r\n const setSharedMaterialDetailStatusAction = incomingAction as SetSharedMaterialDetailStatusAction;\r\n return {\r\n ...state,\r\n sharedMaterialDetailState: {\r\n ...defaultSharedMaterialDetailState,\r\n status: setSharedMaterialDetailStatusAction.status\r\n }\r\n };\r\n }\r\n\r\n return state;\r\n}\r\n","import * as H from \"history\";\r\nimport { Action, Reducer } from 'redux';\r\nimport { SurveyLocalStorageManager } from '../../Managers/SurveyLocalStorageManager';\r\nimport { ResultType } from '../../Models/Api/ApiResponse';\r\nimport { SharedMaterialsCatalogCompany } from '../../Models/SharedMaterials/DataModel';\r\nimport { MatchedInventory, MatchedSharedMaterialCoreData, SurveyMatchData } from '../../Models/Surveys/SurveyMatchDataModel';\r\nimport { AppThunkAction } from './../../';\r\nimport { ToxnotServiceClient } from './../../ToxnotServiceClient';\r\n\r\n\r\nconst SurveySetSurveyMatchData = \"SET_SURVEYMATCH_DATA\";\r\ninterface SurveySetSurveyMatchData {\r\n type: typeof SurveySetSurveyMatchData;\r\n value: Partial\r\n}\r\n\r\nconst initialState: SurveyMatchData = {\r\n sharedMaterials: {},\r\n companies: {},\r\n matchFound: true,\r\n matchedInventories: [],\r\n showConfirmationModel: false,\r\n tempInventoryId: null,\r\n tempSharedMaterialId: null,\r\n overwritingInProgress: false,\r\n surveyResultsLoaded: false\r\n}\r\n\r\ntype KnownAction = SurveySetSurveyMatchData;\r\n\r\nexport const actionCreators = {\r\n setSurveyMatchState: (value: Partial): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().surveyMatchState;\r\n if (!state) {\r\n return;\r\n }\r\n dispatch({\r\n type: SurveySetSurveyMatchData,\r\n value: value\r\n })\r\n },\r\n copyIntoLibrary: (sharedMaterialId: string, inventoryId: string): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().surveyMatchState;\r\n if (!state) {\r\n return;\r\n }\r\n saveCopyToLibrary(sharedMaterialId, inventoryId, dispatch, state);\r\n },\r\n removeInventory: (inventoryId: string): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().surveyMatchState;\r\n if (!state) {\r\n return;\r\n }\r\n },\r\n continue: (): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n const surveyMatchState = appState.surveyMatchState;\r\n\r\n if (!surveyMatchState) {\r\n return;\r\n }\r\n },\r\n overwriteConfirmation: (sharedMaterialId: string, inventoryId: string): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().surveyMatchState;\r\n if (!state) {\r\n return;\r\n }\r\n dispatch({\r\n type: SurveySetSurveyMatchData,\r\n value: {\r\n showConfirmationModel: true,\r\n tempInventoryId: inventoryId,\r\n tempSharedMaterialId: sharedMaterialId\r\n }\r\n })\r\n $(\"#show-confirmation-modal\").modal(\"show\");\r\n },\r\n overwrite: (): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().surveyMatchState;\r\n if (!state) {\r\n return;\r\n }\r\n dispatch({\r\n type: SurveySetSurveyMatchData,\r\n value: {\r\n overwritingInProgress: true,\r\n }\r\n })\r\n overwriteData(dispatch, state);\r\n }\r\n}\r\n\r\nasync function saveCopyToLibrary(sharedMaterialId: string, inventoryId: string, dispatch: (action: KnownAction) => void, state: SurveyMatchData) {\r\n const serviceClient = new ToxnotServiceClient();\r\n const apiResult = await serviceClient.addSharedMaterialToLibrary(sharedMaterialId);\r\n}\r\n\r\nasync function overwriteData(dispatch: (action: KnownAction) => void, state: SurveyMatchData) {\r\n const serviceClient = new ToxnotServiceClient();\r\n if (state.tempSharedMaterialId === null || state.tempInventoryId === null) {\r\n return;\r\n }\r\n const apiResult = await serviceClient.copySharedMaterialDataIntoLibraryInventory(state.tempSharedMaterialId, state.tempInventoryId);\r\n}\r\n\r\nexport const reducer: Reducer = (state: SurveyMatchData | undefined, action: Action): SurveyMatchData => { \r\n if (state === undefined) {\r\n return initialState;\r\n }\r\n let incomingAction;\r\n switch (action.type) {\r\n case SurveySetSurveyMatchData:\r\n incomingAction = action as SurveySetSurveyMatchData;\r\n return {\r\n ...state,\r\n ...incomingAction.value\r\n }\r\n \r\n }\r\n return state;\r\n}","import { UserContext } from '../UserContext';\r\n\r\nexport enum AppContextRequestReponseType {\r\n Valid = \"Valid\",\r\n NotSignedIn = 'NotSignedIn',\r\n NoSeats = \"NoSeats\"\r\n}\r\n\r\nexport interface UserContextResponse {\r\n userContextData: UserContext;\r\n responseType: AppContextRequestReponseType;\r\n}","import { template } from '@babel/core';\r\nimport * as H from 'history';\r\nimport { Action, Reducer } from 'redux';\r\nimport { SurveyTemplateDataModel } from '../../Models/Surveys/SurveyDataModel';\r\nimport { AppThunkActionAsync } from './../../';\r\nimport { Result, ToxnotServiceClient } from './../../ToxnotServiceClient';\r\n\r\n//Controller for SurveyTemplateManager.cs. Handles adding/removal of templates, as wel as setting of default templates.\r\n\r\n//Action Types\r\nconst SetTemplateManagerData = \"SET_SURVEY_TEMPLATE_MANAGER_DATA\";\r\ninterface SetTemplateManagerData {\r\n type: typeof SetTemplateManagerData;\r\n value: Partial\r\n}\r\n\r\nconst AddSurveyTemplate = \"ADD_SURVEY_TEMPLATE\";\r\ninterface AddSurveyTemplate {\r\n type: typeof AddSurveyTemplate;\r\n value: SurveyTemplateDataModel\r\n}\r\n\r\nconst RemoveSurveyTemplates = \"REMOVE_SURVEY_TEMPLATES\";\r\ninterface RemoveSurveyTemplates {\r\n type: typeof RemoveSurveyTemplates;\r\n templateIdsToRemove: string[]\r\n}\r\n\r\n\r\n// State\r\nexport interface SurveyTemplateManagerData {\r\n templates: SurveyTemplateDataModel[],\r\n dataLoaded: boolean,\r\n showErrorMessage: boolean,\r\n selectedTemplateIds: string[],\r\n defaultSurveyTemplateId: string | null\r\n}\r\n\r\nconst initialState: SurveyTemplateManagerData = {\r\n templates: [],\r\n dataLoaded: false,\r\n showErrorMessage: false,\r\n selectedTemplateIds: [],\r\n defaultSurveyTemplateId: null\r\n}\r\n\r\ntype KnownAction = AddSurveyTemplate | RemoveSurveyTemplates | SetTemplateManagerData;\r\n\r\n//Action Acreators\r\nconst serviceClient = new ToxnotServiceClient();\r\n\r\nexport const actionCreators = {\r\n loadSurveyTemplates: (): AppThunkActionAsync => async (dispatch, getState) => {\r\n const apiResult = await serviceClient.surveyTemplateManagerBundleGet();\r\n if (!apiResult.success || !apiResult.data) {\r\n dispatch({\r\n type: SetTemplateManagerData,\r\n value: {\r\n showErrorMessage: true\r\n }\r\n })\r\n return;\r\n }\r\n\r\n const sortedTemplates = apiResult.data.templates.orderBy(t => t.name);\r\n\r\n dispatch({\r\n type: SetTemplateManagerData,\r\n value: {\r\n showErrorMessage: false,\r\n dataLoaded: true,\r\n templates: sortedTemplates,\r\n defaultSurveyTemplateId: apiResult.data.defaultSurveyTemplateId\r\n }\r\n })\r\n },\r\n addNewTemplateAndRedirect: (name: string, history: H.History): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState();\r\n\r\n const newTemplate: SurveyTemplateDataModel = {\r\n ownerId: state.appServices!.userContext!.teamOwnerId,\r\n templateId: null,\r\n name: name,\r\n dataRequested: {\r\n materialDisclosureAsked: false,\r\n complianceList: [],\r\n circularityDataAsked: false,\r\n sustainabilityDataAsked: false,\r\n embodiedCarbonDataAsked: false,\r\n waterUseDataAsked: false,\r\n carbonTransparencyDataAsked: false,\r\n carbonOtherDataAsked: false,\r\n vocDataAsked: false,\r\n vocTransparencyDataAsked: false,\r\n vocOtherDataAsked: false,\r\n documentsCertificationList: [],\r\n anyPassportDataAsked: false\r\n },\r\n bomQuestionnaireId: null,\r\n supplierQuestionnaireId: null,\r\n attestationQuestionnaireId: null,\r\n languageList: [],\r\n nativeLanguage: null,\r\n ccEmailList: '',\r\n emailSubject: '',\r\n emailMessage: '',\r\n requestInstructions: '',\r\n completionInstructions: '',\r\n languageToEmailSubjectMap: {},\r\n languageToEmailMessageMap: {},\r\n languageToRequestInstructionsMap: {},\r\n languageToCompletionInstructionsMap: {},\r\n scheduledReminders: [],\r\n sdsRequested: false,\r\n bomColumns: [],\r\n useManufacturerLogo: false,\r\n preFillBomQuestionnaireFromSummaryData: false,\r\n preFillSupplierQuestionnaireFromSummaryData: false,\r\n makeBomDataRequiredOnQuestionnaireAnswer: false,\r\n requireSuppliersToDiscloseRegulatoryIngredients: false,\r\n additionalColumnIdIdentifiers: [],\r\n includeAttestationLetter: false\r\n }\r\n\r\n const apiResult = await serviceClient.updateDataCollectionTemplate(newTemplate);\r\n\r\n if (!apiResult.success || !apiResult.data) {\r\n dispatch({\r\n type: SetTemplateManagerData,\r\n value: {\r\n showErrorMessage: true\r\n }\r\n })\r\n return;\r\n }\r\n\r\n newTemplate.templateId = apiResult.data;\r\n\r\n dispatch({\r\n type: AddSurveyTemplate,\r\n value: newTemplate\r\n })\r\n\r\n history.push(\"/Survey/Template/\" + encodeURIComponent(newTemplate.templateId));\r\n },\r\n removeTemplate: (templateIds: string[]): AppThunkActionAsync => async (dispatch, getState) => { \r\n dispatch({\r\n type: RemoveSurveyTemplates,\r\n templateIdsToRemove: templateIds\r\n });\r\n for (const templateId of templateIds) {\r\n const apiResult = await serviceClient.deleteDataCollectionTemplate(templateId);\r\n showErrorMessageIfNeeded(dispatch, apiResult);\r\n if (!apiResult.success) return;\r\n }\r\n\r\n },\r\n setData: (changes: Omit, 'templates'>) => ({\r\n type: SetTemplateManagerData,\r\n value: changes\r\n }), \r\n setDefaultSurveyTemplate: (templateId: string): AppThunkActionAsync => async (dispatch, getState) => {\r\n dispatch({\r\n type: SetTemplateManagerData,\r\n value: {\r\n defaultSurveyTemplateId: templateId\r\n }\r\n });\r\n const result = await serviceClient.setSurveyTemplateAsDefault(templateId);\r\n showErrorMessageIfNeeded(dispatch, result);\r\n }\r\n}\r\n\r\nconst showErrorMessageIfNeeded = (dispatch: (action: any) => void, apiResult: Result) => {\r\n if (!apiResult.success) {\r\n dispatch({\r\n type: SetTemplateManagerData,\r\n value: {\r\n showErrorMessage: true\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport const reducer: Reducer = (state: SurveyTemplateManagerData | undefined, action: Action): SurveyTemplateManagerData => { \r\n if (state === undefined) {\r\n return initialState;\r\n }\r\n switch (action.type) {\r\n case SetTemplateManagerData:\r\n const incomingAction1 = action as SetTemplateManagerData;\r\n return {\r\n ...state,\r\n ...incomingAction1.value\r\n }\r\n case AddSurveyTemplate:\r\n const incomingAction2 = action as AddSurveyTemplate;\r\n\r\n const newTemplates = [...state.templates, incomingAction2.value].orderBy(t => t.name);\r\n\r\n return {\r\n ...state,\r\n templates: newTemplates\r\n }\r\n case RemoveSurveyTemplates:\r\n const incomingAction3 = action as RemoveSurveyTemplates;\r\n return {\r\n ...state,\r\n templates: state.templates.filter(t => !incomingAction3.templateIdsToRemove.includes(t.templateId ?? \"\"))\r\n }\r\n \r\n }\r\n return state;\r\n}","import { Action, Reducer } from 'redux';\r\nimport { AppServices, TowState } from '../../AppServices';\r\nimport { AppContextRequestReponseType } from '../Models/Api/UserContextResponse';\r\nimport { UserContext } from '../Models/UserContext';\r\nimport { ToxnotServiceClient } from '../ToxnotServiceClient';\r\nimport { AppThunkAction, AppThunkActionAsync } from './../';\r\n\r\n//\r\n// This state controller knows how to fetch the user context from the service.\r\n// Used when the app first kicks off.\r\n//\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action definitions\r\n//\r\n\r\nconst ReceiveAppServices = \"RECEIVE_APP_SERVICES\";\r\ntype ReceiveAppServicesType = typeof ReceiveAppServices;\r\n\r\ninterface ReceiveAppServicesAction {\r\n type: ReceiveAppServicesType;\r\n appServices: AppServices;\r\n}\r\n\r\nconst TowTaskDelete = \"TOW_TASK_DELETE\";\r\ntype TowTaskDeleteType = typeof TowTaskDelete;\r\n\r\ninterface TowTaskDeleteAction {\r\n type: TowTaskDeleteType;\r\n towState: TowState | null;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action creators\r\n//\r\n\r\ntype KnownAction =\r\n ReceiveAppServicesAction |\r\n TowTaskDeleteAction;\r\n\r\nexport const actionCreators = {\r\n getAppServices: (): AppThunkActionAsync => async (dispatch, getState) => {\r\n const toxnotServiceClient = new ToxnotServiceClient();\r\n\r\n const result = await toxnotServiceClient.getAppServices();\r\n\r\n if (!result.success || (result.data === null)) {\r\n console.error(\"Failed to getAppServices: \" + result.result);\r\n return;\r\n }\r\n\r\n if (result.data.userContextResponse.responseType === AppContextRequestReponseType.NoSeats) {\r\n window.location.href = \"/Account/Team?seatsQuota=True\";\r\n return;\r\n }\r\n\r\n const userContext = result.data.userContextResponse.userContextData;\r\n const isSignedIn = null !== userContext;\r\n const config = result.data.config;\r\n const activeTow = isSignedIn && result.data.activeTows.length > 0 ? result.data.activeTows[0] : null;\r\n\r\n //\r\n // Set up various 3rd party frameworks if the user is logged in\r\n //\r\n\r\n if (isSignedIn) {\r\n // don't turn Intercom chat on if we are in testing mode or a user has requested completely disabling chat\r\n if (!config.inTestingMode && !userContext.intercomIsDisabled) {\r\n const intercomChatEnabledSettingKey = `intercom-enabled-${userContext.userId}`;\r\n const intercomChatEnabledSettingValue = localStorage.getItem(intercomChatEnabledSettingKey);\r\n\r\n Intercom(\"boot\", {\r\n app_id: \"kw8a37ox\",\r\n name: userContext.fullName,\r\n email: userContext.emailAddress,\r\n user_hash: userContext.intercomUserHash,\r\n created_at: Math.round((userContext.signUpDate === null ? new Date() : new Date(userContext.signUpDate)).getTime() / 1000),\r\n hide_default_launcher: (intercomChatEnabledSettingValue !== null) && (intercomChatEnabledSettingValue === \"0\"),\r\n });\r\n }\r\n\r\n var appId = \"\";\r\n if (config.isProductionServer) {\r\n appId = \"1466764731\";\r\n }\r\n else if (config.isBetaServer || config.isDevelopmentServer) {\r\n appId = \"974980988\";\r\n }\r\n\r\n // Only track app usage if signed in, and not a @toxnot.com address (this clause also covers test users). Also excluded is Bill Hoffman's personal account ignag@hotmail.com\r\n if (appId != \"\" && !(userContext.emailAddress.endsWith(\"@toxnot.com\") || userContext.emailAddress.endsWith(\"@3eco.com\") || userContext.emailAddress === \"ignag@hotmail.com\")) {\r\n const heap = (window as any).heap;\r\n heap.load(appId);\r\n heap.identify(userContext.userId);\r\n heap.addUserProperties({\r\n 'Subscription Type': userContext.subscription?.baseSubscriptionProduct.productName ?? 'Free',\r\n 'Account ID': result.data.config.exchangeFreeUsersAccountId,\r\n 'Username': userContext.fullName,\r\n 'Email': userContext.emailAddress,\r\n 'GroupName': `${userContext.fullName}::${userContext.role ?? 'NoRoleAssigned'}`\r\n });\r\n }\r\n }\r\n\r\n dispatch({ type: ReceiveAppServices, appServices: new AppServices(userContext, activeTow, config) });\r\n },\r\n\r\n towResume: (): AppThunkAction => (dispatch, getState) => {\r\n location.href = \"/Publications/ResumeWorkflow\";\r\n },\r\n\r\n towTaskUpdate: (towState: TowState): AppThunkAction => (dispatch, getState) => {\r\n const toxnotServiceClient = new ToxnotServiceClient();\r\n toxnotServiceClient.towUpdate({ taskId: towState.taskId, workflowType: towState.type, jsonState: towState.jsonState })\r\n .then(result => {\r\n if (!result.success) {\r\n console.error(\"Failed to taskUpdate: \" + result.result);\r\n return;\r\n }\r\n\r\n // TODO: MJM SM2 actually resolve\r\n location.href = \"/Publications/ResumeWorkflow\";\r\n });\r\n },\r\n\r\n towTaskDelete: (towState: TowState): AppThunkAction => (dispatch, getState) => {\r\n const toxnotServiceClient = new ToxnotServiceClient();\r\n toxnotServiceClient.towDelete({ taskId: towState.taskId })\r\n .then(result => {\r\n if (!result.success) {\r\n console.error(\"Failed to taskDelete: \" + result.result);\r\n return;\r\n }\r\n\r\n window.location.reload();\r\n\r\n // dispatch({ type: TowTaskDelete, towState: null }); \r\n });\r\n }\r\n};\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Reducer\r\n//\r\n\r\nexport const reducer: Reducer = (state: AppServices | null | undefined, incomingAction: Action): AppServices | null => {\r\n if (state === undefined) {\r\n return null; // default state - no user context, it hasn't been fetched yet\r\n }\r\n\r\n switch (incomingAction.type) {\r\n case ReceiveAppServices:\r\n return (incomingAction as ReceiveAppServicesAction).appServices; \r\n\r\n case TowTaskDelete:\r\n return AppServices.dupe(state!, null, state!.config);\r\n }\r\n\r\n return state;\r\n}\r\n","import * as Models from './../../Models/SharedMaterials/DataModel';\r\nimport { Action, Reducer } from 'redux';\r\nimport { ApplicationState, AppThunkAction, AppThunkActionAsync } from './../../';\r\n\r\nimport { ToxnotServiceClient } from './../../ToxnotServiceClient';\r\nimport { AppServices } from './../../../AppServices';\r\nimport UpdateCompanyRequest from '../../Models/Api/UpdateCompanyRequest';\r\nimport { ReportTypeWithContext } from '../../Models/Api/CustomerApiRequestsAndResponses';\r\nimport { IStringLocalizer } from '../../../utilities/IStringLocalizer';\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// State definitions\r\n//\r\n\r\nexport enum ManagementOperationBaseStates {\r\n Default,\r\n OperationStarted,\r\n OperationCompleted,\r\n OperationFailed\r\n}\r\n\r\nexport enum PublishingState {\r\n NoPublishing,\r\n Editing,\r\n Publishing,\r\n PublishedSuccessfully,\r\n PublishFailed\r\n}\r\n\r\nexport enum CustomUrlNameState {\r\n Default,\r\n CheckingCustomName,\r\n CustomNameValid,\r\n CustomNameInvalid,\r\n CustomNameBlank\r\n}\r\n\r\nexport interface AccessRequestInboxState {\r\n isLoading: boolean;\r\n catalog: Models.SharedMaterialsAccessRequestCatalog;\r\n respondingToRequestsState: ManagementOperationBaseStates;\r\n}\r\n\r\nexport interface AccessManagerState {\r\n isLoading: boolean;\r\n bundle: Models.AccessManagerBundle;\r\n currentlyShowACLForSharedMaterialId: string | null;\r\n currentlySelectedSharedMaterialIds: { [sharedMaterialId: string]: string };\r\n grantingState: ManagementOperationBaseStates;\r\n removingFromCatalogs: boolean;\r\n}\r\n\r\nexport interface ManagementState {\r\n ownedSharedMaterialsMap: { [sharedMaterialId: string]: Models.SharedMaterialCoreData },\r\n loading: boolean;\r\n accessRequestInboxState: AccessRequestInboxState;\r\n accessManagerState: AccessManagerState;\r\n}\r\n\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action definitions\r\n//\r\n\r\nconst RequestAccessRequestsValue = \"REQUEST_ACCESS_REQUESTS\"\r\n\r\ninterface RequestAccessRequestsAction {\r\n type: typeof RequestAccessRequestsValue;\r\n}\r\n\r\nconst ReceiveAccessRequestsValue = \"RECEIVE_ACCESS_REQUESTS\"\r\n\r\ninterface ReceiveAccessRequestsAction {\r\n type: typeof ReceiveAccessRequestsValue;\r\n catalog: Models.SharedMaterialsAccessRequestCatalog;\r\n}\r\n\r\nconst RespondAccessRequestValue = \"RESPOND_ACCESS_REQUEST\";\r\n\r\ninterface RespondAccessRequestAction {\r\n type: typeof RespondAccessRequestValue;\r\n state: ManagementOperationBaseStates;\r\n currentRequests: Models.SharedMaterialsAccessRequestCatalogRequest[];\r\n}\r\n\r\nconst UpdateAccessRequestStateValue = \"UPDATE_ACCESS_REQUEST_STATE\";\r\n\r\ninterface UpdateAccessRequestStateAction {\r\n type: typeof UpdateAccessRequestStateValue;\r\n}\r\n\r\nconst RequestAccessManagerDataValue = \"REQUEST_ACCESS_MANAGER_DATA_VALUE\";\r\n\r\ninterface RequestAccessManagerDataAction {\r\n type: typeof RequestAccessManagerDataValue;\r\n}\r\n\r\nconst ReceiveAccessManagerDataValue = \"RECEIVE_ACCESS_MANAGER_DATA_VALUE\";\r\n\r\ninterface ReceiveAccessManagerDataAction {\r\n type: typeof ReceiveAccessManagerDataValue;\r\n bundle: Models.AccessManagerBundle;\r\n}\r\n\r\nconst SetActiveAccessControlListValue = \"SET_ACTIVE_ACCESS_CONTROL_LIST\";\r\n\r\ninterface SetActiveAccessControlListAction {\r\n type: typeof SetActiveAccessControlListValue;\r\n sharedMaterialId: string | null;\r\n}\r\n\r\nconst SetAccessControlListValue = \"SET_ACCESS_CONTROL_LIST\";\r\n\r\ninterface SetAccessControlListAction {\r\n type: typeof SetAccessControlListValue;\r\n currentAclMap: { [sharedMaterialId: string]: Models.SharedMaterialsAccessControlListInfo[] };\r\n}\r\n\r\nconst GrantingGroupAccessValue = \"GRANTING_GROUP_ACCESS\";\r\n\r\ninterface GrantingGroupAccessAction {\r\n type: typeof GrantingGroupAccessValue;\r\n}\r\n\r\nconst GrantedGroupAccessValue = \"GRANTED_GROUP_ACCESS\";\r\n\r\ninterface GrantedGroupAccessAction {\r\n type: typeof GrantedGroupAccessValue;\r\n state: ManagementOperationBaseStates;\r\n}\r\n\r\nconst UpdateSelectedSharedMaterialsForACLValue = \"UPDATED_SELECTED_SHARED_MATERIALS_FOR_ACL\";\r\n\r\ninterface UpdateSelectedSharedMaterialsForACLAction {\r\n type: typeof UpdateSelectedSharedMaterialsForACLValue;\r\n selectedIds: { [sharedMaterialId: string]: string };\r\n}\r\n\r\nconst ResetGrantingStateValue = \"RESET_GRANTING_STATE\";\r\n\r\ninterface ResetGrantingStateAction {\r\n type: typeof ResetGrantingStateValue\r\n}\r\n\r\nconst UpdateManagementStateValue = \"UPDATE_MANAGEMENT_STATE\";\r\n\r\ninterface UpdateManagementStateAction {\r\n type: typeof UpdateManagementStateValue;\r\n value: Partial;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Helper functions\r\n//\r\n\r\n\r\nasync function dispatchGetAllAccessManagagerDataAsync(state: ApplicationState, dispatch: (action: KnownAction) => void) {\r\n if (!state || !state.sharedMaterialsManagementState || !state.sharedMaterialsManagementState.accessManagerState || !state.appServices) {\r\n return;\r\n }\r\n\r\n dispatch({ type: RequestAccessManagerDataValue });\r\n\r\n const apiResult = await toxnotServiceClient.sharedMaterialsGetAccessManagerBundle();\r\n\r\n if (!apiResult.success || !apiResult.data) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatch({type: ReceiveAccessManagerDataValue, bundle: apiResult.data})\r\n}\r\n\r\nasync function dispatchRemoveFromAccessControlListAsync(state: ApplicationState, dispatch: (action: KnownAction) => void, teamOwnerIdWithAccess: string, sharedMaterialId: string) {\r\n if (!state || !state.sharedMaterialsManagementState || !state.sharedMaterialsManagementState.accessManagerState || !state.appServices) {\r\n return;\r\n }\r\n\r\n const apiResult = await toxnotServiceClient.removeFromAccessControlList(teamOwnerIdWithAccess, sharedMaterialId);\r\n\r\n if (!apiResult.success) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n let currentAclMap = state.sharedMaterialsManagementState.accessManagerState.bundle.accessControlListMap;\r\n currentAclMap[sharedMaterialId] = currentAclMap[sharedMaterialId].filter(t => t.teamOwnerIdWithAccess !== teamOwnerIdWithAccess);\r\n\r\n dispatch({ type: SetAccessControlListValue, currentAclMap: currentAclMap})\r\n}\r\n\r\nasync function dispatchGrantGroupAccessToSharedMaterialsAsync(state: AccessManagerState, dispatch: (action: KnownAction) => void, emailAddresses: string[], sharedMaterialIds: string[]) {\r\n if (!state) {\r\n return;\r\n }\r\n\r\n dispatch({type: GrantingGroupAccessValue})\r\n\r\n const apiResult = await toxnotServiceClient.grantGroupAccess({ emailAddressesToGrantAccess: emailAddresses, sharedMaterialIds: sharedMaterialIds });\r\n\r\n dispatch({ type: GrantedGroupAccessValue, state: !apiResult.success ? ManagementOperationBaseStates.OperationFailed : ManagementOperationBaseStates.OperationCompleted });\r\n}\r\n\r\nexport function testCustomUrlName(input: string) {\r\n // regex\r\n const pattern = /^[a-zA-Z0-9_\\-]*$/;\r\n return pattern.test(input);\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action creators\r\n//\r\n\r\ntype KnownAction = \r\n RequestAccessRequestsAction |\r\n ReceiveAccessRequestsAction |\r\n RespondAccessRequestAction |\r\n UpdateAccessRequestStateAction |\r\n RequestAccessManagerDataAction |\r\n ReceiveAccessManagerDataAction |\r\n SetActiveAccessControlListAction |\r\n SetAccessControlListAction |\r\n UpdateSelectedSharedMaterialsForACLAction |\r\n GrantedGroupAccessAction |\r\n GrantingGroupAccessAction |\r\n ResetGrantingStateAction |\r\n UpdateManagementStateAction;\r\n\r\n// Service Layer API Client.\r\nconst toxnotServiceClient = new ToxnotServiceClient();\r\n\r\nconst defaultAccessRequestInboxState: AccessRequestInboxState = {\r\n isLoading: true,\r\n catalog: {\r\n accessRequests: [],\r\n allSharedMaterialsCoreDataMap: {}\r\n },\r\n respondingToRequestsState: ManagementOperationBaseStates.Default,\r\n}\r\n\r\nconst defaultAccessManagerState: AccessManagerState = {\r\n isLoading: true,\r\n bundle: {\r\n accessControlListMap: {},\r\n numberOfActiveAccessRequests: 0\r\n },\r\n currentlyShowACLForSharedMaterialId: null,\r\n currentlySelectedSharedMaterialIds: {},\r\n grantingState: ManagementOperationBaseStates.Default,\r\n removingFromCatalogs: false\r\n}\r\n\r\nexport const actionCreators = {\r\n loadManagementState: (): AppThunkActionAsync => async (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsManagementState) {\r\n return;\r\n }\r\n\r\n const apiResult = await toxnotServiceClient.sharedMaterialsGetForTeam();\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: UpdateManagementStateValue,\r\n value: {\r\n ownedSharedMaterialsMap: apiResult.data,\r\n loading: false\r\n }\r\n });\r\n },\r\n getAllAccessRequests: (): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsManagementState) {\r\n return;\r\n }\r\n\r\n toxnotServiceClient.getSharedMaterialAccessRequests()\r\n .then(apiResult => {\r\n dispatch({ type: ReceiveAccessRequestsValue, catalog: apiResult.data ?? defaultAccessRequestInboxState.catalog });\r\n });\r\n\r\n dispatch({ type: RequestAccessRequestsValue });\r\n },\r\n respondToAccessRequest: (requestId: string, type: Models.AccessRequestResponseType): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsManagementState) {\r\n return;\r\n }\r\n\r\n const inboxState = appState.sharedMaterialsManagementState.accessRequestInboxState;\r\n\r\n if (!inboxState || !inboxState.catalog) {\r\n return;\r\n }\r\n\r\n const currentRequests = inboxState.catalog.accessRequests.filter(r => r.requestId !== requestId);\r\n\r\n toxnotServiceClient.respondToSharedMaterialAccessRequest(requestId, type)\r\n .then(apiResult => {\r\n dispatch({\r\n type: RespondAccessRequestValue, state: apiResult.success ? ManagementOperationBaseStates.OperationCompleted : ManagementOperationBaseStates.OperationFailed,\r\n currentRequests: currentRequests\r\n });\r\n });\r\n\r\n dispatch({ type: UpdateAccessRequestStateValue });\r\n },\r\n getAllAccessManagerData: (): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n dispatchGetAllAccessManagagerDataAsync(appState, dispatch);\r\n },\r\n showAccessControlList: (sharedMaterialId: string | null): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsManagementState) {\r\n return;\r\n }\r\n\r\n dispatch({ type: SetActiveAccessControlListValue, sharedMaterialId: sharedMaterialId })\r\n },\r\n removeFromAccessControlList: (teamOwnerIdWithAccess: string, sharedMaterialId: string): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n dispatchRemoveFromAccessControlListAsync(appState, dispatch, teamOwnerIdWithAccess, sharedMaterialId);\r\n },\r\n updateSelectedMaterials: (selectedIds: { [id: string]: string }): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsManagementState) {\r\n return;\r\n }\r\n\r\n dispatch({ type: UpdateSelectedSharedMaterialsForACLValue, selectedIds: selectedIds });\r\n },\r\n grantGroupAccessToSharedMaterials: (emailAddresses: string[], sharedMaterialIds: string[]): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsManagementState) {\r\n return;\r\n }\r\n\r\n dispatchGrantGroupAccessToSharedMaterialsAsync(appState.sharedMaterialsManagementState.accessManagerState, dispatch, emailAddresses, sharedMaterialIds);\r\n },\r\n resetGrantingState: (): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.sharedMaterialsManagementState) {\r\n return;\r\n }\r\n\r\n dispatch({ type: ResetGrantingStateValue });\r\n },\r\n removeSharedMaterialsFromCatalogs: (sharedMaterialIds: string[]): AppThunkAction => async (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState?.sharedMaterialsManagementState?.accessManagerState) {\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: UpdateManagementStateValue,\r\n value: {\r\n ...appState.sharedMaterialsManagementState,\r\n accessManagerState: {\r\n ...appState.sharedMaterialsManagementState.accessManagerState,\r\n removingFromCatalogs: true\r\n }\r\n }\r\n });\r\n\r\n const apiResult = await toxnotServiceClient.sharedMaterialsUpdateFetchForCatalogs({sharedMaterialIdsToRemoveFromCatalogs: sharedMaterialIds, fetchForCatalogs: false});\r\n\r\n if (!apiResult.success) {\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n const newSharedMaterialsMap = { ...appState.sharedMaterialsManagementState.ownedSharedMaterialsMap };\r\n\r\n for (let id of sharedMaterialIds) {\r\n newSharedMaterialsMap[id].fetchForCatalogs = false;\r\n }\r\n\r\n dispatch({\r\n type: UpdateManagementStateValue,\r\n value: {\r\n ownedSharedMaterialsMap: newSharedMaterialsMap,\r\n accessManagerState: {\r\n ...appState.sharedMaterialsManagementState.accessManagerState,\r\n removingFromCatalogs: false\r\n }\r\n }\r\n });\r\n },\r\n deletePassports: (sharedMaterialIds: string[]): AppThunkAction => async (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState?.sharedMaterialsManagementState?.accessManagerState) {\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: UpdateManagementStateValue,\r\n value: {\r\n ...appState.sharedMaterialsManagementState,\r\n accessManagerState: {\r\n ...appState.sharedMaterialsManagementState.accessManagerState,\r\n isLoading: true\r\n }\r\n }\r\n });\r\n\r\n const publicInventoryIds = Object.\r\n values(appState.sharedMaterialsManagementState.ownedSharedMaterialsMap).\r\n filter(s => sharedMaterialIds.includes(s.sharedMaterialId)).\r\n map(s => s.publicInventoryId);\r\n\r\n const result = await toxnotServiceClient.publicationsDelete(publicInventoryIds);\r\n\r\n if (!result.success) {\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n const newOwnedMap = { ...appState.sharedMaterialsManagementState.ownedSharedMaterialsMap };\r\n const newSelectedMap = { ...appState.sharedMaterialsManagementState.accessManagerState.currentlySelectedSharedMaterialIds };\r\n\r\n for (let id of sharedMaterialIds) {\r\n delete newOwnedMap[id];\r\n delete newSelectedMap[id];\r\n }\r\n\r\n dispatch({\r\n type: UpdateManagementStateValue,\r\n value: {\r\n ...appState.sharedMaterialsManagementState,\r\n ownedSharedMaterialsMap: newOwnedMap,\r\n accessManagerState: {\r\n ...appState.sharedMaterialsManagementState.accessManagerState,\r\n isLoading: false,\r\n currentlyShowACLForSharedMaterialId: null,\r\n currentlySelectedSharedMaterialIds: newSelectedMap\r\n }\r\n }\r\n });\r\n }\r\n};\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Reducers\r\n//\r\n\r\nconst initialState: ManagementState = {\r\n ownedSharedMaterialsMap: {},\r\n loading: true,\r\n accessRequestInboxState: defaultAccessRequestInboxState,\r\n accessManagerState: defaultAccessManagerState\r\n}\r\n\r\nexport const reducer: Reducer = (state: ManagementState | undefined, incomingAction: Action): ManagementState => {\r\n if (state === undefined) {\r\n return initialState;\r\n }\r\n\r\n switch (incomingAction.type) {\r\n // does a generic update of the state.\r\n case UpdateManagementStateValue:\r\n return {\r\n ...state,\r\n ...(incomingAction as UpdateManagementStateAction).value\r\n }\r\n case RequestAccessRequestsValue:\r\n return {\r\n ...state,\r\n accessRequestInboxState: {\r\n ...state.accessRequestInboxState,\r\n respondingToRequestsState: ManagementOperationBaseStates.Default,\r\n isLoading: true\r\n }\r\n }\r\n case ReceiveAccessRequestsValue:\r\n const receiveAction = incomingAction as ReceiveAccessRequestsAction\r\n\r\n return {\r\n ...state,\r\n accessRequestInboxState: {\r\n ...state.accessRequestInboxState,\r\n isLoading: false,\r\n catalog: receiveAction.catalog\r\n }\r\n }\r\n case UpdateAccessRequestStateValue:\r\n return {\r\n ...state,\r\n accessRequestInboxState: {\r\n ...state.accessRequestInboxState,\r\n respondingToRequestsState: ManagementOperationBaseStates.OperationStarted\r\n }\r\n }\r\n case RespondAccessRequestValue:\r\n const respondAccessRequestAction = incomingAction as RespondAccessRequestAction;\r\n\r\n return {\r\n ...state,\r\n accessManagerState: {\r\n ...state.accessManagerState,\r\n bundle: {\r\n ...state.accessManagerState.bundle,\r\n numberOfActiveAccessRequests: respondAccessRequestAction.currentRequests.length\r\n }\r\n },\r\n accessRequestInboxState: {\r\n ...state.accessRequestInboxState,\r\n catalog: {\r\n allSharedMaterialsCoreDataMap: state.accessRequestInboxState.catalog!.allSharedMaterialsCoreDataMap,\r\n accessRequests: respondAccessRequestAction.currentRequests\r\n },\r\n respondingToRequestsState: respondAccessRequestAction.state\r\n }\r\n }\r\n\r\n case RequestAccessManagerDataValue:\r\n return {\r\n ...state,\r\n accessManagerState: {\r\n ...state.accessManagerState,\r\n isLoading: true\r\n }\r\n };\r\n case ReceiveAccessManagerDataValue:\r\n const receiveManagerDataAction = incomingAction as ReceiveAccessManagerDataAction;\r\n\r\n return {\r\n ...state,\r\n accessManagerState: {\r\n ...state.accessManagerState,\r\n isLoading: false,\r\n bundle: receiveManagerDataAction.bundle\r\n }\r\n };\r\n case SetActiveAccessControlListValue:\r\n const showAccessControlListAction = incomingAction as SetActiveAccessControlListAction;\r\n\r\n return {\r\n ...state,\r\n accessManagerState: {\r\n ...state.accessManagerState,\r\n currentlyShowACLForSharedMaterialId: showAccessControlListAction.sharedMaterialId\r\n }\r\n };\r\n case SetAccessControlListValue:\r\n const setAccessControlListAction = incomingAction as SetAccessControlListAction;\r\n\r\n return {\r\n ...state,\r\n accessManagerState: {\r\n ...state.accessManagerState,\r\n bundle: {\r\n ...state.accessManagerState.bundle,\r\n accessControlListMap: setAccessControlListAction.currentAclMap\r\n },\r\n }\r\n };\r\n case UpdateSelectedSharedMaterialsForACLValue:\r\n const sharedMaterialIdsForACLAction = incomingAction as UpdateSelectedSharedMaterialsForACLAction;\r\n \r\n return {\r\n ...state,\r\n accessManagerState: {\r\n ...state.accessManagerState,\r\n currentlySelectedSharedMaterialIds: sharedMaterialIdsForACLAction.selectedIds\r\n }\r\n };\r\n case GrantedGroupAccessValue:\r\n const grantGroupAccessAction = incomingAction as GrantedGroupAccessAction;\r\n return {\r\n ...state,\r\n accessManagerState: {\r\n ...state.accessManagerState,\r\n grantingState: grantGroupAccessAction.state\r\n }\r\n };\r\n case ResetGrantingStateValue:\r\n return {\r\n ...state,\r\n accessManagerState: {\r\n ...state.accessManagerState,\r\n grantingState: ManagementOperationBaseStates.Default\r\n }\r\n };\r\n case GrantingGroupAccessValue:\r\n return {\r\n ...state,\r\n accessManagerState: {\r\n ...state.accessManagerState,\r\n grantingState: ManagementOperationBaseStates.OperationStarted\r\n }\r\n };\r\n }\r\n\r\n return state;\r\n}\r\n\r\n","import { Action, Reducer } from 'redux';\r\nimport { AppThunkAction } from '../..';\r\nimport { ToxnotServiceClient } from '../../ToxnotServiceClient';\r\nimport { toggleCollapsedSection } from './SharedMaterialsDatabaseStateController';\r\nimport {\r\n SharedMaterialPreviewDetailResponse\r\n} from \"../../Models/Api/SharedMaterials/SharedMaterialPreviewDetailResponse\";\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// State definition\r\n//\r\n\r\nexport interface SharedMaterialPreviewState {\r\n isLoading: boolean;\r\n previewBundle: SharedMaterialPreviewDetailResponse | null;\r\n collapsedSections: string[];\r\n renderWithoutAccess: boolean;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action definitions\r\n//\r\n\r\nconst ReceiveSharedMaterialPreviewBundle = \"RECEIVE_SHARED_MATERIALS_PREVIEW_BUNDLE\";\r\ntype ReceiveSharedMaterialPreviewBundleType = typeof ReceiveSharedMaterialPreviewBundle;\r\n\r\ninterface ReceiveSharedMaterialPreviewBundleAction {\r\n type: ReceiveSharedMaterialPreviewBundleType;\r\n sharedMaterialsPreviewBundle: SharedMaterialPreviewDetailResponse;\r\n}\r\n\r\nconst TogglePreviewDataSections = \"TOGGLE_PREVIEW_DATA_SECTIONS\";\r\ntype TogglePreviewDataSectionsType = typeof TogglePreviewDataSections;\r\n\r\ninterface TogglePreviewDataSectionsAction {\r\n type: TogglePreviewDataSectionsType;\r\n collapsedSections: string[];\r\n}\r\n\r\nconst ToggleRenderWithoutAccess = \"TOGGLE_RENDER_WITHOUT_ACCESS\";\r\n\r\ninterface ToggleRenderWithoutAccessAction {\r\n type: typeof ToggleRenderWithoutAccess;\r\n renderWithoutAccess: boolean;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action creators\r\n//\r\n\r\ntype KnownAction =\r\n ReceiveSharedMaterialPreviewBundleAction |\r\n TogglePreviewDataSectionsAction |\r\n ToggleRenderWithoutAccessAction;\r\n\r\nexport const actionCreators = {\r\n loadSharedMaterialPreviewBundle: (publicInventoryId: string, publicInventoryDataId: string, inBulkPublishMode: boolean): AppThunkAction => (dispatch, getState) => {\r\n const toxnotServiceClient = new ToxnotServiceClient();\r\n toxnotServiceClient.getSharedMaterialPreview(publicInventoryId, publicInventoryDataId, inBulkPublishMode)\r\n .then(result => {\r\n if (!result.success || (result.data === null)) {\r\n console.error(\"Failed to getSharedMaterialPreview: \" + result.result);\r\n return;\r\n }\r\n\r\n dispatch({ type: ReceiveSharedMaterialPreviewBundle, sharedMaterialsPreviewBundle: result.data });\r\n });\r\n },\r\n toggleDetailSectionCollapse: (dataSectionId: string): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().sharedMaterialsPreviewState ?? null;\r\n\r\n if (null === state)\r\n return;\r\n\r\n const collapsedSections = state.collapsedSections;\r\n toggleCollapsedSection(dataSectionId, collapsedSections); \r\n\r\n dispatch({ type: TogglePreviewDataSections, collapsedSections: [...collapsedSections] });\r\n },\r\n toggleRenderWithoutAccess: (renderWithoutAccess: boolean): AppThunkAction => (dispatch, getState) => {\r\n dispatch({ type: ToggleRenderWithoutAccess, renderWithoutAccess: renderWithoutAccess });\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Reducer\r\n//\r\n\r\nconst initialState: SharedMaterialPreviewState = {\r\n isLoading: true,\r\n previewBundle: null,\r\n collapsedSections: [],\r\n renderWithoutAccess: false\r\n};\r\n\r\nexport const reducer: Reducer = (state: SharedMaterialPreviewState | null | undefined, incomingAction: Action): SharedMaterialPreviewState | null => {\r\n if (!state) {\r\n return initialState; // default state - no user context, it hasn't been fetched yet\r\n }\r\n\r\n switch (incomingAction.type) {\r\n case ReceiveSharedMaterialPreviewBundle:\r\n return {\r\n ...state,\r\n isLoading: false,\r\n previewBundle: (incomingAction as ReceiveSharedMaterialPreviewBundleAction).sharedMaterialsPreviewBundle,\r\n };\r\n case TogglePreviewDataSections:\r\n return {\r\n ...state,\r\n collapsedSections: (incomingAction as TogglePreviewDataSectionsAction).collapsedSections,\r\n };\r\n case ToggleRenderWithoutAccess:\r\n return {\r\n ...state,\r\n renderWithoutAccess: (incomingAction as ToggleRenderWithoutAccessAction).renderWithoutAccess\r\n };\r\n }\r\n\r\n return state;\r\n}\r\n","import { Action, Reducer } from 'redux';\r\nimport { AppThunkAction, AppThunkActionAsync } from './../../';\r\nimport { ToxnotServiceClient } from './../../ToxnotServiceClient';\r\nimport { InventoriesGetNamesResponse } from '../../Models/Api/InventoriesGetName';\r\nimport { BulkReportRequest } from '../../Models/Api/BulkReportRequest';\r\n\r\nexport interface BulkReportContext {\r\n regulations: string[]\r\n}\r\n\r\nexport interface BulkReportState {\r\n inventoryIds: string[],\r\n reportType: string,\r\n context: BulkReportContext | null,\r\n contextJson: string | null,\r\n inventoryNames: InventoriesGetNamesResponse[]\r\n}\r\n\r\nconst initialState: BulkReportState = {\r\n inventoryIds: [],\r\n reportType: \"\",\r\n context: null,\r\n contextJson: null,\r\n inventoryNames: []\r\n}\r\n\r\nconst BulkReportSetData = \"SET_BULK_REPORT_DATA\";\r\ninterface BulkReportSetData {\r\n type: typeof BulkReportSetData;\r\n value: Partial\r\n}\r\n\r\ntype KnownAction = BulkReportSetData;\r\n\r\nexport const actionCreators = {\r\n setBulkReportData: (value: Partial): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().bulkReportState;\r\n if (!state) {\r\n return;\r\n }\r\n dispatch({\r\n type: BulkReportSetData,\r\n value: value\r\n })\r\n },\r\n getBulkReportData: (): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState().bulkReportState;\r\n if (!state) {\r\n return;\r\n }\r\n const dataJson = localStorage.getItem(\"BulkReportLocal\");\r\n if (dataJson !== null) {\r\n const data = JSON.parse(dataJson) as BulkReportState;\r\n const serviceClient = new ToxnotServiceClient();\r\n const result = await serviceClient.getInventoriesNames(data.inventoryIds);\r\n\r\n if (!result.success || result.data === null) {\r\n return;\r\n }\r\n\r\n data.inventoryNames = result.data;\r\n\r\n dispatch({\r\n type: BulkReportSetData,\r\n value: data\r\n });\r\n }\r\n },\r\n generateReports: (): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState(); \r\n\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const bulkReportingState = state.bulkReportState;\r\n\r\n if (!bulkReportingState) {\r\n return;\r\n }\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const request: BulkReportRequest = {\r\n inventoryIds: bulkReportingState.inventoryIds,\r\n reportType: bulkReportingState.reportType,\r\n contextJson: bulkReportingState.contextJson ?? null\r\n }\r\n\r\n const apiResult = await serviceClient.initializeBulkReporting(request);\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n state.appServices?.displayApiErrorMessage(\"Sorry, there was a error accessing the database.\")\r\n return;\r\n }\r\n\r\n // Redirect To Status Page\r\n window.location.href = `/Publications/Publications?reportIdToOpen=${apiResult.data}`\r\n }\r\n}\r\n\r\nexport const reducer: Reducer = (state: BulkReportState | undefined, action: Action): BulkReportState => {\r\n if (state === undefined) {\r\n return initialState;\r\n }\r\n\r\n switch (action.type) {\r\n case BulkReportSetData:\r\n const incomingAction = action as BulkReportSetData;\r\n return {\r\n ...state,\r\n ...incomingAction.value\r\n }\r\n }\r\n\r\n return state;\r\n}","import { Action, Reducer } from 'redux';\r\nimport { AppThunkActionAsync } from '../..';\r\nimport { AppServices } from '../../../AppServices';\r\nimport { ResultType } from '../../Models/Api/ApiResponse';\r\nimport { ToxnotServiceClient } from '../../ToxnotServiceClient';\r\nimport {SharedMaterialEngageResponse} from \"../../Models/Api/SharedMaterials/SharedMaterialEngageResponse\";\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// State definition\r\n//\r\n\r\nexport interface EngageConnectFormData {\r\n location: string,\r\n productType: string,\r\n moreInformation: string,\r\n name: string,\r\n email: string,\r\n productName: string,\r\n projectName: string\r\n}\r\n\r\nexport interface EngagementState {\r\n isLoading: boolean;\r\n bundle: SharedMaterialEngageResponse | null\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action definitions\r\n//\r\n\r\nconst RequestEngageBundle = \"REQUEST_ENGAGE_BUNDLE\";\r\ninterface RequestEngageBundleAction {\r\n type: typeof RequestEngageBundle;\r\n}\r\n\r\nconst ReceiveEngageBundle = \"RECEIVE_ENGAGE_BUNDLE\";\r\ninterface ReceiveEngageBundleAction {\r\n type: typeof ReceiveEngageBundle;\r\n bundle: SharedMaterialEngageResponse | null;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action Creators\r\n//\r\n\r\ntype KnownAction =\r\n RequestEngageBundleAction | ReceiveEngageBundleAction;\r\n\r\nexport const actionCreators = {\r\n loadEngageBundleAsync: (productName: string): AppThunkActionAsync => async (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState) {\r\n return;\r\n }\r\n\r\n dispatch({ type: RequestEngageBundle });\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const apiResult = await serviceClient.getSharedMaterialEngage(\"Assa Abloy\", productName);\r\n\r\n if (apiResult.result === ResultType.NotFound) {\r\n dispatch({\r\n type: ReceiveEngageBundle,\r\n bundle: null\r\n });\r\n return;\r\n }\r\n\r\n if (!apiResult.success || (apiResult.data === null)) {\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: ReceiveEngageBundle,\r\n bundle: apiResult.data\r\n });\r\n\r\n if (appState.appServices) {\r\n appState.appServices.trackCurrentUrlPath();\r\n appState.appServices.trackEvent(\"view-engagement-page\", { sharedMaterialId: apiResult.data.coreData.sharedMaterialId, materialName: apiResult.data.coreData.materialName, ownerId: apiResult.data.coreData.ownerId });\r\n }\r\n },\r\n sendConnectWithForm: (appServices: AppServices): AppThunkActionAsync => async (dispatch, getState) => {\r\n const appState = getState();\r\n if (!appState || !appState.engageState || !appState.engageState.bundle) {\r\n return;\r\n }\r\n\r\n const location = (document.getElementById(\"connect-location\") as HTMLInputElement).value.trim();\r\n const productType = (document.getElementById(\"connect-product-type\") as HTMLInputElement).value.trim();\r\n const name = (document.getElementById(\"connect-name\") as HTMLInputElement).value.trim();\r\n const email = (document.getElementById(\"connect-email\") as HTMLInputElement).value.trim();\r\n\r\n if (location === \"\" || productType === \"\" || name === \"\" || email === \"\") {\r\n $(\"#connect-form-empty-fields\").show();\r\n return;\r\n }\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const data: EngageConnectFormData = {\r\n location: location,\r\n productType: productType,\r\n moreInformation: (document.getElementById(\"connect-more-information\") as HTMLInputElement).value.trim(),\r\n name: name,\r\n email: email,\r\n productName: appState.engageState.bundle.coreData.materialName,\r\n projectName: (document.getElementById(\"connect-project-name\") as HTMLInputElement).value.trim()\r\n }\r\n\r\n const result = await serviceClient.engageConnectWithAssaAbloy(data);\r\n\r\n if (result.result === \"BadEmailAddress\") {\r\n $(\"#connect-form-invalid-email\").show();\r\n }\r\n else if (result.success) {\r\n $(\"#connect-form-success\").show();\r\n $(\"#send-email-button\").hide();\r\n $(\"#connect-form-body\").hide();\r\n $(\"#connect-form-invalid-email\").hide();\r\n $(\"#connect-form-empty-fields\").hide();\r\n $(\"#close-connect-form-button\").show();\r\n $(\"#cancel-connect-form-button\").hide();\r\n appServices.trackEvent(\"engagement-send-connect-form\", { materialId: appState.engageState.bundle.coreData.sharedMaterialId, productName: appState.engageState.bundle.coreData.materialName, ownerId: appState.engageState.bundle.coreData.ownerId })\r\n }\r\n else {\r\n $(\"#connect-form-error\").show();\r\n $(\"#connect-form-body\").hide();\r\n $(\"#send-email-button\").hide();\r\n $(\"#close-connect-form-button\").show();\r\n $(\"#cancel-connect-form-button\").hide();\r\n }\r\n }\r\n};\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Reducer\r\n//\r\n\r\nconst initialState: EngagementState = {\r\n isLoading: true,\r\n bundle: null\r\n};\r\n\r\nexport const reducer: Reducer = (state: EngagementState | undefined, incomingAction: Action): EngagementState => {\r\n if (state === undefined) {\r\n return initialState;\r\n }\r\n\r\n switch (incomingAction.type) {\r\n case RequestEngageBundle:\r\n return {\r\n isLoading: true,\r\n bundle: null\r\n };\r\n\r\n case ReceiveEngageBundle:\r\n const receiveAction = incomingAction as ReceiveEngageBundleAction;\r\n\r\n return {\r\n ...state,\r\n isLoading: false,\r\n bundle: receiveAction.bundle\r\n };\r\n }\r\n\r\n return state;\r\n};\r\n","\r\nimport { Action, Reducer } from 'redux';\r\nimport { initialIpc1752aData, Ipc1752AXmlData, SubstanceCategory, Ipc1752AExportState, Product, BusinessInfo } from '../../Models/XmlExport/XmlExportDataModel';\r\nimport { ToxnotServiceClient } from '../../ToxnotServiceClient';\r\nimport { AppThunkAction, AppThunkActionAsync } from './../../';\r\n\r\n\r\nconst XmlExportSetData = \"SET_XMLEXPORT_DATA\";\r\ninterface SetXmlExportData {\r\n type: typeof XmlExportSetData;\r\n value: Partial\r\n}\r\n\r\nconst initialState: Ipc1752AExportState = {\r\n inventoryId: null,\r\n ipc1752aData: initialIpc1752aData(),\r\n selectedProduct: null,\r\n exportClassA: false,\r\n exportClassC: false,\r\n exportClassD: false,\r\n dataLoaded: false,\r\n showAlert: false,\r\n hightlightMissingRequiredFields: false\r\n}\r\n\r\ntype KnownAction = SetXmlExportData ;\r\n\r\nexport const actionCreators = {\r\n setXmlExportState: (value: Partial): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState().ipc1752aExportState;\r\n if (!state) {\r\n return;\r\n }\r\n dispatch({\r\n type: XmlExportSetData,\r\n value: value\r\n })\r\n if (state.dataLoaded && state.inventoryId !== null) {\r\n const serviceClient = new ToxnotServiceClient();\r\n await serviceClient.setIpc1752aData(state.ipc1752aData, state.inventoryId);\r\n }\r\n },\r\n setBusinessData: (value: Partial): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState().ipc1752aExportState;\r\n if (!state) {\r\n return;\r\n }\r\n dispatch({\r\n type: XmlExportSetData,\r\n value: {\r\n ipc1752aData: {\r\n ...state.ipc1752aData,\r\n businessInfo: {\r\n ...state.ipc1752aData.businessInfo,\r\n ...value\r\n }\r\n }\r\n }\r\n })\r\n if (state.dataLoaded && state.inventoryId != null) {\r\n const serviceClient = new ToxnotServiceClient();\r\n await serviceClient.setIpc1752aData(state.ipc1752aData, state.inventoryId);\r\n }\r\n },\r\n getIpc1752aData: (inventoryId: string, refresh: boolean): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState().ipc1752aExportState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const apiResult = await serviceClient.getIpc1752aData(inventoryId, refresh);\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: XmlExportSetData,\r\n value: {\r\n inventoryId: inventoryId,\r\n selectedProduct: apiResult.data.products.length > 0 ? apiResult.data.products[0] : null,\r\n dataLoaded: true,\r\n ipc1752aData: {\r\n ...state.ipc1752aData,\r\n ...apiResult.data,\r\n businessInfo: {\r\n ...apiResult.data.businessInfo,\r\n mode: \"Distribute\"\r\n }\r\n }\r\n }\r\n });\r\n\r\n },\r\n setOverThresholdValue: (productIndex: number, sclIndex: number, scIndex: number, overThreshold: boolean): AppThunkActionAsync => async (dispatch, getState) => {\r\n let state = getState().ipc1752aExportState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const value: Partial = {\r\n ipc1752aData: {\r\n ...state.ipc1752aData,\r\n products: [\r\n ...state.ipc1752aData.products.map((v, i) => {\r\n if (i === productIndex) {\r\n v.materialInfo.substanceCategoryLists[sclIndex].substanceCategories[scIndex].overThreshold = overThreshold;\r\n }\r\n return v;\r\n })\r\n ]\r\n }\r\n }\r\n\r\n dispatch({\r\n type: XmlExportSetData,\r\n value: value\r\n })\r\n\r\n if (state.dataLoaded && state.inventoryId != null) {\r\n const serviceClient = new ToxnotServiceClient();\r\n await serviceClient.setIpc1752aData(state.ipc1752aData, state.inventoryId);\r\n }\r\n },\r\n removeSubstanceCategory: (productIndex: number, sclIndex: number, scIndex: number): AppThunkActionAsync => async (dispatch, getState) => {\r\n let state = getState().ipc1752aExportState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const value: Partial = {\r\n ipc1752aData: {\r\n ...state.ipc1752aData,\r\n products: [\r\n ...state.ipc1752aData.products.map((v, i) => {\r\n if (i === productIndex) {\r\n v.materialInfo.substanceCategoryLists[sclIndex].substanceCategories.splice(scIndex, 1);\r\n }\r\n return v;\r\n })\r\n ]\r\n }\r\n }\r\n\r\n dispatch({\r\n type: XmlExportSetData,\r\n value: value\r\n })\r\n\r\n if (state.dataLoaded && state.inventoryId != null) {\r\n const serviceClient = new ToxnotServiceClient();\r\n await serviceClient.setIpc1752aData(state.ipc1752aData, state.inventoryId);\r\n }\r\n },\r\n setQueryListResponse: (listId: string, queryId: string,response: boolean|null): AppThunkActionAsync => async (dispatch, getState) => {\r\n let state = getState().ipc1752aExportState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n for (let queryList of state.ipc1752aData.products[0].materialInfo.queryList) {\r\n for (let query of queryList.queries) {\r\n if (query.identity === queryId && listId === queryList.identity) {\r\n if (response === null) {\r\n query.response = null;\r\n } else {\r\n query.response = response;\r\n }\r\n }\r\n }\r\n }\r\n\r\n dispatch({\r\n type: XmlExportSetData,\r\n value: {\r\n ipc1752aData: {\r\n ...state.ipc1752aData,\r\n }\r\n }\r\n })\r\n\r\n if (state.dataLoaded && state.inventoryId != null) {\r\n const serviceClient = new ToxnotServiceClient();\r\n await serviceClient.setIpc1752aData(state.ipc1752aData, state.inventoryId);\r\n }\r\n },\r\n removeHomogenousMaterial: (productName: string, productNumber: string, productPlant: string, hmIndex: number, sclIndex: number, scIndex: number): AppThunkActionAsync => async (dispatch, getState) => {\r\n let state = getState().ipc1752aExportState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const value: Partial = {\r\n ipc1752aData: {\r\n ...state.ipc1752aData,\r\n products: [\r\n ...state.ipc1752aData.products.map((v, i) => {\r\n return deleteSubstance(v, productName, productNumber, productPlant, hmIndex, sclIndex, scIndex);\r\n })\r\n ]\r\n }\r\n }\r\n\r\n dispatch({\r\n type: XmlExportSetData,\r\n value: value\r\n })\r\n\r\n if (state.dataLoaded && state.inventoryId != null) {\r\n const serviceClient = new ToxnotServiceClient();\r\n await serviceClient.setIpc1752aData(state.ipc1752aData, state.inventoryId);\r\n }\r\n },\r\n addRohsExemptionToSubstance: (identity: string, description: string, productName: string, productNumber: string, productPlant: string, hmIndex: number, sclIndex: number, scIndex: number): AppThunkActionAsync => async (dispatch, getState) => {\r\n let state = getState().ipc1752aExportState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const value: Partial = {\r\n ipc1752aData: {\r\n ...state.ipc1752aData,\r\n products: [\r\n ...state.ipc1752aData.products.map((v, i) => {\r\n return addRohsExemptionToSubstance(identity,description,v, productName, productNumber, productPlant, hmIndex, sclIndex, scIndex);\r\n })\r\n ]\r\n }\r\n }\r\n\r\n dispatch({\r\n type: XmlExportSetData,\r\n value: value\r\n })\r\n\r\n if (state.dataLoaded && state.inventoryId != null) {\r\n const serviceClient = new ToxnotServiceClient();\r\n await serviceClient.setIpc1752aData(state.ipc1752aData, state.inventoryId);\r\n }\r\n },\r\n generateXML: (): AppThunkAction => (dispatch, getState) => {\r\n let state = getState().ipc1752aExportState;\r\n if (!state) {\r\n return;\r\n }\r\n\r\n if (state.inventoryId === null) {\r\n throw new Error(\"inventory id not set\");\r\n }\r\n\r\n if (allRequiredFieldsFilled(state)) {\r\n dispatch({\r\n type: XmlExportSetData,\r\n value: {\r\n showAlert: true,\r\n hightlightMissingRequiredFields: true\r\n }\r\n });\r\n return;\r\n }\r\n\r\n const downloadExport = () => {\r\n const link = \"/Api/ExportIpc1752aXML?inventoryId=\" + encodeURIComponent(state!.inventoryId!) + \"&exportClassA=\" + encodeURIComponent(state!.exportClassA) + \"&exportClassC=\" + encodeURIComponent(state!.exportClassC) + \"&exportClassD=\" + encodeURIComponent(state!.exportClassD);\r\n window.location.href = link;\r\n }\r\n\r\n if (!state.exportClassA && !state.exportClassC && !state.exportClassD) {\r\n if (confirm(getState().appServices?.localizeString(\"You haven't selected any of the 3 data export classes, so your export will be empty. Click ok to proceed.\"))) {\r\n downloadExport();\r\n }\r\n }\r\n else {\r\n downloadExport();\r\n }\r\n }\r\n}\r\n\r\nfunction allRequiredFieldsFilled(state: Ipc1752AExportState) {\r\n let requiredFieldsEmpty = false;\r\n\r\n const x = state.ipc1752aData.products.map((v, i) => v.materialInfo.substanceCategoryLists).reduce((a, b) => a.concat(b),[]).map((sc, i1) => sc.substanceCategories).reduce((a, b) => a.concat(b),[]);\r\n\r\n if (x.find((v, i) => v.overThreshold === null) && state.exportClassC) requiredFieldsEmpty = true;\r\n\r\n const businessInfo = state.ipc1752aData.businessInfo;\r\n\r\n let supplierInfoFieldsEmpty = false;\r\n if (!(businessInfo.authorizedRepresentiative && businessInfo.representativeEmail && businessInfo.representativePhone && businessInfo.companyName && businessInfo.responseDate\r\n && businessInfo.supplierContact.contactEmail && businessInfo.supplierContact.contactName && businessInfo.supplierContact.contactPhone)) {\r\n supplierInfoFieldsEmpty = true;\r\n }\r\n let requestInfoFieldsEmpty = false;\r\n if (!(businessInfo.requestDate && businessInfo.requestCompany && businessInfo.requestorContact.contactEmail && businessInfo.requestorContact.contactName && businessInfo.requestorContact.contactPhone)) {\r\n requestInfoFieldsEmpty = true;\r\n }\r\n\r\n const fieldMissing = requiredFieldsEmpty || supplierInfoFieldsEmpty || (businessInfo.mode === \"Request/Reply\" && requestInfoFieldsEmpty);\r\n\r\n return !fieldMissing;\r\n}\r\n\r\nexport const reducer: Reducer = (state: Ipc1752AExportState | undefined, action: Action): Ipc1752AExportState => {\r\n if (state === undefined) {\r\n return initialState;\r\n }\r\n let incomingAction;\r\n switch (action.type) {\r\n case XmlExportSetData:\r\n incomingAction = action as SetXmlExportData;\r\n const requiredFieldsFilled = allRequiredFieldsFilled(state);\r\n const x = {\r\n ...state,\r\n ...incomingAction.value,\r\n showAlert: !requiredFieldsFilled,\r\n highlightMissingRequiredFields: !requiredFieldsFilled\r\n }\r\n return x;\r\n }\r\n return state;\r\n}\r\n\r\nfunction deleteSubstance(product: Product, productName: string, productNumber: string, productPlant: string, hmIndex: number ,sclIndex: number, scIndex: number) : Product{\r\n\r\n if (product.productId.itemName === productName && product.productId.itemNumber === productNumber && product.productId.manufacturingSite === productPlant) {\r\n product.materialInfo.homogenousMaterialsList[hmIndex].substanceCategoryLists[sclIndex].substanceCategories.splice(scIndex, 1);\r\n return product;\r\n } else if (product.subproduct.length > 0) {\r\n product.subproduct.forEach((v, i) => v = deleteSubstance(v, productName, productNumber, productPlant, hmIndex, sclIndex, scIndex));\r\n return product;\r\n } else {\r\n return product;\r\n }\r\n\r\n}\r\n\r\nfunction addRohsExemptionToSubstance(identity: string, description: string ,product: Product, productName: string, productNumber: string, productPlant: string, hmIndex: number, sclIndex: number, scIndex: number): Product {\r\n\r\n if (product.productId.itemName === productName && product.productId.itemNumber === productNumber && product.productId.manufacturingSite === productPlant) {\r\n if (description === \"\") {\r\n\r\n product.materialInfo.homogenousMaterialsList[hmIndex].substanceCategoryLists[sclIndex].substanceCategories[scIndex].rohsExemption = null;\r\n\r\n } else {\r\n product.materialInfo.homogenousMaterialsList[hmIndex].substanceCategoryLists[sclIndex].substanceCategories[scIndex].rohsExemption = {\r\n exemptions: [],\r\n authority: \"EL2011/534/EU\",\r\n identity: \"IPC\"\r\n }\r\n product.materialInfo.homogenousMaterialsList[hmIndex].substanceCategoryLists[sclIndex].substanceCategories[scIndex].rohsExemption?.exemptions.push({ identity: identity, description: description });\r\n }\r\n return product;\r\n } else if (product.subproduct.length > 0) {\r\n product.subproduct.forEach((v, i) => v = addRohsExemptionToSubstance(identity, description, v, productName, productNumber, productPlant, hmIndex, sclIndex, scIndex));\r\n return product;\r\n } else {\r\n return product;\r\n }\r\n\r\n}\r\n","//The state for the IPC1752a export view\r\n\r\nexport interface Ipc1752AExportState {\r\n inventoryId: string | null, //InventoryID of the current viewed inventory\r\n ipc1752aData: Ipc1752AXmlData, //Object representing the format specified in the IPC1752A Data model\r\n selectedProduct: Product | null, //Selected Product of which the homogenous materials are displayed\r\n exportClassA: boolean, //Export Query List and Exemption List in the XML\r\n exportClassC: boolean, //Export Substance Categories in the XML\r\n exportClassD: boolean, //Export Homogenous Materials in the XML\r\n dataLoaded: boolean,\r\n showAlert: boolean,\r\n hightlightMissingRequiredFields: boolean;\r\n}\r\n\r\nexport interface BusinessInfo {\r\n mode: string;\r\n responseDate: string;\r\n companyName: string;\r\n authorizedRepresentiative: string;\r\n representativeEmail: string;\r\n representativePhone: string;\r\n requestDate: string;\r\n requestCompany: string;\r\n supplierContact: Contact;\r\n requestorContact: Contact;\r\n}\r\n\r\nexport interface Contact {\r\n contactName: string;\r\n contactEmail: string;\r\n contactPhone: string;\r\n}\r\nexport interface Ipc1752AXmlData {\r\n version: string;\r\n businessInfo: BusinessInfo;\r\n products: Product[];\r\n}\r\n\r\nexport function initialIpc1752aData(): Ipc1752AXmlData {\r\n return {\r\n version: \"2.0\",\r\n businessInfo: {\r\n mode: \"Distribute\",\r\n responseDate: \"\",\r\n companyName: \"\",\r\n authorizedRepresentiative: \"\",\r\n representativeEmail: \"\",\r\n representativePhone: \"\",\r\n requestDate: \"\",\r\n requestCompany: \"\",\r\n supplierContact: {\r\n contactEmail: \"\",\r\n contactName: \"\",\r\n contactPhone: \"\"\r\n },\r\n requestorContact: {\r\n contactEmail: \"\",\r\n contactName: \"\",\r\n contactPhone: \"\"\r\n },\r\n },\r\n products: []\r\n }\r\n}\r\n\r\nexport interface Product {\r\n comment: string;\r\n numberOfInstances: number;\r\n productId: ProductId;\r\n materialInfo: MaterialInfo;\r\n subproduct: Product[];\r\n}\r\n\r\nexport interface ProductId {\r\n itemName: string;\r\n itemNumber: string;\r\n manufacturingSite: string;\r\n effectiveDate: string;\r\n version: string;\r\n uom: string;\r\n uomValue: number;\r\n}\r\n\r\nexport interface MaterialInfo {\r\n queryList: QueryList[];\r\n exemptionList: ExemptionList[];\r\n homogenousMaterialsList: HomogenousMaterial[];\r\n substanceCategoryLists: SubstanceCategoryList[];\r\n}\r\n\r\nexport interface ExemptionList {\r\n exemptions: Exemption[];\r\n identity: string;\r\n authority: string;\r\n}\r\n\r\nexport interface Exemption {\r\n description: string;\r\n identity: string;\r\n}\r\n\r\nexport interface QueryList {\r\n queries: Query[];\r\n identity: string;\r\n authority: string;\r\n revision: string;\r\n}\r\n\r\nexport interface Query {\r\n statement: string;\r\n response: boolean | null;\r\n identity: string;\r\n authority: string;\r\n revision: string;\r\n computedResponse: boolean;\r\n}\r\n\r\nexport interface HomogenousMaterial {\r\n name: string;\r\n comment: string;\r\n materialGroupName: string;\r\n uom: string;\r\n uomValue: number;\r\n substanceCategoryLists: SubstanceCategoryList[];\r\n}\r\n\r\nexport interface SubstanceCategoryList {\r\n identity: string;\r\n authority: string;\r\n revision: string;\r\n substanceCategories: SubstanceCategory[];\r\n}\r\n\r\nexport interface SubstanceCategory {\r\n name: string;\r\n comment: string;\r\n identity: string;\r\n uom: string;\r\n uomValue: number;\r\n substance: Substance;\r\n overThreshold: boolean | null;\r\n thresholdStatement: string;\r\n rohsExemption: ExemptionList | null;\r\n reportableApplication: string;\r\n concentration: string;\r\n}\r\n\r\nexport interface Substance {\r\n casNumber: string;\r\n substanceName: string;\r\n uom: string;\r\n uomValue: number;\r\n rohsExemption: ExemptionList;\r\n}","import { Action, Reducer } from 'redux';\r\nimport { ApplicationState, AppThunkAction, AppThunkActionAsync } from './../../';\r\nimport { Task } from \"../../Models/TaskManagement/TaskManagementDataModel\";\r\nimport { ToxnotServiceClient } from '../../ToxnotServiceClient';\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// State definition\r\n//\r\n\r\nexport interface StartState {\r\n isLoading: boolean;\r\n numSurveysToAnswer: number;\r\n tasks: Task[];\r\n}\r\n\r\nconst initialState: StartState = {\r\n isLoading: true,\r\n numSurveysToAnswer: 0,\r\n tasks: []\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action definitions\r\n//\r\n\r\nconst RequestStartData = \"REQUEST_START_DATA\";\r\ntype RequestStartDataType = typeof RequestStartData;\r\n\r\ninterface RequestStartDataAction {\r\n type: RequestStartDataType;\r\n}\r\n\r\nconst ReceiveStartData = \"RECEIVE_START_DATA\";\r\ntype ReceiveStartDataType = typeof ReceiveStartData;\r\n\r\ninterface ReceiveStartDataAction {\r\n type: ReceiveStartDataType;\r\n value: Partial;\r\n}\r\n\r\n\r\n// ===============================================================================\r\n\r\n\r\n//\r\n// Action creators\r\n//\r\n\r\ntype KnownAction =\r\n RequestStartDataAction |\r\n ReceiveStartDataAction;\r\n\r\nexport const actionCreators = {\r\n getStartData: (): AppThunkActionAsync => async (dispatch, getState) => {\r\n const applicationState = getState();\r\n\r\n if (!applicationState.startState) {\r\n return;\r\n }\r\n\r\n dispatch({ type: RequestStartData });\r\n\r\n const toxnotServiceClient = new ToxnotServiceClient();\r\n\r\n const apiResult = await toxnotServiceClient.getStartData();\r\n\r\n if (!apiResult.success || (apiResult.data === null)) {\r\n dispatch({\r\n type: ReceiveStartData,\r\n value: { numSurveysToAnswer: 0, tasks: [] }\r\n });\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: ReceiveStartData,\r\n value: { numSurveysToAnswer: apiResult.data.numSurveysToAnswer, tasks: apiResult.data.tasks }\r\n });\r\n }\r\n};\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Reducer\r\n//\r\n\r\nexport const reducer: Reducer = (state: StartState | undefined, incomingAction: Action): StartState => {\r\n if (state === undefined) {\r\n return initialState\r\n }\r\n\r\n switch (incomingAction.type) {\r\n case RequestStartData:\r\n return {\r\n ...state,\r\n isLoading: true,\r\n numSurveysToAnswer: 0\r\n };\r\n\r\n case ReceiveStartData:\r\n const action = incomingAction as ReceiveStartDataAction;\r\n return {\r\n ...state,\r\n ...action.value,\r\n isLoading: false\r\n };\r\n }\r\n\r\n return state;\r\n}\r\n","import { Action, Reducer } from 'redux';\r\nimport { ApplicationState, AppThunkAction, AppThunkActionAsync } from './../../';\r\nimport { ToxnotServiceClient } from '../../ToxnotServiceClient';\r\nimport * as Models from '../../../store/Models/Supplier/Supplier';\r\nimport { Questionnaire, SurveyTemplateDataModel, SustainabilityAndCircularityIds, VocIds } from '../../Models/Surveys/SurveyDataModel';\r\nimport { AppServices } from '../../../AppServices';\r\nimport { IStringLocalizer } from '../../../utilities/IStringLocalizer';\r\nimport * as Utilities from '../../../utilities/Utilities';\r\nimport { DynamicRegulation } from '../../Models/Compliance/DynamicRegulation';\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// State definition\r\n//\r\n\r\nexport enum InvitingSuppliersStatus {\r\n Normal,\r\n InviteFailed,\r\n InviteFailedInvalidEmailToken,\r\n StartingInvitation,\r\n InvitationSent\r\n}\r\n\r\nexport enum InviteSuppliersViewType {\r\n Main,\r\n ExceedQuotaWarning,\r\n InvitingSuppliers\r\n}\r\n\r\nexport enum CreateSurveysMode {\r\n Send = 0,\r\n Draft\r\n}\r\n\r\ninterface RequestedDataSectionBase {\r\n friendlyDescription: string;\r\n}\r\n\r\nexport interface RequestedDataSection extends RequestedDataSectionBase {\r\n type: RequestedDataSectionType;\r\n}\r\n\r\nexport enum RequestedDataSectionType {\r\n MaterialDisclosure = 0,\r\n Compliance,\r\n Circularity,\r\n Sustainability,\r\n DocsAndCerts,\r\n CustomQuestionnaires,\r\n Reminders,\r\n CompletionInstructions,\r\n RequestInstructions,\r\n Languages,\r\n Voc\r\n}\r\n\r\nexport interface InviteSuppliersState {\r\n isLoading: boolean;\r\n activeView: InviteSuppliersViewType;\r\n invitingSuppliersStatus: InvitingSuppliersStatus;\r\n offlineProcessOperationId: string | null;\r\n requestedDataSections: { [type: number]: string[] };\r\n templates: SurveyTemplateDataModel[];\r\n questionnaires: Questionnaire[];\r\n dynamiceRegulations: DynamicRegulation[];\r\n currentlySelectedTemplateId: string | null;\r\n columnIdsToFriendlyNames: { [columnId: string]: string }\r\n}\r\n\r\nconst getInitialState = (): InviteSuppliersState => {\r\n return {\r\n isLoading: true,\r\n activeView: InviteSuppliersViewType.Main,\r\n invitingSuppliersStatus: InvitingSuppliersStatus.Normal,\r\n offlineProcessOperationId: null,\r\n requestedDataSections: {},\r\n templates: [],\r\n currentlySelectedTemplateId: null,\r\n questionnaires: [],\r\n dynamiceRegulations: [],\r\n columnIdsToFriendlyNames: {},\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action definitions\r\n//\r\n\r\nconst UpdateInviteSuppliersState = \"UPDATE_INVITE_SUPPLIERS_STATE\";\r\n\r\ninterface UpdateInviteSuppliersStateAction {\r\n type: typeof UpdateInviteSuppliersState;\r\n value: Partial;\r\n}\r\n\r\ntype KnownAction = UpdateInviteSuppliersStateAction;\r\n\r\nconst toxnotServiceClient = new ToxnotServiceClient();\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Helper Functions\r\n//\r\n\r\nexport function getCurrentlySelectedTemplateFromState(inviteSuppliersState: InviteSuppliersState) {\r\n if (inviteSuppliersState.currentlySelectedTemplateId === null) {\r\n throw new Error(\"ERROR in getCurrentlySelectedTemplateFromState - Currently selected template id was null.\");\r\n }\r\n\r\n let template = inviteSuppliersState.templates.firstOrDefault(t => t.templateId === inviteSuppliersState.currentlySelectedTemplateId);\r\n\r\n if (!template) {\r\n template = inviteSuppliersState.templates.length > 0 ? inviteSuppliersState.templates[0] : null;\r\n }\r\n\r\n return template;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n\r\nfunction verifyAndGetInviteSuppliersState(getState: () => ApplicationState) {\r\n const appState = getState();\r\n\r\n if (!appState.inviteSuppliersState) {\r\n throw new Error(\"ERROR - Supplier State was not defined.\");\r\n }\r\n\r\n return appState.inviteSuppliersState;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function getContactEmailsAsString(supplier: Models.Supplier) {\r\n return supplier.contactList.map(c => c.email).join(\",\");\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function getQuestionnaireNamesFromTemplate(template: SurveyTemplateDataModel, questionnaires: Questionnaire[]) {\r\n const ret: string[] = [];\r\n\r\n const bomQuestionnaire = questionnaires.find(q => template.bomQuestionnaireId === q.questionnaireId);\r\n const supplierQuestionnaire = questionnaires.find(q => template.supplierQuestionnaireId === q.questionnaireId);\r\n const attestationQuestionnaire = questionnaires.find(q => template.attestationQuestionnaireId === q.questionnaireId)\r\n\r\n if (bomQuestionnaire) {\r\n ret.push(bomQuestionnaire.name);\r\n }\r\n\r\n if (supplierQuestionnaire) {\r\n ret.push(supplierQuestionnaire.name);\r\n }\r\n\r\n if (attestationQuestionnaire) {\r\n ret.push(attestationQuestionnaire.name);\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction getRequestedDataFromTemplateId(\r\n templateId: string,\r\n allTemplates: SurveyTemplateDataModel[],\r\n questionnaires: Questionnaire[],\r\n appServices: AppServices\r\n) {\r\n const ret: { [type: number]: string[] } = {};\r\n\r\n const template = allTemplates.find(t => t.templateId === templateId);\r\n\r\n if (!template) {\r\n return ret;\r\n }\r\n\r\n const requestedData = template.dataRequested;\r\n\r\n if (requestedData.materialDisclosureAsked) {\r\n ret[RequestedDataSectionType.MaterialDisclosure] = template.bomColumns.map(c => c.columnId);\r\n }\r\n\r\n if (requestedData.complianceList.length > 0) {\r\n ret[RequestedDataSectionType.Compliance] = requestedData.complianceList;\r\n }\r\n\r\n if (requestedData.circularityDataAsked) {\r\n ret[RequestedDataSectionType.Circularity] = [\r\n SustainabilityAndCircularityIds.EndOfLifeOptions,\r\n SustainabilityAndCircularityIds.Contact,\r\n SustainabilityAndCircularityIds.Instructions\r\n ];\r\n }\r\n\r\n if (requestedData.sustainabilityDataAsked) {\r\n const specifics: string[] = [];\r\n\r\n if (requestedData.embodiedCarbonDataAsked) {\r\n specifics.push(SustainabilityAndCircularityIds.EmbodiedCarbon);\r\n }\r\n\r\n if (requestedData.waterUseDataAsked) {\r\n specifics.push(SustainabilityAndCircularityIds.WaterUsageData);\r\n }\r\n\r\n if (requestedData.carbonTransparencyDataAsked) {\r\n specifics.push(SustainabilityAndCircularityIds.CarbonTransparency);\r\n }\r\n\r\n if (requestedData.carbonOtherDataAsked) {\r\n specifics.push(SustainabilityAndCircularityIds.CarbonOther);\r\n }\r\n\r\n ret[RequestedDataSectionType.Sustainability] = specifics;\r\n }\r\n\r\n if (requestedData.vocDataAsked) {\r\n const specifics: string[] = [];\r\n\r\n if (requestedData.vocTransparencyDataAsked) {\r\n specifics.push(VocIds.VocTransparency);\r\n }\r\n\r\n if (requestedData.vocOtherDataAsked) {\r\n specifics.push(VocIds.VocOther);\r\n }\r\n\r\n ret[RequestedDataSectionType.Voc] = specifics;\r\n }\r\n\r\n if (requestedData.documentsCertificationList.length > 0) {\r\n ret[RequestedDataSectionType.DocsAndCerts] = requestedData.documentsCertificationList.map(d => d.documentCertificationType);\r\n }\r\n\r\n if (template.requestInstructions !== \"\") {\r\n ret[RequestedDataSectionType.RequestInstructions] = [template.requestInstructions];\r\n }\r\n\r\n if (template.completionInstructions !== \"\") {\r\n ret[RequestedDataSectionType.CompletionInstructions] = [template.completionInstructions];\r\n }\r\n\r\n if (template.bomQuestionnaireId !== null || template.attestationQuestionnaireId !== null || template.supplierQuestionnaireId !== null) {\r\n ret[RequestedDataSectionType.CustomQuestionnaires] = getQuestionnaireNamesFromTemplate(template, questionnaires);\r\n }\r\n\r\n if (template.scheduledReminders.length > 0) {\r\n ret[RequestedDataSectionType.Reminders] = template.scheduledReminders.map(r => \"tn-reminder-\" + r.scheduledDaysSinceRequestSent.toString());\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function removeRowIdentifiersFromSuppliersToInvite(suppliersToInvite: Models.InviteSupplierRowModel[]): Models.InviteSupplierModel[] {\r\n return suppliersToInvite.map(s => (\r\n {\r\n supplierId: s.supplierId,\r\n supplierName: s.supplierName,\r\n contactEmail: s.contactEmail,\r\n requestedMaterials: s.requestedMaterials\r\n }\r\n ));\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function initializeState(dispatch: (action: UpdateInviteSuppliersStateAction) => void, getState: () => ApplicationState ) {\r\n const state = getState();\r\n\r\n if (!state || !state.appServices || !state.inviteSuppliersState) {\r\n throw new Error(\"Error: Invite Suppliers was not in the correct state.\");\r\n }\r\n\r\n dispatch({ type: UpdateInviteSuppliersState, value: { isLoading: true } });\r\n\r\n const apiResult = await toxnotServiceClient.inviteSuppliersBundleGet();\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n const defaultTemplateId = apiResult.data.defaultTemplateId;\r\n\r\n dispatch({\r\n type: UpdateInviteSuppliersState,\r\n value: {\r\n isLoading: false,\r\n templates: apiResult.data.templates,\r\n questionnaires: apiResult.data.questionnaires,\r\n dynamiceRegulations: apiResult.data.dynamicRegulations,\r\n requestedDataSections: getRequestedDataFromTemplateId(defaultTemplateId, apiResult.data.templates, apiResult.data.questionnaires, state.appServices),\r\n currentlySelectedTemplateId: defaultTemplateId,\r\n columnIdsToFriendlyNames: apiResult.data.columnIdsToFriendlyNames\r\n }\r\n });\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function willUserGoOverMaxLibraryQuota(appServices: AppServices, suppliersToInvite: Models.InviteSupplierModel[]): Promise {\r\n if (appServices.userContext == null) {\r\n throw new Error(\"User Context Was Null\");\r\n }\r\n\r\n let potentialNumberOfAddedMaterials = 0;\r\n\r\n for (let s of suppliersToInvite) {\r\n let newMaterials = s.requestedMaterials;\r\n potentialNumberOfAddedMaterials += newMaterials.filter(n => n.inventoryId !== null).length;\r\n }\r\n\r\n const apiResult = await toxnotServiceClient.inventoriesCountLibraryBoms();\r\n\r\n if (!apiResult.success || apiResult.data == null) {\r\n appServices.displayApiErrorMessage();\r\n return null;\r\n }\r\n\r\n if ((apiResult.data + potentialNumberOfAddedMaterials) > appServices.userContext.userCapabilities.maxLibraryInventories) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction validateAllData(supplierRowModels: Models.InviteSupplierRowModel[], appServices: AppServices): boolean {\r\n if (supplierRowModels.some(s => (s.supplierName.trim() === \"\") || (s.contactEmail.trim() === \"\"))) {\r\n const alertText = appServices.localizeString(\"The company name and email address fields cannot be blank.\");\r\n alert(alertText);\r\n return false;\r\n }\r\n\r\n if (supplierRowModels.length === 0) {\r\n alert(appServices.localizeString(\"At least one supplier must be provided.\"));\r\n return false;\r\n }\r\n\r\n if (supplierRowModels.map(s => s.supplierName.trim()).getDuplicates().length > 0) {\r\n $('#duplicate-supplier-name-warning-modal').modal('show');\r\n return false;\r\n }\r\n\r\n if (supplierRowModels.some(s => !Utilities.isValidEmailAddress(s.contactEmail))) {\r\n alert(appServices.localizeString(\"One or more of the provided contact emails is invalid.\"));\r\n return false;\r\n }\r\n\r\n if (supplierRowModels.every(s => s.requestedMaterials.length === 0)) {\r\n if (!confirm(appServices.localizeString(\"You haven't specified any materials. Requests work best when you ask a Supplier for specific materials - but if you don't know your material names, your supplier will be able to respond with any materials they want.\"))) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function isSupplierOnlyMode(inviteSuppliersState: InviteSuppliersState) {\r\n const template = getCurrentlySelectedTemplateFromState(inviteSuppliersState);\r\n\r\n if (!template) {\r\n return false;\r\n }\r\n\r\n if (Object.keys(inviteSuppliersState.requestedDataSections).length === 0 &&\r\n template.bomQuestionnaireId === null &&\r\n template.supplierQuestionnaireId !== null\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function createAndSendSurveys(getState: () => ApplicationState, supplierRowModels: Models.InviteSupplierRowModel[], dispatch: (action: KnownAction) => void) {\r\n\r\n const appState = getState();\r\n const inviteSuppliersState = verifyAndGetInviteSuppliersState(getState);\r\n\r\n dispatch({\r\n type: UpdateInviteSuppliersState,\r\n value: {\r\n activeView: InviteSuppliersViewType.InvitingSuppliers,\r\n offlineProcessOperationId: null,\r\n invitingSuppliersStatus: InvitingSuppliersStatus.StartingInvitation\r\n }\r\n });\r\n\r\n const userContext = appState.appServices!.userContext!;\r\n const reducedUserContext = { ownerId: userContext.teamOwnerId, email: userContext.emailAddress };\r\n\r\n if (userContext.fullName.trim() === \"\") {\r\n throw new Error(\"The Requestor name was not valid.\")\r\n }\r\n\r\n // if we are in supplier only mode, clear all provided materials...\r\n if (isSupplierOnlyMode(inviteSuppliersState)) {\r\n supplierRowModels = supplierRowModels.map(s => ({ ...s, requestedMaterials: [] }));\r\n }\r\n\r\n appState.appServices?.trackEvent(\"Begin_initializeCreateAndSendSurveysOfflineProcess\", reducedUserContext);\r\n\r\n const apiResult = await toxnotServiceClient.initializeCreateAndSendSurveysOfflineProcess({\r\n suppliersToInvite: removeRowIdentifiersFromSuppliersToInvite(supplierRowModels),\r\n mode: CreateSurveysMode.Send,\r\n requestedDataSections: inviteSuppliersState.requestedDataSections,\r\n templateIdToApply: inviteSuppliersState.currentlySelectedTemplateId\r\n });\r\n\r\n appState.appServices?.trackEvent(\"End_initializeCreateAndSendSurveysOfflineProcess\", reducedUserContext);\r\n\r\n if (apiResult.result == \"InvalidEmailToken\") {\r\n dispatch({ type: UpdateInviteSuppliersState, value: { invitingSuppliersStatus: InvitingSuppliersStatus.InviteFailedInvalidEmailToken } });\r\n return;\r\n }\r\n\r\n else if (!apiResult.success || apiResult.data === null) {\r\n dispatch({ type: UpdateInviteSuppliersState, value: { invitingSuppliersStatus: InvitingSuppliersStatus.InviteFailed } });\r\n return;\r\n }\r\n\r\n const offlineProcessOperationId = apiResult.data.operationId;\r\n\r\n dispatch({\r\n type: UpdateInviteSuppliersState,\r\n value: {\r\n activeView: InviteSuppliersViewType.InvitingSuppliers,\r\n invitingSuppliersStatus: InvitingSuppliersStatus.InvitationSent,\r\n offlineProcessOperationId: offlineProcessOperationId\r\n }\r\n });\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action creators\r\n//\r\n\r\nexport const actionCreators = {\r\n initialize: (): AppThunkAction => async (dispatch, getState) => {\r\n initializeState(dispatch, getState);\r\n },\r\n resetState: (doFullInitalization: boolean = true): AppThunkAction => async (dispatch, getState) => {\r\n dispatch({\r\n type: UpdateInviteSuppliersState,\r\n value: getInitialState()\r\n });\r\n\r\n if (doFullInitalization) {\r\n initializeState(dispatch, getState);\r\n }\r\n },\r\n updateSuppliersToInviteStatus: (newStatus: InvitingSuppliersStatus): AppThunkAction => (dispatch, getState) => {\r\n const supplierState = verifyAndGetInviteSuppliersState(getState);\r\n\r\n dispatch({ type: UpdateInviteSuppliersState, value: { invitingSuppliersStatus: newStatus } });\r\n },\r\n updateActiveView: (newActiveView: InviteSuppliersViewType): AppThunkAction => (dispatch, getState) => {\r\n const supplierState = verifyAndGetInviteSuppliersState(getState);\r\n\r\n dispatch({ type: UpdateInviteSuppliersState, value: { activeView: newActiveView } });\r\n },\r\n inviteSuppliers: (mode: CreateSurveysMode, overrideMaxLibrayCheck?: boolean): AppThunkActionAsync => async (dispatch, getState) => {\r\n overrideMaxLibrayCheck ??= false;\r\n\r\n const state = getState();\r\n\r\n const inviteSuppliersState = state.inviteSuppliersState;\r\n\r\n if (!state.appServices || !inviteSuppliersState || !state.selectSuppliersMaterialsTableState) {\r\n return;\r\n }\r\n\r\n const supplierRowModels = state.selectSuppliersMaterialsTableState.supplierRowModels;\r\n\r\n // Make sure user has valid data.\r\n if (!validateAllData(supplierRowModels, state.appServices)) {\r\n return;\r\n }\r\n // Make sure user won't go over quota\r\n if (!overrideMaxLibrayCheck) {\r\n const result = await willUserGoOverMaxLibraryQuota(state.appServices, supplierRowModels);\r\n\r\n // error \r\n if (result == null) {\r\n return;\r\n }\r\n // user will go over quota\r\n else if (result) {\r\n dispatch({\r\n type: UpdateInviteSuppliersState,\r\n value: {\r\n activeView: InviteSuppliersViewType.ExceedQuotaWarning\r\n }\r\n });\r\n\r\n return;\r\n }\r\n }\r\n\r\n state.appServices.trackEvent(\"get-started-send-requests-immediately-button-clicked\");\r\n\r\n switch (mode) {\r\n case CreateSurveysMode.Send:\r\n createAndSendSurveys(getState, supplierRowModels, dispatch);\r\n break;\r\n default:\r\n throw new Error(\"Unsupported Create Surveys Mode\");\r\n }\r\n },\r\n updateInviteSuppliersState: (inviteSuppliersStateToUpdate: Partial): AppThunkAction => (dispatch, getState) => {\r\n const inviteSuppliersState = verifyAndGetInviteSuppliersState(getState);\r\n\r\n const newInviteSuppliersState = {\r\n ...inviteSuppliersState,\r\n ...inviteSuppliersStateToUpdate\r\n };\r\n\r\n dispatch({\r\n type: UpdateInviteSuppliersState,\r\n value: newInviteSuppliersState\r\n });\r\n },\r\n updateCurrentlySelectedTemplate: (templateId: string): AppThunkAction => (dispatch, getState) => {\r\n const inviteSuppliersState = verifyAndGetInviteSuppliersState(getState);\r\n\r\n dispatch({\r\n type: UpdateInviteSuppliersState,\r\n value: {\r\n currentlySelectedTemplateId: templateId,\r\n requestedDataSections: getRequestedDataFromTemplateId(templateId, inviteSuppliersState.templates, inviteSuppliersState.questionnaires, getState().appServices!)\r\n }\r\n });\r\n },\r\n};\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Reducer\r\n//\r\n\r\nexport const reducer: Reducer = (state: InviteSuppliersState | undefined, action: Action): InviteSuppliersState => {\r\n if (state === undefined) {\r\n return getInitialState();\r\n }\r\n\r\n switch (action.type) {\r\n case UpdateInviteSuppliersState:\r\n return {\r\n ...state,\r\n ...(action as UpdateInviteSuppliersStateAction).value\r\n };\r\n }\r\n \r\n return state;\r\n}\r\n","import { OfflineProcessDataResponseResult } from \"../Api/AcceptBomsResponsesModels\";\r\nimport { InviteSupplierModel } from \"../Supplier/Supplier\";\r\n\r\nexport enum OfflineProcessType {\r\n CreateAndSendSurveys = \"CreateAndSendSurveys\",\r\n Report = \"Report\",\r\n CreateAndSendSupplierInviteSurveys = \"CreateAndSendSupplierInviteSurveys\",\r\n SendDraftSurvey = \"SendDraftSurvey\",\r\n ActivateSurveyMaterials = \"ActivateSurveyMaterials\",\r\n AcceptSurveyMaterials = \"AcceptSurveyMaterials\",\r\n SubmitSurveyResponse = \"SubmitSurveyResponse\"\r\n}\r\n\r\nexport enum OfflineProcessingStageType {\r\n Queued = \"Queued\",\r\n Working = \"Working\",\r\n TotallyComplete = \"TotallyComplete\",\r\n Failed = \"Failed\",\r\n PublisingPassports = \"PublishingPassports\",\r\n SendingEmails = \"SendingEmails\"\r\n}\r\n\r\nexport interface OfflineProcessState {\r\n processingStage: OfflineProcessingStageType;\r\n currentProgressItemIndex: number;\r\n progressTotalNumItems: number;\r\n}\r\n\r\nexport interface BaseOfflineProcessData {\r\n operationId: string;\r\n operationType: OfflineProcessType;\r\n shouldEmailOnComplete: boolean;\r\n dateStartedUnix: number;\r\n dateLastUpdatedUnix: number;\r\n dateCompletedUnix: number | null;\r\n userIdWhoInitiatedOperation: string;\r\n fullNameOfUserWhoInitiatedOperation: string;\r\n\r\n context: TConotext;\r\n results: TResults | null;\r\n state: OfflineProcessState;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Create & Send Surveys\r\n//\r\n\r\nexport interface CreateAndSendSurveysOfflineProcessContext {\r\n suppliersToInvite: InviteSupplierModel;\r\n}\r\n\r\nexport interface CreateAndSendSurveysOfflineProcessResults {\r\n supplierIdsAndInventoryIdsTable: { [supplierId: string]: string[] };\r\n createdRequestIds: string[];\r\n}\r\n\r\nexport interface CreateAndSendSurveysOfflineProcessData\r\n extends BaseOfflineProcessData {\r\n\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Bulk Reporting\r\n//\r\n\r\nexport interface BulkReportingReportedFileMetadata {\r\n fileId: string;\r\n filename: string;\r\n}\r\n\r\n\r\nexport interface BulkReportingContext {\r\n inventoryIdsToReport: string[];\r\n reportTypes: string[];\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport interface BulkReportingResults {\r\n zipFileId: string;\r\n processingState: string;\r\n reportedFiles: BulkReportingReportedFileMetadata[];\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// send normal survey\r\n//\r\n\r\n// context needs to be general for the different possibilities; if this is being used, context shouldn't matter.\r\nexport interface OfflineGeneralSurveyProcessData\r\n extends BaseOfflineProcessData {\r\n\r\n}\r\n","import { IStringLocalizer } from \"./IStringLocalizer\";\r\n\r\n//\r\n// Manages requests to save data via API by queuing them up.\r\n//\r\n// Only one request can be \"in flight\" at any time.\r\n//\r\n// New additions to the queue replace things on the queue that haven't been processed yet,\r\n// so at any time there are only 3 scenarios:\r\n//\r\n// A) nothing on the queue. no save requests at all.\r\n// B) one item on the queue. currently being processed.\r\n// C) two items on the queue. the first item is being processed, the next item on the queue will be saved when the first finishes\r\n//\r\n// This functions to smooth out save requests and prevents an API hit for every single user input,\r\n// e.g. typing a single character into a text box.\r\n//\r\n// Clients of this class provide an async callback that will hit an api to save data. The callback\r\n// should return true on success, false if there was a failure. The user will be shown an error message\r\n// in case of failure.\r\n//\r\n// This class also manages the \"beforeunload\" event, and will show a warning to a user\r\n// if they try to leave the page before all data are saved.\r\n//\r\nexport default class SaveDataManager {\r\n private _isEnabled: boolean;\r\n private _queue: TData[];\r\n private _dataObjectSaveHandler: (data: TData) => Promise;\r\n private _localizer: IStringLocalizer;\r\n private _onNeedsToSave?: () => boolean;\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Instantiates a new object with the given save callback\r\n * \r\n * @param dataObjectSaveHandler the callback to use for saving the data via API\r\n */\r\n public constructor(\r\n dataObjectSaveHandler: (data: TData) => Promise,\r\n localizer: IStringLocalizer\r\n ) {\r\n this._isEnabled = false;\r\n this._queue = [];\r\n this._dataObjectSaveHandler = dataObjectSaveHandler;\r\n this._localizer = localizer;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * initializes all events\r\n */\r\n public initialize() {\r\n window.addEventListener(\"beforeunload\", this.window_beforeunload);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * enables saves\r\n */\r\n public enable() {\r\n this._isEnabled = true;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * disables all saves and turns calls to save() into no-ops\r\n */\r\n public disable() {\r\n this._isEnabled = false;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * returns true iff there is more data to save that hasn't been saved yet\r\n */\r\n public needsToSave() {\r\n return this._onNeedsToSave && this._onNeedsToSave(); //(this._queue.length > 0 || (this._onNeedsToSave && this._onNeedsToSave()));\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public setOnNeedsToSave(onNeedsToSave: () => boolean) {\r\n this._onNeedsToSave = onNeedsToSave;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Keeps saving data via the save handler until the queue is empty\r\n */\r\n private async initiateSaveProcess() {\r\n while (this._queue.length > 0) {\r\n const objectToSave = this._queue[0];\r\n\r\n const success = await this._dataObjectSaveHandler(objectToSave);\r\n\r\n if (!success) {\r\n alert(this._localizer.localizeString(\"Sorry, there was a problem saving data.\"));\r\n this._queue = [];\r\n return;\r\n }\r\n\r\n this._queue = this._queue.slice(1);\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Queues objectToSave to be saved via the save handler. If this object\r\n * is the first\r\n * \r\n * @param objectToSave the data to save\r\n */\r\n public save(objectToSave: TData) {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n if (this._queue.length === 0) {\r\n // nothing currently being saved -- kick off the save loop\r\n\r\n this._queue = [objectToSave];\r\n\r\n this.initiateSaveProcess();\r\n }\r\n else {\r\n // something already in the process of being saved... just queue this;\r\n // remove all other items to save except the one currently inflight and this\r\n // new request\r\n // the looping save process will later pick this new item up to save\r\n\r\n this._queue = [this._queue[0], objectToSave];\r\n }\r\n }\r\n\r\n // This method works the same as the save but it waits for the result to be saved before it exits\r\n public async saveAsync(objectToSave: TData) {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n if (this._queue.length === 0) {\r\n // nothing currently being saved -- kick off the save loop\r\n\r\n this._queue = [objectToSave];\r\n\r\n await this.initiateSaveProcess();\r\n }\r\n else {\r\n // something already in the process of being saved... just queue this;\r\n // remove all other items to save except the one currently inflight and this\r\n // new request\r\n // the looping save process will later pick this new item up to save\r\n\r\n this._queue = [this._queue[0], objectToSave];\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n // TODO: nice to have method...\r\n //public async waitForSaveComplete() {\r\n\r\n //}\r\n\r\n // ===============================================================================\r\n\r\n public alertDataNeedsToBeSaved() {\r\n alert(this._localizer.localizeString(\"Please wait for unsaved data to save\"));\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Called before the user leaves the page; will tell the browser to show the\r\n * user a confirmation warning if there is still data left to save\r\n * \r\n * @param e\r\n */\r\n private window_beforeunload = (e: BeforeUnloadEvent) => {\r\n if (this.needsToSave()) {\r\n // this is the magic incantation needed to tell the browser \"show the user a warning confirmation\"\r\n e.preventDefault();\r\n\r\n return e.returnValue = \"Please wait for unsaved data to save.\"; // this string is discarded and a generic message is shown by the browser.\r\n }\r\n }\r\n}","import { IStringLocalizer } from \"../../utilities/IStringLocalizer\";\r\nimport { BaseOfflineProcessData, OfflineProcessingStageType } from \"../Models/OfflineProcesses/OfflineProcessModels\";\r\nimport { ToxnotServiceClient } from \"../ToxnotServiceClient\";\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Manager that handles the polling of an offline process. It is used whenever a client\r\n * needs to know the status of an offline process. doPolling is the method to kick off \r\n * this polling. The Api OfflineProcessGet hit every x seconds returning the current\r\n * offline process.\r\n*/\r\nexport class OfflineProcessPollingManager {\r\n\r\n // ===============================================================================\r\n\r\n private _operationId: string;\r\n private _onPoll: (offlineProcessData: BaseOfflineProcessData) => void;\r\n private _onTotallyComplete: ((offlineProcessData: BaseOfflineProcessData) => void) | null;\r\n private _onFailed: ((offlineProcessData: BaseOfflineProcessData) => void) | null\r\n private _serviceClient: ToxnotServiceClient;\r\n private _localizer: IStringLocalizer;\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Constructs the OfflinePollingProcessManager\r\n * \r\n * @param operationId The id of the offline process that is going to be polled.\r\n * @param localizer Localizer for current user \r\n * @param onPoll A callback that is called every time a polling happens.\r\n * @param onTotallyComplete An optional callback that is called when an offline process has been read as completed successfully.\r\n * @param onFailed An optional callback that is called when an offline process has been read as failed.\r\n */\r\n constructor(\r\n operationId: string,\r\n localizer: IStringLocalizer,\r\n onPoll: (offlineProcessData: BaseOfflineProcessData) => void,\r\n onTotallyComplete?: (offlineProcessData: BaseOfflineProcessData) => void,\r\n onFailed?: (offlineProcessData: BaseOfflineProcessData) => void,\r\n ) {\r\n this._operationId = operationId;\r\n this._onPoll = onPoll;\r\n this._onTotallyComplete = onTotallyComplete ?? null;\r\n this._onFailed = onFailed ?? null;\r\n\r\n this._serviceClient = new ToxnotServiceClient();\r\n this._localizer = localizer;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Starts the polling process by calling the setInterval() function. The provided \r\n * polling function is called every poll. If a offline process has a state of \r\n * totally complete or failed, the totally complete or failed callbacks are \r\n * executed if they are provided.\r\n */\r\n public startPolling = (pollingIntervalInMs: number) => {\r\n const id = setInterval(\r\n () => {\r\n this._serviceClient.offlineProcessDataGet(this._operationId, true).then(\r\n apiResult => {\r\n if (!apiResult.success || apiResult.data === null) {\r\n alert(this._localizer.localizeString(\"Sorry, there was an error while accessing the database.\"));\r\n clearInterval(id);\r\n return;\r\n }\r\n\r\n const offlineProcess = apiResult.data as BaseOfflineProcessData;\r\n\r\n this._onPoll(offlineProcess);\r\n\r\n if (offlineProcess.state.processingStage === OfflineProcessingStageType.TotallyComplete ||\r\n offlineProcess.state.processingStage === OfflineProcessingStageType.Failed) {\r\n\r\n this.doProcessCompleteActions(offlineProcess, id);\r\n }\r\n }\r\n );\r\n },\r\n pollingIntervalInMs\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /*\r\n * Calls the correct callbacks if the process has completed or it has failed. \r\n * clearInterval() is always called.\r\n */\r\n private doProcessCompleteActions(offlineProcessData: BaseOfflineProcessData, timerInveralId: NodeJS.Timeout) {\r\n clearInterval(timerInveralId);\r\n\r\n if (offlineProcessData.state.processingStage === OfflineProcessingStageType.TotallyComplete) {\r\n if (this._onTotallyComplete === null) {\r\n return;\r\n }\r\n\r\n this._onTotallyComplete(offlineProcessData);\r\n }\r\n\r\n else {\r\n if (this._onFailed === null) {\r\n return;\r\n }\r\n\r\n this._onFailed(offlineProcessData);\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /*\r\n * Returns a localized friendly name for offline process stage type. If no matching stage\r\n * type found that matches the given one, a generic \"working\" name is returned instead.\r\n */\r\n public static getFriendlyNameForOfflineProcessStage(offlineProcessStage: OfflineProcessingStageType, localizer: IStringLocalizer) {\r\n const map = {\r\n [OfflineProcessingStageType.Working]: localizer.localizeString(\"Working...\"),\r\n [OfflineProcessingStageType.Queued]: localizer.localizeString(\"Queued\"),\r\n [OfflineProcessingStageType.TotallyComplete]: localizer.localizeString(\"Completed Successfully\"),\r\n [OfflineProcessingStageType.Failed]: localizer.localizeString(\"Failed\"),\r\n [OfflineProcessingStageType.PublisingPassports]: localizer.localizeString(\"Publishing Passports...\"),\r\n [OfflineProcessingStageType.SendingEmails]: localizer.localizeString(\"Sending Emails...\"),\r\n }\r\n\r\n const name = map[offlineProcessStage];\r\n\r\n if (!name) {\r\n return map[OfflineProcessingStageType.Working]\r\n }\r\n\r\n return name;\r\n }\r\n}","// ===============================================================================\r\n//\r\n// This file contains the class containing pathnames for the react-app.\r\n//\r\n// ===============================================================================\r\n\r\nexport class ToxnotReactComponentPaths {\r\n\r\n // ===============================================================================\r\n\r\n public static readonly StartPath = '/Start';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly BaseNewsPath: string = '/News';\r\n\r\n // ===============================================================================\r\n \r\n public static readonly BaseNewsLandingPath: string = ToxnotReactComponentPaths.BaseNewsPath + '/Landing';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly ObtainmentReportsPath: string = \"/ObtainmentReports\";\r\n\r\n // ===============================================================================\r\n\r\n public static readonly BaseNewsArticlePath: string = ToxnotReactComponentPaths.BaseNewsPath + '/Article';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly BaseNewsSearchPath: string = ToxnotReactComponentPaths.BaseNewsPath + '/NewsSearch';\r\n \r\n // ===============================================================================\r\n\r\n\r\n public static readonly BaseRegulationPath: string = '/regulations';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly BaseRegulationDetailsPath: string = '/regulationDetails';\r\n \r\n // ===============================================================================\r\n\r\n public static readonly BaseSharedMaterialsPath: string = '/Exchange';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly BaseSurveyPath: string = '/Survey';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly BaseSurveysPath: string = '/Surveys';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly SharedMaterialsHomeStartPath: string = ToxnotReactComponentPaths.BaseSharedMaterialsPath + '/Start';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly BaseSharedMaterialsDatabasePath: string = ToxnotReactComponentPaths.BaseSharedMaterialsPath + '/Database';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly BaseSharedMaterialsManagementPath: string = ToxnotReactComponentPaths.BaseSharedMaterialsPath + '/Management';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly ContactSupplier: string = ToxnotReactComponentPaths.BaseSharedMaterialsDatabasePath + '/ContactSupplier';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly ShareMaterial: string = ToxnotReactComponentPaths.BaseSharedMaterialsDatabasePath + '/SharePassport';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly SharedMaterialSupplierBase: string = ToxnotReactComponentPaths.BaseSharedMaterialsDatabasePath + '/Supplier';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly SharedMaterialSupplier: string = ToxnotReactComponentPaths.SharedMaterialSupplierBase + '/:ownerId/:companyId?';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly SharedMaterialBaseDetailPath: string = ToxnotReactComponentPaths.BaseSharedMaterialsDatabasePath + '/Detail'\r\n\r\n // ===============================================================================\r\n\r\n public static readonly RequestAccessToSharedMaterial: string = ToxnotReactComponentPaths.BaseSharedMaterialsDatabasePath + '/RequestAccess'\r\n\r\n // ===============================================================================\r\n\r\n public static readonly CompanyPagesManager: string = ToxnotReactComponentPaths.BaseSharedMaterialsManagementPath + '/Brands';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly AccessRequestInbox: string = ToxnotReactComponentPaths.BaseSharedMaterialsManagementPath + '/AccessRequestInbox';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly MyPassports: string = ToxnotReactComponentPaths.BaseSharedMaterialsManagementPath + '/MyPassports';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly GrantGroupAccessInput: string = ToxnotReactComponentPaths.BaseSharedMaterialsManagementPath + '/GrantGroupAccessInput';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly SharedMaterialPublishPreview: string = ToxnotReactComponentPaths.BaseSharedMaterialsPath + '/PublishPreview';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly GetStartedRequestData: string = ToxnotReactComponentPaths.StartPath + '/InviteSuppliers';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly Consult = \"/consult/:code\";\r\n\r\n // ===============================================================================\r\n //\r\n // My Customer Paths\r\n //\r\n\r\n public static readonly MyCustomersBasePath: string = '/MyCustomers';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly MyCustomersBrowsePath = ToxnotReactComponentPaths.MyCustomersBasePath + '/Browse'\r\n\r\n // ===============================================================================\r\n\r\n public static readonly MyCustomerDetailBasePath: string = ToxnotReactComponentPaths.MyCustomersBrowsePath + '/Customer';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly MyCustomerDetailPath: string = ToxnotReactComponentPaths.MyCustomerDetailBasePath + '/:customerId';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly MyCustomerDetailRequestDetailPath: string = ToxnotReactComponentPaths.MyCustomerDetailBasePath + '/:customerId/Request/:requestId';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly RequestReportsBasePath = ToxnotReactComponentPaths.MyCustomersBasePath + \"/RequestReports\";\r\n\r\n // ===============================================================================\r\n\r\n public static readonly RequestReportsPath: string = ToxnotReactComponentPaths.RequestReportsBasePath + '/:customUrlName';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly TaskManagementPath: string = '/Tasks';\r\n}\r\n","// Similar to RegulationManager.cs but for typescript use.\r\n// Holds the list/regulation IDs that are in RegulationManager.cs.\r\n\r\nimport { DynamicRegulation } from \"../Models/Compliance/DynamicRegulation\";\r\n\r\nexport class RegulationManager {\r\n\r\n // The RoHS (Restriction of Hazardous Substances) List\r\n static RohsListId: string = \"67fedc35-951b-4df9-a66e-953c7595fea4\";\r\n\r\n // ===============================================================================\r\n\r\n /// The RoHS Regulation ID\r\n static RohsRegulationId: string = \"1c87c8f8-6df6-43ee-b943-ea8801b326ba\";\r\n\r\n // ===============================================================================\r\n\r\n /// The EU REACH SVHC Candidate (Annex XVII CMRs) List\r\n static ReachSvhcCandidateListId: string = \"7b423e48-7872-40c5-8aad-8210a60cf125\";\r\n\r\n // ===============================================================================\r\n\r\n /// The EU REACH SVHC Candidate Regulation ID\r\n static ReachSvhcCandidateRegulationId: string = \"5e835659-09ca-473e-9795-b97bb3f7411a\";\r\n\r\n // ===============================================================================\r\n\r\n /// The EU REACH SVHC Authorization List\r\n static ReachSvhcAuthorizationListId: string = \"53eef5d0-d903-422a-8e40-f35c83711c9c\";\r\n\r\n // ===============================================================================\r\n\r\n /// The EU REACH SVHC Authorization Regulation ID\r\n static ReachSvhcAuthorizationRegulationId: string = \"92c53d77-3d75-49d3-8d40-de9c37aefea9\";\r\n\r\n // ===============================================================================\r\n\r\n // TODO: KYLE REFCHECK\r\n /// The EU REACH SVHC Authorization V2 Regulation ID\r\n static ReachSvhcAuthorizationV2RegulationId: string = \"3908f984-c9ad-4b00-a499-e6f035abcda4\";\r\n\r\n // ===============================================================================\r\n\r\n /// The Reach CLP Pbt Regulation ID\r\n static Tsca8a7RegulationId: string = \"fe82f7ec-a70e-4c32-a77a-a274aa463c91\";\r\n\r\n // ===============================================================================\r\n\r\n /// The Reach CLP Pbt Regulation ID\r\n static ReachClpPbtRegulationId: string = \"3c3d79ce-9ad0-4a50-998a-89548e18dc9a\";\r\n\r\n // ===============================================================================\r\n\r\n /// The California Prop 65 List\r\n static CaProp65ListId: string = \"13ab8935-8a03-43d4-b8eb-0d5f056bd500\";\r\n\r\n // ===============================================================================\r\n\r\n /// The California Prop 65 Regulation ID\r\n static CaProp65RegulationId: string = \"e1d5cb06-e7ce-4b11-a741-e72f96e3b739\";\r\n\r\n // ===============================================================================\r\n\r\n /// The Living Building Challenge Red List\r\n static LbcRedListListId: string = \"c5e3e750-5876-41be-bcdd-6510a5a56693\";\r\n\r\n // ===============================================================================\r\n\r\n /// The Conflict Minerals Regulation ID\r\n static ConflictMineralsRegulationId: string = \"10e3e1ef-ec4d-4743-ba91-97f9bc3d208a\";\r\n\r\n // ===============================================================================\r\n\r\n /// The Conflict Minerals Template Regulation ID\r\n static ConflictMineralsTemplateRegulationId: string = \"72e08000-7d82-11ee-8501-0800200c9a66\";\r\n\r\n // ===============================================================================\r\n\r\n public static ScipComplianceId: string = \"c47e8390-95db-4958-b626-92b6a155e317\";\r\n\r\n // ===============================================================================\r\n\r\n public static readonly ConegRegulationId: string = \"9b4a5c58-330a-4168-8788-608c3cc80fb3\";\r\n\r\n // ===============================================================================\r\n\r\n public static readonly EuPopsRegulationId: string = \"391f6c85-62d5-4f7b-9712-15edb7935ca4\";\r\n\r\n // ===============================================================================\r\n\r\n public static readonly CmrRegulationId: string = \"41e2aa02-85c4-4166-b72f-e39ab00ea8cf\";\r\n\r\n // ===============================================================================\r\n\r\n public static readonly SaintGobainGenericRegulationId: string = \"8e4dcc9b-24b6-4d36-8860-6aea34078f4f\";\r\n\r\n // ===============================================================================\r\n\r\n public static getRegulationsAs2GroupsAlphabatized(dynRegs: DynamicRegulation[]) {\r\n return dynRegs.filter(d => d.isStandardRegulation).orderBy(x => x.config.name)\r\n .concat(\r\n dynRegs.filter(d => !d.isStandardRegulation).orderBy(x => x.config.name)\r\n );\r\n }\r\n}\r\n","import { IStringLocalizer } from \"../../utilities/IStringLocalizer\";\r\nimport { ReportTypeWithContext } from \"../Models/Api/CustomerApiRequestsAndResponses\";\r\nimport { DynamicRegulation } from \"../Models/Compliance/DynamicRegulation\";\r\nimport { CustomerRequest, ReportContext } from \"../Models/Customers/Customer\";\r\nimport { RegulationManager } from \"./RegulationManager\";\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * This manager handles the getting of the report types for a particular Exchange company. \r\n * It also contains methods to converts report types to various forms as well as contains\r\n * the allowed context for each report type.\r\n */\r\nexport class ReportTypesManager {\r\n\r\n // ===============================================================================\r\n\r\n public static readonly standardReportTypes: Readonly = [\r\n \"compliance-letter\",\r\n \"reach-rohs-statement\",\r\n \"ipc\",\r\n \"hpd\",\r\n \"hpd-simple\",\r\n \"hpd-material-threshold\",\r\n \"leed\",\r\n \"pcds\",\r\n \"compliance-letter-lbc\",\r\n \"smelter-known-list\",\r\n \"smelter-unknown-list\",\r\n \"smelter-unique-known-list\",\r\n \"smelter-unique-unknown-list\"\r\n ];\r\n\r\n // ===============================================================================\r\n\r\n public static readonly freeAccountReportTypes: Readonly = [\r\n \"compliance-letter\",\r\n \"reach-rohs-statement\",\r\n \"ipc\"\r\n ];\r\n\r\n // ===============================================================================\r\n\r\n public static readonly allowedBulkReportTypes: Readonly = [\r\n \"compliance-letter\",\r\n \"reach-rohs-statement\",\r\n \"hpd\",\r\n \"hpd-simple\",\r\n \"hpd-material-threshold\",\r\n \"teknion-eds\",\r\n \"teknion-eds-french\",\r\n \"teknion-eds-2\",\r\n \"teknion-eds-2-french\",\r\n \"leed\",\r\n \"pcds\",\r\n \"leed-mecho\",\r\n \"hni-eds\",\r\n \"mapei-custom-report\",\r\n \"sgls-custom-report\",\r\n \"compliance-letter-lbc\"\r\n ];\r\n\r\n // ===============================================================================\r\n\r\n private static readonly reportTypesThatDoNotNeedProductPercentages: Readonly = [\r\n \"smelter-known-list\",\r\n \"smelter-unknown-list\",\r\n \"smelter-unique-known-list\",\r\n \"smelter-unique-unknown-list\"\r\n ];\r\n\r\n // ===============================================================================\r\n\r\n public static reportNeedsProductPercentages(reportType: string) {\r\n return !this.reportTypesThatDoNotNeedProductPercentages.includes(reportType);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Given a list of report types, this method selects gets the possible contexts for each.\r\n * this would be called if a client needed to display all the regulations a certain report\r\n * type had.\r\n *\r\n * @param reportTypes the reports types to get the contexts from.\r\n */\r\n public static getReportTypesAndContextFromReportTypes(reportTypes: string[], reportTypesToRegulations: { [reportType: string]: string[] }) {\r\n const ret: { [reportType: string]: ReportContext | null } = {}\r\n\r\n for (let r of reportTypes) {\r\n let context: ReportContext | null = null;\r\n\r\n const regs = reportTypesToRegulations[r];\r\n\r\n if (regs) {\r\n context = {\r\n regulations: regs,\r\n listId: null\r\n };\r\n }\r\n\r\n ret[r] = context;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Given a report type context as a json string, this method parses that json string and returns\r\n * a report context object.\r\n *\r\n * @param contextJson the report type context json as a string\r\n */\r\n public static getReportContextFromReportContextJson(contextJson: string | null) {\r\n try {\r\n return contextJson === null ? null : JSON.parse(contextJson) as ReportContext;\r\n }\r\n catch {\r\n console.error(\"Failed to parse JSON: \" + contextJson);\r\n throw new Error(\"Failed to parse JSON in constructReportTypesToRenderFromReportTypesWithContext\");\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Creates and returns the report types and report type contexts for the currently\r\n * selected report types.\r\n *\r\n * @param selectedReportTypes the report types and sub report types currently selected by a user\r\n */\r\n public getReportTypesWithContexts(selectedReportTypes: { [reportType: string]: ReportContext | null }): ReportTypeWithContext[] {\r\n const reportTypes = Object.keys(selectedReportTypes);\r\n\r\n return reportTypes.map(r => {\r\n const context = selectedReportTypes[r] === null ? null : JSON.stringify(selectedReportTypes[r]);\r\n\r\n return {\r\n reportType: r,\r\n contextJson: context\r\n } as ReportTypeWithContext;\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Contains a map of all report types, both standard and customizable and maps them to a\r\n * user friendly name. An error will be thrown if a report type is given that does not have\r\n * a corresponding entry in the map.\r\n * \r\n * @param reportTypeOrRegulation the report types to get the friendly name for\r\n * @param localizer user specific localizer for the friendly name\r\n */\r\n public static getFriendlyNameForReportTypeOrRegulation(reportTypeOrRegulation: string, localizer: IStringLocalizer, dynRegs: DynamicRegulation[]) {\r\n // TODO NF => instead of handling legacy regulation values here, we should deserialize all report contexts\r\n // in the backend and handle any legacy values there.\r\n const reportTypesToFriendlyNames: { [reportType: string]: string } = {\r\n \"compliance-letter\": localizer.localizeString(\"Regulatory Screening Letter\"),\r\n \"reach-rohs-statement\": localizer.localizeString(\"Compliance Report\"),\r\n \"hpd\": localizer.localizeString(\"HPD - Nested Material Inventory, Product Threshold\"),\r\n \"hpd-simple\": localizer.localizeString(\"HPD - Basic Inventory (only substances)\"),\r\n \"hpd-material-threshold\": localizer.localizeString(\"HPD - Nested Material Inventory, Material Thresholds\"),\r\n \"leed\": localizer.localizeString(\"LEED\"),\r\n \"teknion-eds\": localizer.localizeString(\"Teknion EDS\"),\r\n \"teknion-eds-french\": localizer.localizeString(\"Teknion EDS (French)\"),\r\n \"teknion-eds-2\": localizer.localizeString(\"Teknion TK EDS\"),\r\n \"teknion-eds-2-french\": localizer.localizeString(\"Teknion TK EDS (French)\"),\r\n \"hni-eds\": localizer.localizeString(\"HNI EDS\"),\r\n \"mapei-custom-report\": localizer.localizeString(\"Mapei Custom Report\"),\r\n \"leed-mecho\": localizer.localizeString(\"Mecho LEED\"),\r\n \"cal-65\": localizer.localizeString(\"California Prop 65\"),\r\n \"reach\": localizer.localizeString(\"EU REACH SVHC Candidate List & SCIP\"),\r\n \"rohs\": localizer.localizeString(\"EU RoHS\"),\r\n \"conflict-minerals\": localizer.localizeString(\"Conflict Minerals\"),\r\n \"coneg\": localizer.localizeString(\"CONEG\"),\r\n \"eu-pops\": localizer.localizeString(\"EU POPs\"),\r\n \"cmr\": localizer.localizeString(\"EU MDR CMR-ED\"),\r\n \"generic\": localizer.localizeString(\"Generic Statement\"),\r\n \"sgls-custom-report\": localizer.localizeString(\"Saint-Gobain Custom Report\"),\r\n \"pcds\": localizer.localizeString(\"Product Circularity Data Sheet (PCDS)\"),\r\n \"ipc\": localizer.localizeString(\"IPC\"),\r\n \"compliance-letter-lbc\": localizer.localizeString(\"LBC 4.0 Red List Letter\"),\r\n \"reach-authorization\": localizer.localizeString(\"EU REACH Authorisation\"),\r\n \"scip\": localizer.localizeString(\"EU REACH SCIP Database\"),\r\n ...dynRegs.reduce((table: {[regulationId: string]: string}, r: DynamicRegulation) => {\r\n table[r.regulationId] = r.config.name;\r\n return table;\r\n }, {})\r\n };\r\n\r\n let ret = reportTypesToFriendlyNames[reportTypeOrRegulation];\r\n\r\n if (!ret) {\r\n console.error(\"Unknown report type \" + reportTypeOrRegulation);\r\n }\r\n\r\n return ret ?? localizer.localizeString(\"Unknown\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Returns true if the customer request requires a list to respond to a request.\r\n * Else returns false.\r\n * \r\n * @param request Customer Request\r\n */\r\n public static doesCustomerRequestRequireList(request: CustomerRequest) {\r\n const reports = request.requestData.reportTypesAndContexts;\r\n\r\n for (let r of reports) {\r\n const context = this.getReportContextFromReportContextJson(r.contextJson);\r\n\r\n if (context !== null && (context.regulations.includes(\"generic\") ||\r\n context.regulations.includes(RegulationManager.SaintGobainGenericRegulationId))) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Given a list of report types or regulations, this method returns them in alphabetical order\r\n * based on the friendly names for each report.\r\n * \r\n * @param reportTypesOrRegulations Report Types or regualtions\r\n */\r\n\r\n public static getSortedListOfReportTypesOrRegulations(reportTypesOrRegulations: string[], localizer: IStringLocalizer, dynRegs: DynamicRegulation[]) {\r\n return reportTypesOrRegulations.sort((a: string, b: string) => {\r\n return ReportTypesManager.getFriendlyNameForReportTypeOrRegulation(a, localizer, dynRegs).localeCompare(ReportTypesManager.getFriendlyNameForReportTypeOrRegulation(b, localizer, dynRegs));\r\n });\r\n }\r\n}\r\n","import { Customer, CustomerIdToRequestsType, CustomerRequest } from \"../../Models/Customers/Customer\";\r\nimport { Filter, FilterId } from \"../../Models/Filter\";\r\nimport { FilteringManagerNoContext, FilteringManagerWithContext } from \"../../Filtering/FilteringManager\";\r\nimport { FilterCheck, FilterCheckWithContext } from \"../../Filtering/FilterCheck\";\r\n\r\nexport interface MyCustomersFilterCheckContext {\r\n customerIdToRequests: CustomerIdToRequestsType | null;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* The filter check for a my customers home search\r\n*/\r\nexport class MyCustomersSearchFilterCheck extends FilterCheck {\r\n\r\n // ===============================================================================\r\n\r\n public passesCheck(object: Customer) {\r\n const valsToCheck = [object.companyName ?? \"\", ...object.customerContacts.map(c => c.name), ...object.customerContacts.map(c => c.email)].map(v => v.toLowerCase().trim());\r\n return valsToCheck.some(v => v.indexOf(this._activeFilter.value.toLowerCase().trim()) !== -1);\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* The filter check for a my customers home has active requests check\r\n*/\r\nexport class MyCustomersHasActiveRequestsFilterCheck extends FilterCheckWithContext {\r\n\r\n // ===============================================================================\r\n\r\n public passesCheck(object: Customer) {\r\n if (this._context.customerIdToRequests === null) {\r\n return false;\r\n }\r\n\r\n const valToCheck = this._context.customerIdToRequests[object.customerId].some(r => r.dateResponded === null) ? \"yes\" : \"no\";\r\n return valToCheck === this._activeFilter.value.toLowerCase().trim();\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Concrete class for my customers home filtering operations.\r\n*/\r\nexport class MyCustomersFilteringManager extends FilteringManagerWithContext {\r\n protected filterCheckFactory(activeFilter: Filter, context: MyCustomersFilterCheckContext) {\r\n switch (activeFilter.filterId) {\r\n case FilterId.MyCustomerSearch:\r\n return new MyCustomersSearchFilterCheck(activeFilter);\r\n case FilterId.HasActiveRequests:\r\n return new MyCustomersHasActiveRequestsFilterCheck(activeFilter, context)\r\n default:\r\n throw new Error(\"Unknown Customer Filter Id: \" + activeFilter.filterId);\r\n }\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * The filter check for a my customers requests search.\r\n */\r\nexport class MyCustomersRequestsSearchFilterCheck extends FilterCheck{\r\n\r\n // ===============================================================================\r\n\r\n public passesCheck(object: CustomerRequest) {\r\n const valsToCheck = [object.requestData.requestContactName.trim().toLowerCase(), object.requestData.requestContactEmail.trim().toLowerCase()];\r\n\r\n if (object.requestData.factoryName !== \"\") {\r\n valsToCheck.push(object.requestData.factoryName.trim().toLowerCase());\r\n }\r\n\r\n return valsToCheck.some(v => v.indexOf(this._activeFilter.value.toLowerCase().trim()) !== -1);\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Concrete class for my customers request filtering operations.\r\n*/\r\nexport class MyCustomersRequestsFilteringManager extends FilteringManagerNoContext {\r\n protected filterCheckFactory(activeFilter: Filter) {\r\n switch (activeFilter.filterId) {\r\n case FilterId.MyCustomerRequestsSearch:\r\n return new MyCustomersRequestsSearchFilterCheck(activeFilter);\r\n default:\r\n throw new Error(\"Unknown Customer Filter Id: \" + activeFilter.filterId);\r\n }\r\n }\r\n}\r\n","import { Action, Reducer } from 'redux';\r\nimport * as H from 'history';\r\nimport { ApplicationState, AppThunkAction, AppThunkActionAsync } from './../../';\r\nimport { ToxnotServiceClient } from '../../ToxnotServiceClient';\r\nimport * as Models from '../../Models/Customers/Customer';\r\nimport { CreateReportRequest, ReportTypeWithContext, UpdateCustomerRequest } from '../../Models/Api/CustomerApiRequestsAndResponses';\r\nimport SaveDataManager from '../../../utilities/SaveDataManager';\r\nimport { Filter, FilterId } from '../../Models/Filter';\r\nimport { ResultType } from '../../Models/Api/ApiResponse';\r\nimport { AppServices } from '../../../AppServices';\r\nimport { IStringLocalizer } from '../../../utilities/IStringLocalizer';\r\nimport { SharedMaterialIdToCoreDataTable, SharedMaterialsFullCompany } from '../../Models/SharedMaterials/DataModel';\r\nimport { BaseOfflineProcessData, BulkReportingResults, OfflineProcessingStageType, OfflineProcessState } from '../../Models/OfflineProcesses/OfflineProcessModels';\r\nimport { OfflineProcessPollingManager } from '../../Managers/OfflineProcessPollingManager';\r\nimport { BulkReportContext } from '../BulkReport/BulkReportStateController';\r\nimport { ToxnotReactComponentPaths } from '../../../components/core/ToxnotReactComponentPaths';\r\nimport { ReportTypesManager } from '../../Managers/ReportTypesManager';\r\nimport { MyCustomersFilterCheckContext, MyCustomersFilteringManager } from './CustomerFiltering';\r\nimport { InventoryNameWithPossibleId } from '../../Models/InventoryNameWithPossibleId';\r\nimport { DynamicRegulation } from '../../Models/Compliance/DynamicRegulation';\r\n\r\n// ===============================================================================\r\n\r\nexport enum PickReportsModalResponseState {\r\n Default,\r\n CreatingReport,\r\n ReportCreated\r\n}\r\n\r\ntype RequestStatusesType = { [requestId: string]: OfflineProcessState }\r\ntype CustomerIdToCustomerType = { [customerId: string]: Models.Customer }\r\ntype SelectedCustomerIdsType = { [customerId: string]: string };\r\n\r\nexport interface MyCustomersState {\r\n filteredCustomers: Models.Customer[];\r\n activeCustomerFilters: Filter[];\r\n myCustomers: Models.Customer[];\r\n selectedCustomerIds: SelectedCustomerIdsType;\r\n customerIdsToRequests: Models.CustomerIdToRequestsType | null;\r\n customerIdsToPurchases: Models.CustomerIdToPurchasesType;\r\n isLoading: boolean;\r\n customerIdToCustomerTable: CustomerIdToCustomerType;\r\n currentlySelectedCustomerId: string | null;\r\n sharedMaterialIdsToCoreDataTable: SharedMaterialIdToCoreDataTable;\r\n sharedMaterialCompanies: SharedMaterialsFullCompany[];\r\n respondingRequestIdForModals: string | null;\r\n requestsResponding: RequestStatusesType;\r\n requestForCreateReportRequest: CreateReportRequest | null;\r\n pickReportsModalResponseState: PickReportsModalResponseState;\r\n}\r\n\r\nconst defaultOfflineProcessState: OfflineProcessState = {\r\n processingStage: OfflineProcessingStageType.Queued,\r\n progressTotalNumItems: 0,\r\n currentProgressItemIndex: 0\r\n}\r\n\r\nconst initialState: MyCustomersState = {\r\n isLoading: true,\r\n myCustomers: [],\r\n filteredCustomers: [],\r\n activeCustomerFilters: [],\r\n customerIdsToRequests: null,\r\n customerIdsToPurchases: {},\r\n customerIdToCustomerTable: {},\r\n selectedCustomerIds: {},\r\n currentlySelectedCustomerId: null,\r\n sharedMaterialIdsToCoreDataTable: {},\r\n sharedMaterialCompanies: [],\r\n respondingRequestIdForModals: null,\r\n requestsResponding: {},\r\n requestForCreateReportRequest: null,\r\n pickReportsModalResponseState: PickReportsModalResponseState.Default\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action definitions\r\n//\r\n\r\nconst UpdateCustomersState = \"UPDATE_CUSTOMERS_STATE\";\r\n\r\ninterface UpdateCustomersStateAction {\r\n type: typeof UpdateCustomersState;\r\n value: Partial;\r\n}\r\n\r\nconst toxnotServiceClient = new ToxnotServiceClient();\r\nlet offlineProcessManager: OfflineProcessPollingManager | null = null;\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Helper Functions\r\n//\r\n\r\n// ===============================================================================\r\n\r\nexport function getCustomerContactNamesAsString(contacts: Models.CustomerContact[]) {\r\n return contacts.map(c => c.name).join(\", \").coalesceToMaxSizeAndIndicateTruncationWithEllipsis(25);\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function getCustomerContactEmailsAsString(contacts: Models.CustomerContact[]) {\r\n return contacts.map(c => c.email).join(\", \").coalesceToMaxSizeAndIndicateTruncationWithEllipsis(25);\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function getInventoriesToReportOnAsString(inventoriesToReport: InventoryNameWithPossibleId[], localizer: IStringLocalizer) {\r\n return inventoriesToReport\r\n .map(i => i.name)\r\n .truncateAndJoinListOfStringsWithCountDescription(localizer, 3, \", \");\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function getReportTypesAsDisplayableList(request: Models.CustomerRequest, localizer: IStringLocalizer, dynRegs: DynamicRegulation[]) {\r\n let reportTypesToUse: string[] = [];\r\n\r\n for (let r of request.requestData.reportTypesAndContexts) {\r\n const context = r.contextJson === null ? null : JSON.parse(r.contextJson) as Models.ReportContext;\r\n\r\n let reportString = \"\";\r\n\r\n if (context === null) {\r\n reportString = ReportTypesManager.getFriendlyNameForReportTypeOrRegulation(r.reportType, localizer, dynRegs);\r\n }\r\n else {\r\n const sortedRegulations = ReportTypesManager.getSortedListOfReportTypesOrRegulations(context.regulations, localizer, dynRegs);\r\n reportString = ReportTypesManager.getFriendlyNameForReportTypeOrRegulation(r.reportType, localizer, dynRegs) + \" [\" + sortedRegulations.map(reg => ReportTypesManager.getFriendlyNameForReportTypeOrRegulation(reg, localizer, dynRegs)).join(\", \") + \"]\";\r\n }\r\n\r\n reportTypesToUse.push(reportString)\r\n }\r\n\r\n return reportTypesToUse;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function getReportTypesAsDisplayableString(request: Models.CustomerRequest, localizer: IStringLocalizer, dynRegs: DynamicRegulation[], truncate: boolean = true) {\r\n return getReportTypesAsDisplayableList(request, localizer, dynRegs).truncateAndJoinListOfStringsWithCountDescription(localizer, truncate ? 3 : 99999, \", \");\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction verifyAndGetMyCustomerStateFromAppState(appState: ApplicationState) {\r\n if (!appState) {\r\n throw new Error(\"Application State was undefined.\");\r\n }\r\n\r\n if (!appState.myCustomersState) {\r\n throw new Error(\"My Customers State was undefined.\");\r\n }\r\n\r\n return appState.myCustomersState;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction verifyAndGetMyCustomerState(getState: () => ApplicationState) {\r\n return verifyAndGetMyCustomerStateFromAppState(getState());\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function getRequestFromStateOrNull(customersState: MyCustomersState, requestId: string | null) {\r\n if (customersState.currentlySelectedCustomerId === null) {\r\n return null;\r\n }\r\n\r\n if (requestId === null) {\r\n return null;\r\n }\r\n\r\n if (customersState.customerIdsToRequests === null) {\r\n return null;\r\n }\r\n\r\n const request = customersState.customerIdsToRequests[customersState.currentlySelectedCustomerId].find(r => r.requestId === requestId);\r\n\r\n if (!request) {\r\n return null;\r\n }\r\n\r\n return request;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function getRequestFromState(customersState: MyCustomersState, requestId: string | null) {\r\n const request = getRequestFromStateOrNull(customersState, requestId);\r\n\r\n if (request === null) {\r\n throw new Error(\"Request could not be found\");\r\n }\r\n\r\n return request;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function getCurrentlySelectedCustomer(customersState: MyCustomersState) {\r\n if (customersState.currentlySelectedCustomerId === null) {\r\n throw new Error(\"Could not fetch currently selected customer. Currently selected customer ID was null\");\r\n }\r\n\r\n return customersState.customerIdToCustomerTable[customersState.currentlySelectedCustomerId];\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction createCustomerIdToCustomerTable(customers: Models.Customer[]) {\r\n const table: CustomerIdToCustomerType = {}\r\n\r\n for (let c of customers) {\r\n table[c.customerId] = c;\r\n }\r\n\r\n return table;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function getCompanyCustomReportsFromState(myCustomersState: MyCustomersState) {\r\n if (myCustomersState.sharedMaterialCompanies.length === 0) {\r\n return null;\r\n }\r\n\r\n return myCustomersState.sharedMaterialCompanies.selectMany(c => c.reports).distinct();\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function loadAllData(appState: ApplicationState, dispatch: (action: UpdateCustomersStateAction) => void) {\r\n dispatch({ type: UpdateCustomersState, value: { isLoading: true } });\r\n\r\n const apiResult = await toxnotServiceClient.getCustomersBundle();\r\n\r\n if (!apiResult || !apiResult.data) {\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n const table = createCustomerIdToCustomerTable(apiResult.data.customers);\r\n\r\n dispatch({\r\n type: UpdateCustomersState,\r\n value: {\r\n myCustomers: apiResult.data.customers,\r\n customerIdsToRequests: apiResult.data.customerIdToRequests,\r\n customerIdsToPurchases: apiResult.data.customerIdToPurchases,\r\n filteredCustomers: apiResult.data.customers,\r\n isLoading: false,\r\n customerIdToCustomerTable: table,\r\n sharedMaterialCompanies: apiResult.data.sharedMaterialCompanies\r\n }\r\n });\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction applyCustomerFilters(customers: Models.Customer[], customerIdToRequests: Models.CustomerIdToRequestsType | null, newActiveFilters: Filter[]) {\r\n const filteringManager = new MyCustomersFilteringManager();\r\n\r\n const context: MyCustomersFilterCheckContext = {\r\n customerIdToRequests: customerIdToRequests\r\n };\r\n\r\n return filteringManager.getFilteredArray(customers, context, newActiveFilters);\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction removeFilter(filterToRemove: Filter, allFilters: Filter[]) {\r\n return allFilters.filter(f => f.filterId !== filterToRemove.filterId || f.value !== filterToRemove.value);\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction saveCustomerToService(appservices: AppServices, updatedCustomer: UpdateCustomerRequest) {\r\n const saveDataManager = new SaveDataManager(() => toxnotServiceClient.updateCustomer(updatedCustomer).then(r => r.success), appservices);\r\n saveDataManager.initialize();\r\n saveDataManager.enable();\r\n saveDataManager.save(updatedCustomer);\r\n saveDataManager.disable();\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction saveRequestToService(appservices: AppServices, updatedRequest: Models.CustomerRequest) {\r\n const saveDataManager = new SaveDataManager(() => toxnotServiceClient.updateCustomerRequest(updatedRequest).then(r => r.success), appservices);\r\n saveDataManager.initialize();\r\n saveDataManager.enable();\r\n saveDataManager.save(updatedRequest);\r\n saveDataManager.disable();\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction runDeleteSelectedCustomersProcedure(customerState: MyCustomersState, dispatch: (action: UpdateCustomersStateAction) => void) {\r\n const newCustomers = customerState.myCustomers.filter(c => !customerState.selectedCustomerIds[c.customerId]);\r\n\r\n for (let id of Object.keys(customerState.selectedCustomerIds)) {\r\n delete customerState.customerIdToCustomerTable[id];\r\n\r\n if (customerState.customerIdsToRequests !== null) {\r\n delete customerState.customerIdsToRequests[id];\r\n }\r\n\r\n delete customerState.selectedCustomerIds[id];\r\n }\r\n\r\n const filteredCustomers = applyCustomerFilters(newCustomers, customerState.customerIdsToRequests, customerState.activeCustomerFilters);\r\n\r\n dispatch({\r\n type: UpdateCustomersState,\r\n value: {\r\n myCustomers: newCustomers,\r\n filteredCustomers: filteredCustomers,\r\n selectedCustomerIds: { ...customerState.selectedCustomerIds },\r\n customerIdsToRequests: customerState.customerIdsToRequests,\r\n customerIdToCustomerTable: { ...customerState.customerIdToCustomerTable }\r\n }\r\n });\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport function getCurrentlySelectedCustomerRequestsFromState(customersState: MyCustomersState) {\r\n if (customersState.currentlySelectedCustomerId === null) {\r\n throw new Error(\"No customer or request has been selected.\");\r\n }\r\n\r\n if (customersState.customerIdsToRequests === null) {\r\n throw new Error(\"Customer Ids to Requests Map was null\");\r\n }\r\n\r\n return customersState.customerIdsToRequests[customersState.currentlySelectedCustomerId];\r\n}\r\n\r\n\r\n// ===============================================================================\r\n\r\nfunction dispatchUpdateStateWithNewRequest(myCustomersState: MyCustomersState, newRequest: Models.CustomerRequest, dispatch: (action: UpdateCustomersStateAction) => void) {\r\n // If the user does not have customer requests enabled, don't bother updating the state.\r\n if (myCustomersState.customerIdsToRequests === null) {\r\n return;\r\n }\r\n\r\n const customerId = myCustomersState.currentlySelectedCustomerId;\r\n\r\n if (customerId === null) {\r\n return;\r\n }\r\n\r\n let newCustomerIdToRequestsMap: Models.CustomerIdToRequestsType = {}\r\n\r\n const requests = getCurrentlySelectedCustomerRequestsFromState(myCustomersState).filter(r => r.requestId !== newRequest.requestId);\r\n requests.unshift(newRequest);\r\n\r\n newCustomerIdToRequestsMap = { ...myCustomersState.customerIdsToRequests };\r\n newCustomerIdToRequestsMap[customerId] = requests;\r\n\r\n dispatch({ type: UpdateCustomersState, value: { customerIdsToRequests: newCustomerIdToRequestsMap } })\r\n}\r\n\r\n//\r\n// Known Actions\r\n//\r\n\r\ntype KnownAction = UpdateCustomersStateAction;\r\n\r\n// ===============================================================================\r\n\r\nfunction hasMyCustomersEnabled(appState: ApplicationState) {\r\n return appState.appServices?.userContext?.userCapabilities.myCustomersEnabled ?? false;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function onTotallyCompleteOrFailedReportRespond(\r\n requestId: string,\r\n dispatch: (action: KnownAction) => void,\r\n appState: ApplicationState) {\r\n\r\n //\r\n // Update responding state\r\n //\r\n\r\n const customerState = appState.myCustomersState;\r\n\r\n if (!customerState) {\r\n throw new Error(\"Customer State was undefined\");\r\n }\r\n\r\n delete customerState.requestsResponding[requestId];\r\n\r\n dispatch({ type: UpdateCustomersState, value: { requestsResponding: { ...customerState.requestsResponding }, pickReportsModalResponseState: hasMyCustomersEnabled(appState) ? PickReportsModalResponseState.Default : PickReportsModalResponseState.ReportCreated } });\r\n\r\n //\r\n // Update the current request.\r\n //\r\n\r\n const requestResult = await toxnotServiceClient.customerRequestGet(requestId);\r\n\r\n if (!requestResult.success || requestResult.data === null) {\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatchUpdateStateWithNewRequest(appState.myCustomersState!, requestResult.data, dispatch);\r\n\r\n //\r\n // Update the parts for the customer.\r\n //\r\n\r\n const purchasesResult = await toxnotServiceClient.customerInventoryPurchasesGetAllForCustomer(requestResult.data.customerId);\r\n\r\n if (!purchasesResult.success || purchasesResult.data === null) {\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n const newCustomerIdToPurchasesMap = { ...customerState.customerIdsToPurchases };\r\n\r\n newCustomerIdToPurchasesMap[requestResult.data.customerId] = purchasesResult.data;\r\n\r\n dispatch({ type: UpdateCustomersState, value: { customerIdsToPurchases: newCustomerIdToPurchasesMap } })\r\n\r\n //\r\n // Get shared material names from ids\r\n //\r\n\r\n const sharedMaterialIdsToCoreDataTableResult = await toxnotServiceClient.sharedMaterialsGetByIds(requestResult.data.requestData.passportIdsContainingReports);\r\n\r\n if (!sharedMaterialIdsToCoreDataTableResult.success || sharedMaterialIdsToCoreDataTableResult.data === null) {\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatch({ type: UpdateCustomersState, value: { sharedMaterialIdsToCoreDataTable: sharedMaterialIdsToCoreDataTableResult.data } });\r\n\r\n offlineProcessManager = null;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction initiateOfflineProcessPolling(operationId: string, requestId: string, appState: ApplicationState, dispatch: (action: KnownAction) => void) {\r\n if (!appState.myCustomersState || !appState.appServices) {\r\n throw new Error(\"My Customers State was in a bad state.\");\r\n }\r\n\r\n offlineProcessManager = new OfflineProcessPollingManager(\r\n operationId,\r\n appState.appServices!,\r\n (offlineProcessData: BaseOfflineProcessData) => {\r\n const customerState = verifyAndGetMyCustomerStateFromAppState(appState);\r\n\r\n const newRequestStatuses = { ...customerState.requestsResponding };\r\n newRequestStatuses[requestId] = offlineProcessData.state;\r\n\r\n dispatch({ type: UpdateCustomersState, value: { requestsResponding: newRequestStatuses } })\r\n },\r\n (offlineProcessData: BaseOfflineProcessData) => { onTotallyCompleteOrFailedReportRespond(requestId, dispatch, appState) },\r\n (offlineProcessData: BaseOfflineProcessData) => { onTotallyCompleteOrFailedReportRespond(requestId, dispatch, appState) }\r\n );\r\n\r\n offlineProcessManager.startPolling(5000);\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Does all the common operations for responding to a request: updating state, responding\r\n * to the request, and initiating the polling that will update the user on the progress of\r\n * their response.\r\n *\r\n * @param requestId the request id of the request being responded to\r\n * @param state application state\r\n * @param dispatch function to update the local state\r\n*/\r\nasync function doRespondToRequestOperations(requestId: string | null, attempToShowInfoModal: boolean, state: ApplicationState, dispatch: (action: KnownAction) => void) {\r\n if (attempToShowInfoModal && localStorage.getItem(\"dont-show-inform-about-responding-modal\") !== \"true\") {\r\n $('#select-report-type-modal').modal('hide');\r\n $(\"#inform-about-responding-modal\").modal(\"show\");\r\n return;\r\n }\r\n\r\n if (!state.appServices) {\r\n throw new Error(\"AppServices was undefined.\");\r\n }\r\n\r\n const customerState = state.myCustomersState;\r\n\r\n if (!customerState) {\r\n throw new Error(\"Customer State was undefined\");\r\n }\r\n\r\n if (requestId === null) {\r\n throw new Error(\"Request ID was null when attempting to respond to a request\");\r\n }\r\n\r\n if (customerState.requestsResponding[requestId]) {\r\n alert(state.appServices.localizeString(\"You are already responding to this request. You must wait until it completes before you can re-respond\"));\r\n return;\r\n }\r\n\r\n customerState.requestsResponding[requestId] = { ...defaultOfflineProcessState };\r\n\r\n dispatch({ type: UpdateCustomersState, value: { requestsResponding: { ...customerState.requestsResponding }, pickReportsModalResponseState: PickReportsModalResponseState.CreatingReport } });\r\n\r\n const apiResult = await toxnotServiceClient.respondToCustomerRequests([requestId]);\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n initiateOfflineProcessPolling(apiResult.data, requestId, state, dispatch);\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action creators\r\n//\r\n\r\nexport const actionCreators = {\r\n /**\r\n * Load all my customer data\r\n */\r\n loadAllData: (): AppThunkAction => async (dispatch, getState) => {\r\n verifyAndGetMyCustomerState(getState);\r\n\r\n await loadAllData(getState(), dispatch);\r\n },\r\n /**\r\n * creates a new customer, updating both the DB and local state\r\n */\r\n createNewCustomer: (callback: (customerId: string) => void): AppThunkAction => async (dispatch, getState) => {\r\n const appState = getState();\r\n\r\n if (!appState || !appState.appServices) {\r\n return;\r\n }\r\n\r\n const customerState = verifyAndGetMyCustomerState(getState);\r\n\r\n const blankCutomerRequest: UpdateCustomerRequest = {\r\n customerId: null, // new customer\r\n companyName: null,\r\n customerContacts: [{\r\n name: \"\",\r\n email: \"\"\r\n }]\r\n };\r\n\r\n const apiResult = await toxnotServiceClient.updateCustomer(blankCutomerRequest);\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n customerState.myCustomers.push(apiResult.data);\r\n\r\n const newCustomers = Array.from(customerState.myCustomers);\r\n\r\n customerState.customerIdToCustomerTable[apiResult.data.customerId] = apiResult.data;\r\n customerState.customerIdsToPurchases[apiResult.data.customerId] = [];\r\n\r\n let newCustomerIdsToRequests: {} | null = { }; \r\n\r\n if (appState.appServices.userContext!.userCapabilities.myCustomersEnabled && customerState.customerIdsToRequests !== null) {\r\n customerState.customerIdsToRequests[apiResult.data.customerId] = [];\r\n newCustomerIdsToRequests = customerState.customerIdsToRequests;\r\n }\r\n else {\r\n newCustomerIdsToRequests = null;\r\n }\r\n\r\n const newFilteredCustomers = applyCustomerFilters(newCustomers, customerState.customerIdsToRequests, customerState.activeCustomerFilters);\r\n\r\n dispatch({\r\n type: UpdateCustomersState,\r\n value: {\r\n myCustomers: newCustomers,\r\n filteredCustomers: newFilteredCustomers,\r\n customerIdToCustomerTable: { ...customerState.customerIdToCustomerTable },\r\n customerIdsToRequests: newCustomerIdsToRequests,\r\n customerIdsToPurchases: { ...customerState.customerIdsToPurchases },\r\n currentlySelectedCustomerId: apiResult.data.customerId\r\n }\r\n });\r\n\r\n callback(apiResult.data.customerId);\r\n },\r\n /**\r\n * Sets the currently selected customer id\r\n */\r\n loadCustomerIntoCurrentlySelected: (customerId: string | null): AppThunkAction => (dispatch, getState) => {\r\n verifyAndGetMyCustomerState(getState);\r\n\r\n dispatch({ type: UpdateCustomersState, value: { currentlySelectedCustomerId: customerId } });\r\n },\r\n /**\r\n * Generic action method to update the currently selected customer\r\n */\r\n updateSelectedCustomer: (updatedPartialCustomer: Partial): AppThunkAction => (dispatch, getState) => {\r\n const customerState = verifyAndGetMyCustomerState(getState);\r\n\r\n const customerId = customerState.currentlySelectedCustomerId;\r\n\r\n if (customerId === null) {\r\n throw new Error(\"Customer ID was null when updating customer\");\r\n }\r\n\r\n const updatedCustomer: Models.Customer = {\r\n ...customerState.customerIdToCustomerTable[customerId],\r\n ...updatedPartialCustomer\r\n }\r\n\r\n const newCustomers = customerState.myCustomers.map(\r\n c => {\r\n if (c.customerId === customerId) {\r\n c = updatedCustomer\r\n }\r\n\r\n return c\r\n });\r\n\r\n const newUpdateRequest: UpdateCustomerRequest = {\r\n customerId: customerId,\r\n companyName: updatedCustomer.companyName,\r\n customerContacts: customerState.customerIdToCustomerTable[customerId].customerContacts,\r\n };\r\n\r\n const appState = getState();\r\n\r\n if (!appState.appServices) {\r\n throw new Error(\"AppServices was null\");\r\n }\r\n\r\n // save to service.\r\n saveCustomerToService(appState.appServices, newUpdateRequest);\r\n\r\n const updatedTable = createCustomerIdToCustomerTable(newCustomers);\r\n\r\n const filteredCustomers = applyCustomerFilters(newCustomers, customerState.customerIdsToRequests, customerState.activeCustomerFilters);\r\n\r\n // save to local state.\r\n dispatch({ type: UpdateCustomersState, value: { myCustomers: newCustomers, customerIdToCustomerTable: updatedTable, filteredCustomers: filteredCustomers } });\r\n },\r\n /**\r\n * Updates what customers are selected on the My Customers Home view\r\n */\r\n updateSelectedCustomerIds: (selectedIds: SelectedCustomerIdsType): AppThunkAction => (dispatch, getState) => {\r\n verifyAndGetMyCustomerState(getState);\r\n\r\n dispatch({ type: UpdateCustomersState, value: { selectedCustomerIds: { ...selectedIds } } });\r\n },\r\n /**\r\n * Deletes selected customers, updating DB and local state.\r\n */\r\n deleteSelectedCustomer: (): AppThunkAction => async (dispatch, getState) => {\r\n const customerState = verifyAndGetMyCustomerState(getState);\r\n\r\n const apiResult = await toxnotServiceClient.deleteCustomers(Object.keys(customerState.selectedCustomerIds));\r\n\r\n if (!apiResult.success) {\r\n const appState = getState();\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n runDeleteSelectedCustomersProcedure(customerState, dispatch);\r\n },\r\n /**\r\n * adds a filter for the My Customers Home View\r\n */\r\n addFilter: (filter: Filter): AppThunkAction => (dispatch, getState) => {\r\n const customerState = verifyAndGetMyCustomerState(getState);\r\n\r\n const newFilters = removeFilter(filter, customerState.activeCustomerFilters);\r\n newFilters.push(filter);\r\n\r\n const newFilteredCustomers = applyCustomerFilters(customerState.myCustomers, customerState.customerIdsToRequests, newFilters);\r\n\r\n dispatch({ type: UpdateCustomersState, value: { activeCustomerFilters: newFilters, filteredCustomers: newFilteredCustomers } });\r\n },\r\n /**\r\n * removes a given filter\r\n */\r\n removeCustomerFilter: (filter: Filter): AppThunkAction => (dispatch, getState) => {\r\n const customerState = verifyAndGetMyCustomerState(getState);\r\n\r\n const newFilters = removeFilter(filter, customerState.activeCustomerFilters);\r\n\r\n const newFilteredCustomers = applyCustomerFilters(customerState.myCustomers, customerState.customerIdsToRequests, newFilters);\r\n\r\n dispatch({ type: UpdateCustomersState, value: { activeCustomerFilters: newFilters, filteredCustomers: newFilteredCustomers } });\r\n },\r\n /**\r\n * removes any filters of id CustomerFilterId.HasActiveRequests\r\n */\r\n clearActiveRequestsFilters: (): AppThunkAction => (dispatch, getState) => {\r\n const customerState = verifyAndGetMyCustomerState(getState);\r\n\r\n const newFilters = customerState.activeCustomerFilters.filter(f => f.filterId !== FilterId.HasActiveRequests);\r\n\r\n const newFilteredCustomers = applyCustomerFilters(customerState.myCustomers, customerState.customerIdsToRequests, newFilters);\r\n\r\n dispatch({ type: UpdateCustomersState, value: { activeCustomerFilters: newFilters, filteredCustomers: newFilteredCustomers } });\r\n },\r\n /**\r\n * Uploads a spreedsheet of customers to the DB and updates local state\r\n */\r\n uploadCustomers: (file: File): AppThunkAction => async (dispatch, getState) => {\r\n verifyAndGetMyCustomerState(getState);\r\n\r\n const apiResult = await toxnotServiceClient.uploadCustomers(file);\r\n\r\n const state = getState();\r\n\r\n if (apiResult.result === ResultType.UploadTooLarge) {\r\n state.appServices?.displayApiErrorMessage(\"Sorry, your current account does not let you upload files of that size.\");\r\n }\r\n\r\n if (!apiResult.success) {\r\n state.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n },\r\n /**\r\n * Updates the request notes for a request\r\n */\r\n updateRequestNotes: (newNotes: string, request: Models.CustomerRequest): AppThunkAction => (dispatch, getState) => {\r\n const myCustomersState = verifyAndGetMyCustomerState(getState);\r\n\r\n const state = getState();\r\n\r\n if (!state.appServices) {\r\n return;\r\n }\r\n\r\n const newRequest: Models.CustomerRequest = {\r\n ...request,\r\n requestData: {\r\n ...request.requestData,\r\n notes: newNotes\r\n }\r\n }\r\n\r\n // save to service\r\n saveRequestToService(state.appServices, newRequest);\r\n \r\n // save to local state\r\n dispatchUpdateStateWithNewRequest(myCustomersState, newRequest, dispatch);\r\n },\r\n /**\r\n * Starts the process of responding to a customer request.\r\n */\r\n respondToRequest: (requestId: string | null, attempToShowInfoModal: boolean): AppThunkAction => async (dispatch, getState) => {\r\n doRespondToRequestOperations(requestId, attempToShowInfoModal, getState(), dispatch);\r\n },\r\n /**\r\n * Generic action method to update currently selected request\r\n */\r\n updateCurrentlySelectedRequest: (updatedRequest: Partial, requestId: string): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n\r\n const customerState = verifyAndGetMyCustomerState(getState);\r\n\r\n const existingRequest = getRequestFromState(customerState, requestId);\r\n\r\n const newRequest: Models.CustomerRequest = {\r\n ...existingRequest,\r\n ...updatedRequest,\r\n requestData: {\r\n ...existingRequest.requestData,\r\n ...updatedRequest.requestData\r\n }\r\n }\r\n\r\n if (!state.appServices) {\r\n return;\r\n }\r\n\r\n // save to service\r\n saveRequestToService(state.appServices, newRequest);\r\n\r\n // save to local state\r\n dispatchUpdateStateWithNewRequest(customerState, newRequest, dispatch);\r\n },\r\n /**\r\n * Updates the active request from the database instead of memory.\r\n */\r\n updateRequestFromService: (requestId: string): AppThunkAction => async (dispatch, getState) => {\r\n const customerState = verifyAndGetMyCustomerState(getState);\r\n\r\n const apiResult = await toxnotServiceClient.customerRequestGet(requestId);\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n const appState = getState();\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatchUpdateStateWithNewRequest(customerState, apiResult.data, dispatch);\r\n },\r\n /**\r\n * Adds a purchases for a customer\r\n */\r\n addCustomerPurchases: (inventoryIds: string[]): AppThunkAction => async (dispatch, getState) => {\r\n const customerState = verifyAndGetMyCustomerState(getState);\r\n\r\n const customerId = customerState.currentlySelectedCustomerId;\r\n\r\n if (customerId === null) {\r\n throw new Error(\"Customer Id was null\");\r\n }\r\n\r\n const apiResult = await toxnotServiceClient.customerInventoryPurchasesUpdate(customerId, inventoryIds);\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n const appState = getState();\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n const newCustomerIdToPurchasesMap = { ...customerState.customerIdsToPurchases };\r\n\r\n newCustomerIdToPurchasesMap[customerId] = apiResult.data;\r\n\r\n dispatch({ type: UpdateCustomersState, value: { customerIdsToPurchases: newCustomerIdToPurchasesMap } })\r\n },\r\n /**\r\n * Removes purchases for a customer\r\n */\r\n deletePurchases: (inventoryIds: string[]): AppThunkAction => async (dispatch, getState) => {\r\n const customerState = verifyAndGetMyCustomerState(getState);\r\n\r\n const customerId = customerState.currentlySelectedCustomerId;\r\n\r\n if (customerId === null) {\r\n throw new Error(\"Customer Id was null\");\r\n }\r\n\r\n const apiResult = await toxnotServiceClient.customerInventoryPurchasesDelete(customerId, inventoryIds);\r\n\r\n if (!apiResult.success) {\r\n const appState = getState();\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n const newCustomerIdToPurchasesMap = { ...customerState.customerIdsToPurchases };\r\n\r\n newCustomerIdToPurchasesMap[customerId] = newCustomerIdToPurchasesMap[customerId].filter(p => !inventoryIds.includes(p.simpleInventory.inventoryId));\r\n\r\n dispatch({ type: UpdateCustomersState, value: { customerIdsToPurchases: newCustomerIdToPurchasesMap } })\r\n },\r\n /**\r\n * Sets the currently selected request so the list modal can access\r\n */\r\n setRequestIdForModal: (requestId: string | null): AppThunkAction => async (dispatch, getState) => {\r\n verifyAndGetMyCustomerState(getState);\r\n\r\n dispatch({ type: UpdateCustomersState, value: { respondingRequestIdForModals: requestId } })\r\n },\r\n /**\r\n * Removes an inventory to report from the local state\r\n */\r\n removeInventoryToReport: (inventoryIndex: number, requestId: string): AppThunkAction => async (dispatch, getState) => {\r\n const customerState = verifyAndGetMyCustomerState(getState);\r\n\r\n const request = getRequestFromState(customerState, requestId);\r\n\r\n const newInventoriesToReport = request.requestData.inventoriesToReport.filter((inv, index) => index !== inventoryIndex);\r\n\r\n const newRequest: Models.CustomerRequest = {\r\n ...request,\r\n requestData: {\r\n ...request.requestData,\r\n inventoriesToReport: newInventoriesToReport\r\n }\r\n }\r\n\r\n const state = getState();\r\n\r\n if (!state.appServices) {\r\n return;\r\n }\r\n\r\n // save to service\r\n saveRequestToService(state.appServices, newRequest);\r\n\r\n // save to local state\r\n dispatchUpdateStateWithNewRequest(customerState, newRequest, dispatch);\r\n },\r\n /**\r\n * Adds inventories to a request\r\n */\r\n addInventoriesToReport: (requestId: string, inventoryIds: string[]): AppThunkAction => async (dispatch, getState) => {\r\n const customerState = verifyAndGetMyCustomerState(getState);\r\n\r\n const state = getState();\r\n\r\n if (!state.appServices) {\r\n return;\r\n }\r\n\r\n const apiResult = await toxnotServiceClient.customerRequestUpdateInventoriesToReport(requestId, inventoryIds);\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n state.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n // save to local state\r\n dispatchUpdateStateWithNewRequest(customerState, apiResult.data, dispatch);\r\n },\r\n /**\r\n * Updates the local state with shared material core data for a list of shared material ids.\r\n */\r\n getSharedMaterialsFromIds: (sharedMaterialIds: string[]): AppThunkAction => async (dispatch, getState) => {\r\n verifyAndGetMyCustomerState(getState);\r\n\r\n const apiResult = await toxnotServiceClient.sharedMaterialsGetByIds(sharedMaterialIds);\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n const appState = getState();\r\n appState.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatch({ type: UpdateCustomersState, value: { sharedMaterialIdsToCoreDataTable: apiResult.data } })\r\n },\r\n /**\r\n * Set local storage so the responding info request modal is shown or never shown again\r\n */\r\n setDontShowInfoModal: (val: boolean): AppThunkAction => (dispatch, getState) => {\r\n const stringVal = val ? \"true\" : \"false\";\r\n localStorage.setItem(\"dont-show-inform-about-responding-modal\", stringVal);\r\n },\r\n /**\r\n * Sets a request to create in the local state. This is primarily used to save a request across different components\r\n */\r\n setRequestForCreateRequest: (request: CreateReportRequest | null): AppThunkAction => (dispatch, getState) => {\r\n verifyAndGetMyCustomerState(getState);\r\n\r\n dispatch({ type: UpdateCustomersState, value: { requestForCreateReportRequest: request } });\r\n },\r\n /**\r\n * Creates a customer request and responds to it. This would be for a pro-active share\r\n */\r\n doCreateRequestForCurrentCustomerOperation: (attempToShowInfoModal: boolean, history?: H.History): AppThunkAction => async (dispatch, getState) => {\r\n const customerState = verifyAndGetMyCustomerState(getState);\r\n\r\n const requestToCreate = customerState.requestForCreateReportRequest;\r\n\r\n if (requestToCreate === null) {\r\n throw new Error(\"The request to create was null\");\r\n }\r\n\r\n const appServices = getState().appServices;\r\n\r\n if (!appServices) {\r\n return;\r\n }\r\n\r\n const apiResultForRequest = await toxnotServiceClient.createCustomerReportRequest(requestToCreate);\r\n\r\n if (!apiResultForRequest.success || apiResultForRequest.data === null) {\r\n appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatchUpdateStateWithNewRequest(customerState, apiResultForRequest.data, dispatch);\r\n dispatch({ type: UpdateCustomersState, value: { respondingRequestIdForModals: apiResultForRequest.data.requestId } });\r\n\r\n if (ReportTypesManager.doesCustomerRequestRequireList(apiResultForRequest.data)) {\r\n $('#select-report-type-modal').modal('hide');\r\n $('#select-list-modal').modal('show');\r\n return;\r\n }\r\n\r\n if (history) {\r\n $('#select-report-type-modal').modal('hide');\r\n history.push(`${ToxnotReactComponentPaths.MyCustomerDetailBasePath}/${customerState.currentlySelectedCustomerId}/Request/${apiResultForRequest.data.requestId}`)\r\n }\r\n\r\n doRespondToRequestOperations(apiResultForRequest.data.requestId, attempToShowInfoModal, getState(), dispatch);\r\n },\r\n /**\r\n * Sets the pick reports modal response State\r\n */\r\n setPickReportsModalResponseState: (state: PickReportsModalResponseState): AppThunkAction => (dispatch, getState) => {\r\n verifyAndGetMyCustomerState(getState);\r\n\r\n dispatch({ type: UpdateCustomersState, value: { pickReportsModalResponseState: state } });\r\n }\r\n};\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Reducer\r\n//\r\n\r\nexport const reducer: Reducer = (state: MyCustomersState | undefined, action: Action): MyCustomersState => {\r\n if (state === undefined) {\r\n return initialState\r\n }\r\n\r\n switch (action.type) {\r\n case UpdateCustomersState:\r\n return {\r\n ...state,\r\n ...(action as UpdateCustomersStateAction).value\r\n };\r\n }\r\n\r\n return state;\r\n}\r\n","import {Questionnaire, ScipSubmissionData, SurveyPageType} from \"../../../Models/Surveys/SurveyDataModel\";\r\nimport { CoreSurveyResponseData, InventoryDetailsResponse, SurveyResponseValidationResult, ComplianceScoreResult } from \"./SurveyResponseModels\";\r\nimport {BaseRegulationLogicManager} from \"../../../Managers/BaseRegulationLogicManager\";\r\n\r\nexport interface ProgressState {\r\n title: string;\r\n current: string;\r\n currentInventoryId?: string;\r\n next?: string;\r\n maxProgress: number;\r\n currentProgress: number;\r\n}\r\n\r\nexport interface NavContext {\r\n // large-surveys // add pageIndex to keep track of which page of materials the user is on right now\r\n mainNavIndex: SurveyPageType;\r\n currentPageOfMaterialsIndex: number;\r\n inventoryNavIndex: number;\r\n surveyQuestionnaireIndex: number;\r\n surveyQuestionnairePageIndex: number;\r\n previousPageStack: number[]; // Keep track of the jump statements that direct the user outside of the default flow when using the next and back actions\r\n //currentlySelectedScipMaterialNodeRowIndex: number; // the currently selected SCIP material node\r\n currentlySelectedScipSubmissionData: ScipSubmissionData | null;\r\n selectedInventoryPageIndex: number | 0;\r\n selectedInventoryId: string; //keep track of the current selected inventory for state management\r\n}\r\n\r\nexport enum InventoryQuestionnaireType {\r\n BaseQuestionnaire = \"BaseQuestionnaire\",\r\n CustomQuestionnaire = \"CustomQuestionnaire\",\r\n AttestationQuestionnaire = \"AttestationQuestionnaire\"\r\n}\r\n\r\nexport interface SurveyResponseState {\r\n responseId: string;\r\n language: string;\r\n progressState: ProgressState;\r\n dataLoaded: boolean;\r\n pageDataLoaded: boolean;\r\n showErrorMessage: boolean;\r\n showNotFoundErrorScreen: boolean;\r\n coreData: CoreSurveyResponseData | null;\r\n selectedInventory: InventoryDetailsResponse | null;\r\n validationResult: SurveyResponseValidationResult;\r\n navContext: NavContext;\r\n surveyQuestionnairesList: Questionnaire[];\r\n questionnairesTypes: InventoryQuestionnaireType[];\r\n insActiveLanguage: string;\r\n regulationManager: BaseRegulationLogicManager | null;\r\n}\r\n","import {ResponseBomType, SurveyPageType} from \"../../../store/Models/Surveys/SurveyDataModel\";\r\nimport {\r\n getMainSupplierFacingMaterialInventoryList,\r\n materalListSizeBatchAnswerThreshold,\r\n materiaListSizeGroupThreshold\r\n} from \"../../../store/StateControllers/Survey/SurveyResponse/SurveyResponseController\";\r\nimport {\r\n CoreSurveyResponseData,\r\n InventoryDetailsResponse\r\n} from \"../../../store/StateControllers/Survey/SurveyResponse/SurveyResponseModels\";\r\nimport {NavContext} from \"../../../store/StateControllers/Survey/SurveyResponse/SurveyResponseStates\";\r\n\r\nexport class SurveyResponseProgressTextHelper {\r\n // TODO: these need to be localized\r\n\r\n static Instructions = \"Instructions\";\r\n static SurveyInfo = \"Company-level Questionnaire\";\r\n static GroupMaterials = \"Material Groups\";\r\n static InventoryDetails = \"Product Overview\";\r\n static Batch = \"Bulk Inputs\";\r\n static BOM = \"Ingredient Disclosure Data\";\r\n static DigitalProductPassport = \"Digital Product Passport\";\r\n static AddMaterials = \"Add Materials\"\r\n \r\n static mapPageTypeToText: { [key in SurveyPageType]?: any } = {\r\n [SurveyPageType.Instructions]: this.Instructions,\r\n [SurveyPageType.GroupInventories]: this.GroupMaterials,\r\n [SurveyPageType.Inventory]: this.InventoryDetails,\r\n [SurveyPageType.SupplierQuestionnaire]: this.SurveyInfo,\r\n [SurveyPageType.AddMaterials]: this.AddMaterials,\r\n [SurveyPageType.Bom]: this.BOM,\r\n [SurveyPageType.Batch]: this.Batch\r\n }\r\n\r\n static topLevelPagesOrder(coreData: CoreSurveyResponseData): SurveyPageType[] {\r\n const order = [SurveyPageType.Instructions];\r\n\r\n const hasSupplierLevelQuestionnaire = (coreData.response.supplierQuestionnaireData?.questionnaire ?? null) !== null;\r\n const isOpenBom = coreData?.response?.bomType === ResponseBomType.Open;\r\n \r\n const mainSupplierFacingMaterialInventoryList = getMainSupplierFacingMaterialInventoryList();\r\n\r\n if (hasSupplierLevelQuestionnaire) {\r\n order.push(SurveyPageType.SupplierQuestionnaire);\r\n }\r\n \r\n if(isOpenBom) {\r\n order.push(SurveyPageType.AddMaterials)\r\n }\r\n\r\n if (mainSupplierFacingMaterialInventoryList.length >= materalListSizeBatchAnswerThreshold) {\r\n order.push(SurveyPageType.Batch);\r\n }\r\n\r\n if (mainSupplierFacingMaterialInventoryList.length >= materiaListSizeGroupThreshold) {\r\n order.push(SurveyPageType.GroupInventories);\r\n }\r\n\r\n if (mainSupplierFacingMaterialInventoryList.length > 0) {\r\n order.push(SurveyPageType.Inventory);\r\n }\r\n\r\n return order;\r\n }\r\n\r\n static getInventoryFirstSubpageText(inventory: InventoryDetailsResponse, language: string): string | undefined {\r\n if (inventory.hasBomPage) {\r\n return this.BOM;\r\n } else if (inventory.questionnaireList !== null && inventory.questionnaireList.length > 0 && inventory.questionnaireList[0].pages?.length > 0) {\r\n return inventory.questionnaireList[0].pages[0].languageToTitleMap[language] ?? inventory.questionnaireList[0].pages[0].title;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n static getCurrentInventoryStep(inventory: InventoryDetailsResponse | null, navContext: NavContext): number {\r\n let steps = 0;\r\n\r\n if (inventory !== null) {\r\n if(navContext.mainNavIndex === SurveyPageType.Inventory && navContext.surveyQuestionnaireIndex < 0 && navContext.surveyQuestionnairePageIndex < 0)\r\n return steps;\r\n \r\n if (navContext.mainNavIndex === SurveyPageType.Bom) {\r\n steps++;\r\n return steps;\r\n } else {\r\n if (inventory.hasBomPage) {\r\n steps++;\r\n }\r\n\r\n if (inventory.questionnaireList !== null && inventory.questionnaireList.length > 0) {\r\n for (var i = 0; i < inventory.questionnaireList.length; i++) {\r\n if (i < navContext.surveyQuestionnaireIndex) {\r\n steps = steps + inventory.questionnaireList[i].pages.length;\r\n } else {\r\n steps = steps + navContext.surveyQuestionnairePageIndex + 1;\r\n\r\n return steps;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return steps;\r\n }\r\n\r\n static getMaxNumberOfInventorySteps(inventory: InventoryDetailsResponse | null): number {\r\n let steps = 0;\r\n\r\n if (inventory !== null) {\r\n if (inventory.hasBomPage) {\r\n steps++;\r\n }\r\n\r\n if (inventory.questionnaireList !== null && inventory.questionnaireList.length > 0) {\r\n for (var i = 0; i < inventory.questionnaireList.length; i++) {\r\n if (inventory.questionnaireList[i].pages?.length > 0) {\r\n steps = steps + inventory.questionnaireList[i].pages.length;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return steps;\r\n }\r\n\r\n static getNextTextByNavigationContext(inventory: InventoryDetailsResponse | null, navContext: NavContext, coreData: CoreSurveyResponseData, language: string): string | undefined {\r\n if (navContext.mainNavIndex === SurveyPageType.Bom && inventory !== null) {\r\n if (inventory.questionnaireList !== null && inventory.questionnaireList.length > 0) {\r\n return inventory.questionnaireList[0].pages[0].languageToTitleMap[language] ?? inventory.questionnaireList[0].pages[0]?.title;\r\n }\r\n } else if (navContext.mainNavIndex === SurveyPageType.Inventory && inventory !== null) {\r\n if (navContext.surveyQuestionnaireIndex === -1) {\r\n if (inventory.hasBomPage) {\r\n return this.mapPageTypeToText[SurveyPageType.Bom];\r\n } else if (inventory.questionnaireList !== null && inventory.questionnaireList.length > 0) {\r\n return inventory.questionnaireList[0].pages[0]?.languageToTitleMap[language] ?? inventory.questionnaireList[0].pages[0]?.title;\r\n }\r\n } else if (navContext.surveyQuestionnairePageIndex !== -1) {\r\n if (navContext.surveyQuestionnairePageIndex + 1 < inventory.questionnaireList[navContext.surveyQuestionnaireIndex]?.pages?.length) {\r\n return inventory.questionnaireList[navContext.surveyQuestionnaireIndex].pages[navContext.surveyQuestionnairePageIndex + 1].languageToTitleMap[language] ?? inventory.questionnaireList[navContext.surveyQuestionnaireIndex].pages[navContext.surveyQuestionnairePageIndex + 1].title;\r\n } else {\r\n if (navContext.surveyQuestionnaireIndex + 1 < inventory.questionnaireList.length) {\r\n if (inventory.questionnaireList[navContext.surveyQuestionnaireIndex + 1]?.pages.length > 0) {\r\n return inventory.questionnaireList[navContext.surveyQuestionnaireIndex + 1].pages[0].languageToTitleMap[language] ?? inventory.questionnaireList[navContext.surveyQuestionnaireIndex + 1].pages[0].title;\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n const topLevelPages = this.topLevelPagesOrder(coreData);\r\n const currentIndex = topLevelPages.findIndex(i => i === navContext.mainNavIndex);\r\n\r\n if (currentIndex < topLevelPages.length + 1) {\r\n return this.mapPageTypeToText[topLevelPages[currentIndex + 1]];\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n}","import {\r\n ArticleIdentifier,\r\n QuestionnaireQuestion,\r\n ScipCharacteristic,\r\n ScipSubmissionData,\r\n} from \"../../Models/Surveys/SurveyDataModel\";\r\nimport { SafeUseInstructionsScip } from \"../../StateControllers/Survey/SurveyResponse/SurveyResponseModels\";\r\n\r\nexport class ScipDataManager {\r\n public static readonly IsArticleSummaryKey = \"scip_reach_is_article\";\r\n\r\n public static readonly ScipDataKeyPrimaryArticleIdentifier: string = \"primary-article-identifier\";\r\n public static readonly ScipDataKeyArticleCategory = \"article-category\";\r\n public static readonly ScipDataKeyEuProduction = \"eu-production\";\r\n public static readonly ScipDataKeySafeUseInstructions = \"safe-use-instructions\";\r\n public static readonly ScipNumber = \"scip-number\";\r\n public static readonly HasScipNumber = \"has-scip-number\";\r\n public static readonly ScipCharacteristics = \"scip-characteristics\";\r\n public static readonly ComplexObjectOrArticleSummaryKey = \"scip_complex_object_or_article\";\r\n\r\n public static modifyScipSubmissionDataBasedOnScipDataKey(scipQuestion: QuestionnaireQuestion, scipSubmissionData: ScipSubmissionData) {\r\n if (scipQuestion.summaryFieldKey === ScipDataManager.IsArticleSummaryKey) {\r\n return;\r\n }\r\n\r\n switch (scipQuestion.scipDataKey) {\r\n case ScipDataManager.ScipDataKeyPrimaryArticleIdentifier:\r\n scipSubmissionData.primaryArticleIdentifier = this.parseArticleIdentifierValue(scipQuestion.value);\r\n break;\r\n case ScipDataManager.ScipDataKeyArticleCategory:\r\n scipSubmissionData.articleCategoryIds = scipQuestion.value && scipQuestion.value.length > 0 ? JSON.parse(scipQuestion.value) as string[] : [];\r\n break;\r\n case ScipDataManager.ScipDataKeyEuProduction:\r\n const scipProductionInEuropeanUnionAnswerToIdMap: { [index: number]: string } = {\r\n [0]: \"108023\", // both EU produced and imported\r\n [1]: \"108022\", // EU imported\r\n [2]: \"108021\", // EU produced\r\n [3]: \"58236\" // no data\r\n };\r\n\r\n const answerIndex = scipQuestion.predefinedAnswers.findIndex(t => t.nativeAnswer.toLowerCase() === scipQuestion.value.toLowerCase()) ?? 3;\r\n\r\n scipSubmissionData.productionInEuropeanUnionId = scipProductionInEuropeanUnionAnswerToIdMap[answerIndex];\r\n break;\r\n case ScipDataManager.ScipDataKeySafeUseInstructions:\r\n const safeUseInstructions = this.safeUseInstructionParse(scipQuestion.value);\r\n\r\n scipSubmissionData.safeUseInstructions = safeUseInstructions.safeUseInstructions;\r\n scipSubmissionData.noSafeUseInstructionRequired = safeUseInstructions.noSafeUseInstructionRequired;\r\n break;\r\n case ScipDataManager.ScipNumber:\r\n scipSubmissionData.scipNumber = scipQuestion.value;\r\n break;\r\n case ScipDataManager.HasScipNumber:\r\n scipSubmissionData.hasScipNumber = scipQuestion.value;\r\n scipSubmissionData.isScipNumberManuallyEntered = scipQuestion.value.toLowerCase() === \"yes\";\r\n break;\r\n case ScipDataManager.ScipCharacteristics:\r\n scipSubmissionData.characteristics = scipQuestion.value && scipQuestion.value.length > 0 ? JSON.parse(scipQuestion.value) as ScipCharacteristic[] : [];\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n \r\n private static modifyQuestionBasedOnScipDataKey(scipQuestion: QuestionnaireQuestion, scipSubmissionData: ScipSubmissionData) {\r\n if (scipQuestion.summaryFieldKey === ScipDataManager.IsArticleSummaryKey) {\r\n return;\r\n }\r\n\r\n switch (scipQuestion.scipDataKey) {\r\n case ScipDataManager.ScipDataKeyPrimaryArticleIdentifier:\r\n scipQuestion.value = JSON.stringify(scipSubmissionData.primaryArticleIdentifier);\r\n break;\r\n case ScipDataManager.ScipDataKeyArticleCategory:\r\n scipQuestion.value = JSON.stringify(scipSubmissionData.articleCategoryIds);\r\n break;\r\n case ScipDataManager.ScipDataKeyEuProduction:\r\n const scipProductionInEuropeanUnionIdToAnswerIndexMap: { [id: string]: number } = {\r\n [\"108023\"]: 0, // both EU produced and imported\r\n [\"108022\"]: 1, // EU imported\r\n [\"108021\"]: 2, // EU produced\r\n [\"\"]: 3, // no data\r\n [\"58236\"]: 3 // no data\r\n };\r\n\r\n const answerIndex = scipProductionInEuropeanUnionIdToAnswerIndexMap[scipSubmissionData.productionInEuropeanUnionId] ?? 3;\r\n\r\n scipQuestion.value = scipQuestion.predefinedAnswers[answerIndex].nativeAnswer;\r\n break;\r\n case ScipDataManager.ScipDataKeySafeUseInstructions:\r\n const safeUseInstructions: SafeUseInstructionsScip = {\r\n noSafeUseInstructionRequired: scipSubmissionData.noSafeUseInstructionRequired,\r\n safeUseInstructions: scipSubmissionData.safeUseInstructions\r\n };\r\n\r\n scipQuestion.value = JSON.stringify(safeUseInstructions);\r\n break;\r\n case ScipDataManager.ScipNumber:\r\n scipQuestion.value = scipSubmissionData.scipNumber ?? \"\";\r\n break;\r\n case ScipDataManager.HasScipNumber:\r\n scipQuestion.value = scipSubmissionData.hasScipNumber ?? \"\" ;\r\n break;\r\n case ScipDataManager.ScipCharacteristics:\r\n scipQuestion.value = JSON.stringify(scipSubmissionData.characteristics);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n \r\n public static isScipQuestion(question: QuestionnaireQuestion){\r\n return (question.scipDataKey && question.scipDataKey.length > 0) || (question.summaryFieldKey === ScipDataManager.IsArticleSummaryKey);\r\n }\r\n \r\n public static fillScipQuestionsWithScipData(questions: QuestionnaireQuestion[], surveyScipSubmissionData: ScipSubmissionData){\r\n for (let question of questions) {\r\n if (!ScipDataManager.isScipQuestion(question)) {\r\n continue;\r\n }\r\n\r\n ScipDataManager.modifyQuestionBasedOnScipDataKey(question, surveyScipSubmissionData);\r\n }\r\n }\r\n\r\n public static safeUseInstructionParse = (value: string): SafeUseInstructionsScip => {\r\n try {\r\n return JSON.parse(value) as SafeUseInstructionsScip;\r\n } catch {\r\n return {\r\n noSafeUseInstructionRequired: false,\r\n safeUseInstructions: \"\"\r\n };\r\n }\r\n }\r\n\r\n public static parseArticleIdentifierValue = (value: string): ArticleIdentifier => {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return {\r\n value: \"\",\r\n typeOtherText: \"\",\r\n identifierTypeId: \"\"\r\n };\r\n }\r\n }\r\n}\r\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","import { Questionnaire, QuestionnaireQuestion } from \"../../Models/Surveys/SurveyDataModel\";\r\n\r\ninterface QuestionAndIndex {\r\n question: QuestionnaireQuestion;\r\n index: number;\r\n}\r\n\r\n/**\r\n * Evaluator for determing if a questionnaire question is required or not\r\n */\r\nexport abstract class QuestionRequirementEvaluator {\r\n protected _questions: QuestionnaireQuestion[];\r\n private _overallQuestionnaire: Questionnaire;\r\n\r\n constructor(allQuestionsOnPage: QuestionnaireQuestion[], overallQuestionnaire: Questionnaire) {\r\n this._questions = allQuestionsOnPage;\r\n this._overallQuestionnaire = overallQuestionnaire;\r\n }\r\n\r\n protected getChildQuestions(questionIndex: number, allQuestionsOnpage: QuestionAndIndex[], visitedSet = new Set()): QuestionAndIndex[] {\r\n if (visitedSet.has(questionIndex)) {\r\n return [];\r\n }\r\n\r\n visitedSet.add(questionIndex);\r\n\r\n let childQuestions = allQuestionsOnpage.filter((q, i) => (i !== questionIndex && q.question.conditionalOnQuestion?.questionIndex === questionIndex));\r\n\r\n if (childQuestions.length === 0) {\r\n return [];\r\n }\r\n\r\n let ret: QuestionAndIndex[] = childQuestions;\r\n\r\n for (let c of childQuestions) {\r\n ret.unshift(...this.getChildQuestions(c.index, allQuestionsOnpage, visitedSet));\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n protected getParentQuestion(question: QuestionnaireQuestion) {\r\n if (question.conditionalOnQuestion?.pageType) {\r\n return this._overallQuestionnaire.pages.firstOrDefault(p => p.type == question.conditionalOnQuestion?.pageType)?.questions[question.conditionalOnQuestion.questionIndex];\r\n }\r\n else {\r\n return this._questions[question.conditionalOnQuestion?.questionIndex]\r\n }\r\n }\r\n\r\n /**\r\n * Standard way to determine if a question is required without using any custom logic.\r\n * \r\n * @param question\r\n * @returns\r\n */\r\n public isQuestionRequired(\r\n question: QuestionnaireQuestion\r\n ): boolean {\r\n const parentQuestion = this.getParentQuestion(question);\r\n\r\n const conditionallyRequired: boolean =\r\n ((question.conditionalOnQuestion !== null) && (parentQuestion !== undefined)) &&\r\n (question.conditionalOnQuestion.answers.some(answer => answer == parentQuestion.value));\r\n\r\n let parentQuestionRequired = false;\r\n\r\n if (conditionallyRequired && parentQuestion) {\r\n parentQuestionRequired = this.isQuestionRequired(parentQuestion) ?? false;\r\n }\r\n\r\n const standardRequired: boolean =\r\n (question.isRequired || conditionallyRequired) &&\r\n ((!question.conditionalOnQuestion?.requireOnlyIfParentIsRequired) || (question.conditionalOnQuestion?.requireOnlyIfParentIsRequired && parentQuestionRequired));\r\n\r\n return standardRequired;\r\n }\r\n}\r\n\r\nexport class GenericQuestionRequirementEvaluator extends QuestionRequirementEvaluator { }","import { DynamicRegulation } from \"../../../Models/Compliance/DynamicRegulation\";\r\nimport { FileTableEntry } from \"../../../Models/Documents/DocumentModels\";\r\nimport { SimpleInventory } from \"../../../Models/Inventories/SimpleInventory\";\r\nimport {\r\n Questionnaire,\r\n SurveyRequestInventoryMetadata,\r\n QuestionnairePage,\r\n QuestionnairePageType,\r\n SurveyRequest,\r\n SurveyResponseModel,\r\n SurveyResponseInventoryGroup,\r\n GroupedResponseInventories,\r\n BomRevisionRequest,\r\n QuestionRegulatoryData,\r\n InventoryRow,\r\n ComplianceRegulationDetails,\r\n ScipSubmissionData\r\n} from \"../../../Models/Surveys/SurveyDataModel\";\r\nimport {ResultType} from \"../../../Models/Api/ApiResponse\";\r\nimport { InventoryQuestionnaireType } from \"./SurveyResponseStates\";\r\nimport {StandardComplianceScoreAsNumber} from \"../../../Models/SharedMaterials/DataModel\";\r\n\r\nexport enum ProductStatus {\r\n Unanswered = 1,\r\n Incomplete = 2,\r\n Complete = 3\r\n}\r\n\r\nexport enum CertificationType {\r\n Other = \"Other\",\r\n C2c = \"C2c\",\r\n Declare = \"Declare\",\r\n Epd = \"Epd\",\r\n Hpd = \"Hpd\",\r\n Voc = \"Voc\",\r\n UlGreenGuard = \"UlGreenGuard\",\r\n UlGreenGuardGold = \"UlGreenGuardGold\",\r\n ScsIndoorAdvantage = \"ScsIndoorAdvantage\",\r\n ScsIndoorAdvantageGold = \"ScsIndoorAdvantageGold\",\r\n BimfaLevel = \"BimfaLevel\",\r\n EnergyStar = \"EnergyStar\",\r\n SaferChoice = \"SaferChoice\",\r\n Lpc = \"Lpc\",\r\n Nsf140 = \"Nsf140\",\r\n Nsf332 = \"Nsf332\",\r\n GreenCircleCertifiedEnvironmentalFacts = \"GreenCircleCertifiedEnvironmentalFacts\",\r\n GreenCircleCertifiedSustainabilityFacts = \"GreenCircleCertifiedSustainabilityFacts\",\r\n UlEcologo = \"UlEcologo\",\r\n AnsiNsc373 = \"AnsiNsc373\",\r\n UlProductLens = \"UlProductLens\",\r\n GreenCircleCertifiedManufacturerInventoryVerification = \"GreenCircleCertifiedManufacturerInventoryVerification\",\r\n C2cMaterialHealth = \"C2cMaterialHealth\",\r\n Greenscreen = \"Greenscreen\",\r\n GreenHealthApproved = \"GreenHealthApproved\",\r\n GreenSeal = \"GreenSeal\",\r\n CdphStandardMethodv122017 = \"CdphStandardMethodv122017\",\r\n Floorscore = \"Floorscore\",\r\n CriGreenLabelPlus = \"CriGreenLabelPlus\",\r\n MasCertifiedGreen = \"MasCertifiedGreen\",\r\n IntertekCleanAir = \"IntertekCleanAir\",\r\n TscaTitleViNaf = \"TscaTitleViNaf\",\r\n TscaTitleViUlef = \"TscaTitleViUlef\",\r\n Lca = \"Lca\",\r\n GreenCircleCertifiedLifeCycleAssessmentOptimized = \"GreenCircleCertifiedLifeCycleAssessmentOptimized\",\r\n ScsCarbonNeutral = \"ScsCarbonNeutral\",\r\n GreenCircleCertifiedEnergySavings = \"GreenCircleCertifiedEnergySavings\",\r\n FcsCertified = \"FcsCertified\",\r\n SfiCertified = \"SfiCertified\",\r\n UsdaCertifiedBiobased = \"UsdaCertifiedBiobased\",\r\n GreenCircleCertifiedBiobasedContent = \"GreenCircleCertifiedBiobasedContent\",\r\n UlEnvironmentalClaimValidationBiobasedContent = \"UlEnvironmentalClaimValidationBiobasedContent\",\r\n GreenCircleCertifiedRecycledContent = \"GreenCircleCertifiedRecycledContent\",\r\n UlEnvironmentalClaimValidationRecycledContent = \"UlEnvironmentalClaimValidationRecycledContent\",\r\n ScsRecycledContentCertified = \"ScsRecycledContentCertified\",\r\n GlobalRecycledStandard = \"GlobalRecycledStandard\",\r\n GreenCircleCertifiedClosedLoopProduct = \"GreenCircleCertifiedClosedLoopProduct\",\r\n GreenCircleCertifiedRecyclableMaterial = \"GreenCircleCertifiedRecyclableMaterial\",\r\n UsEpdWaterSense = \"UsEpdWaterSense\"\r\n}\r\n\r\nexport interface Certification {\r\n name: string;\r\n certificationExternalId: string;\r\n type: CertificationType;\r\n expirationDate: string;\r\n metadata: {\r\n level: string;\r\n }\r\n}\r\n\r\nexport interface SafeUseInstructionsScip {\r\n safeUseInstructions: string;\r\n noSafeUseInstructionRequired: boolean;\r\n}\r\n\r\n\r\nexport interface PaginatedList {\r\n pageIndex: number;\r\n pageSize: number;\r\n totalCount: number;\r\n items: T[];\r\n}\r\n\r\nexport interface ExtensionRequestModel {\r\n extensionRequestId: string | null;\r\n responseId: string;\r\n responseOwnerId: string;\r\n extensionDate: string | null;\r\n comment: string | null;\r\n inventoryIds: string[];\r\n}\r\n\r\nexport interface InventoryIdentifiers {\r\n inventoryId: string;\r\n name : string;\r\n description : string;\r\n productNumber : string;\r\n supplierPartNumber : string;\r\n}\r\n\r\nexport interface CoreSurveyResponseData {\r\n requestorManufacturerLogoUrl: string | null;\r\n response: SurveyResponseModel;\r\n request: SurveyRequest | null;\r\n inventoryInfoTable: { [inventoryId: string]: SimpleInventory };\r\n allSupplierFiles: FileTableEntry[];\r\n materialIdsDataToLoadList: string[];\r\n revisionReqInvNames: string[];\r\n needsSupplierLevelQuestionnaireResponse: boolean;\r\n needsMaterialResponse: boolean;\r\n complianceInfoNeeded: string;\r\n includeAttestationLetter: boolean;\r\n attestationLetterFileId: string;\r\n requestableColumnIdToFriendlyNameMap: { [columnId: string]: string };\r\n extensionRequest: ExtensionRequestModel;\r\n totalInventories: number | 0; // Total number of inventories\r\n totalInventoriesAfterGrouping: number | 0;\r\n hasGroups: boolean | false; \r\n totalPages: number | 0; // Total number of pages\r\n page: number | 0; // Current page number\r\n size: number;\r\n requestorTargetLibraryInventoryIdentifiers: InventoryIdentifiers[];\r\n\r\n}\r\n\r\nexport interface InventoryDetailsResponse {\r\n inventoryId: string;\r\n questionnairesTypes: InventoryQuestionnaireType[];\r\n questionnaireList: Questionnaire[];\r\n fileList: FileTableEntry[] | null;\r\n hasBomPage: boolean;\r\n name: string;\r\n description: string;\r\n productNumber: string;\r\n supplierPartNumber: string;\r\n photoFileId: string;\r\n revisionRequest: BomRevisionRequest;\r\n bomNextClicked?: boolean;\r\n questionRegulatoryData: QuestionRegulatoryData[];\r\n inventoryRows: InventoryRow[];\r\n applicableRegulatoryLists: ComplianceRegulationDetails[];\r\n\r\n requestorOwnedInventoryId: string;\r\n scipSubmissionData: ScipSubmissionData | null;\r\n extensibleColumnNames: string[];\r\n}\r\n\r\nexport interface PlausibilityData {\r\n question: string;\r\n answer: string;\r\n confidence: string;\r\n shortText: string;\r\n longText: string;\r\n}\r\n\r\nexport interface SurveyInventories {\r\n productsList: PaginatedList;\r\n}\r\n\r\nexport interface InventoryResponses {\r\n questionnaire: Questionnaire;\r\n customQuestionnaire: Questionnaire | undefined;\r\n customAttestationQuestionnaire: Questionnaire | undefined;\r\n}\r\n\r\nexport interface SurveyResponseValidationResult {\r\n result: ResultType | string;\r\n inventoryIds: string[];\r\n optionalQuestionsInventoryIds: string[];\r\n isOverallValid: boolean;\r\n supplierQuestionnaireStatus: boolean;\r\n // TODO: large-surveys // only store status of current page of materials\r\n bomStatusTable: {\r\n [inventoryId: string]: BomStatusItem;\r\n };\r\n supplierQuestionnaireStatusList: PageQuestionnaireStatuses[];\r\n}\r\n\r\nexport interface BomStatusItem {\r\n friendlyName: string;\r\n fieldsStatus: boolean;\r\n questionnaireStatus: boolean;\r\n complianceDataStatus: boolean;\r\n sustainabilityDataStatus: boolean;\r\n circularityDataStatus: boolean;\r\n documentsDataStatus: boolean;\r\n isLinkedSharedMaterial: boolean;\r\n accessLevel: string;\r\n allValidationsPassed: boolean;\r\n attestationQuestionnaireStatus: boolean;\r\n questionnairesStatuses: QuestionnairesStatuses;\r\n inventoryBomValidation: BomValidationStatus[];\r\n}\r\n\r\nexport interface QuestionnairesStatuses {\r\n attestationQuestionnaireStatus: PageQuestionnaireStatuses[];\r\n customQuestionnaireStatus: PageQuestionnaireStatuses[];\r\n baseQuestionnaireStatus: PageQuestionnaireStatuses[];\r\n}\r\n\r\nexport interface BomValidationStatus {\r\n rowIndex: number;\r\n message: string;\r\n columnId: string;\r\n}\r\n\r\nexport interface PageQuestionnaireStatuses {\r\n page: QuestionnairePageType | string;\r\n pageIsComplete: boolean;\r\n questions: QuestionValidationStatus[];\r\n answerIsRemaining: boolean;\r\n}\r\n\r\nexport interface QuestionValidationStatus {\r\n question: string;\r\n valid: boolean;\r\n}\r\n\r\nexport type WriteGroupedResponseInventoriesResult = GroupedResponseInventories;\r\n\r\nexport enum ComplianceScoreNodeType {\r\n material,\r\n substance\r\n}\r\n\r\nexport enum ComplianceScore {\r\n Unknown,\r\n Compliant,\r\n NonCompliant\r\n}\r\n\r\nexport interface ComplianceScoreResult {\r\n standardOverallScore: ComplianceScore;\r\n regulationSpecificOverallScore: string;\r\n standardProductScore: ComplianceScore;\r\n regulationSpecificProductScore: string;\r\n standardMaterialsScore: ComplianceScore;\r\n regulationSpecificMaterialsScore: string;\r\n aggregateDefinitiveNodePercentRange: string;\r\n materialsRootNode: ComplianceMaterialSummaryNode;\r\n}\r\nexport interface PaginationDetails {\r\n totalInventories: number;\r\n totalInventoriesAfterGrouping: number;\r\n totalPages: number;\r\n hasGroups: boolean;\r\n}\r\nexport type RegulationScoresTable = { [regulationId: string]: ComplianceScoreResult | null };\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Represents the compliance determination for a single node in an inventory tree.\r\n// The nodes are used to determine a Materials Score for the product which accounts\r\n// for both linked material-level summary data in the Compliance Response, and\r\n// regulation substance thresholds.\r\n// See C# class for more property details.\r\n//\r\nexport interface ComplianceMaterialSummaryNode {\r\n name: string;\r\n linkedInventoryId: string;\r\n nodeRowIndex: number;\r\n casNumber: string;\r\n substanceId: string;\r\n standardScore: StandardComplianceScoreAsNumber;\r\n specificRegulationScore: string;\r\n flaggedListIds: string[];\r\n productPercentByWeight: string;\r\n hasProductPercentByWeight: boolean;\r\n type: ComplianceScoreNodeType;\r\n summaryTable: { [summaryDataKey: string]: string };\r\n children: ComplianceMaterialSummaryNode[];\r\n isDeterminedBySummaryData: boolean;\r\n isRegulationApplicable: boolean;\r\n hasDescendentNonComplianceOrUnknown: boolean;\r\n}\r\n","import { Questionnaire, QuestionnaireQuestion, QuestionRegulatoryData } from \"../Models/Surveys/SurveyDataModel\";\r\nimport {QuestionRequirementEvaluator} from \"./SurveyResponse/QuestionRequirementEvaluator\";\r\nimport {\r\n ComplianceScore,\r\n ComplianceScoreResult,\r\n InventoryDetailsResponse\r\n} from \"../StateControllers/Survey/SurveyResponse/SurveyResponseModels\";\r\n\r\nexport interface RegulationResponseChangedResult {\r\n value: any,\r\n questionIndicesToHide: number[]\r\n}\r\n\r\nexport class BaseRegulationLogicManager extends QuestionRequirementEvaluator {\r\n public readonly _questionRegulatoryData: Readonly | null;\r\n public readonly _selectedInventory: InventoryDetailsResponse | null;\r\n private readonly _complianceScoreResult: ComplianceScoreResult | null;\r\n\r\n constructor(\r\n questions: QuestionnaireQuestion[],\r\n overallQuestionnaire: Questionnaire, \r\n questionRegulatoryData: QuestionRegulatoryData[] | null,\r\n selectedInventory: InventoryDetailsResponse | null,\r\n complianceScoreResult: ComplianceScoreResult | null\r\n ) {\r\n super(questions, overallQuestionnaire);\r\n\r\n this._questionRegulatoryData = questionRegulatoryData;\r\n this._selectedInventory = selectedInventory;\r\n this._complianceScoreResult = complianceScoreResult;\r\n }\r\n\r\n public getIndicesToHideOrShow(question: QuestionnaireQuestion, questionIndex: number): boolean[] {\r\n let ret: boolean[] = this._questions.map(q => q.hidden ?? false);\r\n\r\n ret = this.getAdditionalQuestionIndicesToHide(question, questionIndex, ret);\r\n\r\n return ret;\r\n }\r\n\r\n protected getAdditionalQuestionIndicesToHide(question: QuestionnaireQuestion, questionIndex: number, indicesToHideOrShow: boolean[]): boolean[] { return [] }\r\n \r\n public onCheckBoxResponseChange(question: QuestionnaireQuestion, answers: string[]): string[] {\r\n return answers;\r\n }\r\n\r\n protected customIsQuestionRequired(question: QuestionnaireQuestion){\r\n return false;\r\n }\r\n\r\n public isQuestionRequiredBasedOnIngredientData(question: QuestionnaireQuestion): boolean {\r\n return false;\r\n }\r\n\r\n public isQuestionRequired(question: QuestionnaireQuestion): boolean {\r\n return super.isQuestionRequired(question) ||\r\n this.customIsQuestionRequired(question) ||\r\n this.isQuestionRequiredBasedOnIngredientData(question);\r\n }\r\n\r\n // Check if there is at least one substance present from the regulated lists that apply to the question.\r\n // the question context is in regulatoryData\r\n public isRegulatedSubstancePresent(regulatoryData: QuestionRegulatoryData): boolean {\r\n if (this._complianceScoreResult === null) {\r\n return false;\r\n }\r\n\r\n if (this._complianceScoreResult.standardMaterialsScore !== ComplianceScore.NonCompliant) {\r\n return false;\r\n }\r\n\r\n return this._complianceScoreResult.materialsRootNode.flaggedListIds.containsAnyOf(regulatoryData.regulationListIds);\r\n }\r\n\r\n // Check if there is at least one substance with CASRN\r\n public hasAtLeastOneCasrnPresent(): boolean {\r\n if (!this._selectedInventory?.inventoryRows) {\r\n return false;\r\n }\r\n\r\n return this._selectedInventory?.inventoryRows.some(i => i.assignedSubstanceId !== null || i.assignedPrivateSubstanceId !== null || (i.overrideCasNumber?.length ?? 0) > 0);\r\n }\r\n\r\n public getPageRequiredInfoLocalized(): string | null {\r\n return null;\r\n }\r\n\r\n public getRadioColumns(): number[] {\r\n return [];\r\n }\r\n}\r\n","const ResourcesConstants = {\r\n NativeAnswerTexts: {\r\n YesAnswer: \"Yes\",\r\n NoAnswer: \"No\",\r\n MeetsWithExemptions: \"Meets With Exemptions\",\r\n NoResponse: \"no response\",\r\n Tested: \"Tested\",\r\n Other : \"Other\"\r\n },\r\n UniversalFieldIds: {\r\n ReferenceDate: \"reference-date\",\r\n SupplierComments: \"supplier-comments\"\r\n }\r\n}\r\n\r\nexport default ResourcesConstants;","import { QuestionRegulatoryData, Questionnaire, QuestionnaireQuestion } from \"../../Models/Surveys/SurveyDataModel\";\r\nimport { BaseRegulationLogicManager } from \"../BaseRegulationLogicManager\";\r\nimport ResourcesConstants from \"../ResourceConstants\";\r\nimport { ComplianceScoreResult, InventoryDetailsResponse } from \"../../StateControllers/Survey/SurveyResponse/SurveyResponseModels\";\r\n\r\nexport class PfasCustomLogicManager extends BaseRegulationLogicManager {\r\n public static PfasRegulationId = \"a7dbbb1e-b5ad-49b3-9b6a-cb737e6233d6\";\r\n private readonly trueAsBit = 1;\r\n private readonly falseAsBit = 0;\r\n private readonly emptyArrayJson = \"[]\";\r\n\r\n private readonly q1Id: string = \"1\";\r\n private readonly q2Id: string = \"2\";\r\n private readonly q3Id: string = \"3\";\r\n private readonly q4Id: string = \"4\";\r\n private readonly q5Id: string = \"5\";\r\n private readonly q6Id: string = \"6\";\r\n private readonly q7Id: string = \"7\";\r\n private readonly q8Id: string = \"8\";\r\n\r\n private readonly fluorine: string = \"Fluorine\";\r\n private readonly chlorine: string = \"Chlorine\";\r\n private readonly bromine: string = \"Bromine\";\r\n private readonly iodine: string = \"Iodine\";\r\n private readonly unknown: string = \"Unknown\";\r\n private readonly noOrganohalogensInt: string = \"No organohalogens were intentionally added\";\r\n private readonly noOrganohalogensUnint: string = \"No organohalogens were unintentionally added\";\r\n\r\n constructor(questions: QuestionnaireQuestion[], overallQuestionnaire: Questionnaire, questionRegulatoryData: QuestionRegulatoryData[], selectedInventory: InventoryDetailsResponse | null, complianceScoreResult: ComplianceScoreResult | null) {\r\n super(questions, overallQuestionnaire, questionRegulatoryData, selectedInventory, complianceScoreResult);\r\n }\r\n\r\n onCheckBoxResponseChange = (question: QuestionnaireQuestion, answers: string[]) => {\r\n if (question.id === this.q1Id) {\r\n if (answers.includes(this.unknown)) {\r\n answers = [this.unknown];\r\n question.disabledValues = [this.fluorine, this.chlorine, this.bromine, this.iodine, this.noOrganohalogensInt];\r\n } else if (answers.includes(this.noOrganohalogensInt)) {\r\n answers = [this.noOrganohalogensInt];\r\n question.disabledValues = [this.fluorine, this.chlorine, this.bromine, this.iodine, this.unknown];\r\n } else {\r\n question.disabledValues = [];\r\n }\r\n }\r\n else if (question.id === this.q2Id) {\r\n if (answers.includes(this.unknown)) {\r\n answers = [this.unknown];\r\n question.disabledValues = [this.fluorine, this.chlorine, this.bromine, this.iodine, this.noOrganohalogensUnint];\r\n } else if (answers.includes(this.noOrganohalogensUnint)) {\r\n answers = [this.noOrganohalogensUnint];\r\n question.disabledValues = [this.fluorine, this.chlorine, this.bromine, this.iodine, this.unknown];\r\n } else {\r\n question.disabledValues = [];\r\n }\r\n }\r\n\r\n question.value = JSON.stringify(question.predefinedAnswers.map(p => answers.some(a => a == p.nativeAnswer) ? this.trueAsBit : this.falseAsBit))\r\n return answers;\r\n }\r\n\r\n public getRadioColumns(): number[] {\r\n return [2, 3];\r\n }\r\n\r\n protected getAdditionalQuestionIndicesToHide = (question: QuestionnaireQuestion, questionIndex: number, indicesToHideOrShow: boolean[]) => {\r\n const isFluorineSelected = this.isFluorineSelected();\r\n const isUnknownSelected = this.isUnknownSelected();\r\n\r\n let childQuestionIndex1;\r\n let childQuestionIndex2;\r\n\r\n switch (question.id) {\r\n case this.q1Id:\r\n case this.q2Id: {\r\n childQuestionIndex1 = this._questions.findIndex(q => q.id === this.q3Id);\r\n childQuestionIndex2 = this._questions.findIndex(q => q.id === this.q7Id);\r\n\r\n indicesToHideOrShow[childQuestionIndex1] = !isFluorineSelected;\r\n indicesToHideOrShow = this.getAdditionalQuestionIndicesToHide(this._questions[childQuestionIndex1], childQuestionIndex1, indicesToHideOrShow);\r\n\r\n indicesToHideOrShow[childQuestionIndex2] = !(isUnknownSelected && !isFluorineSelected);\r\n indicesToHideOrShow = this.getAdditionalQuestionIndicesToHide(this._questions[childQuestionIndex2], childQuestionIndex2, indicesToHideOrShow);\r\n break;\r\n }\r\n case this.q3Id: {\r\n childQuestionIndex1 = this._questions.findIndex(q => q.id === this.q4Id);\r\n indicesToHideOrShow[childQuestionIndex1] = !(isFluorineSelected && (question.value.length > 0 && question.value !== this.emptyArrayJson));\r\n indicesToHideOrShow = this.getAdditionalQuestionIndicesToHide(this._questions[childQuestionIndex1], childQuestionIndex1, indicesToHideOrShow);\r\n break;\r\n }\r\n case this.q4Id: {\r\n childQuestionIndex1 = this._questions.findIndex(q => q.id === this.q5Id);\r\n childQuestionIndex2 = this._questions.findIndex(q => q.id === this.q6Id);\r\n\r\n const isParentQuestionDisplayed = isFluorineSelected && (question.value.length > 0 && question.value !== this.emptyArrayJson);\r\n\r\n indicesToHideOrShow[childQuestionIndex1] = !(isParentQuestionDisplayed && question.value.toLowerCase() === ResourcesConstants.NativeAnswerTexts.Tested.toLowerCase());\r\n indicesToHideOrShow[childQuestionIndex2] = !isParentQuestionDisplayed;\r\n break;\r\n }\r\n case this.q7Id: {\r\n childQuestionIndex1 = this._questions.findIndex(q => q.id === this.q8Id);\r\n\r\n const isParentQuestionDisplayed = isUnknownSelected && !isFluorineSelected;\r\n\r\n indicesToHideOrShow[childQuestionIndex1] = !(isParentQuestionDisplayed && question.value && JSON.parse(question.value).containsAnyOf([1]));\r\n break;\r\n }\r\n }\r\n\r\n return indicesToHideOrShow;\r\n }\r\n\r\n protected customIsQuestionRequired = (question: QuestionnaireQuestion) => {\r\n const isFluorineSelected = this.isFluorineSelected();\r\n const isUnknownSelected = this.isUnknownSelected();\r\n let parentQuestionIndex;\r\n\r\n switch (question.id) {\r\n case this.q3Id: {\r\n return isFluorineSelected;\r\n }\r\n case this.q4Id: {\r\n parentQuestionIndex = this._questions.findIndex(q => q.id === this.q3Id);\r\n return isFluorineSelected && (this._questions[parentQuestionIndex].value.length > 0 && this._questions[parentQuestionIndex].value !== this.emptyArrayJson);\r\n }\r\n case this.q7Id: {\r\n return isUnknownSelected && !isFluorineSelected;\r\n }\r\n case this.q8Id: {\r\n parentQuestionIndex = this._questions.findIndex(q => q.id === this.q7Id);\r\n let isParentDisplayed = isUnknownSelected && !isFluorineSelected;\r\n return isParentDisplayed && this._questions[parentQuestionIndex].value && JSON.parse(this._questions[parentQuestionIndex].value).containsAnyOf([1]);\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private isNthValueChecked(value: string, optionNumber: number) : boolean {\r\n if (!value || value === ResourcesConstants.NativeAnswerTexts.NoResponse) {\r\n return false;\r\n }\r\n\r\n const answerList: number[] = JSON.parse(value);\r\n\r\n return answerList[optionNumber] === this.trueAsBit;\r\n }\r\n\r\n private isFluorineSelected() : boolean {\r\n const firstQuestionValue = this._questions.find(q => q.id === this.q1Id)?.value ?? \"\";\r\n const secondQuestionValue = this._questions.find(q => q.id === this.q2Id)?.value ?? \"\";\r\n\r\n return this.isNthValueChecked(firstQuestionValue, 0) || this.isNthValueChecked(secondQuestionValue, 0);\r\n }\r\n\r\n private isUnknownSelected() : boolean {\r\n const firstQuestionValue = this._questions.find(q => q.id === this.q1Id)?.value ?? \"\";\r\n const secondQuestionValue = this._questions.find(q => q.id === this.q2Id)?.value ?? \"\";\r\n\r\n return this.isNthValueChecked(firstQuestionValue, 5) || this.isNthValueChecked(secondQuestionValue, 5);\r\n }\r\n}\r\n\r\n","import { QuestionRegulatoryData, Questionnaire, QuestionnaireQuestion } from \"../../Models/Surveys/SurveyDataModel\";\r\nimport { BaseRegulationLogicManager } from \"../BaseRegulationLogicManager\";\r\nimport ResourcesConstants from \"../ResourceConstants\";\r\nimport {ComplianceScoreResult, InventoryDetailsResponse} from \"../../StateControllers/Survey/SurveyResponse/SurveyResponseModels\";\r\n\r\nexport class ReachAuthorizationCustomLogicManager extends BaseRegulationLogicManager {\r\n public static ReachSvhcAuthorizationRegulationId = \"3908f984-c9ad-4b00-a499-e6f035abcda4\";\r\n\r\n private readonly containSubstAnnexXIVKey: string = \"reach_authv2_contains_substance\";\r\n private readonly relevantSubstAnnexXIVKey: string = \"reach_Annex_XIV_substances\";\r\n private readonly containSubstAnnexXVIIKey: string = \"reach_Annex_XVII\";\r\n private readonly relevantSubstAnnexXVIIKey: string = \"reach_Annex_XVII_substances\";\r\n\r\n constructor(questions: QuestionnaireQuestion[], overallQuestionnaire: Questionnaire, questionRegulatoryData: QuestionRegulatoryData[], selectedInventory: InventoryDetailsResponse | null, complianceScoreResult: ComplianceScoreResult | null) {\r\n super(questions, overallQuestionnaire, questionRegulatoryData, selectedInventory, complianceScoreResult);\r\n }\r\n\r\n protected getAdditionalQuestionIndicesToHide = (question: QuestionnaireQuestion, questionIndex: number, indicesToHideOrShow: boolean[]) => {\r\n let childQuestion = -1;\r\n\r\n const ret: number[] = [];\r\n\r\n switch (question.summaryFieldKey) {\r\n case this.containSubstAnnexXIVKey: {\r\n childQuestion = this._questions.findIndex(q => q.summaryFieldKey == this.relevantSubstAnnexXIVKey);\r\n break;\r\n }\r\n case this.containSubstAnnexXVIIKey: {\r\n childQuestion = this._questions.findIndex(q => q.summaryFieldKey == this.relevantSubstAnnexXVIIKey);\r\n break;\r\n } \r\n }\r\n\r\n indicesToHideOrShow[childQuestion] = question.value !== ResourcesConstants.NativeAnswerTexts.YesAnswer;\r\n\r\n return indicesToHideOrShow;\r\n }\r\n}\r\n","import { QuestionRegulatoryData, Questionnaire, QuestionnaireQuestion } from \"../../Models/Surveys/SurveyDataModel\";\r\nimport { BaseRegulationLogicManager } from \"../BaseRegulationLogicManager\";\r\nimport ResourcesConstants from \"../ResourceConstants\";\r\nimport {ComplianceScoreResult, InventoryDetailsResponse} from \"../../StateControllers/Survey/SurveyResponse/SurveyResponseModels\";\r\n\r\nexport class RohsCustomLogicManager extends BaseRegulationLogicManager {\r\n public static RohsRegulationId = \"1c87c8f8-6df6-43ee-b943-ea8801b326ba\";\r\n\r\n private readonly subjectToDirectiveKey: string = \"rohs_subject_to_directive\";\r\n private readonly meetsRequirementsKey: string = \"rohs_meets_requirements\";\r\n private readonly exemptionsKey: string = \"rohs_exemptions\";\r\n private readonly containsRestrictedSubstancesKey: string = \"rohs_constains_restricted_substances\";\r\n private readonly restrictedSubstancesKey: string = \"rohs_restricted_substances\";\r\n\r\n constructor(questions: QuestionnaireQuestion[], overallQuestionnaire: Questionnaire, questionRegulatoryData: QuestionRegulatoryData[], selectedInventory: InventoryDetailsResponse | null, complianceScoreResult: ComplianceScoreResult | null) {\r\n super(questions, overallQuestionnaire, questionRegulatoryData, selectedInventory, complianceScoreResult);\r\n }\r\n\r\n protected getAdditionalQuestionIndicesToHide = (question: QuestionnaireQuestion, questionIndex: number, indicesToHideOrShow: boolean[]) => {\r\n let childQuestionIndex = -1;\r\n\r\n switch (question.summaryFieldKey) {\r\n case this.subjectToDirectiveKey: {\r\n childQuestionIndex = this._questions.findIndex(q => q.summaryFieldKey == this.meetsRequirementsKey);\r\n\r\n indicesToHideOrShow[childQuestionIndex] = question.value !== ResourcesConstants.NativeAnswerTexts.YesAnswer;\r\n\r\n if (childQuestionIndex !== -1) {\r\n const childQuestion = this._questions[childQuestionIndex];\r\n indicesToHideOrShow = this.getAdditionalQuestionIndicesToHide(childQuestion, questionIndex, indicesToHideOrShow);\r\n }\r\n\r\n break;\r\n }\r\n case this.meetsRequirementsKey: {\r\n childQuestionIndex = this._questions.findIndex(q => q.summaryFieldKey == this.exemptionsKey);\r\n indicesToHideOrShow[childQuestionIndex] = question.value !== ResourcesConstants.NativeAnswerTexts.MeetsWithExemptions;\r\n break;\r\n }\r\n case this.containsRestrictedSubstancesKey: {\r\n childQuestionIndex = this._questions.findIndex(q => q.summaryFieldKey == this.restrictedSubstancesKey);\r\n indicesToHideOrShow[childQuestionIndex] = question.value !== ResourcesConstants.NativeAnswerTexts.YesAnswer;\r\n break;\r\n }\r\n }\r\n\r\n return indicesToHideOrShow;\r\n }\r\n}\r\n","import { QuestionRegulatoryData, Questionnaire, QuestionnaireQuestion } from \"../../Models/Surveys/SurveyDataModel\";\r\nimport { BaseRegulationLogicManager } from \"../BaseRegulationLogicManager\";\r\nimport ResourcesConstants from \"../ResourceConstants\";\r\nimport { ComplianceScoreResult, InventoryDetailsResponse } from \"../../StateControllers/Survey/SurveyResponse/SurveyResponseModels\";\r\n\r\nexport class CaProp65CustomLogicManager extends BaseRegulationLogicManager {\r\n public static CaProp65RegulationId = \"e1d5cb06-e7ce-4b11-a741-e72f96e3b739\";\r\n\r\n private readonly ContainsChemicalKey: string = \"cal_65_contains_chemical\";\r\n private readonly RequiresDisclosureKey: string = \"cal_65_requires_disclosure\";\r\n private readonly WarningTextKey: string = \"cal_65_warning_text\";\r\n private readonly NoWarningReasonKey: string = \"cal_65_no_warning_reason\";\r\n private readonly SupplierComments: string = \"cal_65_supplier_comments\";\r\n private readonly IntendedToBeSoldInUsQuestion = \"Is the product intended to be sold into the United States?\";\r\n private readonly IntendedToBeSoldInCalifornia = \"Is the product intended to be sold into the State of California?\";\r\n\r\n constructor(questions: QuestionnaireQuestion[], overallQuestionnaire: Questionnaire, questionRegulatoryData: QuestionRegulatoryData[], selectedInventory: InventoryDetailsResponse | null, complianceScoreResult: ComplianceScoreResult | null) {\r\n super(questions, overallQuestionnaire, questionRegulatoryData, selectedInventory, complianceScoreResult);\r\n }\r\n\r\n protected getAdditionalQuestionIndicesToHide = (question: QuestionnaireQuestion, questionIndex: number, indicesToHideOrShow: boolean[]) => {\r\n if (!this.shouldShowCaProp65()) {\r\n return this._questions.map(_ => true);\r\n } else if (this._questions.every(q => q.hidden)) {\r\n indicesToHideOrShow = this._questions.map(_ => false);\r\n }\r\n\r\n let childQuestion1;\r\n let childQuestion2;\r\n\r\n switch (question.summaryFieldKey) {\r\n case this.ContainsChemicalKey: {\r\n childQuestion2 = this._questions.findIndex(q => q.summaryFieldKey === this.NoWarningReasonKey);\r\n let firstQuestionValue = this._questions.find(q => q.summaryFieldKey == this.RequiresDisclosureKey)?.value ?? \"\";\r\n indicesToHideOrShow[childQuestion2] = question.value !== ResourcesConstants.NativeAnswerTexts.YesAnswer || firstQuestionValue !== ResourcesConstants.NativeAnswerTexts.NoAnswer;\r\n\r\n break;\r\n }\r\n case this.RequiresDisclosureKey: {\r\n childQuestion1 = this._questions.findIndex(q => q.summaryFieldKey === this.WarningTextKey);\r\n childQuestion2 = this._questions.findIndex(q => q.summaryFieldKey === this.NoWarningReasonKey);\r\n let firstQuestionValue = this._questions.find(q => q.summaryFieldKey == this.ContainsChemicalKey)?.value ?? \"\";\r\n\r\n indicesToHideOrShow[childQuestion1] = question.value !== ResourcesConstants.NativeAnswerTexts.YesAnswer;\r\n indicesToHideOrShow[childQuestion2] = question.value !== ResourcesConstants.NativeAnswerTexts.NoAnswer || firstQuestionValue !== ResourcesConstants.NativeAnswerTexts.YesAnswer;\r\n\r\n break;\r\n }\r\n }\r\n\r\n return indicesToHideOrShow;\r\n }\r\n\r\n public customIsQuestionRequired(question: QuestionnaireQuestion) {\r\n if (question.summaryFieldKey === this.NoWarningReasonKey) {\r\n let firstQuestionValue = this._questions.find(q => q.summaryFieldKey === this.ContainsChemicalKey)?.value ?? \"\";\r\n let secondQuestionValue = this._questions.find(q => q.summaryFieldKey === this.RequiresDisclosureKey)?.value ?? \"\";\r\n\r\n if (firstQuestionValue?.toLowerCase() == ResourcesConstants.NativeAnswerTexts.YesAnswer.toLowerCase() && secondQuestionValue?.toLowerCase() == ResourcesConstants.NativeAnswerTexts.NoAnswer.toLowerCase()) {\r\n return true;\r\n }\r\n }\r\n else if (question.summaryFieldKey === this.SupplierComments) {\r\n const dependentQuestionAnwer = this._questions.find(q => q.summaryFieldKey === this.NoWarningReasonKey)?.value ?? \"\";\r\n\r\n return dependentQuestionAnwer.toLowerCase() === ResourcesConstants.NativeAnswerTexts.Other.toLowerCase();\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private shouldShowCaProp65(): boolean {\r\n let result = true;\r\n const intendedMarketsPage = this._selectedInventory?.questionnaireList.selectMany(q => q.pages).find(p => p.title == \"Intended Markets\");\r\n const intendedToBeSoldInUsQuestion = intendedMarketsPage?.questions.find(q => q.text === this.IntendedToBeSoldInUsQuestion)?.value.toLowerCase();\r\n const intendedToBeSoldInCalifornia = intendedMarketsPage?.questions.find(q => q.text === this.IntendedToBeSoldInCalifornia)?.value.toLowerCase();\r\n\r\n if (intendedToBeSoldInCalifornia === ResourcesConstants.NativeAnswerTexts.NoAnswer.toLowerCase() || intendedToBeSoldInUsQuestion === ResourcesConstants.NativeAnswerTexts.NoAnswer.toLowerCase()) {\r\n result = false;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public getPageRequiredInfoLocalized() {\r\n if (this.shouldShowCaProp65()) {\r\n return null;\r\n }\r\n\r\n return \"California Proposition 65 data is not required because product was declared as not intended to be sold in the United States or California. If this is not correct, update Intended Markets.\"\r\n }\r\n}\r\n","import { QuestionRegulatoryData, Questionnaire, QuestionnaireQuestion } from \"../../Models/Surveys/SurveyDataModel\";\r\nimport { BaseRegulationLogicManager } from \"../BaseRegulationLogicManager\";\r\nimport ResourcesConstants from \"../ResourceConstants\";\r\nimport {ComplianceScoreResult, InventoryDetailsResponse} from \"../../StateControllers/Survey/SurveyResponse/SurveyResponseModels\";\r\n\r\nexport class ReachRegistrationCustomLogicManager extends BaseRegulationLogicManager {\r\n public static ReachRegistrationRegulationId = \"0620b9e0-37de-4b60-ac48-4ca76f0d4c8d\";\r\n\r\n\r\n private readonly q1Id: string = \"1\";\r\n private readonly q2Id: string = \"2\";\r\n private readonly q3Id: string = \"3\";\r\n private readonly q4Id: string = \"4\";\r\n private readonly q5Id: string = \"5\";\r\n private readonly q6Id: string = \"6\";\r\n private readonly q7Id: string = \"7\";\r\n private readonly q8Id: string = \"8\";\r\n private readonly q9Id: string = \"9\";\r\n private readonly q10Id: string = \"10\";\r\n private readonly q11Id: string = \"11\";\r\n private readonly q12Id: string = \"12\";\r\n private readonly polymer: string = \"Polymer\"; // localization: resources for extraction\r\n private readonly exemptFromRegistration: string = \"Exempt from Registration\";\r\n private readonly other: string = \"Other\";\r\n\r\n constructor(questions: QuestionnaireQuestion[], overallQuestionnaire: Questionnaire, questionRegulatoryData: QuestionRegulatoryData[], selectedInventory: InventoryDetailsResponse | null, complianceScoreResult: ComplianceScoreResult | null) {\r\n super(questions, overallQuestionnaire, questionRegulatoryData, selectedInventory, complianceScoreResult);\r\n }\r\n\r\n protected getAdditionalQuestionIndicesToHide = (question: QuestionnaireQuestion, questionIndex: number, indicesToHideOrShow: boolean[]) => {\r\n if (question.id === this.q1Id) {\r\n let childQuestion2 = this._questions.findIndex(q => q.id === this.q2Id);\r\n let childQuestion3 = this._questions.findIndex(q => q.id == this.q3Id);\r\n let childQuestion4 = this._questions.findIndex(q => q.id == this.q4Id);\r\n let childQuestion5 = this._questions.findIndex(q => q.id == this.q5Id);\r\n let childQuestion6 = this._questions.findIndex(q => q.id == this.q6Id);\r\n let childQuestion7 = this._questions.findIndex(q => q.id == this.q7Id);\r\n let childQuestion8 = this._questions.findIndex(q => q.id == this.q8Id);\r\n let childQuestion9 = this._questions.findIndex(q => q.id == this.q9Id);\r\n let childQuestion10 = this._questions.findIndex(q => q.id == this.q10Id);\r\n let childQuestion11 = this._questions.findIndex(q => q.id == this.q11Id);\r\n let childQuestion12 = this._questions.findIndex(q => q.id == this.q12Id);\r\n indicesToHideOrShow[childQuestion2] = question.value === this.polymer;\r\n indicesToHideOrShow[childQuestion3] = question.value === this.polymer;\r\n indicesToHideOrShow[childQuestion4] = question.value === this.polymer;\r\n indicesToHideOrShow[childQuestion5] = question.value === this.polymer;\r\n indicesToHideOrShow[childQuestion6] = question.value === this.polymer;\r\n indicesToHideOrShow[childQuestion7] = question.value === this.polymer;\r\n indicesToHideOrShow[childQuestion8] = question.value === this.polymer;\r\n indicesToHideOrShow[childQuestion9] = question.value === this.polymer;\r\n indicesToHideOrShow[childQuestion10] = question.value === this.polymer;\r\n indicesToHideOrShow[childQuestion11] = question.value === this.polymer;\r\n indicesToHideOrShow[childQuestion12] = question.value ===this.polymer;\r\n }\r\n if (question.id === this.q2Id) {\r\n let childQuestion3 = this._questions.findIndex(q => q.id == this.q3Id);\r\n indicesToHideOrShow[childQuestion3] = question.value !== this.exemptFromRegistration;\r\n }\r\n if (question.id === this.q4Id) {\r\n let childQuestion5 = this._questions.findIndex(q => q.id == this.q5Id);\r\n let childQuestion6 = this._questions.findIndex(q => q.id == this.q6Id);\r\n let childQuestion7 = this._questions.findIndex(q => q.id == this.q7Id);\r\n let childQuestion8 = this._questions.findIndex(q => q.id == this.q8Id);\r\n let childQuestion9 = this._questions.findIndex(q => q.id == this.q9Id);\r\n let childQuestion10 = this._questions.findIndex(q => q.id == this.q10Id);\r\n let childQuestion11 = this._questions.findIndex(q => q.id == this.q11Id);\r\n\r\n indicesToHideOrShow[childQuestion5] = question.value !== ResourcesConstants.NativeAnswerTexts.YesAnswer;\r\n indicesToHideOrShow[childQuestion6] = question.value !== ResourcesConstants.NativeAnswerTexts.YesAnswer;\r\n indicesToHideOrShow[childQuestion7] = question.value !== ResourcesConstants.NativeAnswerTexts.YesAnswer;\r\n indicesToHideOrShow[childQuestion8] = question.value !== ResourcesConstants.NativeAnswerTexts.YesAnswer;\r\n indicesToHideOrShow[childQuestion9] = question.value !== ResourcesConstants.NativeAnswerTexts.YesAnswer;\r\n indicesToHideOrShow[childQuestion10] = question.value !== ResourcesConstants.NativeAnswerTexts.YesAnswer;\r\n indicesToHideOrShow[childQuestion11] = question.value !== ResourcesConstants.NativeAnswerTexts.YesAnswer;\r\n }\r\n\r\n return indicesToHideOrShow;\r\n }\r\n\r\n public customIsQuestionRequired = (question: QuestionnaireQuestion) => {\r\n if (question.id === ResourcesConstants.UniversalFieldIds.SupplierComments) {\r\n const questionValue = this._questions.find(q => q.id === this.q3Id)?.value ?? \"\";\r\n\r\n if (questionValue.toLowerCase() === this.other.toLowerCase()) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { QuestionnaireQuestion } from \"../../Models/Surveys/SurveyDataModel\";\r\nimport { BaseRegulationLogicManager } from \"../BaseRegulationLogicManager\";\r\n\r\nexport class GenericHideCustomLogicManager extends BaseRegulationLogicManager {\r\n protected getAdditionalQuestionIndicesToHide(question: QuestionnaireQuestion, questionIndex: number, indicesToHideOrShow: boolean[]) {\r\n for (let i = 0; i < this._questions.length; ++i) {\r\n indicesToHideOrShow[i] = this.shouldHideQuestion(this._questions[i], i)\r\n }\r\n\r\n return indicesToHideOrShow;\r\n }\r\n\r\n protected shouldHideQuestion(question: QuestionnaireQuestion, questionIndex: number) {\r\n return !this.isQuestionRequired(question);\r\n }\r\n}\r\n","import { QuestionnaireQuestion } from \"../../Models/Surveys/SurveyDataModel\";\r\nimport { GenericHideCustomLogicManager } from \"./GenericHideCustomLogicManager\";\r\nimport {ScipDataManager} from \"../SurveyResponse/ScipDataManager\";\r\n\r\nexport class ScipCustomLogicManager extends GenericHideCustomLogicManager {\r\n private readonly _containsSvhcSummaryDataKey = \"reach_contains_svhc\";\r\n private readonly _producedInEuScipNumberDependentAnswers: string[] = [\"Both EU produced and imported\", \"EU imported\", \"EU produced\"];\r\n private readonly _hasScipNumberScipNumberDependentAnswers: string[] = [\"Yes\"];\r\n\r\n private getContainsSvhcAnswer() {\r\n // This first question on the SCIP page maps to the reach SVHC regulation page.\r\n const parentQuestionOfFirstScipQuestion = this.getParentQuestion(this._questions[0]);\r\n\r\n if (!parentQuestionOfFirstScipQuestion) {\r\n return \"No\";\r\n }\r\n\r\n if (parentQuestionOfFirstScipQuestion.summaryFieldKey !== this._containsSvhcSummaryDataKey) {\r\n throw new Error(`The parent question of the first SCIP question should be ${this._containsSvhcSummaryDataKey}. Instead got ${parentQuestionOfFirstScipQuestion.summaryFieldKey}`);\r\n }\r\n\r\n return parentQuestionOfFirstScipQuestion.value;\r\n }\r\n\r\n public shouldShowScip = () => this.getContainsSvhcAnswer().toLowerCase() !== \"no\";\r\n\r\n protected getAdditionalQuestionIndicesToHide(question: QuestionnaireQuestion, questionIndex: number, indicesToHideOrShow: boolean[]): boolean[] {\r\n if (this.shouldShowScip()) {\r\n return super.getAdditionalQuestionIndicesToHide(question, questionIndex, indicesToHideOrShow);\r\n }\r\n\r\n // hide all, scip data not required or applicable\r\n return this._questions.map(q => true);\r\n }\r\n\r\n public getDisplayIndex(questionIndex: number): number {\r\n const resultIndex = questionIndex;\r\n let numberOfHiddenQuestions = this._questions.slice(0, questionIndex).filter(q => !this.getQuestionStatus(q).visible).length;\r\n\r\n return resultIndex - numberOfHiddenQuestions;\r\n }\r\n\r\n private getQuestionByScipData = (key: string) =>\r\n this._questions.find(q => q.scipDataKey === key)!;\r\n\r\n private getQuestionStatus(question: QuestionnaireQuestion) {\r\n const isArticleQuestion = this._questions.find(q => q.summaryFieldKey === ScipDataManager.IsArticleSummaryKey)!;\r\n const producedInEuQuestion = this.getQuestionByScipData(ScipDataManager.ScipDataKeyEuProduction);\r\n const hasScipNumberQuestion = this.getQuestionByScipData(ScipDataManager.HasScipNumber);\r\n\r\n const uniformStatus = (status: boolean) => ({\r\n required: status,\r\n visible: status\r\n });\r\n\r\n if (question.summaryFieldKey === ScipDataManager.IsArticleSummaryKey) {\r\n return uniformStatus(true);\r\n }\r\n else if (question.scipDataKey === ScipDataManager.ScipDataKeyEuProduction) {\r\n return uniformStatus(isArticleQuestion.value === \"Article as such or Complex Object\");\r\n }\r\n else if (question.scipDataKey === ScipDataManager.HasScipNumber) {\r\n return uniformStatus(\r\n (isArticleQuestion.value === \"Article as such or Complex Object\") &&\r\n (producedInEuQuestion.value === \"No data\")\r\n );\r\n }\r\n else if (question.scipDataKey === ScipDataManager.ScipNumber) {\r\n return uniformStatus(\r\n (isArticleQuestion.value === \"Article as such or Complex Object\") &&\r\n (\r\n this._producedInEuScipNumberDependentAnswers.map(a => a.toLowerCase()).includes(producedInEuQuestion.value.toLowerCase()) ||\r\n this._hasScipNumberScipNumberDependentAnswers.map(a => a.toLowerCase()).includes(hasScipNumberQuestion.value.toLowerCase())\r\n )\r\n );\r\n }\r\n else if (question.summaryFieldKey === ScipDataManager.ComplexObjectOrArticleSummaryKey) {\r\n return uniformStatus(this.isComplexObjectOrStraightArticle());\r\n }\r\n else if (question.scipDataKey === ScipDataManager.ScipCharacteristics) {\r\n // characteristics are never required even when visible\r\n return {\r\n required: false,\r\n visible: this.isComplexObject() || this.isStraightArticle()\r\n }\r\n }\r\n else {\r\n return uniformStatus(this.isComplexObject() || this.isStraightArticle());\r\n }\r\n }\r\n\r\n public questionIsVisible(q: QuestionnaireQuestion) {\r\n return this.getQuestionStatus(q).visible;\r\n }\r\n\r\n protected customIsQuestionRequired(question: QuestionnaireQuestion) {\r\n return this.getQuestionStatus(question).required;\r\n }\r\n\r\n public isComplexObjectOrStraightArticle() {\r\n const isArticleQuestion = this._questions.find(q => q.summaryFieldKey === ScipDataManager.IsArticleSummaryKey)!;\r\n const producedInEuQuestion = this.getQuestionByScipData(ScipDataManager.ScipDataKeyEuProduction);\r\n const hasScipNumberQuestion = this.getQuestionByScipData(ScipDataManager.HasScipNumber);\r\n\r\n return (\r\n (isArticleQuestion.value === \"Article as such or Complex Object\") &&\r\n (producedInEuQuestion.value === \"No data\") &&\r\n (hasScipNumberQuestion.value === \"No\")\r\n );\r\n }\r\n\r\n public isComplexObject() {\r\n const isComplexObjectOrArticleQuestion = this._questions.find(q => q.summaryFieldKey === ScipDataManager.ComplexObjectOrArticleSummaryKey)!;\r\n\r\n return (\r\n this.isComplexObjectOrStraightArticle() &&\r\n (isComplexObjectOrArticleQuestion.value === \"Complex Object\")\r\n );\r\n }\r\n\r\n public isStraightArticle() {\r\n const isComplexObjectOrArticleQuestion = this._questions.find(q => q.summaryFieldKey === ScipDataManager.ComplexObjectOrArticleSummaryKey)!;\r\n\r\n return (\r\n this.isComplexObjectOrStraightArticle() &&\r\n (isComplexObjectOrArticleQuestion.value === \"Article, as such\")\r\n );\r\n }\r\n\r\n public getPageRequiredInfoLocalized() {\r\n if (this.shouldShowScip()) {\r\n return null;\r\n }\r\n\r\n return \"SCIP data is not required because the product was declared as having no Substances of Very High Concern (SVHC) above 0.1% wt/wt. If this this not correct, update the SVHC decision.\"\r\n }\r\n}\r\n","import { BaseRegulationLogicManager } from \"../BaseRegulationLogicManager\";\r\nimport { QuestionRegulatoryData, QuestionnaireQuestion, Questionnaire } from \"../../Models/Surveys/SurveyDataModel\";\r\nimport { PfasCustomLogicManager } from \"./PfasCustomLogicManager\";\r\nimport { ReachAuthorizationCustomLogicManager } from \"./ReachAuthorizationCustomLogicManager\";\r\nimport { RohsCustomLogicManager } from \"./RohsCustomLogicManager\";\r\nimport { CaProp65CustomLogicManager } from \"./CaProp65CustomLogicManager\";\r\nimport { ReachRegistrationCustomLogicManager } from \"./ReachRegistrationCustomLogicManager\"\r\nimport { RegulationManager } from \"../RegulationManager\";\r\nimport { ScipCustomLogicManager } from \"./ScipCustomLogicManager\";\r\nimport {ComplianceScoreResult, InventoryDetailsResponse} from \"../../StateControllers/Survey/SurveyResponse/SurveyResponseModels\";\r\n\r\nconst CustomLogicManager: Readonly<{\r\n [customLogicId: string]:\r\n (questions: QuestionnaireQuestion[], overallQuestionnaire: Questionnaire, questionRegulatoryData: QuestionRegulatoryData[], selectedInventory: InventoryDetailsResponse | null, complianceScoreResult: ComplianceScoreResult | null) =>\r\n BaseRegulationLogicManager\r\n}> =\r\n{\r\n [PfasCustomLogicManager.PfasRegulationId]:\r\n (questions: QuestionnaireQuestion[], overallQuestionnaire: Questionnaire, questionRegulatoryData: QuestionRegulatoryData[], selectedInventory: InventoryDetailsResponse | null, complianceScoreResult: ComplianceScoreResult | null) =>\r\n new PfasCustomLogicManager(questions, overallQuestionnaire, questionRegulatoryData, selectedInventory, complianceScoreResult),\r\n [ReachAuthorizationCustomLogicManager.ReachSvhcAuthorizationRegulationId]:\r\n (questions: QuestionnaireQuestion[], overallQuestionnaire: Questionnaire, questionRegulatoryData: QuestionRegulatoryData[], selectedInventory: InventoryDetailsResponse | null, complianceScoreResult: ComplianceScoreResult | null) =>\r\n new ReachAuthorizationCustomLogicManager(questions, overallQuestionnaire, questionRegulatoryData, selectedInventory, complianceScoreResult),\r\n [RohsCustomLogicManager.RohsRegulationId]:\r\n (questions: QuestionnaireQuestion[], overallQuestionnaire: Questionnaire, questionRegulatoryData: QuestionRegulatoryData[], selectedInventory: InventoryDetailsResponse | null, complianceScoreResult: ComplianceScoreResult | null) =>\r\n new RohsCustomLogicManager(questions, overallQuestionnaire, questionRegulatoryData, selectedInventory, complianceScoreResult),\r\n [CaProp65CustomLogicManager.CaProp65RegulationId]:\r\n (questions: QuestionnaireQuestion[], overallQuestionnaire: Questionnaire, questionRegulatoryData: QuestionRegulatoryData[], selectedInventory: InventoryDetailsResponse | null, complianceScoreResult: ComplianceScoreResult | null) =>\r\n new CaProp65CustomLogicManager(questions, overallQuestionnaire, questionRegulatoryData, selectedInventory, complianceScoreResult),\r\n [ReachRegistrationCustomLogicManager.ReachRegistrationRegulationId]:\r\n (questions: QuestionnaireQuestion[], overallQuestionnaire: Questionnaire, questionRegulatoryData: QuestionRegulatoryData[], selectedInventory: InventoryDetailsResponse | null, complianceScoreResult: ComplianceScoreResult | null) =>\r\n new ReachRegistrationCustomLogicManager(questions, overallQuestionnaire, questionRegulatoryData, selectedInventory, complianceScoreResult),\r\n [RegulationManager.ScipComplianceId]: \r\n (questions: QuestionnaireQuestion[], overallQuestionnaire: Questionnaire, questionRegulatoryData: QuestionRegulatoryData[], selectedInventory: InventoryDetailsResponse | null, complianceScoreResult: ComplianceScoreResult | null) =>\r\n new ScipCustomLogicManager(questions, overallQuestionnaire, questionRegulatoryData, selectedInventory, complianceScoreResult),\r\n}\r\n\r\nexport class CustomRegulationLogicManagerFactory {\r\n public static createManagerForRegulation(\r\n regulationId: string,\r\n questions: QuestionnaireQuestion[],\r\n overallQuestionnaire: Questionnaire,\r\n questionRegulatoryData: QuestionRegulatoryData[],\r\n selectedInventory: InventoryDetailsResponse | null,\r\n complianceScoreResult: ComplianceScoreResult | null\r\n ) {\r\n const customLogicManagerCreator = CustomLogicManager[regulationId];\r\n\r\n // Check if there are any custom regulation manager defined for this regulationId\r\n if (!customLogicManagerCreator) {\r\n return new BaseRegulationLogicManager(questions, overallQuestionnaire, questionRegulatoryData, selectedInventory, complianceScoreResult);\r\n }\r\n\r\n return customLogicManagerCreator(questions, overallQuestionnaire, questionRegulatoryData, selectedInventory, complianceScoreResult);\r\n }\r\n}\r\n","import { Action, Reducer } from 'redux';\r\nimport {\r\n GroupedResponseInventories,\r\n MetadataFieldTypes,\r\n Questionnaire,\r\n QuestionnairePageType,\r\n QuestionnaireQuestion, QuestionRegulatoryData,\r\n ScipSubmissionData,\r\n SurveyResponseModel\r\n} from '../../../Models/Surveys/SurveyDataModel';\r\nimport { SurveyResponseProgressTextHelper } from '../../../../components/Survey/SurveyResponse/SurveyResponseProgressTextHelper';\r\nimport { ResultType } from '../../../Models/Api/ApiResponse';\r\nimport { SimpleInventory } from '../../../Models/Inventories/SimpleInventory';\r\nimport { SurveyPageType } from '../../../Models/Surveys/SurveyDataModel';\r\nimport { ApplicationState, AppThunkAction, AppThunkActionAsync } from './../../../';\r\nimport { DataResult, ToxnotServiceClient } from './../../../ToxnotServiceClient';\r\nimport { ProgressState, SurveyResponseState, NavContext, InventoryQuestionnaireType } from './SurveyResponseStates';\r\nimport { FileTableEntry } from '../../../Models/Documents/DocumentModels';\r\nimport { store } from '../../../..';\r\nimport {\r\n BomStatusItem,\r\n BomValidationStatus,\r\n CoreSurveyResponseData,\r\n ExtensionRequestModel,\r\n PageQuestionnaireStatuses,\r\n SurveyResponseValidationResult,\r\n RegulationScoresTable,\r\n InventoryDetailsResponse,\r\n PaginationDetails\r\n} from './SurveyResponseModels';\r\nimport { nullOrEmptyCoalesce } from '../../../../utilities/Utilities';\r\nimport {ScipDataManager} from \"../../../Managers/SurveyResponse/ScipDataManager\";\r\nimport {RegulationManager} from \"../../../Managers/RegulationManager\";\r\nimport {CustomRegulationLogicManagerFactory} from \"../../../Managers/CustomLogicManagers/CustomLogicManager\";\r\n\r\ntype KnownAction = SurveyResponseSetProgressState | SurveyResponseSetState;\r\n\r\n// ===============================================================================\r\n\r\nexport const surveyResponseMaterialsPerPage = 25;\r\n\r\nconst LocalStorageNavContextKey = \"survey-response-workflow-nav-context\";\r\n\r\ninterface ArticleIdentifier {\r\n identifierTypeId: string;\r\n value: string;\r\n typeOtherText: string;\r\n}\r\n\r\nconst DefaultScipArticleIdentifierId = \"66306\"; // part name\r\n\r\nconst SurveyResponseSetProgressState = \"SET_RESPONSE_PROGRESS_STATE\";\r\ninterface SurveyResponseSetProgressState {\r\n type: typeof SurveyResponseSetProgressState;\r\n value: Partial;\r\n}\r\n\r\nconst SurveyResponseSetState = \"SET_RESPONSE_STATE\";\r\ninterface SurveyResponseSetState {\r\n type: typeof SurveyResponseSetState;\r\n value: Partial;\r\n}\r\n\r\nfunction getInitialNavContext(): NavContext {\r\n return {\r\n mainNavIndex: SurveyPageType.Instructions,\r\n currentPageOfMaterialsIndex: 0,\r\n inventoryNavIndex: -1,\r\n surveyQuestionnaireIndex: -1,\r\n surveyQuestionnairePageIndex: -1,\r\n previousPageStack: [],\r\n currentlySelectedScipSubmissionData: null,\r\n selectedInventoryPageIndex: 0,\r\n selectedInventoryId: \"\",\r\n };\r\n}\r\n\r\nfunction getInitialProgressState(): ProgressState {\r\n return {\r\n currentProgress: 0,\r\n title: \"\",\r\n maxProgress: 0,\r\n current: \"\"\r\n }\r\n}\r\n\r\nfunction getInitialState(usersLanguage: string): SurveyResponseState {\r\n return {\r\n pageDataLoaded: true,\r\n showErrorMessage: false,\r\n showNotFoundErrorScreen: false,\r\n dataLoaded: false,\r\n language: usersLanguage,\r\n progressState: getInitialProgressState(),\r\n coreData: null,\r\n selectedInventory: null,\r\n responseId: \"\",\r\n validationResult: {\r\n inventoryIds: [],\r\n optionalQuestionsInventoryIds: [],\r\n bomStatusTable: {},\r\n isOverallValid: false,\r\n result: ResultType.Ok,\r\n supplierQuestionnaireStatus: false,\r\n supplierQuestionnaireStatusList: []\r\n },\r\n navContext: getInitialNavContext(),\r\n surveyQuestionnairesList: [],\r\n questionnairesTypes: [],\r\n insActiveLanguage: getCultureName(),\r\n regulationManager: null\r\n };\r\n}\r\n\r\nfunction getCultureName(): string {\r\n let cultureName = localStorage.getItem(\"supplier-language\");\r\n if (cultureName != null) {\r\n return cultureName;\r\n }\r\n cultureName = localStorage.getItem(\"toxnot-culture-name\");\r\n if (cultureName != null) {\r\n return cultureName;\r\n }\r\n return \"en\"; //Default Value\r\n\r\n \r\n}\r\n// ===============================================================================\r\n\r\n//\r\n// private implementation & public helper functions\r\n//\r\n\r\nconst serviceClient = new ToxnotServiceClient(); \r\n\r\nexport const materiaListSizeGroupThreshold = 1; // This threshold defines the number of minimum inventories to pin the Group Material option into the side menu\r\nexport const materalListSizeBatchAnswerThreshold = 1; // This threshold defines the number of minimum inventories to pin the Bulk Input option into the side menu\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Helper method that returns the supplier-level questionnaire in the response, if it exists, otherwise null\r\n//\r\nexport const getSupplierLevelQuestionnaire = () => {\r\n return store.getState().surveyResponseState?.coreData?.response.supplierQuestionnaireData;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Returns the list of materials that were part of the original request, ignoring any groups.\r\n//\r\nexport const getOriginalRequestMaterialInventoryList = (): SimpleInventory[] => {\r\n // TODO: large-surveys // using paging\r\n const coreData = store.getState().surveyResponseState?.coreData;\r\n\r\n if (!coreData) {\r\n return [];\r\n }\r\n\r\n return coreData.response.inventoryDataList\r\n .map(d => coreData.inventoryInfoTable[d.responderOwnedResponseInventoryId] ?? null)\r\n .filter(inv => inv !== null)\r\n .orderBy(inv => inv.name);\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Returns the materials that the supplier is actually filling out in the response.\r\n// This means root group materials & any un-grouped materials.\r\n// If there are no groups or the response is for a revision request(the revision request is done at the inventory level, not at the group level,\r\n// then this just returns the inventories in InventoryDataList\r\n//\r\n// The materials are returned in a sorted & stable order that they should always appear in\r\n//\r\n// See DbDataCollectionResponse.GetMaterialInventoryDataList()\r\n//\r\nexport const getMainSupplierFacingMaterialInventoryList = (coreDataProvided?: CoreSurveyResponseData | null): SimpleInventory[] => {\r\n const coreData = coreDataProvided ?? store.getState().surveyResponseState?.coreData;\r\n\r\n if (!coreData) {\r\n return [];\r\n }\r\n\r\n const response = coreData.response;\r\n\r\n // Get inventory IDs in groups\r\n const inventoryIdsInGroups = new Set(\r\n Object.values(response.groupedResponseInventories)\r\n .selectMany(group => group.responderOwnedResponseInventoryIdList)\r\n );\r\n\r\n // Create inventories list with grouping logic\r\n const groupedInventories = Object.values(response.groupedResponseInventories)\r\n .filter(g => g.groupInventoryId !== null)\r\n .map(g => ({\r\n inventoryId: g.groupInventoryId!,\r\n responseInventoryData: response.inventoryDataList.find(d =>\r\n g.responderOwnedResponseInventoryIdList.includes(d.responderOwnedResponseInventoryId)\r\n ) ?? null // Return null if no match is found\r\n }))\r\n .filter(item => item.responseInventoryData !== null); // Optionally filter out null items\r\n\r\n const ungroupedInventories = response.inventoryDataList\r\n .filter(d => !inventoryIdsInGroups.has(d.responderOwnedResponseInventoryId))\r\n .map(d => ({\r\n inventoryId: d.responderOwnedResponseInventoryId,\r\n responseInventoryData: d\r\n }));\r\n\r\n ungroupedInventories.map(d => coreData.inventoryInfoTable[d.inventoryId] ?? null)\r\n .filter(inv => inv !== null && coreData?.materialIdsDataToLoadList.some(i => i == inv.inventoryId))\r\n .orderBy(inv => inv.name);\r\n // Combine grouped inventories at the top and ungrouped inventories sorted by name\r\n const inventoriesList = [...groupedInventories, ...ungroupedInventories];\r\n\r\n // Map and filter final inventories\r\n return inventoriesList.map(d => coreData.inventoryInfoTable[d.inventoryId] ?? null)\r\n .filter(inv => inv !== null && coreData?.materialIdsDataToLoadList.some(i => i == inv.inventoryId));\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport const coreValues = (coreData: CoreSurveyResponseData | null | undefined): PaginationDetails => {\r\n // Early check for null/undefined\r\n if (!coreData) {\r\n return {\r\n totalInventories: 0,\r\n totalInventoriesAfterGrouping: 0,\r\n totalPages: 1,\r\n hasGroups: false\r\n };\r\n }\r\n\r\n return {\r\n totalInventories: coreData.totalInventories,\r\n totalInventoriesAfterGrouping: coreData.totalInventoriesAfterGrouping,\r\n totalPages: coreData.totalPages,\r\n hasGroups: coreData.hasGroups\r\n };\r\n};\r\n// ===============================================================================\r\n\r\nexport async function getInventoryDetails(responseId: string, inventoryId: string) {\r\n const result = await serviceClient.getInventoryDetails(responseId, inventoryId);\r\n\r\n for (let questionnaire of result.data!.questionnaireList) {\r\n questionnaire.pages.forEach(p => {\r\n p.questionRegulatoryData = result.data?.questionRegulatoryData.filter(r => p.regulationId != null && p.regulationId != undefined && r.regulationId === p.regulationId) ?? [];\r\n p.regulatoryListIds = result.data?.applicableRegulatoryLists.firstOrDefault(r => p.regulationId != null && p.regulationId != undefined && r.regulationId === p.regulationId)?.regulationListIds ?? [];\r\n });\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport const isLastItem = (): boolean => {\r\n const state = store.getState().surveyResponseState;\r\n const mainInventoryList = getMainSupplierFacingMaterialInventoryList(state.coreData);\r\n\r\n return (\r\n (\r\n (mainInventoryList.length === 0) &&\r\n (state.coreData!.response.supplierQuestionnaireData !== null) &&\r\n (state.coreData!.response.supplierQuestionnaireData?.questionnaire?.pages?.length > 0) &&\r\n (state.navContext.surveyQuestionnairePageIndex === (state.coreData!.response.supplierQuestionnaireData?.questionnaire?.pages?.length - 1))\r\n ) ||\r\n (\r\n (mainInventoryList.length > 0) &&\r\n (state.navContext.inventoryNavIndex === (mainInventoryList.length - 1)) &&\r\n ((state.surveyQuestionnairesList.length === 0 && (!state.selectedInventory?.hasBomPage || state.navContext.mainNavIndex == SurveyPageType.Bom)) ||\r\n (state.navContext.surveyQuestionnaireIndex === (state.surveyQuestionnairesList.length - 1)) &&\r\n (state.navContext.surveyQuestionnairePageIndex === (state.surveyQuestionnairesList[state.surveyQuestionnairesList.length - 1]?.pages.length - 1)))\r\n )\r\n );\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Deserializes a SCIP article identifier from data stored in the backend (e.g. questionnaire data, summary data)\r\n\r\n * @param serializedData the data to deserialize. If it's empty, an ArticleIdentifier with default values is returned\r\n */\r\nconst deserializeArticleIdentifier = (serializedData: string): ArticleIdentifier =>\r\n serializedData.length === 0\r\n ? { identifierTypeId: DefaultScipArticleIdentifierId, value: \"\", typeOtherText: \"\" }\r\n : JSON.parse(serializedData) as ArticleIdentifier;\r\n\r\n// ===============================================================================\r\n\r\nexport const doesQuestionNeedValueAndNotHaveValue = (question: QuestionnaireQuestion): boolean => {\r\n const values = getAllValuesForQuestionAndValueData(question);\r\n return values.length === 0;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport const getAllValuesForQuestionAndValueData = (question: QuestionnaireQuestion): string[] => {\r\n if ([MetadataFieldTypes.MultiCheckbox, MetadataFieldTypes.Attestation].includes(question.type)) {\r\n return JSON.parse(nullOrEmptyCoalesce(question.value, \"[]\"))\r\n .map((s: number, index: number) => {\r\n if (s === 1) {\r\n return (index < question.predefinedAnswers.length) ? question.predefinedAnswers[index].nativeAnswer : \"\";\r\n }\r\n else {\r\n return \"\";\r\n }\r\n })\r\n .filter((s: number[]) => s.length > 0);\r\n }\r\n else if ([MetadataFieldTypes.ScipArticleCategory, MetadataFieldTypes.DataTable, MetadataFieldTypes.IngredientsTable].includes(question.type)) {\r\n return JSON.parse(nullOrEmptyCoalesce(question.value, \"[]\"));\r\n }\r\n else if (question.type === MetadataFieldTypes.MultiText) {\r\n const multiTextArr = JSON.parse(question.value);\r\n\r\n if (multiTextArr.length === 1 && multiTextArr[0] === \"\") {\r\n return [];\r\n }\r\n\r\n return multiTextArr;\r\n }\r\n else if (question.type === MetadataFieldTypes.ScipArticleIdentifier) {\r\n const articleIdentifier = deserializeArticleIdentifier(question.value);\r\n\r\n return articleIdentifier.value.length === 0 ? [] : [articleIdentifier.value];\r\n }\r\n else if (question.type === MetadataFieldTypes.Certification) {\r\n if (question.value.length === 0) {\r\n return [];\r\n }\r\n\r\n const certification = JSON.parse(question.value);\r\n\r\n if ((certification.name.length === 0) && (certification.certificationExternalId.length === 0)) {\r\n return [];\r\n }\r\n\r\n return [question.value];\r\n }\r\n else if (question.type === MetadataFieldTypes.CsiDivision) {\r\n if (question.value === \":\") {\r\n return [];\r\n }\r\n }\r\n else {\r\n if (question.value.length === 0) {\r\n return [];\r\n }\r\n\r\n return [question.value];\r\n }\r\n\r\n return [];\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function getMaterialInventoryData(responseInventoryId: string, selectedInventoryPageIndex: number | null = null)\r\n{\r\n const coreData = store.getState().surveyResponseState?.coreData;\r\n\r\n if (!coreData) {\r\n return null;\r\n }\r\n\r\n const inventoryDataList = coreData.response.inventoryDataList;\r\n\r\n let responseInventoryData = inventoryDataList.firstOrDefault(d => d.responderOwnedResponseInventoryId === responseInventoryId);\r\n\r\n if (responseInventoryData === null) {\r\n const group = Object.values(coreData.response.groupedResponseInventories).firstOrDefault(g => g.groupInventoryId !== null && g.groupInventoryId === responseInventoryId);\r\n\r\n if (group !== null) {\r\n responseInventoryData = inventoryDataList.firstOrDefault(d => group.responderOwnedResponseInventoryIdList.includes(d.responderOwnedResponseInventoryId));\r\n }\r\n }\r\n\r\n if (responseInventoryData === null && selectedInventoryPageIndex != null)\r\n {\r\n const coreDataResult = await serviceClient.getCoreSurveyResponseData(coreData.response.responseId, selectedInventoryPageIndex);\r\n\r\n if (coreDataResult.data == null) {\r\n return;\r\n }\r\n\r\n responseInventoryData = coreDataResult.data.response.inventoryDataList.firstOrDefault(d => d.responderOwnedResponseInventoryId === responseInventoryId);\r\n }\r\n\r\n return responseInventoryData;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n// TODO: large-surveys // handle paging\r\nasync function updateValidationResult(getState: () => ApplicationState, dispatch: (action: KnownAction) => void, inventoryIds: string[]) {\r\n let surveyState = getState().surveyResponseState;\r\n\r\n if (surveyState === null || surveyState === undefined) {\r\n return;\r\n }\r\n\r\n let validationsResult: DataResult = await serviceClient.validateDataCollectionResponse(surveyState.responseId, inventoryIds, surveyState.coreData?.extensionRequest.inventoryIds);\r\n\r\n if (!validationsResult.success || !validationsResult.data) {\r\n return;\r\n }\r\n\r\n let updatedValidationResult: SurveyResponseValidationResult;\r\n \r\n\r\n if (inventoryIds && inventoryIds.length > 0) {\r\n updatedValidationResult = { ...surveyState.validationResult };\r\n\r\n inventoryIds.forEach(inventoryId => {\r\n let productValidationResult = validationsResult.data?.bomStatusTable[inventoryId];\r\n if (productValidationResult) {\r\n updatedValidationResult.bomStatusTable[inventoryId] = productValidationResult;\r\n updatedValidationResult.isOverallValid = validationsResult.data ? validationsResult.data.isOverallValid : false;\r\n }\r\n });\r\n } else {\r\n updatedValidationResult = validationsResult.data;\r\n }\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n validationResult: {\r\n ...updatedValidationResult\r\n }\r\n }\r\n });\r\n}\r\n\r\nasync function updateValidationResultRemoveMaterials(getState: () => ApplicationState, dispatch: (action: KnownAction) => void, inventoryIds:string[]) {\r\n let surveyState = getState().surveyResponseState;\r\n\r\n if (surveyState === null || surveyState === undefined) {\r\n return;\r\n }\r\n\r\n let updatedValidationResult = { ...surveyState.validationResult };\r\n inventoryIds.forEach(i => delete updatedValidationResult.bomStatusTable[i]);\r\n\r\n let coreData = { ...surveyState.coreData };\r\n //if (coreData !== undefined && coreData?.extensionRequest?.inventoryIds?.length > 0) {\r\n // coreData.extensionRequest. = inventoryIdsWithExtensionRequests.filter(i => !inventoryIds.some(id => id === i));\r\n //}\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n validationResult: {\r\n ...updatedValidationResult\r\n }\r\n }\r\n });\r\n}\r\n\r\nasync function updateValidationResultAddMaterialsToGroup(getState: () => ApplicationState, dispatch: (action: KnownAction) => void, inventoryIds: string[], groupId: string ) {\r\n updateValidationResultRemoveMaterials(getState, dispatch, inventoryIds);\r\n updateValidationResult(getState, dispatch, [groupId]);\r\n}\r\n\r\nasync function updateValidationResultRemoveGroup(getState: () => ApplicationState, dispatch: (action: KnownAction) => void, inventoryIds: string[], groupId: string | undefined) {\r\n if (groupId && groupId !== undefined) {\r\n updateValidationResultRemoveMaterials(getState, dispatch, [groupId]);\r\n updateValidationResult(getState, dispatch, inventoryIds);\r\n }\r\n}\r\n\r\nasync function updateSupplierQuestionnaireValidationResult(getState: () => ApplicationState, dispatch: (action: KnownAction) => void) {\r\n let surveyState = getState().surveyResponseState;\r\n\r\n if (surveyState === null || surveyState === undefined) {\r\n return;\r\n }\r\n\r\n const validationsResult = await serviceClient.validateSupplierQuestionnaire(surveyState.responseId);\r\n\r\n if (!validationsResult.success || !validationsResult.data) {\r\n return;\r\n }\r\n\r\n let updatedValidationResult = { ...surveyState.validationResult };\r\n updatedValidationResult.supplierQuestionnaireStatusList = validationsResult.data.supplierQuestionnaireStatusList;\r\n updatedValidationResult.supplierQuestionnaireStatus = validationsResult.data.supplierQuestionnaireStatus;\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n validationResult: {\r\n ...updatedValidationResult\r\n }\r\n }\r\n });\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport const getCurrentPageForValidation = (inventory: BomStatusItem, currentQuestionnaireType: InventoryQuestionnaireType | undefined, currentPageType: QuestionnairePageType | string, currentPageTitle: string | null): PageQuestionnaireStatuses | null => {\r\n let page;\r\n\r\n if (currentQuestionnaireType === InventoryQuestionnaireType.AttestationQuestionnaire) {\r\n page = inventory?.questionnairesStatuses.attestationQuestionnaireStatus.firstOrDefault(p => p.page === currentPageType || p.page === currentPageTitle);\r\n } else if (currentQuestionnaireType === InventoryQuestionnaireType.CustomQuestionnaire) {\r\n page = inventory?.questionnairesStatuses.customQuestionnaireStatus.firstOrDefault(p => p.page === currentPageType || p.page === currentPageTitle);\r\n } else {\r\n page = inventory?.questionnairesStatuses.baseQuestionnaireStatus.firstOrDefault(p => p.page === currentPageType || p.page === currentPageTitle);\r\n }\r\n\r\n return page;\r\n}\r\n\r\nexport const isOverallValid = (validationResult: SurveyResponseValidationResult) => {\r\n return validationResult.supplierQuestionnaireStatus && validationResult.isOverallValid;\r\n //Object.keys(validationResult.bomStatusTable).map(key => validationResult.bomStatusTable[key]).every(bs =>\r\n // bs.questionnaireStatus && bs.attestationQuestionnaireStatus && bs.fieldsStatus && bs.circularityDataStatus \r\n // && bs.complianceDataStatus && bs.documentsDataStatus && bs.sustainabilityDataStatus);\r\n}\r\n\r\nexport const markBomTableAsRequired = () => {\r\n const bomSpreasheetElem = $(\"#bom-editor-iframe\").contents().find(\".editor-root .product-spreadsheet-view\");\r\n\r\n if (bomSpreasheetElem === null || bomSpreasheetElem === undefined || bomSpreasheetElem.length === 0) {\r\n window.addEventListener('message', event => bomIframeComm(event));\r\n } else {\r\n markBomCellsAsRequired();\r\n }\r\n}\r\n\r\nconst BOM_DATA_LOADED = \"BOM_DATA_LOADED\";\r\nconst TRIGGER_VALIDATION = \"TRIGGER_VALIDATION\";\r\n\r\nconst bomIframeComm = (event: MessageEvent) => {\r\n if (event.data === BOM_DATA_LOADED || event.data === TRIGGER_VALIDATION) {\r\n markBomCellsAsRequired();\r\n }\r\n}\r\n\r\nconst markBomCellsAsRequired = () => {\r\n const bomSpreasheetElem = $(\"#bom-editor-iframe\").contents().find(\".editor-root .product-spreadsheet-view\");\r\n\r\n const currentState = store.getState().surveyResponseState;\r\n\r\n const validationList = currentState.validationResult.bomStatusTable[currentState.selectedInventory!.inventoryId]?.inventoryBomValidation;\r\n\r\n validationList.forEach((col, index) => {\r\n // + 2 takes into account the spacer row and the header row in the bom table html structure\r\n bomSpreasheetElem.find(\".product-spreadsheet-row\").eq(col.rowIndex + 2).find(`.inventory-column-${col.columnId}`).addClass(\"has-error\");\r\n });\r\n}\r\n\r\nconst removeBomValidation = (validationList: BomValidationStatus[]) => {\r\n const bomSpreasheetElem = $(\"#bom-editor-iframe\").contents().find(\".editor-root .product-spreadsheet-view\");\r\n\r\n validationList.forEach((col, index) => {\r\n // + 2 takes into account the spacer row and the header row in the bom table html structure\r\n bomSpreasheetElem.find(\".product-spreadsheet-row\").eq(col.rowIndex + 2).find(`.inventory-column-${col.columnId}`).removeClass(\"has-error\");\r\n });\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction markQuestionsAsHiddenOrShown(questions: QuestionnaireQuestion[], responseUpdateCallback?: () => boolean[], clearValueOnHide?: boolean) {\r\n if (!responseUpdateCallback) {\r\n return;\r\n }\r\n \r\n const questionIndicesToHide = responseUpdateCallback();\r\n\r\n for (let i = 0; i < questions.length; ++i) {\r\n questions[i].hidden = questionIndicesToHide[i];\r\n questions[i].value = questionIndicesToHide[i] && clearValueOnHide ? \"\" : questions[i].value;\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction updateQuestion(\r\n value: string, \r\n valueComment: string, \r\n questionIndex: number, \r\n dispatch: (action: KnownAction) => void, \r\n getState: () => ApplicationState, \r\n files?: FileTableEntry[], \r\n attachedFileIds?: string[],\r\n clearValueOnHide?: boolean\r\n) {\r\n const surveyState = getState().surveyResponseState ?? getInitialState(\"en\");\r\n\r\n if (surveyState.selectedInventory === null || surveyState.coreData === null) {\r\n return;\r\n }\r\n\r\n let currentPage = surveyState.surveyQuestionnairesList[surveyState.navContext.surveyQuestionnaireIndex].pages[surveyState.navContext.surveyQuestionnairePageIndex];\r\n\r\n let currentQuestion = currentPage.questions[questionIndex];\r\n\r\n currentQuestion.value = value;\r\n currentQuestion.valueComment = valueComment;\r\n\r\n if (currentQuestion.type == \"file\" || currentQuestion.requireFileAttachment || currentQuestion.type == \"cmrt_details_json\") {\r\n surveyState.surveyQuestionnairesList[surveyState.navContext.surveyQuestionnaireIndex].formatVersion = 4;\r\n currentQuestion.fileIds = attachedFileIds != undefined ? attachedFileIds : [];\r\n }\r\n\r\n if (surveyState.regulationManager !== null) {\r\n markQuestionsAsHiddenOrShown(currentPage.questions, () => surveyState.regulationManager!.getIndicesToHideOrShow(currentQuestion, questionIndex), clearValueOnHide);\r\n }\r\n \r\n if (ScipDataManager.isScipQuestion(currentQuestion)) {\r\n // TODO, this might change\r\n if (surveyState.navContext.currentlySelectedScipSubmissionData === null) {\r\n console.error(\"SCIP submission data was undefined\");\r\n return;\r\n }\r\n\r\n ScipDataManager.modifyScipSubmissionDataBasedOnScipDataKey(currentQuestion, surveyState.navContext.currentlySelectedScipSubmissionData);\r\n }\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n ...surveyState,\r\n selectedInventory: {\r\n ...surveyState.selectedInventory,\r\n fileList: files ? files : []\r\n },\r\n surveyQuestionnairesList: surveyState.surveyQuestionnairesList\r\n }\r\n });\r\n}\r\n\r\n//\r\n// This function updates the state to have a new page index for the material list (which page\r\n// of materials the user is viewing), as well as updates the index into the overall material list.\r\n// It will then initiate the right dispatches and API calls to load in a new active material\r\n// for edit.\r\n//\r\n// surveyQuestionnaireIndex, surveyQuestionnairePageIndex, and mainNavIndex are optional, and if\r\n// provided, the state will be updated with their values as well.\r\n//\r\nasync function setMaterialPageIndexAndInventoryNavIndex(\r\n surveyState: SurveyResponseState,\r\n newCurrentPageIndex: number,\r\n newInventoryNavIndex: number,\r\n dispatch: (action: KnownAction) => void,\r\n surveyQuestionnaireIndex?: number,\r\n surveyQuestionnairePageIndex?: number,\r\n mainNavIndex?: number,\r\n selectedInventoryPageIndex?: number\r\n) {\r\n const mainInventoryList = getMainSupplierFacingMaterialInventoryList();\r\n\r\n // End of inventory list\r\n if (newInventoryNavIndex >= mainInventoryList.length) {\r\n return;\r\n }\r\n\r\n const newSelectedInventory = mainInventoryList[newInventoryNavIndex];\r\n\r\n // Do not fetch data if same inventory was previously selected\r\n if (newSelectedInventory.inventoryId === surveyState.selectedInventory?.inventoryId) {\r\n const navContext: NavContext = {\r\n mainNavIndex: mainNavIndex ?? SurveyPageType.Inventory,\r\n currentPageOfMaterialsIndex: newCurrentPageIndex,\r\n inventoryNavIndex: newInventoryNavIndex,\r\n surveyQuestionnaireIndex: surveyQuestionnaireIndex ?? -1,\r\n surveyQuestionnairePageIndex: surveyQuestionnairePageIndex ?? -1,\r\n previousPageStack: [],\r\n currentlySelectedScipSubmissionData: surveyState.navContext.currentlySelectedScipSubmissionData,\r\n selectedInventoryPageIndex: selectedInventoryPageIndex ?? 0,\r\n selectedInventoryId: newSelectedInventory.inventoryId //update the selected inventory ID whenever user selects a new inventory\r\n };\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n ...surveyState,\r\n navContext: navContext\r\n }\r\n });\r\n\r\n dispatch({\r\n type: SurveyResponseSetProgressState,\r\n value: {\r\n title: newSelectedInventory.name,\r\n current: SurveyResponseProgressTextHelper.InventoryDetails,\r\n next: SurveyResponseProgressTextHelper.getInventoryFirstSubpageText(surveyState.selectedInventory, surveyState.insActiveLanguage),\r\n currentProgress: 0,\r\n maxProgress: SurveyResponseProgressTextHelper.getMaxNumberOfInventorySteps(surveyState.selectedInventory)\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n pageDataLoaded: false\r\n }\r\n });\r\n\r\n const result = await getInventoryDetails(surveyState.responseId, newSelectedInventory.inventoryId);\r\n\r\n if (!result.success || !result.data) {\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n showErrorMessage: true,\r\n dataLoaded: true\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n pageDataLoaded: true,\r\n selectedInventory: {\r\n ...result.data,\r\n inventoryId: newSelectedInventory.inventoryId\r\n },\r\n navContext: {\r\n mainNavIndex: mainNavIndex ?? SurveyPageType.Inventory,\r\n currentPageOfMaterialsIndex: newCurrentPageIndex,\r\n inventoryNavIndex: newInventoryNavIndex,\r\n surveyQuestionnaireIndex: surveyQuestionnaireIndex ?? -1,\r\n surveyQuestionnairePageIndex: surveyQuestionnairePageIndex ?? -1,\r\n previousPageStack: [],\r\n currentlySelectedScipSubmissionData: surveyState.navContext.currentlySelectedScipSubmissionData,\r\n selectedInventoryPageIndex: selectedInventoryPageIndex ?? 0,\r\n selectedInventoryId: newSelectedInventory.inventoryId\r\n },\r\n surveyQuestionnairesList: result.data.questionnaireList,\r\n questionnairesTypes: result.data.questionnairesTypes\r\n }\r\n });\r\n\r\n dispatch({\r\n type: SurveyResponseSetProgressState,\r\n value: {\r\n title: newSelectedInventory.name,\r\n current: SurveyResponseProgressTextHelper.InventoryDetails,\r\n next: SurveyResponseProgressTextHelper.getInventoryFirstSubpageText(result.data, surveyState.insActiveLanguage),\r\n currentProgress: 0,\r\n maxProgress: SurveyResponseProgressTextHelper.getMaxNumberOfInventorySteps(result.data)\r\n }\r\n });\r\n}\r\n\r\nfunction getSelectedInventoryId(responseId: string) {\r\n const currentNavContext: NavContext = JSON.parse(localStorage.getItem(`${LocalStorageNavContextKey}-${responseId}`) ?? \"null\");\r\n var selectedInventoryId = null;\r\n\r\n if (currentNavContext) {\r\n if (currentNavContext.selectedInventoryId !== null && currentNavContext.selectedInventoryId !== undefined && currentNavContext.selectedInventoryId !== \"\") {\r\n selectedInventoryId = currentNavContext.selectedInventoryId;\r\n }\r\n }\r\n\r\n return selectedInventoryId;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Action creators\r\n//\r\n\r\nexport const actionCreators = {\r\n setSurveyResponseProgress: (value: Partial) => ({\r\n type: SurveyResponseSetProgressState,\r\n value: value\r\n }),\r\n\r\n setExtensionRequestAndValidateProduct: (extensionRequest: ExtensionRequestModel): AppThunkAction => async (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n ...surveyState,\r\n coreData: {\r\n ...(surveyState?.coreData!),\r\n extensionRequest: extensionRequest\r\n }\r\n }\r\n });\r\n\r\n if (surveyState?.selectedInventory?.inventoryId) {\r\n if (surveyState?.navContext.mainNavIndex === SurveyPageType.Bom && extensionRequest.inventoryIds.some(i => i === surveyState?.selectedInventory?.inventoryId)) {\r\n let currentBomValidation = surveyState.validationResult.bomStatusTable[surveyState?.selectedInventory?.inventoryId]?.inventoryBomValidation;\r\n removeBomValidation(currentBomValidation);\r\n }\r\n\r\n updateValidationResult(getState, dispatch, [surveyState?.selectedInventory?.inventoryId]);\r\n }\r\n },\r\n\r\n setSurveyResponseState: (value: Partial) => ({\r\n type: SurveyResponseSetState,\r\n value: value\r\n }),\r\n\r\n updateSupplierQuestionnaire: (value: string, questionIndex: number, files?: FileTableEntry[], attachedFileIds?: string[]): AppThunkAction => (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if ((surveyState === undefined) ||\r\n (surveyState.coreData === null) ||\r\n (surveyState.coreData.response.supplierQuestionnaireData === null)) {\r\n return;\r\n }\r\n\r\n const supplierLevelQuestionnaire = getSupplierLevelQuestionnaire();\r\n\r\n if (supplierLevelQuestionnaire === null || supplierLevelQuestionnaire === undefined) {\r\n return;\r\n }\r\n\r\n supplierLevelQuestionnaire.files = files;\r\n const currentPage = supplierLevelQuestionnaire.questionnaire.pages[surveyState.navContext.surveyQuestionnairePageIndex];\r\n const currentQuestion = currentPage.questions[questionIndex];\r\n\r\n currentQuestion.value = value;\r\n\r\n if ((currentQuestion.type == \"file\" || currentQuestion.requireFileAttachment) && attachedFileIds) {\r\n currentQuestion.fileIds = attachedFileIds != undefined ? attachedFileIds : [];\r\n }\r\n\r\n if (surveyState.regulationManager !== null) {\r\n markQuestionsAsHiddenOrShown(currentPage.questions, () => surveyState.regulationManager!.getIndicesToHideOrShow(currentQuestion, questionIndex));\r\n }\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n ...surveyState,\r\n coreData: {\r\n ...(surveyState.coreData!),\r\n response: {\r\n ...(surveyState.coreData.response),\r\n supplierQuestionnaireData: {\r\n ...(surveyState.coreData.response.supplierQuestionnaireData)\r\n }\r\n }\r\n }\r\n }\r\n });\r\n },\r\n\r\n setCurrentPageNextClicked: (): AppThunkAction => (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if (surveyState === undefined) {\r\n return;\r\n }\r\n\r\n const questionnaireList = surveyState.surveyQuestionnairesList;\r\n const currentPage = questionnaireList[surveyState.navContext.surveyQuestionnaireIndex]?.pages[surveyState.navContext.surveyQuestionnairePageIndex];\r\n\r\n currentPage.nextClicked = true;\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n ...surveyState,\r\n surveyQuestionnairesList: questionnaireList\r\n }\r\n });\r\n },\r\n \r\n setBomPageNextClicked: (): AppThunkAction => (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if (surveyState !== undefined) {\r\n const selectedInventory = surveyState.selectedInventory;\r\n\r\n if (selectedInventory !== null && selectedInventory !== undefined) {\r\n selectedInventory.bomNextClicked = true;\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n ...surveyState,\r\n selectedInventory: selectedInventory\r\n }\r\n });\r\n }\r\n }\r\n },\r\n\r\n setCurrentSupplierPageNextClicked: (pageTitle: string | undefined): AppThunkAction => (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if ((surveyState === undefined) ||\r\n (surveyState.coreData === null) ||\r\n (surveyState.coreData.response.supplierQuestionnaireData === null)) {\r\n return;\r\n }\r\n\r\n const questionnaireList = getSupplierLevelQuestionnaire();\r\n const currentPage = questionnaireList?.questionnaire.pages.firstOrDefault(p => p.title === pageTitle);\r\n\r\n if (currentPage !== null && currentPage !== undefined && questionnaireList !== undefined && questionnaireList !== null) {\r\n currentPage.nextClicked = true;\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n ...surveyState,\r\n coreData: {\r\n ...(surveyState.coreData!),\r\n response: {\r\n ...(surveyState.coreData.response),\r\n supplierQuestionnaireData: questionnaireList\r\n }\r\n }\r\n }\r\n });\r\n }\r\n },\r\n\r\n updateCurrentlySelectedScipSubmissionsData: (scipSubmissionData: ScipSubmissionData): AppThunkAction => (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState ?? getInitialState(\"en\");\r\n const newQuestionnairesList = [...surveyState.surveyQuestionnairesList];\r\n const questions = newQuestionnairesList[surveyState.navContext.surveyQuestionnaireIndex].pages[surveyState.navContext.surveyQuestionnairePageIndex].questions;\r\n\r\n if (!surveyState.selectedInventory || !surveyState.coreData || !scipSubmissionData) {\r\n return;\r\n }\r\n\r\n ScipDataManager.fillScipQuestionsWithScipData(questions, scipSubmissionData);\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n ...surveyState,\r\n navContext: {\r\n ...surveyState.navContext,\r\n currentlySelectedScipSubmissionData: scipSubmissionData\r\n }\r\n }\r\n });\r\n\r\n for (let i = 0; i < questions.length; ++i) {\r\n updateQuestion(\r\n questions[i].value,\r\n questions[i].valueComment,\r\n i,\r\n dispatch,\r\n getState\r\n );\r\n }\r\n },\r\n\r\n resetSelectedScipSubmissionsData: (scipSubmissionData: ScipSubmissionData, questionnaireList: Questionnaire[], currentSurveyQuestionnaireIndex: number, currentSurveyQuestionnairePageIndex: number): AppThunkAction => (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState ?? getInitialState(\"en\");\r\n const newQuestionnairesList = [...questionnaireList];\r\n const questions = newQuestionnairesList[currentSurveyQuestionnaireIndex]?.pages[currentSurveyQuestionnairePageIndex].questions;\r\n\r\n if (!surveyState.selectedInventory || !surveyState.coreData || !scipSubmissionData) {\r\n return;\r\n }\r\n\r\n ScipDataManager.fillScipQuestionsWithScipData(questions, scipSubmissionData);\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n ...surveyState,\r\n selectedInventory: {\r\n ...surveyState.selectedInventory,\r\n questionnaireList: newQuestionnairesList\r\n },\r\n navContext: {\r\n ...surveyState.navContext,\r\n currentlySelectedScipSubmissionData: scipSubmissionData\r\n }\r\n }\r\n });\r\n },\r\n\r\n updateQuestion: (value: string, valueComment: string, questionIndex: number, files?: FileTableEntry[], attachedFileIds?: string[], clearValueOnHide?: boolean): AppThunkAction => (dispatch, getState) => {\r\n updateQuestion(value, valueComment, questionIndex, dispatch, getState, files, attachedFileIds, clearValueOnHide);\r\n },\r\n\r\n addSurveyInventory: (inventory: SimpleInventory): AppThunkActionAsync => async (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState ?? getInitialState(\"en\");\r\n //dispatch({ type: SurveyResponseSetState, value: { dataLoaded: false } });\r\n\r\n surveyState.coreData?.response.inventoryDataList.push({\r\n bomDataHasBeenAdded: false,\r\n responderOwnedResponseInventoryId: inventory.inventoryId,\r\n supplierLibraryInventoryId: inventory.inventoryId,\r\n publicInventoryId: null,\r\n requestorOwnedResponseInventoryId: null,\r\n requestorTargetLibraryInventoryId: null,\r\n questionnaireHasBeenWalkedThrough: false,\r\n revisionRequest: null,\r\n sharedMaterialId: null,\r\n metadata: {\r\n questionnairePageIndicesVisited: [],\r\n bomEditorPageVisited: false\r\n }\r\n });\r\n\r\n if (surveyState.coreData) {\r\n //If user has added a new material then increment the counters by 1.\r\n surveyState.coreData.totalInventories += 1;\r\n surveyState.coreData.totalInventoriesAfterGrouping += 1;\r\n surveyState.coreData.totalPages = Math.ceil(surveyState.coreData.totalInventories / surveyResponseMaterialsPerPage);\r\n }\r\n\r\n if (surveyState?.coreData?.inventoryInfoTable) {\r\n surveyState.coreData.inventoryInfoTable[inventory.inventoryId] = inventory;\r\n surveyState.coreData.materialIdsDataToLoadList.push(inventory.inventoryId)\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n selectedInventory: null,\r\n progressState: surveyState.progressState,\r\n coreData: {\r\n ...surveyState.coreData,\r\n inventoryInfoTable: {\r\n ...surveyState.coreData.inventoryInfoTable,\r\n [inventory.inventoryId]: inventory\r\n },\r\n materialIdsDataToLoadList: [...surveyState.coreData.materialIdsDataToLoadList]\r\n },\r\n navContext: { ...surveyState.navContext }\r\n }\r\n });\r\n }\r\n\r\n },\r\n\r\n setGroupsState: (newGroups: GroupedResponseInventories): AppThunkActionAsync => async (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState ?? getInitialState(\"en\");\r\n\r\n const newInventoryInfoTable = { ...surveyState.coreData!.inventoryInfoTable };\r\n const newMaterialIdsDataToLoadList = [...surveyState.coreData!.materialIdsDataToLoadList];\r\n\r\n for (let groupInventoryName of Object.keys(newGroups)) {\r\n const group = newGroups[groupInventoryName];\r\n\r\n if (group.groupInventoryId !== null) {\r\n newInventoryInfoTable[group.groupInventoryId] = {\r\n ownerId: \"\",\r\n inventoryId: group.groupInventoryId,\r\n name: groupInventoryName,\r\n description: \"\",\r\n supplierName: \"\",\r\n productNumber: \"\",\r\n supplierPartNumber: \"\",\r\n supplierId: null,\r\n plantName: \"\",\r\n isComponent: true\r\n };\r\n\r\n if (!newMaterialIdsDataToLoadList.some(i => i == group.groupInventoryId)) {\r\n newMaterialIdsDataToLoadList.push(group.groupInventoryId);\r\n }\r\n }\r\n }\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n selectedInventory: null,\r\n coreData: {\r\n ...(surveyState.coreData!),\r\n response: {\r\n ...(surveyState.coreData!.response),\r\n groupedResponseInventories: newGroups ?? []\r\n },\r\n materialIdsDataToLoadList: newMaterialIdsDataToLoadList,\r\n inventoryInfoTable: newInventoryInfoTable\r\n }\r\n }\r\n });\r\n },\r\n\r\n deleteSurveyInventory: (inventoryId: string, isGroup: boolean = false): AppThunkActionAsync => async (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState ?? getInitialState(\"en\");\r\n\r\n if(surveyState?.coreData?.inventoryInfoTable) {\r\n surveyState.coreData.response.inventoryDataList = surveyState.coreData?.response.inventoryDataList.filter(x => x.responderOwnedResponseInventoryId !== inventoryId && x.supplierLibraryInventoryId !== inventoryId);\r\n\r\n delete surveyState.coreData.inventoryInfoTable[inventoryId];\r\n delete surveyState.validationResult.bomStatusTable[inventoryId];\r\n surveyState.coreData.materialIdsDataToLoadList = surveyState.coreData.materialIdsDataToLoadList.filter(invId => invId !== inventoryId)\r\n let totalInventories = surveyState.coreData.totalInventories - 1;\r\n let totalInventoriesAfterGrouping = surveyState.coreData.totalInventoriesAfterGrouping - 1;\r\n let currentPage = surveyState.navContext.currentPageOfMaterialsIndex;\r\n let lastPage = Math.ceil(surveyState.coreData.totalInventoriesAfterGrouping / surveyResponseMaterialsPerPage) - 1;\r\n let isLastPage = currentPage === lastPage;\r\n \r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n selectedInventory: null,\r\n progressState: surveyState.progressState,\r\n coreData: {\r\n ...surveyState.coreData,\r\n inventoryInfoTable: {\r\n ...surveyState.coreData.inventoryInfoTable\r\n },\r\n materialIdsDataToLoadList: [...surveyState.coreData.materialIdsDataToLoadList],\r\n totalInventories: totalInventories,\r\n totalInventoriesAfterGrouping: totalInventoriesAfterGrouping\r\n },\r\n navContext: { ...surveyState.navContext },\r\n validationResult: surveyState.validationResult\r\n }\r\n });\r\n \r\n \r\n if(totalInventoriesAfterGrouping % surveyResponseMaterialsPerPage === 0 && surveyState.navContext.currentPageOfMaterialsIndex > 0 && isLastPage && !isGroup){\r\n //If there are no more inventories on the current page then navigate user to the previous page if any. \r\n await actionCreators.getPaginatedSurveyData(surveyState.navContext.currentPageOfMaterialsIndex - 1)(dispatch, getState);\r\n }\r\n }\r\n },\r\n\r\n setSurveySelectedInventoryProductDetails: (name: string, description: string, fileId: string): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState().surveyResponseState ?? getInitialState(\"en\");\r\n\r\n if (state.coreData === null) {\r\n return;\r\n }\r\n\r\n if (state.selectedInventory === null) {\r\n return;\r\n }\r\n\r\n const selectedInventory = { ...state.selectedInventory };\r\n\r\n const progressState = {\r\n ...state.progressState,\r\n title: name\r\n };\r\n\r\n selectedInventory.name = name;\r\n selectedInventory.description = description;\r\n selectedInventory.photoFileId = fileId;\r\n\r\n const newInventoryInfo: SimpleInventory = {\r\n ...(state.coreData!.inventoryInfoTable[selectedInventory.inventoryId])!,\r\n name: name,\r\n description: description\r\n };\r\n\r\n // TODO: this needs to actually write these changes to the backend via api\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n selectedInventory: selectedInventory,\r\n progressState: progressState,\r\n coreData: {\r\n ...state.coreData,\r\n inventoryInfoTable: {\r\n ...state.coreData.inventoryInfoTable,\r\n [selectedInventory.inventoryId]: newInventoryInfo\r\n }\r\n }\r\n }\r\n });\r\n },\r\n\r\n setNavigationContext: (pageType: SurveyPageType, inventoryIndex: number, questionnaireIndex: number, questionnairePageIndex: number, previousPageStack: number[] = []): AppThunkAction => (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if ((surveyState === undefined) || (surveyState.coreData === null)) {\r\n return;\r\n }\r\n\r\n const navContext: NavContext = {\r\n mainNavIndex: pageType,\r\n currentPageOfMaterialsIndex: surveyState.navContext.currentPageOfMaterialsIndex,\r\n inventoryNavIndex: inventoryIndex,\r\n surveyQuestionnaireIndex: questionnaireIndex,\r\n surveyQuestionnairePageIndex: questionnairePageIndex,\r\n previousPageStack: previousPageStack,\r\n currentlySelectedScipSubmissionData: surveyState.navContext.currentlySelectedScipSubmissionData,\r\n selectedInventoryPageIndex: surveyState.navContext.selectedInventoryPageIndex,\r\n selectedInventoryId: surveyState.navContext.selectedInventoryId,\r\n };\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n ...surveyState,\r\n navContext: navContext\r\n }\r\n });\r\n\r\n const inventory = surveyState.selectedInventory;\r\n\r\n dispatch({\r\n type: SurveyResponseSetProgressState,\r\n value: {\r\n title: inventory?.name,\r\n current: surveyState.surveyQuestionnairesList[navContext.surveyQuestionnaireIndex]?.pages[navContext.surveyQuestionnairePageIndex].languageToTitleMap[surveyState.insActiveLanguage] ?? surveyState.surveyQuestionnairesList[navContext.surveyQuestionnaireIndex]?.pages[navContext.surveyQuestionnairePageIndex].title ?? SurveyResponseProgressTextHelper.mapPageTypeToText[pageType],\r\n next: SurveyResponseProgressTextHelper.getNextTextByNavigationContext(inventory, navContext, surveyState.coreData, surveyState.insActiveLanguage),\r\n currentProgress: SurveyResponseProgressTextHelper.getCurrentInventoryStep(inventory, navContext),\r\n maxProgress: SurveyResponseProgressTextHelper.getMaxNumberOfInventorySteps(inventory)\r\n }\r\n });\r\n },\r\n\r\n setMainNavPage: (pageType: SurveyPageType, surveyQuestionnaireIndex?: number, surveyQuestionnairePageIndex?: number, previousPageStack: number[] = []): AppThunkAction => (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if ((surveyState === undefined) || (surveyState.coreData === null)) {\r\n return;\r\n }\r\n\r\n const navContext: NavContext = {\r\n mainNavIndex: pageType,\r\n currentPageOfMaterialsIndex: surveyState.navContext.currentPageOfMaterialsIndex,\r\n inventoryNavIndex: -1,\r\n surveyQuestionnaireIndex: surveyQuestionnaireIndex ?? -1,\r\n surveyQuestionnairePageIndex: surveyQuestionnairePageIndex ?? -1,\r\n previousPageStack: previousPageStack,\r\n currentlySelectedScipSubmissionData: surveyState.navContext.currentlySelectedScipSubmissionData,\r\n selectedInventoryPageIndex: surveyState.navContext.selectedInventoryPageIndex,\r\n selectedInventoryId: surveyState.navContext.selectedInventoryId,\r\n };\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n navContext: navContext,\r\n selectedInventory: null\r\n }\r\n });\r\n\r\n const pagesOrder = SurveyResponseProgressTextHelper.topLevelPagesOrder(surveyState.coreData);\r\n const index = pagesOrder.indexOf(pageType);\r\n\r\n dispatch({\r\n type: SurveyResponseSetProgressState,\r\n value: {\r\n title: SurveyResponseProgressTextHelper.mapPageTypeToText[pageType],\r\n current: SurveyResponseProgressTextHelper.mapPageTypeToText[pageType],\r\n next: SurveyResponseProgressTextHelper.mapPageTypeToText[pagesOrder[index + 1]],\r\n currentProgress: 0,\r\n maxProgress: 0\r\n }\r\n });\r\n },\r\n\r\n setSurveySelectedSupplierQuestionnaire: (): AppThunkActionAsync => async (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if ((surveyState === undefined) || (surveyState.coreData === null)) {\r\n return;\r\n }\r\n\r\n const supplierLevelQuestionnaire = getSupplierLevelQuestionnaire();\r\n\r\n if (supplierLevelQuestionnaire === null) {\r\n return;\r\n }\r\n\r\n const navContext: NavContext = {\r\n mainNavIndex: SurveyPageType.SupplierQuestionnaire,\r\n currentPageOfMaterialsIndex: surveyState.navContext.currentPageOfMaterialsIndex,\r\n inventoryNavIndex: -1,\r\n surveyQuestionnaireIndex: 0,\r\n surveyQuestionnairePageIndex: 0,\r\n previousPageStack: [],\r\n currentlySelectedScipSubmissionData: surveyState.navContext.currentlySelectedScipSubmissionData,\r\n selectedInventoryPageIndex: surveyState.navContext.selectedInventoryPageIndex,\r\n selectedInventoryId: surveyState.navContext.selectedInventoryId\r\n };\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n navContext: navContext\r\n }\r\n });\r\n\r\n dispatch({\r\n type: SurveyResponseSetProgressState,\r\n value: {\r\n title: SurveyResponseProgressTextHelper.SurveyInfo,\r\n current: SurveyResponseProgressTextHelper.SurveyInfo,\r\n next: SurveyResponseProgressTextHelper.getNextTextByNavigationContext(null, navContext, surveyState.coreData, surveyState.insActiveLanguage),\r\n currentProgress: 0,\r\n maxProgress: 0\r\n }\r\n });\r\n },\r\n\r\n setSurveyBomPage: (invIndex: number): AppThunkActionAsync => async (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if ((surveyState === undefined) || (surveyState.coreData === null)) {\r\n return;\r\n }\r\n\r\n const navContext: NavContext = {\r\n mainNavIndex: SurveyPageType.Bom,\r\n currentPageOfMaterialsIndex: surveyState.navContext.currentPageOfMaterialsIndex,\r\n inventoryNavIndex: invIndex,\r\n surveyQuestionnaireIndex: -1,\r\n surveyQuestionnairePageIndex: 1,\r\n previousPageStack: [],\r\n currentlySelectedScipSubmissionData: surveyState.navContext.currentlySelectedScipSubmissionData,\r\n selectedInventoryPageIndex: surveyState.navContext.selectedInventoryPageIndex,\r\n selectedInventoryId: surveyState.navContext.selectedInventoryId\r\n }\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n navContext: navContext\r\n }\r\n });\r\n\r\n const inventory = surveyState.selectedInventory;\r\n\r\n dispatch({\r\n type: SurveyResponseSetProgressState,\r\n value: {\r\n title: inventory?.name,\r\n current: SurveyResponseProgressTextHelper.BOM,\r\n next: SurveyResponseProgressTextHelper.getNextTextByNavigationContext(inventory, navContext, surveyState.coreData, surveyState.insActiveLanguage),\r\n currentProgress: SurveyResponseProgressTextHelper.getCurrentInventoryStep(inventory, navContext),\r\n maxProgress: SurveyResponseProgressTextHelper.getMaxNumberOfInventorySteps(inventory)\r\n }\r\n });\r\n },\r\n\r\n setSurveySelectedInventory: (invIndex: number, surveyQuestionnaireIndex?: number, surveyQuestionnairePageIndex?: number, mainNavIndex?: number): AppThunkActionAsync => async (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState ?? getInitialState(\"en\");\r\n \r\n await setMaterialPageIndexAndInventoryNavIndex(\r\n surveyState,\r\n surveyState.navContext.currentPageOfMaterialsIndex,\r\n invIndex,\r\n dispatch,\r\n surveyQuestionnaireIndex,\r\n surveyQuestionnairePageIndex,\r\n mainNavIndex,\r\n surveyState.navContext.currentPageOfMaterialsIndex\r\n );\r\n },\r\n\r\n updateQuestionRequired: (modifiedQuestionnairesList: Questionnaire[]): AppThunkAction => (dispatch, getState) => {\r\n let surveyState = getState().surveyResponseState;\r\n\r\n if (surveyState !== null && surveyState !== undefined) {\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n surveyQuestionnairesList: modifiedQuestionnairesList\r\n }\r\n });\r\n }\r\n },\r\n\r\n updateValidationResult: (inventoryIds: string[]): AppThunkActionAsync => async (dispatch, getState) => {\r\n await updateValidationResult(getState, dispatch, inventoryIds);\r\n },\r\n\r\n updateSupplierQuestionnaireValidationResult: (): AppThunkActionAsync => async (dispatch, getState) => {\r\n await updateSupplierQuestionnaireValidationResult(getState, dispatch);\r\n },\r\n\r\n updateValidationResultRemoveGroup: (inventoryIds: string[], groupId: string): AppThunkActionAsync => async (dispatch, getState) => {\r\n await updateValidationResultRemoveGroup(getState, dispatch, inventoryIds, groupId);\r\n },\r\n\r\n updateValidationResultAddMaterialsToGroup: (inventoryIds: string[], groupId: string): AppThunkActionAsync => async (dispatch, getState) => {\r\n await updateValidationResultAddMaterialsToGroup(getState, dispatch, inventoryIds, groupId);\r\n },\r\n\r\n updateBaseQuestionnairePageHasBeenVisited: (questionnaireIndex: number, pageIndex: number, selectedInventoryPageIndex: number, set: boolean = true): AppThunkActionAsync => async (dispatch, getState) => {\r\n let surveyState = getState().surveyResponseState;\r\n\r\n if (surveyState === null || surveyState === undefined) {\r\n return;\r\n }\r\n\r\n const inventoryId = surveyState?.selectedInventory?.inventoryId;\r\n\r\n if (!inventoryId) {\r\n return;\r\n }\r\n\r\n const inventoryData = await getMaterialInventoryData(inventoryId, selectedInventoryPageIndex);\r\n\r\n if (!inventoryData) {\r\n console.error(\"Unable to find the inventory data.\");\r\n return;\r\n }\r\n\r\n if (questionnaireIndex >= inventoryData.metadata.questionnairePageIndicesVisited.length) {\r\n const questionniare = surveyState.surveyQuestionnairesList[questionnaireIndex];\r\n\r\n inventoryData.metadata.questionnairePageIndicesVisited = Array(questionniare.pages.length).fill(0);\r\n }\r\n\r\n const getIntForSet = (set: boolean) => set ? 1 : 0;\r\n\r\n if (inventoryData.metadata.questionnairePageIndicesVisited[pageIndex] === getIntForSet(set)) {\r\n return;\r\n }\r\n\r\n inventoryData.metadata.questionnairePageIndicesVisited[pageIndex] = getIntForSet(set);\r\n\r\n let apiReult = await serviceClient.dataCollectionResponseInventoryDataUpdateMetadata(surveyState.responseId, inventoryData);\r\n\r\n if (!apiReult.success) {\r\n getState().appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n await updateValidationResult(getState, dispatch, [inventoryId]);\r\n },\r\n\r\n updateBomEditorPageVisited: (set: boolean = true): AppThunkActionAsync => async (dispatch, getState) => {\r\n let surveyState = getState().surveyResponseState;\r\n\r\n if (surveyState === null || surveyState === undefined) {\r\n return;\r\n }\r\n\r\n const inventoryId = surveyState?.selectedInventory?.inventoryId;\r\n\r\n if (!inventoryId) {\r\n return;\r\n }\r\n\r\n const inventoryData = await getMaterialInventoryData(inventoryId);\r\n\r\n if (inventoryData === null || inventoryData === undefined) {\r\n console.error(\"Unable to find the inventory data.\");\r\n return;\r\n }\r\n\r\n if (inventoryData.metadata.bomEditorPageVisited === set) {\r\n return;\r\n }\r\n\r\n inventoryData.metadata.bomEditorPageVisited = set;\r\n\r\n let apiReult = await serviceClient.dataCollectionResponseInventoryDataUpdateMetadata(surveyState.responseId, inventoryData);\r\n\r\n if (!apiReult.success) {\r\n getState().appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n await updateValidationResult(getState, dispatch, [inventoryId]);\r\n },\r\n\r\n getInitialSurveyData: (responseId: string): AppThunkActionAsync => async (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if ((surveyState === null || surveyState === undefined) || surveyState.dataLoaded) {\r\n return;\r\n }\r\n\r\n let page = 0;\r\n\r\n const currentNavContext: NavContext = JSON.parse(localStorage.getItem(`${LocalStorageNavContextKey}-${responseId}`) ?? \"null\");\r\n if (currentNavContext !== null) {\r\n page = currentNavContext.currentPageOfMaterialsIndex;\r\n }\r\n\r\n const coreDataResult = await serviceClient.getCoreSurveyResponseData(responseId, page);\r\n\r\n if (!coreDataResult.success || !coreDataResult.data) {\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n showErrorMessage: true,\r\n dataLoaded: true\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n var currentPageOfInventoryIds = getMainSupplierFacingMaterialInventoryList(coreDataResult.data)\r\n .map(inv => inv.inventoryId);\r\n\r\n // Add the selectedInventoryId to the array if does not exist already.\r\n var selectedInventoryId = getSelectedInventoryId(responseId);\r\n if (selectedInventoryId != null) {\r\n if (!currentPageOfInventoryIds.includes(selectedInventoryId)) {\r\n currentPageOfInventoryIds.push(selectedInventoryId);\r\n }\r\n }\r\n\r\n const validationsResult = await serviceClient.validateDataCollectionResponse(responseId, currentPageOfInventoryIds, coreDataResult.data.extensionRequest.inventoryIds);\r\n\r\n if (!validationsResult.success || !validationsResult.data) {\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n showErrorMessage: true,\r\n dataLoaded: true\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n const prevNavContext: NavContext = JSON.parse(localStorage.getItem(`${LocalStorageNavContextKey}-${coreDataResult.data.response.responseId}`) ?? \"null\");\r\n\r\n if (prevNavContext !== null && prevNavContext.inventoryNavIndex > -1) {\r\n const mainInventoryList = getMainSupplierFacingMaterialInventoryList(coreDataResult.data);\r\n\r\n // If an inventory has already been selected and stored in the surveyState, that inventory will be used. And\r\n // if no inventory is stored, the first inventory in the list will be selected, following the existing logic.\r\n const newSelectedInventory = mainInventoryList[mainInventoryList.length > prevNavContext?.inventoryNavIndex ? prevNavContext?.inventoryNavIndex : 0];\r\n let selectedInventoryId = newSelectedInventory.inventoryId;\r\n //if user has any selected inventory before the page refresh, it'll render that selected inventory\r\n if (currentNavContext.selectedInventoryId !== null && currentNavContext.selectedInventoryId !== undefined && currentNavContext.selectedInventoryId !== \"\") {\r\n selectedInventoryId = currentNavContext.selectedInventoryId;\r\n }\r\n\r\n if (newSelectedInventory === undefined || newSelectedInventory === null) {\r\n return;\r\n }\r\n\r\n const result = await getInventoryDetails(coreDataResult.data.response.responseId, selectedInventoryId);\r\n\r\n if (!result.success || !result.data) {\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n showErrorMessage: true,\r\n dataLoaded: true\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n responseId: responseId,\r\n dataLoaded: true,\r\n coreData: coreDataResult.data,\r\n validationResult: {\r\n ...validationsResult.data\r\n },\r\n selectedInventory: {\r\n ...result.data,\r\n inventoryId: selectedInventoryId\r\n },\r\n navContext: {\r\n ...prevNavContext,\r\n currentPageOfMaterialsIndex: page,\r\n currentlySelectedScipSubmissionData: null\r\n },\r\n surveyQuestionnairesList: result.data.questionnaireList,\r\n questionnairesTypes: result.data.questionnairesTypes\r\n }\r\n });\r\n\r\n const inventory = result.data;\r\n\r\n dispatch({\r\n type: SurveyResponseSetProgressState,\r\n value: {\r\n title: inventory?.name,\r\n current: surveyState.surveyQuestionnairesList[prevNavContext.surveyQuestionnaireIndex]?.pages[prevNavContext.surveyQuestionnairePageIndex].languageToTitleMap[surveyState.insActiveLanguage] ?? surveyState.surveyQuestionnairesList[prevNavContext.surveyQuestionnaireIndex]?.pages[prevNavContext.surveyQuestionnairePageIndex].title ?? SurveyResponseProgressTextHelper.mapPageTypeToText[prevNavContext.mainNavIndex],\r\n next: SurveyResponseProgressTextHelper.getNextTextByNavigationContext(inventory, prevNavContext, coreDataResult.data, surveyState.insActiveLanguage),\r\n currentProgress: SurveyResponseProgressTextHelper.getCurrentInventoryStep(inventory, prevNavContext),\r\n maxProgress: SurveyResponseProgressTextHelper.getMaxNumberOfInventorySteps(inventory)\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n responseId: responseId,\r\n dataLoaded: true,\r\n coreData: coreDataResult.data,\r\n validationResult: {\r\n ...validationsResult.data\r\n },\r\n navContext: prevNavContext ?? getInitialNavContext()\r\n }\r\n });\r\n\r\n const pagesOrder = SurveyResponseProgressTextHelper.topLevelPagesOrder(coreDataResult.data);\r\n\r\n dispatch({\r\n type: SurveyResponseSetProgressState,\r\n value: {\r\n title: \"Digital Product Passport\",\r\n current: prevNavContext !== null ? SurveyResponseProgressTextHelper.mapPageTypeToText[prevNavContext.mainNavIndex] : SurveyResponseProgressTextHelper.Instructions,\r\n next: SurveyResponseProgressTextHelper.mapPageTypeToText[pagesOrder[pagesOrder.indexOf(prevNavContext !== null ? prevNavContext.mainNavIndex : SurveyPageType.Instructions) + 1]]\r\n }\r\n });\r\n },\r\n\r\n getPaginatedSurveyData: (page: number, showSelectedInventory: boolean = false, invIndex: number = -1, surveyQuestionnaireIndex: number = -1, surveyQuestionnairePageIndex: number = -1, mainNavIndex: number = -1): AppThunkActionAsync => async (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if ((surveyState === null || surveyState === undefined)) {\r\n return;\r\n }\r\n\r\n dispatch({ type: SurveyResponseSetState, value: { dataLoaded: false } });\r\n // Fetch data for the new page from the backend\r\n const responseId = surveyState.responseId;\r\n \r\n const coreDataResult = await serviceClient.getCoreSurveyResponseData(responseId, page);\r\n if (!coreDataResult.success || !coreDataResult.data) {\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n showErrorMessage: true,\r\n dataLoaded: true\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n var currentPageOfInventoryIds = getMainSupplierFacingMaterialInventoryList(coreDataResult.data)\r\n .map(inv => inv.inventoryId);\r\n\r\n // Add the selectedInventoryId to the array if does not exist already.\r\n var selectedInventoryId = getSelectedInventoryId(responseId);\r\n if (selectedInventoryId != null) {\r\n if (!currentPageOfInventoryIds.includes(selectedInventoryId)) {\r\n currentPageOfInventoryIds.push(selectedInventoryId); \r\n }\r\n }\r\n\r\n const validationsResult = await serviceClient.validateDataCollectionResponse(responseId, currentPageOfInventoryIds, coreDataResult.data.extensionRequest.inventoryIds);\r\n\r\n if (!validationsResult.success || !validationsResult.data) {\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n showErrorMessage: true,\r\n dataLoaded: true\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n const prevNavContext: NavContext = JSON.parse(localStorage.getItem(`${LocalStorageNavContextKey}-${coreDataResult.data.response.responseId}`) ?? \"null\");\r\n if (prevNavContext !== null) {\r\n prevNavContext.currentPageOfMaterialsIndex = page;\r\n if(showSelectedInventory){\r\n prevNavContext.surveyQuestionnaireIndex = surveyQuestionnaireIndex ?? -1;\r\n prevNavContext.surveyQuestionnairePageIndex = surveyQuestionnairePageIndex ?? -1;\r\n }\r\n //prevNavContext.mainNavIndex = mainNavIndex ?? SurveyPageType.Inventory;\r\n }\r\n\r\n if (showSelectedInventory)\r\n {\r\n const mainInventoryList = getMainSupplierFacingMaterialInventoryList(coreDataResult.data);\r\n\r\n // If an inventory has already been selected and stored in the surveyState, that inventory will be used. And\r\n // if no inventory is stored, the first inventory in the list will be selected, following the existing logic.\r\n const newSelectedInventory = mainInventoryList[invIndex];\r\n\r\n if (newSelectedInventory === undefined || newSelectedInventory === null) {\r\n return;\r\n }\r\n\r\n const result = await getInventoryDetails(coreDataResult.data.response.responseId, newSelectedInventory.inventoryId);\r\n\r\n if (!result.success || !result.data) {\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n showErrorMessage: true,\r\n dataLoaded: true\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n //prevNavContext.selectedInventoryPageIndex = page;\r\n /*if (invIndex === 0) { //first inventory: if user goes to next page, selectedInventoryPageIndex should be incremented\r\n prevNavContext.selectedInventoryPageIndex += 1;\r\n } else if (invIndex === surveyResponseMaterialsPerPage - 1) { //last inventory: if user goes to previous page, selectedInventoryPageIndex should be decremented\r\n prevNavContext.selectedInventoryPageIndex -= 1;\r\n }*/\r\n \r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n responseId: responseId,\r\n dataLoaded: true,\r\n coreData: coreDataResult.data,\r\n validationResult: {\r\n ...validationsResult.data\r\n },\r\n selectedInventory: {\r\n ...result.data,\r\n inventoryId: newSelectedInventory.inventoryId\r\n },\r\n navContext: {\r\n ...prevNavContext,\r\n selectedInventoryPageIndex: page,\r\n inventoryNavIndex: invIndex,\r\n currentlySelectedScipSubmissionData: null\r\n },\r\n surveyQuestionnairesList: result.data.questionnaireList,\r\n questionnairesTypes: result.data.questionnairesTypes\r\n }\r\n });\r\n\r\n const inventory = result.data;\r\n\r\n dispatch({\r\n type: SurveyResponseSetProgressState,\r\n value: {\r\n title: inventory?.name,\r\n current: surveyState.surveyQuestionnairesList[prevNavContext.surveyQuestionnaireIndex]?.pages[prevNavContext.surveyQuestionnairePageIndex].languageToTitleMap[surveyState.insActiveLanguage] ?? surveyState.surveyQuestionnairesList[prevNavContext.surveyQuestionnaireIndex]?.pages[prevNavContext.surveyQuestionnairePageIndex].title ?? SurveyResponseProgressTextHelper.mapPageTypeToText[prevNavContext.mainNavIndex],\r\n next: SurveyResponseProgressTextHelper.getNextTextByNavigationContext(inventory, prevNavContext, coreDataResult.data, surveyState.insActiveLanguage),\r\n currentProgress: SurveyResponseProgressTextHelper.getCurrentInventoryStep(inventory, prevNavContext),\r\n maxProgress: SurveyResponseProgressTextHelper.getMaxNumberOfInventorySteps(inventory)\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n responseId: responseId,\r\n dataLoaded: true,\r\n coreData: coreDataResult.data,\r\n validationResult: {\r\n ...validationsResult.data\r\n },\r\n\r\n navContext: prevNavContext ?? getInitialNavContext()\r\n }\r\n });\r\n\r\n const pagesOrder = SurveyResponseProgressTextHelper.topLevelPagesOrder(coreDataResult.data);\r\n\r\n dispatch({\r\n type: SurveyResponseSetProgressState,\r\n value: {\r\n title: \"Digital Product Passport\",\r\n current: prevNavContext !== null ? SurveyResponseProgressTextHelper.mapPageTypeToText[prevNavContext.mainNavIndex] : SurveyResponseProgressTextHelper.Instructions,\r\n next: SurveyResponseProgressTextHelper.mapPageTypeToText[pagesOrder[pagesOrder.indexOf(prevNavContext !== null ? prevNavContext.mainNavIndex : SurveyPageType.Instructions) + 1]]\r\n }\r\n });\r\n },\r\n\r\n getCoreSurveyDataForAddedMaterials: (responseId: string): AppThunkAction => async (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if ((surveyState === null || surveyState === undefined)) {\r\n return;\r\n }\r\n\r\n dispatch({ type: SurveyResponseSetState, value: { dataLoaded: false } });\r\n // Fetch data for the new page from the backend\r\n const coreDataResult = await serviceClient.getCoreSurveyResponseDataForAddedMaterials(responseId);\r\n if (!coreDataResult.success || !coreDataResult.data) {\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n showErrorMessage: true,\r\n dataLoaded: true\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n dispatch({ type: SurveyResponseSetState, value: { dataLoaded: true } });\r\n return coreDataResult.data;\r\n },\r\n\r\n updateSupplierQuestionnairePageVisited: (pageIndex: number, set: boolean = true): AppThunkActionAsync => async (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if (!surveyState) {\r\n return;\r\n }\r\n\r\n const questionniare: Questionnaire = { ...surveyState.coreData!.response.supplierQuestionnaireData?.questionnaire! };\r\n\r\n if (!questionniare) {\r\n return;\r\n }\r\n\r\n const page = questionniare.pages[pageIndex];\r\n\r\n if (!page) {\r\n return;\r\n }\r\n\r\n if (page.hasPageBeenVisited === set) {\r\n return;\r\n }\r\n\r\n page.hasPageBeenVisited = set;\r\n\r\n const apiResult = await serviceClient.questionnaireResponseUpdate(\r\n surveyState.responseId,\r\n \"\",\r\n false,\r\n questionniare,\r\n surveyState.coreData?.response.supplierQuestionnaireData?.files ?? []\r\n );\r\n\r\n if (!apiResult.success) {\r\n getState().appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n await updateSupplierQuestionnaireValidationResult(getState, dispatch);\r\n },\r\n\r\n updateSurveyResponseToSubmitted: (): AppThunkAction => (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if (!surveyState || !surveyState.coreData) {\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n coreData: {\r\n ...surveyState.coreData,\r\n response: {\r\n ...surveyState.coreData.response,\r\n state: 1 // submitted\r\n }\r\n }\r\n }\r\n });\r\n },\r\n\r\n updateSelectSubInventoryCustomQuestionniarePageVisited: (questionnaireIndex: number, pageIndex: number, set: boolean = true): AppThunkActionAsync => async (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if (!surveyState) {\r\n return;\r\n }\r\n\r\n const questionniares: Questionnaire[] = [...surveyState.surveyQuestionnairesList];\r\n\r\n const questionnaire = questionniares[questionnaireIndex];\r\n\r\n if (!questionnaire) {\r\n return;\r\n }\r\n\r\n const page = questionnaire.pages[pageIndex];\r\n\r\n if (!page) {\r\n return;\r\n }\r\n\r\n page.hasPageBeenVisited = set;\r\n\r\n const type = surveyState.questionnairesTypes[questionnaireIndex];\r\n\r\n // Base Questionnaire does not actually get saved. It is generated as\r\n // part of the request/response.\r\n if (type === InventoryQuestionnaireType.BaseQuestionnaire) {\r\n return;\r\n }\r\n\r\n const apiResult = await serviceClient.questionnaireResponseUpdate(\r\n surveyState.responseId,\r\n surveyState.selectedInventory!.inventoryId,\r\n type === InventoryQuestionnaireType.AttestationQuestionnaire,\r\n questionnaire,\r\n surveyState.coreData?.response.supplierQuestionnaireData?.files ?? []\r\n );\r\n\r\n if (!apiResult.success) {\r\n getState().appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n await updateValidationResult(getState, dispatch, [surveyState.selectedInventory!.inventoryId]);\r\n },\r\n\r\n dispatchUpdateInventoryDetails: (result: any, inventoryId: string): AppThunkActionAsync => async (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState;\r\n\r\n if (!surveyState) {\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n pageDataLoaded: true,\r\n selectedInventory: {\r\n ...result.data,\r\n bomNextClicked: surveyState.selectedInventory?.bomNextClicked,\r\n inventoryId: inventoryId\r\n },\r\n surveyQuestionnairesList: result.data.questionnaireList,\r\n questionnairesTypes: result.data.questionnairesTypes\r\n }\r\n });\r\n },\r\n \r\n dispatchLoadingState: (isLoading: boolean): AppThunkAction => (dispatch, getState) => {\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n pageDataLoaded: !isLoading\r\n }\r\n });\r\n },\r\n\r\n initializeRegulationManager: (regulationId: string, questionsList: QuestionnaireQuestion[], questionRegulatoryData: QuestionRegulatoryData[], regulationScoresTable: RegulationScoresTable | null): AppThunkAction => (dispatch, getState) => {\r\n const surveyState = getState().surveyResponseState ?? getInitialState(\"en\");\r\n\r\n const overallQuestionniare = surveyState.surveyQuestionnairesList[surveyState.navContext.surveyQuestionnaireIndex];\r\n\r\n // special case, SCIP uses the scores from REACH SVHC\r\n const regulationIdToUseForScoring = (regulationId === RegulationManager.ScipComplianceId)\r\n ? RegulationManager.ReachSvhcCandidateRegulationId\r\n : regulationId;\r\n\r\n const complianceScoreResult = regulationId && regulationId.length > 0\r\n ? regulationScoresTable![regulationIdToUseForScoring]\r\n : null;\r\n\r\n const regulationManager = CustomRegulationLogicManagerFactory.createManagerForRegulation(\r\n regulationId,\r\n questionsList,\r\n overallQuestionniare,\r\n questionRegulatoryData,\r\n surveyState.selectedInventory,\r\n complianceScoreResult\r\n );\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n regulationManager: regulationManager\r\n }\r\n });\r\n },\r\n\r\n fetchScipSubmissionForSelectedInventory: (): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState();\r\n\r\n const currentResponseState = state.surveyResponseState;\r\n\r\n if (!currentResponseState) {\r\n return;\r\n }\r\n\r\n if (!currentResponseState.selectedInventory) {\r\n return;\r\n }\r\n\r\n const apiResult = await serviceClient.scipSubmissionGet(currentResponseState.selectedInventory.inventoryId, false, true);\r\n\r\n if (!apiResult.success || !apiResult.data) {\r\n state.appServices?.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: SurveyResponseSetState,\r\n value: {\r\n selectedInventory: {\r\n ...currentResponseState.selectedInventory,\r\n scipSubmissionData: apiResult.data.scipSubmissionData\r\n }\r\n }\r\n });\r\n }\r\n};\r\n\r\n\r\n// ===============================================================================\r\n\r\nexport const reducer: Reducer = (state: SurveyResponseState | undefined, action: Action): SurveyResponseState => {\r\n if (state === undefined) {\r\n return getInitialState(\"en\");\r\n }\r\n\r\n switch (action.type) {\r\n case SurveyResponseSetProgressState:\r\n const surveyResponseProgressState = (action as SurveyResponseSetProgressState).value;\r\n\r\n return {\r\n ...state,\r\n progressState: {\r\n ...state.progressState,\r\n ...surveyResponseProgressState\r\n }\r\n };\r\n\r\n case SurveyResponseSetState:\r\n const surveyResponseState = (action as SurveyResponseSetState).value;\r\n\r\n if (state.coreData !== null && state.coreData !== undefined) {\r\n localStorage.setItem(`${LocalStorageNavContextKey}-${state.coreData.response.responseId}`, JSON.stringify(surveyResponseState.navContext ?? state.navContext));\r\n }\r\n\r\n return {\r\n ...state,\r\n ...surveyResponseState\r\n };\r\n }\r\n\r\n return state;\r\n}\r\n","import { SimpleInventory } from \"../Inventories/SimpleInventory\";\r\n\r\nexport enum TaskRemindersState {\r\n NeedsToBeSent = \"NeedsToBeSent\",\r\n PeekLock = \"PeekLock\",\r\n Sent = \"Sent\"\r\n}\r\n\r\nexport enum TaskManagementLinkedItemType {\r\n Inventory = \"Inventory\",\r\n Survey = \"Survey\",\r\n CustomerRequest = \"CustomerRequest\"\r\n}\r\n\r\nexport enum TaskStatus {\r\n New = \"New\",\r\n Active = \"Active\",\r\n Closed = \"Closed\"\r\n}\r\n\r\nexport enum TaskFilterType {\r\n Status = \"status\",\r\n UserId = \"assignedUserId\",\r\n DeadlineDateBefore = \"deadlineDateBefore\",\r\n DeadlineDateAfter = \"deadlineDateAfter\",\r\n Search = \"search\"\r\n}\r\n\r\nexport enum TaskSortableColumns {\r\n Title,\r\n State, \r\n DueDate\r\n}\r\n\r\nexport interface TaskManagementState {\r\n tasks: {[taskId: string] : Task},\r\n filteredAndSortedTaskIds: string[],\r\n selectedTaskIds: { [id: string]: string },\r\n openTaskId: string | null,\r\n showErrorMessage: boolean,\r\n dataLoaded: boolean,\r\n taskFilters: { [filterType in TaskFilterType] : string[] }\r\n searchBarInput: string;\r\n teamMembers: TaskAssignedUser[];\r\n surveyList: TaskManagementDataCollectionRequest[];\r\n inventoryIdToInventoryNamesMap: { [inventoryId: string]: SimpleInventory },\r\n filesTable: { [fileId: string]: string },\r\n sortSettings: SortOptions\r\n}\r\n\r\ninterface SortOptions {\r\n activeSortColumn: TaskSortableColumns,\r\n sortAscending: boolean\r\n}\r\n\r\ninterface TaskCoreData {\r\n title: string,\r\n description: string,\r\n deadlineDate: string | null,\r\n assignedUserId: string | null,\r\n assignedByUserId: string | null,\r\n status: TaskStatus,\r\n linkedItems: TaskManagementLinkedItem[],\r\n weeklyReminderState: TaskRemindersState,\r\n dailyReminderState: TaskRemindersState,\r\n weeklyPeekLockTimeout: string | null,\r\n dailyPeekLockTimeout: string | null,\r\n attachedFileIds: string[]\r\n}\r\n\r\nexport interface TaskManagementApiRequest extends TaskCoreData {\r\n taskId: string | null,\r\n sendAssignmentReminder: boolean\r\n}\r\n\r\nexport interface Task extends TaskCoreData {\r\n taskId: string,\r\n teamOwnerId: string;\r\n}\r\n\r\nexport interface TaskManagementLinkedItem {\r\n itemType: TaskManagementLinkedItemType,\r\n itemId: string,\r\n secondaryItemId?: string\r\n}\r\n\r\nexport interface TaskAssignedUser {\r\n userId: string,\r\n firstName: string,\r\n lastName: string,\r\n emailId: string,\r\n}\r\n\r\nexport interface TaskManagementViewLinkedInventoriesContext {\r\n inventoryIdsToFilter: string[];\r\n viewProducts: boolean;\r\n}\r\n\r\n\r\nexport interface TaskManagementApiResponse {\r\n tasks: { [taskId: string]: Task },\r\n linkableDataCollectionRequests: TaskManagementDataCollectionRequest[],\r\n taskAssignedUsers: TaskAssignedUser[],\r\n inventoryIdToInventoryNamesMap: { [inventoryId: string] : SimpleInventory},\r\n fileIdsToFileNameMap: { [fileId: string]: string }\r\n}\r\n\r\nexport interface TaskManagementDataCollectionRequest {\r\n requestId: string,\r\n surveyName: string,\r\n fromname: string, \r\n sendToEmail: string,\r\n surveyType: string,\r\n state: number\r\n}","import { Action, Reducer } from \"redux\";\r\nimport { ApplicationState, AppThunkAction, AppThunkActionAsync } from \"../..\";\r\nimport { AppServices } from \"../../../AppServices\";\r\nimport { Task, TaskFilterType, TaskManagementState, TaskManagementApiRequest, TaskStatus, TaskRemindersState, TaskManagementLinkedItem, TaskManagementLinkedItemType, TaskSortableColumns } from \"../../Models/TaskManagement/TaskManagementDataModel\";\r\nimport { ToxnotServiceClient } from \"../../ToxnotServiceClient\";\r\n\r\nconst TaskManagementSetState = \"SET_TASK_DATA\";\r\ninterface TaskManagementSetState {\r\n type: typeof TaskManagementSetState,\r\n value: Partial\r\n}\r\n\r\nconst initialState: TaskManagementState = {\r\n tasks: {},\r\n filteredAndSortedTaskIds: [],\r\n selectedTaskIds: {},\r\n openTaskId: null,\r\n showErrorMessage: false,\r\n dataLoaded: false,\r\n taskFilters: {\r\n status: [TaskStatus.Active, TaskStatus.New],\r\n search: [],\r\n assignedUserId: [],\r\n deadlineDateAfter: [],\r\n deadlineDateBefore: []\r\n },\r\n searchBarInput: \"\",\r\n teamMembers: [],\r\n surveyList: [],\r\n inventoryIdToInventoryNamesMap: {},\r\n filesTable: {},\r\n sortSettings: {\r\n activeSortColumn: TaskSortableColumns.DueDate,\r\n sortAscending: true\r\n }\r\n}\r\n\r\n//==============================================\r\n\r\nexport function getDateIsoString(dateInput : string): string {\r\n const splits: number[] = dateInput.split('-').map(s => parseInt(s));\r\n const date = new Date(splits[0], splits[1] - 1, splits[2]);\r\n return date.toISOString();\r\n}\r\n\r\nexport function stringToTaskStatusEnumMap(): { [str: string]: TaskStatus } {\r\n return {\r\n [\"New\"]: TaskStatus.New,\r\n [\"Active\"]: TaskStatus.Active,\r\n [\"Closed\"]: TaskStatus.Closed\r\n }\r\n}\r\n\r\nexport function getLinkedItemLink(linkedItem: TaskManagementLinkedItem) {\r\n switch (linkedItem.itemType) {\r\n case TaskManagementLinkedItemType.Inventory:\r\n return \"/Data/Inventory?inventoryId=\" + linkedItem.itemId;\r\n case TaskManagementLinkedItemType.Survey:\r\n return \"/Survey/\" + linkedItem.itemId;\r\n case TaskManagementLinkedItemType.CustomerRequest:\r\n return \"/MyCustomers/Browse/Customer/\" + linkedItem.secondaryItemId + \"/Request/\" + linkedItem.itemId;\r\n }\r\n\r\n}\r\n\r\n// =============================================\r\n\r\ntype KnownActions = TaskManagementSetState;\r\n\r\nexport const actionCreators = {\r\n setTaskManagementState: (value: Partial): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n if (!state) {\r\n return;\r\n }\r\n\r\n dispatch({ \r\n type: TaskManagementSetState,\r\n value: value\r\n });\r\n },\r\n addTask: (appServices: AppServices): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n if (!state || !state.taskManagementState) {\r\n return;\r\n }\r\n\r\n const newTask: TaskManagementApiRequest = {\r\n taskId: null,\r\n title: \"\",\r\n description: \"\",\r\n assignedUserId: appServices.userContext?.userId ?? null,\r\n status: TaskStatus.New,\r\n deadlineDate: null,\r\n linkedItems: [],\r\n weeklyReminderState: TaskRemindersState.NeedsToBeSent,\r\n dailyReminderState: TaskRemindersState.NeedsToBeSent,\r\n weeklyPeekLockTimeout: null,\r\n dailyPeekLockTimeout: null,\r\n assignedByUserId: null,\r\n attachedFileIds: [],\r\n sendAssignmentReminder: false\r\n }\r\n\r\n updateTask(newTask, true, dispatch, state, state.appServices?.userContext?.teamOwnerId ?? \"\");\r\n },\r\n deleteTasks: (selectedTaskIds: {[taskId: string] : string } ): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n if (!state || !state.taskManagementState) {\r\n return;\r\n }\r\n\r\n var tasks = { ...state.taskManagementState.tasks };\r\n\r\n for (const key of Object.keys(selectedTaskIds)) {\r\n delete tasks[key];\r\n }\r\n\r\n\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n ...state.taskManagementState,\r\n tasks: tasks,\r\n selectedTaskIds: {}\r\n }\r\n });\r\n\r\n deleteTask(Object.keys(selectedTaskIds), dispatch, state);\r\n },\r\n modifyTaskState: (taskId: string, taskChanges: Partial, originalTask: Task): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n if (!state || !state.taskManagementState) {\r\n return;\r\n }\r\n\r\n const newTask : Task = {\r\n ...originalTask,\r\n ...taskChanges\r\n }\r\n\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n ...state.taskManagementState,\r\n tasks: {\r\n ...state.taskManagementState.tasks,\r\n [taskId]: newTask\r\n }\r\n }\r\n });\r\n\r\n const newTaskApiRequest: TaskManagementApiRequest = {\r\n ...newTask,\r\n sendAssignmentReminder: false\r\n }\r\n\r\n updateTask(newTaskApiRequest, false, dispatch, state, state.appServices?.userContext?.teamOwnerId ?? \"\");\r\n },\r\n modifyTaskAssignedToState: (taskId: string, assignedToUserId: string, originalTask: Task): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n if (!state || !state.taskManagementState || !state.appServices?.userContext) {\r\n return;\r\n }\r\n\r\n const newTask: Task = {\r\n ...originalTask,\r\n assignedUserId: assignedToUserId,\r\n assignedByUserId: state.appServices.userContext.userId\r\n }\r\n\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n ...state.taskManagementState,\r\n tasks: {\r\n ...state.taskManagementState.tasks,\r\n [taskId]: newTask\r\n }\r\n }\r\n });\r\n\r\n const newTaskApiRequest: TaskManagementApiRequest = {\r\n ...newTask,\r\n sendAssignmentReminder: true\r\n }\r\n\r\n updateTask(newTaskApiRequest, false, dispatch, state, state.appServices?.userContext?.teamOwnerId ?? \"\");\r\n },\r\n modifyTaskDueDate: (taskId: string, dueDate: string, originalTask: Task): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n if (!state || !state.taskManagementState) {\r\n return;\r\n }\r\n\r\n const newTask: Task = {\r\n ...originalTask,\r\n deadlineDate: dueDate,\r\n weeklyPeekLockTimeout: null,\r\n dailyPeekLockTimeout: null,\r\n dailyReminderState: TaskRemindersState.NeedsToBeSent,\r\n weeklyReminderState: TaskRemindersState.NeedsToBeSent\r\n }\r\n\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n ...state.taskManagementState,\r\n tasks: {\r\n ...state.taskManagementState.tasks,\r\n [taskId]: newTask\r\n }\r\n }\r\n });\r\n\r\n const newTaskApiRequest: TaskManagementApiRequest = {\r\n ...newTask,\r\n sendAssignmentReminder: false\r\n }\r\n\r\n updateTask(newTaskApiRequest, false, dispatch, state, state.appServices?.userContext?.teamOwnerId ?? \"\");\r\n },\r\n getTasks: (): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState();\r\n if (!state || !state.taskManagementState) {\r\n return;\r\n }\r\n\r\n if (!state.appServices) {\r\n return;\r\n }\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n const apiResult = await serviceClient.getTaskManagementTasks();\r\n\r\n if (!apiResult.success || !apiResult.data) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n const data = apiResult.data;\r\n const tasks = data.tasks;\r\n \r\n const filteredTaskIds = filterTasks(tasks, state.taskManagementState.taskFilters);\r\n const filteredAndSortedTasks = sortTasks(tasks, filteredTaskIds, state.taskManagementState.sortSettings.activeSortColumn, state.taskManagementState.sortSettings.sortAscending);\r\n\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n tasks: tasks,\r\n filteredAndSortedTaskIds: filteredAndSortedTasks,\r\n dataLoaded: true,\r\n teamMembers: data.taskAssignedUsers,\r\n inventoryIdToInventoryNamesMap: data.inventoryIdToInventoryNamesMap,\r\n surveyList: data.linkableDataCollectionRequests,\r\n filesTable: data.fileIdsToFileNameMap\r\n }\r\n });\r\n\r\n return;\r\n \r\n },\r\n bulkUpdateTasks: (selectedTaskIds: {[taskId: string] : string}, changes: Partial): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState();\r\n if (!state || !state.taskManagementState) {\r\n return;\r\n }\r\n\r\n if (!state.appServices) {\r\n return;\r\n }\r\n\r\n let newTasks: {[taskId: string] : Task} = {};\r\n\r\n for (let key of Object.keys(selectedTaskIds)) {\r\n newTasks[key] = {\r\n ...state.taskManagementState.tasks[key],\r\n ...changes\r\n }\r\n }\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const apiResult = await serviceClient.bulkUpdateTaskManagementTask(Object.values(newTasks), \"\");\r\n\r\n if (!apiResult.success) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n tasks: {\r\n ...state.taskManagementState.tasks,\r\n ...newTasks\r\n }\r\n }\r\n })\r\n\r\n },\r\n bulkUpdateTasksWithAssignedTo: (selectedTaskIds: { [taskId: string]: string }, assignedTo: string): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState();\r\n if (!state || !state.taskManagementState || !state.appServices?.userContext) {\r\n return;\r\n }\r\n\r\n if (!state.appServices) {\r\n return;\r\n }\r\n\r\n let newTasks: { [taskId: string]: Task } = {};\r\n\r\n for (let key of Object.keys(selectedTaskIds)) {\r\n newTasks[key] = {\r\n ...state.taskManagementState.tasks[key],\r\n assignedUserId: assignedTo,\r\n assignedByUserId: state.appServices.userContext.userId\r\n }\r\n }\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const apiResult = await serviceClient.bulkUpdateTaskManagementTask(Object.values(newTasks), \"true\");\r\n\r\n if (!apiResult.success) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n tasks: {\r\n ...state.taskManagementState.tasks,\r\n ...newTasks\r\n }\r\n }\r\n })\r\n\r\n },\r\n bulkUpdateDueDateForTasks: (selectedTaskIds: { [taskId: string]: string }, dueDate: string): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState();\r\n if (!state || !state.taskManagementState) {\r\n return;\r\n }\r\n\r\n if (!state.appServices) {\r\n return;\r\n }\r\n\r\n let newTasks: { [taskId: string]: Task } = {};\r\n\r\n for (let key of Object.keys(selectedTaskIds)) {\r\n newTasks[key] = {\r\n ...state.taskManagementState.tasks[key],\r\n deadlineDate: dueDate,\r\n weeklyPeekLockTimeout: null,\r\n dailyPeekLockTimeout: null,\r\n dailyReminderState: TaskRemindersState.NeedsToBeSent,\r\n weeklyReminderState: TaskRemindersState.NeedsToBeSent\r\n }\r\n }\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const apiResult = await serviceClient.bulkUpdateTaskManagementTask(Object.values(newTasks),\"\");\r\n\r\n if (!apiResult.success) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n tasks: {\r\n ...state.taskManagementState.tasks,\r\n ...newTasks\r\n }\r\n }\r\n })\r\n\r\n },\r\n filterTasks: (): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n if (!state || !state.taskManagementState) return;\r\n\r\n const taskState = state.taskManagementState;\r\n const filters = state.taskManagementState.taskFilters;\r\n let tasks = filterTasks(taskState.tasks, filters);\r\n\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n filteredAndSortedTaskIds: tasks\r\n }\r\n });\r\n \r\n\r\n },\r\n sortTasks: (column: TaskSortableColumns, sortAscending: boolean): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n if (!state || !state.taskManagementState) return;\r\n\r\n const taskState = state.taskManagementState;\r\n let tasks = sortTasks(taskState.tasks, taskState.filteredAndSortedTaskIds, column, sortAscending);\r\n\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n filteredAndSortedTaskIds: tasks,\r\n sortSettings: {\r\n activeSortColumn: column,\r\n sortAscending: sortAscending\r\n }\r\n }\r\n });\r\n\r\n\r\n },\r\n getLinkedInventoriesNames: (inventoryIds: string[]): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState();\r\n if (!state || !state.taskManagementState) {\r\n return;\r\n }\r\n\r\n if (!state.appServices) {\r\n return;\r\n }\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const apiResult = await serviceClient.getTaskManagementLinkedInventoriesNames(inventoryIds);\r\n\r\n if (!apiResult.success || !apiResult.data) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n const data = apiResult.data;\r\n\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n inventoryIdToInventoryNamesMap: {\r\n ...state.taskManagementState.inventoryIdToInventoryNamesMap,\r\n ...data \r\n }\r\n }\r\n });\r\n\r\n },\r\n uploadFiles: (taskId: string, files: FileList): AppThunkActionAsync => async (dispatch, getState) => {\r\n\r\n const state = getState();\r\n if (!state || !state.taskManagementState) {\r\n return;\r\n }\r\n\r\n if (!state.appServices) {\r\n return;\r\n }\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n let fileTable: { [fileId: string]: string } = {};\r\n\r\n for (let i = 0; i < files.length; i++) {\r\n\r\n const file = files.item(i);\r\n\r\n if (file != null) {\r\n const apiResult = await serviceClient.uploadGeneralFile(file.name, \"Uploaded To Task\", 0, false, false, file);\r\n console.log(apiResult);\r\n if (!apiResult.success || !apiResult.data) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n console.log(apiResult);\r\n fileTable[apiResult.data.fileId] = apiResult.data.filename;\r\n }\r\n\r\n } \r\n\r\n const newTask: Task = {\r\n ...state.taskManagementState.tasks[taskId],\r\n attachedFileIds: state.taskManagementState.tasks[taskId].attachedFileIds.concat(Object.keys(fileTable))\r\n }\r\n\r\n const newTaskApiRequest: TaskManagementApiRequest = {\r\n ...newTask,\r\n sendAssignmentReminder: false\r\n }\r\n\r\n await updateTask(newTaskApiRequest, false, dispatch, state, state.appServices?.userContext?.teamOwnerId ?? \"\");\r\n\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n ...state.taskManagementState,\r\n tasks: {\r\n ...state.taskManagementState.tasks,\r\n [taskId]: newTask\r\n },\r\n filesTable: {\r\n ...state.taskManagementState.filesTable,\r\n ...fileTable\r\n }\r\n }\r\n });\r\n\r\n\r\n }\r\n}\r\n\r\n//Function to update an exisitng task or create a new one. Set modifyingNewTask = true to create a new task.\r\nasync function updateTask(taskRequest: TaskManagementApiRequest, modifyingNewTask: boolean, dispatch: (action: KnownActions) => void, state: ApplicationState, ownerId: string, sendAssignmentEmail = false) {\r\n if (!state || !state.taskManagementState) {\r\n return;\r\n }\r\n\r\n if (!state.appServices) {\r\n return;\r\n }\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const apiResult = await serviceClient.updateTaskManagementTask(taskRequest, sendAssignmentEmail);\r\n\r\n if (!apiResult.success) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n } \r\n\r\n //If we added a new Task with a temprorary task id, then add the C# assigned guid to it\r\n if (modifyingNewTask) {\r\n\r\n const newTaskId = apiResult.data;\r\n\r\n if (!newTaskId) {\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n showErrorMessage: true\r\n }\r\n });\r\n return;\r\n }\r\n\r\n const task: Task = {\r\n ...taskRequest,\r\n taskId: newTaskId,\r\n teamOwnerId: ownerId\r\n }\r\n\r\n dispatch({\r\n type: TaskManagementSetState,\r\n value: {\r\n ...state,\r\n tasks: { [newTaskId]: task, ...state.taskManagementState.tasks },\r\n filteredAndSortedTaskIds: [newTaskId, ...state.taskManagementState.filteredAndSortedTaskIds],\r\n }\r\n });\r\n }\r\n}\r\n\r\n//Calls the api to delete the tasks with the given task ids.\r\nasync function deleteTask(taskIds: string[], dispatch: (action: KnownActions) => void, state: ApplicationState) {\r\n if (!state || !state.taskManagementState) {\r\n return;\r\n }\r\n\r\n if (!state.appServices) {\r\n return;\r\n }\r\n\r\n const serviceClient = new ToxnotServiceClient();\r\n const apiResult = await serviceClient.deleteTaskManagementTask(taskIds);\r\n\r\n if (!apiResult.success) {\r\n state.appServices.displayApiErrorMessage();\r\n return;\r\n }\r\n}\r\n\r\n//Filters the provided tasks based on the provided filters. Filters have determinded type with possible string values. \r\nfunction filterTasks(tasks: { [taskId: string]: Task }, filters: { [filterType in TaskFilterType]: string[] }): string[] {\r\n\r\n let filteredTaskIds: string[] = [];\r\n\r\n for (const task of Object.values(tasks)) {\r\n\r\n let passedFilters = true;\r\n\r\n for (const filterType of Object.keys(filters)) {\r\n\r\n if (!filters[filterType as TaskFilterType]) continue;\r\n\r\n const values = filters[filterType as TaskFilterType];\r\n\r\n if (values.length < 1) continue;\r\n\r\n switch (filterType as TaskFilterType) {\r\n case TaskFilterType.Status:\r\n passedFilters = passedFilters && (values.findIndex(v => v === task.status) >= 0);\r\n continue;\r\n case TaskFilterType.UserId:\r\n passedFilters = passedFilters && (values.findIndex(v => v === task.assignedUserId) >= 0)\r\n continue;\r\n case TaskFilterType.Search:\r\n passedFilters = passedFilters && task.title.toLowerCase().includes(values[0].toLowerCase())\r\n continue;\r\n case TaskFilterType.DeadlineDateBefore:\r\n passedFilters = task.deadlineDate !== null && (passedFilters && new Date(values[0]).getTime() >= new Date(task.deadlineDate).getTime())\r\n continue;\r\n case TaskFilterType.DeadlineDateAfter:\r\n passedFilters = task.deadlineDate !== null && (passedFilters && new Date(values[0]).getTime() <= new Date(task.deadlineDate).getTime())\r\n continue;\r\n default:\r\n continue;\r\n\r\n }\r\n }\r\n\r\n if (passedFilters) filteredTaskIds.push(task.taskId);\r\n }\r\n return filteredTaskIds;\r\n}\r\n\r\nfunction sortTasks(tasks: { [taskId: string]: Task }, filteredTasks: string[], sortColumn: TaskSortableColumns, sortAscending: boolean): string[] {\r\n switch (sortColumn) {\r\n case TaskSortableColumns.Title:\r\n return filteredTasks.sort((a, b) => sortAscending ? tasks[a].title.localeCompare(tasks[b].title) : -1 * tasks[a].title.localeCompare(tasks[b].title));\r\n case TaskSortableColumns.State:\r\n return filteredTasks.sort((a, b) => sortAscending ? tasks[a].status.localeCompare(tasks[b].status) : -1 * tasks[a].status.localeCompare(tasks[b].status));\r\n case TaskSortableColumns.DueDate:\r\n return filteredTasks.sort((a, b) => {\r\n //If null max date so that they appear at bottom\r\n const s_a = tasks[a].deadlineDate ?? new Date(\"9999/12/31\").toISOString();\r\n const s_b = tasks[b].deadlineDate ?? new Date(\"9999/12/31\").toISOString();\r\n\r\n const compare = s_a.localeCompare(s_b);\r\n return sortAscending ? compare : -1 * compare;\r\n });\r\n }\r\n}\r\n\r\nexport const reducer: Reducer = (state: TaskManagementState | undefined, action: Action): TaskManagementState => {\r\n if (state === undefined) {\r\n return initialState;\r\n }\r\n let incomingAction;\r\n switch (action.type) {\r\n case TaskManagementSetState:\r\n incomingAction = action as TaskManagementSetState;\r\n return {\r\n ...state,\r\n ...incomingAction.value\r\n }\r\n }\r\n return state;\r\n}\r\n\r\n\r\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import { GetSurveyMetadataRequest } from \"../Models/Surveys/SurveyDataModel\";\r\n\r\nexport interface RequestDataSupplierInfo {\r\n existingSupplierIdsToInventoryIds: { [supplierId: string]: string[] }\r\n newSupplierNamesToEmail: {[supplierName: string]: string}\r\n};\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * A manager class to handle the getting and setting survey data in local\r\n * storage. This is primary used to pass data from the .net side of the app\r\n * to the react side.\r\n */\r\nexport class SurveyLocalStorageManager {\r\n // Local storage key prefix to get the supplier ids and inventories id from storage\r\n private static readonly _supplierIdsAndInventoriesIdKeyPrefix = \"supplier-ids-inventory-ids-key-\";\r\n\r\n // Local storage key to get the supplier ids and inventories id from storage. Default is null\r\n // until the user id is added to it in the constuctor.\r\n private _supplierIdsAndInventoriesIdKey: string;\r\n\r\n // ===============================================================================\r\n\r\n constructor(userId: string) {\r\n this._supplierIdsAndInventoriesIdKey = SurveyLocalStorageManager._supplierIdsAndInventoriesIdKeyPrefix + userId\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Sets the new survey data as a JSON string in local storage. Then\r\n * this methods navigates to the specified path.\r\n * \r\n * @param data the new survey data to be stored in local storage.\r\n * @param path the path to navigate to after the local storage is set.\r\n */\r\n public setNewSurveyDataAndNavigate(data: RequestDataSupplierInfo, path: string) {\r\n this.setRequestDataSupplierInfo(data);\r\n window.location.href = path;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Gets supplier and material data from local storage for the auto-fill feature\r\n * of the request data page. This method automatically clears the local storage after\r\n */\r\n public getAndClearRequestDataSupplierInfo(): RequestDataSupplierInfo | null {\r\n const dataJson = localStorage.getItem(this._supplierIdsAndInventoriesIdKey);\r\n\r\n // Item did not exist\r\n if (dataJson === null) {\r\n return null;\r\n }\r\n\r\n let data: RequestDataSupplierInfo | null = null;\r\n\r\n try {\r\n data = JSON.parse(dataJson) as RequestDataSupplierInfo;\r\n }\r\n catch {\r\n console.error(`ERROR in getAndClearSupplierIdsAndInventoryIds. Failed to parse JSON: ${dataJson}`);\r\n }\r\n\r\n localStorage.removeItem(this._supplierIdsAndInventoriesIdKey);\r\n\r\n return data;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Gets supplier and material data from local storage for the auto-fill feature\r\n * of the request data page.\r\n */\r\n public getRequestDataSupplierInfo(): RequestDataSupplierInfo | null {\r\n const dataJson = localStorage.getItem(this._supplierIdsAndInventoriesIdKey);\r\n // Item did not exist\r\n if (dataJson === null) {\r\n return null;\r\n }\r\n\r\n let data: RequestDataSupplierInfo | null = null;\r\n\r\n try {\r\n data = JSON.parse(dataJson) as RequestDataSupplierInfo;\r\n }\r\n catch {\r\n console.error(`ERROR in getAndClearSupplierIdsAndInventoryIds. Failed to parse JSON: ${dataJson}`);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Sets the data needed for the request data page in local storage.\r\n * \r\n * @param requestDataSupplierInfo the data to store\r\n */\r\n public setRequestDataSupplierInfo(requestDataSupplierInfo: RequestDataSupplierInfo) {\r\n try {\r\n const dataJson = JSON.stringify(requestDataSupplierInfo);\r\n localStorage.setItem(this._supplierIdsAndInventoriesIdKey, dataJson);\r\n }\r\n catch {\r\n console.error(`ERROR in setSupplierIdsAndInventoryIds. Failed to stringify data: ${requestDataSupplierInfo}`);\r\n }\r\n }\r\n}","import { Action, Reducer } from \"redux\";\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { ApplicationState, AppThunkAction, AppThunkActionAsync } from \"../..\";\r\nimport { RequestDataSupplierInfo, SurveyLocalStorageManager } from \"../../Managers/SurveyLocalStorageManager\";\r\nimport { ResultType } from \"../../Models/Api/ApiResponse\";\r\nimport { SimpleInventoryWithLinkedMaterialInfo } from \"../../Models/Inventories/SimpleInventory\";\r\nimport { InventoryOrCustomNameWithPossibleId } from \"../../Models/InventoryNameWithPossibleId\";\r\nimport { InviteSupplierModel, InviteSupplierRowModel, Supplier } from \"../../Models/Supplier/Supplier\";\r\nimport { ToxnotServiceClient } from \"../../ToxnotServiceClient\";\r\n\r\n// ===============================================================================\r\n//\r\n// State Models\r\n//\r\n\r\nexport interface SelectSuppliersMaterialsTableState {\r\n isSelectingSuppliersLoading: boolean;\r\n supplierRowModels: InviteSupplierRowModel[];\r\n supplierIdsToInventories: { [supplierId: string]: SimpleInventoryWithLinkedMaterialInfo[] };\r\n existingSuppliers: Supplier[];\r\n existingSuppliersTable: { [supplierId: string]: Supplier };\r\n selectedSupplierRowIdentifier: string | null;\r\n materialsSelectorIsOpen: boolean;\r\n selectedSupplierRowIds: { [supplierId: string]: string };\r\n newMaterialsTextBoxValue: string;\r\n}\r\n\r\n// ===============================================================================\r\n//\r\n// Action Definitions\r\n//\r\n\r\nexport const UpdateSelectSuppliersMaterialsTableState = \"UPDATE_SELECT_SUPPLIERS_MATERIALS_TABLE_STATE\";\r\n\r\ninterface UpdateSelectSuppliersMaterialsTableStateAction {\r\n type: typeof UpdateSelectSuppliersMaterialsTableState;\r\n value: Partial;\r\n}\r\n\r\ntype KnownAction = UpdateSelectSuppliersMaterialsTableStateAction;\r\n\r\n// ===============================================================================\r\n//\r\n// Helper Functions\r\n//\r\n\r\nconst toxnotServiceClient = new ToxnotServiceClient();\r\n\r\ninterface AutofillReturnResponse {\r\n newSuppliersToInvite: InviteSupplierModel[];\r\n supplierIdsToInventories: { [supplierId: string]: SimpleInventoryWithLinkedMaterialInfo[] };\r\n}\r\n\r\nconst getInitialState = (): SelectSuppliersMaterialsTableState => {\r\n return {\r\n isSelectingSuppliersLoading: true,\r\n supplierRowModels: [],\r\n supplierIdsToInventories: {},\r\n existingSuppliers: [],\r\n existingSuppliersTable: {},\r\n selectedSupplierRowIdentifier: null,\r\n materialsSelectorIsOpen: false,\r\n selectedSupplierRowIds: {},\r\n newMaterialsTextBoxValue: \"\"\r\n };\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction verifyAndGetState(state: ApplicationState): SelectSuppliersMaterialsTableState {\r\n if (!state || !state.appServices || !state.selectSuppliersMaterialsTableState) {\r\n throw new Error(\"SelectSuppliersMaterialsTableState was not set up correctly.\");\r\n }\r\n\r\n return state.selectSuppliersMaterialsTableState;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* First we go through the given supplier ids and create new invite supplier models\r\n * from them. Then we go through the existing supplier names. If a name matches an\r\n * existing supplier, we add that existing supplier to the invite supplier row models\r\n * \r\n * Then we take all the supplier ids (the ones from local storage and the ones found\r\n * from name matching) and we fetch all the inventories for these suppliers. Then\r\n * we update the invite supplier row models with inventories for any provided inventory\r\n * ids that were given for a supplier in local storage.\r\n * \r\n * Returns the all the supplier to invite models and the supplier ids to inventory ids.\r\n * If null is returned, an error occured.\r\n * \r\n * NOTE: This method does not do any sort of state updates. That is supposed to be \r\n * handled by the caller.\r\n*/\r\nasync function getSuppliersToInviteForAutofill(\r\n state: ApplicationState,\r\n existingSuppliersTable: { [supplierId: string]: Supplier },\r\n requestDataSupplierInfo: RequestDataSupplierInfo,\r\n): Promise {\r\n\r\n const supplierIds = Object.keys(requestDataSupplierInfo.existingSupplierIdsToInventoryIds);\r\n\r\n let newSuppliersToInvite: InviteSupplierModel[] = [];\r\n\r\n // Existing Suppliers\r\n for (let id of supplierIds) {\r\n newSuppliersToInvite.push({\r\n supplierId: id,\r\n supplierName: existingSuppliersTable[id].name,\r\n contactEmail: existingSuppliersTable[id].contactList[0]?.email ?? \"\",\r\n requestedMaterials: [] // leave blank for now, will fetch later.\r\n });\r\n }\r\n\r\n // New Suppliers\r\n for (let name of Object.keys(requestDataSupplierInfo.newSupplierNamesToEmail)) {\r\n let supplierIdToUse: string | null = null;\r\n\r\n const supplier = getExistingSupplierFromName(name, Object.values(existingSuppliersTable));\r\n\r\n // Matches an existing supplier name\r\n if (supplier !== null) {\r\n supplierIdToUse = supplier.supplierId;\r\n supplierIds.push(supplierIdToUse);\r\n }\r\n\r\n newSuppliersToInvite.push({\r\n supplierId: supplierIdToUse,\r\n supplierName: name,\r\n contactEmail: requestDataSupplierInfo.newSupplierNamesToEmail[name] ?? \"\",\r\n requestedMaterials: [],\r\n });\r\n }\r\n\r\n let supplierIdsToInventories: { [supplierId: string]: SimpleInventoryWithLinkedMaterialInfo[] } = {};\r\n\r\n // If supplier ids were provided, fetch the supplier's inventories from the DB.\r\n if (supplierIds.length > 0) {\r\n const supplierInventoriesApiResult = await toxnotServiceClient.inventoriesGetForSupplierIds(supplierIds);\r\n\r\n // If there is an error simply return null...\r\n if (!supplierInventoriesApiResult.success || supplierInventoriesApiResult.data === null) {\r\n state.appServices!.displayApiErrorMessage();\r\n return null;\r\n }\r\n\r\n supplierIdsToInventories = supplierInventoriesApiResult.data;\r\n }\r\n\r\n // Helper method to get convert simple inventory to inventory used by request data.\r\n const getInventoryIdsToAutofillForSupplier = (supplierId: string): InventoryOrCustomNameWithPossibleId[] => {\r\n const inventoriesList = supplierIdsToInventories[supplierId];\r\n\r\n // Just return an empty list for suppliers that were not given inventory ids in local storage.\r\n if (!requestDataSupplierInfo.existingSupplierIdsToInventoryIds[supplierId]) {\r\n return [];\r\n }\r\n\r\n return inventoriesList\r\n .filter(inv => requestDataSupplierInfo.existingSupplierIdsToInventoryIds[supplierId]\r\n .includes(inv.inventoryId))\r\n .map(i => ({ name: i.name, inventoryId: i.inventoryId, customName: null }));\r\n }\r\n\r\n // Get the requested materials if any were provided.\r\n newSuppliersToInvite = newSuppliersToInvite.map(s => {\r\n if (s.supplierId !== null) {\r\n s = {\r\n ...s,\r\n requestedMaterials: getInventoryIdsToAutofillForSupplier(s.supplierId)\r\n }\r\n }\r\n\r\n return s;\r\n });\r\n\r\n return {\r\n newSuppliersToInvite: newSuppliersToInvite,\r\n supplierIdsToInventories: supplierIdsToInventories\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Adds row identifers to the invite supplier models and turns them into invite supplier\r\n* row models\r\n*/\r\nfunction addRowIdentifiersToSuppliersToInvite(suppliersToInvite: InviteSupplierModel[]): InviteSupplierRowModel[] {\r\n return suppliersToInvite.map(s => ({ ...s, rowIdentifier: uuidv4() }));\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Returns an empty supplier to invite row mode.\r\n*/\r\nfunction getEmptySupplierToInvite(): InviteSupplierRowModel {\r\n return {\r\n supplierName: \"\",\r\n supplierId: null,\r\n requestedMaterials: [],\r\n contactEmail: \"\",\r\n rowIdentifier: uuidv4()\r\n };\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Given a row identifier, this method returns the supplier in the table that corresponds\r\n* to that id\r\n*/\r\nexport function getSupplierFromRowIdentifier(rowIdentifier: string | null, state: SelectSuppliersMaterialsTableState) {\r\n if (rowIdentifier === null) {\r\n throw new Error(\"Cannot find model with null identifier\");\r\n }\r\n\r\n const ret = state.supplierRowModels.find(s => s.rowIdentifier === rowIdentifier);\r\n\r\n if (!ret) {\r\n throw new Error(\"Unable to find supplier with rowIdentifier.\");\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Checks to see if a supplier names matches an existing supplier name. If it does,\r\n* the existing supplier for that name is returned, else null. \r\n*/\r\nexport function getExistingSupplierFromName(supplierName: string, existingSuppliers: Supplier[]): Supplier | null {\r\n const index = existingSuppliers.findIndex(s => s.name.trim().toLowerCase() === supplierName.trim().toLowerCase());\r\n\r\n return index === -1 ? null : existingSuppliers[index];\r\n}\r\n\r\n// ===============================================================================\r\n\r\nfunction updateSupplierToInvite(\r\n rowIdentifier: string,\r\n updatedSupplier: Partial,\r\n state: SelectSuppliersMaterialsTableState,\r\n dispatch: (action: KnownAction) => void,\r\n removeSupplierId?: boolean\r\n) {\r\n const newSuppliers = state.supplierRowModels.map(s => {\r\n if (s.rowIdentifier !== rowIdentifier) {\r\n return s;\r\n }\r\n\r\n return {\r\n ...s,\r\n ...updatedSupplier,\r\n supplierId: removeSupplierId ? null : (updatedSupplier?.supplierId ?? s.supplierId)\r\n }\r\n });\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n supplierRowModels: newSuppliers\r\n }\r\n });\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Gets any existing materials for a supplier.\r\n*/\r\nasync function getInventoriesForSupplier(supplierId: string, getState: () => ApplicationState, dispatch: (action: KnownAction) => void) {\r\n const state = getState();\r\n\r\n const apiResult = await toxnotServiceClient.inventoriesGetForSupplier(supplierId);\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n state.appServices!.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n const selectState = verifyAndGetState(state);\r\n\r\n const newSuppliersToInventories = { ...selectState.supplierIdsToInventories };\r\n newSuppliersToInventories[supplierId] = apiResult.data[supplierId];\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n supplierIdsToInventories: newSuppliersToInventories\r\n }\r\n });\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Called when an entered supplier names matches an existing supplier. This function\r\n* inserts that existing supplier into the table. \r\n*/\r\nasync function addExistingSuppliersToSupplierToInvite(\r\n supplier: Supplier,\r\n rowId: string,\r\n getState: () => ApplicationState,\r\n dispatch: (action: KnownAction) => void,\r\n preserveRequestedMaterials?: boolean\r\n) {\r\n const selectState = verifyAndGetState(getState());\r\n\r\n const supplierToInvite = getSupplierFromRowIdentifier(rowId, selectState);\r\n\r\n const newSupplierToInvite: InviteSupplierRowModel = {\r\n contactEmail: supplier.contactList[0]?.email ?? \"\",\r\n supplierId: supplier.supplierId,\r\n supplierName: supplier.name,\r\n requestedMaterials: preserveRequestedMaterials ? supplierToInvite.requestedMaterials : [],\r\n rowIdentifier: rowId\r\n };\r\n\r\n updateSupplierToInvite(rowId, newSupplierToInvite, selectState, dispatch);\r\n await getInventoriesForSupplier(supplier.supplierId, getState, dispatch);\r\n}\r\n\r\n// ===============================================================================\r\n\r\nasync function updateSupplierInventoriesForInitialSupplierModel(supplierIds: string[], state: ApplicationState, dispatch: (action: KnownAction) => void) : Promise<{ [supplierId: string]: SimpleInventoryWithLinkedMaterialInfo[] }> {\r\n\r\n let supplierIdToInventories: { [supplierId: string]: SimpleInventoryWithLinkedMaterialInfo[] } = {};\r\n\r\n if (supplierIds.length > 0) {\r\n const supplierInventoriesApiResult = await toxnotServiceClient.inventoriesGetForSupplierIds(supplierIds);\r\n\r\n // If there is an error simply return an empty list...\r\n if (!supplierInventoriesApiResult.success || supplierInventoriesApiResult.data === null) {\r\n state.appServices!.displayApiErrorMessage();\r\n return {};\r\n }\r\n\r\n // Update the local state with the supplier ids and inventories\r\n supplierIdToInventories = supplierInventoriesApiResult.data;\r\n }\r\n\r\n return supplierIdToInventories;\r\n\r\n}\r\n\r\n// ===============================================================================\r\n//\r\n// Action Creators\r\n//\r\n\r\nexport const actionCreators = {\r\n initializeSelectSuppliers: (initialSupplierRowModels?: InviteSupplierModel[]): AppThunkActionAsync => async (dispatch, getState) => {\r\n const state = getState();\r\n verifyAndGetState(state);\r\n\r\n const apiResult = await toxnotServiceClient.suppliersGet();\r\n\r\n if (!apiResult.success || apiResult.data === null) {\r\n state.appServices!.displayApiErrorMessage();\r\n return;\r\n }\r\n\r\n const existingSuppliersTable: { [supplierId: string]: Supplier } = {};\r\n\r\n for (let s of apiResult.data) {\r\n existingSuppliersTable[s.supplierId] = s;\r\n }\r\n\r\n let supplierRowModelsToUse: InviteSupplierRowModel[] = state.selectSuppliersMaterialsTableState!.supplierRowModels;\r\n\r\n let supplierIdsToInventoriesToUse: { [supplierId: string]: SimpleInventoryWithLinkedMaterialInfo[] } = state.selectSuppliersMaterialsTableState!.supplierIdsToInventories;\r\n\r\n const manager = new SurveyLocalStorageManager(state.appServices!.userContext!.userId);\r\n const requestDataSupplierInfo = manager.getAndClearRequestDataSupplierInfo();\r\n\r\n if (initialSupplierRowModels) {\r\n supplierRowModelsToUse = addRowIdentifiersToSuppliersToInvite(initialSupplierRowModels);\r\n supplierIdsToInventoriesToUse = await updateSupplierInventoriesForInitialSupplierModel(initialSupplierRowModels.filter(v => v.supplierId !== null).map(v => v.supplierId!), state, dispatch);\r\n } \r\n else if (requestDataSupplierInfo !== null && Object.keys(requestDataSupplierInfo).length > 0) {\r\n const response = await getSuppliersToInviteForAutofill(state, existingSuppliersTable, requestDataSupplierInfo);\r\n\r\n if (response !== null) {\r\n supplierRowModelsToUse = addRowIdentifiersToSuppliersToInvite(response.newSuppliersToInvite);\r\n supplierIdsToInventoriesToUse = response.supplierIdsToInventories;\r\n }\r\n }\r\n\r\n if (supplierRowModelsToUse.length === 0){\r\n supplierRowModelsToUse.push(getEmptySupplierToInvite());\r\n }\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n isSelectingSuppliersLoading: false,\r\n supplierRowModels: supplierRowModelsToUse,\r\n existingSuppliers: apiResult.data,\r\n existingSuppliersTable: existingSuppliersTable,\r\n supplierIdsToInventories: supplierIdsToInventoriesToUse\r\n }\r\n });\r\n },\r\n updateSelectSuppliersState: (updatedState: Partial): AppThunkAction => (dispatch, getState) => {\r\n const state = verifyAndGetState(getState());\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n ...state,\r\n ...updatedState\r\n }\r\n });\r\n },\r\n updateSupplierToInvite: (rowIdentifier: string, updatedSupplier: Partial, removeSupplierId?: boolean): AppThunkAction => (dispatch, getState) => {\r\n const state = verifyAndGetState(getState());\r\n\r\n updateSupplierToInvite(rowIdentifier, updatedSupplier, state, dispatch, removeSupplierId);\r\n },\r\n addSupplierToInvite: (): AppThunkAction => (dispatch, getState) => {\r\n const state = verifyAndGetState(getState());\r\n\r\n const newSupplier = getEmptySupplierToInvite();\r\n\r\n const newSuppliers = [...state.supplierRowModels];\r\n newSuppliers.push(newSupplier);\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n supplierRowModels: newSuppliers\r\n }\r\n });\r\n },\r\n importSuppliers: (e: React.ChangeEvent): AppThunkActionAsync => async (dispatch, getState) => {\r\n const appState = getState();\r\n let selectState = verifyAndGetState(appState);\r\n\r\n if ((e.target.files === null) || (e.target.files.length === 0)) {\r\n return;\r\n }\r\n\r\n const file = e.target.files[0];\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n isSelectingSuppliersLoading: true\r\n }\r\n });\r\n\r\n // Clear the file so another import is possible.\r\n e.target.value = '';\r\n\r\n const apiResult = await toxnotServiceClient.importSuppliersFromFile(file);\r\n\r\n if (apiResult.result === ResultType.UploadTooLarge) {\r\n appState.appServices!.displayApiErrorMessage(appState.appServices!.localizeString(\"Sorry, your current account does not let you upload files of that size.\"));\r\n }\r\n\r\n // If there is an issue, stil allow the user to enter in new suppliers.\r\n if (!apiResult.success || apiResult.data === null) {\r\n appState.appServices!.displayApiErrorMessage();\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n isSelectingSuppliersLoading: false\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n let newSuppliers = [...selectState.supplierRowModels];\r\n newSuppliers = newSuppliers.concat(addRowIdentifiersToSuppliersToInvite(apiResult.data));\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n supplierRowModels: newSuppliers\r\n }\r\n });\r\n\r\n // Check to see if any imported suppliers match existing suppliers.\r\n for (let s of newSuppliers) {\r\n const existingSupplier = getExistingSupplierFromName(s.supplierName, selectState.existingSuppliers);\r\n\r\n if (existingSupplier === null) {\r\n continue;\r\n }\r\n\r\n // Await this to avoid race conditons with the state update.\r\n await addExistingSuppliersToSupplierToInvite(existingSupplier, s.rowIdentifier, getState, dispatch, true);\r\n }\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n isSelectingSuppliersLoading: false\r\n }\r\n });\r\n },\r\n removeSuppliersToInvite: (): AppThunkAction => (dispatch, getState) => {\r\n const appState = getState();\r\n const selectState = verifyAndGetState(appState);\r\n\r\n const supplierIdsToRemove = Object.keys(selectState.selectedSupplierRowIds);\r\n\r\n if (supplierIdsToRemove.length === 0) {\r\n alert(appState.appServices!.localizeString(\"Please select at least one supplier below to delete.\"))\r\n return;\r\n }\r\n\r\n let newSuppliers = [...selectState.supplierRowModels];\r\n\r\n newSuppliers = newSuppliers.filter(s => !supplierIdsToRemove.includes(s.rowIdentifier));\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n supplierRowModels: newSuppliers,\r\n selectedSupplierRowIds: {}\r\n }\r\n });\r\n },\r\n addRequestedMaterial: (materialName: string, supplier: InviteSupplierRowModel): AppThunkAction => (dispatch, getState) => {\r\n const state = verifyAndGetState(getState());\r\n\r\n if (materialName.trim() === \"\") {\r\n return;\r\n }\r\n\r\n const newRequestedMaterials = [...supplier.requestedMaterials];\r\n\r\n // Don't allow duplicate names.\r\n if (!newRequestedMaterials.some(r => r.name.trim() === materialName.trim())) {\r\n newRequestedMaterials.push({ name: materialName, inventoryId: null, customName: null });\r\n\r\n updateSupplierToInvite(supplier.rowIdentifier, { requestedMaterials: newRequestedMaterials }, state, dispatch);\r\n }\r\n },\r\n removeRequestedMaterial: (rowIdentifier: string, materialToRemove: InventoryOrCustomNameWithPossibleId): AppThunkAction => (dispatch, getState) => {\r\n const state = verifyAndGetState(getState());\r\n\r\n const supplierToUpdate = getSupplierFromRowIdentifier(rowIdentifier, state);\r\n\r\n const newSuppliers = state.supplierRowModels.map(s => {\r\n if (s.rowIdentifier !== supplierToUpdate.rowIdentifier) {\r\n return s;\r\n }\r\n\r\n // If its an existing material, remove via id\r\n if (materialToRemove.inventoryId !== null) {\r\n s.requestedMaterials = s.requestedMaterials.filter(r => r.inventoryId !== materialToRemove.inventoryId);\r\n }\r\n // remove by name\r\n else {\r\n s.requestedMaterials = s.requestedMaterials.filter(r => r.name.trim() !== materialToRemove.name.trim());\r\n }\r\n\r\n return s;\r\n });\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n supplierRowModels: newSuppliers,\r\n }\r\n });\r\n },\r\n updateSelectedSuppliers: (rowIds: { [id: string]: string }): AppThunkAction => (dispatch, getState) => {\r\n verifyAndGetState(getState());\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n selectedSupplierRowIds: {...rowIds},\r\n }\r\n });\r\n },\r\n addExistingSuppliersToSupplierToInvite: (rowId: string, supplier: Supplier, preserveMaterials?: boolean): AppThunkAction => (dispatch, getState) => {\r\n addExistingSuppliersToSupplierToInvite(supplier, rowId, getState, dispatch, preserveMaterials)\r\n },\r\n inventoriesSelected: (selectedInventoryIds: { [id: string]: string }, inventoriesToRender: SimpleInventoryWithLinkedMaterialInfo[]): AppThunkAction => (dispatch, getState) => {\r\n const state = verifyAndGetState(getState());\r\n\r\n const allInventoriesSelected = inventoriesToRender.filter(i => selectedInventoryIds[i.inventoryId]);\r\n\r\n const supplierToUpdateWithNewMaterials = state.supplierRowModels.find(s => s.rowIdentifier === state.selectedSupplierRowIdentifier);\r\n\r\n if (!supplierToUpdateWithNewMaterials) {\r\n throw new Error(\"Unable to find supplier to update.\")\r\n }\r\n\r\n const getCustomNameFromSupplier = (inventoryId: string) => {\r\n return supplierToUpdateWithNewMaterials.requestedMaterials.find(r => r.inventoryId === inventoryId)?.customName ?? null;\r\n }\r\n\r\n const newRequestedMaterialsToAdd: InventoryOrCustomNameWithPossibleId[] = allInventoriesSelected.map(i => ({ inventoryId: i.inventoryId, name: i.name, customName: getCustomNameFromSupplier(i.inventoryId) }));\r\n\r\n const newSuppliers = state.supplierRowModels.map(s => {\r\n if (s.rowIdentifier !== state.selectedSupplierRowIdentifier) {\r\n return s;\r\n }\r\n // Remove all the inventories that have an inventory id and replace with new inventories. \r\n s.requestedMaterials = s.requestedMaterials.filter(r => r.inventoryId === null).concat(newRequestedMaterialsToAdd);\r\n\r\n return s;\r\n });\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n supplierRowModels: newSuppliers\r\n }\r\n });\r\n },\r\n updateSupplierRowModelsFromSurveyEditor: (model: InviteSupplierRowModel[]) : KnownAction => ({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n supplierRowModels: model\r\n }\r\n }),\r\n setCustomName: (rowIdentifierId: string, customName: string, materialIndex: number): AppThunkAction => (dispatch, getState) => {\r\n const state = getState().selectSuppliersMaterialsTableState;\r\n\r\n if (!state) {\r\n return;\r\n }\r\n\r\n const newSupplierModels = [...state.supplierRowModels];\r\n\r\n const newSupplierModel = newSupplierModels.find(s => s.rowIdentifier === rowIdentifierId);\r\n\r\n if (!newSupplierModel) {\r\n return;\r\n }\r\n\r\n newSupplierModel.requestedMaterials.orderBy(m => m.name)[materialIndex].customName = customName;\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n supplierRowModels: newSupplierModels\r\n }\r\n });\r\n },\r\n setCustomNameForAllMaterials: (columnId: string, models: InviteSupplierRowModel[]): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n \r\n const supplierRowModels = models.map((suppliers, i1) => {\r\n suppliers.requestedMaterials = suppliers.requestedMaterials.map((v, i) => {\r\n v.customName = v.inventoryId ? state.createAndEditSurveysState!.surveyMetadata.inventoryIdToSummaryRowContentsMap[v.inventoryId]?.rowSummaryContent.find((v, i) => v.columnId == columnId)?.value ?? null : null;\r\n return v\r\n })\r\n return suppliers;\r\n });\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n supplierRowModels: supplierRowModels\r\n }\r\n });\r\n\r\n },\r\n clearSelectSuppliersState: (): AppThunkAction => (dispatch, getState) => {\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: getInitialState()\r\n });\r\n },\r\n selectAllMaterialsWithInventoryIdsForSelectedSuppliers: (): AppThunkAction => (dispatch, getState) => {\r\n const state = verifyAndGetState(getState());\r\n\r\n const newSuppliers = state.supplierRowModels.map((v, _) => {\r\n if (v.supplierId === null) return v;\r\n\r\n v.requestedMaterials = v.requestedMaterials.filter(r => r.inventoryId === null).concat(state.supplierIdsToInventories[v.supplierId].map(i => ({ inventoryId: i.inventoryId, name: i.name, customName: null })));\r\n return v;\r\n })\r\n\r\n dispatch({\r\n type: UpdateSelectSuppliersMaterialsTableState,\r\n value: {\r\n supplierRowModels: newSuppliers\r\n }\r\n })\r\n\r\n },\r\n};\r\n\r\n// ===============================================================================\r\n//\r\n// Reducers\r\n//\r\n\r\nexport const reducer: Reducer = (state: SelectSuppliersMaterialsTableState | undefined, action: Action): SelectSuppliersMaterialsTableState => {\r\n if (state === undefined) {\r\n return getInitialState();\r\n }\r\n\r\n switch (action.type) {\r\n case UpdateSelectSuppliersMaterialsTableState:\r\n return {\r\n ...state,\r\n ...(action as UpdateSelectSuppliersMaterialsTableStateAction).value\r\n };\r\n }\r\n\r\n return state;\r\n}","import { SurveyState } from './Models/Surveys/SurveyDataModel'\r\nimport * as SurveyStateController from './StateControllers/Survey/SurveyStateController';\r\nimport * as SharedMaterialsStateController from './StateControllers/SharedMaterials/SharedMaterialsDatabaseStateController';\r\nimport * as MatchSurveyController from './StateControllers/Survey/MatchSurveyStateController';\r\nimport * as SurveyTemplateManagerController from './StateControllers/Survey/TemplateManagerStateController';\r\nimport * as LoginStateController from './StateControllers/LoginStateController';\r\nimport * as SharedMaterialsManagementStateController from './StateControllers/SharedMaterials/SharedMaterialsManagementStateController';\r\nimport * as SharedMaterialsPreviewStateController from './StateControllers/SharedMaterials/SharedMaterialsPreviewStateController';\r\nimport * as BulkReportStateController from './StateControllers/BulkReport/BulkReportStateController';\r\nimport { AppServices } from '../AppServices';\r\nimport * as EngagementStateController from './StateControllers/Engagement/EngagementStateController';\r\nimport * as XmlExportStateController from './StateControllers/XmlExport/XmlExportStateController';\r\nimport * as StartStateController from './StateControllers/Start/StartStateController';\r\nimport * as InviteSuppliersStateController from './StateControllers/Supplier/InviteSuppliersStateController';\r\nimport * as CustomersStateController from './StateControllers/Customers/CustomersStateController';\r\nimport * as SurveyResponseController from './StateControllers/Survey/SurveyResponse/SurveyResponseController';\r\nimport { SurveyMatchData } from './Models/Surveys/SurveyMatchDataModel';\r\nimport { Ipc1752AExportState } from './Models/XmlExport/XmlExportDataModel';\r\nimport { TaskManagementState } from './Models/TaskManagement/TaskManagementDataModel';\r\nimport * as TaskManagementStateController from \"./StateControllers/TaskManagement/TaskManagementStateController\";\r\nimport * as SelectSuppliersMaterialsTableStateController from './StateControllers/Supplier/SelectSuppliersMaterialsTableStateController';\r\nimport { SurveyResponseState } from './StateControllers/Survey/SurveyResponse/SurveyResponseStates';\r\n\r\n// The top-level state object\r\nexport interface ApplicationState {\r\n appServices: AppServices | null | undefined;\r\n sharedMaterialsState: SharedMaterialsStateController.SharedMaterialsState | undefined;\r\n createAndEditSurveysState: SurveyState | undefined;\r\n sharedMaterialsManagementState: SharedMaterialsManagementStateController.ManagementState | undefined;\r\n sharedMaterialsPreviewState: SharedMaterialsPreviewStateController.SharedMaterialPreviewState | undefined;\r\n surveyMatchState: SurveyMatchData | undefined;\r\n bulkReportState: BulkReportStateController.BulkReportState | undefined;\r\n engageState: EngagementStateController.EngagementState | undefined;\r\n ipc1752aExportState: Ipc1752AExportState | undefined;\r\n startState: StartStateController.StartState | undefined;\r\n inviteSuppliersState: InviteSuppliersStateController.InviteSuppliersState | undefined;\r\n taskManagementState: TaskManagementState | undefined;\r\n myCustomersState: CustomersStateController.MyCustomersState | undefined;\r\n surveyTemplateManagerState: SurveyTemplateManagerController.SurveyTemplateManagerData | undefined;\r\n selectSuppliersMaterialsTableState: SelectSuppliersMaterialsTableStateController.SelectSuppliersMaterialsTableState | undefined;\r\n surveyResponseState: SurveyResponseState | undefined;\r\n}\r\n\r\n// Whenever an action is dispatched, Redux will update each top-level application state property using\r\n// the reducer with the matching name. It's important that the NAMES MATCH EXACTLY, and that the reducer\r\n// acts on the corresponding ApplicationState property type.\r\nexport const reducers = {\r\n appServices: LoginStateController.reducer,\r\n sharedMaterialsState: SharedMaterialsStateController.reducer,\r\n createAndEditSurveysState: SurveyStateController.reducer,\r\n sharedMaterialsManagementState: SharedMaterialsManagementStateController.reducer,\r\n sharedMaterialsPreviewState: SharedMaterialsPreviewStateController.reducer,\r\n surveyMatchState: MatchSurveyController.reducer,\r\n bulkReportState: BulkReportStateController.reducer,\r\n engageState: EngagementStateController.reducer,\r\n ipc1752aExportState: XmlExportStateController.reducer,\r\n startState: StartStateController.reducer,\r\n inviteSuppliersState: InviteSuppliersStateController.reducer,\r\n taskManagementState: TaskManagementStateController.reducer,\r\n myCustomersState: CustomersStateController.reducer,\r\n surveyTemplateManagerState: SurveyTemplateManagerController.reducer,\r\n selectSuppliersMaterialsTableState: SelectSuppliersMaterialsTableStateController.reducer,\r\n surveyResponseState: SurveyResponseController.reducer\r\n};\r\n\r\n// These types can be used as a hint on action creators so that its 'dispatch' and 'getState' params are\r\n// correctly typed to match your store.\r\n\r\nexport interface AppThunkAction {\r\n (dispatch: (action: TAction) => void, getState: () => ApplicationState): void;\r\n}\r\n\r\nexport interface AppThunkActionAsync {\r\n (dispatch: (action: TAction) => void, getState: () => ApplicationState): Promise;\r\n}\r\n","import PropTypes from 'prop-types'; // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\n\nexport function getScrollbarWidth() {\n var scrollDiv = document.createElement('div'); // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\nexport function setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? padding + \"px\" : null;\n}\nexport function isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\nexport function getOriginalBodyPadding() {\n var style = window.getComputedStyle(document.body, null);\n return parseInt(style && style.getPropertyValue('padding-right') || 0, 10);\n}\nexport function conditionallyUpdateScrollbar() {\n var scrollbarWidth = getScrollbarWidth(); // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n\n var fixedContent = document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')[0];\n var bodyPadding = fixedContent ? parseInt(fixedContent.style.paddingRight || 0, 10) : 0;\n\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\nvar globalCssModule;\nexport function setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\nexport function mapToCssModules(className, cssModule) {\n if (className === void 0) {\n className = '';\n }\n\n if (cssModule === void 0) {\n cssModule = globalCssModule;\n }\n\n if (!cssModule) return className;\n return className.split(' ').map(function (c) {\n return cssModule[c] || c;\n }).join(' ');\n}\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\n\nexport function omit(obj, omitKeys) {\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\n\nexport function pick(obj, keys) {\n var pickKeys = Array.isArray(keys) ? keys : [keys];\n var length = pickKeys.length;\n var key;\n var result = {};\n\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n\n return result;\n}\nvar warned = {};\nexport function warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n\n warned[message] = true;\n }\n}\nexport function deprecated(propType, explanation) {\n return function validate(props, propName, componentName) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\"\\\"\" + propName + \"\\\" property of \\\"\" + componentName + \"\\\" has been deprecated.\\n\" + explanation);\n }\n\n for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = arguments[_key];\n }\n\n return propType.apply(void 0, [props, propName, componentName].concat(rest));\n };\n} // Shim Element if needed (e.g. in Node environment)\n\nvar Element = typeof window === 'object' && window.Element || function () {};\n\nexport function DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error('Invalid prop `' + propName + '` supplied to `' + componentName + '`. Expected prop to be an instance of Element. Validation failed.');\n }\n}\nexport var targetPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, DOMElement, PropTypes.shape({\n current: PropTypes.any\n})]);\nexport var tagPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n}), PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n})]))]);\n/* eslint key-spacing: [\"error\", { afterColon: true, align: \"value\" }] */\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\n\nexport var TransitionTimeouts = {\n Fade: 150,\n // $transition-fade\n Collapse: 350,\n // $transition-collapse\n Modal: 300,\n // $modal-transition\n Carousel: 600 // $carousel-transition\n\n}; // Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\n\nexport var TransitionPropTypeKeys = ['in', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'timeout', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'];\nexport var TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited'\n};\nexport var keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40,\n home: 36,\n end: 35,\n n: 78,\n p: 80\n};\nexport var PopperPlacements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\nexport var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport function isReactRefObj(target) {\n if (target && typeof target === 'object') {\n return 'current' in target;\n }\n\n return false;\n}\n\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n\n return Object.prototype.toString.call(value);\n}\n\nexport function toNumber(value) {\n var type = typeof value;\n var NAN = 0 / 0;\n\n if (type === 'number') {\n return value;\n }\n\n if (type === 'symbol' || type === 'object' && getTag(value) === '[object Symbol]') {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf === 'function' ? value.valueOf() : value;\n value = isObject(other) ? \"\" + other : other;\n }\n\n if (type !== 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(/^\\s+|\\s+$/g, '');\n var isBinary = /^0b[01]+$/i.test(value);\n return isBinary || /^0o[0-7]+$/i.test(value) ? parseInt(value.slice(2), isBinary ? 2 : 8) : /^[-+]0x[0-9a-f]+$/i.test(value) ? NAN : +value;\n}\nexport function isObject(value) {\n var type = typeof value;\n return value != null && (type === 'object' || type === 'function');\n}\nexport function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n\n var tag = getTag(value);\n return tag === '[object Function]' || tag === '[object AsyncFunction]' || tag === '[object GeneratorFunction]' || tag === '[object Proxy]';\n}\nexport function findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n\n if (isFunction(target)) {\n return target();\n }\n\n if (typeof target === 'string' && canUseDOM) {\n var selection = document.querySelectorAll(target);\n\n if (!selection.length) {\n selection = document.querySelectorAll(\"#\" + target);\n }\n\n if (!selection.length) {\n throw new Error(\"The target '\" + target + \"' could not be identified in the dom, tip: check spelling\");\n }\n\n return selection;\n }\n\n return target;\n}\nexport function isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n\n return Array.isArray(els) || canUseDOM && typeof els.length === 'number';\n}\nexport function getTarget(target, allElements) {\n var els = findDOMElements(target);\n\n if (allElements) {\n if (isArrayOrNodeList(els)) {\n return els;\n }\n\n if (els === null) {\n return [];\n }\n\n return [els];\n } else {\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n\n return els;\n }\n}\nexport var defaultToggleEvents = ['touchstart', 'click'];\nexport function addMultipleEventListeners(_els, handler, _events, useCapture) {\n var els = _els;\n\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n\n var events = _events;\n\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n\n if (!isArrayOrNodeList(els) || typeof handler !== 'function' || !Array.isArray(events)) {\n throw new Error(\"\\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\\n The second must be a function.\\n The third is a string or an array of strings that represents DOM events\\n \");\n }\n\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.addEventListener(event, handler, useCapture);\n });\n });\n return function removeEvents() {\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.removeEventListener(event, handler, useCapture);\n });\n });\n };\n}\nexport var focusableElements = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'object', 'embed', '[tabindex]:not(.modal)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n fluid: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar Container = function Container(props) {\n var className = props.className,\n cssModule = props.cssModule,\n fluid = props.fluid,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"fluid\", \"tag\"]);\n\n var containerClass = 'container';\n\n if (fluid === true) {\n containerClass = 'container-fluid';\n } else if (fluid) {\n containerClass = \"container-\" + fluid;\n }\n\n var classes = mapToCssModules(classNames(className, containerClass), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nContainer.propTypes = propTypes;\nContainer.defaultProps = defaultProps;\nexport default Container;","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { Container } from 'reactstrap';\r\n\r\n// ===============================================================================\r\n\r\n// At runtime, Redux will merge together...\r\ntype StaticPageReloaderProps =\r\n RouteComponentProps;\r\n\r\n// ===============================================================================\r\n\r\nclass StaticPageReloader extends React.PureComponent {\r\n //This method is called when the component is first added to the document\r\n public componentDidMount() {\r\n window.location.href = \"/Redirect?path=\" + encodeURIComponent(window.location.pathname);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n return (\r\n \r\n
Loading...
\r\n
\r\n );\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n)(StaticPageReloader as any);\r\n","// ===============================================================================\r\n//\r\n// This file contains the class containing all the pathnames for surveys\r\n//\r\n// ===============================================================================\r\n\r\nexport class CreateAndEditSurveyComponentPaths {\r\n // ===============================================================================\r\n\r\n public static readonly BasePath: string = '/Survey';\r\n // ===============================================================================\r\n\r\n public static readonly SurveysBasePath: string = '/Surveys';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly NewSurveyPath: string = CreateAndEditSurveyComponentPaths.BasePath + '/New/:startFromSurveyTemplate?/:pageIndexToStartOn?';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly SurveyMatchPath: string = CreateAndEditSurveyComponentPaths.BasePath + '/Match';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly ExistingSurveyPath: string = CreateAndEditSurveyComponentPaths.BasePath + \"/:surveyId\";\r\n\r\n // ===============================================================================\r\n\r\n public static readonly EditSurveyTemplatePath: string = CreateAndEditSurveyComponentPaths.BasePath + '/Template/:templateId';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly EditSurveyCertificationsRequestPath: string = CreateAndEditSurveyComponentPaths.BasePath + '/Certifications/:requestId?';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly CertificationConsolidationResponseEditorPath: string = CreateAndEditSurveyComponentPaths.BasePath + '/CertificationsResponse/:responseId';\r\n\r\n // ===============================================================================\r\n\r\n public static readonly ManageSurveyTemplatePath: string = CreateAndEditSurveyComponentPaths.BasePath + '/ManageTemplates';\r\n // ===============================================================================\r\n\r\n public static readonly EditSurveyResponse: string = CreateAndEditSurveyComponentPaths.SurveysBasePath + '/EditSurveyResponse/:responseId';\r\n}","export class EnagementPaths {\r\n public static readonly EngagePath: string = '/Engage/:productName';\r\n}","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","import { IStringLocalizer } from \"../../../utilities/IStringLocalizer\";\r\n\r\nexport enum InventoryFileType {\r\n InventoryGeneralSupportingFile = \"InventoryGeneralSupportingFile\",\r\n InventoryQuestionnaireFile = \"InventoryQuestionnaireFile\",\r\n InventoryMetadataPageFile = \"InventoryMetadataPageFile\",\r\n InventoryPhotoFile = \"InventoryPhotoFile\",\r\n InventoryDeclareFile = \"InventoryDeclareFile\",\r\n InventoryMsdsFile = \"InventoryMsdsFile\",\r\n InventoryComplianceGeneralFile = \"InventoryComplianceGeneralFile\",\r\n InventoryScipFile = \"InventoryScipFile\",\r\n InventorySustainabilityFile = \"InventorySustainabilityFile\",\r\n InventoryCircularityFile = \"InventoryCircularityFile\",\r\n InventoryGeneralSupportingFileHpd = \"InventoryGeneralSupportingFileHpd\",\r\n InventoryGeneralSupportingFileC2c = \"InventoryGeneralSupportingFileC2c\",\r\n InventoryGeneralSupportingFileVoc = \"InventoryGeneralSupportingFileVoc\",\r\n InventoryGeneralSupportingFileOther = \"InventoryGeneralSupportingFileOther\",\r\n InventoryHniEdsImageFile = \"InventoryHniEdsImageFile\",\r\n InventorySoldItemFile = \"InventorySoldItemFile\",\r\n InventoryDynamicRegulationPageFile = \"InventoryDynamicRegulationPageFile\",\r\n InventoryTdsFile = \"InventoryTdsFile\",\r\n InventoryVocDataFile = \"InventoryVocDataFile\",\r\n InventoryInstructionsFile = \"InventoryInstructionsFile\",\r\n InventoryQuestionnaireCmrtFile = \"InventoryQuestionnaireCmrtFile\"\r\n}\r\n\r\nexport enum FileType {\r\n GeneralFile = \"GeneralFile\",\r\n InventoryGeneralSupportingFile = \"InventoryGeneralSupportingFile\",\r\n InventoryQuestionnaireFile = \"InventoryQuestionnaireFile\",\r\n InventoryMetadataPageFile = \"InventoryMetadataPageFile\",\r\n InventoryPhotoFile = \"InventoryPhotoFile\",\r\n InventoryDeclareFile = \"InventoryDeclareFile\",\r\n InventoryMsdsFile = \"InventoryMsdsFile\",\r\n InventoryComplianceGeneralFile = \"InventoryComplianceGeneralFile\",\r\n InventoryScipFile = \"InventoryScipFile\",\r\n InventorySustainabilityFile = \"InventorySustainabilityFile\",\r\n InventoryCircularityFile = \"InventoryCircularityFile\",\r\n InventoryGeneralSupportingFileHpd = \"InventoryGeneralSupportingFileHpd\",\r\n InventoryGeneralSupportingFileC2c = \"InventoryGeneralSupportingFileC2c\",\r\n InventoryGeneralSupportingFileVoc = \"InventoryGeneralSupportingFileVoc\",\r\n InventoryGeneralSupportingFileOther = \"InventoryGeneralSupportingFileOther\",\r\n InventoryHniEdsImageFile = \"InventoryHniEdsImageFile\",\r\n InventorySoldItemFile = \"InventorySoldItemFile\",\r\n InventoryDynamicRegulationPageFile = \"InventoryDynamicRegulationPageFile\",\r\n InventoryTdsFile = \"InventoryTdsFile\",\r\n InventoryVocDataFile = \"InventoryVocDataFile\",\r\n InventoryInstructionsFile = \"InventoryInstructionsFile\",\r\n InventoryQuestionnaireCmrtFile = \"InventoryQuestionnaireCmrtFile\"\r\n}\r\n\r\n// WARNING. The order of these certification\r\n// types in this enum must EXACTLY match the order\r\n// of the Certification Enum in the backend.\r\nexport enum CertificationType {\r\n Other = \"Other\",\r\n C2c = \"C2c\",\r\n Declare = \"Declare\",\r\n Epd = \"Epd\",\r\n Hpd = \"Hpd\",\r\n Voc = \"Voc\",\r\n UlGreenGuard = \"UlGreenGuard\",\r\n UlGreenGuardGold = \"UlGreenGuardGold\",\r\n ScsIndoorAdvantage = \"ScsIndoorAdvantage\",\r\n ScsIndoorAdvantageGold = \"ScsIndoorAdvantageGold\",\r\n BimfaLevel = \"BimfaLevel\",\r\n EnergyStar = \"EnergyStar\",\r\n SaferChoice = \"SaferChoice\",\r\n Lpc = \"Lpc\",\r\n Nsf140 = \"Nsf140\",\r\n Nsf332 = \"Nsf332\",\r\n GreenCircleCertifiedEnvironmentalFacts = \"GreenCircleCertifiedEnvironmentalFacts\",\r\n GreenCircleCertifiedSustainabilityFacts = \"GreenCircleCertifiedSustainabilityFacts\",\r\n UlEcologo = \"UlEcologo\",\r\n AnsiNsc373 = \"AnsiNsc373\",\r\n UlProductLens = \"UlProductLens\",\r\n GreenCircleCertifiedManufacturerInventoryVerification = \"GreenCircleCertifiedManufacturerInventoryVerification\",\r\n C2cMaterialHealth = \"C2cMaterialHealth\",\r\n Greenscreen = \"Greenscreen\",\r\n GreenHealthApproved = \"GreenHealthApproved\",\r\n GreenSeal = \"GreenSeal\",\r\n CdphStandardMethodv122017 = \"CdphStandardMethodv122017\",\r\n Floorscore = \"Floorscore\",\r\n CriGreenLabelPlus = \"CriGreenLabelPlus\",\r\n MasCertifiedGreen = \"MasCertifiedGreen\",\r\n IntertekCleanAir = \"IntertekCleanAir\",\r\n TscaTitleViNaf = \"TscaTitleViNaf\",\r\n TscaTitleViUlef = \"TscaTitleViUlef\",\r\n Lca = \"Lca\",\r\n GreenCircleCertifiedLifeCycleAssessmentOptimized = \"GreenCircleCertifiedLifeCycleAssessmentOptimized\",\r\n ScsCarbonNeutral = \"ScsCarbonNeutral\",\r\n GreenCircleCertifiedEnergySavings = \"GreenCircleCertifiedEnergySavings\",\r\n FcsCertified = \"FcsCertified\",\r\n SfiCertified = \"SfiCertified\",\r\n UsdaCertifiedBiobased = \"UsdaCertifiedBiobased\",\r\n GreenCircleCertifiedBiobasedContent = \"GreenCircleCertifiedBiobasedContent\",\r\n UlEnvironmentalClaimValidationBiobasedContent = \"UlEnvironmentalClaimValidationBiobasedContent\",\r\n GreenCircleCertifiedRecycledContent = \"GreenCircleCertifiedRecycledContent\",\r\n UlEnvironmentalClaimValidationRecycledContent = \"UlEnvironmentalClaimValidationRecycledContent\",\r\n ScsRecycledContentCertified = \"ScsRecycledContentCertified\",\r\n GlobalRecycledStandard = \"GlobalRecycledStandard\",\r\n GreenCircleCertifiedClosedLoopProduct = \"GreenCircleCertifiedClosedLoopProduct\",\r\n GreenCircleCertifiedRecyclableMaterial = \"GreenCircleCertifiedRecyclableMaterial\",\r\n UsEpdWaterSense = \"UsEpdWaterSense\"\r\n}\r\n\r\nexport enum FileMetadataType {\r\n PlainDocument = 0,\r\n Certification\r\n}\r\n\r\nexport interface BaseDocumentMetadata {\r\n description: string;\r\n}\r\n\r\nexport interface PlainDocumentMetadata extends BaseDocumentMetadata {\r\n\r\n}\r\n\r\nexport interface CertificationDocumentMetadata extends BaseDocumentMetadata {\r\n type?: CertificationType;\r\n otherTypeValue: string;\r\n level: string;\r\n expirationDate: string; // ISO8601 timestamp\r\n}\r\n\r\nexport type FileMetadata = PlainDocumentMetadata | CertificationDocumentMetadata;\r\n\r\n//\r\n// Represents a file that the user has uploaded to a summary page\r\n//\r\nexport interface FileTableEntry {\r\n fileId: string;\r\n inventoryId?: string;\r\n type: FileType;\r\n filename: string;\r\n metadataType: FileMetadataType | string;\r\n metadata: FileMetadata;\r\n metadataJson?: string;\r\n}\r\n\r\nexport interface FileTypeDetails {\r\n value: FileMetadataType;\r\n displayValue: string;\r\n}","import * as React from 'react';\r\nimport { AppServices } from '../../../AppServices';\r\nimport { UserContext } from '../../../store/Models/UserContext';\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// All Toxnot Components have the following resources from the global\r\n// application state in their props\r\n//\r\nexport interface ToxnotComponentProperties {\r\n appServices: AppServices;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Contains common methods used by all Toxnot app components that connect with\r\n// application state.\r\n//\r\nexport class ToxnotComponent

extends React.PureComponent {\r\n // helper wrapper, see comment in AppServices\r\n protected localizeString(s: string): string {\r\n return this.props.appServices.localizeString(s);\r\n }\r\n\r\n protected setLanguage(s: string): void {\r\n this.props.appServices.setUserCultureName(s);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n // helper wrapper, see comment in AppServices\r\n protected localizeStringFormat(formatString: string, ...args: any[]) {\r\n return this.props.appServices.localizeStringFormat(formatString, args);\r\n }\r\n\r\n //helper wrapper to get the display name for the culture\r\n protected getLocalizedDisplayNameForCultureName(cultureName: string): string {\r\n return this.props.appServices.getLocalizedDisplayNameForCultureName(cultureName);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected getQueryParameter(queryParameter: string) {\r\n return new URLSearchParams(document.location.search).get(queryParameter);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected getUserContext(): UserContext | null {\r\n return this.props.appServices.userContext;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected getCshtmlRpcParameter(): TModel | null {\r\n const rpcId = this.getQueryParameter(\"cshtmlRpcId\");\r\n\r\n if (rpcId === null) {\r\n return null;\r\n }\r\n\r\n const serializedParameterValue = localStorage.getItem(rpcId);\r\n\r\n if (serializedParameterValue === null) {\r\n return null;\r\n }\r\n\r\n localStorage.removeItem(rpcId);\r\n\r\n return JSON.parse(serializedParameterValue) as TModel;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected showModal(modalId: string) {\r\n $('#' + modalId).modal('show');\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected hideModal(modalId: string) {\r\n $('#' + modalId).modal('hide');\r\n }\r\n}\r\n","import { IStringLocalizer } from \"../../utilities/IStringLocalizer\";\r\nimport { CertificationBase } from \"../Models/Certifications\";\r\nimport { CertificationType } from \"../Models/Documents/DocumentModels\";\r\n\r\n/**\r\n * Helper class for rendering friendly names and other data for\r\n * certifications\r\n */\r\nexport default class CertificationRendererManager {\r\n private static _certificationTypeToFriendlyEnglishName: Readonly<{ [type: string]: string }> = {\r\n [CertificationType.Other]: \"Other\",\r\n [CertificationType.C2c]: \"Cradle 2 Cradle\",\r\n [CertificationType.Declare]: \"Declare\",\r\n [CertificationType.Epd]: \"EPD\",\r\n [CertificationType.Hpd]: \"HPD\",\r\n [CertificationType.Voc]: \"VOC Certification\",\r\n [CertificationType.UlGreenGuard]: \"UL GreenGuard\",\r\n [CertificationType.UlGreenGuardGold]: \"UL GreenGuard Gold\",\r\n [CertificationType.ScsIndoorAdvantage]: \"SCS Indoor Advantage\",\r\n [CertificationType.ScsIndoorAdvantageGold]: \"SCS Indoor Advantage Gold\",\r\n [CertificationType.BimfaLevel]: \"BIFMA Level\",\r\n [CertificationType.EnergyStar]: \"Energy STAR\",\r\n [CertificationType.SaferChoice]: \"Safer Choice\",\r\n [CertificationType.Lpc]: \"LPC\",\r\n [CertificationType.Nsf140]: \"NSF 140\",\r\n [CertificationType.Nsf332]: \"NSF 332\",\r\n [CertificationType.GreenCircleCertifiedEnvironmentalFacts]: \"Green Circle Certified Environmental Facts\",\r\n [CertificationType.GreenCircleCertifiedSustainabilityFacts]: \"Green Circle Certified Sustainability Facts\",\r\n [CertificationType.UlEcologo]: \"UL ECOLOGO\",\r\n [CertificationType.AnsiNsc373]: \"ANSI NSC 373\",\r\n [CertificationType.UlProductLens]: \"UL Product Lens\",\r\n [CertificationType.GreenCircleCertifiedManufacturerInventoryVerification]: \"Green Circle Certified Manufacturer Inventory Verification\",\r\n [CertificationType.C2cMaterialHealth]: \"Cradle 2 Cradle Material Health\",\r\n [CertificationType.Greenscreen]: \"Greenscreen\",\r\n [CertificationType.GreenHealthApproved]: \"Green Health Approved\",\r\n [CertificationType.GreenSeal]: \"Green Seal\",\r\n [CertificationType.CdphStandardMethodv122017]: \"CDPH Standard Method v1.2-2017\",\r\n [CertificationType.Floorscore]: \"Floorscore\",\r\n [CertificationType.CriGreenLabelPlus]: \"CRI Green Label Plus\",\r\n [CertificationType.MasCertifiedGreen]: \"Mas Certified Green\",\r\n [CertificationType.IntertekCleanAir]: \"Intertek Clean Air\",\r\n [CertificationType.TscaTitleViNaf]: \"TSCA Title VI NAF\",\r\n [CertificationType.TscaTitleViUlef]: \"TSCA Title VI ULEF\",\r\n [CertificationType.Lca]: \"LCA\",\r\n [CertificationType.GreenCircleCertifiedLifeCycleAssessmentOptimized]: \"Green Circle Certified Life Cycle Assessment Optimized\",\r\n [CertificationType.ScsCarbonNeutral]: \"SCS Carbon Neutral\",\r\n [CertificationType.GreenCircleCertifiedEnergySavings]: \"Energy Savings\",\r\n [CertificationType.FcsCertified]: \"FSC Certified\",\r\n [CertificationType.SfiCertified]: \"SFI Certified\",\r\n [CertificationType.UsdaCertifiedBiobased]: \"USDA Certified Biobased\",\r\n [CertificationType.GreenCircleCertifiedBiobasedContent]: \"Green Circle Certified Biobased Content\",\r\n [CertificationType.UlEnvironmentalClaimValidationBiobasedContent]: \"UL Environmental ClaimValidation Biobased Content\",\r\n [CertificationType.GreenCircleCertifiedRecycledContent]: \"Green Circle Certified Recycled Content\",\r\n [CertificationType.UlEnvironmentalClaimValidationRecycledContent]: \"UL Environmental Claim Validation Recycled Content\",\r\n [CertificationType.ScsRecycledContentCertified]: \"SCS Recycled Content Certified\",\r\n [CertificationType.GlobalRecycledStandard]: \"Global Recycled Standard\",\r\n [CertificationType.GreenCircleCertifiedClosedLoopProduct]: \"Green Circle Certified Closed Loop Product\",\r\n [CertificationType.GreenCircleCertifiedRecyclableMaterial]: \"Green Circle Certified Recyclable Material\",\r\n [CertificationType.UsEpdWaterSense]: \"US EPA WaterSense\"\r\n };\r\n\r\n // ===============================================================================\r\n\r\n public static getFriendlyNameForCertificationType(type: CertificationType, localizer: IStringLocalizer) {\r\n if (type === CertificationType.Other) {\r\n return localizer.localizeString(\"Other\");\r\n }\r\n\r\n const name = CertificationRendererManager._certificationTypeToFriendlyEnglishName[type];\r\n\r\n if (!name) {\r\n console.error(`Unsupported Certification Type: ${type}`);\r\n return \"?\";\r\n }\r\n\r\n return localizer.localizeString(name);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public static getFriendlyExpirationDateStringForCertification(certification: CertificationBase, localizer: IStringLocalizer) {\r\n if (certification.expirationDate === null) {\r\n return localizer.localizeString(\"None\");\r\n }\r\n\r\n return new Date(certification.expirationDate).toLocaleDateString();\r\n }\r\n}","import * as React from 'react';\r\nimport { IStringLocalizer } from '../../../utilities/IStringLocalizer';\r\n\r\ninterface ToxnotReactModalFooterProps {\r\n enabledCloseButton?: boolean; // default is true\r\n customCloseButtonName?: string;\r\n localizer: IStringLocalizer;\r\n onCancel?: () => void;\r\n}\r\n\r\n/**\r\n * Shared component for a react modals footer. Should only be used with\r\n * ToxnotReactModal. Will always render with a close button unless specifically\r\n * told not too.\r\n */\r\nexport class ToxnotReactModalFooter extends React.PureComponent {\r\n public render() {\r\n return (\r\n

\r\n {(this.props.enabledCloseButton ?? true) && }\r\n {this.props.children}\r\n
\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Shared component for a react modals body. Should only be used with\r\n * ToxnotReactModal\r\n */\r\nexport class ToxnotReactModalBody extends React.PureComponent {\r\n public render() {\r\n return (\r\n
\r\n {this.props.children}\r\n
\r\n );\r\n }\r\n}\r\n\r\ninterface ToxnotReactModalProps {\r\n modalId: string;\r\n localizedTitle?: string;\r\n additionalClasses?: string;\r\n onClose?: () => void;\r\n customHeader?: JSX.Element;\r\n}\r\n\r\n/**\r\n * A shared component that will render a bootstrap 3 modal. Meant to be used\r\n * with ToxnotReactModalBody and ToxnotReactModalFooter. \r\n * \r\n * To use, just render in a react component and call the JQuery modal show/hide\r\n * to show and hide.\r\n */\r\nexport class ToxnotReactModal extends React.PureComponent {\r\n public render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {this.props.customHeader ?\r\n this.props.customHeader : \r\n <>\r\n \r\n

{this.props.localizedTitle ?? \"\"}

\r\n \r\n }\r\n
\r\n {this.props.children}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import * as React from 'react';\r\nimport { IStringLocalizer } from '../../../utilities/IStringLocalizer';\r\n\r\nimport './styles.css';\r\n\r\nenum SortDirection {\r\n Ascending,\r\n Descending\r\n}\r\n\r\ninterface SortableState {\r\n sortDirection: SortDirection;\r\n sortableColIndex: number;\r\n}\r\n\r\ninterface TableState {\r\n pageIndex: number;\r\n showJumpToPageInput: boolean;\r\n selectedIds: { [id: string]: string };\r\n sortableState: SortableState;\r\n jumpToPageInputValue: string;\r\n}\r\n\r\nexport interface TableColumn {\r\n value: string | JSX.Element | null;\r\n isSortable?: boolean;\r\n getSortableValue?: (model: TRowModel) => string;\r\n}\r\n\r\nexport interface TableRow {\r\n cols: (string | JSX.Element | { content: JSX.Element })[];\r\n}\r\n\r\nexport interface SelectingRowOptions {\r\n rowModelGetId: (model: TRowModel) => string;\r\n onRowSelected: (selectedIds: { [id: string]: string }) => void;\r\n initiallySelected?: { [id: string]: string };\r\n showOnlyOnHover?: boolean; // default value false\r\n singleSelect?: boolean;\r\n}\r\n\r\nexport interface ToxnotReactTableProps {\r\n headerRow: TableColumn[];\r\n allRowModels: TRowModel[];\r\n getRowForTable: (data: TRowModel, rowIndex: number) => TableRow;\r\n rowsPerPage?: number;\r\n rowClickEventHandler?: (e: React.MouseEvent, rowModel: TRowModel) => void;\r\n fullSectionWidth?: boolean;\r\n localizer: IStringLocalizer;\r\n stickyHeader?: boolean;\r\n enablePaging?: boolean; // User needs to set this to true to enable paging controls for both server and client-side.\r\n selectingRowOptions?: SelectingRowOptions;\r\n defaultSortColumn?: number;\r\n onPageChange?: (pageNumber: number) => void; // We are handling server-side paging based on onPageChange. This will be called when the next/prev button is clicked.\r\n totalNoResult?: number;\r\n currentPage?: number;\r\n noResultFoundContent?: string | JSX.Element;\r\n}\r\n\r\nexport class ToxnotReactTable extends React.PureComponent, TableState> {\r\n // ===============================================================================\r\n\r\n private _sortDirectionToGlyphicon = {\r\n [SortDirection.Ascending]: \"glyphicon-chevron-up\",\r\n [SortDirection.Descending]: \"glyphicon-chevron-down\"\r\n }\r\n\r\n // ===============================================================================\r\n\r\n constructor(props: ToxnotReactTableProps) {\r\n super(props);\r\n\r\n // set state\r\n this.state = {\r\n pageIndex: this.props.currentPage ?? 0,\r\n showJumpToPageInput: false,\r\n selectedIds: this.props.selectingRowOptions?.initiallySelected ?? {},\r\n sortableState: {\r\n sortableColIndex: props.defaultSortColumn ?? -1,\r\n sortDirection: SortDirection.Ascending\r\n },\r\n jumpToPageInputValue: ''\r\n };\r\n }\r\n\r\n public componentDidUpdate(prevProps: ToxnotReactTableProps) {\r\n if (prevProps.currentPage !== this.props.currentPage) {\r\n this.setState({ pageIndex: this.props.currentPage ?? 0 });\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n const rows: JSX.Element[] = [];\r\n\r\n const noResultFoundContent = this.props.noResultFoundContent ?? this.props.localizer.localizeString(\"No Items Found\");\r\n\r\n const rowModelsToRender = this.getModelsForCurrentPage();\r\n\r\n for (let i = 0; i < rowModelsToRender.length; ++i) {\r\n rows.push(this.renderTableRow(rowModelsToRender[i], i));\r\n }\r\n\r\n const useFullWitdth = this.props.fullSectionWidth ?? false;\r\n\r\n return (\r\n
\r\n {this.shouldShowPagingAction() && this.renderPagingActions(true)}\r\n \r\n \r\n {this.renderTableHeaderRow()}\r\n \r\n \r\n {rows}\r\n \r\n
\r\n {rows.length === 0 &&
{typeof noResultFoundContent === 'string' ? noResultFoundContent : noResultFoundContent}
}\r\n {this.shouldShowPagingAction() && this.renderPagingActions(false)}\r\n
\r\n )\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderTableHeaderRow() {\r\n const rowCols: JSX.Element[] = [];\r\n\r\n let colIndex = 0;\r\n\r\n if (this.getSelectRowsEnabled()) {\r\n rowCols.push(this.renderCheckboxColumn(colIndex, undefined, true))\r\n ++colIndex;\r\n }\r\n\r\n for (let col of this.props.headerRow) {\r\n rowCols.push(this.renderTableHeaderColumn(col, colIndex));\r\n ++colIndex;\r\n }\r\n\r\n return (\r\n \r\n {rowCols}\r\n \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderTableRow(model: TRowModel, rowIndex: number) {\r\n const reactRow = this.props.getRowForTable(model, rowIndex);\r\n const rowCols: JSX.Element[] = [];\r\n\r\n let colIndex = 0;\r\n\r\n if (this.getSelectRowsEnabled()) {\r\n rowCols.push(this.renderCheckboxColumn(colIndex, model, false))\r\n ++colIndex;\r\n }\r\n\r\n for (let col of reactRow.cols) {\r\n rowCols.push(this.renderTableColumn(col, colIndex));\r\n ++colIndex;\r\n }\r\n\r\n return (\r\n this.row_click(e, model)}\r\n className={`${this.props.rowClickEventHandler ? \"row-with-callback\" : \"\"} ${this.props.selectingRowOptions?.showOnlyOnHover ? \" checkbox-on-hover\" : \"\"\r\n }`.trim()}\r\n >\r\n {rowCols}\r\n \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getCorrectColumnIndex(index: number) {\r\n return this.props.selectingRowOptions ? index - 1 : index;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderTableHeaderColumn(tableCol: TableColumn, index: number) {\r\n let body = tableCol.value;\r\n\r\n if (tableCol.isSortable) {\r\n const correctIndex = this.getCorrectColumnIndex(index)\r\n body = (\r\n
\r\n this.col_click(correctIndex)}\r\n > {tableCol.value} \r\n {\" \"}\r\n {this.state.sortableState.sortableColIndex === correctIndex && (\r\n \r\n )}\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n {body}\r\n \r\n );\r\n }\r\n\r\n\r\n // ===============================================================================\r\n\r\n private renderTableColumn(value: string | null | JSX.Element | { content: JSX.Element }, index: number) {\r\n // Check if value is an object with a content property. If so, return the content directly.\r\n // Note: To use colspan, pass an object with a content property that contains a with the colSpan attribute.\r\n if (typeof value === 'object' && value !== null && 'content' in value) {\r\n return value.content;\r\n }\r\n\r\n // rendering logic for normal columns\r\n return (\r\n \r\n {value}\r\n \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderCheckboxColumn = (index: number, rowModel: TRowModel | undefined, isHeaderCheckbox: boolean) => {\r\n let retElement: JSX.Element;\r\n\r\n if (isHeaderCheckbox) {\r\n retElement = (\r\n \r\n )\r\n } \r\n else {\r\n if (!rowModel) {\r\n throw new Error(\"Unable to render table row. Insufficient data given for row.\");\r\n }\r\n \r\n retElement = (\r\n this.selectRow_click(e, rowModel)}\r\n onChange={(e) => { }}\r\n checked={this.state.selectedIds[this.getSelectingRowOptions().rowModelGetId(rowModel)] !== undefined}\r\n />\r\n )\r\n }\r\n \r\n const stickyHeader = this.props.stickyHeader ?? true;\r\n\r\n return (\r\n \r\n {retElement}\r\n \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private isWholePageChecked(): boolean {\r\n const models = this.getModelsForCurrentPage();\r\n\r\n if (models.length === 0) {\r\n return false;\r\n }\r\n\r\n for (let model of models) {\r\n if (!this.state.selectedIds[this.getSelectingRowOptions().rowModelGetId(model)]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderPagingActions(showJumpToPage: boolean) {\r\n return (\r\n
\r\n \r\n {this.props.localizer.localizeStringFormat(\"Page \") + (this.state.pageIndex + 1).toString() + this.props.localizer.localizeStringFormat(\" of \") + this.getTotalNumPages().toString()}\r\n {\" \"}\r\n {this.state.pageIndex > 0 && (\r\n \r\n )}\r\n {\" \"}\r\n {this.state.pageIndex + 1 < this.getTotalNumPages() && (\r\n \r\n )}\r\n {\" \"}\r\n {showJumpToPage && \r\n <>\r\n this.jumpToPage_click()}>\r\n {this.props.localizer.localizeString(\"Jump to Page\")}\r\n {\" \"}\r\n {this.state.showJumpToPageInput && (\r\n \r\n )}\r\n \r\n }\r\n
\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getModelsForCurrentPage() {\r\n const models = this.sortModels(this.props.allRowModels);\r\n \r\n /*\r\n this.getEnablePaging is used to show paging controls for both server and client-side.\r\n We are handling server-side paging based on onPageChange.\r\n It will be called when the next/prev button is clicked.\r\n */\r\n if (this.getEnablePaging() && !this.props.onPageChange) {\r\n\r\n const rowsPerPage = this.getRowsPerPage();\r\n \r\n const startIndex = this.state.pageIndex * rowsPerPage;\r\n \r\n const endIndex = Math.min(models.length - 1, startIndex + rowsPerPage - 1);\r\n \r\n return models.slice(startIndex, endIndex + 1);\r\n }\r\n else {\r\n return models;\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getRowsPerPage() {\r\n return this.props.rowsPerPage ?? 50;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getTotalNumPages() {\r\n const rowCount = this.props.totalNoResult ? this.props.totalNoResult : this.props.allRowModels.length;\r\n const rowsPerPage = this.getRowsPerPage();\r\n\r\n // Calculate the total number of pages without enforcing a minimum of 1\r\n const totalNumPages = Math.ceil(rowCount / rowsPerPage);\r\n \r\n return totalNumPages;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getEnablePaging() {\r\n return this.props.enablePaging ?? true;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private shouldShowPagingAction() {\r\n return this.getTotalNumPages() > 1 && this.getEnablePaging()\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getSelectRowsEnabled() {\r\n return this.props.selectingRowOptions !== undefined;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getSelectingRowOptions() {\r\n if (!this.props.selectingRowOptions) {\r\n throw new Error(\"Selecting Row Options must be set to true.\")\r\n }\r\n\r\n return this.props.selectingRowOptions;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getStickyHeader() {\r\n return this.props.stickyHeader ?? true;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private sortModels(models: TRowModel[]) {\r\n const sortableColIndex = this.state.sortableState.sortableColIndex;\r\n\r\n // if no sort column set or column set from defaultSortColumn value is invalid return models\r\n if (sortableColIndex === -1 || this.props.headerRow.length < sortableColIndex) {\r\n return models;\r\n }\r\n\r\n const getSortableValueFn = this.props.headerRow[sortableColIndex].getSortableValue;\r\n\r\n if (!getSortableValueFn) {\r\n return models;\r\n }\r\n\r\n return models.sort(\r\n (a: TRowModel, b: TRowModel) => {\r\n const s_a = getSortableValueFn(a);\r\n const s_b = getSortableValueFn(b);\r\n\r\n const i = s_a.localeCompare(s_b);\r\n\r\n return this.state.sortableState.sortDirection === SortDirection.Ascending ? i : i * -1;\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getOppositeSortDirection(sortDirection: SortDirection) {\r\n return sortDirection === SortDirection.Ascending ? SortDirection.Descending : SortDirection.Ascending;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n //\r\n // UI Events\r\n //\r\n\r\n // ===============================================================================\r\n\r\n private row_click = (e: React.MouseEvent, model: TRowModel) => {\r\n $(e.currentTarget).parent().find(\"tr\").removeClass(\"selected\");\r\n $(e.currentTarget).addClass(\"selected\");\r\n\r\n if (!this.props.rowClickEventHandler) {\r\n return;\r\n }\r\n\r\n this.props.rowClickEventHandler(e, model);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private col_click = (index: number) => {\r\n const currentSortDirection = this.state.sortableState.sortDirection;\r\n\r\n this.setState({\r\n sortableState: {\r\n sortDirection: this.getOppositeSortDirection(currentSortDirection),\r\n sortableColIndex: index\r\n }\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private nextPage_click = () => {\r\n const nextPageIndex = this.state.pageIndex + 1;\r\n\r\n if (this.props.onPageChange) {\r\n this.props.onPageChange(nextPageIndex);\r\n } else {\r\n if (nextPageIndex > this.getTotalNumPages()) {\r\n return;\r\n }\r\n \r\n this.setState({ pageIndex: nextPageIndex });\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private prevPage_click = () => {\r\n const prevPageIndex = this.state.pageIndex - 1;\r\n\r\n if (prevPageIndex >= 0) {\r\n if (this.props.onPageChange) {\r\n this.props.onPageChange(prevPageIndex);\r\n } else {\r\n this.setState({ pageIndex: prevPageIndex });\r\n }\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private jumpToPage_click = () => {\r\n this.setState({\r\n pageIndex: this.state.pageIndex,\r\n showJumpToPageInput: !this.state.showJumpToPageInput\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private jumpToPage_keyDown = (e: React.KeyboardEvent) => {\r\n if (!/^\\d$/.test(e.key) && e.key !== \"Backspace\" && e.key !== \"Enter\") {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (e.key === \"Enter\") {\r\n const possibleNumberStr = this.state.jumpToPageInputValue;\r\n \r\n if (!possibleNumberStr) {\r\n return;\r\n }\r\n \r\n const possibleNumber = parseInt(possibleNumberStr, 10);\r\n \r\n if (Number.isNaN(possibleNumber)) {\r\n return;\r\n }\r\n \r\n const pageIndexToJumpTo = possibleNumber - 1;\r\n \r\n if (pageIndexToJumpTo >= this.getTotalNumPages() || pageIndexToJumpTo < 0) {\r\n return;\r\n }\r\n \r\n this.setState({ \r\n pageIndex: pageIndexToJumpTo,\r\n jumpToPageInputValue: ''\r\n }, () => {\r\n if (this.props.onPageChange) {\r\n this.props.onPageChange(pageIndexToJumpTo);\r\n }\r\n });\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private jumpToPageInput_onChange = (e: React.ChangeEvent) => {\r\n this.setState({\r\n jumpToPageInputValue: e.target.value\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private selectRow_click = (e: React.MouseEvent, rowModel: TRowModel) => {\r\n const currentSelectedIds = { ...this.state.selectedIds };\r\n const selectingRowOptions = this.getSelectingRowOptions();\r\n\r\n const id: string = selectingRowOptions.rowModelGetId(rowModel);\r\n\r\n if (e.currentTarget.checked) {\r\n currentSelectedIds[id] = id;\r\n }\r\n\r\n else {\r\n delete currentSelectedIds[id];\r\n }\r\n\r\n selectingRowOptions.onRowSelected(currentSelectedIds);\r\n\r\n this.setState({\r\n ...this.state,\r\n selectedIds: currentSelectedIds\r\n });\r\n\r\n e.stopPropagation();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private selectAllRows_onChange = (e: React.ChangeEvent) => {\r\n const currentSelectedIds = { ...this.state.selectedIds };\r\n const selectingRowOptions = this.getSelectingRowOptions();\r\n\r\n const modelsOnPage = this.getModelsForCurrentPage();\r\n\r\n if (e.target.checked) {\r\n for (let model of modelsOnPage) {\r\n const id = selectingRowOptions.rowModelGetId(model);\r\n currentSelectedIds[id] = id;\r\n }\r\n }\r\n\r\n else {\r\n for (let model of modelsOnPage) {\r\n const id = selectingRowOptions.rowModelGetId(model);\r\n delete currentSelectedIds[id];\r\n }\r\n }\r\n\r\n selectingRowOptions.onRowSelected(currentSelectedIds);\r\n\r\n this.setState({\r\n ...this.state,\r\n selectedIds: currentSelectedIds\r\n });\r\n }\r\n}\r\n","import { StandardComplianceScoreType } from '../../store/Models/SharedMaterials/DataModel';\r\n\r\nexport class SharedMaterialsReactUtilities {\r\n private static readonly complianceDeterminationToSpanClasses = {\r\n [StandardComplianceScoreType.Unknown]: \"unknown glyphicon-question-sign\",\r\n [StandardComplianceScoreType.Compliant]: \"compliant glyphicon-ok-sign\",\r\n [StandardComplianceScoreType.NonCompliant]: \"noncompliant glyphicon-remove-sign\",\r\n };\r\n\r\n public static getComplianceIconForComplianceDetermination(determination: StandardComplianceScoreType | null | undefined): JSX.Element {\r\n if (determination === null || determination === undefined) {\r\n return ;\r\n }\r\n\r\n const classes = this.complianceDeterminationToSpanClasses[determination];\r\n\r\n return (\r\n \r\n );\r\n }\r\n}","import React from 'react';\r\nimport App from '../../../App';\r\nimport { AppServices } from '../../../AppServices';\r\nimport CertificationRendererManager from '../../../store/Managers/CertificationRendererManager';\r\nimport { RegulationManager } from '../../../store/Managers/RegulationManager';\r\nimport { Certification } from '../../../store/Models/Certifications';\r\nimport { CertificationType, FileTableEntry } from '../../../store/Models/Documents/DocumentModels';\r\nimport * as Models from '../../../store/Models/SharedMaterials/DataModel';\r\nimport { LbcRedListStatus, localizeSharedMaterialFmdDisclosureType } from '../../../store/Models/SharedMaterials/DataModel';\r\nimport { SoldItem } from '../../../store/Models/SoldItems';\r\nimport { IStringLocalizer } from '../../../utilities/IStringLocalizer';\r\nimport { ToxnotReactModal, ToxnotReactModalBody, ToxnotReactModalFooter } from '../../core/ToxnotReactModal';\r\nimport { TableColumn, TableRow, ToxnotReactTable } from '../../core/ToxnotReactTable';\r\nimport { SharedMaterialsReactUtilities } from '../SharedMaterialsReactUtilities';\r\nimport { DynamicRegulation } from \"../../../store/Models/Compliance/DynamicRegulation\";\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Provides specific attributes to the element responsible for handling the various View Details redirects.\r\n */\r\nexport interface ViewDetailsRenderer {\r\n renderViewDetailsAttributes: (inventoryId: string, publicInventoryId: string, publicInventoryDataIdId: string, startId: string, startContext: string) => { [attribute: string]: any };\r\n addToLibraryButton_click: (sharedMaterialId: string) => void;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport abstract class SharedMaterialDetailDataSection {\r\n readonly dataSectionId: string;\r\n readonly title: string;\r\n readonly localizer: IStringLocalizer;\r\n\r\n protected constructor(dataSectionId: string, localizedTitle: string, localizer: IStringLocalizer) {\r\n this.dataSectionId = dataSectionId;\r\n this.title = localizedTitle;\r\n this.localizer = localizer;\r\n }\r\n\r\n isExpanded(collapsedSections: string[]) {\r\n return !collapsedSections.includes(this.dataSectionId);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Convenience localization function.\r\n */\r\n protected localizeString(s: string): string {\r\n return this.localizer.localizeString(s);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n abstract hasData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData): boolean;\r\n\r\n // ===============================================================================\r\n\r\n protected getCertExpirationDateLocalizedString(expirationDate: string | null) {\r\n return expirationDate === null ? this.localizeString(\"No Expiration Date\") : new Date(expirationDate).toLocaleDateString();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected addToLibraryButton = (renderer: ViewDetailsRenderer, sharedMaterialId: string, inventoryId: string, publicInventoryId: string, publicInventoryDataId: string, startId: string, startContext: string) => {\r\n renderer.addToLibraryButton_click(sharedMaterialId);\r\n window.open(`/Data/Inventory?inventoryId=${encodeURIComponent(inventoryId)}&publicInventoryId=${encodeURIComponent(publicInventoryId)}&publicInventoryDataId=${encodeURIComponent(publicInventoryDataId)}&mode=Passport&startControllerId=${encodeURIComponent(startId)}&startControllerContentContext=${encodeURIComponent(startContext)}`, \"_blank\")\r\n $('#warn-about-adding-passport-to-library').modal('hide');\r\n }\r\n \r\n // ===============================================================================\r\n\r\n protected closeCatalogWarningModal_click = (e: React.MouseEvent) => {\r\n e.nativeEvent.stopImmediatePropagation();\r\n $('#warn-about-adding-passport-to-library').modal('hide');\r\n\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected renderQuestionMarkIfStringEmpty(s: string) {\r\n return s.trim().length === 0 ? \"?\" : s;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public static renderDocument(fileId: string, index: number, fileTable: { [fileId: string]: FileTableEntry }, implementationInventoryId: string, trackEventName?: string, trackEventContext?: any, appServices?: AppServices, isGeneralFile: boolean = false) {\r\n const fileTableEntry = fileTable[fileId];\r\n\r\n if (!fileTableEntry) {\r\n return null;\r\n }\r\n\r\n let getFileUrl = `/Api/InventoryFile?inventoryId=${encodeURIComponent(implementationInventoryId)}&fileId=${encodeURIComponent(fileId)}`;\r\n\r\n if (isGeneralFile) {\r\n getFileUrl = `/Api/v2/GeneralFile?fileId=${encodeURIComponent(fileId)}`;\r\n }\r\n\r\n if (trackEventName && appServices) {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n private static clickDocumentLink(appServices: AppServices, link: string, trackEventName: string, trackEventContext?: any) {\r\n if (appServices) {\r\n appServices.trackEvent(trackEventName, trackEventContext);\r\n }\r\n window.open(link);\r\n }\r\n\r\n // ===============================================================================\r\n protected renderViewDetails(coreData: Models.SharedMaterialCoreData, renderer: ViewDetailsRenderer, startContext: string, startId?: string, localizedText?: string) {\r\n const attributes = renderer.renderViewDetailsAttributes(coreData.implementationInventoryId,\r\n coreData.publicInventoryId, coreData.publicInventoryDataId, startId ?? \"data-pages\", startContext);\r\n const text = localizedText ?? this.localizeString(\"View details\");\r\n return (\r\n
{text}\r\n \r\n \r\n
\r\n

\r\n {this.localizeString(\"To view the details you must add the Passport to your Library.\")}\r\n

\r\n

\r\n {this.localizeString(\"Do you wish to continue?\")}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n abstract render(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData,\r\n fileTable: { [fileId: string]: FileTableEntry }, renderer: ViewDetailsRenderer, companyTeamOwnerId: string): JSX.Element;\r\n}\r\n\r\nclass DetailDataSection_Ingredients extends SharedMaterialDetailDataSection {\r\n constructor(localizer: IStringLocalizer) {\r\n super(\"Ingredients\", localizer.localizeString(\"Ingredients\"), localizer);\r\n }\r\n\r\n hasData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData): boolean {\r\n return restrictedData.bomData !== null\r\n }\r\n\r\n render(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData,\r\n fileTable: { [fileId: string]: FileTableEntry }, renderer: ViewDetailsRenderer, companyTeamOwnerId: string) {\r\n return (\r\n
\r\n Threshold Level: {localizeSharedMaterialFmdDisclosureType(coreData.fmdStatus!, this.localizer)}\r\n {this.renderViewDetails(coreData, renderer, \"\", \"bom-editor\", this.localizeString(\"View Ingredients\"))}\r\n
\r\n );\r\n }\r\n}\r\n\r\nclass DetailDataSection_Compliance extends SharedMaterialDetailDataSection {\r\n private readonly _dynamicRegulationTable: Readonly<{ [regulationId: string]: DynamicRegulation }>;\r\n\r\n constructor(localizer: IStringLocalizer, dynamicRegulationTable: Readonly<{ [regulationId: string]: DynamicRegulation }>) {\r\n super(\"Compliance\", localizer.localizeString(\"Compliance\"), localizer);\r\n\r\n this._dynamicRegulationTable = dynamicRegulationTable;\r\n }\r\n\r\n hasData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData): boolean {\r\n return this.legacyRegsHaveData(coreData, restrictedData) ||\r\n Object.keys(coreData.regulationIdToComplianceScoreMap).length > 0;\r\n }\r\n\r\n private legacyRegsHaveData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData) {\r\n return coreData.scoreCal65 !== null ||\r\n coreData.scoreReach !== null ||\r\n coreData.scoreReachAuth !== null ||\r\n coreData.scoreReachAuthV2 !== null ||\r\n coreData.scoreRohs !== null ||\r\n coreData.scoreCm !== null ||\r\n restrictedData.lbcRedListStatus !== null;\r\n }\r\n\r\n private renderComplianceRow(startContext: string, complianceScore: Models.StandardComplianceScoreType | null, localizedTitle: string, element: JSX.Element) {\r\n const scoreElement = SharedMaterialsReactUtilities.getComplianceIconForComplianceDetermination(complianceScore);\r\n\r\n return (\r\n
\r\n
{scoreElement}
\r\n
{localizedTitle}
\r\n {element}\r\n
\r\n );\r\n }\r\n\r\n private renderNoData() {\r\n return
{this.localizeString(\"No Data\")}
;\r\n }\r\n\r\n private renderComplianceScoreRow(coreData: Models.SharedMaterialCoreData, complianceScore: Models.StandardComplianceScoreType | null,\r\n localizedTitle: string, startContext: string, renderer: ViewDetailsRenderer) {\r\n return this.renderComplianceRow(startContext, complianceScore, localizedTitle,\r\n complianceScore !== null\r\n ? this.renderViewDetails(coreData, renderer, startContext, \"compliance-regulation\")\r\n : this.renderNoData()\r\n );\r\n }\r\n\r\n private declarationStatusToFriendlyDescriptionMap: { [s: string]: string } = {\r\n [LbcRedListStatus.Declared]: this.localizeString(\"Declared\"),\r\n [LbcRedListStatus.RedListApproved]: this.localizeString(\"LBC Red List Approved\"),\r\n [LbcRedListStatus.RedListFree]: this.localizeString(\"LBC Red List Free\"),\r\n [LbcRedListStatus.Unknown]: this.localizeString(\"Unknown\")\r\n };\r\n\r\n private renderLbcRedListStatusRow(restrictedData: Models.SharedMaterialDetailRestrictedData) {\r\n return this.renderComplianceRow(\"lbc-red-list\", null, this.localizeString(\"LBC Red List Status\"),\r\n null !== restrictedData.lbcRedListStatus\r\n ?
{this.declarationStatusToFriendlyDescriptionMap[restrictedData.lbcRedListStatus]}
\r\n : this.renderNoData()\r\n );\r\n }\r\n\r\n private renderComplianceScoreRows(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData, fileTable: { [fileId: string]: FileTableEntry; }, renderer: ViewDetailsRenderer, companyTeamOwnerId: string): JSX.Element {\r\n const complianceScoreRowTuples = Object.keys(coreData.regulationIdToComplianceScoreMap)\r\n .filter(r => this._dynamicRegulationTable[r])\r\n .map(regulationId => ({\r\n regulationId,\r\n regulationName: this._dynamicRegulationTable[regulationId].config.name,\r\n jsxElement: this.renderComplianceScoreRow(coreData, coreData.regulationIdToComplianceScoreMap[regulationId], this._dynamicRegulationTable[regulationId].config.name, regulationId, renderer)\r\n }))\r\n .concat([\r\n { regulationId: RegulationManager.CaProp65RegulationId, regulationName: this.localizeString(\"Cal Prop. 65\"), jsxElement: this.renderComplianceScoreRow(coreData, coreData.scoreCal65, this.localizeString(\"Cal Prop. 65\"), RegulationManager.CaProp65RegulationId, renderer) },\r\n { regulationId: RegulationManager.ReachSvhcCandidateRegulationId, regulationName: this.localizeString(\"EU REACH SVHC Candidate List\"), jsxElement: this.renderComplianceScoreRow(coreData, coreData.scoreReach, this.localizeString(\"EU REACH SVHC Candidate List\"), RegulationManager.ReachSvhcCandidateRegulationId, renderer) },\r\n { regulationId: RegulationManager.ReachSvhcAuthorizationRegulationId, regulationName: this.localizeString(\"EU REACH Authorisation\"), jsxElement: this.renderComplianceScoreRow(coreData, coreData.scoreReachAuth, this.localizeString(\"EU REACH Authorisation List\"), RegulationManager.ReachSvhcAuthorizationRegulationId, renderer) },\r\n { regulationId: RegulationManager.ReachSvhcAuthorizationV2RegulationId, regulationName: this.localizeString(\"EU REACH Authorisation and Restriction\"), jsxElement: this.renderComplianceScoreRow(coreData, coreData.scoreReachAuth, this.localizeString(\"EU REACH Authorisation and Restriction\"), RegulationManager.ReachSvhcAuthorizationV2RegulationId, renderer) },\r\n { regulationId: RegulationManager.RohsRegulationId, regulationName: this.localizeString(\"RoHS\"), jsxElement: this.renderComplianceScoreRow(coreData, coreData.scoreRohs, this.localizeString(\"RoHS\"), RegulationManager.RohsRegulationId, renderer) },\r\n ])\r\n .filter(tuple => tuple.regulationId !== RegulationManager.LbcRedListListId)\r\n .distinctByStringProjection(tuple => tuple.regulationId);\r\n\r\n if (restrictedData.complianceDetail.hasScipData) {\r\n complianceScoreRowTuples.push({\r\n regulationId: \"scip\",\r\n regulationName: this.localizeString(\"SCIP\"),\r\n jsxElement: this.renderComplianceScoreRow(coreData, null, this.localizeString(\"SCIP\"), RegulationManager.ReachSvhcCandidateRegulationId, renderer)\r\n });\r\n }\r\n\r\n let cmrtTemplateDetail: JSX.Element | null = null;\r\n\r\n if (coreData.regulationIdToComplianceScoreMap.hasOwnProperty(RegulationManager.ConflictMineralsTemplateRegulationId)) {\r\n cmrtTemplateDetail = this.renderComplianceRow(RegulationManager.ConflictMineralsRegulationId, null, this.localizeString(\"Conflict Minerals Template (CMRT) Data\"),\r\n this.renderViewDetails(coreData, renderer, RegulationManager.ConflictMineralsRegulationId, \"compliance-regulation\"));\r\n }\r\n\r\n return (\r\n <>\r\n {complianceScoreRowTuples.orderBy(tuple => tuple.regulationName).map(tuple => tuple.jsxElement)}\r\n {cmrtTemplateDetail}\r\n \r\n );\r\n }\r\n\r\n render(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData,\r\n fileTable: { [fileId: string]: FileTableEntry; }, renderer: ViewDetailsRenderer, companyTeamOwnerId: string): JSX.Element {\r\n\r\n const firstRegulationId = Object.keys(coreData.regulationIdToComplianceScoreMap)[0];\r\n\r\n return (\r\n
\r\n {this.renderComplianceScoreRows(coreData, restrictedData, fileTable, renderer, companyTeamOwnerId)}\r\n {this.renderLbcRedListStatusRow(restrictedData)}\r\n {this.hasData(coreData, restrictedData) && !this.legacyRegsHaveData(coreData, restrictedData) && this.renderViewDetails(coreData, renderer, firstRegulationId, \"compliance-regulation\")}\r\n
\r\n );\r\n }\r\n}\r\n\r\nclass DetailDataSection_Sustainability extends SharedMaterialDetailDataSection {\r\n constructor(localizer: IStringLocalizer) {\r\n super(\"Sustainability\", localizer.localizeString(\"Lifecycle Impacts\"), localizer);\r\n }\r\n\r\n hasData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData): boolean {\r\n return restrictedData.sustainability != null;\r\n }\r\n\r\n private renderSustainability(localizedTitle: string, localizedAmountLabel: string, data: Models.SharedMaterialSustainabilityData, fileTable: { [fileId: string]: FileTableEntry; }, implementationInventoryId: string) {\r\n return (\r\n
\r\n
{localizedTitle}
\r\n
\r\n
{localizedAmountLabel}: {this.renderQuestionMarkIfStringEmpty(data.amount)}
\r\n
{this.localizeString(\"Product Unit\")}: {this.renderQuestionMarkIfStringEmpty(data.productUnit)}
\r\n
{this.localizeString(\"Scope(s)\")}: {this.renderQuestionMarkIfStringEmpty(data.scope.map(s => Models.getFriendlyNameFromScope(this.localizer, s)).join(\", \"))}
\r\n {data.supportingDocumentFileIds.map((fileId, index) => SharedMaterialDetailDataSection.renderDocument(fileId, index, fileTable, implementationInventoryId))}\r\n
\r\n
\r\n );\r\n }\r\n\r\n render(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData,\r\n fileTable: { [fileId: string]: FileTableEntry; }, renderer: ViewDetailsRenderer, companyTeamOwnerId: string): JSX.Element {\r\n const implementationInventoryId = coreData.implementationInventoryId;\r\n\r\n const embodiedCarbonContent: JSX.Element | null = (restrictedData.sustainability!.embodiedCarbon !== null) ?\r\n this.renderSustainability(this.localizeString(\"Embodied Carbon\"), \"KgCO2e\", restrictedData.sustainability!.embodiedCarbon, fileTable, implementationInventoryId) :\r\n null;\r\n\r\n const waterUseContent: JSX.Element | null = (restrictedData.sustainability!.waterUse !== null) ?\r\n this.renderSustainability(this.localizeString(\"Water Use\"), this.localizeString(\"Amount of Water Used (liters)\"), restrictedData.sustainability!.waterUse, fileTable, implementationInventoryId) :\r\n null;\r\n\r\n return (\r\n
\r\n {embodiedCarbonContent}\r\n {waterUseContent}\r\n {restrictedData.sustainability!.transparency !== null &&\r\n
\r\n
{this.localizeString(\"Transparency\")}
\r\n
\r\n {this.renderViewDetails(coreData, renderer, \"\", \"carbon\", \"View in Lifecycle Details\")}\r\n
\r\n
}\r\n {restrictedData.sustainability!.assessmentCommitmentOptimization !== null &&\r\n
\r\n
{this.localizeString(\"Assessment, Commitment, & Optimizations\")}
\r\n
\r\n {this.renderViewDetails(coreData, renderer, \"\", \"carbon\", \"View in Lifecycle Details\")}\r\n
\r\n
}\r\n {this.renderViewDetails(coreData, renderer, \"\", \"carbon\", \"View Lifecycle Details\")}\r\n
\r\n );\r\n }\r\n}\r\n\r\nclass DetailDataSection_Circularity extends SharedMaterialDetailDataSection {\r\n constructor(localizer: IStringLocalizer) {\r\n super(\"Circularity\", localizer.localizeString(\"Circularity\"), localizer);\r\n }\r\n\r\n hasData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData): boolean {\r\n return restrictedData.circularity !== null;\r\n }\r\n\r\n render(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData,\r\n fileTable: { [fileId: string]: FileTableEntry; }, renderer: ViewDetailsRenderer, companyTeamOwnerId: string): JSX.Element {\r\n const circularity = restrictedData.circularity!;\r\n\r\n const hasBomData = restrictedData.bomData !== null;\r\n const hasRapidlyRenewableContentRollUpPercent = hasBomData && circularity.rapidlyRenewableContentRollUpPercent.length > 0;\r\n const hasPostConsumerRecyclableContentRollUpPercent = hasBomData && circularity.postConsumerRecyclableContentRollUpPercent.length > 0;\r\n const hasPreConsumerRecyclableContentRollUpPercent = hasBomData && circularity.preConsumerRecyclableContentRollUpPercent.length > 0;\r\n const hasRecycledContentRollUpPercent = hasBomData && circularity.recycledContentRollUpPercent.length > 0;\r\n const hasAnyRenewableAndRecyclableData = hasRapidlyRenewableContentRollUpPercent || hasPostConsumerRecyclableContentRollUpPercent || hasPreConsumerRecyclableContentRollUpPercent || hasRecycledContentRollUpPercent;\r\n\r\n return (\r\n
\r\n {hasAnyRenewableAndRecyclableData && (\r\n
\r\n
{this.localizeString(\"Renewable Content And Recyclable Content Data\")}
\r\n
\r\n {hasRapidlyRenewableContentRollUpPercent &&
{this.localizeString(\"Rapidly Renewable Content\")}: {circularity.rapidlyRenewableContentRollUpPercent}
}\r\n {hasPostConsumerRecyclableContentRollUpPercent &&
{this.localizeString(\"Post-Consumer Recycled Content\")}: {circularity.postConsumerRecyclableContentRollUpPercent}
}\r\n {hasPreConsumerRecyclableContentRollUpPercent &&
{this.localizeString(\"Pre-Consumer Recycled Content\")}: {circularity.preConsumerRecyclableContentRollUpPercent}
}\r\n {hasRecycledContentRollUpPercent &&
{this.localizeString(\"Recycled Content\")}: {circularity.recycledContentRollUpPercent}
}\r\n
\r\n
\r\n )}\r\n {circularity.packaging !== Models.SharedMaterialPackaging.Undefined && (\r\n
\r\n
{this.localizeString(\"Packaging\")}
\r\n
\r\n {circularity.packaging === Models.SharedMaterialPackaging.Included ?\r\n this.localizeString(\"Packaging is included\") :\r\n this.localizeString(\"Packaging is not included\")}\r\n
\r\n
\r\n
{this.localizeString(\"Packaging Information\")}:\r\n {(circularity.packagingInformation !== null) && circularity.packagingInformation.split('\\n').map((s, index) => (\r\n

\r\n {s.trim()}\r\n

\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n {circularity.eolContact.length > 0 &&
{this.localizeString(\"Contact\")}: {circularity.eolContact}
}\r\n
\r\n
\r\n {circularity.eolOptions.map(option => this.renderEolOption(option, coreData, fileTable))}\r\n {(circularity.productCircularityDataSheetFileId !== null) &&\r\n
\r\n
{this.localizeString(\"Product Circularity Data Sheet\")}
\r\n \r\n
\r\n }\r\n {this.renderViewDetails(coreData, renderer, \"standard_page_circularity\")}\r\n
\r\n );\r\n }\r\n\r\n private renderEolOption(option: Models.SharedMaterialEolOption, coreData: Models.SharedMaterialCoreData, fileTable: { [fileId: string]: FileTableEntry; }) {\r\n return (\r\n
\r\n
{this.localizeEolOption(option.type)}
\r\n
\r\n {(option.description.length > 0) &&
\r\n {option.description}\r\n
}\r\n {(option.supportingLink.length > 0) && }\r\n {option.attachmentFileIds.map((fileId, index) =>\r\n SharedMaterialDetailDataSection.renderDocument(fileId, index, fileTable, coreData.implementationInventoryId)\r\n )}\r\n {this.resolveEolOptionRenderer(option)}\r\n
\r\n
\r\n );\r\n }\r\n\r\n private localizeEolOption(type: Models.SharedMaterialEolOptionType): string {\r\n switch (type) {\r\n case Models.SharedMaterialEolOptionType.DesignedForMaintenanceAndRepair: return this.localizeString(\"Designed for Maintenance and Repair\");\r\n case Models.SharedMaterialEolOptionType.DesignedForDisassembly: return this.localizeString(\"Designed for Disassembly\");\r\n case Models.SharedMaterialEolOptionType.DesignedForReUse: return this.localizeString(\"Designed for Re-use\");\r\n case Models.SharedMaterialEolOptionType.TakeBackProgram: return this.localizeString(\"Take Back Program\");\r\n case Models.SharedMaterialEolOptionType.Recycling: return this.localizeString(\"Recycling Instructions\");\r\n case Models.SharedMaterialEolOptionType.Other: return this.localizeString(\"Other\");\r\n default: return \"?\";\r\n }\r\n }\r\n\r\n private resolveEolOptionRenderer(option: Models.SharedMaterialEolOption): JSX.Element {\r\n switch (option.type) {\r\n case Models.SharedMaterialEolOptionType.DesignedForMaintenanceAndRepair: return this.renderEolOption_DesignedForMaintenanceAndRepair(option);\r\n case Models.SharedMaterialEolOptionType.DesignedForDisassembly: return this.renderEolOption_DesignedForDisassembly(option);\r\n case Models.SharedMaterialEolOptionType.DesignedForReUse: return this.renderEolOption_DesignedForReUse(option);\r\n case Models.SharedMaterialEolOptionType.TakeBackProgram: return this.renderEolOption_TakeBackProgram(option);\r\n case Models.SharedMaterialEolOptionType.Recycling: return this.renderEolOption_Recycling(option);\r\n case Models.SharedMaterialEolOptionType.Other: return this.renderEolOption_Other(option);\r\n }\r\n }\r\n\r\n private renderEolOption_DesignedForMaintenanceAndRepair(rawOption: Models.SharedMaterialEolOption) {\r\n var option = rawOption as Models.SharedMaterialEolOption_DesignedForMaintenanceAndRepair;\r\n return (\r\n
\r\n {this.localizeString(\"Options\")}:\r\n
    \r\n {option.maintainedByUntrained &&
  • {this.localizeString(\"The product can be maintained & repaired by untrained personnel at the location of the product use\")}
  • }\r\n {option.maintainedByTrained &&
  • {this.localizeString(\"The product can be maintained & repaired by trained personnel at the location of the product use\")}
  • }\r\n {option.maintenanceNotRequired &&
  • {this.localizeString(\"The product requires no maintenance or repair if the intended use of the product is followed\")}
  • }\r\n {option.maintenanceNotPossible &&
  • {this.localizeString(\"Maintenance or repair of the product during its use period is not possible due to the design of the product\")}
  • }\r\n {option.consumableReplacedByUntrained && (
  • {this.localizeString(\"Consumables are easily replaced by untrained personnel\")}
  • )}\r\n {option.sparePartsAvailable && (
  • {this.localizeString(\"Spare parts are made available by the manufacturer or an authorized representative during the functional use period of the product\")}
  • )}\r\n
\r\n
\r\n );\r\n }\r\n\r\n private renderEolOption_DesignedForDisassembly(rawOption: Models.SharedMaterialEolOption) {\r\n var option = rawOption as Models.SharedMaterialEolOption_DesignedForDisassembly;\r\n return (\r\n
{this.localizeString(\"Disassembly Instructions\")}:\r\n {option.instructions.split('\\n').map((s, index) => (\r\n

\r\n {s.trim()}\r\n

\r\n ))\r\n }\r\n
\r\n );\r\n }\r\n\r\n private renderEolOption_DesignedForReUse(rawOption: Models.SharedMaterialEolOption) {\r\n var option = rawOption as Models.SharedMaterialEolOption_DesignedForReuse;\r\n var hasOptionGroup1 = option.minimalModification || option.ceMark || option.refurbishment || option.remanufacturing;\r\n var hasOptionGroup2 = option.dedicatedCollectionSystem || option.emitted || option.industrialCascading ||\r\n option.industrialComposter || option.homeComposter || option.biodegestion || option.incineration;\r\n return (\r\n \r\n
\r\n {this.localizeString(\"Options\")}:\r\n
    \r\n {option.minimalModification &&
  • {this.localizeString(\"The product is designed for re-use as-is or with minimal modification\")}
  • }\r\n {option.ceMark &&
  • {this.localizeString(\"The product has the CE mark\")}
  • }\r\n {option.refurbishment &&
  • {this.localizeString(\"The product is designed for refurbishment\")}
  • }\r\n {option.remanufacturing &&
  • {this.localizeString(\"The product is designed for remanufacturing\")}
  • }\r\n {(hasOptionGroup1 && hasOptionGroup2) &&

    }\r\n {option.dedicatedCollectionSystem &&

  • {this.localizeString(\"The manufacturer/ industry association has a dedicated collection system in place to gather and deliver products for recycling\")}
  • }\r\n {option.emitted &&
  • {this.localizeString(\"The portion of the product known to be emitted into the environment during use is designed for that purpose\")}
  • }\r\n {option.industrialCascading &&
  • {this.localizeString(\"The product is designed for industrial cascading in the biosphere\")}
  • }\r\n {option.industrialComposter &&
  • {this.localizeString(\"The product is designed for composting in an industrial facility\")}
  • }\r\n {option.homeComposter &&
  • {this.localizeString(\"The product is designed for composting in a home composter\")}
  • }\r\n {option.biodegestion &&
  • {this.localizeString(\"The product is designed for clean biodigestion\")}
  • }\r\n {option.incineration &&
  • {this.localizeString(\"The product is designed for clean incineration/pyrolysis\")}
  • }\r\n
\r\n
\r\n
\r\n {this.localizeString(\"What % of the product is designed for recycling at the same level of quality. The remainder of the materials is foreseen by the manufacturer to be recycled at a lower quality than the original content\")}:\r\n
\r\n {option.recyclingPercent}\r\n
\r\n
\r\n
\r\n {this.localizeString(\"What % of the product content is anticipated to become leakage during the use phase due to for example wear & tear, oxidation, erosion, etc\")}:\r\n
\r\n {option.leakagePercent}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private renderEolOption_TakeBackProgram(rawOption: Models.SharedMaterialEolOption) {\r\n var option = rawOption as Models.SharedMaterialEolOption_TakeBackProgram;\r\n return (\r\n
\r\n {this.localizeString(\"More Information\")}:\r\n
\r\n {option.instructions}\r\n
\r\n
\r\n );\r\n }\r\n\r\n private renderEolOption_Recycling(rawOption: Models.SharedMaterialEolOption) {\r\n var option = rawOption as Models.SharedMaterialEolOption_Recycling;\r\n return (\r\n
\r\n {this.localizeString(\"Recyling Instructions\")}:\r\n
\r\n {option.instructions}\r\n
\r\n
\r\n );\r\n }\r\n\r\n private renderEolOption_Other(rawOption: Models.SharedMaterialEolOption) {\r\n var option = rawOption as Models.SharedMaterialEolOption_Other\r\n return (\r\n
\r\n {this.localizeString(\"Name\")}: \r\n {option.name}\r\n
\r\n );\r\n }\r\n}\r\n\r\nclass DetailDataSection_Documents extends SharedMaterialDetailDataSection {\r\n constructor(localizer: IStringLocalizer) {\r\n super(\"Documents\", localizer.localizeString(\"Supporting Documents\"), localizer);\r\n }\r\n\r\n hasData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData): boolean {\r\n return null !== restrictedData.documentFileIds && restrictedData.documentFileIds.length > 0;\r\n }\r\n\r\n render(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData,\r\n fileTable: { [fileId: string]: FileTableEntry; }, renderer: ViewDetailsRenderer, companyTeamOwnerId: string): JSX.Element {\r\n return (\r\n
\r\n {restrictedData.documentFileIds.map((fileId, index) => (\r\n SharedMaterialDetailDataSection.renderDocument(fileId, index, fileTable, coreData.implementationInventoryId)\r\n ))}\r\n {this.renderViewDetails(coreData, renderer, \"documents\")}\r\n
\r\n );\r\n }\r\n}\r\n\r\nclass DetailDataSection_SafetyDataSheet extends SharedMaterialDetailDataSection {\r\n constructor(localizer: IStringLocalizer) {\r\n super(\"SafetyDataSheet\", localizer.localizeString(\"Safety Data Sheet\"), localizer);\r\n }\r\n\r\n hasData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData): boolean {\r\n return restrictedData.sdsData.hasSdsFields;\r\n }\r\n\r\n private renderSdsSectionRow(localizedTitle: string) {\r\n return (\r\n \r\n
\r\n {localizedTitle}\r\n
\r\n \r\n );\r\n }\r\n\r\n private renderSdsSections() {\r\n return (\r\n
\r\n {this.renderSdsSectionRow(this.localizeString(\"Section 1. Product/Material Information\"))}\r\n {this.renderSdsSectionRow(this.localizeString(\"Section 2. Hazard Identification\"))}\r\n {this.renderSdsSectionRow(this.localizeString(\"Section 3. Composition/Information On Ingredients\"))}\r\n {this.renderSdsSectionRow(this.localizeString(\"Section 4. First Aid Measures\"))}\r\n {this.renderSdsSectionRow(this.localizeString(\"Section 5. Fire-Fighting Measures\"))}\r\n {this.renderSdsSectionRow(this.localizeString(\"Section 7. Handling and Storage\"))}\r\n {this.renderSdsSectionRow(this.localizeString(\"Section 8. Exposure Controls/Personal Protection\"))}\r\n {this.renderSdsSectionRow(this.localizeString(\"Section 9. Physical and Chemical Properties\"))}\r\n
\r\n );\r\n }\r\n\r\n render(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData,\r\n fileTable: { [fileId: string]: FileTableEntry; }, renderer: ViewDetailsRenderer, companyTeamOwnerId: string): JSX.Element {\r\n const startContext = \"standard_page_sds\";\r\n return (\r\n
\r\n {this.renderSdsSections()}\r\n {this.renderViewDetails(coreData, renderer, startContext)}\r\n
\r\n );\r\n }\r\n}\r\n\r\nclass DetailDataSection_Reports extends SharedMaterialDetailDataSection {\r\n constructor(localizer: IStringLocalizer) {\r\n super(\"Reports\", localizer.localizeString(\"Reports\"), localizer);\r\n }\r\n\r\n hasData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData): boolean {\r\n return null !== restrictedData.reports && restrictedData.reports.length > 0;\r\n }\r\n\r\n render(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData,\r\n fileTable: { [fileId: string]: FileTableEntry; }, renderer: ViewDetailsRenderer, companyTeamOwnerId: string): JSX.Element {\r\n return (\r\n
\r\n {restrictedData.reports.map((report, index) => (\r\n SharedMaterialDetailDataSection.renderDocument(report.fileId, index, fileTable, coreData.implementationInventoryId, undefined, undefined, undefined, true)\r\n ))}\r\n
\r\n );\r\n }\r\n}\r\n\r\nclass DetailDataSection_SoldItems extends SharedMaterialDetailDataSection {\r\n private _selectedSoldItemId: string | null;\r\n\r\n constructor(localizer: IStringLocalizer) {\r\n super(\"SoldItems\", localizer.localizeString(\"Sold Items\"), localizer);\r\n this._selectedSoldItemId = null;\r\n }\r\n\r\n hasData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData): boolean {\r\n return null !== restrictedData.soldItems && restrictedData.soldItems.length > 0;\r\n }\r\n\r\n render(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData,\r\n fileTable: { [fileId: string]: FileTableEntry; }, renderer: ViewDetailsRenderer, companyTeamOwnerId: string): JSX.Element {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
{this.localizeString(\"Brand\")}
\r\n
{this.localizeString(\"Name\")}
\r\n
{this.localizeString(\"SKU\")}
\r\n
{this.localizeString(\"Certifications\")}
\r\n
\r\n {restrictedData.soldItems!.orderBy(s => s.data.manufacturerBrand).map((soldItem, index) => (\r\n
\r\n
\r\n {soldItem.data.photoFileId && }\r\n
\r\n
\r\n {soldItem.data.manufacturerBrand}\r\n
\r\n
\r\n {soldItem.data.name}\r\n
\r\n
\r\n {soldItem.data.sku}\r\n
\r\n
\r\n {soldItem.certifications.map((c, index2) =>

{CertificationRendererManager.getFriendlyNameForCertificationType(c.type, this.localizer)} - {c.certificationExternalId} - {this.getCertExpirationDateLocalizedString(c.expirationDate)}

)}\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nclass DetailDataSection_Certifications extends SharedMaterialDetailDataSection {\r\n constructor(localizer: IStringLocalizer) {\r\n super(\"PassportCertifications\", localizer.localizeString(\"Certifications\"), localizer);\r\n }\r\n\r\n private getSoldItemCertificates(restrictedData: Models.SharedMaterialDetailRestrictedData) {\r\n return restrictedData.soldItems?.selectMany(s => s.certifications) ?? [];\r\n }\r\n\r\n hasCertificationData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData): boolean {\r\n return (null !== restrictedData.certifications && (restrictedData.certifications.length > 0))\r\n }\r\n\r\n hasData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData): boolean {\r\n return this.hasCertificationData(coreData, restrictedData) || (null !== restrictedData.soldItems && (restrictedData.soldItems.length > 0));\r\n }\r\n\r\n private getCertificationUrl(url: string) {\r\n return {url}\r\n }\r\n\r\n render(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData,\r\n fileTable: { [fileId: string]: FileTableEntry; }, renderer: ViewDetailsRenderer, companyTeamOwnerId: string): JSX.Element {\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
{this.localizeString(\"Type\")}
\r\n
{this.localizeString(\"URL\")}
\r\n
{this.localizeString(\"Certification ID\")}
\r\n
{this.localizeString(\"Expiration Date\")}
\r\n
\r\n {this.hasCertificationData(coreData, restrictedData) && restrictedData.certifications!.map((c, index) => (\r\n
\r\n
\r\n {CertificationRendererManager.getFriendlyNameForCertificationType(c.type, this.localizer)}\r\n
\r\n
\r\n {this.getCertificationUrl(c.metadata.url)}\r\n
\r\n
\r\n {c.certificationExternalId}\r\n
\r\n
\r\n {c.expirationDate === null ? this.localizer.localizeString(\"None\") : new Date(c.expirationDate).toLocaleDateString()}\r\n
\r\n
\r\n ))}\r\n {this.getSoldItemCertificates(restrictedData).map((c, index) => (\r\n
\r\n
\r\n {CertificationRendererManager.getFriendlyNameForCertificationType(c.type, this.localizer)}\r\n
\r\n
\r\n {this.getCertificationUrl(c.metadata.url)}\r\n
\r\n
\r\n {c.certificationExternalId}\r\n
\r\n
\r\n {this.getCertExpirationDateLocalizedString(c.expirationDate)}\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nclass DetailDataSection_VocData extends SharedMaterialDetailDataSection {\r\n constructor(localizer: IStringLocalizer) {\r\n super(\"VocData\", localizer.localizeString(\"VOC\"), localizer);\r\n }\r\n\r\n hasData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData): boolean {\r\n return restrictedData.vocData !== null;\r\n }\r\n\r\n render(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData,\r\n fileTable: { [fileId: string]: FileTableEntry; }, renderer: ViewDetailsRenderer, companyTeamOwnerId: string): JSX.Element {\r\n\r\n return (\r\n
\r\n {restrictedData.vocData!.transparency != null &&\r\n
\r\n
{this.localizeString(\"Transparency\")}
\r\n
\r\n
{this.localizeString(\"VOC Testing\")}: {this.renderQuestionMarkIfStringEmpty(restrictedData.vocData!.transparency.testingTypes.map(t => Models.getFriendlyNameForVocTestingType(this.localizer, t)).join(\", \"))}
\r\n
{this.localizeString(\"VOC Content\")}: {this.renderQuestionMarkIfStringEmpty(restrictedData.vocData!.transparency.vocContent)}
\r\n {this.renderViewDetails(coreData, renderer, \"\", \"voc\", \"View VOC Details\")}\r\n
\r\n
}\r\n {restrictedData.vocData!.assessmentCommitmentOptimization != null &&\r\n
\r\n
{this.localizeString(\"Assessment, Commitment, & Optimizations\")}
\r\n
\r\n {this.renderViewDetails(coreData, renderer, \"\", \"voc\", \"View in VOC Details\")}\r\n
\r\n
}\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nclass DetailDataSection_InstructionsData extends SharedMaterialDetailDataSection {\r\n constructor(localizer: IStringLocalizer) {\r\n super(\"DetailDataSection_InstructionsData\", localizer.localizeString(\"Instructions\"), localizer);\r\n }\r\n\r\n hasData(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData): boolean {\r\n return restrictedData.instructions !== null;\r\n }\r\n\r\n private getModelsFromMatrix = (instructions: Models.SharedMaterialInstructions) => {\r\n const ret: { name: string, value: string }[] = [];\r\n\r\n // Assumes there are 2 columns.\r\n for (let i = 0; i < instructions.specifications!.specifications.length; ++i) {\r\n const name = instructions.specifications!.specifications[i][0];\r\n const value = instructions.specifications!.specifications[i][1];\r\n\r\n if (name.trim() === \"\" || value.trim() === \"\") {\r\n continue;\r\n }\r\n\r\n ret.push({ name: name, value: value });\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n private getHeaderRow(): TableColumn<{ name: string, value: string }>[] {\r\n return [\r\n {\r\n value: this.localizeString(\"Name\"),\r\n isSortable: true,\r\n getSortableValue: (model: { name: string, value: string }) => model.name,\r\n\r\n },\r\n {\r\n value: this.localizeString(\"Value\"),\r\n }\r\n ]\r\n }\r\n\r\n private getRowForTable = (model: { name: string, value: string }, rowIndex: number): TableRow => {\r\n return {\r\n cols: [\r\n model.name,\r\n model.value\r\n ]\r\n }\r\n }\r\n\r\n private getAllDocumentFileIds(restrictedData: Models.SharedMaterialDetailRestrictedData) {\r\n const ret: string[] = [];\r\n\r\n if (restrictedData.instructions!.installation != null) {\r\n ret.unshift(...restrictedData.instructions!.installation.documentFileIds);\r\n }\r\n\r\n if (restrictedData.instructions!.usePhase != null) {\r\n ret.unshift(...restrictedData.instructions!.usePhase.documentFileIds);\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n render(coreData: Models.SharedMaterialCoreData, restrictedData: Models.SharedMaterialDetailRestrictedData,\r\n fileTable: { [fileId: string]: FileTableEntry; }, renderer: ViewDetailsRenderer, companyTeamOwnerId: string): JSX.Element {\r\n\r\n return (\r\n
\r\n {restrictedData.instructions!.installation != null &&\r\n
\r\n
{this.localizeString(\"Installation\")}
\r\n
\r\n
{this.localizeString(\"Notes\")}: {this.renderQuestionMarkIfStringEmpty(restrictedData.instructions!.installation.notes)}
\r\n
\r\n
}\r\n {restrictedData.instructions!.usePhase != null &&\r\n
\r\n
{this.localizeString(\"Use Phase\")}
\r\n
\r\n
{this.localizeString(\"Life Expectancy\")}: {this.renderQuestionMarkIfStringEmpty(restrictedData.instructions!.usePhase.lifeExpectancy)}
\r\n
{this.localizeString(\"Warranty Notes\")}: {this.renderQuestionMarkIfStringEmpty(restrictedData.instructions!.usePhase.warrantyNotes)}
\r\n
\r\n
}\r\n {restrictedData.instructions!.specifications! !== null &&\r\n
\r\n
{this.localizeString(\"Specifications\")}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
}\r\n {this.getAllDocumentFileIds(restrictedData).map((fileId, index) => SharedMaterialDetailDataSection.renderDocument(fileId, index, fileTable, coreData.implementationInventoryId))}\r\n {this.renderViewDetails(coreData, renderer, \"\", \"instructions\")}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport function defineDetailSections(localizer: IStringLocalizer, dynamicRegulationTable: Readonly<{ [regulationId: string]: DynamicRegulation }>): SharedMaterialDetailDataSection[] {\r\n return [\r\n new DetailDataSection_Ingredients(localizer),\r\n new DetailDataSection_Compliance(localizer, dynamicRegulationTable),\r\n new DetailDataSection_SafetyDataSheet(localizer),\r\n new DetailDataSection_Sustainability(localizer),\r\n new DetailDataSection_Circularity(localizer),\r\n new DetailDataSection_Documents(localizer),\r\n new DetailDataSection_Reports(localizer),\r\n new DetailDataSection_SoldItems(localizer),\r\n new DetailDataSection_Certifications(localizer),\r\n new DetailDataSection_VocData(localizer),\r\n new DetailDataSection_InstructionsData(localizer)\r\n ];\r\n}\r\n","import { DynamicRegulation } from \"./Compliance/DynamicRegulation\";\r\n\r\nexport interface UserCapabilities {\r\n apiAccessEnabled: boolean;\r\n auditLoggingEnabled: boolean;\r\n bomPermissionsEnabled: boolean;\r\n bulkEditSummaryDataEnabled: boolean;\r\n canCompareInventories: boolean;\r\n canExportOverallRating: boolean;\r\n canExportStandardReports: boolean;\r\n canPublishConsultantInventoryToClients: boolean;\r\n consultantAccountEnabled: boolean;\r\n consultantAccountNumberOfClients: boolean;\r\n declareAdministrationEnabled: boolean;\r\n enterpriseSurveysEnabled: boolean;\r\n exportDataEnabled: boolean;\r\n fileQuotaInMb: number;\r\n googleFeaturesEnabled: boolean;\r\n hniEdsReportEnabled: boolean;\r\n ilfiMemberEnabled: boolean;\r\n lifecycleStatusEnabled: boolean;\r\n maxLibraryInventories: number;\r\n maxSdsImportsPerYear: number;\r\n maxSuppliers: number;\r\n maxSurveyResponsesPerYear: number;\r\n mechoReportEnabled: boolean;\r\n myCustomersEnabled: boolean;\r\n myGreenLabBackendEnabled: boolean;\r\n newsEnabled: boolean;\r\n regulationsEnabled: boolean;\r\n obtainmentReportsEnabled: boolean;\r\n numTeamMembers: number;\r\n portfolioEnabled: boolean;\r\n privateListsEnabled: boolean;\r\n productComplianceEnabled: boolean;\r\n scipSubmissionEnabled: boolean;\r\n searchSdsLibraryEnabled: boolean;\r\n sendSurveysInBulkEnabled: boolean;\r\n submissionPlatformPartnerEnabled: boolean;\r\n substanceDatabaseChangeNotificationsEnabled: boolean;\r\n tasksEnabled: boolean;\r\n teamEnabled: boolean;\r\n teknionEdsReportEnabled: boolean;\r\n testReportsEnabled: boolean;\r\n versionControlEnabled: boolean;\r\n obtainmentServicesEnabled: boolean;\r\n autoAcceptSurveyEnabled: boolean;\r\n exportToOfflineSurveyEnabled: boolean;\r\n}\r\n\r\nexport interface AvailableTeam {\r\n teamOwnerId: string;\r\n isActive: boolean;\r\n teamName: string;\r\n}\r\n\r\nexport interface SubscriptionProduct {\r\n productName: string;\r\n priceName: string;\r\n stripeProductId: string;\r\n stripePriceId: string;\r\n quantity: number;\r\n}\r\n\r\nexport interface Subscription {\r\n baseSubscriptionProduct: SubscriptionProduct;\r\n}\r\n\r\nexport enum TeamRole {\r\n Owner = \"Owner\",\r\n Editor = \"Editor\",\r\n Viewer = \"Viewer\",\r\n IlfiPartner = \"IlfiPartner\",\r\n Admin = \"Admin\",\r\n Marketing = \"Marketing\"\r\n}\r\n\r\nexport interface ReportTypesAndRegulationsBundle {\r\n allowedReportTypesForUser: string[];\r\n dynRegsForUser: DynamicRegulation[];\r\n reportTypeToRegulations: { [reportType: string]: string[] };\r\n}\r\n\r\n// todo: long term, consolidate \"isEditor, isEditorOrMarketingRole\" to a method that just looks at role itself.\r\n\r\nexport interface UserContext {\r\n //subscriptionName: string;\r\n //shouldConnectIlfiMembership: boolean;\r\n //hasIncompleteResponses: boolean;\r\n //numIncompleteSetupItems: number;\r\n //inAppMode: boolean;\r\n //aspNetControllerName: string;\r\n //aspNetActionName: string;\r\n teamOwnerId: string;\r\n userId: string;\r\n emailAddress: string;\r\n fullName: string;\r\n cultureName: string; // ISO standard name, e.g. \"en\" or \"en-US\" or \"sp\"\r\n isEditor: boolean;\r\n isEditorOrMarketingRole: boolean;\r\n teamName: string;\r\n availableTeamsList: AvailableTeam[];\r\n userCapabilities: UserCapabilities;\r\n isToxnotAdminUser: boolean;\r\n isSubscriptionActive: boolean;\r\n subscription: Subscription;\r\n signUpDate: string | null; // ISO8601\r\n intercomUserHash: string;\r\n intercomIsDisabled: boolean;\r\n saintGobainLifeSciencesFeatureEnabled: boolean;\r\n reportTypesAndRegulations: ReportTypesAndRegulationsBundle;\r\n hasSurveyResponseNotifications: boolean;\r\n isFre: boolean;\r\n role: TeamRole;\r\n averyDennisonFeaturesEnabled: boolean;\r\n}\r\n","import React from \"react\";\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { ApplicationState } from \"../../store\";\r\nimport { ToxnotComponent, ToxnotComponentProperties } from \"../core/BaseApplicationComponents/ToxnotComponent\";\r\nimport * as EngageStateController from \"../../store/StateControllers/Engagement/EngagementStateController\";\r\nimport { SharedMaterialCircularityData, SharedMaterialCoreData, SharedMaterialEolOption, SharedMaterialEolOptionType, SharedMaterialEolOption_DesignedForDisassembly, SharedMaterialEolOption_DesignedForMaintenanceAndRepair, SharedMaterialEolOption_DesignedForReuse, SharedMaterialEolOption_Other, SharedMaterialEolOption_Recycling, SharedMaterialEolOption_TakeBackProgram } from \"../../store/Models/SharedMaterials/DataModel\";\r\nimport { SharedMaterialDetailDataSection } from \"../SharedMaterials/Detail/SharedMaterialDetailDataSubsection\";\r\nimport { FileTableEntry } from \"../../store/Models/Documents/DocumentModels\";\r\nimport { ToxnotReactComponentPaths } from \"../core/ToxnotReactComponentPaths\";\r\n\r\nimport \"./styles.css\"\r\n\r\ninterface ReduxConnectedState {\r\n engageState: EngageStateController.EngagementState;\r\n}\r\n\r\ntype EngageComponentProps =\r\n ReduxConnectedState &\r\n ToxnotComponentProperties &\r\n typeof EngageStateController.actionCreators &\r\n RouteComponentProps<{ productName: string }>\r\n\r\nclass Engagement extends ToxnotComponent {\r\n public componentDidMount() {\r\n const params = this.props.match.params;\r\n this.props.loadEngageBundleAsync(params.productName);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private isLoading() {\r\n return this.props.engageState.isLoading;\r\n }\r\n\r\n public render() {\r\n if (this.isLoading()) {\r\n return (
{\"Loading...\"}
);\r\n }\r\n\r\n if (null === this.props.engageState.bundle) {\r\n return (
{\"Sorry, there is nothing here.\"}
);\r\n }\r\n\r\n const bundle = this.props.engageState.bundle!;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Our long-term commitment to a sustainable future

\r\n

ASSA ABLOY Opening Solutions is the global leader in door opening solutions dedicated to satisfying end-user needs for security, safety and convenience. As an extension to providing quality products, ASSA ABLOY is committed to mindful design, manufacturing, and disposal processes that protect the planet’s natural resources. This program provides customers with environmentally friendly options for recycling, reusing, or disposing of ASSA ABLOY Opening Solutions products that have reached the end of their life cycle and are beyond their warranty period.

\r\n

{bundle.coreData.materialName}

\r\n

SKU {bundle.coreData.sku}

\r\n

\r\n \r\n

\r\n
\r\n
\r\n {(bundle.coreData.materialPhotoFileId !== null) && }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {null != bundle.detailBundle.detailData.restrictedData!.circularity &&\r\n this.renderCircularity(bundle.detailBundle.detailData.restrictedData!.circularity!, bundle.coreData, bundle.detailBundle.fileTable)}\r\n \r\n
\r\n Powered by\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{this.localizeString(\"Connect with ASSA ABLOY\")}

\r\n
\r\n
\r\n
\r\n
\r\n Thank you for your interest in and commitment to optimized products. For additional information or to speak with an ASSA ABLOY subject matter expert, please complete the form below.\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {this.localizeString(\"The Name, Contact Email, Product Types and the Location fields cannot be empty.\")}\r\n
\r\n
\r\n {this.localizeString(\"Please enter a valid email address.\")}\r\n
\r\n
\r\n {this.localizeString(\"Your information was sent to ASSA ABLOY.\")}\r\n
\r\n
\r\n {this.localizeString(\"Sorry, there was a problem accessing the service.\")}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private renderCircularity(data: SharedMaterialCircularityData, coreData: SharedMaterialCoreData, fileTable: { [fileId: string]: FileTableEntry; }) {\r\n const bundle = this.props.engageState.bundle!;\r\n return (\r\n \r\n {data.eolOptions.map(option =>\r\n
\r\n
\r\n
\r\n {this.resolveEolName(option.type)}\r\n
\r\n
\r\n {option.description}\r\n
\r\n
\r\n
\r\n {(option.supportingLink.length > 0) &&

this.clickEolOptionSupportingLink(option)}>{option.supportingLink}

}\r\n {option.attachmentFileIds.map((fileId, index) =>\r\n SharedMaterialDetailDataSection.renderDocument(fileId, index, fileTable, coreData.implementationInventoryId, \"engagement-document-download\", { optionType: option.type, materialId: bundle.coreData.sharedMaterialId, productName: bundle.coreData.materialName, ownerId: bundle.coreData.ownerId }, this.props.appServices)\r\n )}\r\n {this.resolveEolOptionRenderer(option)}\r\n
\r\n
)}\r\n
\r\n );\r\n }\r\n\r\n private clickEolOptionSupportingLink(option: SharedMaterialEolOption) {\r\n const bundle = this.props.engageState.bundle!;\r\n this.props.appServices.trackEvent(\"engagement-eol-option-supporting-link-click\", { optionType: option.type, materialId: bundle.coreData.sharedMaterialId, productName: bundle.coreData.materialName, ownerId: bundle.coreData.ownerId });\r\n window.open(option.supportingLink);\r\n }\r\n\r\n private resolveEolName(type: SharedMaterialEolOptionType): string {\r\n switch (type) {\r\n case SharedMaterialEolOptionType.DesignedForMaintenanceAndRepair: return \"Designed for Maintenance and Repair\";\r\n case SharedMaterialEolOptionType.DesignedForDisassembly: return \"Designed for Disassembly\";\r\n case SharedMaterialEolOptionType.DesignedForReUse: return \"Designed for Re-use\";\r\n case SharedMaterialEolOptionType.TakeBackProgram: return \"Take Back Program\";\r\n case SharedMaterialEolOptionType.Recycling: return \"Recycling Instructions\";\r\n case SharedMaterialEolOptionType.Other: return \"Other\";\r\n default: return \"?\";\r\n }\r\n }\r\n\r\n private resolveEolOptionRenderer(option: SharedMaterialEolOption): JSX.Element {\r\n switch (option.type) {\r\n case SharedMaterialEolOptionType.DesignedForMaintenanceAndRepair: return this.renderEolOption_DesignedForMaintenanceAndRepair(option);\r\n case SharedMaterialEolOptionType.DesignedForDisassembly: return this.renderEolOption_DesignedForDisassembly(option);\r\n case SharedMaterialEolOptionType.DesignedForReUse: return this.renderEolOption_DesignedForReUse(option);\r\n case SharedMaterialEolOptionType.TakeBackProgram: return this.renderEolOption_TakeBackProgram(option);\r\n case SharedMaterialEolOptionType.Recycling: return this.renderEolOption_Recycling(option);\r\n case SharedMaterialEolOptionType.Other: return this.renderEolOption_Other(option);\r\n }\r\n }\r\n\r\n private renderEolOption_DesignedForMaintenanceAndRepair(rawOption: SharedMaterialEolOption) {\r\n var option = rawOption as SharedMaterialEolOption_DesignedForMaintenanceAndRepair;\r\n return (\r\n
\r\n
    \r\n {option.maintainedByUntrained &&
  • {\"The product can be maintained & repaired by untrained personnel at the location of the product use\"}
  • }\r\n {option.maintainedByTrained &&
  • {\"The product can be maintained & repaired by trained personnel at the location of the product use\"}
  • }\r\n {option.maintenanceNotRequired &&
  • {\"The product requires no maintenance or repair if the intended use of the product is followed\"}
  • }\r\n {option.maintenanceNotPossible &&
  • {\"Maintenance or repair of the product during its use period is not possible due to the design of the product\"}
  • }\r\n {option.consumableReplacedByUntrained && (
  • {\"Consumables are easily replaced by untrained personnel\"}
  • )}\r\n {option.sparePartsAvailable && (
  • {\"Spare parts are made available by the manufacturer or an authorized representative during the functional use period of the product\"}
  • )}\r\n
\r\n
\r\n );\r\n }\r\n\r\n private renderEolOption_DesignedForDisassembly(rawOption: SharedMaterialEolOption) {\r\n var option = rawOption as SharedMaterialEolOption_DesignedForDisassembly;\r\n return (\r\n
\r\n

\r\n {\"Disassembly Instructions\"}:\r\n

\r\n {option.instructions.split('\\n').map((s, index) => (\r\n

\r\n {s.trim()}\r\n

\r\n ))\r\n }\r\n
\r\n );\r\n }\r\n\r\n private renderEolOption_DesignedForReUse(rawOption: SharedMaterialEolOption) {\r\n var option = rawOption as SharedMaterialEolOption_DesignedForReuse;\r\n var hasOptionGroup1 = option.minimalModification || option.ceMark || option.refurbishment || option.remanufacturing;\r\n var hasOptionGroup2 = option.dedicatedCollectionSystem || option.emitted || option.industrialCascading ||\r\n option.industrialComposter || option.homeComposter || option.biodegestion || option.incineration;\r\n return (\r\n \r\n
\r\n
    \r\n {option.minimalModification &&
  • {\"The product is designed for re-use as-is or with minimal modification\"}
  • }\r\n {option.ceMark &&
  • {\"The product has the CE mark\"}
  • }\r\n {option.refurbishment &&
  • {\"The product is designed for refurbishment\"}
  • }\r\n {option.remanufacturing &&
  • {\"The product is designed for remanufacturing\"}
  • }\r\n {(hasOptionGroup1 && hasOptionGroup2) &&

    }\r\n {option.dedicatedCollectionSystem &&

  • {\"The manufacturer/ industry association has a dedicated collection system in place to gather and deliver products for recycling\"}
  • }\r\n {option.emitted &&
  • {\"The portion of the product known to be emitted into the environment during use is designed for that purpose\"}
  • }\r\n {option.industrialCascading &&
  • {\"The product is designed for industrial cascading in the biosphere\"}
  • }\r\n {option.industrialComposter &&
  • {\"The product is designed for composting in an industrial facility\"}
  • }\r\n {option.homeComposter &&
  • {\"The product is designed for composting in a home composter\"}
  • }\r\n {option.biodegestion &&
  • {\"The product is designed for clean biodigestion\"}
  • }\r\n {option.incineration &&
  • {\"The product is designed for clean incineration/pyrolysis\"}
  • }\r\n
\r\n
\r\n
\r\n

\r\n {\"What % of the product is designed for recycling at the same level of quality. The remainder of the materials is foreseen by the manufacturer to be recycled at a lower quality than the original content\"}:\r\n

\r\n

\r\n {option.recyclingPercent}\r\n

\r\n
\r\n
\r\n

\r\n {\"What % of the product content is anticipated to become leakage during the use phase due to for example wear & tear, oxidation, erosion, etc\"}:\r\n

\r\n

\r\n {option.leakagePercent}\r\n

\r\n
\r\n
\r\n );\r\n }\r\n\r\n private renderEolOption_TakeBackProgram(rawOption: SharedMaterialEolOption) {\r\n var option = rawOption as SharedMaterialEolOption_TakeBackProgram;\r\n return (\r\n
\r\n {option.instructions}\r\n
\r\n );\r\n }\r\n\r\n private renderEolOption_Recycling(rawOption: SharedMaterialEolOption) {\r\n var option = rawOption as SharedMaterialEolOption_Recycling;\r\n return (\r\n
\r\n {option.instructions}\r\n
\r\n );\r\n }\r\n\r\n private renderEolOption_Other(rawOption: SharedMaterialEolOption) {\r\n var option = rawOption as SharedMaterialEolOption_Other\r\n return (\r\n
\r\n {\"Name\"}: {option.name}\r\n
\r\n );\r\n }\r\n\r\n private openModal() {\r\n $(\"#connect-form-body\").show();\r\n $(\"#connect-form-success\").hide();\r\n $(\"#connect-form-error\").hide();\r\n $(\"#connect-form-invalid-email\").hide();\r\n $(\"#connect-form-empty-fields\").hide();\r\n $(\"#connect-form-missing-location\").hide();\r\n $(\"#connect-form-missing-product-type\").hide();\r\n $(\"#send-email-button\").show();\r\n $(\"#close-connect-form-button\").hide();\r\n $(\"#cancel-connect-form-button\").show();\r\n $(\"#connect-form-modal\").modal(\"show\");\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n // Selects which state properties are merged into the component's props\r\n (state: ApplicationState) => ({\r\n engageState: state.engageState,\r\n appServices: state.appServices\r\n }),\r\n EngageStateController.actionCreators // Selects which action creators are merged into the component's props\r\n)(withRouter(Engagement) as any);\r\n","import { AppServices } from \"../../../AppServices\";\r\nimport { TeamRole, UserCapabilities } from \"../../../store/Models/UserContext\";\r\nimport { ToxnotComponent } from \"./ToxnotComponent\";\r\nimport { ToxnotComponentProperties } from \"./ToxnotComponent\";\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Components that need the user to be signed in to use must inherit from this abstract class.\r\n// Concrete subclass must also override renderConcreteComponent to display their contents. \r\n// The normal render method is used to check if the user is signed in, returning null \r\n// they are not.\r\n//\r\nexport abstract class ToxnotSignInRequiredComponent

extends ToxnotComponent {\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n if (this.props.appServices.userContext === null) {\r\n AppServices.redirectToSignInPage();\r\n return null;\r\n }\r\n\r\n if (this.getDisallowedRoles().includes(this.props.appServices.userContext.role)) {\r\n // do something to show that they aren't allowed to access this page.\r\n AppServices.redirectToGetStarted();\r\n return null;\r\n }\r\n \r\n return this.renderConcreteComponent();\r\n }\r\n\r\n // ===============================================================================\r\n \r\n protected abstract getDisallowedRoles(): TeamRole[];\r\n \r\n // ===============================================================================\r\n\r\n protected getUserContextForSignedInUser() {\r\n if (this.props.appServices.userContext === null) {\r\n throw new Error(\"User Context was null. You can only get the user context for signed in users\");\r\n }\r\n\r\n return this.props.appServices.userContext;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected getUserCapabilities(): UserCapabilities {\r\n if (this.props.appServices.userContext === null) {\r\n throw new Error(\"User Context was null. You can only get the user context for signed in users\");\r\n }\r\n\r\n return this.props.appServices.userContext.userCapabilities;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected abstract renderConcreteComponent(): JSX.Element | null;\r\n}\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { ToxnotComponentProperties } from './core/BaseApplicationComponents/ToxnotComponent';\r\nimport { ApplicationState } from '../store';\r\nimport { AppServices, TowState } from '../AppServices';\r\nimport * as LoginStateController from '../store/StateControllers/LoginStateController';\r\nimport { ToxnotReactComponentPaths } from './core/ToxnotReactComponentPaths';\r\nimport { ToxnotSignInRequiredComponent } from './core/BaseApplicationComponents/ToxnotSignInRequiredComponent';\r\n\r\n// TODO: MJM SM2 merge with WorkflowType in TaskOrientedWorkflowFactory.ts \r\nenum WorkflowType {\r\n ImportData = \"ImportData\",\r\n ImportDataToExistingInventoryProduct = \"ImportDataToExistingInventoryProduct\",\r\n ImportDataToExistingInventoryMaterial = \"ImportDataToExistingInventoryMaterial\",\r\n Declare = \"Declare\",\r\n DeclareRenew = \"DeclareRenew\",\r\n HPD = \"HPD\",\r\n ComplianceReport = \"ComplianceReport\",\r\n PublishSM = \"PublishSM\",\r\n PublishAveryDennisonCompliance = \"PublishAveryDennisonCompliance\"\r\n}\r\n\r\ninterface TempPublishTowSimpleContext {\r\n \"tailorSharedMaterial\": string;\r\n}\r\n\r\nexport interface TempPublishTowState {\r\n activeStep: string,\r\n singleResultInventoryId: string;\r\n multiResultInventoryIds: string[];\r\n importMode: string;\r\n importId: string;\r\n inception: string;\r\n publicInventoryId: string;\r\n publicInventoryDataId: string;\r\n implementationInventoryId: string;\r\n sourceInventoryTargetVersionId: string;\r\n sharedMaterialId: string;\r\n context: TempPublishTowSimpleContext;\r\n previewStartId: string | null;\r\n previewStartContext: string | null;\r\n accessEmails: string;\r\n}\r\n\r\ntype TowProps =\r\n ToxnotComponentProperties &\r\n typeof LoginStateController.actionCreators;\r\n\r\nclass TOW extends ToxnotSignInRequiredComponent {\r\n // ===============================================================================\r\n\r\n protected override getDisallowedRoles() {\r\n return [];\r\n }\r\n\r\n // TODO: MJM SM2 merge with withTaskOrientedWorkflowFactory.ts\r\n private readonly localizedTOWNames: { [key: string]: string } = {\r\n [WorkflowType.ImportData]: this.localizeString(\"Import Data\"),\r\n [WorkflowType.ImportDataToExistingInventoryProduct]: this.localizeString(\"Import Data\"),\r\n [WorkflowType.ImportDataToExistingInventoryMaterial]: this.localizeString(\"Import Data\"),\r\n [WorkflowType.Declare]: this.localizeString(\"Submit Declare Label\"),\r\n [WorkflowType.DeclareRenew]: this.localizeString(\"Renew Declare Label\"),\r\n [WorkflowType.HPD]: this.localizeString(\"Create HPD\"),\r\n [WorkflowType.ComplianceReport]: this.localizeString(\"Create Compliance Report\"),\r\n [WorkflowType.PublishSM]: this.localizeString(\"Publish Passport\"),\r\n [WorkflowType.PublishAveryDennisonCompliance]: this.localizeString(\"Publish Compliance Letter\")\r\n };\r\n\r\n protected renderConcreteComponent() {\r\n const towState = this.props.appServices.towState;\r\n if (null === towState) {\r\n return (\r\n

\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {this.localizedTOWNames[towState.type]}\r\n
\r\n
\r\n {this.isSpecialStep(towState) ? this.renderActive() : this.renderResume()}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private isSpecialStep(towState: TowState) {\r\n if (!location.href.includes(ToxnotReactComponentPaths.SharedMaterialPublishPreview) || towState.type !== WorkflowType.PublishSM) {\r\n return false;\r\n }\r\n\r\n const state = JSON.parse(towState.jsonState) as TempPublishTowState;\r\n return state.activeStep === \"PreviewShallow\";\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderResume() {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n // =============================================================================== \r\n\r\n private renderInactiveStep(localizedName: string, stepKey: string, activeRight: boolean, afterActiveStep: boolean, lastStep: boolean) {\r\n return (\r\n
\r\n
\r\n {localizedName}\r\n
\r\n {lastStep ?\r\n
:\r\n
\r\n \r\n
}\r\n
\r\n );\r\n }\r\n\r\n private renderActiveStep() {\r\n return (
Digital Product Passport Preview
);\r\n }\r\n\r\n private renderActive() {\r\n const towState = this.props.appServices.towState!;\r\n const state = JSON.parse(towState.jsonState) as TempPublishTowState;\r\n\r\n return (\r\n \r\n \r\n {state.inception === \"LibrarySelectSingle\" && this.renderInactiveStep(\"Select Products/Materials\", \"LibrarySingleSelect\", false, false, false)}\r\n {this.renderInactiveStep(this.localizeString(\"Review\"), \"ReviewBOM\", false, false, false)}\r\n {this.renderInactiveStep(this.localizeString(\"Customize\"), \"Tailor\", true, false, false)}\r\n {this.renderActiveStep()}\r\n {this.renderInactiveStep(this.localizeString(\"Passport Preview\"), \"PreviewDeep\", false, true, false)}\r\n {this.renderInactiveStep(this.localizeString(\"Publish\"), \"Publish\", false, true, true)}\r\n \r\n \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private resume_onClick = (ev: React.MouseEvent) => {\r\n this.props.towResume();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private jumpToStep(step: string) {\r\n const towState = this.props.appServices.towState!;\r\n const state = JSON.parse(towState.jsonState) as TempPublishTowState;\r\n state.activeStep = step;\r\n state.previewStartId = null;\r\n state.previewStartContext = null;\r\n towState.jsonState = JSON.stringify(state);\r\n this.props.towTaskUpdate(towState);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private previousStep_onClick = (ev: React.MouseEvent) => {\r\n this.jumpToStep(\"Tailor\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private nextStep_onClick = (ev: React.MouseEvent) => {\r\n this.jumpToStep(\"PreviewDeep\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private jumpToStep_onClick = (ev: React.MouseEvent) => {\r\n this.jumpToStep(ev.currentTarget.getAttribute(\"data-key\")!);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private close_onClick = (ev: React.MouseEvent) => {\r\n $(\"#tow-decision-modal\").modal(\"show\");\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ appServices: state.appServices }),\r\n LoginStateController.actionCreators\r\n)(TOW as any);\r\n","import * as React from 'react';\r\nimport \"./styles.css\";\r\n\r\n//\r\n// An animated spinning ring that indicates that an operation is in progress.\r\n//\r\n\r\nexport enum LoadingSpinnerSize {\r\n Small,\r\n Medium,\r\n Large\r\n}\r\n\r\nexport interface LoadingSpinnerProps {\r\n size?: LoadingSpinnerSize;\r\n enabled?: boolean;\r\n}\r\n\r\nexport class LoadingSpinner extends React.PureComponent {\r\n public constructor(props: LoadingSpinnerProps) {\r\n super(props);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n const size = this.props.size ?? LoadingSpinnerSize.Small;\r\n const enabled = this.props.enabled ?? true;\r\n\r\n let sizeClass = \"small\";\r\n\r\n switch (size) {\r\n case LoadingSpinnerSize.Small:\r\n sizeClass = \"small\";\r\n break;\r\n case LoadingSpinnerSize.Medium:\r\n sizeClass = \"medium\";\r\n break;\r\n case LoadingSpinnerSize.Large:\r\n sizeClass = \"large\";\r\n break;\r\n }\r\n\r\n if (!enabled) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React from \"react\";\r\n\r\nconst premiumImage = \"/images/nav/gray/workspace-premium.svg\";\r\ninterface UpsellBadgeProps {\r\n navigateToUpgradePage?: boolean;\r\n}\r\n\r\nabstract class UpsellBadge

extends React.PureComponent { \r\n\r\n protected abstract getBadge(): JSX.Element;\r\n\r\n public render() {\r\n return (\r\n this.upsellBadgeNavigate()} className=\"upsell-badge\">{this.getBadge()}\r\n );\r\n }\r\n\r\n private upsellBadgeNavigate = () => {\r\n if (!this.props.navigateToUpgradePage) {\r\n return;\r\n }\r\n\r\n window.open(\"/Account/Upgrade\");\r\n }\r\n}\r\n\r\nexport class UpsellProBadge extends UpsellBadge {\r\n protected getBadge(): JSX.Element {\r\n return \"Pro\";\r\n }\r\n}\r\n\r\nexport class UpsellApiBadge extends UpsellBadge {\r\n protected getBadge(): JSX.Element {\r\n return \"API\";\r\n }\r\n}\r\n\r\nexport class UpsellScipBadge extends UpsellBadge {\r\n protected getBadge(): JSX.Element {\r\n return \"SCIP\";\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { ApplicationState } from '../store';\r\nimport { AvailableTeam, TeamRole, UserContext } from '../store/Models/UserContext';\r\nimport { ToxnotComponent, ToxnotComponentProperties } from './core/BaseApplicationComponents/ToxnotComponent';\r\n\r\nimport { ToxnotReactComponentPaths } from './core/ToxnotReactComponentPaths';\r\nimport TOW from './TOW';\r\nimport * as LoginStateController from '../store/StateControllers/LoginStateController';\r\n\r\nimport './Layout.css';\r\nimport { UpsellProBadge } from './core/Upsell';\r\n\r\ninterface NavMenuLinkProps {\r\n navItemClass: string;\r\n href: string;\r\n isActive: boolean;\r\n iconSrc: string;\r\n localizedText: string;\r\n lastNavItemInGroup: boolean;\r\n userRole: TeamRole;\r\n menuItem_onClick?: (e: React.MouseEvent) => void;\r\n hide?: boolean;\r\n isUpsell?: boolean;\r\n context?: string; // For legacy testing\r\n navGroupId?: string; // For legacy testing\r\n hiddenForRoles?: TeamRole[];\r\n isActiveParent?: boolean;\r\n isSideNavCollapsed?: boolean;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Base class for rendering a simple nav link\r\n */\r\nabstract class NavMenuLinkBase

extends React.PureComponent

{\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n if (this.props.hiddenForRoles !== undefined) {\r\n if (this.props.hiddenForRoles.some(role => role === this.props.userRole)) {\r\n return null;\r\n }\r\n }\r\n \r\n return (\r\n

  • \r\n {this.getInnerLinkContents()}\r\n
  • \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected abstract getInnerLinkContents(): JSX.Element;\r\n\r\n // ===============================================================================\r\n\r\n private getMarginBottomIfLastElement(lastItemInNavGroup: boolean): React.CSSProperties {\r\n return lastItemInNavGroup ? { marginBottom: 15 } : {};\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getLiStyles() {\r\n const liStyles: React.CSSProperties = this.getMarginBottomIfLastElement(this.props.lastNavItemInGroup);\r\n\r\n if (this.props.hide) {\r\n liStyles.display = \"none\";\r\n } else if (this.props.isActiveParent && !this.props.isSideNavCollapsed) {\r\n liStyles.display = \"list-item\";\r\n }\r\n\r\n return liStyles;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected renderNavMenuLinkIconAndContent(): JSX.Element {\r\n return (\r\n <>\r\n
    \r\n {this.props.iconSrc !== \"\" && }\r\n
    \r\n
    \r\n {this.props.localizedText}\r\n
    \r\n {this.props.isUpsell && }\r\n \r\n );\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Renders a simple nav menu link for navigation\r\n */\r\nclass NavMenuLink extends NavMenuLinkBase {\r\n\r\n // ===============================================================================\r\n\r\n protected getInnerLinkContents(isNavbarCollapsed: boolean = false) {\r\n const attributes: { [attribute: string]: string } = {};\r\n\r\n if (this.props.menuItem_onClick) {\r\n attributes[\"role\"] = \"button\";\r\n }\r\n else {\r\n attributes[\"href\"] = this.props.href;\r\n }\r\n\r\n const iconAndContent = this.renderNavMenuLinkIconAndContent();\r\n\r\n return (\r\n this.props.menuItem_onClick && this.props.menuItem_onClick(e)} data-context={this.props.context ? this.props.context : \"\"}>\r\n {iconAndContent}\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\ninterface NavMenuReactLinkProps extends NavMenuLinkProps {\r\n smallNav: boolean;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n * Renders a simple nav menu link for navigation. The link rendered is a React \r\n * and not a regular \r\n */\r\nclass NavMenuReactLink extends NavMenuLinkBase {\r\n\r\n // ===============================================================================\r\n\r\n protected getInnerLinkContents() {\r\n const iconAndContent = this.renderNavMenuLinkIconAndContent();\r\n\r\n return (\r\n this.link_click()}>\r\n {iconAndContent}\r\n \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private link_click = () => {\r\n if (this.props.smallNav) {\r\n $(\"#tn-app-small-navigation-container\").toggle();\r\n }\r\n }\r\n}\r\n\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// These are options that control the layout. An options object can\r\n// be specified as a Layout component property.\r\n//\r\n\r\nexport interface LayoutOptions {\r\n appBodyContentShouldTakeFullWidth?: boolean; // defaults to false\r\n pinAppContentToWindowHeight?: boolean; // defaults to false\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// These are properties on the Layout component that can be specified in JSX.\r\n// They aren't part of redux state.\r\n//\r\n\r\ninterface LayoutOwnProps {\r\n children: React.ReactNode | React.ReactNode[];\r\n options?: LayoutOptions;\r\n modalsRender?: () => JSX.Element;\r\n}\r\n\r\n// ===============================================================================\r\n\r\ntype LayoutProps =\r\n ToxnotComponentProperties &\r\n LayoutOwnProps &\r\n typeof LoginStateController.actionCreators;\r\n\r\ninterface LocalState {\r\n isSideNavCollapsed: boolean;\r\n}\r\n\r\nclass Layout extends ToxnotComponent {\r\n private readonly s_sideNavbarCollapsedCookieName = \"toxnot-side-navbar-collapsed\";\r\n\r\n public constructor(props: LayoutProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isSideNavCollapsed: this.isTruthyCookie(this.s_sideNavbarCollapsedCookieName)\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n $('[data-toggle=\"tooltip\"]').tooltip();\r\n //react events are not triggering the tooltip to be displayed\r\n $('.btn-expand-nav').on(\"hover\", e => $(e).tooltip('show'));\r\n $('.btn-collapse-nav').on(\"hover\", e => $(e).tooltip('show'));\r\n\r\n document.addEventListener(\"keydown\", (e) => this.navbarKeysEventListener(e, this.navbarCollapse));\r\n }\r\n \r\n // ===============================================================================\r\n\r\n private hasSubscription = () => this.props.appServices.userContext?.isSubscriptionActive ?? false;\r\n\r\n public render() {\r\n //\r\n // Fetch the layout options from the props and apply defaults to un-set options\r\n //\r\n\r\n const layoutOptionsToUse = { ...(this.props.options ?? {}) };\r\n\r\n layoutOptionsToUse.appBodyContentShouldTakeFullWidth ??= false;\r\n layoutOptionsToUse.pinAppContentToWindowHeight ??= false;\r\n\r\n const isLoggedIn = null !== this.props.appServices.userContext;\r\n \r\n //\r\n // Render the main layout\r\n //\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {isLoggedIn ? this.renderNavLayout(this.props.appServices.userContext!, true, false) : this.renderSignedOutNavLayout(true)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {isLoggedIn ? this.renderNavLayout(this.props.appServices.userContext!, false, this.state.isSideNavCollapsed) : this.renderSignedOutNavLayout(false)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {isLoggedIn &&
    \r\n \r\n
    }\r\n
    \r\n
    \r\n
    \r\n {this.props.children}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {isLoggedIn && this.renderTeamMenu(this.props.appServices.userContext!)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n

    Confirmation

    \r\n
    \r\n
    \r\n {this.localizeString(\"Are you sure you want to close this workflow?\")}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.props.modalsRender ? this.props.modalsRender() : null}\r\n
    \r\n \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private isExchangeNavMenuItemActive() {\r\n const path = window.location.pathname.toLowerCase();\r\n\r\n return path.startsWith(ToxnotReactComponentPaths.BaseSharedMaterialsPath.toLowerCase()) &&\r\n !this.pathMatches(ToxnotReactComponentPaths.CompanyPagesManager) &&\r\n !this.pathMatches(ToxnotReactComponentPaths.MyPassports) &&\r\n !path.includes(\"/start\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private isAnyExchangeNavMenuItemActive() {\r\n const path = window.location.pathname.toLowerCase();\r\n\r\n return (path.startsWith(ToxnotReactComponentPaths.BaseSharedMaterialsPath.toLowerCase()) ||\r\n this.pathMatches(ToxnotReactComponentPaths.CompanyPagesManager) ||\r\n this.pathMatches(ToxnotReactComponentPaths.MyPassports)) &&\r\n !path.includes(\"/start\");\r\n }\r\n \r\n // ===============================================================================\r\n\r\n public renderSignedOutNavLayout(smallNav: boolean) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderNavLayout(userContext: UserContext, smallNav: boolean, isSideNavCollapsed: boolean) {\r\n \r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public renderNormalSideBarAccountMenu(userContext: UserContext) {\r\n const showTeamName = userContext.userCapabilities.teamEnabled ||\r\n (userContext.availableTeamsList.length > 1);\r\n\r\n return (\r\n
  • \r\n \" + userContext.teamName : userContext.emailAddress} id=\"sidebar-account-menu-button\" role=\"button\" onClick={e => this.sidebarAccountMenuButton_click()}>\r\n
    \r\n \r\n
    \r\n
    \r\n {userContext.emailAddress}\r\n {showTeamName && (\r\n \r\n
    \r\n {userContext.teamName}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
  • \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public renderSmallSideBarAccountMenu() {\r\n return (\r\n
  • \r\n window.location.href = \"/Account/SignIn?logout=True\"}>\r\n
    \r\n
    {this.localizeString(\"Sign Out\")}
    \r\n
    \r\n
  • \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderSharedMaterialsNavMenuGroup(smallNav: boolean, role: TeamRole, isSideNavCollapsed: boolean) {\r\n const path = window.location.pathname.toLowerCase();\r\n\r\n const hideExchangeSubItems = !path.startsWith(ToxnotReactComponentPaths.BaseSharedMaterialsPath.toLowerCase());\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderSurveyNavMenuGroup(smallNav: boolean, role: TeamRole, isSideNavCollapsed: boolean) {\r\n if (role === TeamRole.Marketing) {\r\n return null;\r\n }\r\n\r\n const mySurveysIsActive = this.pathContains(\"Surveys/SupplierSurveys\");\r\n const questionnairesIsActive = this.pathContains(\"Surveys/Questionnaires\");\r\n const obtainmentIsActive = this.pathContains(\"ObtainmentReports\");\r\n const hideSubItems = !mySurveysIsActive && !questionnairesIsActive && !obtainmentIsActive;\r\n\r\n return (\r\n <>\r\n \r\n \r\n {(this.props.appServices.userContext!.userCapabilities.obtainmentReportsEnabled) &&\r\n \r\n }\r\n \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderTeamMenu(userContext: UserContext) {\r\n const menuItems: JSX.Element[] = [];\r\n const teamItems: JSX.Element[] = [];\r\n let itemIndex = 0;\r\n\r\n const getTeamName = (team: AvailableTeam) => team.teamName === \"\" || team.teamName === null ? \"Unnamed Team\" : team.teamName;\r\n\r\n if (userContext.availableTeamsList.length > 0) {\r\n for (let availableTeam of userContext.availableTeamsList.orderBy(team => getTeamName(team)))\r\n {\r\n teamItems.push(\r\n
  • \r\n \r\n {getTeamName(availableTeam) + (availableTeam.isActive ? \" \\u2666\" : \"\")}\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n if (userContext.isToxnotAdminUser) {\r\n if (userContext.availableTeamsList.length > 0) {\r\n menuItems.push(
  • );\r\n }\r\n menuItems.push(
  • Admin
  • );\r\n menuItems.push(
  • Design Language
  • );\r\n }\r\n menuItems.push(
  • );\r\n menuItems.push(
  • {this.localizeString(\"Sign Out\")}
  • );\r\n return (\r\n
      \r\n
    • \r\n
        \r\n {teamItems}\r\n
      \r\n
    • \r\n {menuItems}\r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private ifRenderAnyTopLevelSideMenuBarItems() {\r\n const userCapabilities = this.props.appServices.userContext!.userCapabilities;\r\n return userCapabilities.consultantAccountEnabled ||\r\n userCapabilities.declareAdministrationEnabled ||\r\n userCapabilities.submissionPlatformPartnerEnabled ||\r\n userCapabilities.myGreenLabBackendEnabled;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderUserCapabilitiesSideMenuItems(isSmallNav: boolean) {\r\n const shouldRender = this.ifRenderAnyTopLevelSideMenuBarItems() && (isSmallNav || !this.state.isSideNavCollapsed);\r\n\r\n if (!shouldRender) {\r\n return null;\r\n }\r\n\r\n const userCapabilities = this.props.appServices.userContext!.userCapabilities;\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private pathMatches(path: string) {\r\n return path.toLowerCase().trim() === window.location.pathname.toLowerCase().trim();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private pathContains(path: string) {\r\n return window.location.pathname.toLowerCase().trim().includes(path.toLowerCase().trim());\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private navigateToLibaray = (context: string) => {\r\n localStorage.setItem(\"library-products-materials-mode\", context);\r\n window.location.href = \"/Data/Library\";\r\n }\r\n\r\n // ===============================================================================\r\n //\r\n // UI Event Handlers\r\n //\r\n // ===============================================================================\r\n\r\n private sidebarAccountMenuButton_click = () => {\r\n const $menuContainer = $(\"#account-menu-content\");\r\n\r\n const newState = $menuContainer.hasClass(\"collapsed\") ? \"open\" : \"collapsed\";\r\n\r\n const $menuButton = $(\"#sidebar-account-menu-container\");\r\n\r\n const menuButtonOffset = $menuButton.offset();\r\n\r\n const $fixedDiv = $(\"#account-menu-content > div\");\r\n const $menu = $fixedDiv.find(\"ul\");\r\n\r\n $menuContainer.removeClass(\"collapsed\").removeClass(\"open\").addClass(newState);\r\n\r\n $fixedDiv.css({\r\n \"top\": (menuButtonOffset!.top + $menuButton!.outerHeight()! - $menu!.outerHeight()!).toString() + \"px\",\r\n \"left\": (menuButtonOffset!.left + $menuButton!.outerWidth()!).toString() + \"px\"\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private smallNavExpandButton_click = () => {\r\n $(\"#tn-app-small-navigation-container\").slideToggle();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private productsMenuItem_onClick = (e: React.MouseEvent): void => {\r\n this.navigateToLibaray(\"products\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private materialsMenuItem_onClick = (e: React.MouseEvent): void => {\r\n this.navigateToLibaray(\"materials\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private tow_decision_modal_ok_onClick = (ev: React.MouseEvent) => {\r\n this.props.towTaskDelete(this.props.appServices.towState!);\r\n }\r\n \r\n // ===============================================================================\r\n \r\n private navbarCollapse = (isCollapseAction: boolean) => {\r\n this.setState({\r\n isSideNavCollapsed: isCollapseAction\r\n });\r\n\r\n this.setCookie('toxnot-side-navbar-collapsed', isCollapseAction.toString());\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private navbarKeysEventListener (e: any, navbarCollapse: any) {\r\n if (document.activeElement?.tagName === 'INPUT') return;\r\n \r\n if (e.key === \"]\") navbarCollapse(false);\r\n if (e.key === \"[\") navbarCollapse(true);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private setCookie(name: string, value: string) {\r\n const date = new Date();\r\n date.setTime(date.getTime() + (365 * 24 * 60 * 60 * 1000));\r\n\r\n const expires = `expires=${date.toUTCString()}`;\r\n document.cookie = `${name}=${value || \"\"}; ${expires}; path=/`;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getCookie(name: any): string | undefined {\r\n const value = `; ${document.cookie}`;\r\n const parts = value.split(`; ${name}=`);\r\n\r\n if (parts.length === 2) {\r\n return parts.pop()?.split(';').shift();\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private isTruthyCookie(cookieName: string | undefined): boolean {\r\n const cookieVal = this.getCookie(cookieName);\r\n\r\n return cookieVal === undefined || cookieVal === null ? false : cookieVal.toLowerCase() === 'true';\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n (state: ApplicationState, ownProps: LayoutOwnProps) => ({ appServices: state.appServices }),\r\n LoginStateController.actionCreators\r\n)(Layout as any);\r\n","import { ToxnotServiceClient } from \"../store/ToxnotServiceClient\";\r\n\r\n// ===============================================================================\r\n\r\nexport enum DataSourceOptionType {\r\n SelectSingle,\r\n SelectMultiple,\r\n Import,\r\n ImportSupplierData,\r\n ImportSummaryData,\r\n ImportHpdBuilder,\r\n ImportScipData,\r\n NeedSupplyChainData,\r\n EditExisting\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default class TowStarter {\r\n public constructor() {\r\n\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private async writeTaskToService(workflowType: string, towState: any) {\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n const towUpdateRequest = {\r\n taskId: null,\r\n workflowType: workflowType,\r\n jsonState: JSON.stringify(towState)\r\n }\r\n\r\n const updateResult = await serviceClient.towUpdate(towUpdateRequest);\r\n\r\n return updateResult.success;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async startTow(\r\n towOption: DataSourceOptionType,\r\n workflowType: string,\r\n towStateGenerator: (inception: string, activeStep: string) => any,\r\n context?: string\r\n ) {\r\n let inception = \"LibrarySelectSingle\";\r\n let activeStep = \"LibrarySingleSelect\";\r\n\r\n switch (towOption) {\r\n case DataSourceOptionType.SelectSingle:\r\n inception = \"LibrarySelectSingle\";\r\n activeStep = \"LibrarySingleSelect\";\r\n break;\r\n case DataSourceOptionType.SelectMultiple:\r\n inception = \"LibrarySelectMulti\";\r\n activeStep = \"LibraryMultiSelect\";\r\n break;\r\n case DataSourceOptionType.Import:\r\n inception = \"Import\";\r\n activeStep = \"SelectFileAndImportOptions\";\r\n break;\r\n case DataSourceOptionType.ImportSummaryData:\r\n case DataSourceOptionType.ImportScipData:\r\n inception = \"Import\";\r\n activeStep = \"SelectGenericSpreadsheetFile\";\r\n break;\r\n case DataSourceOptionType.ImportSupplierData:\r\n inception = \"Import\";\r\n activeStep = \"SelectSupplierDataSpreadsheetFile\";\r\n break;\r\n case DataSourceOptionType.ImportHpdBuilder:\r\n inception = \"Import\";\r\n activeStep = \"HpdBuilderLogin\";\r\n break;\r\n case DataSourceOptionType.EditExisting:\r\n inception = \"LibrarySelectSingle\";\r\n activeStep = \"ReviewBOM\"; \r\n }\r\n\r\n const towState = towStateGenerator(inception, activeStep);\r\n\r\n const success = await this.writeTaskToService(workflowType, towState);\r\n\r\n if (!success) {\r\n return false;\r\n }\r\n\r\n if (towOption === DataSourceOptionType.Import) {\r\n // import data\r\n window.location.href = \"/Data/NewProduct\";\r\n }\r\n else if ((towOption === DataSourceOptionType.ImportSummaryData) || (towOption === DataSourceOptionType.ImportScipData)) {\r\n // import data\r\n window.location.href = \"/Data/Import\";\r\n }\r\n else if (towOption === DataSourceOptionType.ImportSupplierData) {\r\n // import supplier data\r\n window.location.href = \"/Suppliers/Import\";\r\n }\r\n else if (towOption === DataSourceOptionType.ImportHpdBuilder) {\r\n window.location.href = \"/Hpdc/ImportHpd\";\r\n }\r\n else if (towOption === DataSourceOptionType.EditExisting) {\r\n if (!context) {\r\n throw new Error(\"tow options was edit existing, but no public inventory id was provided\");\r\n }\r\n // Review Bom\r\n window.location.href = `/Data/Inventory?inventoryId=${context}&mode=PublishReview`;\r\n }\r\n else {\r\n // select from library first\r\n window.location.href = \"/Data/Library\";\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public async startPublishSmWorkflow(option: DataSourceOptionType, sourceInventoryId?: string) {\r\n return await this.startTow(\r\n option,\r\n \"PublishSM\",\r\n (inception, activeStep) => ({\r\n inception: inception,\r\n activeStep: activeStep,\r\n importMode: \"SingleMaterialSpreadsheet\",\r\n singleResultInventoryId: sourceInventoryId ?? null,\r\n multiResultInventoryIds: null,\r\n importId: null,\r\n publicInventoryId: null,\r\n publicInventoryDataId: null,\r\n implementationInventoryId: null,\r\n sourceInventoryTargetVersionId: null,\r\n sharedMaterialId: null,\r\n context: null,\r\n previewStartId: null,\r\n previewStartContext: null,\r\n accessEmails: \"\",\r\n bulkOperationId: null,\r\n useStreamlinedGetStartedImportUi: true\r\n }),\r\n sourceInventoryId\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n}","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../store';\r\nimport { ToxnotComponentProperties } from '../core/BaseApplicationComponents/ToxnotComponent';\r\nimport { ToxnotSignInRequiredComponent } from '../core/BaseApplicationComponents/ToxnotSignInRequiredComponent';\r\n\r\nimport './styles.css';\r\n\r\ninterface StartOrientationState {\r\n \r\n}\r\n\r\ninterface TourData {\r\n url: string;\r\n localizedName: string;\r\n localizedDescription: string;\r\n}\r\n\r\n// ===============================================================================\r\n\r\nclass StartOrientation extends ToxnotSignInRequiredComponent {\r\n private readonly _tours: TourData[];\r\n\r\n public constructor(props: ToxnotComponentProperties) {\r\n super(props);\r\n\r\n this._tours = [\r\n {\r\n url: \"/Start?product_tour_id=330158\",\r\n localizedName: this.localizeString(\"Basic Navigation\"),\r\n localizedDescription: this.localizeString(\"Learn the basics of navigating 3E Exchange's most used features.\")\r\n },\r\n {\r\n url: \"/Data/Library?category=Products&product_tour_id=332126\",\r\n localizedName: this.localizeString(\"Product and Material Libary\"),\r\n localizedDescription: this.localizeString(\"Learn how to find and manage your Product and Materials in their respective Libraries.\")\r\n },\r\n {\r\n url: \"/Data/Library?category=Materials&product_tour_id=332641\",\r\n localizedName: this.localizeString(\"Product and Material Details\"),\r\n localizedDescription: this.localizeString(\"Learn about all the data that may be associated with your Products and Materials.\")\r\n },\r\n {\r\n url: \"/Exchange?product_tour_id=332797\",\r\n localizedName: this.localizeString(\"The Passport Library\"),\r\n localizedDescription: this.localizeString(\"Learn about the Passport Library and how it benefits both Suppliers and Manufacturers.\")\r\n },\r\n {\r\n url: \"/Suppliers/Suppliers?product_tour_id=332799\",\r\n localizedName: this.localizeString(\"Suppliers and Surveys\"),\r\n localizedDescription: this.localizeString(\"Learn how to represent your Suppliers and how to send them Surveys.\")\r\n },\r\n {\r\n url: \"/Data/Library?product_tour_id=332804\",\r\n localizedName: this.localizeString(\"Task-Oriented Workflows\"),\r\n localizedDescription: this.localizeString(\"Learn what Task-Oriented Workflows are and how they help you accomplish your goals.\")\r\n }\r\n ];\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected override getDisallowedRoles() {\r\n return [];\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected renderConcreteComponent(): JSX.Element {\r\n let keyIndex = 0;\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.localizeString(\"Take a Tour of 3E Exchange\")}\r\n
    \r\n

    \r\n {this.localizeString(\"Choose a tour below to get started.\")}\r\n

    \r\n
    \r\n
    \r\n {this._tours.map(tour => (\r\n
    location.href = tour.url}>\r\n
    {tour.localizedName}
    \r\n
    {tour.localizedDescription}
    \r\n

    \r\n \r\n

    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ appServices: state.appServices })\r\n)(StartOrientation as any);","import { IStringLocalizer } from \"../../utilities/IStringLocalizer\";\r\n\r\nexport interface TemplateFilenameAndDescription {\r\n filename: string;\r\n localizedDescription: string;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n/**\r\n* Manager to handle the bom template types and names.\r\n*/\r\nexport class BomTemplatesManager {\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Returns the 2 standard Bom templates.\r\n * \r\n * @param localizer localizer for the template description.\r\n */\r\n public static getStandardBomImportTemplate(localizer: IStringLocalizer) {\r\n return [\r\n { filename: encodeURIComponent(\"Simple Product BOM template.xlsx\"), localizedDescription: localizer.localizeString(\"Simple BOM Template\") },\r\n { filename: encodeURIComponent(\"All Fields Template.xlsx\"), localizedDescription: localizer.localizeString(\"Advanced BOM Template (All Fields)\") }\r\n ];\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Given a report type, this method returns a list of objects that define an import\r\n * template for download.\r\n *\r\n * @param reportType the report type to get the template info for.\r\n * @param localizer localizer for the template description.\r\n */\r\n public static getImportTemplatesForReportType(reportType: string, localizer: IStringLocalizer): TemplateFilenameAndDescription[] {\r\n switch (reportType) {\r\n case \"declare\":\r\n case \"declare-materials\":\r\n return [{ filename: encodeURIComponent(\"Declare Label Template.xlsx\"), localizedDescription: localizer.localizeString(\"Declare Label Template\") }];\r\n case \"hpd\":\r\n case \"hpd-simple\":\r\n case \"hpd-material-threshold\":\r\n return [{ filename: encodeURIComponent(\"HPD Template.xlsx\"), localizedDescription: localizer.localizeString(\"HPD Template\") }];\r\n case \"c2c-report\":\r\n return [{ filename: encodeURIComponent(\"MBDC Template.xlsx\"), localizedDescription: localizer.localizeString(\"MBDC Submission for Cradle to Cradle Template\") }];\r\n default:\r\n return BomTemplatesManager.getStandardBomImportTemplate(localizer);\r\n }\r\n }\r\n}","import * as React from 'react';\r\nimport { AppServices } from '../../AppServices';\r\n\r\n// ===============================================================================\r\n\r\nexport enum ToxnotReactStatusComponentState {\r\n Normal,\r\n BeginOperation,\r\n OperationSucceeded,\r\n OperationFailed\r\n}\r\n\r\n// ===============================================================================\r\n\r\ninterface ToxnotReactStatusComponentProps {\r\n appServices: AppServices;\r\n state: ToxnotReactStatusComponentState;\r\n localizedOperationMessage?: string | JSX.Element;\r\n}\r\n\r\n// ===============================================================================\r\n \r\nexport class ToxnotReactStatusComponent extends React.PureComponent {\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n switch (this.props.state) {\r\n case ToxnotReactStatusComponentState.BeginOperation:\r\n return (\r\n
    {this.props.localizedOperationMessage ?? this.props.appServices.localizeString(\"Working on it...\")}
    \r\n );\r\n case ToxnotReactStatusComponentState.OperationSucceeded:\r\n return (\r\n
    {this.props.localizedOperationMessage ?? this.props.appServices.localizeString(\"Succeeded!\")}
    \r\n );\r\n case ToxnotReactStatusComponentState.OperationFailed:\r\n return (\r\n
    {this.props.localizedOperationMessage ?? this.props.appServices.localizeString(\"Sorry, there was an issue accessing the service...\")}
    \r\n );\r\n default:\r\n return null;\r\n }\r\n }\r\n}","import * as React from 'react';\r\nimport { SimpleInventoryWithLinkedMaterialInfo } from '../../../store/Models/Inventories/SimpleInventory';\r\nimport { NavPillsDetail } from '../NavPillsDetail';\r\nimport * as Table from '../ToxnotReactTable';\r\n\r\nenum TableSelectedType {\r\n Materials = 0,\r\n Products = 1\r\n}\r\n\r\ninterface ProductMaterialTableState {\r\n currentlySelected: TableSelectedType;\r\n}\r\n\r\n/*\r\n * Renders both a Materials Table and a Products Table for a user's inventories. A user\r\n * can toggle a select between each. Keep in mind some operations like selection will \r\n * containt the selection of both materials and products.\r\n */\r\nexport class ProductMaterialTable extends React.PureComponent, ProductMaterialTableState> {\r\n\r\n // ===============================================================================\r\n\r\n constructor(props: Table.ToxnotReactTableProps) {\r\n super(props);\r\n\r\n this.state = {\r\n currentlySelected: TableSelectedType.Materials\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n const materials = this.props.allRowModels.filter(r => r.isComponent);\r\n const products = this.props.allRowModels.filter(r => !r.isComponent);\r\n\r\n const propsCopy = { ...this.props };\r\n propsCopy.allRowModels = this.state.currentlySelected === TableSelectedType.Materials ? materials : products;\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private navPills_navIndexChanged = (navIndex: number) => {\r\n this.setState({\r\n currentlySelected: navIndex\r\n });\r\n }\r\n}\r\n","import * as React from 'react';\r\n\r\nimport './styles.css';\r\n\r\ninterface CollapsableContainerProps {\r\n opened: boolean;\r\n onClick?: () => void;\r\n title: string | JSX.Element;\r\n hideToggle?: boolean;\r\n className?: string; // defaults to \"\"\r\n}\r\n\r\n/**\r\n * Reusable component that renders a small container that can be toggled. \r\n */\r\nexport class CollapsibleContainer extends React.PureComponent {\r\n public render() {\r\n return (\r\n
    \r\n
    this.props.onClick && this.props.onClick()}>\r\n
    \r\n {this.props.hideToggle ? : }\r\n
    \r\n
    {this.props.title}
    \r\n
    \r\n {this.props.opened && !this.props.hideToggle &&\r\n
    {this.props.children}
    }\r\n
    \r\n )\r\n }\r\n}","import * as React from 'react';\r\n\r\nexport interface NavPillsDetailOptions {\r\n includeDetail?: boolean; // defaults to true. controls whether or not the detail is displayed.\r\n borderBottom?: boolean; // defaults to true. whether or not to include a bottom border on the pills\r\n marginBottom?: boolean; // defaults to true. whether or not to include a margin below the pills\r\n}\r\n\r\nexport interface NavPillsDetailProps {\r\n localizedNavTitles: string[];\r\n onNavIndexChanged?: (navIndex: number) => void;\r\n options?: NavPillsDetailOptions;\r\n}\r\n\r\ninterface NavPillsDetailState {\r\n activeNavIndex: number;\r\n}\r\n\r\n//\r\n// A nav pills-detail view. A nav pills is on the top, body content on the bottom.\r\n//\r\n// Pass the list of nav titles in the props; the bodies of the different nav endpoints are\r\n// children of the component.\r\n//\r\n// The nav titles are 1-1 correlated to the children bodies by their index order.\r\n//\r\n// You can also use this as just a nav, without a detail body controlled by this component. See options above.\r\n//\r\nexport class NavPillsDetail extends React.PureComponent {\r\n public constructor(props: NavPillsDetailProps) {\r\n super(props);\r\n\r\n this.state = {\r\n activeNavIndex: 0\r\n };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n // set up default options\r\n\r\n const options = this.props.options ?? {};\r\n\r\n options.includeDetail ??= true;\r\n options.borderBottom ??= true;\r\n options.marginBottom ??= true;\r\n\r\n const activeChildren = React.Children\r\n .toArray(this.props.children)\r\n .filter((child, index) => index === this.state.activeNavIndex);\r\n\r\n const pills = (\r\n \r\n );\r\n\r\n if (options.includeDetail) {\r\n return (\r\n
    \r\n {pills}\r\n
    \r\n {activeChildren}\r\n
    \r\n
    \r\n );\r\n }\r\n else {\r\n return pills;\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private navPill_click = (index: number) => {\r\n this.setState({ activeNavIndex: index });\r\n\r\n if (this.props.onNavIndexChanged && (this.state.activeNavIndex !== index)) {\r\n this.props.onNavIndexChanged(index);\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n}\r\n","import React from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { AppServices } from \"../../../AppServices\";\r\nimport { ResultType } from \"../../../store/Models/Api/ApiResponse\";\r\nimport { ToxnotServiceClient } from \"../../../store/ToxnotServiceClient\";\r\nimport { ToxnotComponentProperties } from \"../../core/BaseApplicationComponents/ToxnotComponent\";\r\nimport { ToxnotReactModal, ToxnotReactModalBody, ToxnotReactModalFooter } from \"../../core/ToxnotReactModal\";\r\nimport * as LoginStateController from '../../../store/StateControllers/LoginStateController';\r\nimport './../styles.css';\r\nimport { ApplicationState } from \"../../../store\";\r\nimport { LoadingSpinner } from \"../../core/LoadingSpinner\";\r\n\r\nenum UserAddNamePromptModalCurrentState {\r\n gettingInput,\r\n invalidNameSubmitted,\r\n contactingApi,\r\n apiFailed,\r\n apiSucceeded\r\n}\r\n\r\ninterface Options {\r\n onConfirm: (name: string) => void;\r\n}\r\n\r\ninterface AddNameState {\r\n currentState: UserAddNamePromptModalCurrentState,\r\n newName: string;\r\n}\r\n\r\ntype UserAddNamePromptModalProps =\r\n ToxnotComponentProperties &\r\n typeof LoginStateController.actionCreators\r\n & Options;\r\n\r\n/*\r\n A shared component to prompt the user to enter their name.\r\n Sets their name in the profile.\r\n onConfirm: A function to call after the name is set. Takes the entered name as an argument.\r\n */\r\nclass UserAddNamePromptModal extends React.PureComponent {\r\n // ===============================================================================\r\n\r\n // ===============================================================================\r\n\r\n constructor(props: UserAddNamePromptModalProps) {\r\n super(props);\r\n\r\n this.state = {\r\n currentState: UserAddNamePromptModalCurrentState.gettingInput,\r\n newName: \"\"\r\n };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n return (\r\n \r\n \r\n

    {this.props.appServices.localizeString(\"You haven't set your name in your account yet.\")}

    \r\n

    {this.props.appServices.localizeString(\"Your request will be more likely to get a response when your name is included. We'll update your account profile, and you can change your name later in the Profile page in Settings.\")}

    \r\n\r\n {this.state.currentState === UserAddNamePromptModalCurrentState.apiFailed &&\r\n
    \r\n {this.props.appServices.localizeString(\"An error occurred.\")}\r\n
    \r\n }\r\n {this.state.currentState === UserAddNamePromptModalCurrentState.invalidNameSubmitted &&\r\n
    \r\n {this.props.appServices.localizeString(\"Please enter your name.\")}\r\n
    \r\n }\r\n {this.state.currentState === UserAddNamePromptModalCurrentState.apiSucceeded &&\r\n
    \r\n {this.props.appServices.localizeString(\"Your name has been updated!\")}\r\n
    \r\n }\r\n {!(this.state.currentState === UserAddNamePromptModalCurrentState.apiSucceeded || this.state.currentState === UserAddNamePromptModalCurrentState.contactingApi) &&\r\n this.setNameInState(e.target.value)}>\r\n }\r\n {this.state.currentState === UserAddNamePromptModalCurrentState.contactingApi &&\r\n \r\n }\r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private setNameInState(name: string) {\r\n this.setState({\r\n newName: name\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private submitButton_click = async () => {\r\n // check for valid name\r\n const enteredName = this.state.newName;\r\n if (enteredName === undefined || enteredName === \"\") {\r\n this.setState({\r\n currentState: UserAddNamePromptModalCurrentState.invalidNameSubmitted\r\n });\r\n return;\r\n }\r\n\r\n // contact API\r\n this.setState({\r\n currentState: UserAddNamePromptModalCurrentState.contactingApi\r\n });\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n // Update the user name and cookie.\r\n const result = await serviceClient.userUpdateProfileName(enteredName);\r\n\r\n // Update the react user context with the new user name.\r\n await this.props.getAppServices();\r\n\r\n if (!result.success) {\r\n // on failure\r\n this.setState({\r\n currentState: UserAddNamePromptModalCurrentState.apiFailed\r\n });\r\n return;\r\n }\r\n\r\n // on success\r\n this.setState({\r\n currentState: UserAddNamePromptModalCurrentState.apiSucceeded\r\n });\r\n $(\"#user-add-name-prompt-modal\").modal(\"hide\")\r\n this.props.onConfirm(enteredName);\r\n }\r\n}\r\n\r\nexport default connect(\r\n (state: ApplicationState, ownProps: Options) => ({\r\n appServices: state.appServices,\r\n ...ownProps,\r\n }),\r\n { ...LoginStateController.actionCreators } // Selects which action creators are merged into the component's props\r\n)(UserAddNamePromptModal as any);","import * as React from 'react';\r\n\r\nimport './styles.css';\r\n\r\nexport class Header extends React.PureComponent {\r\n public render() {\r\n return (\r\n this.props.children\r\n );\r\n } \r\n}\r\n\r\nexport interface TopActionButtonProps {\r\n formatButtons?: boolean;\r\n}\r\n\r\nexport class TopActionButtons extends React.PureComponent {\r\n public render() {\r\n const formatButtons = this.props.formatButtons ?? false;\r\n\r\n return (\r\n
    \r\n {this.props.children}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport class ScrollableContent extends React.PureComponent {\r\n public render() {\r\n return (\r\n
    \r\n
    \r\n {this.props.children}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\ninterface Options {\r\n customClassName?: string; // defaults to nothing. this class is added to the root div if provided.\r\n shouldMakeTnSection?: boolean; // defaults to true. if true, then the root div is set as a tn-section\r\n tnSectionIsRaw?: boolean; // defaults to true. only applicable if shouldMakeTnSection is true. if true, the tn-section is a raw section.\r\n}\r\n\r\nexport class TopActionsAndScrollableContentContainer extends React.PureComponent {\r\n public render() {\r\n return (\r\n
    \r\n {this.props.children}\r\n
    \r\n );\r\n }\r\n}","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { ScrollableContent, TopActionButtons, TopActionsAndScrollableContentContainer } from \"../TopActionsAndScrollableContentContainer\";\r\nimport './styles.css';\r\n\r\n//\r\n// A resuable component for a sliding drawer which opens up from the right side of the screen. The sliding drawer ispositioned at the top right of the parent div its placed in.\r\n// Options:\r\n// - OpenDrawer: boolean controlling the state of the drawer. Drawer displays when true.\r\n// - onClose: Func called when there is a trigger to close the drawer i.e. the closed button or a click outside the drawer.\r\n// For Correct functionality, onClose must aslo set OpenDrawer to false.\r\n//\r\n\r\ninterface CustomCloseButtonOptions {\r\n className: string;\r\n localizedText: string;\r\n}\r\n\r\ninterface Options {\r\n openDrawer: boolean;\r\n hasCta?: boolean;\r\n ctaTitle?: string;\r\n ctaCallback?: () => void;\r\n onClose: () => void;\r\n drawerTitle?: string | JSX.Element;\r\n customCloseButtonOptions?: CustomCloseButtonOptions,\r\n preventCloseOnModalClick?: boolean;\r\n}\r\n\r\nexport class SlidingDrawer extends React.PureComponent {\r\n // ===============================================================================\r\n\r\n private drawerRef: React.RefObject;\r\n\r\n // ===============================================================================\r\n\r\n constructor(props: Options) {\r\n super(props);\r\n this.drawerRef = React.createRef();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public componentDidUpdate(prevProps: Options) {\r\n // Add click event listener if drawer is going from closed to open\r\n if (this.props.openDrawer && !prevProps.openDrawer) { \r\n document.addEventListener(\"click\", this.closeDrawer_click);\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n const className = this.props.customCloseButtonOptions ? this.props.customCloseButtonOptions.className : \"btn btn-default btn-close\";\r\n const innerElementOrString = this.props.customCloseButtonOptions ? this.props.customCloseButtonOptions.localizedText : ;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n

    {this.props.drawerTitle}

    \r\n
    \r\n
    \r\n \r\n {this.props.children}\r\n \r\n
    \r\n {this.props.hasCta &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private closeDrawer = (e: React.MouseEvent) => {\r\n this.props.onClose();\r\n document.removeEventListener(\"click\", this.closeDrawer_click);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private closeDrawer_click = (e: MouseEvent) => {\r\n if (this.props.preventCloseOnModalClick) {\r\n if (e.target !== null) {\r\n if ((e.target as HTMLElement).classList.value.indexOf(\"modal\") > -1 || (e.target as HTMLElement).closest(\".modal\") !== null) {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n //If already closed do nothing\r\n if (!this.props.openDrawer) {\r\n return;\r\n }\r\n\r\n //If the click i.e. e is in the Ref(drawer), do nothing\r\n if (this.drawerRef.current && this.drawerRef.current.contains(e.target as Node)) {\r\n return;\r\n }\r\n\r\n this.props.onClose();\r\n document.removeEventListener(\"click\", this.closeDrawer_click);\r\n }\r\n}","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../../store';\r\nimport { SimpleInventoryWithLinkedMaterialInfo } from '../../../store/Models/Inventories/SimpleInventory';\r\nimport { InviteSupplierModel, InviteSupplierRowModel } from '../../../store/Models/Supplier/Supplier';\r\nimport * as SelectSuppliersMaterialsStateController from '../../../store/StateControllers/Supplier/SelectSuppliersMaterialsTableStateController';\r\nimport { LoadingSpinner, LoadingSpinnerSize } from '../LoadingSpinner';\r\nimport { ProductMaterialTable } from '../ProductMaterialTable';\r\nimport { SlidingDrawer } from '../SlidingDrawer';\r\nimport { ScrollableContent, TopActionButtons, TopActionsAndScrollableContentContainer } from '../TopActionsAndScrollableContentContainer';\r\nimport { SelectingRowOptions, TableColumn, TableRow, ToxnotReactTable } from '../ToxnotReactTable';\r\nimport { InventoryOrCustomNameWithPossibleId } from '../../../store/Models/InventoryNameWithPossibleId';\r\nimport './styles.css';\r\nimport { ToxnotReactModal, ToxnotReactModalBody, ToxnotReactModalFooter } from '../ToxnotReactModal';\r\nimport { ToxnotComponentProperties } from '../BaseApplicationComponents/ToxnotComponent';\r\nimport { ToxnotSignInRequiredComponent } from '../BaseApplicationComponents/ToxnotSignInRequiredComponent';\r\n\r\nexport interface SelectSuppliersMaterialsTableRenderOptions{\r\n supplierOnlyMode?: boolean; // default is false\r\n readOnlyMode?: boolean; // default is false\r\n includeActionButtons?: boolean; // default is false\r\n allowAddNewMaterials?: boolean; // default: true,\r\n lockSuppliers?: boolean; // default: false. Disables edit/add/remove of suppliers. Can still edit contact email of existing ones.\r\n takeFullHeightOfParent?: boolean; // defaults to true\r\n}\r\n\r\ninterface OwnProps {\r\n options?: SelectSuppliersMaterialsTableRenderOptions; // when not supplied, default options are used\r\n initialInviteSupplerModel?: InviteSupplierModel[];\r\n onInviteSupplierModelDataChanged?: (model: InviteSupplierModel[]) => void\r\n}\r\n\r\ntype SelectSuppliersMaterialsTableProps =\r\n ToxnotComponentProperties &\r\n SelectSuppliersMaterialsStateController.SelectSuppliersMaterialsTableState &\r\n typeof SelectSuppliersMaterialsStateController.actionCreators &\r\n OwnProps;\r\n\r\n/**\r\n * Resuable component to enter new suppliers, select existing suppliers, select\r\n * existing inventories for that supplier, and add material names to create new \r\n * materials. In order access the internal state of this component, the parent \r\n * must the add the state models from SelectSuppliersMaterialsStateController\r\n * in its props.\r\n */\r\nclass SelectSuppliersMaterialsTable extends ToxnotSignInRequiredComponent {\r\n\r\n // ===============================================================================\r\n\r\n public componentDidMount() {\r\n this.props.initializeSelectSuppliers(this.props.initialInviteSupplerModel);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected override getDisallowedRoles() {\r\n return [];\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public componentDidUpdate(prevProps: SelectSuppliersMaterialsTableProps) {\r\n if (this.props.supplierRowModels !== prevProps.supplierRowModels && this.props.onInviteSupplierModelDataChanged) {\r\n this.props.onInviteSupplierModelDataChanged(this.props.supplierRowModels);\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public componentWillUnmount() {\r\n this.props.clearSelectSuppliersState();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getSlidingDrawerTitle = () => (this.props.options?.readOnlyMode ?? false) ? this.localizeString(\"Requested Materials\") : this.localizeString(\"Select Materials To Request From\") + \" \" + this.getCurrentlySelectedSupplierName();\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Renders the component\r\n */\r\n public renderConcreteComponent() {\r\n if (this.props.isSelectingSuppliersLoading) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n const takeFullHeightOfParent = this.props.options?.takeFullHeightOfParent ?? true;\r\n\r\n if (takeFullHeightOfParent) {\r\n return (\r\n
    \r\n \r\n {(this.props.options?.includeActionButtons ?? false) &&\r\n \r\n {!(this.props.options?.readOnlyMode ?? false) && !(this.props.options?.lockSuppliers ?? false) && this.renderTopActionButtons()}\r\n \r\n }\r\n \r\n {this.renderMainTable()}\r\n \r\n
    \r\n \r\n {this.renderMaterialsSlidingDrawerContent()}\r\n \r\n \r\n
    \r\n );\r\n }\r\n else {\r\n return (\r\n
    \r\n {(this.props.options?.includeActionButtons ?? false) &&\r\n
    \r\n {!(this.props.options?.readOnlyMode ?? false) && !(this.props.options?.lockSuppliers ?? false) && this.renderTopActionButtons()}\r\n
    \r\n }\r\n {this.renderMainTable()}\r\n
    \r\n \r\n {this.renderMaterialsSlidingDrawerContent()}\r\n \r\n
    \r\n );\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Renders the top action buttons for this component.\r\n */\r\n private renderTopActionButtons() {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Gets all the table methods needed by the material sliding drawer table.\r\n * \r\n * @param inventoriesToRender the inventories we are going to render in the sliding drawer table\r\n */\r\n private getSlidingDrawerTableMethods(inventoriesToRender: SimpleInventoryWithLinkedMaterialInfo[], supplierToInvite: InviteSupplierRowModel) {\r\n const cols: TableColumn[] = [\r\n {\r\n value: this.localizeString(\"Name\"),\r\n isSortable: true,\r\n getSortableValue: (inv: SimpleInventoryWithLinkedMaterialInfo) => inv.name\r\n },\r\n {\r\n value: this.localizeString(\"Description\"),\r\n },\r\n {\r\n value: this.localizeString(\"Plant name\"),\r\n isSortable: true,\r\n getSortableValue: (inv: SimpleInventoryWithLinkedMaterialInfo) => inv.plantName\r\n }\r\n ];\r\n\r\n const rowGenerator = (inv: SimpleInventoryWithLinkedMaterialInfo, rowIndex: number): TableRow => {\r\n return {\r\n cols: [\r\n {inv.name},\r\n inv.description,\r\n inv.plantName\r\n ]\r\n };\r\n }\r\n\r\n const inventoriesTable_onRowSelected = (selectedIds: { [id: string]: string }) => {\r\n this.props.inventoriesSelected(selectedIds, inventoriesToRender);\r\n }\r\n\r\n const selectingOptions: SelectingRowOptions | undefined = (this.props.options?.readOnlyMode ?? false)\r\n ? undefined\r\n : {\r\n onRowSelected: inventoriesTable_onRowSelected,\r\n initiallySelected: this.getInitiallySelectedForProductsMaterialTable(supplierToInvite),\r\n rowModelGetId: (s: SimpleInventoryWithLinkedMaterialInfo) => s.inventoryId\r\n };\r\n\r\n return {\r\n rowGenerator,\r\n cols,\r\n selectingOptions\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Get the header row as an array of table columns for the sliding drawer table.\r\n */\r\n private getHeaderRowForSuppliersToInvite = () => {\r\n return [\r\n { value: this.localizeString(\"Company Name\") },\r\n { value: this.localizeString(\"Contact Email\") },\r\n {\r\n value: (\r\n <>\r\n {this.localizeString(\"Materials\")}\r\n {this.props.supplierRowModels.some(supplier => supplier.supplierId !== null) && !this.props.options?.readOnlyMode &&\r\n <>\r\n {\" \"}\r\n this.props.selectAllMaterialsWithInventoryIdsForSelectedSuppliers()}> {this.localizeString(\"All Suppliers' Materials\")}\r\n \r\n }\r\n \r\n )\r\n }\r\n ];\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Renders the main table view for selecting suppliers and materials\r\n */\r\n private renderMainTable() {\r\n const selectingRowOptions: SelectingRowOptions | undefined = this.props.options?.readOnlyMode ? undefined : {\r\n rowModelGetId: (s: InviteSupplierRowModel) => s.rowIdentifier,\r\n onRowSelected: this.table_rowSelected,\r\n initiallySelected: {},\r\n showOnlyOnHover: true\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n {this.props.existingSuppliers.map(supplier => supplier.name).sort().map((supplierName, i) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n
    {this.localizeString(\"You have one or more suppliers with the same name. Please make sure each supplier name is unique.\")}
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Gets the name of the currently selected supplier. \"Unknown Company\" is returned\r\n * if there is not a currently selected supplier or if that supplier has an empty \r\n * name.\r\n */\r\n private getCurrentlySelectedSupplierName() {\r\n const unknownCompany = this.localizeString(\"Unknown Company\");\r\n\r\n if (this.props.selectedSupplierRowIdentifier === null) {\r\n return unknownCompany;\r\n }\r\n\r\n const supplier = SelectSuppliersMaterialsStateController.getSupplierFromRowIdentifier(this.props.selectedSupplierRowIdentifier, this.props);\r\n\r\n return supplier.supplierName.emptyCoalesce(unknownCompany);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Renders the requested materials for a supplier as a list of filters a user can remove.\r\n * \r\n * @param supplier the supplier whos requested materials we are going to render\r\n * @param showEmptyMessage show the standard empty message if the user has no requested materials\r\n * @param shouldTruncate show truncate when we display list of requested materials (default is 3).\r\n */\r\n private renderRequestedMaterials = (supplier: InviteSupplierRowModel, showEmptyMessage: boolean, shouldTruncate: boolean = true) => {\r\n const numberToDisplay: number = (shouldTruncate ? 3 : supplier.requestedMaterials.length);\r\n\r\n let body: JSX.Element;\r\n\r\n if ((supplier.requestedMaterials.length === 0) && showEmptyMessage) {\r\n body = (\r\n

    {\"Add materials below by entering new material names or selecting existing materials from your library.\"}

    \r\n );\r\n }\r\n else {\r\n body = (\r\n
    \r\n
    \r\n {supplier.requestedMaterials.orderBy(r => r.name).take(numberToDisplay).map((r, i) => (\r\n
    \r\n {r.customName ? r.customName + \" (\" + r.name + \")\" : r.name}\r\n {\" \"}\r\n {!(this.props.options?.readOnlyMode ?? false) && this.removeRequestedMaterialButton_click(supplier.rowIdentifier, r)} className=\"remove-filter-value-button\">x}\r\n
    \r\n ))}\r\n {(shouldTruncate && (supplier.requestedMaterials.length > numberToDisplay)) &&\r\n this.editInventoriesForSupplierButton_click(supplier)}>{this.localizeString(\"and\") + \" \" + (supplier.requestedMaterials.length - numberToDisplay).toString() + \" \" + this.localizeString(\"more\")}\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {body}\r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Determines if the materials sliding drawer is in an a loading state, by checking if\r\n * theres a supplier selected, or there is a supplier selected, but their inventories have\r\n * not been loaded yet.\r\n */\r\n private isMaterialsSlidingDrawerContentLoading() {\r\n\r\n if (this.props.selectedSupplierRowIdentifier === null) {\r\n return true;\r\n }\r\n\r\n const supplier = SelectSuppliersMaterialsStateController.getSupplierFromRowIdentifier(this.props.selectedSupplierRowIdentifier, this.props);\r\n\r\n return (supplier.supplierId !== null && !this.props.supplierIdsToInventories[supplier.supplierId]);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * For use with the sliding drawer materials table. When the table first mounts it\r\n * needs to select any requested materials a supplier has.\r\n * \r\n * @param supplier the supplier whos materials we are going to initially select.\r\n */\r\n private getInitiallySelectedForProductsMaterialTable(supplier: InviteSupplierRowModel) {\r\n const ret: { [id: string]: string } = {};\r\n\r\n for (let i of supplier.requestedMaterials) {\r\n if (i.inventoryId === null) {\r\n continue;\r\n }\r\n\r\n ret[i.inventoryId] = i.inventoryId;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Renders the material sliding drawer content.\r\n */\r\n private renderMaterialsSlidingDrawerContent() {\r\n if (this.isMaterialsSlidingDrawerContentLoading()) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n if (this.props.selectedSupplierRowIdentifier === null) {\r\n throw new Error(\"Selected Supplier Row Identifier cannot be null here.\");\r\n }\r\n\r\n const supplierToInvite = SelectSuppliersMaterialsStateController.getSupplierFromRowIdentifier(this.props.selectedSupplierRowIdentifier, this.props);\r\n\r\n const inventoriesToRender = supplierToInvite.supplierId === null ? [] : this.props.supplierIdsToInventories[supplierToInvite.supplierId];\r\n const slidingDrawerTableMethods = this.getSlidingDrawerTableMethods(inventoriesToRender, supplierToInvite);\r\n\r\n if (!supplierToInvite) {\r\n throw new Error(\"Existing Supplier Could not be found\");\r\n }\r\n\r\n const showFreeFormTextBoxUi = (supplierToInvite.supplierId === null) && (supplierToInvite.requestedMaterials.length === 0);\r\n\r\n return (\r\n
    \r\n {!showFreeFormTextBoxUi &&\r\n this.renderRequestedMaterials(supplierToInvite, true, false)\r\n }\r\n {!(this.props.options?.readOnlyMode ?? false) &&\r\n
    \r\n {(this.props.options?.allowAddNewMaterials ?? true) &&\r\n <>\r\n {showFreeFormTextBoxUi\r\n ? (\r\n
    \r\n

    {this.localizeString(\"Type or paste your Material names, separated by commas:\")}

    \r\n \r\n
    \r\n )\r\n : (\r\n
    \r\n
    \r\n {this.localizeString(\"Ask for new Materials\")}\r\n
    \r\n
    \r\n {this.renderRequestedDataInputForm(supplierToInvite)}\r\n
    \r\n
    \r\n )\r\n }\r\n \r\n }\r\n {(supplierToInvite.supplierId !== null) &&\r\n
    \r\n
    \r\n {this.localizeString(\"Existing Materials/Products\")}\r\n
    \r\n
    \r\n
    \r\n {inventoriesToRender.length > 0\r\n ? \r\n :\r\n <>\r\n

    \r\n {this.localizeString(\"Doesn't look like you have any materials in your library yet for this supplier. No worry! You can still enter part names in the above field.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"The part names you enter will automatically be added in your library for that supplier when you send your requests.\")}\r\n

    \r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n }\r\n
    }\r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderNoMaterialsChosenMessage = () => (\r\n
    \r\n
    \r\n {this.localizeString(\"None Selected. Your supplier will choose the materials they respond with.\")}\r\n
    \r\n
    \r\n );\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Renders the requested data column for a supplier in the main table.\r\n * \r\n * @param supplier the supplier who's row and materials we are rendering.\r\n */\r\n private renderRequestedDataColumn = (supplier: InviteSupplierRowModel): JSX.Element => {\r\n return (\r\n
    \r\n {(this.props.options?.supplierOnlyMode ?? false)\r\n ? (\r\n
    {this.localizeString(\"Only Requesting Data on Suppliers.\")}
    \r\n )\r\n : (\r\n <>\r\n
    \r\n \r\n
    \r\n {supplier.requestedMaterials.length > 0 ? this.renderRequestedMaterials(supplier, false) : this.renderNoMaterialsChosenMessage()}\r\n \r\n )}\r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Renders the request data input form used in the material sliding drawer.\r\n * \r\n * @param supplier the supplier whom we are rendering the input form for.\r\n */\r\n private renderRequestedDataInputForm(supplier: InviteSupplierRowModel) {\r\n return (\r\n
    \r\n
    \r\n this.addRequestedMaterial_onKeyDown(e, supplier)}\r\n disabled={(this.props.options?.readOnlyMode ?? false)}\r\n />\r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderSupplierContactEmailDropdown = (supplierId: string, rowId: string, isReadonly?: boolean) => (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Gets the row for a supplier as a list of columns.\r\n * \r\n * @param supplier the supplier we are getting the row for\r\n * @param rowIndex the row index of the current row we are getting.\r\n */\r\n private getRowForSupplierToInvite = (supplier: InviteSupplierRowModel, rowIndex: number): TableRow => {\r\n return {\r\n cols: [\r\n
    \r\n {(this.props.options?.lockSuppliers ?? false) ?\r\n

    {supplier.supplierName}

    :\r\n this.supplierNameInputForm_onChange(e, supplier.rowIdentifier)}\r\n className={\"supplier-name-input form-control\" + (supplier.supplierName.trim() === \"\" ? \" empty-input\" : \"\")}\r\n value={supplier.supplierName}\r\n autoFocus={rowIndex === this.props.supplierRowModels.length - 1}\r\n placeholder={this.localizeString(\"Supplier 1\")}\r\n disabled={(this.props.options?.readOnlyMode ?? false) || (this.props.options?.lockSuppliers ?? false)}\r\n />\r\n }\r\n
    ,\r\n
    \r\n this.props.updateSupplierToInvite(supplier.rowIdentifier, {contactEmail: e.target.value})}\r\n value={supplier.contactEmail}\r\n disabled={(this.props.options?.readOnlyMode ?? false)}\r\n />\r\n {supplier.supplierId !== null && this.renderSupplierContactEmailDropdown(supplier.supplierId, supplier.rowIdentifier, this.props.options?.readOnlyMode)}\r\n
    ,\r\n this.renderRequestedDataColumn(supplier)\r\n ]\r\n }\r\n };\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Callback passed into the main table that gets called when a supplier has been\r\n * selected.\r\n * \r\n * @param selectedIds the row identifiers of the suppliers selected.\r\n */\r\n private table_rowSelected = (selectedIds: { [id: string]: string }) => {\r\n this.props.updateSelectSuppliersState({\r\n selectedSupplierRowIds: { ...selectedIds }\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n //\r\n // UI Events\r\n //\r\n\r\n private addSupplierButton_click = () => {\r\n this.props.addSupplierToInvite();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private addNewRequestedMaterial(supplier: InviteSupplierRowModel) {\r\n const inputForm = $('#invite-supplier-sliding-drawer-full-content .new-materials-name-input');\r\n const inputVal = inputForm?.val()?.toString() ?? \"\";\r\n\r\n this.props.addRequestedMaterial(inputVal, supplier);\r\n\r\n // clear input after submit\r\n inputForm?.val(\"\");\r\n }\r\n\r\n private addRequestedMaterial_onKeyDown = (e: React.KeyboardEvent, supplier: InviteSupplierRowModel) => {\r\n if (e.key !== \"Enter\") {\r\n return;\r\n }\r\n\r\n this.addNewRequestedMaterial(supplier);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private addRequestedMaterialButton_click = (supplier: InviteSupplierRowModel) => {\r\n this.addNewRequestedMaterial(supplier);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private suppliersEmail_onClick = (rowIdentifer: string, email: string) => {\r\n this.props.updateSupplierToInvite(rowIdentifer, {contactEmail: email});\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private importSuppliersFileInput_onChange = (e: React.ChangeEvent) => {\r\n this.props.importSuppliers(e);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private importSuppliersButton_click = () => {\r\n $('#import-suppliers-file-upload').click();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private supplierNameInputForm_onChange = (e: React.ChangeEvent, rowIdentifier: string) => {\r\n const existingSupplier = SelectSuppliersMaterialsStateController.getExistingSupplierFromName(e.target.value, this.props.existingSuppliers);\r\n\r\n if (existingSupplier !== null) {\r\n this.props.addExistingSuppliersToSupplierToInvite(rowIdentifier, existingSupplier);\r\n }\r\n else {\r\n this.props.updateSupplierToInvite(rowIdentifier, { supplierName: e.target.value }, true);\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private slidingDrawer_onClose = () => {\r\n const supplier = this.props.supplierRowModels.firstOrDefault(s => s.rowIdentifier === this.props.selectedSupplierRowIdentifier);\r\n\r\n if (supplier === null) {\r\n throw new Error(\"Supplier not found\");\r\n }\r\n\r\n if ((supplier.supplierId === null) && (supplier.requestedMaterials.length === 0)) {\r\n const newMaterialNames = this.props.newMaterialsTextBoxValue.trim().split(',').map(s => s.trim()).filter(s => s.length > 0);\r\n\r\n this.props.updateSupplierToInvite(\r\n supplier.rowIdentifier,\r\n {\r\n requestedMaterials: newMaterialNames.map(name => ({\r\n inventoryId: null,\r\n name: name,\r\n customName: null\r\n }))\r\n });\r\n }\r\n\r\n this.props.updateSelectSuppliersState({\r\n selectedSupplierRowIdentifier: null,\r\n materialsSelectorIsOpen: false,\r\n newMaterialsTextBoxValue: \"\"\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private editInventoriesForSupplierButton_click = (supplier: InviteSupplierRowModel) => {\r\n // a supplier that doesn't exist yet in the user's library, and has no materials,\r\n // gets a simple low friction text box to add material names\r\n // otherwise we open the general materials editor\r\n\r\n if ((supplier.supplierId === null) && (supplier.requestedMaterials.length === 0)) {\r\n this.props.updateSelectSuppliersState({\r\n materialsSelectorIsOpen: true,\r\n selectedSupplierRowIdentifier: supplier.rowIdentifier,\r\n newMaterialsTextBoxValue: \"\"\r\n });\r\n }\r\n else {\r\n this.props.updateSelectSuppliersState({\r\n materialsSelectorIsOpen: true,\r\n selectedSupplierRowIdentifier: supplier.rowIdentifier,\r\n newMaterialsTextBoxValue: \"\"\r\n });\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private removeRequestedMaterialButton_click = (rowId: string, materialToRemove: InventoryOrCustomNameWithPossibleId) => {\r\n this.props.removeRequestedMaterial(rowId, materialToRemove);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private removeSupplierRowButton_click = () => {\r\n this.props.removeSuppliersToInvite();\r\n }\r\n}\r\n\r\nexport default connect(\r\n (state: ApplicationState, ownProps: OwnProps) => ({\r\n ...state.selectSuppliersMaterialsTableState,\r\n appServices: state.appServices,\r\n ...ownProps\r\n }),\r\n SelectSuppliersMaterialsStateController.actionCreators // Selects which action creators are merged into the component's props\r\n)(SelectSuppliersMaterialsTable as any)","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../store';\r\nimport { BomTemplatesManager } from '../../store/Managers/BomTemplatesManager';\r\nimport { TeamRole } from '../../store/Models/UserContext';\r\nimport TowStarter, { DataSourceOptionType } from '../../tow/TowStarter';\r\nimport { ToxnotComponentProperties } from '../core/BaseApplicationComponents/ToxnotComponent';\r\nimport { ToxnotSignInRequiredComponent } from '../core/BaseApplicationComponents/ToxnotSignInRequiredComponent';\r\nimport InviteSuppliersCore from './InviteSuppliersCore';\r\n\r\nimport './styles.css';\r\n\r\ninterface StartReportState {\r\n reportGroupIndex: number;\r\n selectedReportType: ReportTypes | null;\r\n dataSourceOption: DataSourceOptionType | null;\r\n selectedRegulations: string[];\r\n}\r\n\r\ninterface ReportMetadata {\r\n localizedName: string | JSX.Element;\r\n localizedDescription: string | JSX.Element;\r\n}\r\n\r\nenum ReportTypes {\r\n ComplianceReport = \"reach-rohs-statement\",\r\n RedListLetter = \"compliance-letter-lbc\",\r\n Declare = \"declare\",\r\n Hpd = \"hpd\",\r\n Leed = \"leed\",\r\n C2c = \"c2c-report\",\r\n Pcds = \"pcds\"\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Sub start component for starting a report.\r\n//\r\nclass StartReport extends ToxnotSignInRequiredComponent {\r\n private _shouldScrollToBottom: boolean;\r\n private _reportTypeToMetadata: { [reportType: string]: ReportMetadata };\r\n private _towStarter: TowStarter;\r\n private _nextStepsOptionToFriendlyButtonName: { [option: string]: string };\r\n\r\n // ===============================================================================\r\n\r\n protected override getDisallowedRoles() {\r\n return [TeamRole.Marketing];\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public constructor(props: ToxnotComponentProperties) {\r\n super(props);\r\n\r\n this._shouldScrollToBottom = false;\r\n\r\n this.state = {\r\n reportGroupIndex: 0,\r\n selectedReportType: null,\r\n dataSourceOption: null,\r\n selectedRegulations: [],\r\n };\r\n\r\n this._towStarter = new TowStarter();\r\n\r\n this._reportTypeToMetadata = {\r\n [ReportTypes.C2c]: {\r\n localizedName: Cradle 2 Cradle Certified™,\r\n localizedDescription: Generate an MBDC Material Health assessment that can be submitted for Cradle 2 Cradle Certified™\r\n },\r\n [ReportTypes.ComplianceReport]: {\r\n localizedName: this.localizeString(\"Compliance Report\"),\r\n localizedDescription: this.localizeString(\"Summarize your California Proposition 65, REACH, and RoHS compliance determinations in a document you can share with customers.\")\r\n },\r\n //\"compliance-letter\": {\r\n // localizedName: this.localizeString(\"Regulatory Screening Letter\"),\r\n // localizedDescription: this.localizeString(\"Screen your product for substances on regulatory lists.\")\r\n //},\r\n [ReportTypes.Declare]: {\r\n localizedName: ,\r\n localizedDescription: this.localizeString(\"Promote your sustainability & transparency by publishing a Declare Label.\")\r\n },\r\n [ReportTypes.RedListLetter]: {\r\n localizedName: this.localizeString(\"LBC 4.0 Red List Letter\"),\r\n localizedDescription: this.localizeString(\"Disclose any substances on the Living Building Challenge Red List, or declare there are none.\")\r\n },\r\n [ReportTypes.Hpd]: {\r\n localizedName: \"HPD\",\r\n localizedDescription: this.localizeString(\"Create a comprehensive Health Product Declaration on sustainability & hazards.\")\r\n },\r\n [ReportTypes.Leed]: {\r\n localizedName: `LEED ${this.localizeString(\"Disclosure/Optimization\")}`,\r\n localizedDescription: this.localizeString(\"Report for LEED v4 credit.\")\r\n },\r\n [ReportTypes.Pcds]: {\r\n localizedName: this.localizeString(\"Product Circularity Data Sheet\"),\r\n localizedDescription: this.localizeString(\"Summarize & promote the circular attributes of your products & materials.\")\r\n }\r\n };\r\n\r\n this._nextStepsOptionToFriendlyButtonName = {\r\n [DataSourceOptionType.Import]: this.localizeString(\"Import File(s)\"),\r\n [DataSourceOptionType.SelectSingle]: this.localizeString(\"Select Product/Material\"),\r\n [DataSourceOptionType.SelectMultiple]: this.localizeString(\"Select Products/Materials\"),\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public componentDidUpdate() {\r\n if (this._shouldScrollToBottom) {\r\n $(\"#scroll-end-target\")[0].scrollIntoView();\r\n\r\n this._shouldScrollToBottom = false;\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private selectedReportTypeHasRegulationOptions() {\r\n return this.state.selectedReportType === ReportTypes.ComplianceReport;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private static supportsMultiSelect(reportType: ReportTypes) {\r\n switch (reportType) {\r\n case ReportTypes.ComplianceReport:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public renderConcreteComponent() {\r\n const regulationIdToLocalizedName: { [regulationId: string]: string } = {\r\n \"cal-65\": \"California Proposition 65\",\r\n \"conflict-minerals\": this.localizeString(\"Conflict Minerals - Basic\"),\r\n \"conflict-minerals-Official\": this.localizeString(\"Conflict Minerals - Official Template\"),\r\n \"reach\": \"EU REACH SVHC Candidate List & SCIP\",\r\n \"rohs\": \"EU RoHS\"\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.localizeString(\"Create a Compliance or Sustainability Report\")}\r\n
    \r\n

    \r\n {this.localizeString(\"What type of report do you want to start?\")}\r\n

    \r\n
    \r\n
    \r\n {Object.values(ReportTypes).map((reportType, reportTypeIndex) => (\r\n
    this.reportTypeSelector_click(reportType)}>\r\n
    {this._reportTypeToMetadata[reportType].localizedName}
    \r\n
    {this._reportTypeToMetadata[reportType].localizedDescription}
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n {this.selectedReportTypeHasRegulationOptions() &&\r\n \r\n

    \r\n {this.localizeString(\"What regulations do you want to report on?\")}\r\n

    \r\n
    \r\n {[\"cal-65\", \"conflict-minerals\",\"conflict-minerals-Official\", \"reach\", \"rohs\"]\r\n .map((regulationId, index) => {\r\n const complianceEnabled = this.props.appServices.userContext!.userCapabilities.productComplianceEnabled;\r\n const isComplianceReport = this.state.selectedReportType === \"reach-rohs-statement\";\r\n const isDisabled = isComplianceReport && !complianceEnabled && (regulationId !== \"rohs\");\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n }\r\n {this.state.selectedReportType !== null && (!this.selectedReportTypeHasRegulationOptions() || (this.state.selectedRegulations.length > 0)) &&\r\n \r\n

    \r\n {this.localizeString(\"Where is the data you would like to report on?\")}\r\n

    \r\n
    \r\n
    \r\n
    this.selectNextStepsOption_onClick(DataSourceOptionType.SelectSingle)}>\r\n
    {this.localizeString(\"3E Exchange Library - Single Product/Material\")}
    \r\n
    {this.localizeString(\"Select a product or material in your 3E Exchange Library.\")}
    \r\n
    \r\n {StartReport.supportsMultiSelect(this.state.selectedReportType) &&\r\n
    this.selectNextStepsOption_onClick(DataSourceOptionType.SelectMultiple)}>\r\n
    {this.localizeString(\"3E Exchange Library - Multiple Products/Materials\")}
    \r\n
    {this.localizeString(\"Select multiple products or materials in your 3E Exchange Library.\")}
    \r\n
    \r\n }\r\n
    this.selectNextStepsOption_onClick(DataSourceOptionType.Import)}>\r\n
    {this.localizeString(\"In a Spreadsheet\")}
    \r\n
    {this.localizeString(\"Import the data for your report first.\")}
    \r\n
    \r\n
    this.selectNextStepsOption_onClick(DataSourceOptionType.NeedSupplyChainData)}>\r\n
    {this.localizeString(\"I need to ask my suppliers for data\")}
    \r\n
    {this.localizeString(\"Request Product & Material Passports, an easy way to get supply chain data. Your suppliers can use 3E Exchange for free to fill out Passports using a step-by-step guide.\")}
    \r\n
    \r\n
    \r\n {this.state.dataSourceOption === DataSourceOptionType.Import && this.state.selectedReportType !== null &&\r\n this.renderTemplateOptions(this.state.selectedReportType)\r\n }\r\n
    \r\n
    \r\n }\r\n {this.state.dataSourceOption !== DataSourceOptionType.NeedSupplyChainData &&\r\n

    \r\n {(this.state.dataSourceOption !== null) && ((this.state.selectedReportType !== \"reach-rohs-statement\") || (this.state.selectedRegulations.length > 0)) &&\r\n \r\n }\r\n

    \r\n }\r\n {this.state.dataSourceOption === DataSourceOptionType.NeedSupplyChainData && \r\n <>\r\n

    \r\n {this.localizeString(\"You can request data from your suppliers by sending them part names you would like more data on.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"Not sure what you need? Reach out in our in-app chat to talk to a 3E Exchange Team Member.\")}\r\n

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderTemplateOptions(selectedReportType: string) {\r\n let body: JSX.Element | null;\r\n\r\n const templateNames = BomTemplatesManager.getImportTemplatesForReportType(selectedReportType, this.props.appServices);\r\n\r\n if (templateNames.length === 1) {\r\n body = {this.localizeString(\"Download Import Template\")}\r\n }\r\n\r\n else if (templateNames.length > 1) {\r\n body = (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n else {\r\n body = null;\r\n }\r\n\r\n return body;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private startComplianceReport = async () => {\r\n const success = await this._towStarter.startTow(\r\n this.state.dataSourceOption!,\r\n \"ComplianceReport\",\r\n (inception, activeStep) => ({\r\n inception: inception,\r\n activeStep: activeStep,\r\n importMode: \"SingleProductSpreadsheet\",\r\n singleResultInventoryId: null,\r\n multiResultInventoryIds: null,\r\n importId: null,\r\n regulations: this.state.selectedRegulations,\r\n useStreamlinedGetStartedImportUi: true\r\n }));\r\n\r\n if (!success) {\r\n this.props.appServices.displayApiErrorMessage();\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private async startDeclareOrHpd(workflowType: \"Declare\" | \"HPD\") {\r\n const success = await this._towStarter.startTow(\r\n this.state.dataSourceOption!,\r\n workflowType,\r\n (inception, activeStep) => ({\r\n inception: inception,\r\n activeStep: activeStep,\r\n importMode: \"SingleProductSpreadsheet\",\r\n singleResultInventoryId: null,\r\n multiResultInventoryIds: null,\r\n importId: null,\r\n mode: \"TBD\",\r\n thirdPartyRequested: false,\r\n useStreamlinedGetStartedImportUi: true\r\n }));\r\n\r\n if (!success) {\r\n this.props.appServices.displayApiErrorMessage();\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private startDeclareLabel = async () => {\r\n await this.startDeclareOrHpd(\"Declare\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private startHpd = async () => {\r\n await this.startDeclareOrHpd(\"HPD\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private startGenericReport = async (reportType: string, reportContext: any | null = null, customDataPageId: string | null = null) => {\r\n const success = await this._towStarter.startTow(\r\n this.state.dataSourceOption!,\r\n \"GenericReport\",\r\n (inception, activeStep) => ({\r\n inception: inception,\r\n activeStep: activeStep,\r\n importMode: \"SingleProductSpreadsheet\",\r\n singleResultInventoryId: null,\r\n multiResultInventoryIds: null,\r\n importId: null,\r\n thirdPartyRequested: false,\r\n reportType: reportType,\r\n reportContext: reportContext,\r\n customDataPageId: customDataPageId,\r\n useStreamlinedGetStartedImportUi: true\r\n }));\r\n\r\n if (!success) {\r\n this.props.appServices.displayApiErrorMessage();\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n //\r\n // UI Events\r\n //\r\n\r\n // ===============================================================================\r\n\r\n private reportTypeSelector_click = (reportType: ReportTypes) => {\r\n const complianceEnabled = this.props.appServices.userContext!.userCapabilities.productComplianceEnabled;\r\n\r\n let selectedRegulations = [...this.state.selectedRegulations];\r\n\r\n if (!complianceEnabled && (reportType === ReportTypes.ComplianceReport)) {\r\n selectedRegulations = selectedRegulations.filter(r => r === \"rohs\");\r\n }\r\n\r\n this._shouldScrollToBottom = true;\r\n\r\n this.setState({\r\n selectedReportType: reportType,\r\n selectedRegulations: selectedRegulations\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private regulationCheckbox_change = (regulationId: string) => {\r\n this._shouldScrollToBottom = true;\r\n\r\n this.setState({\r\n selectedRegulations: this.state.selectedRegulations.includes(regulationId)\r\n ? this.state.selectedRegulations.filter(r => r !== regulationId)\r\n : this.state.selectedRegulations.concat([regulationId])\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private startWorkflowButton_click = () => {\r\n const reportTypeToHandlerMap: { [reportType: string]: () => Promise } = {\r\n [ReportTypes.ComplianceReport]: this.startComplianceReport,\r\n [ReportTypes.Declare]: this.startDeclareLabel,\r\n //\"declare-materials\": this.startDeclareLabel,\r\n [ReportTypes.Hpd]: this.startHpd,\r\n //\"hpd-material-threshold\": this.startHpd,\r\n //\"hpd-simple\": this.startHpd,\r\n //\"compliance-letter\": async () => await this.startGenericReport(\"compliance-letter\", { regulations: this.state.selectedRegulations }),\r\n [ReportTypes.RedListLetter]: async () => await this.startGenericReport(\"compliance-letter-lbc\"),\r\n [ReportTypes.Leed]: async () => await this.startGenericReport(\"leed\", null, \"standard_page_leed\"),\r\n [ReportTypes.C2c]: async () => await this.startGenericReport(\"c2c-report\", null, \"standard_page_c2c\"),\r\n [ReportTypes.Pcds]: async () => await this.startGenericReport(\"pcds\", null, \"standard_page_circularity\"),\r\n };\r\n\r\n const handler = reportTypeToHandlerMap[this.state.selectedReportType!];\r\n\r\n if (!handler) {\r\n throw new Error(`Unknown report type - ${this.state.selectedReportType}`);\r\n }\r\n\r\n this.props.appServices.trackEvent(\"get-started-start-report-workflow-clicked\");\r\n this.props.appServices.trackEvent(`get-started-start-report-workflow-${this.state.selectedReportType!}-clicked`);\r\n\r\n handler();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private selectNextStepsOption_onClick = (nextStepOption: DataSourceOptionType) => {\r\n this._shouldScrollToBottom = true;\r\n\r\n this.setState({\r\n dataSourceOption: nextStepOption\r\n });\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ appServices: state.appServices })\r\n)(StartReport as any);\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../store';\r\nimport { Link, RouteComponentProps, withRouter, generatePath } from 'react-router-dom';\r\nimport * as InviteSupplierStateController from '../../store/StateControllers/Supplier/InviteSuppliersStateController';\r\nimport { ToxnotReactStatusComponent, ToxnotReactStatusComponentState } from '../core/ToxnotReactStatusComponent';\r\nimport { LoadingSpinner, LoadingSpinnerSize } from '../core/LoadingSpinner';\r\nimport { ReportTypesManager } from '../../store/Managers/ReportTypesManager';\r\nimport { CollapsibleContainer } from '../core/CollapsibleContainer';\r\nimport { StandardRequestedDocumentType, SurveyComplianceRegulationValues, SurveyTemplateDataModel, SustainabilityAndCircularityIds, VocIds } from '../../store/Models/Surveys/SurveyDataModel';\r\nimport SelectSuppliersMaterialsTable from '../core/SelectSuppliersMaterialsTable';\r\nimport { surveyableColumns } from '../../store/StateControllers/Survey/SurveyStateController';\r\nimport * as SelectSuppliersMaterialsTableStateController from '../../store/StateControllers/Supplier/SelectSuppliersMaterialsTableStateController';\r\nimport './styles.css';\r\nimport { CreateAndEditSurveyComponentPaths } from '../Survey/SurveyComponentPaths';\r\nimport UserAddNamePromptModal from '../Survey/UserAddNamePromptModal';\r\nimport { ToxnotComponentProperties } from '../core/BaseApplicationComponents/ToxnotComponent';\r\nimport { ToxnotSignInRequiredComponent } from '../core/BaseApplicationComponents/ToxnotSignInRequiredComponent';\r\nimport { TeamRole } from '../../store/Models/UserContext';\r\n\r\n// ===============================================================================\r\n\r\ninterface StatusMessageBundle {\r\n state: ToxnotReactStatusComponentState;\r\n localizedMessage?: string | JSX.Element;\r\n localizedHeader?: string;\r\n}\r\n\r\n// ===============================================================================\r\n\r\ninterface RequestedDataRenderType {\r\n type: InviteSupplierStateController.RequestedDataSectionType;\r\n localizedFriendlyDescription: string;\r\n specifics: string[];\r\n}\r\n\r\n// ===============================================================================\r\n\r\ninterface OwnProps {\r\n shouldMakeTnSection: boolean\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport type InviteSuppliersProps =\r\n OwnProps &\r\n RouteComponentProps &\r\n ToxnotComponentProperties &\r\n InviteSupplierStateController.InviteSuppliersState &\r\n typeof InviteSupplierStateController.actionCreators & // ... plus action creators we've requested\r\n SelectSuppliersMaterialsTableStateController.SelectSuppliersMaterialsTableState &\r\n typeof SelectSuppliersMaterialsTableStateController.actionCreators;\r\n\r\n// ===============================================================================\r\n\r\ninterface InviteSuppiersState {\r\n openTemplateSelector: boolean;\r\n openedRequestDataSections: InviteSupplierStateController.RequestedDataSectionType[];\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Renders the main component for Inviting Suppliers.\r\n//\r\n\r\nclass InviteSuppliersCore extends ToxnotSignInRequiredComponent {\r\n\r\n // ===============================================================================\r\n\r\n private _inviteSuppliersStatusToStatusState: Record = {\r\n [InviteSupplierStateController.InvitingSuppliersStatus.Normal]: { state: ToxnotReactStatusComponentState.Normal },\r\n [InviteSupplierStateController.InvitingSuppliersStatus.StartingInvitation]: { state: ToxnotReactStatusComponentState.BeginOperation, localizedMessage: this.localizeString(\"Inviting Suppliers...\"), localizedHeader: this.localizeString(\"Invite Suppliers\") },\r\n [InviteSupplierStateController.InvitingSuppliersStatus.InvitationSent]: { state: ToxnotReactStatusComponentState.OperationSucceeded, localizedMessage: <>

    {this.localizeString(\"Your requests have been sent!\")}

    {this.localizeString(\"We'll email you when your requests are accepted.\")}

    {this.localizeString(\"Go to\")} {this.localizeString(\"My Surveys\")} {this.localizeString(\"to check the status of your requests.\")}

    , localizedHeader: this.localizeString(\"Invite Suppliers\") },\r\n [InviteSupplierStateController.InvitingSuppliersStatus.InviteFailed]: { state: ToxnotReactStatusComponentState.OperationFailed, localizedMessage: this.localizeString(\"Sorry, there was an issue accessing the database.\"), localizedHeader: this.localizeString(\"Invite Suppliers\") },\r\n [InviteSupplierStateController.InvitingSuppliersStatus.InviteFailedInvalidEmailToken]: { state: ToxnotReactStatusComponentState.OperationFailed, localizedMessage: this.localizeString(\"Your email connection has expired. Please reconnect your account.\"), localizedHeader: this.localizeString(\"Invite Suppliers\") }\r\n };\r\n\r\n // ===============================================================================\r\n\r\n protected override getDisallowedRoles() {\r\n return [TeamRole.Marketing];\r\n }\r\n // ===============================================================================\r\n\r\n constructor(props: InviteSuppliersProps) {\r\n super(props);\r\n\r\n this.state = {\r\n openTemplateSelector: false,\r\n openedRequestDataSections: []\r\n };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public componentDidMount() {\r\n this.props.initialize();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public componentDidUpdate(prevProps: InviteSuppliersProps) {\r\n if (prevProps.isSelectingSuppliersLoading && !this.props.isSelectingSuppliersLoading) {\r\n this.scrollToBottom();\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public componentWillUnmount() {\r\n this.props.resetState(false);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderLoadingElement = () => (\r\n
    \r\n \r\n
    \r\n );\r\n\r\n // ===============================================================================\r\n\r\n private renderStatusComponent = () => {\r\n const statusData = this._inviteSuppliersStatusToStatusState[this.props.invitingSuppliersStatus];\r\n\r\n return (\r\n <>\r\n \r\n {statusData.state === ToxnotReactStatusComponentState.OperationSucceeded &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderExceededQuotaWarning = () => (\r\n <>\r\n
    \r\n

    \r\n {this.localizeString(\"Sending these requests will cause you to go over how many materials you are allowed in your library. Therefore, some surveys may be sent as \\\"open requests\\\" allowing your suppliers to choose the materials they want to respond with.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"You can upgrade your account to be allowed more materials.\")} {this.localizeString(\"Click here\")} {this.localizeString(\"to view upgraded plans.\")}\r\n

    \r\n
    \r\n \r\n {\" \"}\r\n \r\n \r\n );\r\n\r\n // ===============================================================================\r\n\r\n private renderLeftSideSection = () => (\r\n
    \r\n
    \r\n {this.localizeString(\"Passport Data Requested\")}\r\n
    \r\n \r\n
    \r\n { this.renderTemplatePicker() }\r\n
    \r\n \r\n {this.renderRequestedDataOptions()}\r\n
    \r\n );\r\n\r\n // ===============================================================================\r\n\r\n private renderTemplatePicker() {\r\n const sortedTemplatesArray = this.props.templates.orderBy(t => t.name);\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getFriendlyNameForSpecific(specific: string) {\r\n const map: { [type: string]: string } = {\r\n [SustainabilityAndCircularityIds.EmbodiedCarbon.toString()]: this.localizeString(\"Embodied Carbon\"),\r\n [SustainabilityAndCircularityIds.WaterUsageData.toString()]: this.localizeString(\"Water Usage Data\"),\r\n [SustainabilityAndCircularityIds.EndOfLifeOptions.toString()]: this.localizeString(\"End of Life Options\"),\r\n [SustainabilityAndCircularityIds.Contact.toString()]: this.localizeString(\"Contact\"),\r\n [SustainabilityAndCircularityIds.Instructions.toString()]: this.localizeString(\"Instructions\"),\r\n [SustainabilityAndCircularityIds.CarbonTransparency.toString()]: this.localizeString(\"Carbon Transparency\"),\r\n [SustainabilityAndCircularityIds.CarbonOther.toString()]: this.localizeString(\"Carbon Assessment, Commitments, and Optimization\"),\r\n [VocIds.VocTransparency.toString()]: this.localizeString(\"VOC Transparency\"),\r\n [VocIds.VocOther.toString()]: this.localizeString(\"VOC Assessment, Commitments, and Optimization\"),\r\n ...this.props.columnIdsToFriendlyNames,\r\n ...SurveyComplianceRegulationValues.getLocalizedDisplayNameMap(this.props.dynamiceRegulations)\r\n };\r\n\r\n // This is a reminder specifc and we treat these slightly different...\r\n if (specific.includes(\"tn-reminder-\")) {\r\n return specific.substring((\"tn-reminder-\").length) + \" \" + this.localizeString(\"days after request\")\r\n }\r\n\r\n return map[specific] ?? specific;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderRequestedDataSpecificsForType = (requestedDataType: InviteSupplierStateController.RequestedDataSectionType, specifics: string[]) => {\r\n let body: JSX.Element;\r\n\r\n if (specifics.length === 0) {\r\n body = (\r\n

    {this.localizeString(\"View Details in Editor.\")}

    \r\n );\r\n }\r\n else {\r\n const includedSpecifics = specifics.filter(s => this.props.requestedDataSections[requestedDataType]?.includes(s) ?? false);\r\n const excludedSpecifics = specifics.filter(s => !this.props.requestedDataSections[requestedDataType]?.includes(s) ?? true);\r\n\r\n body = (\r\n <>\r\n {includedSpecifics.length > 0 &&\r\n
    \r\n {includedSpecifics.map((s, si) => (
    {this.getFriendlyNameForSpecific(s)}
    ))}\r\n
    \r\n }\r\n {excludedSpecifics.length > 0 &&\r\n
    0 ? \"border\" : \"\")}>\r\n {includedSpecifics.length > 0 &&

    {this.localizeString(\"Not selected:\")}

    }\r\n {excludedSpecifics.map((s, si) => (
    {this.getFriendlyNameForSpecific(s)}
    ))}\r\n
    \r\n }\r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {body}\r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * This method returns all possible requested data sections and the all the specifics for each\r\n * of those sections. This is for comparing with what the current template is asking for,\r\n * so a user can see what sections and specifics are included and excluded. \r\n * \r\n * For some requested data sections i.e reminders, it doesn't make sense to list out all possible\r\n * specific values (since that would be every day until infinity). Therefore, with these\r\n * sections we simply list out what the template is asking for. If the template is not asking this section\r\n * it no specifics are rendered.\r\n */\r\n private getAllRequestedDataToAskFor() {\r\n const template = InviteSupplierStateController.getCurrentlySelectedTemplateFromState(this.props);\r\n\r\n //\r\n // Docs and Certs\r\n //\r\n\r\n const otherDocsAndCertsToAdd = template?.dataRequested.documentsCertificationList.map(d => d.documentNameIfOther).filter(d => d.trim() !== \"\") ?? [];\r\n const allDocsAndCerts = Object.keys(StandardRequestedDocumentType).concat(otherDocsAndCertsToAdd);\r\n\r\n //\r\n // Material Disclosure\r\n // \r\n\r\n const materialDisclosureSpecifics = surveyableColumns.map(c => c.columnId);\r\n\r\n //\r\n // Compliance\r\n //\r\n\r\n const complianceSpecifics = this.props.dynamiceRegulations.orderBy(dr => dr.config.name).map(dr => dr.regulationId);\r\n\r\n //\r\n // Circularity\r\n //\r\n\r\n const circularitySpecifics = [SustainabilityAndCircularityIds.EndOfLifeOptions, SustainabilityAndCircularityIds.Contact, SustainabilityAndCircularityIds.Instructions]\r\n\r\n const ret: RequestedDataRenderType[] = [\r\n { type: InviteSupplierStateController.RequestedDataSectionType.MaterialDisclosure, localizedFriendlyDescription: this.localizeString(\"Material Disclosure\"), specifics: materialDisclosureSpecifics },\r\n { type: InviteSupplierStateController.RequestedDataSectionType.Compliance, localizedFriendlyDescription: this.localizeString(\"Compliance\"), specifics: complianceSpecifics },\r\n { type: InviteSupplierStateController.RequestedDataSectionType.Circularity, localizedFriendlyDescription: this.localizeString(\"Circularity\"), specifics: circularitySpecifics },\r\n { type: InviteSupplierStateController.RequestedDataSectionType.Sustainability, localizedFriendlyDescription: this.localizeString(\"Lifecycle Impacts\"), specifics: [SustainabilityAndCircularityIds.EmbodiedCarbon, SustainabilityAndCircularityIds.WaterUsageData, SustainabilityAndCircularityIds.CarbonTransparency, SustainabilityAndCircularityIds.CarbonOther] },\r\n { type: InviteSupplierStateController.RequestedDataSectionType.Voc, localizedFriendlyDescription: this.localizeString(\"VOC\"), specifics: [VocIds.VocTransparency, VocIds.VocOther] },\r\n { type: InviteSupplierStateController.RequestedDataSectionType.DocsAndCerts, localizedFriendlyDescription: this.localizeString(\"Documents & Certifications\"), specifics: allDocsAndCerts },\r\n { type: InviteSupplierStateController.RequestedDataSectionType.CompletionInstructions, localizedFriendlyDescription: this.localizeString(\"Completion Instructions\"), specifics: this.getSpecificsFromRequestingData(InviteSupplierStateController.RequestedDataSectionType.CompletionInstructions) },\r\n { type: InviteSupplierStateController.RequestedDataSectionType.RequestInstructions, localizedFriendlyDescription: this.localizeString(\"Request Instructions\"), specifics: this.getSpecificsFromRequestingData(InviteSupplierStateController.RequestedDataSectionType.RequestInstructions) },\r\n { type: InviteSupplierStateController.RequestedDataSectionType.Reminders, localizedFriendlyDescription: this.localizeString(\"Scheduled Reminders\"), specifics: this.getSpecificsFromRequestingData(InviteSupplierStateController.RequestedDataSectionType.Reminders) },\r\n { type: InviteSupplierStateController.RequestedDataSectionType.CustomQuestionnaires, localizedFriendlyDescription: this.localizeString(\"Custom Questionnaires\"), specifics: this.getSpecificsFromRequestingData(InviteSupplierStateController.RequestedDataSectionType.CustomQuestionnaires) }\r\n ];\r\n\r\n return ret;\r\n }\r\n\r\n // ===============================================================================\r\n \r\n /**\r\n * Given a requested data type, this will return whatever is in the current requesting\r\n * data specifics in the state for that type. This is useful, when the specifics we\r\n * are displaying are just whatever the user is already requesting.\r\n * \r\n * @param type the tpe of Requested Data we want to check in the state.\r\n */\r\n private getSpecificsFromRequestingData(type: InviteSupplierStateController.RequestedDataSectionType): string[] {\r\n if (!this.props.requestedDataSections[type]) {\r\n return [];\r\n }\r\n\r\n return this.props.requestedDataSections[type];\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderRequestedDataOptions() {\r\n const requestedSectionList = this.getAllRequestedDataToAskFor()\r\n .sort((a, b) => {\r\n const a_section = this.props.requestedDataSections[a.type];\r\n const b_section = this.props.requestedDataSections[b.type];\r\n\r\n if (a_section && !b_section) {\r\n return -1;\r\n }\r\n else if (b_section && !a_section) {\r\n return 1;\r\n }\r\n else {\r\n if (a.type === InviteSupplierStateController.RequestedDataSectionType.Languages) {\r\n return 1;\r\n }\r\n else if (b.type === InviteSupplierStateController.RequestedDataSectionType.Languages) {\r\n return -1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n });\r\n\r\n return (\r\n
    \r\n {requestedSectionList.map((d, i) => (\r\n this.dataSectionToggle_click(d.type)}\r\n title={d.localizedFriendlyDescription}\r\n className={(this.props.requestedDataSections[d.type] !== undefined) ? \"requested\" : \"not-requested\"}\r\n hideToggle={d.specifics.length === 0}\r\n >\r\n {this.state.openedRequestDataSections.includes(d.type) && this.renderRequestedDataSpecificsForType(d.type, d.specifics)}\r\n \r\n ))}\r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public renderConcreteComponent() {\r\n\r\n let fullContent: JSX.Element;\r\n const hasLinkedMaterials = this.suppliersToInviteHaveInventoriesWithLinkedMaterials();\r\n const hasMaterialDisclosureLinked = this.props.currentlySelectedTemplateId !== null\r\n ? (InviteSupplierStateController.getCurrentlySelectedTemplateFromState(this.props)?.dataRequested.materialDisclosureAsked ?? false)\r\n : false;\r\n \r\n if (this.props.isLoading) {\r\n fullContent = this.renderLoadingElement();\r\n }\r\n else {\r\n const supplierOnlyMode = InviteSupplierStateController.isSupplierOnlyMode(this.props);\r\n\r\n switch (this.props.activeView) {\r\n case InviteSupplierStateController.InviteSuppliersViewType.InvitingSuppliers:\r\n fullContent = this.renderStatusComponent();\r\n break;\r\n case InviteSupplierStateController.InviteSuppliersViewType.ExceedQuotaWarning:\r\n fullContent = this.renderExceededQuotaWarning();\r\n break;\r\n default:\r\n fullContent = (\r\n \r\n
    \r\n \r\n {\" \"}\r\n \r\n {\" \"}\r\n \r\n {\" \"}\r\n \r\n \r\n {\" \"}\r\n {this.localizeString(\"Download Import Example\")}\r\n
    \r\n {hasLinkedMaterials && hasMaterialDisclosureLinked && < div className=\"alert alert-warning\">\r\n

    \r\n {this.localizeString(\"Some of the selected products/materials contain linked materials. 3E Exchange can't ask for Material Disclosure for linked materials. Please edit the template or remove the products/materials with linked materials.\")}\r\n

    \r\n
    }\r\n
    \r\n {!this.props.isSelectingSuppliersLoading && this.renderLeftSideSection()}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n {fullContent}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private suppliersToInviteHaveInventoriesWithLinkedMaterials() {\r\n for (const supplierRow of this.props.supplierRowModels) {\r\n if (supplierRow.supplierId !== null) {\r\n const supplierInventories = this.props.supplierIdsToInventories[supplierRow.supplierId] ?? [];\r\n const inventoryIdsWithLinkedMaterials = supplierInventories.filter((i,_) => i.hasLinkedMaterial).map(inv => inv.inventoryId);\r\n const hasLinkedMaterial = supplierRow.requestedMaterials.some(v => v.inventoryId !== null ? inventoryIdsWithLinkedMaterials.includes(v.inventoryId) : false);\r\n if (hasLinkedMaterial) {\r\n return hasLinkedMaterial;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private scrollToBottom = () => {\r\n $(\"#invite-suppliers-core-scroll-to-div\")[0]?.scrollIntoView();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private userAddNamePrompt_confirmed = (name: string) => {\r\n this.props.inviteSuppliers(InviteSupplierStateController.CreateSurveysMode.Send);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n //\r\n // UI Events\r\n //\r\n\r\n private templatePicker_templateSelected = (templateId: string) => {\r\n this.props.updateCurrentlySelectedTemplate(templateId);\r\n\r\n this.setState({\r\n openTemplateSelector: false\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private sendRequestsButton_click = (mode: InviteSupplierStateController.CreateSurveysMode) => {\r\n const selectedTemplate = this.props.templates.firstOrDefault(t => t.templateId === this.props.currentlySelectedTemplateId);\r\n\r\n if (selectedTemplate === null) {\r\n throw new Error(`Can't find template: id=${this.props.currentlySelectedTemplateId}`);\r\n }\r\n\r\n if (selectedTemplate.dataRequested.customQuestionsAsked &&\r\n (selectedTemplate.bomQuestionnaireId !== null) &&\r\n (selectedTemplate.dataRequested.materialDisclosureAsked || (selectedTemplate.questionnaireAnswerThatMakesBomDataRequired !== null))) {\r\n const questionnaire = this.props.questionnaires.firstOrDefault(q => q.questionnaireId === selectedTemplate.bomQuestionnaireId);\r\n\r\n if (questionnaire?.pages.selectMany(page => page.questions).some(question => question.type === \"ingredients-table\")) {\r\n alert(this.localizeString(\"Sorry, your template requests both Material Disclosure and a Custom Questionnaire with an ingredient table. You can't ask for Material Disclosure if you're asking for Ingredient Tables in your Questionnaire.\"));\r\n return;\r\n }\r\n }\r\n \r\n if (this.getUserContextForSignedInUser().fullName.trim() === \"\") {\r\n $('#user-add-name-prompt-modal').modal('show');\r\n return;\r\n }\r\n\r\n this.props.inviteSuppliers(mode);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private inviteSuppliersDone_click = () => {\r\n this.props.resetState();\r\n this.props.history.push(\"/Start\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private dataSectionToggle_click = (dataSectionType: InviteSupplierStateController.RequestedDataSectionType) => {\r\n let newOpenedRequestDataSections = [...this.state.openedRequestDataSections];\r\n newOpenedRequestDataSections = newOpenedRequestDataSections.filter(r => r !== dataSectionType);\r\n\r\n if (!this.state.openedRequestDataSections.includes(dataSectionType)) {\r\n newOpenedRequestDataSections.push(dataSectionType)\r\n }\r\n\r\n this.setState({\r\n openedRequestDataSections: newOpenedRequestDataSections\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private importSuppliersButton_click = () => {\r\n $('#import-suppliers-file-upload').click();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private importSuppliersFileInput_onChange = (e: React.ChangeEvent) => {\r\n this.props.importSuppliers(e)\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n (state: ApplicationState, ownProps: OwnProps) => ({\r\n ...state.inviteSuppliersState,\r\n appServices: state.appServices,\r\n ...ownProps,\r\n ...state.selectSuppliersMaterialsTableState\r\n }),\r\n { ...InviteSupplierStateController.actionCreators, ...SelectSuppliersMaterialsTableStateController.actionCreators } // Selects which action creators are merged into the component's props\r\n)(withRouter(InviteSuppliersCore) as any);\r\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../store';\r\nimport TowStarter, { DataSourceOptionType } from '../../tow/TowStarter';\r\nimport { ToxnotComponentProperties } from '../core/BaseApplicationComponents/ToxnotComponent';\r\nimport { ToxnotSignInRequiredComponent } from '../core/BaseApplicationComponents/ToxnotSignInRequiredComponent';\r\n\r\nimport './styles.css';\r\n\r\nenum ImportClass {\r\n Products,\r\n Materials,\r\n Suppliers\r\n}\r\n\r\nenum InventoryModeType {\r\n One,\r\n Multiple\r\n}\r\n\r\nenum InventoryDataType {\r\n Bom,\r\n Sds,\r\n SummaryData,\r\n HpdBuilderData,\r\n ScipData,\r\n IpcXml\r\n}\r\n\r\ninterface StartImportState {\r\n selectedImportClass: ImportClass | null;\r\n inventoryMode: InventoryModeType | null;\r\n inventoryData: InventoryDataType | null;\r\n}\r\n\r\ninterface SelectionMetadata {\r\n localizedName: string | JSX.Element;\r\n localizedDescription: string | JSX.Element;\r\n}\r\n\r\nenum TargetTowImportWorklowModeType {\r\n SingleProductSpreadsheet = \"SingleProductSpreadsheet\",\r\n SingleMaterialSpreadsheet = \"SingleMaterialSpreadsheet\",\r\n SingleProductSds = \"SingleProductSds\",\r\n SingleMaterialSds = \"SingleMaterialSds\",\r\n ProductLibrary = \"ProductLibrary\",\r\n MaterialLibrary = \"MaterialLibrary\",\r\n SdsLibrary = \"SdsLibrary\",\r\n HpdBuilder = \"HpdBuilder\",\r\n SummaryDataLibrary = \"SummaryDataLibrary\",\r\n SummaryDataSingleInventory = \"SummaryDataSingleInventory\",\r\n ScipData = \"ScipData\",\r\n SupplierData = \"SupplierData\",\r\n TestReport = \"TestReport\",\r\n Ipc1752aXml = \"Ipc1752aXml\"\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Sub start component for importing data. Walks the user through a wizard that\r\n// helps them select their import type, and then kicks off a TOW for that\r\n// type of import.\r\n//\r\nclass StartImport extends ToxnotSignInRequiredComponent {\r\n private _importClassToMetadata: { [importClass: number]: SelectionMetadata };\r\n private _inventoryModeToMetadata: { [inventoryMode: number]: SelectionMetadata };\r\n private _inventoryDataToMetadata: { [inventoryData: number]: SelectionMetadata };\r\n private _importClasses: ImportClass[];\r\n private _inventoryModes: InventoryModeType[];\r\n private _inventoryDataTypes: InventoryDataType[];\r\n private _shouldScrollToBottom: boolean;\r\n private _towStarter: TowStarter;\r\n\r\n // ===============================================================================\r\n\r\n protected override getDisallowedRoles() {\r\n return [];\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Instantiates the new object w/ the given properties\r\n * \r\n * @param props\r\n */\r\n public constructor(props: ToxnotComponentProperties) {\r\n super(props);\r\n\r\n this._shouldScrollToBottom = false;\r\n\r\n this.state = {\r\n selectedImportClass: null,\r\n inventoryMode: null,\r\n inventoryData: null\r\n };\r\n\r\n this._towStarter = new TowStarter();\r\n\r\n this._importClassToMetadata = {\r\n [ImportClass.Products]: {\r\n localizedName: this.localizeString(\"Products\"),\r\n localizedDescription: this.localizeString(\"Products are final finished goods, in most cases what your company sells.\")\r\n },\r\n [ImportClass.Materials]: {\r\n localizedName: this.localizeString(\"Materials\"),\r\n localizedDescription: this.localizeString(\"Materials are components or materials that make up your finished products.\")\r\n },\r\n [ImportClass.Suppliers]: {\r\n localizedName: this.localizeString(\"Suppliers\"),\r\n localizedDescription: this.localizeString(\"Supplier information lets you set names and contacts for suppliers so you can send Surveys.\")\r\n }\r\n };\r\n\r\n this._importClasses = [ImportClass.Products, ImportClass.Materials, ImportClass.Suppliers];\r\n\r\n this._inventoryModeToMetadata = {\r\n [InventoryModeType.One]: {\r\n localizedName: this.localizeString(\"One Item\"),\r\n localizedDescription: this.localizeString(\"Import data for a single Product or Material\")\r\n },\r\n [InventoryModeType.Multiple]: {\r\n localizedName: this.localizeString(\"Many Item\"),\r\n localizedDescription: this.localizeString(\"Import data for a mulitple Products or Materials at once\")\r\n }\r\n };\r\n\r\n this._inventoryModes = [InventoryModeType.One, InventoryModeType.Multiple];\r\n\r\n this._inventoryDataToMetadata = {\r\n [InventoryDataType.Bom]: {\r\n localizedName: this.localizeString(\"BOM Data\"),\r\n localizedDescription: this.localizeString(\"A Bill of Materials spreadsheet with data on your sub-materials and ingredients. e.g. Part Name, % by weight, CASRN, Levels\")\r\n },\r\n [InventoryDataType.Sds]: {\r\n localizedName: this.localizeString(\"SDS Files\"),\r\n localizedDescription: this.localizeString(\"You can import an SDS PDF file and 3E Exchange will extract ingredients and other data out of it.\")\r\n },\r\n [InventoryDataType.SummaryData]: {\r\n localizedName: this.localizeString(\"Compliance/Summary Data\"),\r\n localizedDescription: this.localizeString(\"Non-BOM Data about your Product like compliance status, general description, volume sold, etc.\")\r\n },\r\n [InventoryDataType.HpdBuilderData]: {\r\n localizedName: this.localizeString(\"Data from HPD Builder\"),\r\n localizedDescription: this.localizeString(\"You can import products from the HPD Builder service. You will need to sign in to HPD Builder.\")\r\n },\r\n [InventoryDataType.ScipData]: {\r\n localizedName: this.localizeString(\"EU SCIP Data\"),\r\n localizedDescription: this.localizeString(\"You can bulk import EU SCIP-related data, e.g. article composition & categories.\")\r\n },\r\n [InventoryDataType.IpcXml]: {\r\n localizedName: this.localizeString(\"IPC XML Files\"),\r\n localizedDescription: this.localizeString(\"You can upload an IPC1752A XML file and 3E Exchange will extract BOM and compliance data from it. You can bulk import IPC1752A XML files.\")\r\n }\r\n };\r\n\r\n this._inventoryDataTypes = [InventoryDataType.Bom, InventoryDataType.Sds, InventoryDataType.SummaryData, InventoryDataType.HpdBuilderData, InventoryDataType.ScipData, InventoryDataType.IpcXml];\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Side effects that happen whenever the state is updated - scroll to the bottom of the screen as needed.\r\n */\r\n public componentDidUpdate() {\r\n if (this._shouldScrollToBottom) {\r\n $(\"#scroll-end-target\")[0].scrollIntoView();\r\n\r\n this._shouldScrollToBottom = false;\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Renders the main view\r\n */\r\n public renderConcreteComponent() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.localizeString(\"Import Products, Materials, or Suppliers\")}\r\n
    \r\n

    \r\n {this.localizeString(\"What type of data do you want to import?\")}
    \r\n

    \r\n
    \r\n
    \r\n {this._importClasses.map((importClass, importClassIndex) => (\r\n
    this.importClassSelector_click(importClass)}>\r\n
    {this._importClassToMetadata[importClass].localizedName}
    \r\n
    {this._importClassToMetadata[importClass].localizedDescription}
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n {((this.state.selectedImportClass === ImportClass.Products) || (this.state.selectedImportClass === ImportClass.Materials)) && \r\n \r\n

    \r\n {this.localizeString(\"Are you uploading data for one item or multiple items?\")}\r\n

    \r\n
    \r\n
    \r\n {this._inventoryModes.map((inventoryMode, inventoryModeIndex) => (\r\n
    this.inventoryModeSelector_click(inventoryMode)}>\r\n
    {this._inventoryModeToMetadata[inventoryMode].localizedName}
    \r\n
    {this._inventoryModeToMetadata[inventoryMode].localizedDescription}
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n {(this.state.inventoryMode !== null) &&\r\n \r\n

    \r\n {this.localizeString(\"What type of data do you want to import?\")}\r\n

    \r\n
    \r\n
    \r\n {this._inventoryDataTypes.map((inventoryData, inventoryDataIndex) => (\r\n
    this.inventoryDataSelector_click(inventoryData)}>\r\n
    {this._inventoryDataToMetadata[inventoryData].localizedName}
    \r\n
    {this._inventoryDataToMetadata[inventoryData].localizedDescription}
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n {(this.state.inventoryData === InventoryDataType.Bom) &&\r\n \r\n {(this.state.inventoryMode === InventoryModeType.One) &&\r\n \r\n

    \r\n {this.localizeString(\"You can update existing data or create new suppliers. Your imported data will be available in your My Suppliers library.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"First, download & fill out an Import Template.\")}\r\n

    \r\n \r\n
    \r\n }\r\n {(this.state.inventoryMode === InventoryModeType.Multiple) &&\r\n \r\n

    \r\n {this.localizeString(\"You can easily import your entire Product or Material Library into 3E Exchange. Set up a spreadsheet that contains BOM data for all of your Products/Materials.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"First, download & fill out an Import Template.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"Download Import Template\")}\r\n

    \r\n
    \r\n }\r\n
    \r\n }\r\n {(this.state.inventoryData === InventoryDataType.Sds) &&\r\n \r\n

    \r\n {this.localizeString(\"You can import SDS PDF files. 3E Exchange will scan the PDFs and automatically import ingredient data along with other SDS data.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"You'll be able to QA the result and correct any issues with the data.\")}\r\n

    \r\n
    \r\n }\r\n {(this.state.inventoryData === InventoryDataType.SummaryData) &&\r\n \r\n

    \r\n {this.localizeString(\"Summary Data is non-BOM, non-ingredient data. e.g. Compliance determinations, general information about a Product/Material.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"Download & fill out this import Template. The import template shows you all the fields you can import.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"Download Import Template\")}\r\n

    \r\n
    \r\n }\r\n {(this.state.inventoryData === InventoryDataType.HpdBuilderData) &&\r\n \r\n

    \r\n {this.localizeString(\"You can import product data from the HPD Builder service.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"You'll need to sign in to your HPD Builder account to connect and then you can import any products you have.\")}\r\n

    \r\n
    \r\n }\r\n {(this.state.inventoryData === InventoryDataType.ScipData) &&\r\n \r\n

    \r\n {this.localizeString(\"You can import SCIP-related data for one or many products/materials. Please use the template below for your import:\")}\r\n

    \r\n

    \r\n {this.localizeString(\"Download Import Template\")}\r\n

    \r\n
    \r\n }\r\n {(this.state.inventoryData === InventoryDataType.IpcXml) &&\r\n \r\n

    \r\n {this.localizeString(\"You can import IPC1752A XML files. 3E Exchange will extract and import BOM and compliance data from it for multiple products.\")}\r\n

    \r\n
    \r\n }\r\n
    \r\n }\r\n
    \r\n }\r\n {(this.state.selectedImportClass === ImportClass.Suppliers) &&\r\n \r\n

    \r\n {this.localizeString(\"You can update existing data or create new suppliers. Your imported data will be available in your My Suppliers library.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"You can send Surveys to the suppliers in your library.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"First, download & fill out this import Template.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"Download Import Template\")}\r\n

    \r\n
    \r\n }\r\n {((this.state.selectedImportClass === ImportClass.Suppliers) || ((this.state.inventoryMode !== null) && (this.state.inventoryData !== null))) &&\r\n \r\n

    \r\n {this.localizeString(\"Start the Import Workflow when you have your import files ready.\")}\r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n //\r\n // UI Events\r\n //\r\n\r\n private importClassSelector_click = (importClass: ImportClass) => {\r\n this._shouldScrollToBottom = true;\r\n\r\n if (importClass === ImportClass.Products) {\r\n this._inventoryModeToMetadata[InventoryModeType.One].localizedName = this.localizeString(\"One Product\");\r\n this._inventoryModeToMetadata[InventoryModeType.Multiple].localizedName = this.localizeString(\"Many Products\");\r\n }\r\n else if (importClass === ImportClass.Materials) {\r\n this._inventoryModeToMetadata[InventoryModeType.One].localizedName = this.localizeString(\"One Material\");\r\n this._inventoryModeToMetadata[InventoryModeType.Multiple].localizedName = this.localizeString(\"Many Materials\");\r\n }\r\n\r\n this.setState({\r\n selectedImportClass: importClass,\r\n inventoryMode: null,\r\n inventoryData: null\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private inventoryModeSelector_click = (inventoryMode: InventoryModeType) => {\r\n this._shouldScrollToBottom = true;\r\n\r\n this.setState({\r\n inventoryMode: inventoryMode,\r\n inventoryData: null\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private inventoryDataSelector_click = (inventoryData: InventoryDataType) => {\r\n this._shouldScrollToBottom = true;\r\n\r\n this.setState({\r\n inventoryData: inventoryData\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private startWorkflowButton_click = async () => {\r\n let importMode: TargetTowImportWorklowModeType | null = null;\r\n let towOption: DataSourceOptionType | null = null;\r\n\r\n if (this.state.selectedImportClass === ImportClass.Suppliers) {\r\n importMode = TargetTowImportWorklowModeType.SupplierData;\r\n towOption = DataSourceOptionType.ImportSupplierData;\r\n }\r\n else {\r\n // products/materials\r\n if (this.state.inventoryMode === InventoryModeType.One) {\r\n switch (this.state.inventoryData) {\r\n case InventoryDataType.Bom:\r\n importMode = this.state.selectedImportClass === ImportClass.Products\r\n ? TargetTowImportWorklowModeType.SingleProductSpreadsheet\r\n : TargetTowImportWorklowModeType.SingleMaterialSpreadsheet;\r\n break;\r\n case InventoryDataType.Sds:\r\n importMode = this.state.selectedImportClass === ImportClass.Products\r\n ? TargetTowImportWorklowModeType.SingleProductSds\r\n : TargetTowImportWorklowModeType.SingleMaterialSds;\r\n break;\r\n case InventoryDataType.SummaryData:\r\n importMode = TargetTowImportWorklowModeType.SummaryDataLibrary;\r\n towOption = DataSourceOptionType.ImportSummaryData;\r\n break;\r\n case InventoryDataType.HpdBuilderData:\r\n importMode = TargetTowImportWorklowModeType.HpdBuilder;\r\n towOption = DataSourceOptionType.ImportHpdBuilder;\r\n break;\r\n case InventoryDataType.ScipData:\r\n importMode = TargetTowImportWorklowModeType.ScipData;\r\n towOption = DataSourceOptionType.ImportScipData;\r\n break;\r\n case InventoryDataType.IpcXml:\r\n importMode = TargetTowImportWorklowModeType.Ipc1752aXml;\r\n towOption = DataSourceOptionType.Import;\r\n break;\r\n }\r\n }\r\n else if (this.state.inventoryMode === InventoryModeType.Multiple) {\r\n switch (this.state.inventoryData) {\r\n case InventoryDataType.Bom:\r\n importMode = this.state.selectedImportClass === ImportClass.Products\r\n ? TargetTowImportWorklowModeType.ProductLibrary\r\n : TargetTowImportWorklowModeType.MaterialLibrary;\r\n break;\r\n case InventoryDataType.Sds:\r\n importMode = TargetTowImportWorklowModeType.SdsLibrary;\r\n break;\r\n case InventoryDataType.SummaryData:\r\n importMode = TargetTowImportWorklowModeType.SummaryDataLibrary;\r\n towOption = DataSourceOptionType.ImportSummaryData;\r\n break;\r\n case InventoryDataType.HpdBuilderData:\r\n importMode = TargetTowImportWorklowModeType.HpdBuilder;\r\n towOption = DataSourceOptionType.ImportHpdBuilder;\r\n break;\r\n case InventoryDataType.ScipData:\r\n importMode = TargetTowImportWorklowModeType.ScipData;\r\n towOption = DataSourceOptionType.ImportScipData;\r\n break;\r\n case InventoryDataType.IpcXml:\r\n importMode = TargetTowImportWorklowModeType.Ipc1752aXml;\r\n towOption = DataSourceOptionType.Import;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (importMode === null) {\r\n throw new Error(\"Non-implemented config\");\r\n }\r\n\r\n this.props.appServices.trackEvent(\"get-started-start-import-workflow-clicked\");\r\n this.props.appServices.trackEvent(`get-started-start-import-workflow-${importMode}-clicked`);\r\n\r\n const success = await this._towStarter.startTow(\r\n towOption ?? DataSourceOptionType.Import,\r\n \"GetStartedImportData\",\r\n (inception, activeStep) => ({\r\n inception: inception,\r\n activeStep: activeStep,\r\n importMode: importMode,\r\n singleResultInventoryId: null,\r\n multiResultInventoryIds: null,\r\n importId: null,\r\n sdsOverwrite: null\r\n }));\r\n\r\n if (!success) {\r\n this.props.appServices.displayApiErrorMessage();\r\n }\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ appServices: state.appServices })\r\n)(StartImport as any);\r\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../store';\r\nimport { ToxnotServiceClient } from '../../store/ToxnotServiceClient';\r\nimport { ToxnotComponentProperties } from '../core/BaseApplicationComponents/ToxnotComponent';\r\nimport TowStarter, { DataSourceOptionType } from '../../tow/TowStarter';\r\n\r\nimport './styles.css';\r\nimport { Link } from 'react-router-dom';\r\nimport { BomTemplatesManager } from '../../store/Managers/BomTemplatesManager';\r\nimport { data } from 'jquery';\r\nimport { ToxnotSignInRequiredComponent } from '../core/BaseApplicationComponents/ToxnotSignInRequiredComponent';\r\nimport { TeamRole } from '../../store/Models/UserContext';\r\n\r\ninterface StartPassportState {\r\n towOption: DataSourceOptionType | null;\r\n}\r\n\r\nclass StartPassport extends ToxnotSignInRequiredComponent {\r\n private _towStarter: TowStarter;\r\n\r\n // ===============================================================================\r\n\r\n public constructor(props: ToxnotComponentProperties) {\r\n super(props);\r\n\r\n this.state = {\r\n towOption: null\r\n };\r\n\r\n this._towStarter = new TowStarter();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected override getDisallowedRoles() {\r\n return [];\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public renderConcreteComponent() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.localizeString(\"Share Passports on the Passport Library\")}\r\n
    \r\n

    \r\n {this.localizeString(\"You can securely share your material data with your customers by publishing a Material Passport on the Passport Library.\")}
    \r\n

    \r\n
    \r\n
      \r\n
    • {this.localizeString(\"Easily manage customer access to your data\")}
    • \r\n
    • {this.localizeString(\"Use your Company Page to promote your Passports\")}
    • \r\n
    • {this.localizeString(\"Protect proprietary IP\")}
    • \r\n
    \r\n
    \r\n

    \r\n {this.localizeString(\"Check out existing Passports on the Passport Library\")}\r\n {\" \"}{this.localizeString(\"or\")}{\" \"}\r\n {this.localizeString(\"Learn More about the Passport Library here\")}.\r\n

    \r\n

    \r\n {this.localizeString(\"Do you have an existing Product or Material in 3E Exchange, or do you need to import data?\")}\r\n

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {(this.props.appServices.userContext!.role !== TeamRole.Marketing) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n {(this.state.towOption === DataSourceOptionType.Import) &&\r\n
    \r\n \r\n
      \r\n {BomTemplatesManager.getStandardBomImportTemplate(this.props.appServices).map((t, i) => (\r\n
    • {t.localizedDescription}
    • \r\n ))}\r\n
    \r\n
    \r\n }\r\n
    \r\n

    \r\n {(this.state.towOption !== null) &&\r\n \r\n }\r\n

    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private startWorkflowButton_click = async () => {\r\n this.props.appServices.trackEvent(\"get-started-start-publish-passport-workflow-clicked\");\r\n\r\n const success = await this._towStarter.startPublishSmWorkflow(this.state.towOption!);\r\n\r\n if (!success) {\r\n this.props.appServices.displayApiErrorMessage();\r\n }\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ appServices: state.appServices })\r\n)(StartPassport as any);\r\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport { ApplicationState } from '../../store';\r\nimport { ToxnotComponent, ToxnotComponentProperties } from '../core/BaseApplicationComponents/ToxnotComponent';\r\n\r\nimport '../styles/core-ui-components.css';\r\nimport './StartExperienceGuideComponent.css';\r\n\r\ninterface StartExperienceGuideComponentState {\r\n showContent: boolean;\r\n}\r\n\r\ninterface StartExperienceGuideComponentOwnProps {\r\n localizedHeader: string;\r\n renderAsTnSection?: boolean;\r\n children: React.ReactNode | React.ReactNode[];\r\n}\r\n\r\ntype ComponentProps = ToxnotComponentProperties &\r\n RouteComponentProps &\r\n StartExperienceGuideComponentOwnProps;\r\n\r\n// ===============================================================================\r\n\r\nclass StartExperienceGuideComponent extends ToxnotComponent {\r\n\r\n // ===============================================================================\r\n\r\n constructor(props: ComponentProps) {\r\n super(props);\r\n\r\n this.state = {\r\n showContent: true\r\n };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n const renderAsTnSection = this.props.renderAsTnSection ?? false;\r\n\r\n const bodyContent = (\r\n \r\n
    \r\n
    \r\n

    {this.localizeString(\"Get Started\")}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.props.localizedHeader}\r\n
    \r\n {this.state.showContent &&\r\n
    \r\n {this.props.children}\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n\r\n if (renderAsTnSection) {\r\n return (\r\n
    \r\n {bodyContent}\r\n
    \r\n );\r\n }\r\n else {\r\n return bodyContent;\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private backButton_click = () => {\r\n this.props.history.goBack();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private toggleContent_click = () => {\r\n this.setState({\r\n showContent: !this.state.showContent\r\n });\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n (state: ApplicationState, ownProps: StartExperienceGuideComponentOwnProps) => ({ appServices: state.appServices })\r\n)(withRouter(StartExperienceGuideComponent) as any);\r\n","import { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../store';\r\nimport { withRouter } from 'react-router-dom';\r\nimport * as InviteSupplierStateController from '../../store/StateControllers/Supplier/InviteSuppliersStateController';\r\nimport StartExperienceGuideComponent from '../Start/StartExperienceGuideComponent';\r\nimport InviteSuppliersCore, { InviteSuppliersProps } from './InviteSuppliersCore';\r\nimport { ToxnotSignInRequiredComponent } from '../core/BaseApplicationComponents/ToxnotSignInRequiredComponent';\r\n\r\nimport './styles.css';\r\nimport { TeamRole } from '../../store/Models/UserContext';\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Renders the main component for Inviting Suppliers.\r\n//\r\n\r\nclass InviteSuppliers extends ToxnotSignInRequiredComponent {\r\n\r\n // ===============================================================================\r\n \r\n public renderConcreteComponent() {\r\n return (\r\n
    \r\n \r\n

    {this.localizeString(\"Request material composition, compliance, sustainability, circularity, certifications, or create your own questions with custom questionnaires. The answers will be shared in a the form of Product & Material Passports.\")}

    \r\n

    {this.localizeString(\"Pick a template, add your suppliers' name and email, add your material names.\")}

    \r\n

    {this.localizeString(\"3E Exchange will email your suppliers with requests for Product & Material Passports which they can fill out for free on 3E Exchange.\")}

    \r\n

    {this.localizeString(\"You'll be notified when they share their data. That's it!\")}

    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n // ===============================================================================\r\n\r\n protected override getDisallowedRoles() {\r\n return [TeamRole.Marketing];\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ ...state.inviteSuppliersState, appServices: state.appServices }),\r\n InviteSupplierStateController.actionCreators // Selects which action creators are merged into the component's props\r\n)(withRouter(InviteSuppliers) as any);\r\n\r\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport { ApplicationState } from '../../store';\r\nimport { TeamRole } from '../../store/Models/UserContext';\r\nimport { ToxnotComponentProperties } from '../core/BaseApplicationComponents/ToxnotComponent';\r\nimport { ToxnotSignInRequiredComponent } from '../core/BaseApplicationComponents/ToxnotSignInRequiredComponent';\r\n\r\nimport './styles.css';\r\n\r\n// ===============================================================================\r\n\r\ntype StartSurveyGuideProps = RouteComponentProps & ToxnotComponentProperties;\r\n\r\n//\r\n// Sub start component for the survey guide.\r\n//\r\nclass StartSurveyGuide extends ToxnotSignInRequiredComponent {\r\n\r\n public constructor(props: StartSurveyGuideProps) {\r\n super(props);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public componentDidUpdate() {\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected override getDisallowedRoles() {\r\n return [TeamRole.Marketing];\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public renderConcreteComponent() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.localizeString(\"Why should I request data from a supplier?\")}\r\n
    \r\n

    \r\n {this.localizeString(\"Making your products safe, sustainable & compliant starts with truly knowing your supply chain.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"Are you trying to prove product compliance (ex. Conflict Minerals, Cal Prop 65, REACH, RoHS, or Red List Free)? Or create sustainability reports such as a Declare Labels or HPDs? Maybe you’re trying to create transparency throughout your supply chain or put your ESG goals into action.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"The most robust way to answer these questions is to know the entire composition of your products. Determining any kind of compliance relies on knowing if your sub-components are compliant.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"This requires asking your suppliers questions. Email is slow, disorganized and inefficient. Instead, request data via Product & Material Passports on the Passport Library to better collect and organize your data.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"Check out our Full Guide\")} \r\n

    \r\n
    \r\n {this.localizeString(\"How do I request data from a supplier?\")}\r\n
    \r\n

    \r\n {this.localizeString(\"It's easy to get started. Just add your suppliers and their emails, define the materials you're interested in, and 3E Exchange will automatically send requests to your Suppliers.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"Your Suppliers will use 3E Exchange to create Product & Material Passports. You'll get automatically notified when the Passports are ready to view.\")}\r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n private goToInviteSuppliersButton_click = () => {\r\n this.props.history.push(\"/Start/InviteSuppliers\");\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ appServices: state.appServices })\r\n)(withRouter(StartSurveyGuide) as any);\r\n","import * as React from 'react';\r\nimport { Route, Switch, RouteComponentProps } from 'react-router';\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../store';\r\nimport { ToxnotComponentProperties } from '../core/BaseApplicationComponents/ToxnotComponent';\r\nimport Layout from '../Layout';\r\nimport { LoadingSpinner, LoadingSpinnerSize } from '../core/LoadingSpinner';\r\nimport * as StartStateController from '../../store/StateControllers/Start/StartStateController';\r\nimport { ToxnotReactComponentPaths } from '../core/ToxnotReactComponentPaths';\r\nimport StartOrientation from './StartOrientation';\r\nimport StartReport from './StartReport';\r\nimport StartPassport from './StartPassport';\r\nimport InviteSuppliers from './InviteSuppliers';\r\nimport StartImport from './StartImport';\r\n\r\nimport './styles.css';\r\nimport { Link } from 'react-router-dom';\r\nimport StartSurveyGuide from './StartSurveyGuide';\r\nimport { ToxnotSignInRequiredComponent } from '../core/BaseApplicationComponents/ToxnotSignInRequiredComponent';\r\nimport { TeamRole } from '../../store/Models/UserContext';\r\n\r\n// ===============================================================================\r\n\r\ninterface StartItem {\r\n localizedTitle: string;\r\n localizedDescription: string;\r\n additionalDescriptionHtml: JSX.Element | null;\r\n trackEventName: string;\r\n routeToPush: string | null;\r\n onStart: (() => void) | null;\r\n}\r\n\r\n// ===============================================================================\r\n\r\n//\r\n// Main component for the full view\r\n//\r\n\r\ntype StartHomeProps =\r\n RouteComponentProps &\r\n ToxnotComponentProperties &\r\n StartStateController.StartState &\r\n typeof StartStateController.actionCreators; // ... plus action creators we've requested\r\n\r\nclass StartHome extends ToxnotSignInRequiredComponent {\r\n private static readonly freTourId = 332956;\r\n private static readonly hasSeenFreLocalStorageKey = \"has-seen-fre\";\r\n\r\n public async componentDidMount() {\r\n this.props.appServices.trackEvent(\"get-started-viewed-home\");\r\n\r\n //\r\n // Launch the FRE tour if the fre query param is present & the user hasn't already seen the FRE.\r\n // Remember whether or not we are launching the FRE so we don't show it again\r\n //\r\n\r\n const shouldShowFre = new URLSearchParams(document.location.search).get(\"fre\") !== null;\r\n\r\n const hasSeenFre = localStorage.getItem(StartHome.hasSeenFreLocalStorageKey) ?? \"false\";\r\n\r\n if (shouldShowFre && (hasSeenFre !== \"true\")) {\r\n localStorage.setItem(StartHome.hasSeenFreLocalStorageKey, \"true\");\r\n Intercom(\"startTour\", StartHome.freTourId);\r\n }\r\n\r\n //\r\n // fetch data we need from the service\r\n //\r\n\r\n await this.props.getStartData();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected override getDisallowedRoles() {\r\n return [];\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public renderConcreteComponent() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    {this.localizeString(\"Get Started\")}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {this.renderStartContentRoot()}\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderStartItem(startItem: StartItem) {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {startItem.localizedTitle}\r\n
    \r\n
    \r\n {startItem.localizedDescription}\r\n {startItem.additionalDescriptionHtml}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderPassportStartItem() {\r\n return (\r\n this.renderStartItem({\r\n localizedTitle: this.localizeString(\"Share Passports on the Passport Library\"),\r\n localizedDescription: this.localizeString(\"Securely share & manage your material data with others.\"),\r\n additionalDescriptionHtml: null,\r\n trackEventName: \"get-started-share-passport-clicked\",\r\n routeToPush: \"/Start/Passport\",\r\n onStart: null\r\n })\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private isMarketing() {\r\n return this.props.appServices.userContext?.role === TeamRole.Marketing;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderTaskList() {\r\n return (\r\n
    \r\n

    {this.localizeString(\"My Tasks\")}

    \r\n {\r\n (this.props.tasks.length > 0) &&\r\n
    \r\n {this.props.tasks.orderByDescending(t => t.deadlineDate ?? new Date(0).toISOString()).take(5).map(task =>
    {task.title.emptyCoalesce(this.localizeString(\"Unnamed Task\"))}
    )}\r\n {this.props.tasks.length > 5 &&\r\n
    {this.localizeStringFormat(\"and {0} more.\", (this.props.tasks.length - 5))}
    \r\n }\r\n
    \r\n }\r\n {\r\n (!this.isMarketing()) && \r\n

    \r\n this.fillOutSurveysButton_click()}>{this.localizeString(\"Fill out Surveys\")} {this.props.numSurveysToAnswer}\r\n

    \r\n }\r\n
    \r\n );\r\n }\r\n\r\n private renderHelpCenter() {\r\n return (\r\n \r\n )\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderStartContentRoot() {\r\n if (this.isMarketing()) {\r\n return (\r\n
    \r\n
    \r\n {this.renderPassportStartItem()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.props.isLoading\r\n ? \r\n : (\r\n \r\n {this.renderTaskList()}\r\n {this.renderHelpCenter()}\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n
    \r\n {this.renderStartItem({\r\n localizedTitle: this.localizeString(\"Create a Compliance or Sustainability Report\"),\r\n localizedDescription: this.localizeString(\"Use 3E Exchange to make a Compliance Report, Declare Label, HPD, or other Sustainability report.\"),\r\n additionalDescriptionHtml: null,\r\n trackEventName: \"get-started-create-report-clicked\",\r\n routeToPush: \"/Start/Report\",\r\n onStart: null\r\n })}\r\n {this.renderStartItem({\r\n localizedTitle: this.localizeString(\"Get Supply Chain Data Fast\"),\r\n localizedDescription: this.localizeString(\"Search the Passport Library for existing Product Passports.\"),\r\n additionalDescriptionHtml: null,\r\n trackEventName: \"get-started-get-supply-chain-data-clicked\",\r\n routeToPush: null,\r\n onStart: this.startGetSupplyChainData_start\r\n })}\r\n {this.renderStartItem({\r\n localizedTitle: this.localizeString(\"Request Data From Your Suppliers\"),\r\n localizedDescription: this.localizeString(\"Easily ask your suppliers for Product Passports with composition & compliance data.\"),\r\n additionalDescriptionHtml:\r\n ,\r\n trackEventName: \"get-started-get-supply-chain-data-from-suppliers-clicked\",\r\n routeToPush: null,\r\n onStart: this.startGetSupplyChainDataFromSuppliers_start\r\n })}\r\n {this.renderPassportStartItem()}\r\n {this.renderStartItem({\r\n localizedTitle: this.localizeString(\"Import Products, Materials, or Suppliers\"),\r\n localizedDescription: this.localizeString(\"We'll help you import your product or material libraries, update existing data, and import Suppliers.\"),\r\n additionalDescriptionHtml: null,\r\n trackEventName: \"get-started-import-data-clicked\",\r\n routeToPush: \"/Start/Import\",\r\n onStart: null\r\n })}\r\n {/* {this.renderStartItem({*/}\r\n {/* iconSrc: \"\",*/}\r\n {/* localizedTitle: this.localizeString(\"Import Data, Screen Hazards & Assess Compliance\"),*/}\r\n {/* localizedDescription: this.localizeString(\"We'll help you import your product & material data so you can automatically screen for hazards and asess compliance with regulations\"),*/}\r\n {/* trackEventName: \"get-started-import-screen-and-assess-clicked\",*/}\r\n {/* routeToPush: null,*/}\r\n {/* onStart: null*/}\r\n {/* })}*/}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.props.isLoading\r\n ? \r\n : (\r\n \r\n {this.renderTaskList()}\r\n {this.renderHelpCenter()}\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n //\r\n // UI Events\r\n //\r\n\r\n // ===============================================================================\r\n\r\n private takeATourLink_click = () => {\r\n this.props.appServices.trackEvent(\"get-started-take-a-tour-clicked\");\r\n Intercom(\"startTour\", StartHome.freTourId);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private backButton_click = () => {\r\n this.props.history.goBack();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private startItem_click(startItem: StartItem) {\r\n this.props.appServices.trackEvent(startItem.trackEventName);\r\n\r\n if (startItem.routeToPush !== null) {\r\n this.props.history.push(startItem.routeToPush);\r\n }\r\n\r\n if (startItem.onStart !== null) {\r\n startItem.onStart();\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private startSurveyGuide_click() {\r\n this.props.appServices.trackEvent(\"get-started-learn-more-surveys-clicked\");\r\n this.props.history.push(\"/Start/SurveyGuide\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private startGetSupplyChainData_start = () => {\r\n this.props.history.push(ToxnotReactComponentPaths.SharedMaterialsHomeStartPath);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private startGetSupplyChainDataFromSuppliers_start = () => {\r\n this.props.history.push(\"/Start/InviteSuppliers\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private fillOutSurveysButton_click = () => {\r\n this.props.appServices.trackEvent(\"get-started-fill-out-surveys-clicked\");\r\n\r\n window.location.href = \"/Suppliers/SupplierDashboard\";\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ ...state.startState, appServices: state.appServices }),\r\n {\r\n ...StartStateController.actionCreators // Selects which action creators are merged into the component's props\r\n }\r\n)(StartHome as any);\r\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport { ApplicationState } from '../../store';\r\nimport { SharedMaterialCoreData, SharedMaterialAccessType, localizeSharedMaterialFmdDisclosureType, SharedMaterialsCatalogCompany } from '../../store/Models/SharedMaterials/DataModel';\r\nimport * as BrowserStateModels from \"../../store/Models/SharedMaterials/BrowserStateModels\";\r\nimport * as SharedMaterialsDatabaseStateController from '../../store/StateControllers/SharedMaterials/SharedMaterialsDatabaseStateController';\r\nimport { SharedMaterialsReactUtilities } from './SharedMaterialsReactUtilities';\r\nimport { ToxnotReactComponentPaths } from '../core/ToxnotReactComponentPaths';\r\nimport { ToxnotComponent, ToxnotComponentProperties } from '../core/BaseApplicationComponents/ToxnotComponent';\r\nimport '../../utilities/Utilities'\r\nimport './SharedMaterialsBrowser.css';\r\nimport { FilterId } from '../../store/Models/Filter';\r\nimport { CollapsibleContainer } from '../core/CollapsibleContainer';\r\nimport { TableRow, ToxnotReactTable } from '../core/ToxnotReactTable';\r\nimport { SharedMaterialDataModelType, rowPerPageValue } from '../../store/StateControllers/SharedMaterials/SharedMaterialsDatabaseStateController';\r\nimport { LoadingSpinner, LoadingSpinnerSize } from '../core/LoadingSpinner';\r\n\r\n// ===============================================================================\r\n\r\nenum SortDirectionType {\r\n Ascending,\r\n Descending\r\n}\r\n\r\ninterface OwnProps {\r\n browserEndpoint: SharedMaterialsDatabaseStateController.BrowserEndpoint;\r\n companyId: string | null | undefined;\r\n}\r\n\r\n// At runtime, Redux will merge together...\r\ntype SharedMaterialsHomeProps =\r\n SharedMaterialsDatabaseStateController.SharedMaterialsState &\r\n SharedMaterialsDatabaseStateController.BrowserState & // ... state we've requested from the Redux store\r\n ToxnotComponentProperties &\r\n typeof SharedMaterialsDatabaseStateController.actionCreators & // ... plus action creators we've requested\r\n OwnProps & // ... plus props from jsx\r\n RouteComponentProps; // route props like history\r\n\r\n// ===============================================================================\r\n\r\ninterface SharedMaterialsBrowserState {\r\n filterMenuIdsToTruncateFilterMenu: { [filterMenuId: string]: boolean },\r\n selectedFilters: { [filterId: string]: string[] };\r\n sortType: BrowserStateModels.SortTypes,\r\n sortDirection: SortDirectionType,\r\n searchValue: string\r\n}\r\n\r\n// ===============================================================================\r\n\r\nclass SharedMaterialsBrowser extends ToxnotComponent {\r\n\r\n // ===============================================================================\r\n\r\n constructor(props: SharedMaterialsHomeProps) {\r\n super(props);\r\n\r\n this.state = {\r\n filterMenuIdsToTruncateFilterMenu: this.createfilterMenuIdsToTruncateFilterMenu(),\r\n selectedFilters: {},\r\n sortType: BrowserStateModels.SortTypes.PassportName,\r\n sortDirection: SortDirectionType.Ascending,\r\n searchValue: \"\"\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private readonly _filterMenuDefaultOptionTruncateVal: number = 4;\r\n private readonly _RowPerPageValue: number = rowPerPageValue;\r\n private readonly legacyComplianceFilters = [\r\n 'California Proposition 65', //score_cal65\r\n 'Conflict Minerals', // score_cm\r\n 'EU REACH - Candidate List & SCIP', // score_reach\r\n 'REACH Authorisation List', // score_reach_auth\r\n 'EU RoHS', // score_rohs\r\n 'EU REACH Authorisation and Restriction' // score_reach_auth_v2\r\n ];\r\n private readonly _allColumns = [\r\n BrowserStateModels.ColumnId.Photo, \r\n BrowserStateModels.ColumnId.SupplierName, \r\n BrowserStateModels.ColumnId.Name, \r\n BrowserStateModels.ColumnId.Category, \r\n BrowserStateModels.ColumnId.Fmd, \r\n BrowserStateModels.ColumnId.Sds\r\n ];\r\n\r\n // ===============================================================================\r\n\r\n private getDynRegsIds() {\r\n const regulationIds: string[] = []\r\n\r\n for (var dynReg of Object.values(this.props.dynamicRegulationTable)) {\r\n if (!dynReg.isStandardRegulation) {\r\n continue;\r\n }\r\n\r\n regulationIds.push(dynReg.regulationId);\r\n }\r\n\r\n return regulationIds;\r\n }\r\n\r\n private readonly _filterMenuIdsToTruncate: string[] = this.getDynRegsIds();\r\n\r\n // ===============================================================================\r\n\r\n private createfilterMenuIdsToTruncateFilterMenu() {\r\n const filterMenuIdsToTruncateFilter: { [filterMenuId: string]: boolean } = {}\r\n\r\n for (let filterId of this._filterMenuIdsToTruncate) {\r\n filterMenuIdsToTruncateFilter[filterId] = true;\r\n }\r\n\r\n return filterMenuIdsToTruncateFilter;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public componentDidMount() {\r\n if (!this.props.companyId) {\r\n this.getSharedMaterials(0, this.props.searchMode);\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public componentWillUnmount() {\r\n \r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getDynRegsAsTableColumns() {\r\n const columns: BrowserStateModels.Column[] = []\r\n\r\n for (var dynReg of Object.values(this.props.dynamicRegulationTable)) {\r\n if (!dynReg.isStandardRegulation) {\r\n continue;\r\n }\r\n\r\n columns.push(\r\n {\r\n name: dynReg.config.shortName,\r\n columnId: dynReg.regulationId,\r\n width: 60\r\n }\r\n );\r\n }\r\n\r\n return columns;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getNonRegulationSharedMaterialColumns() {\r\n const columns: BrowserStateModels.Column[] = [\r\n {\r\n name: \"\",\r\n columnId: BrowserStateModels.ColumnId.Checkbox,\r\n width: 25\r\n },\r\n {\r\n name: \"\",\r\n columnId: BrowserStateModels.ColumnId.Photo,\r\n width: 75\r\n },\r\n {\r\n name: this.localizeString(\"Company\"),\r\n columnId: BrowserStateModels.ColumnId.SupplierName,\r\n width: 200\r\n },\r\n {\r\n name: this.localizeString(\"Name\"),\r\n columnId: BrowserStateModels.ColumnId.Name,\r\n width: 200\r\n },\r\n {\r\n name: this.localizeString(\"Category\"),\r\n columnId: BrowserStateModels.ColumnId.Category,\r\n width: 150\r\n },\r\n {\r\n name: this.localizeString(\"Disclosure Level\"),\r\n columnId: BrowserStateModels.ColumnId.Fmd,\r\n width: 150\r\n },\r\n {\r\n name: \"SDS\",\r\n columnId: BrowserStateModels.ColumnId.Sds,\r\n width: 60\r\n },\r\n ];\r\n\r\n return columns.toDictionary(c => c.columnId);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n return (\r\n
    \r\n
    \r\n {this.renderFilterSelectionSection()}\r\n
    \r\n
    \r\n
    \r\n {this.renderSearchContainer()}\r\n {this.renderSortDropdown()}\r\n
    \r\n {this.renderAllActiveFilters()}\r\n {this.renderTotalNumberOfResults()}\r\n {this.renderHomeMaterialTable()}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderSortDropdown() {\r\n // empty strings are columns that should not be able to be sorted by\r\n const sortTypeToFriendlyDescription = [this.localizeString(\"Company\"), this.localizeString(\"Passport Name\"), this.localizeString(\"Category\"), this.localizeString(\"Featured\")];\r\n\r\n const ascendingOrDescending = this.state.sortDirection === SortDirectionType.Ascending ? this.localizeString(\"A to Z\") : this.localizeString(\"Z to A\");\r\n const toggleSortDescription = this.state.sortType === BrowserStateModels.SortTypes.Featured ? this.localizeString(\"Featured\") : sortTypeToFriendlyDescription[this.state.sortType] + \": \" + ascendingOrDescending;\r\n\r\n // const for clarity in function calls\r\n const asc = SortDirectionType.Ascending;\r\n const desc = SortDirectionType.Descending;\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderHomeMaterialTable() {\r\n if (this.props.isLoadingCatalog) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n this.getRowTableData(data, rowIndex) as TableRow}\r\n enablePaging={true}\r\n localizer={this.props.appServices}\r\n rowClickEventHandler={(e, _sharedMaterial: SharedMaterialDataModelType) => {\r\n const sharedMaterial = _sharedMaterial as SharedMaterialCoreData;\r\n sharedMaterial.hasOwnProperty('sharedMaterialId') ? this.materialRow_click(sharedMaterial.sharedMaterialId) : null;\r\n }}\r\n selectingRowOptions={this.props.browserEndpoint === SharedMaterialsDatabaseStateController.BrowserEndpoint.Home\r\n ? undefined : {\r\n onRowSelected: (sharedMaterialIds) => {\r\n console.log(\"sharedMaterialIds\", sharedMaterialIds);\r\n this.props.selectSharedMaterial(sharedMaterialIds);\r\n },\r\n rowModelGetId: (sharedMaterial: any) => { return sharedMaterial.sharedMaterialId },\r\n initiallySelected: this.props.currentlySelectedSharedMaterialIds,\r\n }}\r\n onPageChange={(newPage: number) => this.handlePageChange(newPage)}\r\n rowsPerPage={this._RowPerPageValue}\r\n totalNoResult={this.props.totalNumberOfCatalog}\r\n currentPage={this.props.currentPage}\r\n noResultFoundContent={this.renderRequestNewSharedMaterial()}\r\n />\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n\r\n\r\n // ===============================================================================\r\n\r\n private getSharedMaterials(newPage: number, searchMode = BrowserStateModels.BrowserSearchMode.Materials) {\r\n const companyId = this.props.companyId ? this.props.companyId : null;\r\n \r\n if (searchMode !== BrowserStateModels.BrowserSearchMode.Companies) {\r\n this.props.loadSharedMaterialsIfNeeded(\r\n this.props.appServices,\r\n this.getQueryParameter(\"accessCode\"),\r\n newPage,\r\n this.state.searchValue,\r\n this._RowPerPageValue,\r\n this.state.selectedFilters,\r\n this.state.sortType,\r\n this.state.sortDirection,\r\n companyId\r\n );\r\n } else {\r\n this.props.getAllSharedMaterialsCompaniesData(\r\n newPage,\r\n this._RowPerPageValue,\r\n this.state.searchValue,\r\n this.state.sortDirection\r\n );\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private handlePageChange(newPage: number) {\r\n this.getSharedMaterials(newPage, this.props.searchMode);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getTableColumns() {\r\n const _sharedMaterialsTableColumns = this.getNonRegulationSharedMaterialColumns();\r\n const _regulationColumns = this.getDynRegsAsTableColumns();\r\n\r\n const homeColumns = this._allColumns;\r\n const supplierColumns = this._allColumns.filter(c => c !== \"SupplierName\");\r\n\r\n const regulationColumns = _regulationColumns.map((colItem) => {\r\n return {\r\n value: colItem.name\r\n }\r\n });\r\n\r\n const columns = this.props.browserEndpoint === SharedMaterialsDatabaseStateController.BrowserEndpoint.Home\r\n ? homeColumns : supplierColumns;\r\n\r\n const sharedMaterialsTableColumns = columns.map((colItem) => {\r\n return {\r\n value: _sharedMaterialsTableColumns[colItem].name\r\n }\r\n });\r\n\r\n return [...sharedMaterialsTableColumns, ...regulationColumns];\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getRestrictedMessage() {\r\n const count = this.getTableColumns().length;\r\n return {\r\n content: (\r\n \r\n {this.localizeString(\"Select the material to request access to its data.\")}\r\n \r\n )\r\n };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getRowTableData(sharedMaterial: SharedMaterialDataModelType, rowIndex: number) {\r\n if (sharedMaterial.hasOwnProperty('sharedMaterialId')) {\r\n return this.getSharedMaterialRowData(sharedMaterial as SharedMaterialCoreData, rowIndex);\r\n } else {\r\n return this.getSupplierRowData(sharedMaterial as SharedMaterialsCatalogCompany);\r\n }\r\n }\r\n \r\n // ===============================================================================\r\n\r\n private getSharedMaterialRowData(sharedMaterial: SharedMaterialCoreData, rowIndex: number) {\r\n const sharedMaterialsTableColumns = this.getNonRegulationSharedMaterialColumns();\r\n \r\n const regulationColumns = this.getDynRegsAsTableColumns().map(r =>\r\n this.renderHomeMaterialTableRowComplianceCell(\r\n SharedMaterialsReactUtilities.getComplianceIconForComplianceDetermination(sharedMaterial.regulationIdToComplianceScoreMap[r.columnId]),\r\n r.width,\r\n r.columnId\r\n )\r\n );\r\n\r\n const materialHomePageInitialColumns = this.props.browserEndpoint === SharedMaterialsDatabaseStateController.BrowserEndpoint.Home ? [\r\n '',\r\n this.renderHomeMaterialTableRowCell(sharedMaterial.companyName.emptyCoalesce(\"Unknown\"), 100),\r\n ] : [''];\r\n\r\n const cols: (string | JSX.Element | JSX.Element[] | { content: JSX.Element })[] = [\r\n ...materialHomePageInitialColumns,\r\n this.renderHomeMaterialTableRowCell(sharedMaterial.materialName, 100),\r\n this.renderHomeMaterialTableRowCell(this.createCommaSeperatedListOfCategories(sharedMaterial.categories).coalesceToMaxSizeAndIndicateTruncationWithEllipsis(25), 100),\r\n this.renderHomeMaterialTableRowCell(sharedMaterial.fmdStatus !== null ? localizeSharedMaterialFmdDisclosureType(sharedMaterial.fmdStatus, this.props.appServices) : \"\", sharedMaterialsTableColumns[BrowserStateModels.ColumnId.Fmd].width),\r\n this.renderHomeMaterialTableRowCell(sharedMaterial.hasSdsStatus === true ? this.localizeString(\"Yes\") : this.localizeString(\"No\"), sharedMaterialsTableColumns[BrowserStateModels.ColumnId.Sds].width),\r\n ];\r\n\r\n if (sharedMaterial.accessLevel !== SharedMaterialAccessType.Public && !sharedMaterial.hasAccess) {\r\n cols.push(this.getRestrictedMessage());\r\n } else {\r\n cols.push(...regulationColumns);\r\n }\r\n\r\n return { cols };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getSupplierRowData(supplier: SharedMaterialsCatalogCompany) {\r\n const sharedMaterialsTableColumns = this.getNonRegulationSharedMaterialColumns();\r\n const companyLogoFileId: string | null = supplier?.logoFileId;\r\n\r\n return {\r\n cols: [\r\n this.renderHomeMaterialTableRowCell(companyLogoFileId !== null ? `/Api/GeneralFileImage?fileId=${encodeURIComponent(companyLogoFileId)}&overrideTeamOwnerId=${encodeURIComponent(supplier.ownerId)}` : null, sharedMaterialsTableColumns[BrowserStateModels.ColumnId.Photo].width, true),\r\n this.renderHomeMaterialTableRowCell(supplier.name.emptyCoalesce(\"Unknown\"), sharedMaterialsTableColumns[BrowserStateModels.ColumnId.SupplierName].width),\r\n this.renderHomeMaterialTableRowCell(\r\n this.viewCompanyPageLink_click()}>\r\n {this.localizeString(\"View Company Page\")}\r\n ,\r\n sharedMaterialsTableColumns[BrowserStateModels.ColumnId.SupplierName].width\r\n ),\r\n this.renderHomeMaterialTableRowCell(\r\n \r\n {this.localizeString(\"Contact\")}\r\n ,\r\n sharedMaterialsTableColumns[BrowserStateModels.ColumnId.Category].width\r\n )\r\n ].concat(Array(8).fill(\"\"))\r\n };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderRequestNewSharedMaterial() {\r\n return (\r\n
    \r\n {this.localizeString(\"Nothing matched your search criteria.\")}\r\n {this.props.browserEndpoint === SharedMaterialsDatabaseStateController.BrowserEndpoint.Home &&\r\n {\" \"}{this.localizeString(\"Please search again or\")} this.requestNewSharedMaterialLink_click()} id=\"no-results-found-link\">{this.localizeString(\"Request a New Material Passport\")}\r\n }\r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderHomeMaterialTableRowCell(value: string | JSX.Element | null, width: number, isPhoto: boolean = false) {\r\n const maxDim = Math.floor(width * .75);\r\n return (\r\n
    \r\n {isPhoto\r\n ? (value !== null ? () : null)\r\n : value}\r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderHomeMaterialTableRowComplianceCell(complianceIcon: JSX.Element, width: number, regulationId: string) {\r\n return (\r\n
    \r\n {complianceIcon}\r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderSearchContainer() {\r\n return (\r\n
    \r\n
    \r\n this.onSearchInputChange(e)}\r\n placeholder={this.props.searchMode === BrowserStateModels.BrowserSearchMode.Companies ?\r\n this.localizeString(\"Search by Company\") :\r\n this.localizeString(\"Search by Company, Material Name, or SKU...\")\r\n } \r\n />\r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderTotalNumberOfResults() {\r\n if (this.props.activeFilters.length === 0) {\r\n return null;\r\n }\r\n\r\n const numSelectedItems = Object.keys(this.props.currentlySelectedSharedMaterialIds).length;\r\n\r\n return (\r\n
    \r\n
    \r\n

    \r\n {this.props.filteredSharedMaterialsCoreData.length} results\r\n

    \r\n
    \r\n {numSelectedItems > 0 && (\r\n
    \r\n

    \r\n {Object.keys(this.props.currentlySelectedSharedMaterialIds).length} selected\r\n

    \r\n
    \r\n )}\r\n
    \r\n\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderFilterSelectionSection() {\r\n return (\r\n
    \r\n {this.props.browserEndpoint === SharedMaterialsDatabaseStateController.BrowserEndpoint.Home && this.renderSearchModeOptions()}\r\n\r\n {this.props.filterMenus.map(filterMenu => (\r\n this.toggleFilterMenu(filterMenu.filterId)} title={filterMenu.title}>\r\n {this.renderOpenFilterMenu(filterMenu)}\r\n )\r\n )}\r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderSearchModeOptions() {\r\n return (\r\n
    \r\n
    this.searchModeRadioButton_onClick(BrowserStateModels.BrowserSearchMode.Materials)}>\r\n () => { return; }} type=\"radio\" value={BrowserStateModels.BrowserSearchMode.Materials} name=\"search-mode\" checked={this.props.searchMode === BrowserStateModels.BrowserSearchMode.Materials} /> {this.localizeString(\"Passports\")}\r\n
    \r\n
    this.searchModeRadioButton_onClick(BrowserStateModels.BrowserSearchMode.Companies)}>\r\n () => { return; }} type=\"radio\" value={BrowserStateModels.BrowserSearchMode.Companies} name=\"search-mode\" checked={this.props.searchMode === BrowserStateModels.BrowserSearchMode.Companies} /> {this.localizeString(\"Companies\")}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderAllActiveFilters() {\r\n const activeFiltersToRender = this.props.activeFilters.filter(filter => filter.filterId !== FilterId.SupplierId);\r\n\r\n if (activeFiltersToRender.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {activeFiltersToRender.map(filter => (\r\n
    \r\n {filter.filterId !== FilterId.SharedMaterialsSearch ? this.props.filterMenus.filter(f => f.filterId === filter.filterId)[0]?.title + \": \" + this.getFilterValueToFriendlyName(filter.value) : this.getFilterValueToFriendlyName(filter.value)}\r\n {\" \"}\r\n this.removeFilter_click(filter.filterId, filter.value)}>x\r\n
    \r\n ))}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderOpenFilterMenu(filterMenu: BrowserStateModels.FilterMenu) {\r\n let truncateVal = this.state.filterMenuIdsToTruncateFilterMenu[filterMenu.filterId] ? this._filterMenuDefaultOptionTruncateVal : filterMenu.values.length;\r\n\r\n const body =\r\n filterMenu\r\n .values\r\n .take(truncateVal)\r\n .map((value, index) => (\r\n
    \r\n \r\n
    \r\n ));\r\n\r\n if (truncateVal < filterMenu.values.length) {\r\n body.push( this.changeFilterMenuViewOptionNum_click(filterMenu.filterId, false)}>{this.localizeStringFormat(\"View {0} more\", filterMenu.values.length - truncateVal)})\r\n }\r\n else if ((truncateVal === filterMenu.values.length) && (truncateVal > this._filterMenuDefaultOptionTruncateVal)) {\r\n body.push( this.changeFilterMenuViewOptionNum_click(filterMenu.filterId, true)}>{this.localizeString(\"View less\")})\r\n }\r\n\r\n return (\r\n
    \r\n {body}\r\n
    \r\n );\r\n }\r\n // ===============================================================================\r\n\r\n private onSearchInputChange = (e: React.ChangeEvent) => {\r\n const value = e.currentTarget.value;\r\n\r\n this.setState({ searchValue: value }, () => {\r\n if (value === '') {\r\n this.getSharedMaterials(0, this.props.searchMode);\r\n }\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private filterCheckbox_onChange = (e: React.ChangeEvent, filterId: string, value: string) => {\r\n const checked = e.currentTarget.checked;\r\n\r\n // Define the specific filters and their mapping\r\n const valueMapping: { [key: string]: string } = {\r\n 'Compliant': \"1\",\r\n 'PossiblyComplaint': \"0\"\r\n };\r\n\r\n this.setState(prevState => {\r\n const selectedFilters = { ...prevState.selectedFilters };\r\n\r\n // Initialize the selected filter array if it doesn't exist\r\n if (!selectedFilters[filterId]) {\r\n selectedFilters[filterId] = [];\r\n }\r\n\r\n // Apply the specific mapping if the filterId matches\r\n if (this.legacyComplianceFilters.includes(filterId)) {\r\n const mappedValue = valueMapping[value];\r\n if (checked) {\r\n if (!selectedFilters[filterId].includes(mappedValue)) {\r\n selectedFilters[filterId].push(mappedValue);\r\n }\r\n } else {\r\n selectedFilters[filterId] = selectedFilters[filterId].filter(v => v !== mappedValue);\r\n }\r\n } else {\r\n // Default behavior for other filters\r\n if (checked) {\r\n if (!selectedFilters[filterId].includes(value)) {\r\n selectedFilters[filterId].push(value);\r\n }\r\n } else {\r\n selectedFilters[filterId] = selectedFilters[filterId].filter(v => v !== value);\r\n }\r\n }\r\n\r\n return { selectedFilters };\r\n }, () => {\r\n this.getSharedMaterials(0);\r\n });\r\n }\r\n\r\n private isFilterMenuItemChecked(filterId: string, value: string) {\r\n const valueMapping: { [key: string]: string } = {\r\n 'Compliant': \"1\",\r\n 'PossiblyComplaint': \"0\"\r\n };\r\n\r\n if (this.legacyComplianceFilters.includes(filterId)) {\r\n const mappedValue = valueMapping[value];\r\n return this.state.selectedFilters[filterId] && this.state.selectedFilters[filterId].includes(mappedValue);\r\n }\r\n\r\n return this.state.selectedFilters[filterId] && this.state.selectedFilters[filterId].includes(value);\r\n }\r\n\r\n private addSearchFilter() {\r\n this.props.appServices.trackEvent(\"exchange-browser-searched\");\r\n\r\n if (window.location.pathname.startsWith(ToxnotReactComponentPaths.SharedMaterialsHomeStartPath)) {\r\n this.props.appServices.trackEvent(\"get-started-get-supply-chain-data-exchange-browser-searched\");\r\n }\r\n\r\n if (this.state.searchValue === '') {\r\n return;\r\n }\r\n\r\n this.getSharedMaterials(0, this.props.searchMode);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private createCommaSeperatedListOfCategories(categories: string[]) {\r\n return categories.join(\", \");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getFilterValueToFriendlyName(value: string) {\r\n const filterValueToFriendlyName: Record = {\r\n [BrowserStateModels.RegulationFiterType.PossiblyCompliant]: this.localizeString(\"Possibly Compliant\"),\r\n [BrowserStateModels.RegulationFiterType.Compliant]: this.localizeString(\"Compliant\")\r\n }\r\n\r\n const result = filterValueToFriendlyName[value];\r\n\r\n if (!result) {\r\n return value;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n //\r\n // UI Events\r\n //\r\n\r\n // ===============================================================================\r\n\r\n private toggleFilterMenu = (filterId: string) => {\r\n this.props.toggleFilterMenu(this.props.browserEndpoint, filterId);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private removeFilter_click = (filterId: string, filterValue: string) => {\r\n this.props.deactivateFilter(this.props.browserEndpoint, filterId, filterValue);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private searchInput_keyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === \"Enter\") {\r\n this.addSearchFilter();\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private sortDropdownItem_click = (sortType: BrowserStateModels.SortTypes, ascending: SortDirectionType) => {\r\n this.props.appServices.trackEvent(\"exchange-browser-sorted\");\r\n\r\n // Update state first\r\n this.setState({\r\n sortType: sortType,\r\n sortDirection: ascending\r\n }, () => {\r\n this.getSharedMaterials(0, this.props.searchMode);\r\n });\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private requestNewSharedMaterialLink_click = () => {\r\n this.props.appServices.trackEvent(\"exchange-requested-new-passport\");\r\n this.props.initializeRequest();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private viewCompanyPageLink_click = () => {\r\n if (window.location.pathname.startsWith(ToxnotReactComponentPaths.SharedMaterialsHomeStartPath)) {\r\n this.props.appServices.trackEvent(\"get-started-get-supply-chain-data-exchange-viewed-company-page\");\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private materialRow_click = (sharedMaterialId: string) => {\r\n if (window.location.pathname.startsWith(ToxnotReactComponentPaths.SharedMaterialsHomeStartPath)) {\r\n this.props.appServices.trackEvent(\"get-started-get-supply-chain-data-exchange-viewed-passport\");\r\n }\r\n\r\n this.props.history.push(ToxnotReactComponentPaths.SharedMaterialBaseDetailPath + `/${sharedMaterialId}`);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private searchModeRadioButton_onClick = (searchMode: BrowserStateModels.BrowserSearchMode) => {\r\n // Browser Endpoint is assumed to be Home.\r\n this.props.setSearchMode(searchMode);\r\n this.getSharedMaterials(0, searchMode);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private changeFilterMenuViewOptionNum_click = (filterMenuId: string, truncate: boolean) => {\r\n const newFilterMenuIdsToTruncateFilterMenu = { ...this.state.filterMenuIdsToTruncateFilterMenu };\r\n newFilterMenuIdsToTruncateFilterMenu[filterMenuId] = truncate;\r\n\r\n this.setState({\r\n filterMenuIdsToTruncateFilterMenu: newFilterMenuIdsToTruncateFilterMenu\r\n });\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n (state: ApplicationState, ownProps: OwnProps) => {\r\n const browserState = ownProps.browserEndpoint === SharedMaterialsDatabaseStateController.BrowserEndpoint.Home\r\n ? state.sharedMaterialsState?.homeBrowserState\r\n : state.sharedMaterialsState?.supplierBrowserState;\r\n\r\n return {\r\n ...state.sharedMaterialsState,\r\n ...browserState,\r\n appServices: state.appServices\r\n };\r\n },\r\n SharedMaterialsDatabaseStateController.actionCreators // Selects which action creators are merged into the component's props\r\n)(withRouter(SharedMaterialsBrowser) as any);\r\n","import * as React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport * as Models from '../../../store/Models/SharedMaterials/DataModel';\r\nimport { ToxnotReactComponentPaths } from '../../core/ToxnotReactComponentPaths';\r\nimport { SharedMaterialNotFound } from './SharedMaterialNotFound';\r\n\r\nimport './SharedMaterialDetail.css';\r\n\r\nimport { ToxnotComponent, ToxnotComponentProperties } from '../../core/BaseApplicationComponents/ToxnotComponent';\r\nimport { defineDetailSections, ViewDetailsRenderer } from './SharedMaterialDetailDataSubsection';\r\nimport { LoadingSpinner, LoadingSpinnerSize } from '../../core/LoadingSpinner';\r\n\r\nexport enum PublishMode {\r\n Single = \"Single\",\r\n Multiple = \"Multiple\"\r\n}\r\n\r\nexport interface DetailSectionRenderData {\r\n coreData: Models.SharedMaterialCoreData;\r\n detailBundle: Models.SharedMaterialDetailResponse;\r\n company: Models.SharedMaterialsCatalogCompany;\r\n}\r\n\r\nexport abstract class AbstractSharedMaterialDetail

    extends ToxnotComponent

    implements ViewDetailsRenderer {\r\n protected abstract isLoading(): boolean;\r\n\r\n protected wrapBody(body: JSX.Element): JSX.Element {\r\n return body;\r\n }\r\n\r\n protected abstract peekRenderData(): DetailSectionRenderData;\r\n\r\n protected abstract peekCollapsedSections(): string[];\r\n\r\n protected abstract renderTopLevelActionButtons(data: DetailSectionRenderData): JSX.Element | null;\r\n\r\n protected abstract renderModals(): JSX.Element;\r\n\r\n // ===============================================================================\r\n\r\n private renderBody(data: DetailSectionRenderData): JSX.Element {\r\n\r\n const topLevelActionButtons = this.renderTopLevelActionButtons(data);\r\n return (\r\n

    \r\n {null !== topLevelActionButtons &&\r\n
    \r\n {topLevelActionButtons}\r\n
    \r\n }\r\n {this.renderImageAndDetailsContainer(data)}\r\n
    \r\n
    \r\n
    \r\n {((data.coreData.accessLevel === Models.SharedMaterialAccessType.Public) || data.coreData.hasAccess)\r\n ? this.renderAllSharedMaterialDataSections(data)\r\n : this.renderAccessDeniedInfoBar()\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n public render() {\r\n if (this.isLoading()) {\r\n return
    \r\n \r\n
    ;\r\n }\r\n else if (!this.isSharedMaterialFound()) {\r\n return \r\n }\r\n\r\n return this.wrapBody(\r\n <>\r\n
    \r\n {this.renderBody(this.peekRenderData())}\r\n
    \r\n {this.renderModals()}\r\n \r\n );\r\n }\r\n\r\n private renderImageAndDetailsContainer(data: DetailSectionRenderData) {\r\n const coreData = data.coreData;\r\n const detailData = data.detailBundle!.detailData;\r\n const supplier = data.company;\r\n const lastUpdatedDateStringLocalized = new Date(coreData.lastModified).toLocaleDateString();\r\n const sharedMaterialDetailsClassName = `tn-section-col-${coreData.materialPhotoFileId === null ? 12 : 8} shared-material-details`;\r\n const isUnClaimed = data.detailBundle.isUnClaimed;\r\n return (\r\n
    \r\n
    \r\n {coreData.materialPhotoFileId !== null &&\r\n
    \r\n \r\n
    }\r\n
    \r\n\r\n
    \r\n

    {coreData.materialName}

    \r\n
    \r\n
    \r\n

    {supplier.name}

    \r\n {(supplier.logoFileId !== null) && }\r\n
    \r\n
    \r\n {(!isUnClaimed) &&\r\n {this.localizeString(\"Contact Company\")}}\r\n {this.localizeString(\"View Company's Page\")}\r\n {(\"\" !== detailData.general.purchaseUrl && !isUnClaimed) && \r\n {this.localizeString(\"Purchase Material\")} }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {detailData.general.description.split('\\n').map((s, index) => (\r\n

    \r\n {s.trim()}\r\n

    \r\n ))}\r\n
    \r\n
    \r\n {this.localizeString(\"Category\")}: {coreData.categories.join(\", \")}\r\n
    \r\n {isUnClaimed && (\r\n

    {this.localizeString(\"Curated by 3E\")}

    \r\n )}\r\n

    \r\n {this.localizeString(\"Last updated on\")} {lastUpdatedDateStringLocalized}\r\n

    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderAllSharedMaterialDataSections(data: DetailSectionRenderData) {\r\n if (this.isLoading()) {\r\n return null;\r\n }\r\n\r\n const detailSections = defineDetailSections(this.props.appServices, data.detailBundle.dynamicRegulationTable);\r\n\r\n const items: JSX.Element[] = [];\r\n\r\n const coreData = data.coreData;\r\n const detailBundle = data.detailBundle!;\r\n\r\n // sort any sections without data to the bottom\r\n const restrictedData = detailBundle.detailData.restrictedData!;\r\n const sortedSections = detailSections.sort((a, b) => {\r\n const aHasData = a.hasData(coreData, restrictedData);\r\n const bHasData = b.hasData(coreData, restrictedData);\r\n return (aHasData && bHasData) ? 0 : (aHasData ? -1 : 1);\r\n });\r\n\r\n for (let section of sortedSections) {\r\n const isExpanded = section.isExpanded(this.peekCollapsedSections());\r\n const hasData = section.hasData(coreData, restrictedData)\r\n items.push(\r\n
    \r\n {hasData\r\n ?
    this.toggleSection_click(section.dataSectionId)}> {section.title}
    \r\n :
    {section.title} {this.localizeString(\"(No Data)\")}
    \r\n }\r\n {isExpanded && hasData && section.render(coreData, restrictedData, detailBundle.fileTable, this, data.company.ownerId)}\r\n
    \r\n )\r\n }\r\n\r\n return
    {items}
    ;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n protected isSharedMaterialFound() {\r\n return true;\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderAccessDeniedInfoBar() {\r\n return (\r\n
    \r\n {this.localizeString(\"This material's data is available upon request.\")}{\" \"}{this.localizeString(\"Click here to request access.\")}\r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /**\r\n * Provides specific attributes to the element responsible for handling the various View Details redirects.\r\n */\r\n abstract renderViewDetailsAttributes: (inventoryId: string, publicInventoryId: string, publicInventoryDataIdId: string, controllerId: string, contentContext: string) => { [attribute: string]: any };\r\n abstract addToLibraryButton_click: (sharedMaterialId: string) => void;\r\n\r\n // ===============================================================================\r\n\r\n //\r\n // UI Events\r\n //\r\n\r\n // ===============================================================================\r\n\r\n protected abstract toggleSection_click: (dataSectionId: string) => void;\r\n\r\n protected abstract contactSupplierButton_click: (e: React.MouseEvent) => void;\r\n\r\n protected abstract viewCompanyButton_click: (e: React.MouseEvent) => void;\r\n\r\n protected abstract purchaseMaterial_click: (e: React.MouseEvent) => void;\r\n\r\n protected abstract requestAccessButton_click: (e: React.MouseEvent) => void;\r\n}\r\n","import * as React from 'react';\r\nimport { Route, Switch } from 'react-router';\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../store';\r\nimport { Link, RouteComponentProps, withRouter } from 'react-router-dom';\r\nimport * as SharedMaterialsDatabaseStateController from '../../store/StateControllers/SharedMaterials/SharedMaterialsDatabaseStateController';\r\nimport { ToxnotComponent, ToxnotComponentProperties } from '../core/BaseApplicationComponents/ToxnotComponent';\r\nimport SharedMaterialsBrowser from './SharedMaterialsBrowser';\r\nimport StartExperienceGuideComponent from '../Start/StartExperienceGuideComponent';\r\nimport { ToxnotReactComponentPaths } from '../core/ToxnotReactComponentPaths';\r\n\r\nimport './SharedMaterialsHome.css';\r\n\r\n// ===============================================================================\r\n\r\ntype SharedMaterialsHomeProps =\r\n RouteComponentProps &\r\n ToxnotComponentProperties &\r\n SharedMaterialsDatabaseStateController.SharedMaterialsState &\r\n typeof SharedMaterialsDatabaseStateController.actionCreators; // ... plus action creators we've requested\r\n\r\nclass SharedMaterialsHome extends ToxnotComponent {\r\n\r\n private readonly _RowPerPageValue: number = SharedMaterialsDatabaseStateController.rowPerPageValue;\r\n\r\n public componentDidMount() {\r\n this.props.appServices.trackCurrentUrlPath();\r\n this.props.appServices.trackEvent(\"exchange-viewed-home\");\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public componentWillMount() {\r\n this.props.loadExchangeFreState();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n return (\r\n
    \r\n \r\n \r\n \r\n

    \r\n {this.localizeString(\"Search the Passport Library, an easy way for suppliers to share their Material Passports.\")}\r\n

    \r\n

    \r\n {this.localizeString(\"Learn More about the Passport Library\")}\r\n

    \r\n {this.props.appServices.userContext?.isEditor &&\r\n \r\n

    \r\n {this.localizeString(\"Not finding what you're looking for?\")}\r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {(this.props.hasSeenExchangeFirstRunExperience ?\r\n this.renderDefaultBranding() :\r\n this.renderFirstRunExperience()\r\n )}\r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderDefaultBranding() {\r\n return (\r\n
    \r\n
    \r\n Passport Library\r\n
    \r\n
    \r\n {this.renderHomeExchangeTopLevelActionButtonsLearnMore()}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderFirstRunExperience() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Passport Library

    \r\n

    {this.localizeString(\"Shareable Product & Material Information\")}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.renderHomeExchangeTopLevelActionButtons()}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.renderLogo(\"458c89a1-f0b9-4d1f-a328-b0de349974b0\", \"/images/exchange/assa-abloy-logo.jpg\")}\r\n {this.renderLogo(\"bd1ca38f-f5a9-4dee-bd7c-18f76b1eb286\", \"/images/exchange/ecosafety-logo.png\")}\r\n {this.renderLogo(\"60810c63-50f8-46d8-aa84-bd61a916d922\", \"/images/exchange/autex-logo.jpg\")}\r\n {this.renderLogo(\"cde1f3de-c369-4be4-877c-6d62e4389406\", \"/images/exchange/nassimi-logo.png\")}\r\n {this.renderLogo(\"d6d50053-bb15-4c55-8cff-79711de4e3e0\", \"/images/exchange/nsg-group-logo.png\")}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n /* renders a logo for the FRE that links to a supplier.\r\n * @param supplierId the exchange ID for the supplier's company page.\r\n * @param logoFileLocation the file location for the image to show.\r\n */\r\n private renderLogo(supplierId: string, logoFileLocation: string) {\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private runSearch() {\r\n const searchInput = document.getElementById(\"fre-search-text-input\") as HTMLInputElement;\r\n\r\n const query = searchInput.value.trim();\r\n\r\n if (query.length <= 0) {\r\n return;\r\n }\r\n\r\n this.props.loadSharedMaterialsIfNeeded(\r\n this.props.appServices,\r\n this.getQueryParameter(\"accessCode\"),\r\n 0,\r\n query,\r\n this._RowPerPageValue,\r\n {},\r\n );\r\n \r\n searchInput.value = \"\";\r\n\r\n this.props.setHasSeenExchangeFreState(true);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderHomeExchangeTopLevelActionButtonsBasic() {\r\n return (\r\n \r\n {this.localizeString(\"Add your Materials\")}\r\n {this.localizeString(\"Invite your Suppliers\")}\r\n \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderHomeExchangeTopLevelActionButtons() {\r\n return (\r\n
    \r\n {this.renderHomeExchangeTopLevelActionButtonsBasic()}\r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderHomeExchangeTopLevelActionButtonsLearnMore() {\r\n return (\r\n
    \r\n {this.renderHomeExchangeTopLevelActionButtonsBasic()}\r\n \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n //\r\n // UI Events\r\n //\r\n\r\n private freSearchInput_keyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === \"Enter\") {\r\n this.runSearch();\r\n }\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private getStartedRequestNewMaterialsButton_click = () => {\r\n this.props.appServices.trackEvent(\"get-started-request-new-materials-clicked\");\r\n\r\n this.props.history.push(\"/Start/InviteSuppliers\");\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ ...state.sharedMaterialsState, appServices: state.appServices }),\r\n SharedMaterialsDatabaseStateController.actionCreators // Selects which action creators are merged into the component's props\r\n)(withRouter(SharedMaterialsHome as any));\r\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport { ApplicationState } from '../../store';\r\nimport SharedMaterialsBrowser from './SharedMaterialsBrowser';\r\nimport * as SharedMaterialsDatabaseStateController from '../../store/StateControllers/SharedMaterials/SharedMaterialsDatabaseStateController';\r\nimport { ToxnotReactComponentPaths } from '../core/ToxnotReactComponentPaths';\r\nimport * as Models from '../../store/Models/SharedMaterials/DataModel';\r\nimport { ToxnotComponent, ToxnotComponentProperties } from '../core/BaseApplicationComponents/ToxnotComponent';\r\nimport './SharedMaterialSupplier.css';\r\nimport { AppServices } from '../../AppServices';\r\nimport { RequestDataSupplierInfo, SurveyLocalStorageManager } from '../../store/Managers/SurveyLocalStorageManager';\r\nimport * as BrowserStateModels from \"../../store/Models/SharedMaterials/BrowserStateModels\";\r\nimport { rowPerPageValue } from '../../store/StateControllers/SharedMaterials/SharedMaterialsDatabaseStateController';\r\n\r\n\r\n// At runtime, Redux will merge together...\r\ntype SharedMaterialSupplierProps =\r\n SharedMaterialsDatabaseStateController.SharedMaterialsState &\r\n ToxnotComponentProperties &\r\n typeof SharedMaterialsDatabaseStateController.actionCreators & // ... plus action creators we've requested\r\n RouteComponentProps<{ ownerId: string, companyId?: string }>;\r\n\r\nclass SharedMaterialSupplier extends ToxnotComponent {\r\n \r\n private readonly _RowPerPageValue: number = rowPerPageValue;\r\n \r\n // ===============================================================================\r\n\r\n public async componentDidMount() {\r\n this.props.appServices.trackEvent(\"exchange-viewed-company-page\");\r\n await this.props.loadSharedMaterialsIfNeeded(this.props.appServices, this.getQueryParameter(\"accessCode\"), 0,'',this._RowPerPageValue, {}, BrowserStateModels.SortTypes.PassportName, BrowserStateModels.SortDirectionType.Ascending, this.props.match.params.companyId);\r\n \r\n await this.props.getSupplierFromIds(this.props.match.params.ownerId, this.props.match.params.companyId);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n if (this.props.currentlySelectedSupplierState.isLoading || (this.props.currentlySelectedSupplierState.supplier === null)) {\r\n return (\r\n
    \r\n
    {this.localizeString(\"Loading...\")}
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n this.renderMainSupplierForm(this.props.currentlySelectedSupplierState.supplier)\r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private renderMainSupplierForm(supplier: Models.SharedMaterialsFullCompany) {\r\n const isUnClaimed = supplier.isUnClaimed;\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {(this.props.history.length > 1)\r\n ? (\r\n \r\n )\r\n : (\r\n {this.localizeString(\"Home\")}\r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {(supplier.logoFileId !== null) && }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {supplier.name}

    \r\n
    \r\n {supplier.companyInfo !== null &&\r\n
    \r\n {this.localizeString(\"Visit Company Website\")}\r\n
    \r\n {supplier.companyInfo.description.split('\\n').map((s, index) => (\r\n

    \r\n {s.trim()}\r\n

    \r\n ))}\r\n
    \r\n
    \r\n {isUnClaimed ? (\r\n

    {this.localizeString(\"Curated by 3E\")}

    \r\n ) : (\r\n this.contactSupplierButton_click()} className=\"btn btn-default \">{this.localizeString(\"Contact\")}\r\n )}\r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {\" \"}\r\n {!isUnClaimed && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n }\r\n\r\n // ===============================================================================\r\n //\r\n // UI Events\r\n //\r\n // ===============================================================================\r\n\r\n private requestBulkPermissionButton_onClick = () => {\r\n const keys = Object.keys(this.props.supplierBrowserState.currentlySelectedSharedMaterialIds);\r\n\r\n if (keys.length === 0) {\r\n alert(this.localizeString(\"At least one material must be selected before requesting access\"));\r\n return;\r\n }\r\n\r\n if (this.props.appServices.userContext === null) {\r\n AppServices.redirectToSignInPage();\r\n return;\r\n }\r\n\r\n this.props.requestAccessToSharedMaterials(keys);\r\n this.props.history.push(ToxnotReactComponentPaths.RequestAccessToSharedMaterial);\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private contactSupplierButton_click = () => {\r\n this.props.initializeRequest();\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private requestNewMaterialsButton_click = (supplier: Models.SharedMaterialsFullCompany) => {\r\n const requestDataSupplierInfo: RequestDataSupplierInfo = {\r\n existingSupplierIdsToInventoryIds: {},\r\n newSupplierNamesToEmail: {\r\n [supplier.name]: supplier.contactEmail\r\n }\r\n };\r\n\r\n const userContext = this.getUserContext();\r\n\r\n // Not signed in\r\n if (userContext === null) {\r\n AppServices.redirectToSignInPage();\r\n return;\r\n }\r\n\r\n const manager = new SurveyLocalStorageManager(userContext.userId);\r\n manager.setRequestDataSupplierInfo(requestDataSupplierInfo);\r\n\r\n this.props.history.push(ToxnotReactComponentPaths.GetStartedRequestData);\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ ...state.sharedMaterialsState, appServices: state.appServices }),\r\n SharedMaterialsDatabaseStateController.actionCreators // Selects which action creators are merged into the component's props\r\n)(withRouter(SharedMaterialSupplier as any));\r\n","import { Link } from 'react-router-dom';\r\nimport { ToxnotComponent, ToxnotComponentProperties } from '../../core/BaseApplicationComponents/ToxnotComponent';\r\nimport { ToxnotReactComponentPaths } from '../../core/ToxnotReactComponentPaths';\r\n\r\nimport './SharedMaterialNotFound.css';\r\n\r\nexport class SharedMaterialNotFound extends ToxnotComponent {\r\n \r\n // ===============================================================================\r\n\r\n public render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {this.props.appServices.localizeString(\"Passport Not Found\")}

    \r\n
    \r\n
    \r\n
    \r\n {this.props.appServices.localizeString(\"Passport not found. Either this passport does not exist, or you do not have access to it.\")}\r\n
    \r\n
    \r\n {this.localizeString(\"Go to\")} {this.localizeString(\"Passport Library\")}\r\n
    \r\n
    \r\n );\r\n }\r\n}","export enum InventoryFileType {\r\n GeneralSupportingFile = 0,\r\n QuestionnaireFile = 1,\r\n MetadataPageFile = 2,\r\n PhotoFile = 3,\r\n DeclareFile = 4,\r\n MsdsFile = 5,\r\n ComplianceGeneralFile = 6,\r\n ScipFile = 7,\r\n SustainabilityFile = 8,\r\n CircularityFile = 9,\r\n GeneralSupportingFileHpd = 10,\r\n GeneralSupportingFileC2c = 11,\r\n GeneralSupportingFileVoc = 12,\r\n GeneralSupportingFileOther = 13,\r\n HniEdsImageFile = 14,\r\n SoldItemFile = 15,\r\n DynamicRegulationPageFile = 16,\r\n TdsFile = 17,\r\n VocDataFile = 18,\r\n InstructionsFile = 19\r\n}\r\n\r\nexport enum FieldType {\r\n FieldGroup = \"FieldGroup\",\r\n TextInput = \"TextInput\",\r\n TextArea = \"TextArea\",\r\n SingleSelectInput = \"SingleSelectInput\", //Dropdown\r\n MultiSelectInput = \"MultiSelectInput\", //Checkbox\r\n RadioButtons = \"RadioButtons\",\r\n MultipleFiles = \"MultipleFiles\",\r\n SelectCertification = \"SelectCertification\",\r\n MultipleTextInputRows = \"MultipleTextInputRows\"\r\n}\r\n\r\nexport interface Option {\r\n description: string;\r\n value: string;\r\n}\r\n\r\nexport interface Field {\r\n type: FieldType;\r\n label: string;\r\n instructions: string;\r\n summaryDataTableKey?: string;\r\n inventoryFileType?: InventoryFileType;\r\n isExportable?: boolean;\r\n enumType?: string;\r\n options?: Option[];\r\n childFields?: Field[];\r\n}\r\n\r\nexport interface Section {\r\n title: string;\r\n questionnairePageType: string;\r\n fields: Field[];\r\n}\r\n\r\nexport interface Page {\r\n title: string;\r\n questionnairePageType: string;\r\n sections: Section[];\r\n}\r\n\r\nexport interface StandardSumaryDataFieldsConfig {\r\n pages: Page[];\r\n}","import * as React from 'react';\r\nimport \"./styles.css\";\r\n\r\nexport interface SidebarDetailProps {\r\n localizedSidebarNavTitles: string[];\r\n shouldUpdateNavIndex?: () => boolean;\r\n onSidebarNavItemClicked?: (clickedNavIndex: number) => void;\r\n initialActiveIndex?: number;\r\n onlyChildToRender?: JSX.Element;\r\n}\r\n\r\ninterface SidebarDetailState {\r\n activeNavIndex: number;\r\n}\r\n\r\n//\r\n// A sidebar-detail view. A sidebar nav is on the left side, body content on the right side.\r\n//\r\n// Pass the list of nav titles in the props; the bodies of the different nav endpoints are\r\n// children of the component.\r\n//\r\n// The nav titles are 1-1 correlated to the children bodies by their index order.\r\n//\r\nexport class SidebarDetail extends React.PureComponent {\r\n public constructor(props: SidebarDetailProps) {\r\n super(props);\r\n\r\n this.state = {\r\n activeNavIndex: this.props.initialActiveIndex ?? 0\r\n };\r\n }\r\n\r\n // ===============================================================================\r\n\r\n public render() {\r\n const activeChildren = this.props.onlyChildToRender ?\r\n this.props.onlyChildToRender :\r\n React.Children\r\n .toArray(this.props.children)\r\n .filter((child, index) => index === this.state.activeNavIndex);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {activeChildren}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private sideBarNavItem_click = (navIndex: number) => {\r\n if (this.props.shouldUpdateNavIndex && (!this.props.shouldUpdateNavIndex())) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n activeNavIndex: navIndex\r\n })\r\n\r\n if (this.props.onSidebarNavItemClicked) {\r\n this.props.onSidebarNavItemClicked(navIndex);\r\n }\r\n };\r\n}","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Field, FieldType, Option } from \"../../../config/Models\";\r\nimport { ApplicationState } from \"../../../store\";\r\nimport { ToxnotComponent, ToxnotComponentProperties } from \"../../core/BaseApplicationComponents/ToxnotComponent\";\r\n\r\nexport interface OwnProps { summaryFields: Field[] }\r\n\r\nexport type SurveyPreviewRenderProps = ToxnotComponentProperties & OwnProps;\r\n\r\nclass CreateAndEditSurveyPreviewRenderer extends ToxnotComponent {\r\n private getOptionDescriptions(options: Option[]) {\r\n return options.map(opt => opt.description);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n return (\r\n
    \r\n {this.props.summaryFields.map((field, index) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {field.label}\r\n
    \r\n {(field.instructions && field.instructions !== \"\") &&
    {field.instructions}
    }\r\n
    \r\n
    \r\n );\r\n })}\r\n
    \r\n );\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n // Selects which state properties are merged into the component's props\r\n (state: ApplicationState, ownProps: OwnProps) => ({ appServices: state.appServices })\r\n)(CreateAndEditSurveyPreviewRenderer as any);\r\n","//\r\n// DO NOT EDIT. THIS FILE IS GENERATED.\r\n//\r\n\r\n\r\n import { Field, FieldType, StandardSumaryDataFieldsConfig, InventoryFileType, Section } from \"./Models\";\r\n \r\n\r\nexport class StandardSummaryDataFieldsManager {\r\n public static getFieldAndAllSubChildrenInTree(field: Field): Field[] {\r\n return [\r\n field,\r\n ...(\r\n (field.childFields ?? [])\r\n .selectMany(childField => StandardSummaryDataFieldsManager.getFieldAndAllSubChildrenInTree(childField))\r\n )\r\n ];\r\n }\r\n\r\n public static getAllFlattenedFieldsForSection = (section: Section): Field[] => section\r\n .fields\r\n .selectMany(f => StandardSummaryDataFieldsManager.getFieldAndAllSubChildrenInTree(f));\r\n\r\n public static getAllFlattenedFields = (): Field[] =>\r\n StandardSummaryDataFieldsManager.getConfig()\r\n .pages\r\n .selectMany(p => p.sections)\r\n .selectMany(s => s.fields)\r\n .selectMany(f => StandardSummaryDataFieldsManager.getFieldAndAllSubChildrenInTree(f));\r\n\r\n public static getAllFlattenedFileFields = (): Field[] =>\r\n StandardSummaryDataFieldsManager.getAllFlattenedFields()\r\n .filter(f => f.type === FieldType.MultipleFiles);\r\n\r\n /*\r\n\r\n public static getAllBulkImportFileDestinations = (): ImportFileDestination[] =>\r\n StandardSummaryDataFieldsManager.getConfig()\r\n .pages\r\n .map(p => ({ pageName: p.title, sectionFields: p.sections.selectMany(section => StandardSummaryDataFieldsManager.getAllFlattenedFieldsForSection(section)) }))\r\n .selectMany(tuple => tuple.sectionFields.filter(f => f.type === FieldType.MultipleFiles).map(f => ({\r\n fileType: StandardSummaryDataFieldsManager.inventoryFileTypeToImportFilesFileTypeMap[f.inventoryFileType],\r\n sourceId: 'toxnot-standard-pages',\r\n pageTitle: basePageViewController.localizeString(tuple.pageName),\r\n fieldTitle: basePageViewController.localizeString(f.label),\r\n summaryTableKey: f.summaryDataTableKey,\r\n validFileExtensions: null,\r\n validFileMetadataTypes: [\r\n FileMetadataType.PlainDocument,\r\n FileMetadataType.Certification\r\n ]\r\n })));\r\n\r\n private static readonly inventoryFileTypeToImportFilesFileTypeMap: Readonly<{ [key: number]: ImportFilesFileType }> = {\r\n [InventoryFileType.GeneralSupportingFile]: ImportFilesFileType.InventoryGeneralSupportingFile,\r\n [InventoryFileType.QuestionnaireFile]: ImportFilesFileType.InventoryQuestionnaireFile,\r\n [InventoryFileType.MetadataPageFile]: ImportFilesFileType.InventoryMetadataPageFile,\r\n [InventoryFileType.PhotoFile]: ImportFilesFileType.InventoryPhotoFile,\r\n [InventoryFileType.DeclareFile]: ImportFilesFileType.InventoryDeclareFile,\r\n [InventoryFileType.MsdsFile]: ImportFilesFileType.InventoryMsdsFile,\r\n [InventoryFileType.ComplianceGeneralFile]: ImportFilesFileType.InventoryComplianceGeneralFile,\r\n [InventoryFileType.ScipFile]: ImportFilesFileType.InventoryScipFile,\r\n [InventoryFileType.SustainabilityFile]: ImportFilesFileType.InventorySustainabilityFile,\r\n [InventoryFileType.CircularityFile]: ImportFilesFileType.InventoryCircularityFile,\r\n [InventoryFileType.GeneralSupportingFileHpd]: ImportFilesFileType.InventoryGeneralSupportingFileHpd,\r\n [InventoryFileType.GeneralSupportingFileC2c]: ImportFilesFileType.InventoryGeneralSupportingFileC2c,\r\n [InventoryFileType.GeneralSupportingFileVoc]: ImportFilesFileType.InventoryGeneralSupportingFileVoc,\r\n [InventoryFileType.GeneralSupportingFileOther]: ImportFilesFileType.InventoryGeneralSupportingFileOther,\r\n [InventoryFileType.HniEdsImageFile]: ImportFilesFileType.InventoryHniEdsImageFile,\r\n [InventoryFileType.SoldItemFile]: ImportFilesFileType.InventorySoldItemFile,\r\n [InventoryFileType.DynamicRegulationPageFile]: ImportFilesFileType.InventoryDynamicRegulationPageFile,\r\n [InventoryFileType.TdsFile]: ImportFilesFileType.InventoryTdsFile,\r\n [InventoryFileType.VocDataFile]: ImportFilesFileType.InventoryVocDataFile,\r\n [InventoryFileType.InstructionsFile]: ImportFilesFileType.InventoryInstructionsFile\r\n };\r\n\r\n */\r\n\r\n public static getConfig(): StandardSumaryDataFieldsConfig {\r\n return {\r\n \"pages\" : [\r\n {\r\n \"title\" : \"Lifecycle Impacts\",\r\n \"questionnairePageType\" : \"Sustainability\",\r\n \"sections\" : [\r\n {\r\n \"title\" : \"LCA\\/EPD\",\r\n \"questionnairePageType\" : \"SustainabilityEmbodiedCarbon\",\r\n \"fields\" : [\r\n {\r\n \"type\" : FieldType.FieldGroup,\r\n \"label\" : \"LCA\\/EPD File\",\r\n \"instructions\" : \"\",\r\n \"childFields\" : [\r\n {\r\n \"type\" : FieldType.MultipleFiles,\r\n \"label\" : \"EPD\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_embodied_carbon_original_epd_files\",\r\n \"isExportable\" : false,\r\n \"inventoryFileType\" : InventoryFileType.SustainabilityFile\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"EPD File URL\",\r\n \"instructions\" : \"Enter an optional url to the EPD file instead of uploading it above\",\r\n \"summaryDataTableKey\" : \"carbon_data_embodied_carbon_box_epd_file_download_url\",\r\n \"isExportable\" : true\r\n },\r\n {\r\n \"type\" : FieldType.SelectCertification,\r\n \"label\" : \"EPD Certification\",\r\n \"instructions\" : \"Adding a certification here will also link it to your product\\/material. You can view it in the \\\"Certifications\\\" page on the left.\",\r\n \"summaryDataTableKey\" : \"carbon_data_embodied_carbon_epd_certification_id\",\r\n \"isExportable\" : false\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.SingleSelectInput,\r\n \"label\" : \"LCA\\/EPD Type\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_embodied_carbon_lca_epd_type\",\r\n \"enumType\" : \"CarbonDataLcaEpdAnswerType\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"LCA (3rd Party)\",\r\n \"value\" : \"LcaThirdParty\"\r\n },\r\n {\r\n \"description\" : \"LCA (internal)\",\r\n \"value\" : \"LcaInternal\"\r\n },\r\n {\r\n \"description\" : \"LCA in Progress\",\r\n \"value\" : \"LcaInProgress\"\r\n },\r\n {\r\n \"description\" : \"Product Specific Epd\",\r\n \"value\" : \"ProductSpecificEpd\"\r\n },\r\n {\r\n \"description\" : \"Product Specific Epd in Progress\",\r\n \"value\" : \"ProductSpecificEpdInProgress\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.FieldGroup,\r\n \"label\" : \"Embodied Carbon\",\r\n \"instructions\" : \"\",\r\n \"childFields\" : [\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"Embodied Carbon Amount (kg CO2e\\/unit)\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"embodied_carbon_amount\"\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"Embodied Carbon Product Unit\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"embodied_carbon_product_unit\",\r\n \"isExportable\" : true\r\n },\r\n {\r\n \"type\" : FieldType.MultiSelectInput,\r\n \"label\" : \"Embodied Carbon Scope\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"embodied_carbon_scope\",\r\n \"enumType\" : \"CarbonDataLifeCycleStagesAnswerType\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Product Stage (Cradle-to-Gate) A1-A3\",\r\n \"value\" : \"ProductStage\"\r\n },\r\n {\r\n \"description\" : \"Construction Stage A4-A5\",\r\n \"value\" : \"ConstructionStage\"\r\n },\r\n {\r\n \"description\" : \"Use Stage B1-B5\",\r\n \"value\" : \"UseStage\"\r\n },\r\n {\r\n \"description\" : \"End of Life Stage C1-D4\",\r\n \"value\" : \"EndOfLifeStage\"\r\n },\r\n {\r\n \"description\" : \"Reuse\\/Recovery\\/Recycling Potential D\",\r\n \"value\" : \"ReuseRecoveryRecyclingPotential\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.MultipleFiles,\r\n \"label\" : \"Embodied Carbon Supporting Documents\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"embodied_carbon_supporting_files\",\r\n \"isExportable\" : false,\r\n \"inventoryFileType\" : InventoryFileType.SustainabilityFile\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"title\" : \"Water Use\",\r\n \"questionnairePageType\" : \"SustainabilityWaterUse\",\r\n \"fields\" : [\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"Amount of water (usually liters)\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"water_use_amount\"\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"Water Use Product Unit\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"water_use_product_unit\"\r\n },\r\n {\r\n \"type\" : FieldType.MultiSelectInput,\r\n \"label\" : \"Water Use Scope\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"water_use_scope\",\r\n \"enumType\" : \"CarbonDataLifeCycleStagesAnswerType\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Product Stage (Cradle-to-Gate) A1-A3\",\r\n \"value\" : \"ProductStage\"\r\n },\r\n {\r\n \"description\" : \"Construction Stage A4-A5\",\r\n \"value\" : \"ConstructionStage\"\r\n },\r\n {\r\n \"description\" : \"Use Stage B1-B5\",\r\n \"value\" : \"UseStage\"\r\n },\r\n {\r\n \"description\" : \"End of Life Stage C1-D4\",\r\n \"value\" : \"EndOfLifeStage\"\r\n },\r\n {\r\n \"description\" : \"Reuse\\/Recovery\\/Recycling Potential D\",\r\n \"value\" : \"ReuseRecoveryRecyclingPotential\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.MultipleFiles,\r\n \"label\" : \"Water Use Supporting Documents\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"water_use_supporting_files\",\r\n \"isExportable\" : false,\r\n \"inventoryFileType\" : InventoryFileType.SustainabilityFile\r\n }\r\n ]\r\n },\r\n {\r\n \"title\" : \"Transparency\",\r\n \"questionnairePageType\" : \"SustainabilityTransparency\",\r\n \"fields\" : [\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Is the EPD third party reviewed and verified?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_transparency_third_party_verified\",\r\n \"enumType\" : \"YesNoRadioOptions\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes, Third-Party (Externally Verified)\",\r\n \"value\" : \"Yes\"\r\n },\r\n {\r\n \"description\" : \"No, Internally Reviewed\",\r\n \"value\" : \"No\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"Timeframe\\/Lifetime utilized in the EPD\\/LCA\",\r\n \"instructions\" : \"Enter the time in years\",\r\n \"summaryDataTableKey\" : \"carbon_data_transparency_timeframe\"\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Is it plant specific?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_transparency_plant_specific\",\r\n \"enumType\" : \"YesNoRadioOptions\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes\",\r\n \"value\" : \"Yes\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.SingleSelectInput,\r\n \"label\" : \"Does the LCA\\/EPD communicate changes in carbon based on variations\\/configurations?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_transparency_variation\",\r\n \"enumType\" : \"CarbonDataVariationAnswerType\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Based on SKU\",\r\n \"value\" : \"BasedOnSku\"\r\n },\r\n {\r\n \"description\" : \"Based on Product Feature\",\r\n \"value\" : \"BasedOnProductFeature\"\r\n },\r\n {\r\n \"description\" : \"Product Family\",\r\n \"value\" : \"ProductFamily\"\r\n },\r\n {\r\n \"description\" : \"Other\",\r\n \"value\" : \"Other\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Is the product available in digital tools (EC3, OpenEPD, ILCD+EPD, ISO 22057, etc)\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_transparency_digital_tools\",\r\n \"enumType\" : \"CarbonDataDigitalToolsAnswerType\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes, Third-Party Verified\",\r\n \"value\" : \"YesThirdParty\"\r\n },\r\n {\r\n \"description\" : \"No, Not Third-Party Verified\",\r\n \"value\" : \"NoThirdParty\"\r\n },\r\n {\r\n \"description\" : \"ISO22057 Digital Data Alignment for BIM\",\r\n \"value\" : \"Iso22057\"\r\n },\r\n {\r\n \"description\" : \"In Progress\",\r\n \"value\" : \"InProgress\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"LCA Standard\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_transparency_lca_standard\",\r\n \"childFields\" : [\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"Enter Equivalent\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_datatransparency__lca_standard\"\r\n }\r\n ],\r\n \"enumType\" : \"CarbonDataLcaStandardAnswerType\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"ISO 14040 + ISO 14044\",\r\n \"value\" : \"Iso14040Iso14044\"\r\n },\r\n {\r\n \"description\" : \"ISO 14067\",\r\n \"value\" : \"Iso14067\"\r\n },\r\n {\r\n \"description\" : \"Equivalent\",\r\n \"value\" : \"Equivalent\"\r\n },\r\n {\r\n \"description\" : \"No\\/Unknown\",\r\n \"value\" : \"NoUnknown\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"EPD Reporting Standard\",\r\n \"instructions\" : \"Does the EPD comply with specific reporting standards?\",\r\n \"summaryDataTableKey\" : \"carbon_data_transparency_epd_standard\",\r\n \"enumType\" : \"CarbonDataEpdStandardAnswerType\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"ISO 14025\",\r\n \"value\" : \"Iso14025\"\r\n },\r\n {\r\n \"description\" : \"ISO 21930\",\r\n \"value\" : \"Iso21930\"\r\n },\r\n {\r\n \"description\" : \"EN 15804\",\r\n \"value\" : \"En15804\"\r\n },\r\n {\r\n \"description\" : \"Unknown\",\r\n \"value\" : \"Unknown\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Does the document include the name of the product?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_transparency_document_include_name\",\r\n \"enumType\" : \"YesNoRadioOptions\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes\",\r\n \"value\" : \"Yes\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"title\" : \"Assessment & Commitments\",\r\n \"questionnairePageType\" : \"SustainabilityAssessment\",\r\n \"fields\" : [\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Has uncertainty been factored into A1-A3 stages? (EC3)\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_assessment_uncertainty\",\r\n \"enumType\" : \"CarbonDataUncertaintyAnswerType\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes; WRI Measuring embodied emissions\",\r\n \"value\" : \"YesMeasuringEmbodiedEmissions\"\r\n },\r\n {\r\n \"description\" : \"Yes; Burden of Doubt\",\r\n \"value\" : \"YesBurdenOfDoubt\"\r\n },\r\n {\r\n \"description\" : \"In Progress\",\r\n \"value\" : \"InProgress\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Are there other stages where uncertainty can be applied?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_assessment_uncertainty_additional\",\r\n \"enumType\" : \"CarbonDataUncertaintyAnswerType\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes; WRI Measuring embodied emissions\",\r\n \"value\" : \"YesMeasuringEmbodiedEmissions\"\r\n },\r\n {\r\n \"description\" : \"Yes; Burden of Doubt\",\r\n \"value\" : \"YesBurdenOfDoubt\"\r\n },\r\n {\r\n \"description\" : \"In Progress\",\r\n \"value\" : \"InProgress\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"What steps are being taken to improve impacts?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_commitment_action_plan\",\r\n \"enumType\" : \"CarbonDataActionPlanAnswerTypes\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Action Plan Complete\",\r\n \"value\" : \"ActionPlanComplete\"\r\n },\r\n {\r\n \"description\" : \"In Progress\",\r\n \"value\" : \"InProgress\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"title\" : \"Optimizations\",\r\n \"questionnairePageType\" : \"SustainabilityOptimization\",\r\n \"fields\" : [\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Is there a baseline established for this product category?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_is_clf_baseline_established\",\r\n \"childFields\" : [\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"What is the value?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_clf_baseline\"\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"What category\\/compositional value was selected for the above baseline?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_clf_baseline_category\"\r\n }\r\n ],\r\n \"enumType\" : \"YesNoRadioOptions\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes\",\r\n \"value\" : \"Yes\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Is there an Achievable Estimate Established?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_is_clf_achievable_estimate_established\",\r\n \"childFields\" : [\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"CLF \\\"Achievable\\\" Estimate - 20th Percentile Value\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_clf_achievable_estimate\"\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"What category\\/compositional value was selected for the estimate?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_clf_achievable_estimate_category\"\r\n }\r\n ],\r\n \"enumType\" : \"YesNoRadioOptions\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes\",\r\n \"value\" : \"Yes\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"Percentage of Reductions from CLF Baseline\",\r\n \"instructions\" : \"Please Enter a Percentage\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_percentage_reduction_clf_baseline\"\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"What percentile does this product fall in for the given category?\",\r\n \"instructions\" : \"If the percentage falls below the 20%, this could be considered a threshold for optimization\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_percentile_achievement_level\"\r\n },\r\n {\r\n \"type\" : FieldType.SelectCertification,\r\n \"label\" : \"GHG Emissions Reduction Certification\",\r\n \"instructions\" : \"Adding a certification here will also link it to your product\\/material. You can view it in the \\\"Certifications\\\" page on the left.\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_ghg_certification_id\"\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"GHG Emissions Reduction from Previous Baseline (Final Manuf Stage)\",\r\n \"instructions\" : \"Enter percentage of reduction from Baseline value entered above\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_ghg_emissions_reduction_from_previous_baseline_final_manuf_stage\"\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"GHG Emissions Reduction from Previous Baseline (Cradle to Gate; LCA)\",\r\n \"instructions\" : \"Enter percentage of reduction from Baseline value entered above\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_ghg_emissions_reduction_from_previous_baseline_c2g\"\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"What % of your product have you Offset? (0 to 200%)\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_offsets_percentage\"\r\n },\r\n {\r\n \"type\" : FieldType.MultipleFiles,\r\n \"label\" : \"Documentation or third-party verification of Offsets\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_offsets_verification_document_files\",\r\n \"inventoryFileType\" : InventoryFileType.SustainabilityFile\r\n },\r\n {\r\n \"type\" : FieldType.SelectCertification,\r\n \"label\" : \"Carbon Neutral or Carbon Positive Certification\",\r\n \"instructions\" : \"Adding a certification here will also link it to your product\\/material. You can view it in the \\\"Certifications\\\" page on the left.\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_carbon_neutral_positive_certification_id\",\r\n \"isExportable\" : false\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Is the certification for Carbon Neutral or Positive (handprinting)?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_carbon_neutral_positive_certification_type\",\r\n \"isExportable\" : false,\r\n \"enumType\" : \"CarbonDataCarbonNeutralOrPositiveAnswerType\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Carbon Neutral\",\r\n \"value\" : \"CarbonNeutral\"\r\n },\r\n {\r\n \"description\" : \"Carbon Positive\",\r\n \"value\" : \"CarbonPositive\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Is the product's Carbon Neutral or Carbon Positive status third party verified?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_carbon_neutral_positive_verification_type\",\r\n \"enumType\" : \"CarbonDataThirdPartyVerifiedAnswerType\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes, Third-Party (Externally Verified)\",\r\n \"value\" : \"ThirdParty\"\r\n },\r\n {\r\n \"description\" : \"No, Internally Reviewed\",\r\n \"value\" : \"NotThirdParty\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"Enter Carbon reduction percentage\",\r\n \"instructions\" : \"Enter percentage through supply chain or other handprinting, i.e. tree planting, habitat restoration\\/soil amendment, supply chain efficiency (per LPC14)\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_handprint_reduction_percentage\"\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Does the product contain any Biogenic Carbon or is it Actively Carbon Absorbing?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_biogenic\",\r\n \"enumType\" : \"CarbonDataBiogenicCarbonAnswerType\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Contains Biogenic Carbon\",\r\n \"value\" : \"ContainsBiogenicCarbon\"\r\n },\r\n {\r\n \"description\" : \"Actively Carbon Absorbing\",\r\n \"value\" : \"ActivelyCarbonAbsorbing\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.MultipleFiles,\r\n \"label\" : \"Provide a narrative and\\/or research to support claims made about the Biogenic Carbon\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_biogenic_verification_files\",\r\n \"isExportable\" : false,\r\n \"inventoryFileType\" : InventoryFileType.SustainabilityFile\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Have these claims about Biogenic Carbon been 3rd party verified?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"carbon_data_optimizations_biogenic_verification_type\",\r\n \"enumType\" : \"CarbonDataThirdPartyVerifiedAnswerType\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes, Third-Party (Externally Verified)\",\r\n \"value\" : \"NotThirdParty\"\r\n },\r\n {\r\n \"description\" : \"No, Internally Reviewed\",\r\n \"value\" : \"ThirdParty\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"title\" : \"VOC Data\",\r\n \"questionnairePageType\" : \"VocAll\",\r\n \"sections\" : [\r\n {\r\n \"title\" : \"Transparency\",\r\n \"questionnairePageType\" : \"VocTransparency\",\r\n \"fields\" : [\r\n {\r\n \"type\" : FieldType.MultiSelectInput,\r\n \"label\" : \"What types of VOC testing are relevant to this product type?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_transparency_testing\",\r\n \"childFields\" : [\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Was testing completed for VOC content? If so, provide value (g\\/L) and link to documents.\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_transparency_testing_content\",\r\n \"childFields\" : [\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"VOC Content (g\\/L)\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_transparency_testing_content_amount\"\r\n },\r\n {\r\n \"type\" : FieldType.SelectCertification,\r\n \"label\" : \"VOC Testing Certification\",\r\n \"instructions\" : \"Adding a certification here will also link it to your product\\/material. You can view it in the \\\"Certifications\\\" page on the left.\",\r\n \"summaryDataTableKey\" : \"voc_transparency_testing_content_amount_certification_id\",\r\n \"isExportable\" : false\r\n }\r\n ],\r\n \"enumType\" : \"YesNoNaRadioOptions\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes\",\r\n \"value\" : \"Yes\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n }\r\n ],\r\n \"enumType\" : \"VocApplicableTestingEnum\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"VOC Content\",\r\n \"value\" : \"VocContent\"\r\n },\r\n {\r\n \"description\" : \"VOC Emissions\",\r\n \"value\" : \"VocEmmisions\"\r\n },\r\n {\r\n \"description\" : \"Formaldehyde Emissions\",\r\n \"value\" : \"Formaldehyde\"\r\n },\r\n {\r\n \"description\" : \"Inherently Non-Emitting\",\r\n \"value\" : \"NonEmitting\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Was testing completed for VOC emissions? If so, provide link to documents.\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_transparency_testing_emissions\",\r\n \"childFields\" : [\r\n {\r\n \"type\" : FieldType.SelectCertification,\r\n \"label\" : \"VOC Testing Emissions Certification\",\r\n \"instructions\" : \"Adding a certification here will also link it to your product\\/material. You can view it in the \\\"Certifications\\\" page on the left.\",\r\n \"summaryDataTableKey\" : \"voc_transparency_emissions_certification_id\",\r\n \"isExportable\" : false\r\n }\r\n ],\r\n \"enumType\" : \"YesNoNaRadioOptions\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes\",\r\n \"value\" : \"Yes\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Was testing completed for Formaldehyde emissions? If so, provide link to documents.\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_transparency_testing_formaldehyde\",\r\n \"childFields\" : [\r\n {\r\n \"type\" : FieldType.SelectCertification,\r\n \"label\" : \"VOC Testing Formaldehyde Emissions Certification\",\r\n \"instructions\" : \"Adding a certification here will also link it to your product\\/material. You can view it in the \\\"Certifications\\\" page on the left.\",\r\n \"summaryDataTableKey\" : \"voc_transparency_formaldehyde_certification_id\",\r\n \"isExportable\" : false\r\n }\r\n ],\r\n \"enumType\" : \"YesNoNaRadioOptions\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes\",\r\n \"value\" : \"Yes\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Was VOC testing completed and are documents publicly available for all applicable types of testing (content, emissions, formaldehyde)?\",\r\n \"instructions\" : \"\\\"Partial Testing\\\" indicates product has completed one form of testing but not all forms applicable to the product type.\",\r\n \"summaryDataTableKey\" : \"voc_transparency\",\r\n \"enumType\" : \"VocTransparencyEnum\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Complete Testing\",\r\n \"value\" : \"CompleteTesting\"\r\n },\r\n {\r\n \"description\" : \"Partial Testing\",\r\n \"value\" : \"PartialTesting\"\r\n },\r\n {\r\n \"description\" : \"Incomplete Testing\",\r\n \"value\" : \"IncompleteTesting\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"title\" : \"Assessment & Commitments\",\r\n \"questionnairePageType\" : \"VocAssessment\",\r\n \"fields\" : [\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Does the product comply with SCAQMD regulations for VOC content?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_assessment_comply_scaqmd\",\r\n \"enumType\" : \"YesNoNaRadioOptions\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes\",\r\n \"value\" : \"Yes\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Does the product comply with the CDPH Standard Method V1.2-2017 (or equivalent) for VOC emissions? If so, provide testing methodology and reporting program.\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_assessment_comply_cdph\",\r\n \"enumType\" : \"YesNoNaRadioOptions\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes\",\r\n \"value\" : \"Yes\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Testing Methodology or Standard\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_assessment_testing_methodology\",\r\n \"enumType\" : \"VocTestingMethodologyEnum\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"CDPH Standard Method V1.2-2017\",\r\n \"value\" : \"CdphStandardMethod2017\"\r\n },\r\n {\r\n \"description\" : \"BIFMA Level - Credit 7.6.3\",\r\n \"value\" : \"Bifma\"\r\n },\r\n {\r\n \"description\" : \"Cradle to Cradle (gold + platinum levels)\",\r\n \"value\" : \"C2c\"\r\n },\r\n {\r\n \"description\" : \"FloorScore\",\r\n \"value\" : \"FloorScore\"\r\n },\r\n {\r\n \"description\" : \"GreenGuard (all levels)\",\r\n \"value\" : \"GreenGuard\"\r\n },\r\n {\r\n \"description\" : \"Indoor Advantage (all levels)\",\r\n \"value\" : \"IndoorAdvantage\"\r\n },\r\n {\r\n \"description\" : \"NSF 332 (all levels)\",\r\n \"value\" : \"NSF332\"\r\n },\r\n {\r\n \"description\" : \"MAS Certified Green\",\r\n \"value\" : \"MasCertifiedGreen\"\r\n },\r\n {\r\n \"description\" : \"Intertek Clean Air - Gold\",\r\n \"value\" : \"IntertekCleanAirGold\"\r\n },\r\n {\r\n \"description\" : \"GreenSeal GS-11 Certification\",\r\n \"value\" : \"GreenSealGs11\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Reporting Body\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_assessment_reporting_body\",\r\n \"enumType\" : \"VocReportingBodyEnum\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Berkeley Analytical\",\r\n \"value\" : \"BerkeleyAnalytical\"\r\n },\r\n {\r\n \"description\" : \"BIFMA\",\r\n \"value\" : \"Bifma\"\r\n },\r\n {\r\n \"description\" : \"Cradle to Cradle\",\r\n \"value\" : \"C2c\"\r\n },\r\n {\r\n \"description\" : \"UL Environment\",\r\n \"value\" : \"UlEnvironment\"\r\n },\r\n {\r\n \"description\" : \"SCS Global Services\",\r\n \"value\" : \"ScsGlobalServices\"\r\n },\r\n {\r\n \"description\" : \"MAS Certified Green\",\r\n \"value\" : \"MasCertifiedGreen\"\r\n },\r\n {\r\n \"description\" : \"Intertek\",\r\n \"value\" : \"Intertek\"\r\n },\r\n {\r\n \"description\" : \"GreenSeal\",\r\n \"value\" : \"GreenSeal\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Emissions Testing Scenario\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_assessment_emissions_testing_scenario\",\r\n \"enumType\" : \"VocEmissionsTestingEnum\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Classroom\",\r\n \"value\" : \"Classroom\"\r\n },\r\n {\r\n \"description\" : \"Office\",\r\n \"value\" : \"Office\"\r\n },\r\n {\r\n \"description\" : \"Residential\",\r\n \"value\" : \"Residential\"\r\n },\r\n {\r\n \"description\" : \"N\\/A-Pass\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Does the product comply with CARB Phase 2 Formaldehyde requirements?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_assessment_carb_formaldehyde\",\r\n \"childFields\" : [\r\n {\r\n \"type\" : FieldType.MultipleFiles,\r\n \"label\" : \"CARB Phase 2 Formaldehyde Documentation\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_assessment_carb_formaldehyde_documentation_files\",\r\n \"isExportable\" : false,\r\n \"inventoryFileType\" : InventoryFileType.VocDataFile\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"CARB Phase 2 Formaldehyde Certification\\/Standard\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_assessment_certification_standard\",\r\n \"enumType\" : \"VocCertificationOptionsEnum\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"No Added Formaldehyde (NAF)\",\r\n \"value\" : \"NoAddedFormaldehyde\"\r\n },\r\n {\r\n \"description\" : \"Ultra-Low-Emitting Formaldehyde (ULEF)\",\r\n \"value\" : \"UltraLowEmittingFormaldehyde\"\r\n },\r\n {\r\n \"description\" : \"PS 1-09 (wood structural panel)\",\r\n \"value\" : \"PS109\"\r\n },\r\n {\r\n \"description\" : \"PS 2-10 (wood structural panel)\",\r\n \"value\" : \"PS210\"\r\n },\r\n {\r\n \"description\" : \"ASTM D 5456 (for structural composite lumber)\",\r\n \"value\" : \"AstmD5456\"\r\n },\r\n {\r\n \"description\" : \"ANSI A190.1 (for glued laminated timber)\",\r\n \"value\" : \"AnsiA1901\"\r\n },\r\n {\r\n \"description\" : \"ASTM D 5055 (for I-joists)\",\r\n \"value\" : \"AstmD5055\"\r\n },\r\n {\r\n \"description\" : \"ANSI PRG 320 (for cross-laminated timber)\",\r\n \"value\" : \"AnsiPrg320\"\r\n },\r\n {\r\n \"description\" : \"PS 20-15 (for finger-jointed lumber)\",\r\n \"value\" : \"Ps2015\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Has the product been assessed\\/verified to comply with the major industry VOC standards?\",\r\n \"instructions\" : \"\\\"Partial Compliance\\\" indicates product is compliant in one form of testing but not all forms applicable to the product type.\",\r\n \"summaryDataTableKey\" : \"voc_assessment\",\r\n \"enumType\" : \"VocAssessmentEnum\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Full Compliance\",\r\n \"value\" : \"FullCompliance\"\r\n },\r\n {\r\n \"description\" : \"Partial Compliance\",\r\n \"value\" : \"PartialCompliance\"\r\n },\r\n {\r\n \"description\" : \"Non-Compliant\",\r\n \"value\" : \"NonCompliant\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n }\r\n ],\r\n \"enumType\" : \"YesNoNaRadioOptions\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes\",\r\n \"value\" : \"Yes\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"If VOC testing is not complete, is it actively in progress?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_commitments\",\r\n \"enumType\" : \"VocCommitmentsOptionsEnum\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Complete\",\r\n \"value\" : \"Complete\"\r\n },\r\n {\r\n \"description\" : \"In Progress\",\r\n \"value\" : \"InProgress\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.MultipleFiles,\r\n \"label\" : \"Action Plan\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_commitments_action_plan_files\",\r\n \"isExportable\" : false,\r\n \"inventoryFileType\" : InventoryFileType.VocDataFile\r\n }\r\n ]\r\n },\r\n {\r\n \"title\" : \"Optimization\",\r\n \"questionnairePageType\" : \"VocOptimization\",\r\n \"fields\" : [\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Does the product comply with one of the following emissions standards that goes beyond the CDPH standard?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_optimization_further_standard\",\r\n \"enumType\" : \"VocOptimizationEmissionsEnum\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"UL Greenguard Gold\",\r\n \"value\" : \"ULGreenguardGold\"\r\n },\r\n {\r\n \"description\" : \"CRI Green Label Plus\",\r\n \"value\" : \"CriGreenLabelPlus\"\r\n },\r\n {\r\n \"description\" : \"C2C Platinum\",\r\n \"value\" : \"C2cPlatinum\"\r\n },\r\n {\r\n \"description\" : \"C2C Gold\",\r\n \"value\" : \"C2cGold\"\r\n },\r\n {\r\n \"description\" : \"Green Seal Certification\",\r\n \"value\" : \"GreenSealCertification\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Has the product been tested for TVOCs meeting one of the following benchmarks?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_optimization_tvoc\",\r\n \"enumType\" : \"VocOptimizationTvocEmissionsEnum\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"0.22 mg\\/m3 or less\",\r\n \"value\" : \"LessThan22\"\r\n },\r\n {\r\n \"description\" : \"0.5 mg\\/m3 or less\",\r\n \"value\" : \"LessThanHalf\"\r\n },\r\n {\r\n \"description\" : \"Between 0.5 and 5.0 mg\\/m3\",\r\n \"value\" : \"BetweenHalfAnd5\"\r\n },\r\n {\r\n \"description\" : \"5.0 mg\\/m3 or more\",\r\n \"value\" : \"MoreThan5\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Is the product certified NAF by CARB Phase 2 standards?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_optimization_formaldehyde\",\r\n \"enumType\" : \"VocOptimizationFormaldehydeEnum\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"NAF Certified\",\r\n \"value\" : \"NafCertified\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.SelectCertification,\r\n \"label\" : \"CARB Phase 2 Standards Certification\",\r\n \"instructions\" : \"Adding a certification here will also link it to your product\\/material. You can view it in the \\\"Certifications\\\" page on the left.\",\r\n \"summaryDataTableKey\" : \"voc_optimization_formaldehyde_certification_id\",\r\n \"isExportable\" : false\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Is the product determined to be \\\"Super Compliant\\\" by SCAQMD standards?\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"voc_optimization_supercompliant\",\r\n \"enumType\" : \"YesNoNaRadioOptions\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Yes\",\r\n \"value\" : \"Yes\"\r\n },\r\n {\r\n \"description\" : \"No\",\r\n \"value\" : \"No\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\" : FieldType.SelectCertification,\r\n \"label\" : \"SCAQMD Standards Certification\",\r\n \"instructions\" : \"Adding a certification here will also link it to your product\\/material. You can view it in the \\\"Certifications\\\" page on the left.\",\r\n \"summaryDataTableKey\" : \"voc_optimization_supercompliant_certification_id\",\r\n \"isExportable\" : false\r\n },\r\n {\r\n \"type\" : FieldType.RadioButtons,\r\n \"label\" : \"Does the product meet above-average standards in all applicable forms of VOC testing?\",\r\n \"instructions\" : \"Mark as fully optimized if the above three certifications are included.\",\r\n \"summaryDataTableKey\" : \"voc_optimization\",\r\n \"enumType\" : \"VocOptimizationOptionsEnum\",\r\n \"options\" : [\r\n {\r\n \"description\" : \"Full Optimization\",\r\n \"value\" : \"FullOptimization\"\r\n },\r\n {\r\n \"description\" : \"Partial Optimization\",\r\n \"value\" : \"PartialOptimization\"\r\n },\r\n {\r\n \"description\" : \"N\\/A\",\r\n \"value\" : \"Na\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"title\" : \"Instructions\",\r\n \"questionnairePageType\" : \"InstructionsAll\",\r\n \"sections\" : [\r\n {\r\n \"title\" : \"Installation\",\r\n \"questionnairePageType\" : \"InstructionsInstallation\",\r\n \"fields\" : [\r\n {\r\n \"type\" : FieldType.MultipleFiles,\r\n \"label\" : \"Installation Files\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"instructions_installation_files\",\r\n \"isExportable\" : false,\r\n \"inventoryFileType\" : InventoryFileType.InstructionsFile\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"Installation Notes\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"instructions_installation_notes\"\r\n }\r\n ]\r\n },\r\n {\r\n \"title\" : \"Use Phase\",\r\n \"questionnairePageType\" : \"InstructionsUsePhase\",\r\n \"fields\" : [\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"Life Expectancy\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"instructions_use_phase_life_expectancy\"\r\n },\r\n {\r\n \"type\" : FieldType.FieldGroup,\r\n \"label\" : \"Warranty Info\",\r\n \"instructions\" : \"\",\r\n \"childFields\" : [\r\n {\r\n \"type\" : FieldType.MultipleFiles,\r\n \"label\" : \"Warranty Files\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"instructions_use_phase_warranty_files\",\r\n \"isExportable\" : false,\r\n \"inventoryFileType\" : InventoryFileType.InstructionsFile\r\n },\r\n {\r\n \"type\" : FieldType.TextInput,\r\n \"label\" : \"Warranty Notes\",\r\n \"instructions\" : \"\",\r\n \"summaryDataTableKey\" : \"instructions_use_phase_warranty_notes\"\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"title\" : \"Product Specifications\",\r\n \"questionnairePageType\" : \"InstructionsSpecifications\",\r\n \"fields\" : [\r\n {\r\n \"type\" : FieldType.MultipleTextInputRows,\r\n \"label\" : \"Specifications\",\r\n \"instructions\" : \"List out all specifications for this product. Click the plus button to get started\",\r\n \"summaryDataTableKey\" : \"instructions_specifications\",\r\n \"isExportable\" : false\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n};\r\n }\r\n}","//\r\n// See ServiceAccessLayer RohsExemptions.cs\r\n//\r\n\r\nexport class RohsExemptions {\r\n public static allCodes() {\r\n return Object.keys(RohsExemptions.codeToEnglishDescriptionMap);\r\n }\r\n\r\n public static allEnglishDescriptions() {\r\n const codes = this.allCodes();\r\n\r\n return codes.map(code => RohsExemptions.codeToEnglishDescriptionMap[code]);\r\n }\r\n\r\n public static getEnglishDescriptionForCode(code: string) {\r\n return RohsExemptions.codeToEnglishDescriptionMap[code] ?? \"\";\r\n }\r\n\r\n private static readonly codeToEnglishDescriptionMap: Readonly<{ [code: string]: string }> = {\r\n [\"1\"]: \"1 Mercury in single capped (compact) fluorescent lamps not exceeding (per burner):\", // localization: resources for extraction\r\n [\"1(a)\"]: \"1(a) For general lighting purposes < 30 W: 5 mg\", // localization: resources for extraction\r\n [\"1(b)\"]: \"1(b) For general lighting purposes ≥ 30 W and < 50 W: 5 mg\", // localization: resources for extraction\r\n [\"1(c)\"]: \"1(c) For general lighting purposes ≥ 50 W and < 150 W: 5 mg\", // localization: resources for extraction\r\n [\"1(d)\"]: \"1(d) For general lighting purposes ≥ 150 W: 15 mg\", // localization: resources for extraction\r\n [\"1(e)\"]: \"1(e) For general lighting purposes with circular or square structural shape and tube diameter ≤ 17 mm\", // localization: resources for extraction\r\n [\"1(f)\"]: \"1(f) For special purposes: 5 mg\", // localization: resources for extraction\r\n [\"2(a)\"]: \"2(a) Mercury in double-capped linear fluorescent lamps for general lighting purposes not exceeding (per lamp):\", // localization: resources for extraction\r\n [\"2(a)(1)\"]: \"2(a)(1) Tri-band phosphor with normal lifetime and a tube diameter < 9 mm (e.g. T2): 5 mg\", // localization: resources for extraction\r\n [\"2(a)(2)\"]: \"2(a)(2) Tri-band phosphor with normal lifetime and a tube diameter ≥ 9 mm and ≤ 17 mm (e.g. T5): 5 mg\", // localization: resources for extraction\r\n [\"2(a)(3)\"]: \"2(a)(3) Tri-band phosphor with normal lifetime and a tube diameter > 17 mm and ≤ 28 mm (e.g. T8): 5 mg\", // localization: resources for extraction\r\n [\"2(a)(4)\"]: \"2(a)(4) Tri-band phosphor with normal lifetime and a tube diameter > 28 mm (e.g. T12): 5 mg\", // localization: resources for extraction\r\n [\"2(a)(5)\"]: \"2(a)(5) Tri-band phosphor with long lifetime (≥ 25 000 h): 8 mg\", // localization: resources for extraction\r\n [\"2(b)\"]: \"2(b) Mercury in other fluorescent lamps not exceeding (per lamp):\", // localization: resources for extraction\r\n [\"2(b)(1)\"]: \"2(b)(1) Linear halophosphate lamps with tube > 28 mm (e.g. T10 and T12): 10 mg\", // localization: resources for extraction\r\n [\"2(b)(2)\"]: \"2(b)(2) Non-linear halophosphate lamps (all diameters): 15 mg\", // localization: resources for extraction\r\n [\"2(b)(3)\"]: \"2(b)(3) Non-linear tri-band phosphor lamps with tube diameter > 17 mm (e.g. T9)\", // localization: resources for extraction\r\n [\"2(b)(4)\"]: \"2(b)(4) Lamps for other general lighting and special purposes (e.g. induction lamps)\", // localization: resources for extraction\r\n [\"3\"]: \"3 Mercury in cold cathode fluorescent lamps and external electrode fluorescent lamps (CCFL and EEFL) for special purposes not exceeding (per lamp):\", // localization: resources for extraction\r\n [\"3(a)\"]: \"3(a) Short length (≤ 500 mm)\", // localization: resources for extraction\r\n [\"3(b)\"]: \"3(b) Medium length (> 500 mm and ≤ 1 500 mm)\", // localization: resources for extraction\r\n [\"3(c)\"]: \"3(c) Long length (> 1 500 mm)\", // localization: resources for extraction\r\n [\"4(a)\"]: \"4(a) Mercury in other low pressure discharge lamps (per lamp)\", // localization: resources for extraction\r\n [\"4(b)\"]: \"4(b) Mercury in High Pressure Sodium (vapour) lamps for general lighting purposes not exceeding (per burner) in lamps with improved colour rendering index Ra > 60:\", // localization: resources for extraction\r\n [\"4(b)-I\"]: \"4(b)-I P ≤ 155 W\", // localization: resources for extraction\r\n [\"4(b)-II\"]: \"4(b)-II 155 W < P ≤ 405 W\", // localization: resources for extraction\r\n [\"4(b)-III\"]: \"4(b)-III P > 405 W\", // localization: resources for extraction\r\n [\"4(c)\"]: \"4(c) Mercury in other High Pressure Sodium (vapour) lamps for general lighting purposes not exceeding (per burner):\", // localization: resources for extraction\r\n [\"4(c)-I\"]: \"4(c)-I P ≤ 155 W\", // localization: resources for extraction\r\n [\"4(c)-II\"]: \"4(c)-II 155 W < P ≤ 405 W\", // localization: resources for extraction\r\n [\"4(c)-III\"]: \"4(c)-III P > 405 W\", // localization: resources for extraction\r\n [\"4(d)\"]: \"4(d) Mercury in High Pressure Mercury (vapour) lamps (HPMV)\", // localization: resources for extraction\r\n [\"4(e)\"]: \"4(e) Mercury in metal halide lamps (MH)\", // localization: resources for extraction\r\n [\"4(f)\"]: \"4(f) Mercury in other discharge lamps for special purposes not specifically mentioned in this Annex\", // localization: resources for extraction\r\n [\"5(a)\"]: \"5(a) Lead in glass of cathode ray tubes\", // localization: resources for extraction\r\n [\"5(b)\"]: \"5(b) Lead in glass of fluorescent tubes not exceeding 0,2 % by weight\", // localization: resources for extraction\r\n [\"6(a)\"]: \"6(a) Lead as an alloying element in steel for machining purposes and in galvanised steel containing up to 0,35 % lead by weight\", // localization: resources for extraction\r\n [\"6(b)\"]: \"6(b) Lead as an alloying element in aluminium containing up to 0,4 % lead by weight\", // localization: resources for extraction\r\n [\"6(c)\"]: \"6(c) Copper alloy containing up to 4 % lead by weight\", // localization: resources for extraction\r\n [\"7(a)\"]: \"7(a) Lead in high melting temperature type solders (i.e. lead-based alloys containing 85 % by weight or more lead)\", // localization: resources for extraction\r\n [\"7(b)\"]: \"7(b) Lead in solders for servers, storage and storage array systems, network infrastructure equipment for switching, signalling, transmission, and network management for telecommunications\", // localization: resources for extraction\r\n [\"7(c)-I\"]: \"7(c)-I Electrical and electronic components containing lead in a glass or ceramic other than dielectric ceramic in capacitors, e.g. piezoelectronic devices, or in a glass or ceramic matrix compound\", // localization: resources for extraction\r\n [\"7(c)-II\"]: \"7(c)-II Lead in dielectric ceramic in capacitors for a rated voltage of 125 V AC or 250 V DC or higher\", // localization: resources for extraction\r\n [\"7(c)-III\"]: \"7(c)-III Lead in dielectric ceramic in capacitors for a rated voltage of less than 125 V AC or 250 V DC\", // localization: resources for extraction\r\n [\"8(a)\"]: \"8(a) Cadmium and its compounds in one shot pellet type thermal cut-offs\", // localization: resources for extraction\r\n [\"8(b)\"]: \"8(b) Cadmium and its compounds in electrical contacts\", // localization: resources for extraction\r\n [\"9\"]: \"9 Hexavalent chromium as an anticorrosion agent of the carbon steel cooling system in absorption refrigerators up to 0,75 % by weight in the cooling solution\", // localization: resources for extraction\r\n [\"9(b)\"]: \"9(b) Lead in bearing shells and bushes for refrigerant-containing compressors for heating, ventilation, air conditioning and refrigeration (HVACR) applications\", // localization: resources for extraction\r\n [\"11(a)\"]: \"11(a) Lead used in C-press compliant pin connector systems\", // localization: resources for extraction\r\n [\"11(b)\"]: \"11(b) Lead used in other than C-press compliant pin connector systems\", // localization: resources for extraction\r\n [\"12\"]: \"12 Lead as a coating material for the thermal conduction module C-ring\", // localization: resources for extraction\r\n [\"13(a)\"]: \"13(a) Lead in white glasses used for optical applications\", // localization: resources for extraction\r\n [\"13(b)\"]: \"13(b) Cadmium and lead in filter glasses and glasses used for reflectance standards\", // localization: resources for extraction\r\n [\"14\"]: \"14 Lead in solders consisting of more than two elements for the connection between the pins and the package of microprocessors with a lead content of more than 80 % and less than 85 % by weight\", // localization: resources for extraction\r\n [\"15\"]: \"15 Lead in solders to complete a viable electrical connection between semiconductor die and carrier within integrated circuit flip chip packages\", // localization: resources for extraction\r\n [\"16\"]: \"16 Lead in linear incandescent lamps with silicate coated tubes\", // localization: resources for extraction\r\n [\"17\"]: \"17 Lead halide as radiant agent in high intensity discharge (HID) lamps used for professional reprography applications\", // localization: resources for extraction\r\n [\"18(a)\"]: \"18(a) Lead as activator in the fluorescent powder (1 % lead by weight or less) of discharge lamps when used as speciality lamps for diazoprinting reprography, lithography, insect traps, photochemical and curing processes containing phosphors such as SMS ((Sr,Ba)2MgSi2O7:Pb)\", // localization: resources for extraction\r\n [\"18(b)\"]: \"18(b) Lead as activator in the fluorescent powder (1 % lead by weight or less) of discharge lamps when used as sun tanning lamps containing phosphors such as BSP (BaSi2O5:Pb)\", // localization: resources for extraction\r\n [\"19\"]: \"19 Lead with PbBiSn-Hg and PbInSn-Hg in specific compositions as main amalgam and with PbSn-Hg as auxiliary amalgam in very compact energy saving lamps (ESL)\", // localization: resources for extraction\r\n [\"20\"]: \"20 Lead oxide in glass used for bonding front and rear substrates of flat fluorescent lamps used for Liquid Crystal Displays (LCDs)\", // localization: resources for extraction\r\n [\"21\"]: \"21 Lead and cadmium in printing inks for the application of enamels on glasses, such as borosilicate and soda lime glasses\", // localization: resources for extraction\r\n [\"23\"]: \"23 Lead in finishes of fine pitch components other than connectors with a pitch of 0,65 mm and less\", // localization: resources for extraction\r\n [\"24\"]: \"24 Lead in solders for the soldering to machined through hole discoidal and planar array ceramic multilayer capacitors\", // localization: resources for extraction\r\n [\"25\"]: \"25 Lead oxide in surface conduction electron emitter displays (SED) used in structural elements, notably in the seal frit and frit ring\", // localization: resources for extraction\r\n [\"26\"]: \"26 Lead oxide in the glass envelope of black light blue lamps\", // localization: resources for extraction\r\n [\"27\"]: \"27 Lead alloys as solder for transducers used in high-powered (designated to operate for several hours at acoustic power levels of 125 dB SPL and above) loudspeakers\", // localization: resources for extraction\r\n [\"29\"]: \"29 Lead bound in crystal glass as defined in Annex I (Categories 1, 2, 3 and 4) of Council Directive 69/493/EEC (1)\", // localization: resources for extraction\r\n [\"30\"]: \"30 Cadmium alloys as electrical/mechanical solder joints to electrical conductors located directly on the voice coil in transducers used in high-powered loudspeakers with sound pressure levels of 100 dB (A) and more\", // localization: resources for extraction\r\n [\"31\"]: \"31 Lead in soldering materials in mercury free flat fluorescent lamps (which, e.g. are used for liquid crystal displays, design or industrial lighting)\", // localization: resources for extraction\r\n [\"32\"]: \"32 Lead oxide in seal frit used for making window assemblies for Argon and Krypton laser tubes\", // localization: resources for extraction\r\n [\"33\"]: \"33 Lead in solders for the soldering of thin copper wires of 100 μm diameter and less in power transformers\", // localization: resources for extraction\r\n [\"34\"]: \"34 Lead in cermet-based trimmer potentiometer elements\", // localization: resources for extraction\r\n [\"36\"]: \"36 Mercury used as a cathode sputtering inhibitor in DC plasma displays with a content up to 30 mg per display\", // localization: resources for extraction\r\n [\"37\"]: \"37 Lead in the plating layer of high voltage diodes on the basis of a zinc borate glass body\", // localization: resources for extraction\r\n [\"38\"]: \"38 Cadmium and cadmium oxide in thick film pastes used on aluminium bonded beryllium oxide\", // localization: resources for extraction\r\n [\"39\"]: \"39 Cadmium in colour converting II-VI LEDs (< 10 μg Cd per mm2 of light-emitting area) for use in solid state illumination or display systems\", // localization: resources for extraction\r\n [\"40\"]: \"40 Cadmium in photoresistors for analogue optocouplers applied in professional audio equipment\", // localization: resources for extraction\r\n [\"41\"]: \"41 Lead in solders and termination finishes of electrical and electronic components and finishes of printed circuit boards used in ignition modules and other electrical and electronic engine control systems, which for technical reasons must be mounted directly on or in the crankcase or cylinder of hand-held combustion engines (classes SH:1, SH:2, SH:3 of Directive 97/68/EC of the European Parliament and of the Council (2))\", // localization: resources for extraction\r\n };\r\n}","import * as React from 'react';\r\n\r\ninterface DynamicSidebarProps {\r\n sideBarOptions: string[];\r\n localizedOptions: { [key: string]: string }\r\n selectedOptionRenderer: (option: string) => JSX.Element;\r\n selectedOption?: string;\r\n}\r\n\r\ninterface DynamicSidebarState {\r\n selectedOption: string;\r\n}\r\n\r\nexport class DynamicSidebar extends React.PureComponent {\r\n public constructor(props: DynamicSidebarProps) {\r\n super(props);\r\n\r\n this.state = {\r\n selectedOption: this.props.selectedOption ?? this.props.sideBarOptions[0]\r\n };\r\n }\r\n\r\n public render() {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {this.props.selectedOptionRenderer(this.state.selectedOption)}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n private sideBarNavItem_click = (option: string) => {\r\n this.setState({\r\n selectedOption: option\r\n })\r\n };\r\n}","import { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../store';\r\nimport { ToxnotServiceClient } from '../../store/ToxnotServiceClient';\r\nimport { ToxnotComponent, ToxnotComponentProperties } from '../core/BaseApplicationComponents/ToxnotComponent';\r\nimport Layout from '../Layout';\r\n\r\nexport enum UpsellTypes {\r\n Pro = \"Pro\",\r\n Api = \"API\",\r\n Scip = \"SCIP\"\r\n}\r\n\r\ninterface OwnProps {\r\n upsellType: UpsellTypes;\r\n conversionEvent: string;\r\n conversionDestinationUrl?: string; // optional, defaults to Subscription page\r\n renderEmbedded?: boolean; // optional, defaults to false\r\n}\r\n\r\ntype UpsellComponentProps = ToxnotComponentProperties & OwnProps;\r\n\r\nclass Upsell extends ToxnotComponent {\r\n public render() {\r\n const accountUpgradeMessage = this.localizeString(\"This feature is available with an upgraded 3E Exchange account\");\r\n\r\n let heading: string;\r\n\r\n switch (this.props.upsellType) {\r\n case UpsellTypes.Api:\r\n heading = accountUpgradeMessage;\r\n break;\r\n case UpsellTypes.Scip:\r\n heading = accountUpgradeMessage;\r\n break;\r\n default:\r\n heading = accountUpgradeMessage;\r\n }\r\n\r\n let cta: string;\r\n\r\n if (this.props.appServices.userContext?.subscription) {\r\n cta = this.localizeString(\"Manage Add-Ons\");\r\n }\r\n else {\r\n cta = this.localizeString(\"View Plans\");\r\n }\r\n\r\n const body = (\r\n
    \r\n
    \r\n {heading}\r\n
    \r\n

    \r\n {this.localizeString(\"Check out the Subscription page to learn more about plans and add-ons.\")}\r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n );\r\n\r\n return (\r\n (this.props.renderEmbedded ?? false) ?\r\n body :\r\n \r\n
    \r\n
    \r\n
    \r\n {body}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // ===============================================================================\r\n\r\n private upsellCtaActionButton_click = async () => {\r\n const serviceClient = new ToxnotServiceClient();\r\n\r\n await serviceClient.upsellWrite(`upsell-click-${this.props.conversionEvent}`);\r\n\r\n const destinationUrl = this.props.conversionDestinationUrl\r\n ?? \"/Account/Upgrade?plan=pro\";\r\n\r\n window.location.href = destinationUrl;\r\n }\r\n}\r\n\r\n// ===============================================================================\r\n\r\nexport default connect(\r\n // Selects which state properties are merged into the component's props\r\n (state: ApplicationState, ownProps: OwnProps) => ({ appServices: state.appServices } ) \r\n)(Upsell as any);\r\n","export interface DeclareCsiDivision {\r\n name: string;\r\n subdivisions: string[];\r\n}\r\n\r\nexport class DeclareCsiDivisionsManager {\r\n public static readonly declareCsiDivisions: DeclareCsiDivision[] =\r\n [\r\n {\r\n name: \"--\", subdivisions: []\r\n },\r\n {\r\n name: \"Division 03 Concrete\", subdivisions: [\r\n \"03 10 00 Concrete Forming and Accessories\",\r\n \"03 20 00 Concrete Reinforcing\",\r\n \"03 30 00 Cast-in-place Concrete\",\r\n \"03 40 00 Pre-cast Concrete\",\r\n ]\r\n },\r\n {\r\n name: \"Division 04 Masonry\", subdivisions: [\r\n \"04 20 00 Unit Masonry\",\r\n \"04 40 00 Stone Assemblies\",\r\n ]\r\n },\r\n {\r\n name: \"Division 05 Metals\", subdivisions: [\r\n \"05 05 13 Shop-Applied Coatings for Metal\",\r\n \"05 10 00 Structural Metal Framing\",\r\n \"05 20 00 Metal Joists\",\r\n \"05 30 00 Metal Decking\",\r\n \"05 40 00 Cold Formed Metal Framing\",\r\n \"05 50 00 Metal Fabrications\",\r\n \"05 70 00 Decorative Metal\",\r\n ]\r\n },\r\n {\r\n name: \"Division 06 Wood, Plastics, and Composites\", subdivisions: [\r\n \"06 10 00 Rough Carpentry\",\r\n \"06 20 00 Finish Carpentry\",\r\n \"06 40 00 Architectural Woodwork\",\r\n \"06 50 00 Structural Plastics\",\r\n \"06 60 00 Plastics Fabrications\",\r\n \"06 70 00 Structural Composites\",\r\n ]\r\n },\r\n { name: \"Division 07 Thermal and Moisture Protection\", subdivisions: [] },\r\n { name: \"Division 08 Openings\", subdivisions: [] },\r\n {\r\n name: \"Division 09 Finishes\", subdivisions: [\r\n \"09 20 00 Plaster and Gypsum Board\",\r\n \"09 30 00 Tiling\",\r\n \"09 50 00 Ceilings\",\r\n \"09 62 00 Specialty Flooring\",\r\n \"09 63 00 Masonry Flooring\",\r\n \"09 64 00 Wood Flooring\",\r\n \"09 65 00 Resilient Flooring\",\r\n \"09 66 00 Terrazzo Flooring\",\r\n \"09 67 00 Fluid Applied Flooring\",\r\n \"09 68 00 Carpeting\",\r\n \"09 69 00 Access Flooring\",\r\n \"09 70 00 Wall Finishes\",\r\n \"09 80 00 Acoustic Treatment\",\r\n \"09 90 00 Painting and Coating\",\r\n ]\r\n },\r\n { name: \"Division 10 Specialties\", subdivisions: [] },\r\n { name: \"Division 11 Equipment\", subdivisions: [] },\r\n { name: \"Division 12 Furnishings\", subdivisions: [] },\r\n { name: \"Division 13 Special Construction\", subdivisions: [] },\r\n { name: \"Division 14 Conveying Equipment\", subdivisions: [] },\r\n { name: \"Division 21 Fire Suppression\", subdivisions: [] },\r\n { name: \"Division 22 Plumbing\", subdivisions: [] },\r\n { name: \"Division 23 HVAC\", subdivisions: [] },\r\n { name: \"Division 25 Integrated Automation\", subdivisions: [] },\r\n { name: \"Division 26 Electrical\", subdivisions: [] },\r\n { name: \"Division 27 Communications\", subdivisions: [] },\r\n { name: \"Division 28 Electronic Safety and Security\", subdivisions: [] },\r\n { name: \"Division 31 Earthwork\", subdivisions: [] },\r\n { name: \"Division 32 Exterior Improvements\", subdivisions: [] },\r\n {\r\n name: \"Division 33 Utilities\", subdivisions: [\r\n \"33 10 00 Water Utilities\",\r\n \"33 20 00 Wells\",\r\n \"33 30 00 Sanitary Sewerage Utilities\",\r\n \"33 40 00 Storm Drainage Utilities\",\r\n ]\r\n },\r\n {\r\n name: \"Division 46 Water and Waste Water Equipment\", subdivisions: [\r\n \"46 07 00 Packaged Water and Wastewater Treatment Equipment\",\r\n \"46 20 00 Water and Wastewater Preliminary Treatment Equipment\",\r\n \"46 50 00 Water and Wastewater Secondary Treatment Equipment\",\r\n \"46 60 00 Water and Wastewater Advanced Treatment Equipment\",\r\n ]\r\n },\r\n {\r\n name: \"Division 48 Electrical Power Generation\", subdivisions: [\r\n \"48 14 00 Solar Energy Electrical Power Generation Equipment\",\r\n \"48 15 00 Wind Energy Electrical Power Generation Equipment\",\r\n ]\r\n },\r\n ];\r\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason` at `place` from `origin`.\n *\n * When an error is passed in as `reason`, the `stack` is copied.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n *\n * > 👉 **Note**: you should use markdown.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // To do: next major: expose `undefined` everywhere instead of `null`.\n constructor(reason, place, origin) {\n /** @type {[string | null, string | null]} */\n const parts = [null, null]\n /** @type {Position} */\n let position = {\n // @ts-expect-error: we always follows the structure of `position`.\n start: {line: null, column: null},\n // @ts-expect-error: \"\n end: {line: null, column: null}\n }\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = undefined\n }\n\n if (typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n // To do: next major: deep clone.\n // @ts-expect-error: looks like a position.\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n // @ts-expect-error: looks like a position.\n // To do: next major: deep clone.\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n // To do: next major: deep clone.\n position.start = place\n }\n }\n\n // Fields from `Error`.\n /**\n * Serialized positional info of error.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(place) || '1:1'\n\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = typeof reason === 'object' ? reason.message : reason\n\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack = ''\n\n if (typeof reason === 'object' && reason.stack) {\n this.stack = reason.stack\n }\n\n /**\n * Reason for message.\n *\n * > 👉 **Note**: you should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /* eslint-disable no-unused-expressions */\n /**\n * State of problem.\n *\n * * `true` — marks associated file as no longer processable (error)\n * * `false` — necessitates a (potential) change (warning)\n * * `null | undefined` — for things that might not need changing (info)\n *\n * @type {boolean | null | undefined}\n */\n this.fatal\n\n /**\n * Starting line of error.\n *\n * @type {number | null}\n */\n this.line = position.start.line\n\n /**\n * Starting column of error.\n *\n * @type {number | null}\n */\n this.column = position.start.column\n\n /**\n * Full unist position.\n *\n * @type {Position | null}\n */\n this.position = position\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | null}\n */\n this.source = parts[0]\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | null}\n */\n this.ruleId = parts[1]\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | null}\n */\n this.file\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | null}\n */\n this.actual\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array | null}\n */\n this.expected\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | null}\n */\n this.url\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | null}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * Check if `fileUrlOrPath` looks like a URL.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return (\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.href &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.origin\n )\n}\n","/// \n\nimport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {string | URL} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {Record & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n *\n * This is a copy of the types from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: \n *\n * @typedef {Options | URL | Value | VFile} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {Value | null | undefined} [value]\n * Set `value`.\n * @property {string | null | undefined} [cwd]\n * Set `cwd`.\n * @property {Array | null | undefined} [history]\n * Set `history`.\n * @property {URL | string | null | undefined} [path]\n * Set `path`.\n * @property {string | null | undefined} [basename]\n * Set `basename`.\n * @property {string | null | undefined} [stem]\n * Set `stem`.\n * @property {string | null | undefined} [extname]\n * Set `extname`.\n * @property {string | null | undefined} [dirname]\n * Set `dirname`.\n * @property {Data | null | undefined} [data]\n * Set `data`.\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * .\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array} sources\n * An array of URLs to the original source files.\n * @property {Array} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template {ReporterSettings} Settings\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport bufferLike from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n *\n * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}\n */\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Buffer` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n options = value\n }\n\n /**\n * Place to store custom information (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * List of filepaths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {string | URL} path\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the parent path (example: `'~'`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Buffer`\n * (default: `'utf8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n return (this.value || '').toString(encoding || undefined)\n }\n\n /**\n * Create a warning message associated with the file.\n *\n * Its `fatal` is set to `false` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Create an info message associated with the file.\n *\n * Its `fatal` is set to `null` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Create a fatal error associated with the file.\n *\n * Its `fatal` is set to `true` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * > 👉 **Note**: a fatal error means that a file is no longer processable.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Message.\n * @throws {VFileMessage}\n * Message.\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {void}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is a buffer.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Buffer}\n * Whether `value` is a Node.js buffer.\n */\nfunction buffer(value) {\n return bufferLike(value)\n}\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array) => void} Callback\n * @typedef {(...input: Array) => any} Middleware\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n * Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error|null|undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result instanceof Promise) {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable} value\n * @returns {void}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...options] = value\n addPlugin(plugin, ...options)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s.\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML.\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} value\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Node}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array} items\n * Items to inject into `list`.\n * @returns {void}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array} list\n * List to operate on.\n * @param {Array} items\n * Items to add to `list`.\n * @returns {Array}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record} */\n const left = maybe || (all[hook] = {})\n /** @type {Record | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array} existing\n * @param {Array} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\n\n/**\n * Regular expression that matches a unicode punctuation character.\n */\nexport const unicodePunctuationRegex =\n /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n let previous\n return contentStart\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n if (previous) {\n previous.next = token\n }\n previous = token\n return data(code)\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n}\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array} */\n const stack = []\n let continued = 0\n /** @type {TokenizeContext | undefined} */\n let childFlow\n /** @type {Token | undefined} */\n let childToken\n /** @type {number} */\n let lineStartOffset\n return start\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n }\n\n // Done.\n return checkNewContainers(code)\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n if (childFlow) {\n closeFlow()\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point | undefined} */\n let point\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n let index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n return checkNewContainers(code)\n }\n return start(code)\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n }\n\n // Check if there is a new container.\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState])\n // Try another.\n return documentContinued(code)\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow'))\n // Get ready for the next line.\n continued = 0\n self.interrupt = undefined\n return start\n }\n effects.consume(code)\n return flowContinue\n }\n\n /**\n * @param {Token} token\n * @param {boolean | undefined} [eof]\n * @returns {void}\n */\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream)\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset &&\n // …and either is not ended yet…\n (!childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean | undefined} */\n let seen\n /** @type {Point | undefined} */\n let point\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n seen = true\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n }\n }\n\n /**\n * @param {number} size\n * @returns {void}\n */\n function exitContainers(size) {\n let index = stack.length\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n stack.length = size\n }\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code)\n ? factorySpace(effects, after, 'linePrefix')(code)\n : after(code)\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n */\n\nimport {splice} from 'micromark-util-chunked'\n/**\n * Tokenize subcontent.\n *\n * @param {Array} events\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\nexport function subtokenize(events) {\n /** @type {Record} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n let event\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number} */\n let otherIndex\n /** @type {Event} */\n let otherEvent\n /** @type {Array} */\n let parameters\n /** @type {Array} */\n let subevents\n /** @type {boolean | undefined} */\n let more\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n event = events[index]\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start)\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n return !more\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {Array} events\n * @param {number} eventIndex\n * @returns {Record}\n */\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {Array} */\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {Array<[number, number]>} */\n const jumps = []\n /** @type {Record} */\n const gaps = {}\n /** @type {Array} */\n let stream\n /** @type {Token | undefined} */\n let previous\n let index = -1\n /** @type {Token | undefined} */\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start]\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition)\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n if (!current.next) {\n stream.push(null)\n }\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n tokenizer.write(stream)\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n }\n\n // Unravel the next token.\n previous = current\n current = current.next\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start)\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n }\n\n // Help GC.\n tokenizer.events = []\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n index = -1\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n\n/** @type {Construct} */\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous\n return chunkStart\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return chunkInside(code)\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n }\n\n // Data.\n effects.consume(code)\n return chunkInside\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return chunkInside\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1]\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === null) {\n return true\n }\n const list = constructs[code]\n let index = -1\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n enter = undefined\n }\n }\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n while (index--) {\n const chunk = chunks[index]\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n eventIndex++\n }\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {void}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record} */\n const columnStart = {}\n /** @type {Array} */\n const resolveAllConstructs = []\n /** @type {Array} */\n let chunks = []\n /** @type {Array} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | void}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice)\n main()\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n }\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n return Array.isArray(constructs) /* c8 ignore next 1 */\n ? handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n if (list.length === 0) {\n return bogusState\n }\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true\n info.restore()\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n\n /**\n * Restore state.\n *\n * @returns {void}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array} chunks\n * @param {Pick} token\n * @returns {Array}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array} */\n let view\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n view.shift()\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n case -4: {\n value = '\\n'\n break\n }\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n atTab = chunk === -2\n result.push(value)\n }\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('thematicBreak')\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code\n return atBreak(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit('thematicBreak')\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n effects.exit('thematicBreakSequence')\n return markdownSpace(code)\n ? factorySpace(effects, atBreak, 'whitespace')(code)\n : atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n\n/** @type {Construct} */\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n return nok(code)\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n return nok(code)\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this\n return contStart\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n contBefore,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n return contBefore(code)\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code)\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * \n * b>\n * \n * \n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (``).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | \n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return enclosedBefore\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return raw(code)\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return enclosed(code)\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return enclosedBefore(code)\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? enclosedEscape : enclosed\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return enclosed\n }\n return enclosed(code)\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (\n !balance &&\n (code === null || code === 41 || markdownLineEndingOrSpace(code))\n ) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n if (balance < limit && code === 40) {\n effects.consume(code)\n balance++\n return raw\n }\n if (code === 41) {\n effects.consume(code)\n balance--\n return raw\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? rawEscape : raw\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return raw\n }\n return raw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n let seen\n return start\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (\n size > 999 ||\n code === null ||\n code === 91 ||\n (code === 93 && !seen) ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return labelInside(code)\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n if (!seen) seen = !markdownSpace(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return labelInside\n }\n return labelInside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return begin\n }\n return nok(code)\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n return atBreak(code)\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return begin(marker)\n }\n if (code === null) {\n return nok(code)\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atBreak, 'linePrefix')\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return inside(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n return code === 92 ? escape : inside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return inside\n }\n return inside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n\n/** @type {Construct} */\nconst titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n let identifier\n return start\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter('definition')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n return markerAfter\n }\n return nok(code)\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, destinationBefore)(code)\n : destinationBefore(code)\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(\n effects,\n destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )(code)\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code)\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code)\n ? factorySpace(effects, afterWhitespace, 'whitespace')(code)\n : afterWhitespace(code)\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier)\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code)\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, beforeMarker)(code)\n : nok(code)\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(\n effects,\n titleAfter,\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code)\n ? factorySpace(effects, titleAfterOptionalWhitespace, 'whitespace')(code)\n : titleAfterOptionalWhitespace(code)\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n\n/** @type {Construct} */\nconst furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter('codeIndented')\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? atBreak(code)\n : nok(code)\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code)\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return inside(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return atBreak(code)\n }\n effects.consume(code)\n return inside\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit('codeIndented')\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this\n return furtherStart\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return furtherStart\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? furtherStart(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n let content\n /** @type {Token} */\n let text\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n }\n\n // Suffix whitespace, part of the closing.\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter('atxHeading')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('atxHeadingSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return sequenceOpen\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n return nok(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequenceFurther(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code)\n return sequenceFurther\n }\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return atBreak(code)\n }\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length\n /** @type {number | undefined} */\n let content\n /** @type {number | undefined} */\n let text\n /** @type {number | undefined} */\n let definition\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n }\n // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n // Change the paragraph to setext heading text.\n events[text][1].type = 'setextHeadingText'\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context])\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length\n /** @type {boolean | undefined} */\n let paragraph\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n marker = code\n return before(code)\n }\n return nok(code)\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('setextHeadingLineSequence')\n return inside(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n effects.exit('setextHeadingLineSequence')\n return markdownSpace(code)\n ? factorySpace(effects, after, 'lineSuffix')(code)\n : after(code)\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * .\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * .\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n\n/** @type {Construct} */\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n\n/** @type {Construct} */\nconst blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n}\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n}\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start\n // Remove the line prefix.\n events.splice(index - 2, 2)\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n let marker\n /** @type {boolean} */\n let closingTag\n /** @type {string} */\n let buffer\n /** @type {number} */\n let index\n /** @type {Code} */\n let markerB\n return start\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n closingTag = true\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n marker = 3\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n marker = 2\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n marker = 5\n index = 0\n return cdataOpenInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n marker = 4\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After ` | &<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | \n * ^^\n * > | \n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n const slash = code === 47\n const name = buffer.toLowerCase()\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6\n if (slash) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n marker = 7\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : closingTag\n ? completeClosingTagAfter(code)\n : completeAttributeNameBefore(code)\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > |
    \n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n return completeEnd(code)\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n return completeEnd(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n return completeAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n return completeAttributeNameBefore(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n markerB = code\n return completeAttributeValueQuoted\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n return completeAttributeValueUnquoted(code)\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code)\n markerB = null\n return completeAttributeValueQuotedAfter\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 47 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n if (code === 60 && marker === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n if (code === 62 && marker === 4) {\n effects.consume(code)\n return continuationClose\n }\n if (code === 63 && marker === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n if (code === 93 && marker === 5) {\n effects.consume(code)\n return continuationCdataInside\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit('htmlFlowData')\n return effects.check(\n blankLineBefore,\n continuationAfter,\n continuationStart\n )(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationStart(code)\n }\n effects.consume(code)\n return continuation\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | \n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(\n nonLazyContinuationStart,\n continuationStartNonLazy,\n continuationAfter\n )(code)\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | \n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return continuationBefore\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | \n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code)\n }\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
    \n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n }\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n marker = code\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n if (sizeOpen < 3) {\n return nok(code)\n }\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return infoBefore(code)\n }\n if (markdownSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, metaBefore, 'whitespace')(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code)\n }\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return infoBefore(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return beforeContentChunk(code)\n }\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence')\n return markdownSpace(code)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence')\n return sequenceClose(code)\n }\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : sequenceCloseAfter(code)\n }\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code)\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n","/// \n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue')\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {asciiPunctuation} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

    !^a

    \n *

    !^a

    \n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = []\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code)\n\n // Always populated by defaults.\n\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n enter = undefined\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n effects.exit('codeTextSequence')\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return sequenceClose(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return between\n }\n\n // Data.\n effects.enter('codeTextData')\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return between(code)\n }\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > 126 && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract} Parent\n *\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don’t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we’ll add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * @this {import('unified').Processor}\n * @type {import('unified').Plugin<[Options?] | void[], string, Root>}\n */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial | TestFunctionPredicate | Array | TestFunctionPredicate>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * ((node: unknown, test: PredicateTest, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * ((node: unknown, test: PredicateTest, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * ((test: PredicateTest) => AssertPredicate) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * Tree type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {Visitor, Check>, Extract, Parent>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visitParents =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {Node} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n /** @type {Record} */\n // @ts-expect-error: hush\n const value = node && typeof node === 'object' ? node : {}\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {ActionTuple}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n * Node type.\n * @template {Node} Child\n * Node type.\n * @typedef {(\n * Ancestor extends Parent\n * ? Child extends Ancestor['children'][number]\n * ? Ancestor\n * : never\n * : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends Node ? number | null : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n * Node type.\n * @template {Parent} Ancestor\n * Parent type.\n * @typedef {Visitor>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n * @typedef {(\n * BuildVisitorFromMatch<\n * import('unist-util-visit-parents/complex-types.js').Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n * Node type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {(\n * BuildVisitorFromDescendants<\n * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visit =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * Node.\n * @returns {Position}\n * Position.\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start' | 'end'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n // To do: next major: don’t return points when invalid.\n return {\n // @ts-expect-error: in practice, null is allowed.\n line: point.line || null,\n // @ts-expect-error: in practice, null is allowed.\n column: point.column || null,\n // @ts-expect-error: in practice, null is allowed.\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n * Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n * Identifier of definition.\n * @returns {Definition | null}\n * Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n * Tree to check.\n * @returns {GetDefinition}\n * Getter.\n */\nexport function definitions(tree) {\n /** @type {Record} */\n const cache = Object.create(null)\n\n if (!tree || !tree.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(tree, 'definition', (definition) => {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n })\n\n return definition\n\n /** @type {GetDefinition} */\n function definition(identifier) {\n const id = clean(identifier)\n // To do: next major: return `undefined` when not found.\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n if (index === -1) {\n state.footnoteOrder.push(id)\n state.footnoteCounts[id] = 1\n counter = state.footnoteOrder.length\n } else {\n state.footnoteCounts[id]++\n counter = index + 1\n }\n\n const reuseCounter = state.footnoteCounts[id]\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + state.clobberPrefix + 'fn-' + safeId,\n id:\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {References} node\n * Reference node (image, link).\n * @returns {ElementContent | Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return {type: 'text', value: '![' + node.alt + suffix}\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n /** @type {Properties} */\n const properties = {}\n\n if (lang) {\n properties.className = ['language-' + lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
    `.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * \n// * \n// …are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Footnote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnote(state, node) {\n  const footnoteById = state.footnoteById\n  let no = 1\n\n  while (no in footnoteById) no++\n\n  const identifier = String(no)\n\n  footnoteById[identifier] = {\n    type: 'footnoteDefinition',\n    identifier,\n    children: [{type: 'paragraph', children: node.children}],\n    position: node.position\n  }\n\n  return footnoteReference(state, {\n    type: 'footnoteReference',\n    identifier,\n    position: node.position\n  })\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Raw | Element | null}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.dangerous) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  // To do: next major: return `undefined`.\n  return null\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastRoot | HastElement}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start.line && end.line) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | null | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(node, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastText | HastElement}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract} MdastParents\n *\n * @typedef EmbeddedHastFields\n *   hast fields.\n * @property {string | null | undefined} [hName]\n *   Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n *   Generate an element with these properties instead.\n * @property {Array | null | undefined} [hChildren]\n *   Generate an element with this content instead.\n *\n * @typedef {Record & EmbeddedHastFields} MdastData\n *   mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n *   mdast node with embedded hast data.\n *\n * @typedef PointLike\n *   Point-like value.\n * @property {number | null | undefined} [line]\n *   Line.\n * @property {number | null | undefined} [column]\n *   Column.\n * @property {number | null | undefined} [offset]\n *   Offset.\n *\n * @typedef PositionLike\n *   Position-like value.\n * @property {PointLike | null | undefined} [start]\n *   Point-like value.\n * @property {PointLike | null | undefined} [end]\n *   Point-like value.\n *\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   hast node.\n *\n * @callback HFunctionProps\n *   Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {HastProperties} props\n *   Properties.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @callback HFunctionNoProps\n *   Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @typedef HFields\n *   Info on `state`.\n * @property {boolean} dangerous\n *   Whether HTML is allowed.\n * @property {string} clobberPrefix\n *   Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n *   Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n *   HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n *   Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n *   Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n *   Definition cache.\n * @property {Record} footnoteById\n *   Footnote definitions by their identifier.\n * @property {Array} footnoteOrder\n *   Identifiers of order when footnote calls first appear in tree order.\n * @property {Record} footnoteCounts\n *   Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n *   Applied handlers.\n * @property {Handler} unknownHandler\n *   Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n *   Copy a node’s positional info.\n * @property {(from: MdastNodes, to: Type) => Type | HastElement} applyData\n *   Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array | null | undefined} one\n *   Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array} all\n *   Transform the children of an mdast parent to hast.\n * @property {(nodes: Array, loose?: boolean | null | undefined) => Array} wrap\n *   Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n *   Like `state` but lower-level and usable on non-elements.\n *   Deprecated: use `patch` and `applyData`.\n * @property {Array} passThrough\n *   List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` attribute on footnotes to prevent it from\n *   *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n *   Label to use from backreferences back to their footnote call (affects\n *   screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n *   Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n *   Properties to use on the footnote label (note that `id: 'footnote-label'`\n *   is always added as footnote calls use it with `aria-describedby` to\n *   provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n *   Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n *   Extra handlers for nodes.\n * @property {Array | null | undefined} [passThrough]\n *   List of custom mdast node types to pass through (keep) in hast (note that\n *   the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n *   Handler for all unknown nodes.\n *\n * @typedef {Record} Handlers\n *   Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n *   Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n *   mdast node to transform.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {State}\n *   `state` function.\n */\nexport function createState(tree, options) {\n  const settings = options || {}\n  const dangerous = settings.allowDangerousHtml || false\n  /** @type {Record} */\n  const footnoteById = {}\n\n  // To do: next major: add `options` to state, remove:\n  // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n  // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n  // `unknownHandler`.\n\n  // To do: next major: move to `state.options.allowDangerousHtml`.\n  state.dangerous = dangerous\n  // To do: next major: move to `state.options`.\n  state.clobberPrefix =\n    settings.clobberPrefix === undefined || settings.clobberPrefix === null\n      ? 'user-content-'\n      : settings.clobberPrefix\n  // To do: next major: move to `state.options`.\n  state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  // To do: next major: move to `state.options`.\n  state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n  // To do: next major: move to `state.options`.\n  state.unknownHandler = settings.unknownHandler\n  // To do: next major: move to `state.options`.\n  state.passThrough = settings.passThrough\n\n  state.handlers = {...handlers, ...settings.handlers}\n\n  // To do: next major: replace utility with `definitionById` object, so we\n  // only walk once (as we need footnotes too).\n  state.definition = definitions(tree)\n  state.footnoteById = footnoteById\n  /** @type {Array} */\n  state.footnoteOrder = []\n  /** @type {Record} */\n  state.footnoteCounts = {}\n\n  state.patch = patch\n  state.applyData = applyData\n  state.one = oneBound\n  state.all = allBound\n  state.wrap = wrap\n  // To do: next major: remove `augment`.\n  state.augment = augment\n\n  visit(tree, 'footnoteDefinition', (definition) => {\n    const id = String(definition.identifier).toUpperCase()\n\n    // Mimick CM behavior of link definitions.\n    // See: .\n    if (!own.call(footnoteById, id)) {\n      footnoteById[id] = definition\n    }\n  })\n\n  // @ts-expect-error Hush, it’s fine!\n  return state\n\n  /**\n   * Finalise the created `right`, a hast node, from `left`, an mdast node.\n   *\n   * @param {MdastNodeWithData | PositionLike | null | undefined} left\n   * @param {HastElementContent} right\n   * @returns {HastElementContent}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function augment(left, right) {\n    // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n    if (left && 'data' in left && left.data) {\n      /** @type {MdastData} */\n      const data = left.data\n\n      if (data.hName) {\n        if (right.type !== 'element') {\n          right = {\n            type: 'element',\n            tagName: '',\n            properties: {},\n            children: []\n          }\n        }\n\n        right.tagName = data.hName\n      }\n\n      if (right.type === 'element' && data.hProperties) {\n        right.properties = {...right.properties, ...data.hProperties}\n      }\n\n      if ('children' in right && right.children && data.hChildren) {\n        right.children = data.hChildren\n      }\n    }\n\n    if (left) {\n      const ctx = 'type' in left ? left : {position: left}\n\n      if (!generated(ctx)) {\n        // @ts-expect-error: fine.\n        right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n      }\n    }\n\n    return right\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Create an element for `node`.\n   *\n   * @type {HFunctionProps}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function state(node, tagName, props, children) {\n    if (Array.isArray(props)) {\n      children = props\n      props = {}\n    }\n\n    // @ts-expect-error augmenting an element yields an element.\n    return augment(node, {\n      type: 'element',\n      tagName,\n      properties: props || {},\n      children: children || []\n    })\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Transform an mdast node into a hast node.\n   *\n   * @param {MdastNodes} node\n   *   mdast node.\n   * @param {MdastParents | null | undefined} [parent]\n   *   Parent of `node`.\n   * @returns {HastElementContent | Array | null | undefined}\n   *   Resulting hast node.\n   */\n  function oneBound(node, parent) {\n    // @ts-expect-error: that’s a state :)\n    return one(state, node, parent)\n  }\n\n  /**\n   * Transform the children of an mdast node into hast nodes.\n   *\n   * @param {MdastNodes} parent\n   *   mdast node to compile\n   * @returns {Array}\n   *   Resulting hast nodes.\n   */\n  function allBound(parent) {\n    // @ts-expect-error: that’s a state :)\n    return all(state, parent)\n  }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n *   mdast node to copy from.\n * @param {HastNodes} to\n *   hast node to copy into.\n * @returns {void}\n *   Nothing.\n */\nfunction patch(from, to) {\n  if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n *   Node type.\n * @param {MdastNodes} from\n *   mdast node to use data from.\n * @param {Type} to\n *   hast node to change.\n * @returns {Type | HastElement}\n *   Nothing.\n */\nfunction applyData(from, to) {\n  /** @type {Type | HastElement} */\n  let result = to\n\n  // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n  if (from && from.data) {\n    const hName = from.data.hName\n    const hChildren = from.data.hChildren\n    const hProperties = from.data.hProperties\n\n    if (typeof hName === 'string') {\n      // Transforming the node resulted in an element with a different name\n      // than wanted:\n      if (result.type === 'element') {\n        result.tagName = hName\n      }\n      // Transforming the node resulted in a non-element, which happens for\n      // raw, text, and root nodes (unless custom handlers are passed).\n      // The intent is likely to keep the content around (otherwise: pass\n      // `hChildren`).\n      else {\n        result = {\n          type: 'element',\n          tagName: hName,\n          properties: {},\n          children: []\n        }\n\n        // To do: next major: take the children from the `root`, or inject the\n        // raw/text/comment or so into the element?\n        // if ('children' in node) {\n        //   // @ts-expect-error: assume `children` are allowed in elements.\n        //   result.children = node.children\n        // } else {\n        //   // @ts-expect-error: assume `node` is allowed in elements.\n        //   result.children.push(node)\n        // }\n      }\n    }\n\n    if (result.type === 'element' && hProperties) {\n      result.properties = {...result.properties, ...hProperties}\n    }\n\n    if (\n      'children' in result &&\n      result.children &&\n      hChildren !== null &&\n      hChildren !== undefined\n    ) {\n      // @ts-expect-error: assume valid children are defined.\n      result.children = hChildren\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   mdast node.\n * @param {MdastParents | null | undefined} [parent]\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n  const type = node && node.type\n\n  // Fail on non-nodes.\n  if (!type) {\n    throw new Error('Expected node, got `' + node + '`')\n  }\n\n  if (own.call(state.handlers, type)) {\n    return state.handlers[type](state, node, parent)\n  }\n\n  if (state.passThrough && state.passThrough.includes(type)) {\n    // To do: next major: deep clone.\n    // @ts-expect-error: types of passed through nodes are expected to be added manually.\n    return 'children' in node ? {...node, children: all(state, node)} : node\n  }\n\n  if (state.unknownHandler) {\n    return state.unknownHandler(state, node, parent)\n  }\n\n  return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} parent\n *   mdast node to compile\n * @returns {Array}\n *   Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n  /** @type {Array} */\n  const values = []\n\n  if ('children' in parent) {\n    const nodes = parent.children\n    let index = -1\n    while (++index < nodes.length) {\n      const result = one(state, nodes[index], parent)\n\n      // To do: see if we van clean this? Can we merge texts?\n      if (result) {\n        if (index && nodes[index - 1].type === 'break') {\n          if (!Array.isArray(result) && result.type === 'text') {\n            result.value = result.value.replace(/^\\s+/, '')\n          }\n\n          if (!Array.isArray(result) && result.type === 'element') {\n            const head = result.children[0]\n\n            if (head && head.type === 'text') {\n              head.value = head.value.replace(/^\\s+/, '')\n            }\n          }\n        }\n\n        if (Array.isArray(result)) {\n          values.push(...result)\n        } else {\n          values.push(result)\n        }\n      }\n    }\n  }\n\n  return values\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   Unknown mdast node.\n * @returns {HastText | HastElement}\n *   Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n  const data = node.data || {}\n  /** @type {HastText | HastElement} */\n  const result =\n    'value' in node &&\n    !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n      ? {type: 'text', value: node.value}\n      : {\n          type: 'element',\n          tagName: 'div',\n          properties: {},\n          children: all(state, node)\n        }\n\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n *   Node type.\n * @param {Array} nodes\n *   List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n *   Whether to add line endings at start and end.\n * @returns {Array}\n *   Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n  /** @type {Array} */\n  const result = []\n  let index = -1\n\n  if (loose) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  while (++index < nodes.length) {\n    if (index) result.push({type: 'text', value: '\\n'})\n    result.push(nodes[index])\n  }\n\n  if (loose && nodes.length > 0) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  return result\n}\n","/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n *   Node to check.\n * @returns {boolean}\n *   Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n  return (\n    !node ||\n    !node.position ||\n    !node.position.start ||\n    !node.position.start.line ||\n    !node.position.start.column ||\n    !node.position.end ||\n    !node.position.end.line ||\n    !node.position.end.column\n  )\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * *   `hast-util-to-html` also has an option `allowDangerousHtml` which will\n *     output the raw HTML.\n *     This is typically discouraged as noted by the option name but is useful\n *     if you completely trust authors\n * *   `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n *     into standard hast nodes (`element`, `text`, etc).\n *     This is a heavy task as it needs a full HTML parser, but it is the only\n *     way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * 

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
    ` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\nexport function footer(state) {\n /** @type {Array} */\n const listItems = []\n let index = -1\n\n while (++index < state.footnoteOrder.length) {\n const def = state.footnoteById[state.footnoteOrder[index]]\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let referenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n\n while (++referenceIndex <= state.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: state.footnoteBackLabel\n },\n children: [{type: 'text', value: '↩'}]\n }\n\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{type: 'text', value: String(referenceIndex)}]\n })\n }\n\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n backReferences.push(backReference)\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: state.clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: state.footnoteLabelTagName,\n properties: {\n // To do: use structured clone.\n ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: state.footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record} Properties\n * @typedef {Record} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
    `. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
    `\n cellSpacing: null, // `
    `\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
    `. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
    `. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `