{"version":3,"file":"navigation_header-c-6376afc641.js","mappings":"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","sources":["webpack://canvas-lms/./node_modules/@instructure/ui-a11y-content/es/AccessibleContent/index.js","webpack://canvas-lms/./node_modules/@instructure/ui-buttons/es/CloseButton/theme.js","webpack://canvas-lms/./node_modules/@instructure/ui-buttons/es/CloseButton/index.js","webpack://canvas-lms/./node_modules/@instructure/ui-dom-utils/es/addResizeListener.js","webpack://canvas-lms/./node_modules/@instructure/ui-dom-utils/es/elementMatches.js","webpack://canvas-lms/./node_modules/@instructure/ui-dom-utils/es/findFocusable.js","webpack://canvas-lms/./node_modules/@instructure/ui-icons/es/IconXSolid.js","webpack://canvas-lms/./node_modules/@instructure/ui-pill/es/Pill/theme.js","webpack://canvas-lms/./node_modules/@instructure/ui-pill/es/Pill/index.js","webpack://canvas-lms/./node_modules/@instructure/ui-spinner/es/Spinner/theme.js","webpack://canvas-lms/./node_modules/@instructure/ui-spinner/es/Spinner/index.js","webpack://canvas-lms/./node_modules/@instructure/ui-utils/es/isIE11.js","webpack://canvas-lms/./ui/features/navigation_header/react/UnreadCounts.js","webpack://canvas-lms/./ui/features/navigation_header/react/Navigation.js","webpack://canvas-lms/./ui/features/navigation_header/react/MobileNavigation.js","webpack://canvas-lms/./ui/features/navigation_header/react/NewTabIndicator.js","webpack://canvas-lms/./ui/features/navigation_header/index.js","webpack://canvas-lms/./ui/shared/observer-picker/ObserverGetObservee.js","webpack://canvas-lms/./ui/shared/tour-pubsub/pubsub.js","webpack://canvas-lms/./ui/shared/tour-pubsub/index.js","webpack://canvas-lms/./node_modules/uuid/index.js","webpack://canvas-lms/./node_modules/uuid/lib/bytesToUuid.js","webpack://canvas-lms/./node_modules/uuid/lib/rng-browser.js","webpack://canvas-lms/./node_modules/uuid/v1.js","webpack://canvas-lms/./node_modules/uuid/v4.js","webpack://canvas-lms/./packages/link-header-parsing/parseLinkHeaderFromXHR.js"],"sourcesContent":["import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, 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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { passthroughProps, getElementType } from '@instructure/ui-react-utils';\nimport { PresentationContent } from \"../PresentationContent/index.js\";\nimport { ScreenReaderContent } from \"../ScreenReaderContent/index.js\";\n/**\n---\ncategory: components/utilities\n---\n@module AccessibleContent\n*/\n\nvar AccessibleContent = /*#__PURE__*/function (_Component) {\n _inherits(AccessibleContent, _Component);\n\n var _super = _createSuper(AccessibleContent);\n\n function AccessibleContent() {\n _classCallCheck(this, AccessibleContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(AccessibleContent, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n alt = _this$props.alt,\n children = _this$props.children,\n props = _objectWithoutProperties(_this$props, [\"alt\", \"children\"]);\n\n var ElementType = getElementType(AccessibleContent, this.props);\n return /*#__PURE__*/React.createElement(ElementType, passthroughProps(props), /*#__PURE__*/React.createElement(ScreenReaderContent, null, alt), /*#__PURE__*/React.createElement(PresentationContent, null, children));\n }\n }]);\n\n AccessibleContent.displayName = \"AccessibleContent\";\n return AccessibleContent;\n}(Component);\n\nAccessibleContent.propTypes = {\n alt: PropTypes.string,\n\n /**\n * the element type to render the screen reader content as\n */\n as: PropTypes.elementType,\n children: PropTypes.node\n};\nAccessibleContent.defaultProps = {\n alt: void 0,\n as: 'span',\n children: null\n};\nexport default AccessibleContent;\nexport { AccessibleContent };","/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, 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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nexport default function (_ref) {\n var spacing = _ref.spacing,\n stacking = _ref.stacking;\n return {\n offsetMedium: spacing.medium,\n offsetSmall: spacing.small,\n offsetXSmall: spacing.xSmall,\n zIndex: stacking.above\n };\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport { error as _error } from \"@instructure/console\";\n\nvar _dec, _dec2, _dec3, _class, _class2, _temp;\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, 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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { IconXSolid } from '@instructure/ui-icons';\nimport { ScreenReaderContent } from '@instructure/ui-a11y-content';\nimport { testable } from '@instructure/ui-testable';\nimport { themeable, ThemeablePropTypes } from '@instructure/ui-themeable';\nimport { getInteraction, passthroughProps, deprecated } from '@instructure/ui-react-utils';\nimport { BaseButton } from \"../BaseButton/index.js\";\nvar styles = {\n componentId: 'ejhDx',\n template: function template(theme) {\n return \"\\n\\n.ejhDx_bGBk{display:inline-block;z-index:\".concat(theme.zIndex || 'inherit', \"}\\n\\n.ejhDx_doBn{position:static}\\n\\n.ejhDx_bQpq,.ejhDx_bxia{position:absolute}\\n\\n.ejhDx_coHh{top:\").concat(theme.offsetXSmall || 'inherit', \"}\\n\\n.ejhDx_cDib{top:\").concat(theme.offsetSmall || 'inherit', \"}\\n\\n.ejhDx_faeR{top:\").concat(theme.offsetMedium || 'inherit', \"}\\n\\n.ejhDx_bQpq{inset-inline-end:0;inset-inline-start:auto}\\n\\n[dir=ltr] .ejhDx_bQpq{left:auto;right:0}\\n\\n[dir=rtl] .ejhDx_bQpq{left:0;right:auto}\\n\\n.ejhDx_bQpq.ejhDx_coHh{inset-inline-end:\").concat(theme.offsetXSmall || 'inherit', \";inset-inline-start:auto}\\n\\n[dir=ltr] .ejhDx_bQpq.ejhDx_coHh{left:auto;right:\").concat(theme.offsetXSmall || 'inherit', \"}\\n\\n[dir=rtl] .ejhDx_bQpq.ejhDx_coHh{left:\").concat(theme.offsetXSmall || 'inherit', \";right:auto}\\n\\n.ejhDx_bQpq.ejhDx_cDib{inset-inline-end:\").concat(theme.offsetSmall || 'inherit', \";inset-inline-start:auto}\\n\\n[dir=ltr] .ejhDx_bQpq.ejhDx_cDib{left:auto;right:\").concat(theme.offsetSmall || 'inherit', \"}\\n\\n[dir=rtl] .ejhDx_bQpq.ejhDx_cDib{left:\").concat(theme.offsetSmall || 'inherit', \";right:auto}\\n\\n.ejhDx_bQpq.ejhDx_faeR{inset-inline-end:\").concat(theme.offsetMedium || 'inherit', \";inset-inline-start:auto}\\n\\n[dir=ltr] .ejhDx_bQpq.ejhDx_faeR{left:auto;right:\").concat(theme.offsetMedium || 'inherit', \"}\\n\\n[dir=rtl] .ejhDx_bQpq.ejhDx_faeR{left:\").concat(theme.offsetMedium || 'inherit', \";right:auto}\\n\\n.ejhDx_bxia{inset-inline-end:auto;inset-inline-start:0}\\n\\n[dir=ltr] .ejhDx_bxia{left:0;right:auto}\\n\\n[dir=rtl] .ejhDx_bxia{left:auto;right:0}\\n\\n.ejhDx_bxia.ejhDx_coHh{inset-inline-end:auto;inset-inline-start:\").concat(theme.offsetXSmall || 'inherit', \"}\\n\\n[dir=ltr] .ejhDx_bxia.ejhDx_coHh{left:\").concat(theme.offsetXSmall || 'inherit', \";right:auto}\\n\\n[dir=rtl] .ejhDx_bxia.ejhDx_coHh{left:auto;right:\").concat(theme.offsetXSmall || 'inherit', \"}\\n\\n.ejhDx_bxia.ejhDx_cDib{inset-inline-end:auto;inset-inline-start:\").concat(theme.offsetSmall || 'inherit', \"}\\n\\n[dir=ltr] .ejhDx_bxia.ejhDx_cDib{left:\").concat(theme.offsetSmall || 'inherit', \";right:auto}\\n\\n[dir=rtl] .ejhDx_bxia.ejhDx_cDib{left:auto;right:\").concat(theme.offsetSmall || 'inherit', \"}\\n\\n.ejhDx_bxia.ejhDx_faeR{inset-inline-end:auto;inset-inline-start:\").concat(theme.offsetMedium || 'inherit', \"}\\n\\n[dir=ltr] .ejhDx_bxia.ejhDx_faeR{left:\").concat(theme.offsetMedium || 'inherit', \";right:auto}\\n\\n[dir=rtl] .ejhDx_bxia.ejhDx_faeR{left:auto;right:\").concat(theme.offsetMedium || 'inherit', \"}\");\n },\n 'root': 'ejhDx_bGBk',\n 'placement--static': 'ejhDx_doBn',\n 'placement--end': 'ejhDx_bQpq',\n 'placement--start': 'ejhDx_bxia',\n 'offset--x-small': 'ejhDx_coHh',\n 'offset--small': 'ejhDx_cDib',\n 'offset--medium': 'ejhDx_faeR'\n};\nimport theme from \"./theme.js\";\n/**\n---\ncategory: components\n---\n**/\n\nvar CloseButton = (_dec = deprecated('8.0.0', {\n children: 'screenReaderLabel',\n buttonRef: 'elementRef',\n variant: 'color'\n}), _dec2 = testable(), _dec3 = themeable(theme, styles), _dec(_class = _dec2(_class = _dec3(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {\n _inherits(CloseButton, _Component);\n\n var _super = _createSuper(CloseButton);\n\n function CloseButton() {\n _classCallCheck(this, CloseButton);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CloseButton, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n /*#__PURE__*/\n\n /*#__PURE__*/\n _error(this.props.screenReaderLabel || this.props.children, \"[CloseButton] The `screenReaderLabel` prop is required but was not provided.\");\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n /*#__PURE__*/\n\n /*#__PURE__*/\n _error(this.props.screenReaderLabel || this.props.children, \"[CloseButton] The `screenReaderLabel` prop is required but was not provided.\");\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classnames;\n\n var _this$props = this.props,\n children = _this$props.children,\n screenReaderLabel = _this$props.screenReaderLabel,\n elementRef = _this$props.elementRef,\n buttonRef = _this$props.buttonRef,\n size = _this$props.size,\n onClick = _this$props.onClick,\n margin = _this$props.margin,\n placement = _this$props.placement,\n offset = _this$props.offset,\n type = _this$props.type,\n as = _this$props.as,\n href = _this$props.href,\n cursor = _this$props.cursor,\n tabIndex = _this$props.tabIndex,\n props = _objectWithoutProperties(_this$props, [\"children\", \"screenReaderLabel\", \"elementRef\", \"buttonRef\", \"size\", \"onClick\", \"margin\", \"placement\", \"offset\", \"type\", \"as\", \"href\", \"cursor\", \"tabIndex\"]);\n\n return /*#__PURE__*/React.createElement(\"span\", Object.assign({}, passthroughProps(props), {\n className: classnames((_classnames = {}, _defineProperty(_classnames, styles.root, true), _defineProperty(_classnames, styles[\"placement--\".concat(placement)], placement), _defineProperty(_classnames, styles[\"offset--\".concat(offset)], offset), _classnames))\n }), /*#__PURE__*/React.createElement(BaseButton, {\n renderIcon: IconXSolid,\n elementRef: elementRef || buttonRef,\n interaction: this.interaction,\n type: type,\n color: this.color,\n size: size,\n onClick: onClick,\n margin: margin,\n withBorder: false,\n withBackground: false,\n as: as,\n href: href,\n cursor: cursor,\n tabIndex: tabIndex\n }, /*#__PURE__*/React.createElement(ScreenReaderContent, null, screenReaderLabel || children)));\n }\n }, {\n key: \"interaction\",\n get: function get() {\n return getInteraction({\n props: this.props\n });\n }\n }, {\n key: \"color\",\n get: function get() {\n var _this$props2 = this.props,\n color = _this$props2.color,\n variant = _this$props2.variant;\n if (variant === 'icon-inverse' || color === 'primary-inverse') return 'primary-inverse';\n return 'secondary';\n }\n }]);\n\n CloseButton.displayName = \"CloseButton\";\n return CloseButton;\n}(Component), _class2.propTypes = {\n /**\n * An accessible label for the `CloseButton` (required)\n */\n screenReaderLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n // CloseButton could previously accept node children, loosening this type for backwards compatibility\n\n /**\n * Specifies the color for the `CloseButton`.\n */\n color: PropTypes.oneOf(['primary', 'primary-inverse']),\n\n /**\n * Specifies if interaction with the `CloseButton` is enabled, disabled, or readonly.\n */\n interaction: PropTypes.oneOf(['enabled', 'disabled', 'readonly']),\n\n /**\n * Provides a reference to the `CloseButton`'s underlying html element.\n */\n elementRef: PropTypes.func,\n\n /**\n * The size of the `CloseButton`\n */\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n\n /**\n * Callback fired when the `CloseButton` is clicked.\n */\n onClick: PropTypes.func,\n\n /**\n * Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`,\n * `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via\n * familiar CSS-like shorthand. For example: `margin=\"small auto large\"`.\n */\n margin: ThemeablePropTypes.spacing,\n\n /**\n * Specifies the placement of the `CloseButton`\n */\n placement: PropTypes.oneOf(['start', 'end', 'static']),\n\n /**\n * Specifies the offset distance for the `CloseButton` with respect to both the top and start/end of the container.\n * Note that for this property to have an effect, the `placement` prop must be set to either `start` or `end`. The\n * offset will also be created with respect to a positioned parent. If it does not appear to be working, try setting\n * the `position` of the parent container to `relative`.\n */\n offset: PropTypes.oneOf(['none', 'x-small', 'small', 'medium']),\n\n /**\n * Specifies the type of the `Button`'s underlying html element.\n */\n type: PropTypes.oneOf(['button', 'submit', 'reset']),\n\n /**\n * The element to render as the component root, `CloseButton` by default.\n */\n as: PropTypes.elementType,\n\n /**\n * Specifies an href attribute for the `CloseButton`'s underlying html element.\n */\n href: PropTypes.string,\n\n /**\n * Specify a mouse cursor to use when hovering over the `CloseButton`.\n */\n cursor: PropTypes.string,\n\n /**\n * Specifies the tabindex of the `CloseButton`.\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * __Deprecated - use `screenReaderLabel` instead__\n */\n children: PropTypes.node,\n\n /**\n * __Deprecated - use `elementRef` instead__\n */\n buttonRef: PropTypes.func,\n\n /**\n * __Deprecated - use `color` instead__\n */\n variant: PropTypes.oneOf(['icon', 'icon-inverse'])\n}, _class2.defaultProps = {\n screenReaderLabel: void 0,\n children: void 0,\n onClick: function onClick(event) {},\n elementRef: void 0,\n buttonRef: void 0,\n variant: void 0,\n color: void 0,\n // Leave interaction default undefined so that `disabled` and `readOnly` can also be supplied\n interaction: void 0,\n disabled: void 0,\n readOnly: void 0,\n type: 'button',\n placement: 'static',\n offset: 'x-small',\n size: 'small',\n margin: '0',\n as: 'button',\n href: void 0,\n cursor: 'pointer',\n tabIndex: void 0\n}, _temp)) || _class) || _class) || _class);\nexport default CloseButton;\nexport { CloseButton };","/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, 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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { findDOMNode } from \"./findDOMNode.js\";\nimport { getBoundingClientRect } from \"./getBoundingClientRect.js\";\nimport { requestAnimationFrame } from \"./requestAnimationFrame.js\"; // TODO: replace with https://wicg.github.io/ResizeObserver/ when it's supported\n\n/**\n * ---\n * category: utilities/DOM\n * ---\n * @module\n * Adds a listener to an element and calls a specified handler\n * function whenever the size changes\n *\n * @param {ReactComponent|DomNode} el - component or DOM node\n * @param {function} handler - function to run when resize occurs\n * @returns {function} remove - cancel the listener and no longer execute the handler function\n */\n\nfunction addResizeListener(el, handler) {\n var dimensions = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : ['width'];\n var node = findDOMNode(el);\n var origSize = getBoundingClientRect(node);\n var cancelled = false;\n var raf;\n\n var checkDimensions = function checkDimensions() {\n if (cancelled) {\n return;\n }\n\n var boundingRect = getBoundingClientRect(node);\n var size = {\n width: boundingRect.width,\n height: boundingRect.height\n };\n\n if (dimensions.some(function (dim) {\n return size[dim] != origSize[dim];\n }) && typeof handler === 'function') {\n handler(size);\n }\n\n origSize = size;\n raf = requestAnimationFrame(checkDimensions);\n };\n\n checkDimensions();\n return {\n remove: function remove() {\n cancelled = true;\n raf.cancel();\n }\n };\n}\n\nexport default addResizeListener;\nexport { addResizeListener };","/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, 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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { findDOMNode } from \"./findDOMNode.js\";\n/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * Polyfill for Element.matches (https://developer.mozilla.org/en-US/docs/Web/API/Element/matches)\n *\n * @param {ReactComponent|DomNode} el - component or DOM node\n * @param {String} selectorString - a string representing the selector to test\n * @returns {boolean} if the element would be selected by the specified selector string\n */\n\nfunction elementMatches(el, selectorString) {\n var node = el && findDOMNode(el);\n if (!node) return false;\n return node.matches ? node.matches(selectorString) : node.msMatchesSelector(selectorString);\n}\n\nexport default elementMatches;\nexport { elementMatches };","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, 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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n/**\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n **/\nimport { getComputedStyle, findDOMNode, elementMatches } from \".//index.js\";\n\nfunction findFocusable(el, filter, shouldSearchRootNode) {\n var element = findDOMNode(el);\n\n if (!element || typeof element.querySelectorAll !== 'function') {\n return [];\n }\n\n var focusableSelector = 'a[href],frame,iframe,object,input:not([type=hidden]),select,textarea,button,*[tabindex]';\n var matches = Array.from(element.querySelectorAll(focusableSelector));\n\n if (shouldSearchRootNode && elementMatches(element, focusableSelector)) {\n matches = [].concat(_toConsumableArray(matches), [element]);\n }\n\n return matches.filter(function (el) {\n if (typeof filter === 'function') {\n return filter(el) && focusable(el);\n } else {\n return focusable(el);\n }\n });\n}\n\nfunction hidden(element) {\n var cs = getComputedStyle(element);\n return cs.display !== 'inline' && element.offsetWidth <= 0 && element.offsetHeight <= 0 || cs.display === 'none';\n}\n\nfunction positioned(element) {\n var POS = ['fixed', 'absolute'];\n if (POS.includes(element.style.position.toLowerCase())) return true;\n if (POS.includes(getComputedStyle(element).getPropertyValue('position').toLowerCase())) return true;\n return false;\n}\n\nfunction visible(element) {\n /* eslint no-param-reassign:0 */\n while (element) {\n if (element === document.body) break;\n if (hidden(element)) return false;\n if (positioned(element)) break;\n element = element.parentNode;\n }\n\n return true;\n}\n\nfunction focusable(element) {\n return !element.disabled && visible(element);\n}\n\nexport default findFocusable;\nexport {\n/**\n * ---\n * category: utilities/a11y\n * ---\n *\n * Given an element, finds and returns all visible, focusable children.\n * Focusable elements include input, select, textarea, button, and object.\n * Anchor tags are also focusable if they include an href or\n * tabindex attribute (including tabindeces less than zero).\n *\n * @param {ReactComponent|DomNode} el - component or DOM node\n * @param {Function} filter - a function to filter the matching nodes\n * @param {Boolean} shouldSearchRootNode - should the root node be included in the search\n * @returns {Array} array of all tabbable children\n */\nfindFocusable };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React, { Component } from 'react';\nimport { SVGIcon } from '@instructure/ui-svg-images';\n\nvar _ref = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M797.319865 985.881673L344.771525 1438.43001 533.333333 1626.99182 985.881673 1174.44348 1438.43001 1626.99182 1626.99182 1438.43001 1174.44348 985.881673 1626.99182 533.333333 1438.43001 344.771525 985.881673 797.319865 533.333333 344.771525 344.771525 533.333333z\",\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: \"1\"\n});\n\nvar IconXSolid = /*#__PURE__*/function (_Component) {\n _inherits(IconXSolid, _Component);\n\n var _super = _createSuper(IconXSolid);\n\n function IconXSolid() {\n _classCallCheck(this, IconXSolid);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(IconXSolid, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(SVGIcon, Object.assign({}, this.props, {\n name: \"IconX\",\n viewBox: \"0 0 1920 1920\"\n }), _ref);\n }\n }]);\n\n IconXSolid.displayName = \"IconXSolid\";\n return IconXSolid;\n}(Component);\n\nIconXSolid.glyphName = 'x';\nIconXSolid.variant = 'Solid';\nIconXSolid.propTypes = _objectSpread({}, SVGIcon.propTypes);\nexport default IconXSolid;\nexport { IconXSolid };","/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, 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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n// TODO: For v8.0.0 we will map primaryColor to textDark and do away with default (color)\n// NOTE: This will make it so no pill is going to inherit the brand color per product design\nexport default function generator(_ref) {\n var borders = _ref.borders,\n colors = _ref.colors,\n spacing = _ref.spacing,\n typography = _ref.typography;\n return {\n fontFamily: typography.fontFamily,\n padding: \"0 \".concat(spacing.xSmall),\n height: '1.3125rem',\n background: colors.backgroundLightest,\n textTransformStyle: 'uppercase',\n textFontSize: typography.fontSizeXSmall,\n textFontWeight: typography.fontWeightBold,\n maxWidth: '15rem',\n color: colors.textDark,\n primaryColor: colors.textDark,\n infoColor: colors.textInfo,\n dangerColor: colors.textDanger,\n successColor: colors.textSuccess,\n warningColor: colors.textWarning,\n alertColor: colors.textAlert,\n messageColor: colors.textAlert,\n borderWidth: borders.widthSmall,\n borderStyle: borders.style,\n borderRadius: '999rem'\n };\n}\n\ngenerator['instructure'] = function () {\n return {\n height: '1.5rem'\n };\n};","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\nvar _dec, _dec2, _dec3, _class, _class2, _temp;\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, 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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n// TODO: once the text prop is removed in v8.0.0 update children prop to isRequired\n// NOTE: when the variant prop is removed in v8.0.0 change 'default' color to 'primary'\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { View } from '@instructure/ui-view';\nimport { Tooltip } from '@instructure/ui-tooltip';\nimport { TruncateText } from '@instructure/ui-truncate-text';\nimport { themeable, ThemeablePropTypes } from '@instructure/ui-themeable';\nimport { passthroughProps, deprecated } from '@instructure/ui-react-utils';\nimport { testable } from '@instructure/ui-testable';\nvar styles = {\n componentId: 'dLyYq',\n template: function template(theme) {\n return \"\\n\\n.dLyYq_bGBk{background:\".concat(theme.background || 'inherit', \";border-radius:\").concat(theme.borderRadius || 'inherit', \";border-style:\").concat(theme.borderStyle || 'inherit', \";border-width:\").concat(theme.borderWidth || 'inherit', \";display:block;font-family:\").concat(theme.fontFamily || 'inherit', \";line-height:calc(\").concat(theme.height || 'inherit', \" - \").concat(theme.borderWidth || 'inherit', \"*2);padding:\").concat(theme.padding || 'inherit', \"}\\n\\n.dLyYq_bGBk,.dLyYq_eWKC{box-sizing:border-box}\\n\\n.dLyYq_eWKC{font-size:\").concat(theme.textFontSize || 'inherit', \";font-weight:\").concat(theme.textFontWeight || 'inherit', \";letter-spacing:0.0625rem;text-transform:\").concat(theme.textTransformStyle || 'inherit', \"}\\n\\n.dLyYq_ddES{border-color:\").concat(theme.color || 'inherit', \";color:\").concat(theme.color || 'inherit', \"}\\n\\n.dLyYq_bXiG{border-color:\").concat(theme.primaryColor || 'inherit', \";color:\").concat(theme.primaryColor || 'inherit', \"}\\n\\n.dLyYq_pypk,.dLyYq_ecos{border-color:\").concat(theme.infoColor || 'inherit', \";color:\").concat(theme.infoColor || 'inherit', \"}\\n\\n.dLyYq_cOXX{border-color:\").concat(theme.successColor || 'inherit', \";color:\").concat(theme.successColor || 'inherit', \"}\\n\\n.dLyYq_zGXc{border-color:\").concat(theme.dangerColor || 'inherit', \";color:\").concat(theme.dangerColor || 'inherit', \"}\\n\\n.dLyYq_eRqw{border-color:\").concat(theme.warningColor || 'inherit', \";color:\").concat(theme.warningColor || 'inherit', \"}\\n\\n.dLyYq_elxg{border-color:\").concat(theme.messageColor || 'inherit', \";color:\").concat(theme.messageColor || 'inherit', \"}\\n\\n.dLyYq_bgqc{border-color:\").concat(theme.alertColor || 'inherit', \";color:\").concat(theme.alertColor || 'inherit', \"}\");\n },\n 'root': 'dLyYq_bGBk',\n 'text': 'dLyYq_eWKC',\n 'default': 'dLyYq_ddES',\n 'primary': 'dLyYq_bXiG',\n 'info': 'dLyYq_pypk',\n 'oldPrimary': 'dLyYq_ecos',\n 'success': 'dLyYq_cOXX',\n 'danger': 'dLyYq_zGXc',\n 'warning': 'dLyYq_eRqw',\n 'message': 'dLyYq_elxg',\n 'alert': 'dLyYq_bgqc'\n};\nimport theme from \"./theme.js\";\n/**\n---\ncategory: components\n---\n**/\n\nvar Pill = (_dec = testable(), _dec2 = deprecated('8.0.0', {\n text: 'children',\n variant: 'color'\n}), _dec3 = themeable(theme, styles), _dec(_class = _dec2(_class = _dec3(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {\n _inherits(Pill, _Component);\n\n var _super = _createSuper(Pill);\n\n function Pill(props) {\n var _this;\n\n _classCallCheck(this, Pill);\n\n _this = _super.call(this, props);\n _this.state = {\n truncated: false\n };\n return _this;\n }\n\n _createClass(Pill, [{\n key: \"handleTruncation\",\n value: function handleTruncation(truncated) {\n this.setState({\n truncated: truncated\n });\n }\n }, {\n key: \"renderPill\",\n value: function renderPill(focused, getTriggerProps) {\n var _classnames,\n _this2 = this;\n\n var _this$props = this.props,\n margin = _this$props.margin,\n children = _this$props.children,\n variant = _this$props.variant,\n color = _this$props.color,\n as = _this$props.as,\n elementRef = _this$props.elementRef,\n text = _this$props.text,\n props = _objectWithoutProperties(_this$props, [\"margin\", \"children\", \"variant\", \"color\", \"as\", \"elementRef\", \"text\"]);\n\n var filteredProps = passthroughProps(props);\n var containerProps = typeof getTriggerProps === 'function' ? getTriggerProps(filteredProps) : filteredProps;\n var actualColor = variant;\n\n if (!actualColor) {\n // usng new color props\n actualColor = color;\n } else {\n // using old variant\n if (variant === 'primary') {\n actualColor = 'oldPrimary';\n }\n }\n\n var classes = classnames((_classnames = {}, _defineProperty(_classnames, styles.root, true), _defineProperty(_classnames, styles.truncated, this.state.truncated), _defineProperty(_classnames, styles[actualColor], true), _classnames));\n return /*#__PURE__*/React.createElement(View, Object.assign({}, containerProps, {\n as: as,\n elementRef: elementRef,\n margin: margin,\n padding: \"0\",\n maxWidth: this.theme.maxWidth,\n background: \"transparent\",\n borderRadius: \"pill\",\n borderWidth: \"0\",\n display: \"inline-block\",\n position: \"relative\",\n withFocusOutline: focused,\n focusColor: \"info\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: classes\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.text\n }, /*#__PURE__*/React.createElement(TruncateText, {\n onUpdate: function onUpdate(truncated) {\n _this2.handleTruncation(truncated);\n }\n }, children || text))));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n if (this.state.truncated) {\n return /*#__PURE__*/React.createElement(Tooltip, {\n renderTip: this.props.children || this.props.text\n }, function (_ref) {\n var focused = _ref.focused,\n getTriggerProps = _ref.getTriggerProps;\n return _this3.renderPill(focused, getTriggerProps);\n });\n } else {\n return this.renderPill();\n }\n }\n }]);\n\n Pill.displayName = \"Pill\";\n return Pill;\n}(Component), _class2.propTypes = {\n as: PropTypes.elementType,\n // eslint-disable-line react/require-default-props\n children: PropTypes.node,\n color: PropTypes.oneOf(['primary', 'success', 'danger', 'info', 'warning', 'alert']),\n elementRef: PropTypes.func,\n\n /**\n * Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`,\n * `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via\n * familiar CSS-like shorthand. For example: `margin=\"small auto large\"`.\n */\n margin: ThemeablePropTypes.spacing,\n\n /* eslint-disable react/require-default-props */\n\n /**\n * __Deprecated - use 'children'__\n */\n text: PropTypes.node,\n\n /**\n * __Deprecated - use 'color'__\n */\n variant: PropTypes.oneOf(['default', 'success', 'danger', 'primary', 'warning', 'message'])\n /* eslint-enable react/require-default-props */\n\n}, _class2.defaultProps = {\n children: void 0,\n margin: void 0,\n elementRef: void 0,\n color: 'primary'\n}, _temp)) || _class) || _class) || _class);\nexport default Pill;\nexport { Pill };","/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, 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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nexport default function generator(_ref) {\n var colors = _ref.colors;\n return {\n trackColor: colors.backgroundLight,\n color: colors.backgroundBrand,\n xSmallSize: '1.5em',\n xSmallBorderWidth: '0.25em',\n smallSize: '3em',\n smallBorderWidth: '0.375em',\n mediumSize: '5em',\n mediumBorderWidth: '0.5em',\n largeSize: '7em',\n largeBorderWidth: '0.75em',\n inverseColor: colors.backgroundBrand\n };\n}\n\ngenerator['canvas-a11y'] = generator['canvas-high-contrast'] = function (_ref2) {\n var colors = _ref2.colors;\n return {\n inverseColor: colors.backgroundLightest\n };\n};\n\ngenerator.canvas = function (variables) {\n return {\n color: variables['ic-brand-primary']\n };\n};","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport { error as _error } from \"@instructure/console\";\n\nvar _dec, _dec2, _dec3, _class, _class2, _temp;\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, 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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { View } from '@instructure/ui-view';\nimport { callRenderProp, deprecated, omitProps } from '@instructure/ui-react-utils';\nimport { themeable, ThemeablePropTypes } from '@instructure/ui-themeable';\nimport { isIE11 } from '@instructure/ui-utils';\nimport { uid } from '@instructure/uid';\nimport { testable } from '@instructure/ui-testable';\nvar styles = {\n componentId: 'eHQDY',\n template: function template(theme) {\n return \"\\n\\n@keyframes eHQDY_dpDr{to{transform:rotate(360deg)}}\\n\\n@keyframes eHQDY_buIf{0%{stroke-dashoffset:190%}50%{stroke-dashoffset:50%;transform:rotate(90deg)}to{stroke-dashoffset:190%;transform:rotate(360deg)}}\\n\\n.eHQDY_bGBk{box-sizing:border-box;display:inline-block;overflow:hidden;position:relative;vertical-align:middle}\\n\\n.eHQDY_dTxv{stroke:\".concat(theme.trackColor || 'inherit', \"}\\n\\n.eHQDY_dfBC,.eHQDY_dfBC .eHQDY_cJVF{height:\").concat(theme.xSmallSize || 'inherit', \";width:\").concat(theme.xSmallSize || 'inherit', \"}\\n\\n.eHQDY_dfBC .eHQDY_eWAY,.eHQDY_dfBC .eHQDY_dTxv{stroke-width:\").concat(theme.xSmallBorderWidth || 'inherit', \"}\\n\\n.eHQDY_dfBC .eHQDY_eWAY{stroke-dasharray:3em;transform-origin:calc(\").concat(theme.xSmallSize || 'inherit', \"/2) calc(\").concat(theme.xSmallSize || 'inherit', \"/2)}\\n\\n.eHQDY_doqw,.eHQDY_doqw .eHQDY_cJVF{height:\").concat(theme.smallSize || 'inherit', \";width:\").concat(theme.smallSize || 'inherit', \"}\\n\\n.eHQDY_doqw .eHQDY_eWAY,.eHQDY_doqw .eHQDY_dTxv{stroke-width:\").concat(theme.smallBorderWidth || 'inherit', \"}\\n\\n.eHQDY_doqw .eHQDY_eWAY{stroke-dasharray:6em;transform-origin:calc(\").concat(theme.smallSize || 'inherit', \"/2) calc(\").concat(theme.smallSize || 'inherit', \"/2)}\\n\\n.eHQDY_ycrn,.eHQDY_ycrn .eHQDY_cJVF{height:\").concat(theme.mediumSize || 'inherit', \";width:\").concat(theme.mediumSize || 'inherit', \"}\\n\\n.eHQDY_ycrn .eHQDY_cJVF,.eHQDY_ycrn .eHQDY_eWAY,.eHQDY_ycrn .eHQDY_dTxv{stroke-width:\").concat(theme.mediumBorderWidth || 'inherit', \"}\\n\\n.eHQDY_ycrn .eHQDY_eWAY{stroke-dasharray:10.5em;transform-origin:calc(\").concat(theme.mediumSize || 'inherit', \"/2) calc(\").concat(theme.mediumSize || 'inherit', \"/2)}\\n\\n.eHQDY_cMDj,.eHQDY_cMDj .eHQDY_cJVF{height:\").concat(theme.largeSize || 'inherit', \";width:\").concat(theme.largeSize || 'inherit', \"}\\n\\n.eHQDY_cMDj .eHQDY_cJVF,.eHQDY_cMDj .eHQDY_eWAY,.eHQDY_cMDj .eHQDY_dTxv{stroke-width:\").concat(theme.largeBorderWidth || 'inherit', \"}\\n\\n.eHQDY_cMDj .eHQDY_eWAY{stroke-dasharray:14em;transform-origin:calc(\").concat(theme.largeSize || 'inherit', \"/2) calc(\").concat(theme.largeSize || 'inherit', \"/2)}\\n\\n.eHQDY_cJVF{animation-duration:2.25s;animation-iteration-count:infinite;animation-name:eHQDY_dpDr;animation-timing-function:linear;display:block;left:0;position:absolute;top:0}\\n\\n.eHQDY_eWAY,.eHQDY_dTxv{fill:none}\\n\\n.eHQDY_eWAY{stroke-linecap:round}\\n\\n.eHQDY_bGBk:not(.eHQDY_eoSs) .eHQDY_eWAY{animation-duration:1.75s;animation-iteration-count:infinite;animation-name:eHQDY_buIf;animation-timing-function:ease}\\n\\n.eHQDY_bGBk.eHQDY_eoSs .eHQDY_eWAY{stroke-dashoffset:100%}\\n\\n.eHQDY_ddES .eHQDY_eWAY{stroke:\").concat(theme.color || 'inherit', \"}\\n\\n.eHQDY_enfx .eHQDY_eWAY{stroke:\").concat(theme.inverseColor || 'inherit', \"}\");\n },\n 'root': 'eHQDY_bGBk',\n 'circleTrack': 'eHQDY_dTxv',\n 'x-small': 'eHQDY_dfBC',\n 'circle': 'eHQDY_cJVF',\n 'circleSpin': 'eHQDY_eWAY',\n 'small': 'eHQDY_doqw',\n 'medium': 'eHQDY_ycrn',\n 'large': 'eHQDY_cMDj',\n 'rotate': 'eHQDY_dpDr',\n 'ie11': 'eHQDY_eoSs',\n 'morph': 'eHQDY_buIf',\n 'default': 'eHQDY_ddES',\n 'inverse': 'eHQDY_enfx'\n};\nimport theme from \"./theme.js\";\n/**\n---\ncategory: components\n---\n**/\n\nvar Spinner = (_dec = deprecated('8.0.0', {\n title: 'renderTitle'\n}), _dec2 = testable(), _dec3 = themeable(theme, styles), _dec(_class = _dec2(_class = _dec3(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {\n _inherits(Spinner, _Component);\n\n var _super = _createSuper(Spinner);\n\n function Spinner(props) {\n var _this;\n\n _classCallCheck(this, Spinner);\n\n _this = _super.call(this);\n _this.titleId = uid('Spinner');\n return _this;\n }\n\n _createClass(Spinner, [{\n key: \"radius\",\n value: function radius() {\n switch (this.props.size) {\n case 'x-small':\n return '0.5em';\n\n case 'small':\n return '1em';\n\n case 'large':\n return '2.25em';\n\n default:\n return '1.75em';\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classes;\n\n var classes = (_classes = {}, _defineProperty(_classes, styles.root, true), _defineProperty(_classes, styles[this.props.size], true), _defineProperty(_classes, styles[this.props.variant], true), _defineProperty(_classes, styles.ie11, isIE11), _classes);\n var passthroughProps = View.omitViewProps(omitProps(this.props, Spinner.propTypes), Spinner);\n var hasTitle = this.props.renderTitle || this.props.title;\n\n /*#__PURE__*/\n\n /*#__PURE__*/\n _error(hasTitle, '[Spinner] The renderTitle prop is necessary for screen reader support.');\n\n return /*#__PURE__*/React.createElement(View, Object.assign({}, passthroughProps, {\n as: this.props.as,\n elementRef: this.props.elementRef,\n className: classNames(classes),\n margin: this.props.margin\n }), /*#__PURE__*/React.createElement(\"svg\", {\n className: styles.circle,\n role: \"img\",\n \"aria-labelledby\": this.titleId,\n focusable: \"false\"\n }, /*#__PURE__*/React.createElement(\"title\", {\n id: this.titleId\n }, callRenderProp(this.props.renderTitle)), /*#__PURE__*/React.createElement(\"g\", {\n role: \"presentation\"\n }, this.props.variant !== 'inverse' && /*#__PURE__*/React.createElement(\"circle\", {\n className: styles.circleTrack,\n cx: \"50%\",\n cy: \"50%\",\n r: this.radius()\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: styles.circleSpin,\n cx: \"50%\",\n cy: \"50%\",\n r: this.radius()\n }))));\n }\n }]);\n\n Spinner.displayName = \"Spinner\";\n return Spinner;\n}(Component), _class2.propTypes = {\n /**\n * Give the spinner a title to be read by screenreaders\n */\n renderTitle: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n\n /**\n * Different-sized spinners\n */\n size: PropTypes.oneOf(['x-small', 'small', 'medium', 'large']),\n\n /**\n * Different color schemes for use with light or dark backgrounds\n */\n variant: PropTypes.oneOf(['default', 'inverse']),\n\n /**\n * Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`,\n * `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via\n * familiar CSS-like shorthand. For example: `margin=\"small auto large\"`.\n */\n margin: ThemeablePropTypes.spacing,\n elementRef: PropTypes.func,\n as: PropTypes.elementType,\n\n /**\n * __Deprecated - use `renderTitle` instead__\n */\n\n /* eslint-disable react/require-default-props */\n title: PropTypes.string\n /* eslint-enable react/require-default-props */\n\n}, _class2.defaultProps = {\n renderTitle: void 0,\n as: 'div',\n size: 'medium',\n variant: 'default',\n margin: void 0,\n elementRef: void 0\n}, _temp)) || _class) || _class) || _class);\nexport default Spinner;\nexport { Spinner };","/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, 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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar userAgent = typeof navigator !== 'undefined' && navigator.userAgent || '';\n/**\n * ---\n * category: utilities\n * ---\n * A minimal check for IE11, since that's mostly all the browser detecting we do.\n * Use when you don't need all of [bowser](https://www.npmjs.com/package/bowser).\n */\n\nexport var isIE11 = /msie|trident/i.test(userAgent);","/*\n * Copyright (C) 2015 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\n//\n// This component manages \"unread count\" badges on things external to the\n// Navigation component. All it needs is:\n// targetEl: a DOM node to render the count into\n// dataUrl: the API endpoint to call to retrieve the unread count.\n// Its return object is expected to contain an `unread_count`\n// field with the numeric unread count\n//\n// ... and optionally:\n// srText: a function to return the text to be spoken by a screen\n// reader. It passes the unread count as argument.\n// onUpdate: a function to call when the count is updated.\n// It passes the new unread count as argument.\n// onError: a function to call if the API call fails.\n// It passes the fetch error as argument. Defaults to just\n// issuing a console warning.\n// pollIntervalMs: how often to poll the API for an updated unread\n// count. Defaults to 60000ms or one minute. Use 0 to disable.\n// allowedAge: how old the saved unread count can be without hitting\n// the API for a new value. Defaults to 1/2 the poll interval.\n// maxTries: how many API failures can occur in a row before we just give\n// up entirely and stop updating. Defaults to 5.\n// useSessionStorage: whether to use local browser session storage for\n// bool,default true storing / retrieving unread counts before polling\n// the Canvas API.\n\nimport React, {useRef, useState, useEffect} from 'react'\nimport {createPortal} from 'react-dom'\nimport {any, bool, func, number, string} from 'prop-types'\nimport {ScreenReaderContent, PresentationContent} from '@instructure/ui-a11y-content'\nimport {defaultFetchOptions} from '@instructure/js-utils'\nimport {useScope as useI18nScope} from '@canvas/i18n'\n\nconst I18n = useI18nScope('UnreadCounts')\n\nconst DEFAULT_POLL_INTERVAL = 120000\n\nfunction storageKeyFor(url) {\n const m = url.match(/\\/api\\/v1\\/(.*)\\/unread_count/)\n const tag = (m ? m[1] : 'UNKNOWN').replace(/\\//g, '_')\n return `unread_count_${window.ENV.current_user_id}_${tag}`\n}\n\nUnreadCounts.propTypes = {\n targetEl: any,\n onUpdate: func,\n onError: func,\n srText: func,\n dataUrl: string.isRequired,\n pollIntervalMs: number,\n allowedAge: number,\n maxTries: number,\n useSessionStorage: bool\n}\n\nUnreadCounts.defaultProps = {\n onUpdate: Function.prototype,\n onError: msg => {\n // eslint-disable-next-line no-console\n console.warn(`Error fetching unread count: ${msg}`)\n },\n srText: count => I18n.t('%{count} unread.', {count}),\n pollIntervalMs: DEFAULT_POLL_INTERVAL,\n allowedAge: DEFAULT_POLL_INTERVAL / 2,\n maxTries: 5,\n useSessionStorage: true\n}\n\nexport default function UnreadCounts(props) {\n const {\n targetEl,\n onUpdate,\n onError,\n srText,\n dataUrl,\n pollIntervalMs,\n allowedAge,\n maxTries,\n useSessionStorage\n } = props\n const syncState = useRef({msUntilFirstPoll: 0, savedChecked: false})\n const [count, setCount] = useState(NaN) // want to be sure to update at least once\n let error = null\n\n // Can we do anything at all?鈥淺n function ableToRun() {\n if (!targetEl) return false\n if (!window.ENV.current_user_id) return false\n if (window.ENV.current_user && window.ENV.current_user.fake_student) return false\n return true\n }\n\n function updateParent(n) {\n if (typeof onUpdate === 'function') onUpdate(n)\n }\n\n function startPolling() {\n let timerId = null\n let attempts = 0\n\n function cleanup() {\n if (timerId) clearTimeout(timerId)\n }\n\n async function getData() {\n try {\n const result = await fetch(dataUrl, defaultFetchOptions)\n const resp = await result.json()\n const unreadCount = parseInt(resp.unread_count, 10)\n if (useSessionStorage) {\n try {\n const savedState = JSON.stringify({\n updatedAt: +new Date(),\n unreadCount\n })\n sessionStorage.setItem(storageKeyFor(dataUrl), savedState)\n } catch (_ex) {\n // error in setting storage, no biggie, ignore\n }\n }\n if (count !== unreadCount) {\n setCount(unreadCount)\n updateParent(unreadCount)\n }\n attempts = 0\n error = null\n } catch (e) {\n error = e\n }\n }\n\n async function poll() {\n // if we get here when the page is hidden, don't actually fetch it now, wait until the page is refocused\n if (document.hidden) {\n document.addEventListener('visibilitychange', poll, {once: true})\n return\n }\n\n await getData()\n attempts += 1\n if (attempts < maxTries && pollIntervalMs > 0)\n timerId = setTimeout(poll, attempts * pollIntervalMs)\n if (error) onError(`URL=${dataUrl} error text=${error.message}`)\n }\n\n if (ableToRun()) {\n const delay = syncState.current.msUntilFirstPoll\n // If polling is disabled, it's also fine to just use the cached value\n if (delay > 0) {\n if (pollIntervalMs > 0) {\n timerId = setTimeout(poll, delay)\n }\n } else {\n poll()\n }\n }\n\n return cleanup\n }\n\n function checkSavedValue() {\n // Get some data from saved history and use it if we can before we start\n // polling the API. If we do use it, arrange to poll the API only when\n // the saved value ages out.\n const savedJson = sessionStorage.getItem(storageKeyFor(dataUrl))\n if (savedJson && ableToRun()) {\n const saved = JSON.parse(savedJson)\n const msSinceLastUpdate = new Date() - saved.updatedAt\n if (msSinceLastUpdate < allowedAge) {\n if (count !== saved.unreadCount) {\n setCount(saved.unreadCount)\n updateParent(saved.unreadCount)\n syncState.current.msUntilFirstPoll = allowedAge - msSinceLastUpdate\n }\n }\n }\n syncState.current.savedChecked = true\n }\n\n // deps is the empty array because we want to fire off the polling exactly once\n useEffect(startPolling, [])\n\n // If we haven't started polling yet, see if we can use a saved value\n if (useSessionStorage && !syncState.current.savedChecked) checkSavedValue()\n\n if (!count) return createPortal(null, targetEl)\n\n return createPortal(\n <>\n {srText(count)}\n {count}\n ,\n targetEl\n )\n}\n","/*\n * Copyright (C) 2015 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nimport $ from 'jquery'\nimport {useScope as useI18nScope} from '@canvas/i18n'\nimport React from 'react'\nimport {func} from 'prop-types'\nimport {Tray} from '@instructure/ui-tray'\nimport {CloseButton} from '@instructure/ui-buttons'\nimport {View} from '@instructure/ui-view'\nimport {Spinner} from '@instructure/ui-spinner'\nimport UnreadCounts from './UnreadCounts'\nimport preventDefault from 'prevent-default'\nimport parseLinkHeader from 'link-header-parsing/parseLinkHeaderFromXHR'\nimport tourPubSub from '@canvas/tour-pubsub'\nimport {savedObservedId} from '@canvas/observer-picker/ObserverGetObservee'\n\nconst I18n = useI18nScope('Navigation')\n\nconst CoursesTray = React.lazy(() =>\n import(\n /* webpackChunkName: \"[request]\" */\n './trays/CoursesTray'\n )\n)\nconst GroupsTray = React.lazy(() =>\n import(/* webpackChunkName: \"[request]\" */ './trays/GroupsTray')\n)\n\nconst AccountsTray = React.lazy(() =>\n import(\n /* webpackChunkName: \"[request]\" */\n './trays/AccountsTray'\n )\n)\nconst ProfileTray = React.lazy(() =>\n import(\n /* webpackChunkName: \"[request]\" */\n './trays/ProfileTray'\n )\n)\nconst HistoryTray = React.lazy(() =>\n import(\n /* webpackChunkName: \"[request]\" */\n './trays/HistoryTray'\n )\n)\nconst HelpTray = React.lazy(() =>\n import(\n /* webpackChunkName: \"[request]\" */\n './trays/HelpTray'\n )\n)\n\nconst EXTERNAL_TOOLS_REGEX = /^\\/accounts\\/[^\\/]*\\/(external_tools)/\nconst ACTIVE_ROUTE_REGEX =\n /^\\/(courses|groups|accounts|grades|calendar|conversations|profile)|^#history/\nconst ACTIVE_CLASS = 'ic-app-header__menu-list-item--active'\n\nconst TYPE_URL_MAP = {\n courses:\n '/api/v1/users/self/favorites/courses?include[]=term&exclude[]=enrollments&sort=nickname',\n groups: '/api/v1/users/self/groups?include[]=can_access',\n accounts: '/api/v1/accounts',\n profile: '/api/v1/users/self/tabs',\n history: '/api/v1/users/self/history',\n help: '/help_links'\n}\n\nconst TYPE_FILTER_MAP = {\n groups: group => group.can_access && !group.concluded\n}\n\nconst RESOURCE_COUNT = 10\n\n// give the trays that slide out from the the nav bar\n// a place to mount. It has to be outside the
\n// to aria-hide everything but the tray when open.\nlet portal\nfunction getPortal() {\n if (!portal) {\n portal = document.createElement('div')\n portal.id = 'nav-tray-portal'\n // the
has z-index: 100. This has to be behind it,\n portal.setAttribute('style', 'position: relative; z-index: 99;')\n document.body.appendChild(portal)\n }\n return portal\n}\n\nfunction noop() {}\n\nexport default class Navigation extends React.Component {\n static propTypes = {\n unreadComponent: func, // for testing only\n onDataReceived: func\n }\n\n static defaultProps = {\n unreadComponent: UnreadCounts\n }\n\n state = {\n groups: [],\n accounts: [],\n courses: [],\n help: [],\n profile: [],\n unreadSharesCount: 0,\n isTrayOpen: false,\n type: null,\n coursesLoading: false,\n coursesAreLoaded: false,\n observedUserId: '',\n accountsLoading: false,\n accountsAreLoaded: false,\n groupsLoading: false,\n groupsAreLoaded: false,\n helpLoading: false,\n helpAreLoaded: false,\n profileAreLoading: false,\n profileAreLoaded: false,\n historyLoading: false,\n historyAreLoaded: false,\n releaseNotesPollInterval: 30000,\n releaseNotesBadgeDisabled:\n !ENV.FEATURES.embedded_release_notes || ENV.SETTINGS.release_notes_badge_disabled\n }\n\n componentDidMount() {\n /**\n * Mount up stuff to our existing DOM elements, yes, it's not very\n * React-y, but it is workable and maintainable, plus it doesn't require\n * us to trash what Rails has already rendered.\n */\n\n // ////////////////////////////////\n // / Click Events\n // ////////////////////////////////\n Object.keys(TYPE_URL_MAP).forEach(type => {\n $(`#global_nav_${type}_link`).on(\n 'click',\n preventDefault(this.handleMenuClick.bind(this, type))\n )\n })\n this.openPublishUnsubscribe = tourPubSub.subscribe(\n 'navigation-tray-open',\n ({type, noFocus}) => {\n this.ensureLoaded(type)\n this.openTray(type, noFocus)\n\n // If we're already open for the specified type\n // send a message that we are open.\n if (this.state.isTrayOpen && this.state.type === type) {\n tourPubSub.publish('navigation-tray-opened', type)\n }\n }\n )\n this.closePublishUnsubscribe = tourPubSub.subscribe('navigation-tray-close', () => {\n this.closeTray()\n })\n this.overrideDismissUnsubscribe = tourPubSub.subscribe(\n 'navigation-tray-override-dismiss',\n tf => {\n this.setState({overrideDismiss: tf})\n }\n )\n }\n\n componentWillUnmount() {\n this.openPublishUnsubscribe && this.openPublishUnsubscribe()\n this.overrideDismissUnsubscribe && this.overrideDismissUnsubscribe()\n this.closePublishUnsubscribe && this.closePublishUnsubscribe()\n }\n\n componentDidUpdate(_prevProps, prevState) {\n if (prevState.activeItem !== this.state.activeItem) {\n $(`.${ACTIVE_CLASS}`).removeClass(ACTIVE_CLASS).removeAttr('aria-current')\n $(`#global_nav_${this.state.activeItem}_link`)\n .closest('li')\n .addClass(ACTIVE_CLASS)\n .attr('aria-current', 'page')\n }\n }\n\n /**\n * Given a URL and a type value, it gets the data and updates state.\n */\n getResource(url, type) {\n this.setState({[`${type}Loading`]: true})\n this.loadResourcePage(url, type)\n }\n\n _isLoadedOrLoading = type => this.state[`${type}AreLoaded`] || this.state[`${type}Loading`]\n\n ensureLoaded(type) {\n let url = TYPE_URL_MAP[type]\n if (!url) return\n\n // if going after courses and I'm an observer,\n // only retrive the courses for my observee\n if (type === 'courses' && ENV.current_user_roles.includes('observer')) {\n let forceLoad = false\n const k5_observed_user_id = savedObservedId(ENV.current_user_id)\n if (k5_observed_user_id) {\n url = `${url}&observed_user_id=${k5_observed_user_id}`\n if (k5_observed_user_id !== this.state.observedUserId) {\n this.setState({\n observedUserId: k5_observed_user_id,\n [`${type}AreLoaded}`]: false,\n [`${type}Loading`]: false\n })\n forceLoad = true\n }\n }\n if (forceLoad || !this._isLoadedOrLoading(type)) {\n this.getResource(url, type)\n }\n } else if (!this._isLoadedOrLoading(type)) {\n this.getResource(url, type)\n }\n }\n\n loadResourcePage(url, type, previousData = []) {\n $.getJSON(url, (data, __, xhr) => {\n const newData = previousData.concat(this.filterDataForType(data, type))\n\n // queue the next page if we need one\n if (newData.length < RESOURCE_COUNT) {\n const link = parseLinkHeader(xhr)\n if (link.next) {\n this.loadResourcePage(link.next, type, newData)\n return\n }\n }\n\n // finished\n this.setState(\n {\n [type]: newData,\n [`${type}Loading`]: false,\n [`${type}AreLoaded`]: true\n },\n this.props.onDataReceived\n )\n })\n }\n\n filterDataForType(data, type) {\n const filterFunc = TYPE_FILTER_MAP[type]\n if (typeof filterFunc === 'function') {\n return data.filter(filterFunc)\n }\n return data\n }\n\n determineActiveLink() {\n const path = window.location.pathname\n const matchData = path.match(EXTERNAL_TOOLS_REGEX) || path.match(ACTIVE_ROUTE_REGEX)\n const activeItem = matchData && matchData[1]\n if (!activeItem) {\n this.setState({activeItem: 'dashboard'})\n } else {\n this.setState({activeItem})\n }\n }\n\n handleMenuClick(type) {\n // Make sure data is loaded up\n this.ensureLoaded(type)\n\n if (this.state.isTrayOpen && this.state.activeItem === type) {\n this.closeTray()\n } else if (this.state.isTrayOpen && this.state.activeItem !== type) {\n this.openTray(type)\n } else {\n this.openTray(type)\n }\n }\n\n openTray(type, noFocus) {\n // Sometimes we don't want the tray to capture focus,\n // so we specify that here.\n this.setState({type, noFocus, isTrayOpen: true, activeItem: type})\n }\n\n closeTray = () => {\n this.determineActiveLink()\n // Regardless of whether it captured focus before,\n // we should make sure it does on future openings.\n this.setState({isTrayOpen: false, noFocus: false}, () => {\n setTimeout(() => {\n this.setState({type: null})\n }, 150)\n })\n }\n\n handlePollingInterval = count => {\n if (count > 0) {\n this.setState({releaseNotesPollInterval: 30000})\n } else {\n this.setState({releaseNotesPollInterval: 300000})\n }\n }\n\n renderTrayContent() {\n switch (this.state.type) {\n case 'courses':\n return (\n role === 'student' || role === 'user')\n ? this.state.courses.filter(c => !c.homeroom_course)\n : this.state.courses\n }\n hasLoaded={this.state.coursesAreLoaded}\n closeTray={this.closeTray}\n k5User={window.ENV.K5_USER}\n />\n )\n case 'groups':\n return (\n \n )\n case 'accounts':\n return (\n \n )\n case 'profile':\n return (\n \n )\n case 'history':\n return (\n \n )\n case 'help':\n return (\n this.setState({releaseNotesBadgeDisabled: val})}\n />\n )\n default:\n return null\n }\n }\n\n getTrayLabel() {\n switch (this.state.type) {\n case 'courses':\n return I18n.t('Courses tray')\n case 'groups':\n return I18n.t('Groups tray')\n case 'accounts':\n return I18n.t('Admin tray')\n case 'profile':\n return I18n.t('Profile tray')\n case 'help':\n return I18n.t('%{title} tray', {title: window.ENV.help_link_name})\n case 'history':\n return I18n.t('Recent History tray')\n default:\n return I18n.t('Global navigation tray')\n }\n }\n\n // Also have to attend to the unread dot on the mobile view inbox\n onInboxUnreadUpdate(unreadCount) {\n if (this.state.unreadInboxCount !== unreadCount) this.setState({unreadInboxCount: unreadCount})\n const el = document.getElementById('mobileHeaderInboxUnreadBadge')\n if (el) el.style.display = unreadCount > 0 ? '' : 'none'\n if (typeof this.props.onDataReceived === 'function') this.props.onDataReceived()\n }\n\n onSharesUnreadUpdate(unreadCount) {\n if (this.state.unreadSharesCount !== unreadCount)\n this.setState({unreadSharesCount: unreadCount})\n }\n\n inboxUnreadSRText(count) {\n return I18n.t(\n {\n one: 'One unread message.',\n other: '%{count} unread messages.'\n },\n {count}\n )\n }\n\n sharesUnreadSRText(count) {\n return I18n.t(\n {\n one: 'One unread share.',\n other: '%{count} unread shares.'\n },\n {count}\n )\n }\n\n releaseNotesBadgeText(count) {\n return I18n.t(\n {\n one: 'One unread release note.',\n other: '%{count} release notes.'\n },\n {count}\n )\n }\n\n render() {\n const UnreadComponent = this.props.unreadComponent\n\n return (\n <>\n {\n tourPubSub.publish('navigation-tray-opened', this.state.type)\n }}\n >\n
\n \n
\n \n I18n.t('Loading')}\n />\n \n }\n >\n {this.renderTrayContent()}\n \n
\n
\n \n {ENV.DIRECT_SHARE_ENABLED && ENV.current_user_id && (\n this.onSharesUnreadUpdate(unreadCount)}\n srText={this.sharesUnreadSRText}\n />\n )}\n {!ENV.current_user_disabled_inbox && (\n this.onInboxUnreadUpdate(unreadCount)}\n srText={this.inboxUnreadSRText}\n useSessionStorage={false}\n />\n )}\n {!this.state.releaseNotesBadgeDisabled && (\n \n )}\n \n )\n }\n}\n","/*\n * Copyright (C) 2015 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nimport React from 'react'\nimport $ from 'jquery'\nimport {shape, func, object} from 'prop-types'\nimport {Tray} from '@instructure/ui-tray'\nimport preventDefault from 'prevent-default'\nimport {useScope as useI18nScope} from '@canvas/i18n'\nimport {View} from '@instructure/ui-view'\nimport {Spinner} from '@instructure/ui-spinner'\n\nconst I18n = useI18nScope('MobileNavigation')\n\nconst MobileContextMenu = React.lazy(() => import('./MobileContextMenu'))\nconst MobileGlobalMenu = React.lazy(() => import('./MobileGlobalMenu'))\n\nexport default class MobileNavigation extends React.Component {\n state = {\n globalNavIsOpen: false,\n contextNavIsOpen: false\n }\n\n static propTypes = {\n DesktopNavComponent: shape({\n ensureLoaded: func.isRequired,\n state: object.isRequired\n }).isRequired\n }\n\n componentDidMount() {\n $('.mobile-header-hamburger').on(\n 'touchstart click',\n preventDefault(() => this.setState({globalNavIsOpen: true}))\n )\n\n const arrowIcon = document.getElementById('mobileHeaderArrowIcon')\n const mobileContextNavContainer = document.getElementById('mobileContextNavContainer')\n $('.mobile-header-title.expandable, .mobile-header-arrow').on(\n 'touchstart click',\n preventDefault(() => {\n this.setState(state => {\n const contextNavIsOpen = !state.contextNavIsOpen\n\n // gotta do some manual dom manip for the non-react arrow/close icon\n arrowIcon.className = contextNavIsOpen ? 'icon-x' : 'icon-arrow-open-down'\n mobileContextNavContainer.setAttribute('aria-expanded', contextNavIsOpen)\n\n return {contextNavIsOpen}\n })\n })\n )\n }\n\n render() {\n const closeGlobalNav = () => this.setState({globalNavIsOpen: false})\n const spinner = (\n \n I18n.t('...Loading')} />\n \n )\n return (\n <>\n {this.state.globalNavIsOpen && (\n \n {this.state.globalNavIsOpen && (\n \n \n \n )}\n \n )}\n {this.state.contextNavIsOpen && (\n \n \n \n )}\n \n )\n }\n}\n","/*\n * Copyright (C) 2022 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\nimport {AccessibleContent} from '@instructure/ui-a11y-content'\nimport {Pill} from '@instructure/ui-pill'\n\nimport {useScope as useI18nScope} from '@canvas/i18n'\n\nconst I18n = useI18nScope('NewTabIndicator')\n\nconst NewTabIndicator = ({tabName}) => {\n const currentUserId = window.ENV.current_user_id\n const visitedTabs = window.ENV.current_user_visited_tabs || []\n return currentUserId != null && !visitedTabs.includes(tabName) ? (\n \n \n {I18n.t('New')}\n \n \n ) : null\n}\n\nNewTabIndicator.propTypes = {\n tabName: PropTypes.string.isRequired\n}\n\nexport default NewTabIndicator\n","/*\n * Copyright (C) 2015 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nimport $ from 'jquery'\nimport {useScope as useI18nScope} from '@canvas/i18n'\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport Navigation from './react/Navigation'\nimport MobileNavigation from './react/MobileNavigation'\nimport ready from '@instructure/ready'\nimport NewTabIndicator from './react/NewTabIndicator'\n\nconst I18n = useI18nScope('common')\n\n// #\n// Handle user toggling of nav width\nlet navCollapsed = window.ENV.SETTINGS && window.ENV.SETTINGS.collapse_global_nav\n\n$('body').on('click', '#primaryNavToggle', function () {\n let primaryNavToggleText\n navCollapsed = !navCollapsed\n if (navCollapsed) {\n $('body').removeClass('primary-nav-expanded')\n $.ajaxJSON('/api/v1/users/self/settings', 'PUT', {collapse_global_nav: true})\n primaryNavToggleText = I18n.t('Expand global navigation')\n $(this).attr({title: primaryNavToggleText, 'aria-label': primaryNavToggleText})\n\n // add .primary-nav-transitions a little late to avoid awkward CSS\n // transitions when the nav is changing states\n setTimeout(() => {\n $('body').addClass('primary-nav-transitions')\n }, 300)\n } else {\n $('body').removeClass('primary-nav-transitions').addClass('primary-nav-expanded')\n $.ajaxJSON('/api/v1/users/self/settings', 'PUT', {collapse_global_nav: false})\n primaryNavToggleText = I18n.t('Minimize global navigation')\n $(this).attr({title: primaryNavToggleText, 'aria-label': primaryNavToggleText})\n }\n})\n\nready(() => {\n const globalNavTrayContainer = document.getElementById('global_nav_tray_container')\n if (globalNavTrayContainer) {\n const DesktopNavComponent = React.createRef()\n const mobileNavComponent = React.createRef()\n\n ReactDOM.render(\n mobileNavComponent.current?.forceUpdate()}\n />,\n globalNavTrayContainer,\n () => {\n const mobileContextNavContainer = document.getElementById('mobileContextNavContainer')\n if (mobileContextNavContainer) {\n ReactDOM.render(\n ,\n mobileContextNavContainer\n )\n }\n }\n )\n }\n\n const newTabContainers = document.getElementsByClassName('new-tab-indicator')\n if (newTabContainers) {\n for (const newTabContainer of newTabContainers) {\n ReactDOM.render(\n ,\n newTabContainer\n )\n }\n }\n})\n","/*\n * Copyright (C) 2021 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nimport getCookie from '@instructure/get-cookie'\n\n// cookie name prefixed with k5_ for historical reasons but not exclusively used in k5 mode\nexport const OBSERVER_COOKIE_PREFIX = 'k5_observed_user_for_'\n\nexport const savedObservedCookieName = currentUserId => `${OBSERVER_COOKIE_PREFIX}${currentUserId}`\n\nexport const savedObservedId = currentUserId => getCookie(savedObservedCookieName(currentUserId))\n\nexport const saveObservedId = (currentUserId, observeeId) => {\n document.cookie = observedCookie(currentUserId, observeeId)\n}\n\nexport const clearObservedId = currentUserId => {\n document.cookie = `${observedCookie(currentUserId, '')};max-age=-1`\n}\n\nconst observedCookie = (currentUserId, observeeId) =>\n `${savedObservedCookieName(currentUserId)}=${observeeId};path=/`\n","/*\n * Copyright (C) 2020 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\n// A simple pubsub engine for sending messages between Canvas components\nimport uuid from 'uuid'\n\nexport default class PubSub {\n topics = {}\n\n subscribe(topic, fn) {\n if (!this.topics[topic]) this.topics[topic] = {}\n const id = uuid.v4()\n this.topics[topic][id] = fn\n return () => {\n this.topics[topic][id] = null\n delete this.topics[topic][id]\n }\n }\n\n publish(topic, args) {\n if (!this.topics[topic]) return\n Object.values(this.topics[topic]).forEach(fn => {\n if (fn) fn(args)\n })\n }\n}\n","/*\n * Copyright (C) 2020 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\nimport PubSub from './pubsub'\n\nconst TourPubsub = new PubSub()\n\nexport default TourPubsub\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nconst regex = /<(http.*?)>; rel=\"([a-z]*)\"/g\n\nexport default function parseLinkHeader(jqXhr) {\n let link\n const links = {}\n const header = jqXhr && jqXhr.getResponseHeader('Link')\n if (!header) return links\n while ((link = regex.exec(header))) {\n links[link[2]] = link[1]\n }\n return links\n}\n"],"names":["AccessibleContent","_Component","_super","this","apply","arguments","key","value","_this$props","props","alt","children","ElementType","displayName","Component","propTypes","as","defaultProps","_ref","spacing","stacking","offsetMedium","medium","offsetSmall","small","offsetXSmall","xSmall","zIndex","above","_dec","_dec2","_dec3","_class","_class2","_temp","styles","componentId","template","theme","concat","CloseButton","deprecated","buttonRef","variant","testable","screenReaderLabel","_classnames","elementRef","size","onClick","margin","placement","offset","type","href","cursor","tabIndex","Object","assign","passthroughProps","className","root","BaseButton","renderIcon","IconXSolid","interaction","color","withBorder","withBackground","ScreenReaderContent","get","getInteraction","_this$props2","event","disabled","readOnly","addResizeListener","el","handler","dimensions","length","node","origSize","cancelled","raf","checkDimensions","boundingRect","width","height","some","dim","remove","cancel","elementMatches","selectorString","findDOMNode","matches","msMatchesSelector","findFocusable","filter","shouldSearchRootNode","element","querySelectorAll","focusableSelector","Array","from","focusable","cs","getComputedStyle","display","offsetWidth","offsetHeight","positioned","POS","includes","style","position","toLowerCase","getPropertyValue","visible","document","body","parentNode","d","fillRule","stroke","strokeWidth","name","viewBox","glyphName","generator","borders","colors","typography","fontFamily","padding","background","backgroundLightest","textTransformStyle","textFontSize","fontSizeXSmall","textFontWeight","fontWeightBold","maxWidth","textDark","primaryColor","infoColor","textInfo","dangerColor","textDanger","successColor","textSuccess","warningColor","textWarning","alertColor","textAlert","messageColor","borderWidth","widthSmall","borderStyle","borderRadius","Pill","text","_this","call","state","truncated","setState","focused","getTriggerProps","_this2","filteredProps","containerProps","actualColor","classes","View","withFocusOutline","focusColor","TruncateText","onUpdate","handleTruncation","_this3","Tooltip","renderTip","renderPill","trackColor","backgroundLight","backgroundBrand","xSmallSize","xSmallBorderWidth","smallSize","smallBorderWidth","mediumSize","mediumBorderWidth","largeSize","largeBorderWidth","inverseColor","_ref2","canvas","variables","Spinner","title","titleId","uid","_classes","ie11","isIE11","renderTitle","circle","role","id","callRenderProp","circleTrack","cx","cy","r","radius","circleSpin","userAgent","navigator","test","I18n","useI18nScope","DEFAULT_POLL_INTERVAL","storageKeyFor","url","m","match","tag","replace","window","ENV","current_user_id","UnreadCounts","Function","prototype","onError","msg","console","warn","srText","count","t","pollIntervalMs","allowedAge","maxTries","useSessionStorage","targetEl","dataUrl","syncState","useRef","msUntilFirstPoll","savedChecked","setCount","useState","NaN","error","ableToRun","current_user","fake_student","updateParent","n","startPolling","timerId","attempts","cleanup","clearTimeout","async","getData","result","fetch","defaultFetchOptions","resp","json","unreadCount","parseInt","unread_count","savedState","JSON","stringify","updatedAt","Date","sessionStorage","setItem","_ex","e","poll","hidden","addEventListener","once","setTimeout","message","delay","current","checkSavedValue","savedJson","getItem","saved","parse","msSinceLastUpdate","useEffect","createPortal","React","_jsx","PresentationContent","CoursesTray","GroupsTray","AccountsTray","ProfileTray","HistoryTray","HelpTray","EXTERNAL_TOOLS_REGEX","ACTIVE_ROUTE_REGEX","ACTIVE_CLASS","TYPE_URL_MAP","courses","groups","accounts","profile","history","help","TYPE_FILTER_MAP","group","can_access","concluded","RESOURCE_COUNT","portal","getPortal","createElement","setAttribute","appendChild","noop","Navigation","constructor","unreadSharesCount","isTrayOpen","coursesLoading","coursesAreLoaded","observedUserId","accountsLoading","accountsAreLoaded","groupsLoading","groupsAreLoaded","helpLoading","helpAreLoaded","profileAreLoading","profileAreLoaded","historyLoading","historyAreLoaded","releaseNotesPollInterval","releaseNotesBadgeDisabled","FEATURES","embedded_release_notes","SETTINGS","release_notes_badge_disabled","_isLoadedOrLoading","closeTray","determineActiveLink","noFocus","handlePollingInterval","componentDidMount","keys","forEach","$","on","preventDefault","handleMenuClick","bind","openPublishUnsubscribe","tourPubSub","ensureLoaded","openTray","closePublishUnsubscribe","overrideDismissUnsubscribe","tf","overrideDismiss","componentWillUnmount","componentDidUpdate","_prevProps","prevState","activeItem","removeClass","removeAttr","closest","addClass","attr","getResource","loadResourcePage","_context","_includesInstanceProperty","current_user_roles","forceLoad","k5_observed_user_id","savedObservedId","previousData","undefined","data","__","xhr","newData","filterDataForType","link","parseLinkHeader","next","onDataReceived","filterFunc","path","location","pathname","matchData","renderTrayContent","_window$ENV$current_u","K5_USER","every","c","homeroom_course","hasLoaded","k5User","userDisplayName","display_name","userPronouns","pronouns","userAvatarURL","avatar_is_fallback","avatar_image_url","loaded","tabs","counts","unreadShares","trayTitle","help_link_name","links","showNotes","badgeDisabled","setBadgeDisabled","val","getTrayLabel","onInboxUnreadUpdate","unreadInboxCount","getElementById","onSharesUnreadUpdate","inboxUnreadSRText","one","other","sharesUnreadSRText","releaseNotesBadgeText","render","UnreadComponent","unreadComponent","Tray","label","open","onDismiss","shouldCloseOnDocumentClick","shouldContainFocus","mountNode","smallWidth","onEntered","fallback","textAlign","DIRECT_SHARE_ENABLED","unreadSharesCountElement","querySelector","current_user_disabled_inbox","unreadInboxCountElement","unreadReleaseNotesCountElement","MobileContextMenu","MobileGlobalMenu","MobileNavigation","globalNavIsOpen","contextNavIsOpen","arrowIcon","mobileContextNavContainer","closeGlobalNav","spinner","DesktopNavComponent","NewTabIndicator","tabName","currentUserId","visitedTabs","current_user_visited_tabs","navCollapsed","collapse_global_nav","primaryNavToggleText","ready","globalNavTrayContainer","mobileNavComponent","ReactDOM","ref","_mobileNavComponent$c","forceUpdate","newTabContainers","getElementsByClassName","newTabContainer","dataset","tabname","OBSERVER_COOKIE_PREFIX","savedObservedCookieName","getCookie","saveObservedId","observeeId","cookie","observedCookie","clearObservedId","PubSub","topics","subscribe","topic","fn","uuid","publish","args","values","TourPubsub","v1","v4","module","exports","byteToHex","i","toString","substr","bytesToUuid","buf","bth","join","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","rnds","Math","random","rng","_nodeId","_clockseq","_lastMSecs","_lastNSecs","options","b","clockseq","seedBytes","msecs","getTime","nsecs","dt","Error","tl","tmh","ii","regex","jqXhr","header","getResponseHeader","exec"],"sourceRoot":""}