diff --git a/es/components/browse/components/CustomColumnController.js b/es/components/browse/components/CustomColumnController.js index f455aab4..605a7fdf 100644 --- a/es/components/browse/components/CustomColumnController.js +++ b/es/components/browse/components/CustomColumnController.js @@ -257,9 +257,9 @@ var ColumnOption = /*#__PURE__*/React.memo(function (props) { var showDescription = description; if (sameTitleColExists) { if (!description) { - showDescription = '' + field + ''; + showDescription = '' + field + ''; } else { - showDescription += '
' + field + ''; + showDescription += '
' + field + ''; } } return /*#__PURE__*/React.createElement("div", { diff --git a/es/components/browse/components/FacetList/ExtendedDescriptionPopoverIcon.js b/es/components/browse/components/FacetList/ExtendedDescriptionPopoverIcon.js index 8e7cea00..a60a34d6 100644 --- a/es/components/browse/components/FacetList/ExtendedDescriptionPopoverIcon.js +++ b/es/components/browse/components/FacetList/ExtendedDescriptionPopoverIcon.js @@ -71,7 +71,7 @@ export var ExtendedDescriptionPopoverIcon = /*#__PURE__*/React.memo(function (pr id: idToUse, ref: target, // By time icon is clicked, this will be mounted. - popover: /*#__PURE__*/React.createElement(Popover, null, /*#__PURE__*/React.createElement(Popover.Title, { + popover: /*#__PURE__*/React.createElement(Popover, null, /*#__PURE__*/React.createElement(Popover.Header, { as: "div" }, /*#__PURE__*/React.createElement("div", { className: "row align-items-center" @@ -84,7 +84,7 @@ export var ExtendedDescriptionPopoverIcon = /*#__PURE__*/React.memo(function (pr onClick: dismissPopover }, /*#__PURE__*/React.createElement("i", { className: "icon icon-times fas" - })))), /*#__PURE__*/React.createElement(Popover.Content, null, /*#__PURE__*/React.createElement("div", { + })))), /*#__PURE__*/React.createElement(Popover.Body, null, /*#__PURE__*/React.createElement("div", { className: "popover-content-inner", dangerouslySetInnerHTML: { __html: extendedDescription diff --git a/es/components/browse/components/FacetList/FacetTermsList.js b/es/components/browse/components/FacetList/FacetTermsList.js index 059bbc4d..49ba072d 100644 --- a/es/components/browse/components/FacetList/FacetTermsList.js +++ b/es/components/browse/components/FacetList/FacetTermsList.js @@ -250,7 +250,7 @@ export var Term = /*#__PURE__*/function (_React$PureComponent) { return subTermComponents; } return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("li", { - className: "facet-list-element" + statusClassName + (groupingTermKey && !facetSearchActive ? " pl-3" : ""), + className: "facet-list-element" + statusClassName + (groupingTermKey && !facetSearchActive ? " ps-3" : ""), key: term.key, "data-key": term.key, "data-is-grouping": isGroupingTerm, diff --git a/es/components/browse/components/FacetList/RangeFacet.js b/es/components/browse/components/FacetList/RangeFacet.js index 723ddee1..bb256253 100644 --- a/es/components/browse/components/FacetList/RangeFacet.js +++ b/es/components/browse/components/FacetList/RangeFacet.js @@ -473,7 +473,7 @@ export var RangeFacet = /*#__PURE__*/function (_React$PureComponent) { }, /*#__PURE__*/React.createElement("div", { className: "range-drop col-12 col-sm-6" }, /*#__PURE__*/React.createElement("label", { - className: "mb-0 small mr-07" + className: "mb-0 small me-07" }, "From:"), /*#__PURE__*/React.createElement(RangeDropdown, { title: fromTitle, value: fromVal, @@ -490,7 +490,7 @@ export var RangeFacet = /*#__PURE__*/function (_React$PureComponent) { })), /*#__PURE__*/React.createElement("div", { className: "range-drop col-12 col-sm-6" }, /*#__PURE__*/React.createElement("label", { - className: "mb-0 small ml-05 mr-07" + className: "mb-0 small ms-05 me-07" }, "To:"), /*#__PURE__*/React.createElement(RangeDropdown, { title: toTitle, value: toVal, @@ -1120,7 +1120,7 @@ var RangeDropdown = /*#__PURE__*/function (_React$PureComponent3) { })), /*#__PURE__*/React.createElement("button", { type: "submit", disabled: !updateAble, - className: "btn" + className: "btn border-0" }, /*#__PURE__*/React.createElement("i", { className: "icon icon-fw icon-check fas" })))); @@ -1177,7 +1177,7 @@ var RangeDropdown = /*#__PURE__*/function (_React$PureComponent3) { })), /*#__PURE__*/React.createElement("button", { type: "submit", disabled: !updateAble, - className: "btn" + className: "btn border-0" }, /*#__PURE__*/React.createElement("i", { className: "icon icon-fw icon-check fas" }))), menuOptions); diff --git a/es/components/browse/components/SelectedItemsController.js b/es/components/browse/components/SelectedItemsController.js index 65457abb..7f64ee6a 100644 --- a/es/components/browse/components/SelectedItemsController.js +++ b/es/components/browse/components/SelectedItemsController.js @@ -242,7 +242,7 @@ export var SelectionItemCheckbox = /*#__PURE__*/React.memo(function (props) { type: "checkbox", checked: isChecked, onChange: onChange, - className: "mr-2" + className: "me-2" }); }); @@ -302,13 +302,13 @@ export var SelectStickyFooter = /*#__PURE__*/React.memo(function (props) { }, /*#__PURE__*/React.createElement("h3", { className: "mt-0 mb-0 col-auto text-600" }, selectedItems.size), /*#__PURE__*/React.createElement("h4", { - className: "mt-0 mb-0 text-muted col-auto text-400 px-0" + className: "mt-0 mb-0 text-body-secondary col-auto text-400 px-0" }, itemTypeFriendlyName + (selectedItems.size === 1 ? '' : 's'), " selected")) : /*#__PURE__*/React.createElement("div", { className: "row" }, /*#__PURE__*/React.createElement("h4", { className: "mt-0 mb-0 col-auto text-400" }, selectedItemDisplayTitle), /*#__PURE__*/React.createElement("h4", { - className: "mt-0 mb-0 text-muted col-auto text-400 px-0" + className: "mt-0 mb-0 text-body-secondary col-auto text-400 px-0" }, "selected"))), /*#__PURE__*/React.createElement("div", { className: "col-12 col-md-auto" }, /*#__PURE__*/React.createElement("button", { @@ -321,7 +321,7 @@ export var SelectStickyFooter = /*#__PURE__*/React.memo(function (props) { className: "icon icon-fw fas icon-check" }), "\xA0 Apply"), /*#__PURE__*/React.createElement("button", { type: "button", - className: "btn btn-outline-warning ml-1", + className: "btn btn-outline-warning ms-1", onClick: onCancel, "data-tip": "Cancel selection and close window" }, /*#__PURE__*/React.createElement("i", { @@ -347,7 +347,7 @@ export var BackNavigationStickyFooter = /*#__PURE__*/React.memo(function (props) className: "col-12 col-md-auto" }, /*#__PURE__*/React.createElement("button", { type: "button", - className: "btn btn-outline-warning ml-1", + className: "btn btn-outline-warning ms-1", onClick: onBackButtonClick, "data-tip": tooltip || '' }, /*#__PURE__*/React.createElement("i", { diff --git a/es/components/browse/components/SortController.js b/es/components/browse/components/SortController.js index 1f7b2182..94c4c202 100644 --- a/es/components/browse/components/SortController.js +++ b/es/components/browse/components/SortController.js @@ -352,7 +352,7 @@ var MultiColumnSortOption = /*#__PURE__*/React.memo(function (props) { title = foundSortDefinition.title; } else { title = /*#__PURE__*/React.createElement("span", { - className: "text-monospace small" + className: "font-monospace small" }, useCol); } } @@ -377,7 +377,7 @@ var MultiColumnSortOption = /*#__PURE__*/React.memo(function (props) { }, /*#__PURE__*/React.createElement(DropdownButton, { title: title, size: size, - variant: (variant ? variant + " " : "") + "btn-block text-left", + variant: (variant ? variant + " " : "") + "w-100 text-start", onSelect: handleSortColumnSelection }, allSortFields.map(function (col, idx) { var field = col.field, @@ -391,10 +391,10 @@ var MultiColumnSortOption = /*#__PURE__*/React.memo(function (props) { disabled: !!noSort }, title) : null; }))), /*#__PURE__*/React.createElement("div", { - className: "col-3 pl-0" + className: "col-3 ps-0" }, /*#__PURE__*/React.createElement(DropdownButton, { title: sortOrderTitle, - variant: (variant ? variant + " " : "") + "btn-block text-left", + variant: (variant ? variant + " " : "") + "w-100 text-start", size: size, onSelect: handleSortOrderSelection }, /*#__PURE__*/React.createElement(DropdownItem, { @@ -404,20 +404,24 @@ var MultiColumnSortOption = /*#__PURE__*/React.memo(function (props) { key: "sort-direction-desc", eventKey: index + "|desc" }, "Descending"))), /*#__PURE__*/React.createElement("div", { - className: "col-lg-1 col-2 pl-0" - }, !(rowCount - 1 === index) ? /*#__PURE__*/React.createElement("button", { + className: "col-lg-1 col-2 ps-0" + }, !(rowCount - 1 === index) ? /*#__PURE__*/React.createElement("div", { + className: "d-grid gap-1" + }, /*#__PURE__*/React.createElement("button", { type: "button", - className: "btn btn-".concat(variant, " btn-").concat(size, " btn-block"), + className: "btn btn-".concat(variant, " btn-").concat(size), onClick: onRemoveClick, "data-tip": "Remove sort column" }, /*#__PURE__*/React.createElement("i", { className: "icon icon-fw fas icon-minus w-100" - })) : /*#__PURE__*/React.createElement("button", { + }))) : /*#__PURE__*/React.createElement("div", { + className: "d-grid gap-1" + }, /*#__PURE__*/React.createElement("button", { type: "button", - className: "btn btn-primary btn-".concat(size, " btn-block"), + className: "btn btn-primary btn-".concat(size), onClick: handleSettingsApply, "data-tip": "Re-sort columns" }, /*#__PURE__*/React.createElement("i", { className: "icon icon-fw fas icon-check w-100" - })))); + }))))); }); \ No newline at end of file diff --git a/es/components/browse/components/StackedBlockTable.js b/es/components/browse/components/StackedBlockTable.js index 2562a49e..c932d481 100644 --- a/es/components/browse/components/StackedBlockTable.js +++ b/es/components/browse/components/StackedBlockTable.js @@ -127,7 +127,7 @@ export var StackedBlockListViewMoreButton = /*#__PURE__*/function (_React$PureCo return /*#__PURE__*/React.createElement("div", { className: "view-more-button" }, /*#__PURE__*/React.createElement("i", { - className: "icon fas icon-plus mr-1 ml-02 small" + className: "icon fas icon-plus me-1 ms-02 small" }), collapsibleChildrenLen + " More" + (title ? ' ' + title : ''), showMoreExtTitle ? /*#__PURE__*/React.createElement("span", { className: "ext text-400" }, " ", showMoreExtTitle) : null); @@ -138,7 +138,7 @@ export var StackedBlockListViewMoreButton = /*#__PURE__*/function (_React$PureCo className: cls, onClick: preventExpand ? null : handleCollapseToggle }, /*#__PURE__*/React.createElement("i", { - className: "mr-1 icon fas icon-" + (collapsed ? 'plus' : 'minus') + className: "me-1 icon fas icon-" + (collapsed ? 'plus' : 'minus') }), titleStr, showMoreExtTitle ? /*#__PURE__*/React.createElement("span", { className: "ext text-400" }, " ", showMoreExtTitle) : null); @@ -293,7 +293,7 @@ export var StackedBlockList = /*#__PURE__*/function (_React$PureComponent3) { className: "view-more-button clickable", onClick: this.handleIncrementalExpandClick.bind(this, nextCount) }, /*#__PURE__*/React.createElement("i", { - className: "mr-1 icon fas icon-" + (nextCount >= incrementalExpandVisibleCount ? "plus" : "minus") + className: "me-1 icon fas icon-" + (nextCount >= incrementalExpandVisibleCount ? "plus" : "minus") }), /*#__PURE__*/React.createElement("span", null, " ", titleStr, " ")); } else { viewMoreButton = /*#__PURE__*/React.createElement(StackedBlockListViewMoreButton, _extends({}, this.props, { @@ -555,12 +555,12 @@ _defineProperty(StackedBlockTable, "propTypes", { _defineProperty(StackedBlockTable, "defaultProps", { 'columnHeaders': [{ columnClass: 'biosample', - className: 'text-left', + className: 'text-start', title: 'Biosample', initialWidth: 115 }, { columnClass: 'experiment', - className: 'text-left', + className: 'text-start', title: 'Experiment', initialWidth: 145 }, { diff --git a/es/components/browse/components/above-table-controls/AboveSearchViewTableControls.js b/es/components/browse/components/above-table-controls/AboveSearchViewTableControls.js index 7dcdaa8e..a1d4ef91 100644 --- a/es/components/browse/components/above-table-controls/AboveSearchViewTableControls.js +++ b/es/components/browse/components/above-table-controls/AboveSearchViewTableControls.js @@ -34,11 +34,11 @@ export var AboveSearchViewTableControls = /*#__PURE__*/React.memo(function (prop }); if (addAction && typeof addAction.href === 'string') { addButton = /*#__PURE__*/React.createElement("a", { - className: "btn btn-primary btn-xs" + (total ? " ml-1" : ""), + className: "btn btn-primary btn-xs" + (total ? " ms-1" : ""), href: addAction.href, "data-skiprequest": "true" }, /*#__PURE__*/React.createElement("i", { - className: "icon icon-fw icon-plus fas mr-03 fas" + className: "icon icon-fw icon-plus fas me-03 fas" }), "Create New \xA0"); } } diff --git a/es/components/browse/components/above-table-controls/RightButtonsSection.js b/es/components/browse/components/above-table-controls/RightButtonsSection.js index d0fe71cd..182f32a9 100644 --- a/es/components/browse/components/above-table-controls/RightButtonsSection.js +++ b/es/components/browse/components/above-table-controls/RightButtonsSection.js @@ -59,7 +59,7 @@ export var ConfigureVisibleColumnsButton = /*#__PURE__*/React.memo(function (_re }, /*#__PURE__*/React.createElement("i", { className: "icon icon-fw icon-table fas" }), /*#__PURE__*/React.createElement("i", { - className: "icon icon-fw icon-angle-down ml-03 fas" + className: "icon icon-fw icon-angle-down ms-03 fas" })); }); export var MultiColumnSortButton = /*#__PURE__*/React.memo(function (_ref2) { @@ -78,7 +78,7 @@ export var MultiColumnSortButton = /*#__PURE__*/React.memo(function (_ref2) { }, /*#__PURE__*/React.createElement("i", { className: "icon icon-fw icon-sort fas" }), /*#__PURE__*/React.createElement("i", { - className: "icon icon-fw icon-angle-down ml-03 fas" + className: "icon icon-fw icon-angle-down ms-03 fas" })); }); @@ -121,7 +121,7 @@ export var ToggleLayoutButton = /*#__PURE__*/function (_React$PureComponent) { }, /*#__PURE__*/React.createElement("i", { className: "icon icon-fw fas icon-" + (!isFullscreen ? 'arrows-alt-h icon-expand' : 'compress') }), /*#__PURE__*/React.createElement("span", { - className: "ml-05 d-none d-xl-inline" + className: "ms-05 d-none d-xl-inline" }, !isFullscreen ? "Full Screen" : "Collapse Table Width")); } }]); diff --git a/es/components/browse/components/table-commons/ColumnCombiner.js b/es/components/browse/components/table-commons/ColumnCombiner.js index a7cc65bb..1ab38cdf 100644 --- a/es/components/browse/components/table-commons/ColumnCombiner.js +++ b/es/components/browse/components/table-commons/ColumnCombiner.js @@ -285,5 +285,6 @@ export function getColumnWidthFromDefinition(columnDefinition) { if (!mounted || isServerSide()) responsiveGridSize = 'lg';else responsiveGridSize = responsiveGridState(windowWidth); if (responsiveGridSize === 'xs') responsiveGridSize = 'sm'; if (responsiveGridSize === 'xl') responsiveGridSize = 'lg'; + if (responsiveGridSize === 'xxl') responsiveGridSize = 'lg'; return widthMap[responsiveGridSize || 'lg']; } \ No newline at end of file diff --git a/es/components/browse/components/table-commons/HeadersRow.js b/es/components/browse/components/table-commons/HeadersRow.js index 080e6341..06ed4704 100644 --- a/es/components/browse/components/table-commons/HeadersRow.js +++ b/es/components/browse/components/table-commons/HeadersRow.js @@ -779,7 +779,7 @@ var SortOptionsMenu = /*#__PURE__*/React.memo(function (_ref16) { key: field, onClick: onClick }, title || field, !isActive ? null : /*#__PURE__*/React.createElement("i", { - className: "small icon fas ml-12 icon-arrow-".concat(descend ? "down" : "up") + className: "small icon fas ms-12 icon-arrow-".concat(descend ? "down" : "up") })); }); return /*#__PURE__*/React.createElement("div", { diff --git a/es/components/browse/components/table-commons/ResultRowColumnBlockValue.js b/es/components/browse/components/table-commons/ResultRowColumnBlockValue.js index 548bf9b6..bc79c26e 100644 --- a/es/components/browse/components/table-commons/ResultRowColumnBlockValue.js +++ b/es/components/browse/components/table-commons/ResultRowColumnBlockValue.js @@ -201,7 +201,8 @@ export function sanitizeOutputValue(value) { var atId = itemUtil.atId(value); if (atId) { return /*#__PURE__*/React.createElement("a", { - href: atId + href: atId, + className: "link-underline-hover" }, value.display_title); } else { return value.display_title; diff --git a/es/components/browse/components/table-commons/basicColumnExtensionMap.js b/es/components/browse/components/table-commons/basicColumnExtensionMap.js index b018a6d6..2410cd6d 100644 --- a/es/components/browse/components/table-commons/basicColumnExtensionMap.js +++ b/es/components/browse/components/table-commons/basicColumnExtensionMap.js @@ -72,7 +72,7 @@ export var basicColumnExtensionMap = { return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", { className: "icon-container" }, /*#__PURE__*/React.createElement("i", { - className: "icon icon-fw fas icon-filter clickable mr-08", + className: "icon icon-fw fas icon-filter clickable me-08", onClick: function onClick(e) { // Preserve search query, if any, but remove filters (which are usually per-type). if (!href || href.indexOf('/search/') === -1) return; @@ -107,7 +107,7 @@ export var basicColumnExtensionMap = { date_created = _result$date_created === void 0 ? null : _result$date_created; if (!date_created) return null; return /*#__PURE__*/React.createElement("span", { - className: "value text-right" + className: "value text-end" }, /*#__PURE__*/React.createElement(LocalizedTime, { timestamp: date_created, formatType: "date-sm" @@ -130,7 +130,7 @@ export var basicColumnExtensionMap = { date_modified = _result$last_modified3 === void 0 ? null : _result$last_modified3; if (!date_modified) return null; return /*#__PURE__*/React.createElement("span", { - className: "value text-right" + className: "value text-end" }, /*#__PURE__*/React.createElement(LocalizedTime, { timestamp: date_modified, formatType: "date-sm" @@ -203,12 +203,13 @@ export var DisplayTitleColumnDefault = /*#__PURE__*/React.memo(function (props) link = "".concat(propLink, "#").concat(targetTabKey); } title = /*#__PURE__*/React.createElement("a", { + className: "link-underline-hover", key: "title", href: link || '#', onClick: onClick }, title); } - var cls = "title-block text-truncate" + (shouldMonospace ? " text-monospace text-small" : "") + (className ? " " + className : ""); + var cls = "title-block text-truncate" + (shouldMonospace ? " font-monospace text-small" : "") + (className ? " " + className : ""); return /*#__PURE__*/React.createElement("div", { key: "title-container", className: cls, diff --git a/es/components/forms/SubmissionView.js b/es/components/forms/SubmissionView.js index 213cb136..f20d64be 100644 --- a/es/components/forms/SubmissionView.js +++ b/es/components/forms/SubmissionView.js @@ -479,8 +479,7 @@ var SubmissionView = /*#__PURE__*/function (_React$PureComponent) { return /*#__PURE__*/React.createElement(DropdownItem, { key: val, title: val || '', - eventKey: val, - onSelect: this.handleTypeSelection + eventKey: val }, val || ''); } @@ -1690,7 +1689,7 @@ var SubmissionView = /*#__PURE__*/function (_React$PureComponent) { id: "content" }, /*#__PURE__*/React.createElement(TypeSelectModal, _extends({ show: showAmbiguousModal - }, _.pick(this.state, 'ambiguousIdx', 'ambiguousType', 'ambiguousSelected', 'currKey', 'creatingIdx'), _.pick(this, 'buildAmbiguousEnumEntry', 'submitAmbiguousType', 'cancelCreateNewObject', 'cancelCreatePrimaryObject'), { + }, _.pick(this.state, 'ambiguousIdx', 'ambiguousType', 'ambiguousSelected', 'currKey', 'creatingIdx'), _.pick(this, 'buildAmbiguousEnumEntry', 'handleTypeSelection', 'submitAmbiguousType', 'cancelCreateNewObject', 'cancelCreatePrimaryObject'), { schemas: schemas })), /*#__PURE__*/React.createElement(AliasSelectModal, _extends({ show: !showAmbiguousModal && creatingIdx !== null && creatingType !== null @@ -1937,7 +1936,7 @@ var WarningBanner = /*#__PURE__*/React.memo(function (props) { }, "Please note: your work will be lost if you navigate away from, refresh or close this page while submitting. The submission process is under active development and features may change."), /*#__PURE__*/React.createElement("div", { className: "col-md-auto" }, /*#__PURE__*/React.createElement("div", { - className: "action-buttons-container text-right" + className: "action-buttons-container text-end" }, children)))); }); var DetailTitleBanner = /*#__PURE__*/function (_React$PureComponent2) { @@ -2150,7 +2149,8 @@ var TypeSelectModal = /*#__PURE__*/function (_React$Component) { ambiguousSelected = _this$props10.ambiguousSelected, buildAmbiguousEnumEntry = _this$props10.buildAmbiguousEnumEntry, submitAmbiguousType = _this$props10.submitAmbiguousType, - schemas = _this$props10.schemas; + schemas = _this$props10.schemas, + handleTypeSelection = _this$props10.handleTypeSelection; if (!show) return null; var itemTypeHierarchy = schemaTransforms.schemasToItemTypeHierarchy(schemas); var specificItemTypeOptions = null; @@ -2177,7 +2177,8 @@ var TypeSelectModal = /*#__PURE__*/function (_React$Component) { className: "input-wrapper mb-15" }, /*#__PURE__*/React.createElement(DropdownButton, { id: "dropdown-type-select", - title: ambiguousSelected || "No value" + title: ambiguousSelected || "No value", + onSelect: handleTypeSelection }, specificItemTypeOptions.map(buildAmbiguousEnumEntry))), ambiguousDescrip ? /*#__PURE__*/React.createElement("div", { className: "mb-15 mt-15" }, /*#__PURE__*/React.createElement("h5", { @@ -2236,7 +2237,7 @@ var AliasSelectModal = /*#__PURE__*/function (_TypeSelectModal) { 'fontSize': '1.2em' } }, creatingAliasMessage) : null, /*#__PURE__*/React.createElement("div", { - className: "text-right" + className: "text-end" }, /*#__PURE__*/React.createElement("button", { type: "button", className: "btn btn-primary", diff --git a/es/components/forms/components/Checkbox.js b/es/components/forms/components/Checkbox.js index da6e6d4e..dc10e152 100644 --- a/es/components/forms/components/Checkbox.js +++ b/es/components/forms/components/Checkbox.js @@ -13,7 +13,7 @@ export var Checkbox = /*#__PURE__*/React.memo(function (props) { labelClassName = _props$labelClassName === void 0 ? "mb-0" : _props$labelClassName, title = props.title, _props$inputClassName = props.inputClassName, - inputClassName = _props$inputClassName === void 0 ? "mr-08 align-middle" : _props$inputClassName, + inputClassName = _props$inputClassName === void 0 ? "me-08 align-middle" : _props$inputClassName, _props$indeterminate = props.indeterminate, indeterminate = _props$indeterminate === void 0 ? false : _props$indeterminate, passProps = _objectWithoutProperties(props, _excluded); diff --git a/es/components/forms/components/DragAndDropUpload.js b/es/components/forms/components/DragAndDropUpload.js index 83d6c0d5..58a679ab 100644 --- a/es/components/forms/components/DragAndDropUpload.js +++ b/es/components/forms/components/DragAndDropUpload.js @@ -669,7 +669,7 @@ function RequestVerification(props) { checked: isVerified, onChange: toggleVerification }), /*#__PURE__*/React.createElement("label", { - className: "d-inline ml-05", + className: "d-inline ms-05", htmlFor: "file-verification" }, requestVerificationMsg, " ")); } @@ -797,7 +797,7 @@ export var DragAndDropZone = /*#__PURE__*/function (_React$Component5) { alignSelf: "center" } }, files.length === 0 ? "Click or drag a file here to upload" : null), /*#__PURE__*/React.createElement("ul", { - className: "d-flex flex-wrap m-0 pt-1 pl-0 justify-content-center" + className: "d-flex flex-wrap m-0 pt-1 ps-0 justify-content-center" }, files.map(function (file) { return /*#__PURE__*/React.createElement("li", { key: file.download, diff --git a/es/components/forms/components/EditableField.js b/es/components/forms/components/EditableField.js index d7478f7d..3370fda5 100644 --- a/es/components/forms/components/EditableField.js +++ b/es/components/forms/components/EditableField.js @@ -630,7 +630,7 @@ export var EditableField = /*#__PURE__*/function (_React$Component) { return /*#__PURE__*/React.createElement("div", { className: "row editable-field-entry " + labelID }, /*#__PURE__*/React.createElement("div", { - className: "col col-md-3 text-left text-md-right" + className: "col col-md-3 text-start text-md-end" }, /*#__PURE__*/React.createElement("label", { htmlFor: labelID }, label)), this.renderSavedValue()); @@ -650,7 +650,7 @@ export var EditableField = /*#__PURE__*/function (_React$Component) { return /*#__PURE__*/React.createElement("div", { className: "row editable-field-entry " + labelID }, /*#__PURE__*/React.createElement("div", { - className: "col col-md-2 text-left text-md-right" + className: "col col-md-2 text-start text-md-end" }, /*#__PURE__*/React.createElement("label", { htmlFor: labelID }, label)), this.renderSavedValue()); @@ -751,7 +751,7 @@ export var EditableField = /*#__PURE__*/function (_React$Component) { return /*#__PURE__*/React.createElement("div", { className: outerBaseClass + labelID + ' row' }, /*#__PURE__*/React.createElement("div", { - className: "col col-md-3 text-left text-md-right" + className: "col col-md-3 text-start text-md-end" }, /*#__PURE__*/React.createElement("label", { htmlFor: labelID }, label)), /*#__PURE__*/React.createElement("div", { diff --git a/es/components/forms/components/LinkToDropdown.js b/es/components/forms/components/LinkToDropdown.js index 8f3e16a3..3282fa55 100644 --- a/es/components/forms/components/LinkToDropdown.js +++ b/es/components/forms/components/LinkToDropdown.js @@ -197,9 +197,9 @@ export var LinkToDropdown = /*#__PURE__*/function (_React$PureComponent) { }, display_title)), /*#__PURE__*/React.createElement("div", { className: "col-auto d-none d-md-inline-block" }, /*#__PURE__*/React.createElement("i", { - className: "icon icon-fw icon-link fas small mr-05" + className: "icon icon-fw icon-link fas small me-05" }), /*#__PURE__*/React.createElement("span", { - className: "text-monospace small" + className: "font-monospace small" }, itemID)))); }); } diff --git a/es/components/forms/components/SearchAsYouTypeAjax.js b/es/components/forms/components/SearchAsYouTypeAjax.js index 8fb206b3..1d697062 100644 --- a/es/components/forms/components/SearchAsYouTypeAjax.js +++ b/es/components/forms/components/SearchAsYouTypeAjax.js @@ -735,7 +735,7 @@ export var LinkedObj = /*#__PURE__*/function (_React$PureComponent2) { target: "_blank", rel: "noopener noreferrer" }, thisDisplay), /*#__PURE__*/React.createElement("i", { - className: "icon icon-fw icon-external-link-alt ml-05 fas" + className: "icon icon-fw icon-external-link-alt ms-05 fas" })); } else { return /*#__PURE__*/React.createElement("div", { diff --git a/es/components/forms/components/SearchSelectionMenu.js b/es/components/forms/components/SearchSelectionMenu.js index 0e07e7a8..584c7ecb 100644 --- a/es/components/forms/components/SearchSelectionMenu.js +++ b/es/components/forms/components/SearchSelectionMenu.js @@ -34,6 +34,7 @@ export var SearchSelectionMenu = /*#__PURE__*/function (_React$PureComponent) { _this2.dropdown = /*#__PURE__*/React.createRef(); _this2.onToggleOpen = _this2.onToggleOpen.bind(_this2); _this2.onKeyDown = _this2.onKeyDown.bind(_this2); + _this2.handleDropdownSelect = _this2.handleDropdownSelect.bind(_this2); return _this2; } _inherits(SearchSelectionMenu, _React$PureComponent); @@ -106,6 +107,17 @@ export var SearchSelectionMenu = /*#__PURE__*/function (_React$PureComponent) { } // otherwise handle as default } + }, { + key: "handleDropdownSelect", + value: function handleDropdownSelect(evt, option) { + var onDropdownSelect = this.props.onDropdownSelect; + evt.preventDefault(); + evt.stopPropagation(); + onDropdownSelect(option); + this.setState({ + dropOpen: false + }); + } }, { key: "render", value: function render() { @@ -119,7 +131,6 @@ export var SearchSelectionMenu = /*#__PURE__*/function (_React$PureComponent) { _this$props2$optionRe = _this$props2.optionRenderFunction, optionRenderFunction = _this$props2$optionRe === void 0 ? null : _this$props2$optionRe, titleRenderFunction = _this$props2.titleRenderFunction, - onDropdownSelect = _this$props2.onDropdownSelect, onTextInputChange = _this$props2.onTextInputChange, optionsHeader = _this$props2.optionsHeader, optionsFooter = _this$props2.optionsFooter, @@ -156,20 +167,19 @@ export var SearchSelectionMenu = /*#__PURE__*/function (_React$PureComponent) { flip: true, show: dropOpen }, "onTextInputChange", onTextInputChange), "toggleOpen", this.onToggleOpen), "ref", this.dropdown), "onKeyDown", this.onKeyDown), options.map(function (option, idx) { + var _this4 = this; var renderedOption = typeof optionRenderFunction === "function" ? optionRenderFunction(option) : option; return /*#__PURE__*/React.createElement(Dropdown.Item, { "data-index": idx, - onClick: function (evt) { - evt.preventDefault(); - evt.stopPropagation(); - onDropdownSelect(option); + onClick: function onClick(event) { + return _this4.handleDropdownSelect(event, option); }, key: idx, eventKey: idx, className: "text-truncate", tabIndex: "3" }, renderedOption); - }))); + }, this))); } }]); }(React.PureComponent); diff --git a/es/components/forms/components/submission-fields.js b/es/components/forms/components/submission-fields.js index 22b3983c..11baca23 100644 --- a/es/components/forms/components/submission-fields.js +++ b/es/components/forms/components/submission-fields.js @@ -48,7 +48,7 @@ export var BuildField = /*#__PURE__*/function (_React$PureComponent) { var _this2; _classCallCheck(this, BuildField); _this2 = _callSuper(this, BuildField, [props]); - _.bindAll(_this2, 'displayField', 'handleDropdownButtonToggle', 'handleAliasChange', 'handleEnumChange', 'buildSuggestedEnumEntry', 'submitSuggestedEnumVal', 'handleChange', 'handleAliasChange', 'deleteField', 'pushArrayValue', 'commonRowProps', 'labelTypeDescriptor', 'wrapWithLabel', 'wrapWithNoLabel'); + _.bindAll(_this2, 'displayField', 'handleDropdownButtonToggle', 'handleEnumChange', 'submitSuggestedEnumVal', 'handleChange', 'handleAliasChange', 'deleteField', 'pushArrayValue', 'commonRowProps', 'labelTypeDescriptor', 'wrapWithLabel', 'wrapWithNoLabel'); _this2.state = { 'dropdownOpen': false }; @@ -227,16 +227,6 @@ export var BuildField = /*#__PURE__*/function (_React$PureComponent) { // Fallback return /*#__PURE__*/React.createElement("div", null, "No field for this case yet."); } - }, { - key: "buildSuggestedEnumEntry", - value: function buildSuggestedEnumEntry(val) { - return /*#__PURE__*/React.createElement(DropdownItem, { - key: val, - title: val || '', - eventKey: val, - onSelect: this.submitSuggestedEnumVal - }, val || ''); - } }, { key: "submitSuggestedEnumVal", value: function submitSuggestedEnumVal(eventKey) { @@ -429,7 +419,7 @@ export var BuildField = /*#__PURE__*/function (_React$PureComponent) { }, /*#__PURE__*/React.createElement("h5", { className: "submission-field-title text-truncate" }, this.labelTypeDescriptor(), fieldTip ? /*#__PURE__*/React.createElement(InfoIcon, { - className: "mr-07", + className: "me-07", title: title, fieldType: fieldType, schema: schema @@ -1370,11 +1360,9 @@ export var AliasInputField = /*#__PURE__*/function (_React$Component4) { })); } else { // Only 1 submits_for lab or 0 submits_for -- fallback to staticy thingy - firstPartSelect = /*#__PURE__*/React.createElement("div", { - className: "input-group-prepend" - }, /*#__PURE__*/React.createElement("span", { + firstPartSelect = /*#__PURE__*/React.createElement("span", { className: "input-group-text" - }, currFirstPartValue)); + }, currFirstPartValue); } var outerClassName = "mb-0 alias-input-field form-group has-feedback" + (errorMessage ? " is-invalid has-error" : isValid ? " is-valid" : ""); return /*#__PURE__*/React.createElement("div", { @@ -1382,7 +1370,7 @@ export var AliasInputField = /*#__PURE__*/function (_React$Component4) { }, /*#__PURE__*/React.createElement("div", { className: "input-group" }, firstPartSelect, /*#__PURE__*/React.createElement("div", { - className: "input-group-prepend input-group-append input-group-addon colon-separator" + className: "colon-separator" }, /*#__PURE__*/React.createElement("span", { className: "input-group-text" }, ":")), /*#__PURE__*/React.createElement("input", { @@ -1395,7 +1383,7 @@ export var AliasInputField = /*#__PURE__*/function (_React$Component4) { onChange: this.onAliasSecondPartChange, className: "form-control" + (errorMessage ? " is-invalid" : isValid ? " is-valid" : "") })), showErrorMsg && errorMessage ? /*#__PURE__*/React.createElement("div", { - className: "invalid-feedback d-block text-right" + className: "invalid-feedback d-block text-end" }, errorMessage) : null); } }], [{ diff --git a/es/components/static-pages/StaticPageBase.js b/es/components/static-pages/StaticPageBase.js index 8fa6d285..929b2ff0 100644 --- a/es/components/static-pages/StaticPageBase.js +++ b/es/components/static-pages/StaticPageBase.js @@ -316,5 +316,5 @@ _defineProperty(StaticPageBase, "propTypes", { 'entryRenderFxn': PropTypes.func, 'contentParseFxn': PropTypes.func.isRequired, 'href': PropTypes.string, - 'CustomWrapper': PropTypes.element + 'CustomWrapper': PropTypes.elementType }); \ No newline at end of file diff --git a/es/components/static-pages/TableOfContents.js b/es/components/static-pages/TableOfContents.js index ce4ccbca..f88c0148 100644 --- a/es/components/static-pages/TableOfContents.js +++ b/es/components/static-pages/TableOfContents.js @@ -514,13 +514,12 @@ export var TableOfContents = /*#__PURE__*/function (_React$Component3) { key: "parent-link", className: "col col-xs-" + (windowInnerWidth && windowInnerWidth >= 1600 ? '9' : '12') }, /*#__PURE__*/React.createElement("a", { - className: "text-500", href: context.parent['@id'] }, context.parent['display_title']))); if (windowInnerWidth && windowInnerWidth >= 1600) { cols.push( /*#__PURE__*/React.createElement("div", { key: "expand-btn", - className: "col col-xs-3 text-right expand-button-container" + className: "col col-xs-3 text-end expand-button-container" }, /*#__PURE__*/React.createElement("button", { type: "button", className: "btn btn-xs btn-outline-dark", @@ -558,7 +557,7 @@ export var TableOfContents = /*#__PURE__*/function (_React$Component3) { propNavigate = _this$props5.navigate, defaultExpanded = _this$props5.defaultExpanded, _this$props5$fixedPos = _this$props5.fixedPositionBreakpoint, - fixedPositionBreakpoint = _this$props5$fixedPos === void 0 ? 1200 : _this$props5$fixedPos; + fixedPositionBreakpoint = _this$props5$fixedPos === void 0 ? 1400 : _this$props5$fixedPos; var _this$state = this.state, mounted = _this$state.mounted, scrollTop = _this$state.scrollTop, @@ -836,7 +835,7 @@ export var NextPreviousPageSection = /*#__PURE__*/React.memo(function (props) { }, /*#__PURE__*/React.createElement("div", { className: "row" }, previous ? /*#__PURE__*/React.createElement("div", { - className: "previous-section text-right col-" + colSize + className: "previous-section text-end col-" + colSize }, /*#__PURE__*/React.createElement("h6", { className: "text-400 mb-02 mt-12" }, /*#__PURE__*/React.createElement("i", { @@ -844,7 +843,8 @@ export var NextPreviousPageSection = /*#__PURE__*/React.memo(function (props) { }), " ", previousTitle), /*#__PURE__*/React.createElement("h6", { className: "text-500 mt-0" }, /*#__PURE__*/React.createElement("a", { - href: previous['@id'] || '/' + (previous.name || previous.identifier) + href: previous['@id'] || '/' + (previous.name || previous.identifier), + className: "link-underline-hover" }, previous.display_title))) : null, next ? /*#__PURE__*/React.createElement("div", { className: "next-section col-" + colSize }, /*#__PURE__*/React.createElement("h6", { @@ -854,7 +854,8 @@ export var NextPreviousPageSection = /*#__PURE__*/React.memo(function (props) { })), /*#__PURE__*/React.createElement("h6", { className: "text-500 mt-0" }, /*#__PURE__*/React.createElement("a", { - href: next['@id'] || '/' + (next.name || previous.identifier) + href: next['@id'] || '/' + (next.name || previous.identifier), + className: "link-underline-hover" }, next.display_title))) : null)); }); diff --git a/es/components/ui/Alerts.js b/es/components/ui/Alerts.js index 66e2ecd2..83b4fa48 100644 --- a/es/components/ui/Alerts.js +++ b/es/components/ui/Alerts.js @@ -353,12 +353,10 @@ var AlertItem = /*#__PURE__*/function (_React$PureComponent) { className: "alert alert-dismissable alert-" + (bsStyle || 'danger') + (noCloseButton === true ? ' no-close-button' : '') }, noCloseButton !== true ? /*#__PURE__*/React.createElement("button", { type: "button", - className: "close", + className: "btn-close float-end", onClick: this.dismiss }, /*#__PURE__*/React.createElement("span", { - "aria-hidden": "true" - }, "\xD7"), /*#__PURE__*/React.createElement("span", { - className: "sr-only" + className: "visually-hidden" }, "Close alert")) : null, /*#__PURE__*/React.createElement("h4", { className: "alert-heading mt-0" + (hasMessage ? " mb-05" : " mb-0") }, title), hasMessage ? /*#__PURE__*/React.createElement("div", { diff --git a/es/components/ui/FileDownloadButton.js b/es/components/ui/FileDownloadButton.js index 9ab24b83..65ef733c 100644 --- a/es/components/ui/FileDownloadButton.js +++ b/es/components/ui/FileDownloadButton.js @@ -20,7 +20,7 @@ import { event as trackEvent } from './../util/analytics'; export function FileDownloadButton(props) { var href = props.href, _props$className = props.className, - className = _props$className === void 0 ? "btn-block btn-primary" : _props$className, + className = _props$className === void 0 ? "w-100 btn-primary" : _props$className, _props$disabled = props.disabled, disabled = _props$disabled === void 0 ? false : _props$disabled, _props$title = props.title, @@ -41,8 +41,7 @@ export function FileDownloadButton(props) { className: "icon icon-fw icon-cloud-download-alt fas" }), title ? /*#__PURE__*/React.createElement("span", null, "\xA0 ", title) : null); return disabled && tooltip ? /*#__PURE__*/React.createElement("span", { - "data-tip": tooltip, - className: "w-100" + "data-tip": tooltip }, button) : button; } var canDownloadFile = memoize(function (file, validStatuses) { diff --git a/es/components/ui/ItemDetailList.js b/es/components/ui/ItemDetailList.js index bf8346cf..33dfdabb 100644 --- a/es/components/ui/ItemDetailList.js +++ b/es/components/ui/ItemDetailList.js @@ -222,7 +222,8 @@ var SubItemTable = /*#__PURE__*/function (_React$Component) { return /*#__PURE__*/React.createElement("span", { key: i }, /*#__PURE__*/React.createElement("a", { - href: itemUtil.atId(link) + href: itemUtil.atId(link), + className: "link-underline-hover" }, link.display_title)); }); return { @@ -243,7 +244,7 @@ var SubItemTable = /*#__PURE__*/function (_React$Component) { style: { whiteSpace: "nowrap" }, - className: "text-left child-list-row", + className: "text-start child-list-row", key: colKey + '--row-' + i }, /*#__PURE__*/React.createElement("div", { className: "d-inline-block child-list-row-number" @@ -259,7 +260,8 @@ var SubItemTable = /*#__PURE__*/function (_React$Component) { } if (!renderedSubVal) { renderedSubVal = isAnItem(embeddedRow[k]) ? /*#__PURE__*/React.createElement("a", { - href: itemUtil.atId(embeddedRow[k]) + href: itemUtil.atId(embeddedRow[k]), + className: "link-underline-hover" }, itemUtil.getTitleStringFromContext(embeddedRow[k])) : termTransformFxn(k, embeddedRow[k]); } return /*#__PURE__*/React.createElement("div", { @@ -279,7 +281,8 @@ var SubItemTable = /*#__PURE__*/function (_React$Component) { if (isAnItem(value)) { return { 'value': /*#__PURE__*/React.createElement("a", { - href: itemUtil.atId(value) + href: itemUtil.atId(value), + className: "link-underline-hover" }, value.display_title), 'key': colKey }; @@ -374,19 +377,22 @@ var SubItemTable = /*#__PURE__*/function (_React$Component) { } if (colVal.key === '@id' && val.slice(0, 1) === '/') { val = /*#__PURE__*/React.createElement("a", { - href: val + href: val, + className: "link-underline-hover" }, val); } if (val && _typeof(val) === 'object' && ! /*#__PURE__*/React.isValidElement(val) && !Array.isArray(val)) { if (isAnItem(val)) { val = /*#__PURE__*/React.createElement("a", { - href: itemUtil.atId(val) + href: itemUtil.atId(val), + className: "link-underline-hover" }, val.display_title); } else if (isAnAttachment(val) && (val.href.charAt(0) === '/' || rowAtIdValue)) { var attachmentTitle = SubItemTable.getAttachmentTitle(val.href, 'attached_file'); var attachmentHref = val.href.charAt(0) === '/' ? val.href : rowAtIdValue + val.href; val = /*#__PURE__*/React.createElement("a", { href: attachmentHref, + className: "link-underline-hover", target: "_blank", rel: "noreferrer noopener" }, attachmentTitle); @@ -400,13 +406,15 @@ var SubItemTable = /*#__PURE__*/function (_React$Component) { var item = null; if (isAnItem(v)) { item = /*#__PURE__*/React.createElement("a", { - href: itemUtil.atId(v) + href: itemUtil.atId(v), + className: "link-underline-hover" }, v.display_title); } else if (isAnAttachment(v) && (val.href.charAt(0) === '/' || rowAtIdValue)) { var _attachmentTitle = SubItemTable.getAttachmentTitle(v.href, 'attached_file'); var _attachmentHref = val.href.charAt(0) === '/' ? val.href : rowAtIdValue + val.href; val = /*#__PURE__*/React.createElement("a", { href: _attachmentHref, + className: "link-underline-hover", target: "_blank", rel: "noreferrer noopener" }, _attachmentTitle); @@ -419,7 +427,7 @@ var SubItemTable = /*#__PURE__*/function (_React$Component) { }); if (renderAsList) { val = /*#__PURE__*/React.createElement("ol", null, val); - className += ' text-left'; + className += ' text-start'; } } return /*#__PURE__*/React.createElement("td", { @@ -1005,6 +1013,7 @@ export var Detail = /*#__PURE__*/function (_React$PureComponent2) { return /*#__PURE__*/React.createElement("a", { key: item, href: item, + className: "link-underline-hover", target: popLink ? "_blank" : null, rel: "noreferrer noopener" }, item); @@ -1015,6 +1024,7 @@ export var Detail = /*#__PURE__*/function (_React$PureComponent2) { return /*#__PURE__*/React.createElement("a", { key: item, href: item, + className: "link-underline-hover", target: "_blank", download: true, rel: "noreferrer noopener" @@ -1023,11 +1033,13 @@ export var Detail = /*#__PURE__*/function (_React$PureComponent2) { if (popLink) return /*#__PURE__*/React.createElement("a", { key: item, href: item, + className: "link-underline-hover", target: "_blank", rel: "noreferrer noopener" }, item);else return /*#__PURE__*/React.createElement("a", { key: item, - href: item + href: item, + className: "link-underline-hover" }, item); } else { // TODO: more comprehensive regexp url validator needed, look at: https://stackoverflow.com/a/5717133 @@ -1038,6 +1050,7 @@ export var Detail = /*#__PURE__*/function (_React$PureComponent2) { return /*#__PURE__*/React.createElement("a", { key: item, href: item, + className: "link-underline-hover", target: "_blank", rel: "noreferrer noopener" }, item); @@ -1124,7 +1137,8 @@ _defineProperty(Detail, "defaultProps", { 'subscriptions.url': { 'render': function render(value) { return /*#__PURE__*/React.createElement("a", { - href: '/search/' + value + href: '/search/' + value, + className: "link-underline-hover" }, "View Results"); }, 'title': "Link", @@ -1152,7 +1166,8 @@ _defineProperty(Detail, "defaultProps", { 'render': function render(value) { if (typeof value === 'string' && value.indexOf('@') > -1) { return /*#__PURE__*/React.createElement("a", { - href: 'mailto:' + value + href: 'mailto:' + value, + className: "link-underline-hover" }, value); } return value; @@ -1167,25 +1182,29 @@ var ToggleJSONButton = /*#__PURE__*/React.memo(function (_ref3) { var onClick = _ref3.onClick, showingJSON = _ref3.showingJSON, className = _ref3.className; - return /*#__PURE__*/React.createElement("button", { + return /*#__PURE__*/React.createElement("div", { + className: "d-grid gap-1" + }, /*#__PURE__*/React.createElement("button", { type: "button", - className: "btn btn-block btn-outline-secondary", + className: "btn btn-outline-secondary", onClick: onClick }, showingJSON ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("i", { className: "icon fas icon-fw icon-list" }), " View as List") : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("i", { className: "icon fas icon-fw icon-code" - }), " View as JSON")); + }), " View as JSON"))); }); var SeeMoreRowsButton = /*#__PURE__*/React.memo(function (_ref4) { var onClick = _ref4.onClick, collapsed = _ref4.collapsed, className = _ref4.className; - return /*#__PURE__*/React.createElement("button", { + return /*#__PURE__*/React.createElement("div", { + className: "d-grid gap-1" + }, /*#__PURE__*/React.createElement("button", { type: "button", - className: "btn btn-block btn-outline-secondary", + className: "btn btn-outline-secondary", onClick: onClick - }, collapsed ? "See advanced information" : "Hide"); + }, collapsed ? "See advanced information" : "Hide")); }); /** diff --git a/es/components/util/layout.js b/es/components/util/layout.js index 8e0f2347..9af96736 100644 --- a/es/components/util/layout.js +++ b/es/components/util/layout.js @@ -77,6 +77,8 @@ export var shortenString = memoize(function (originalText) { * in src/encoded/static/scss/bootstrap/_variables.scss. * * 2019-07-10 -- updated to Bootstrap v4 breakpoints, added 'xl'. + * + * 2024-09-06 -- updated to Bootstrap v5 breakpoints, added 'xxl'. * * @deprecated * Will be replaced by portal-specific versions soon/eventually. @@ -90,8 +92,9 @@ export var responsiveGridState = memoize(function () { if (typeof width !== 'number') { // Assumed to be null or undefined which should mean we are // server-side or not yet mounted. - return 'xl'; + return 'xxl'; } + if (width >= 1400) return 'xxl'; if (width >= 1200) return 'xl'; if (width >= 992) return 'lg'; if (width >= 768) return 'md'; @@ -118,6 +121,8 @@ export function gridContainerWidth() { var windowWidth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; // Subtract 20 for padding/margins. switch (responsiveGridState(windowWidth)) { + case 'xxl': + return 1300; case 'xl': return 1120; case 'lg': diff --git a/es/components/util/object.js b/es/components/util/object.js index 79c64001..c2f538ff 100644 --- a/es/components/util/object.js +++ b/es/components/util/object.js @@ -75,6 +75,7 @@ export function linkFromItem(item) { if (typeof propsToInclude.key === 'undefined') { propsToInclude.key = href; } + propsToInclude.className = (propsToInclude.className || '') + " link-underline-hover"; if (addDescriptionTip && typeof propsToInclude['data-tip'] === 'undefined' && item.description) { propsToInclude['data-tip'] = item.description; propsToInclude.className = (propsToInclude.className || '') + ' d-inline-block'; diff --git a/package-lock.json b/package-lock.json index 3f68803a..1350b47b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@hms-dbmi-bgm/shared-portal-components", - "version": "0.1.90", + "version": "0.1.91", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@hms-dbmi-bgm/shared-portal-components", - "version": "0.1.90", + "version": "0.1.91", "license": "MIT", "dependencies": { "@4dn-dcic/react-infinite": "github:4dn-dcic/react-infinite#1.1.9", @@ -34,7 +34,7 @@ "@babel/preset-env": "^7.19.4", "@babel/preset-react": "^7.18.6", "@babel/register": "^7.18.9", - "auth0-lock": "^11.33.0", + "auth0-lock": "^12.5.1", "babel-jest": "^29.0.0", "babel-loader": "^8.1.0", "babel-plugin-minify-dead-code-elimination": "^0.5.1", @@ -52,7 +52,7 @@ "plugin-error": "^1.0.1", "query-string": ">=4.3.0", "react": "^17.0.1", - "react-bootstrap": "1.6.4", + "react-bootstrap": "2.10.4", "react-dom": "^17.0.1", "react-tooltip": ">=3.11.6", "react-transition-group": ">=4.4.1", @@ -76,7 +76,7 @@ "memoize-one": "^5.1.1", "query-string": ">=4.3.0", "react": ">=16.14.0", - "react-bootstrap": "1.6.4", + "react-bootstrap": "2.10.4", "react-dom": ">=16.14.0", "react-tooltip": ">=3.11.6", "react-transition-group": ">=4.4.2", @@ -1843,11 +1843,11 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.4.tgz", + "integrity": "sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==", "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" @@ -3749,36 +3749,72 @@ "dev": true }, "node_modules/@popperjs/core": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz", - "integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==", + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" } }, - "node_modules/@restart/context": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", - "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==", + "node_modules/@react-aria/ssr": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.5.tgz", + "integrity": "sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ==", "dev": true, + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, "peerDependencies": { - "react": ">=16.3.2" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@restart/hooks": { - "version": "0.3.27", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.27.tgz", - "integrity": "sha512-s984xV/EapUIfkjlf8wz9weP2O9TNKR96C68FfMEy2bE69+H4cNv3RD4Mf97lW7Htt7PjZrYTjSC8f3SB9VCXw==", + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz", + "integrity": "sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==", "dev": true, "dependencies": { - "dequal": "^2.0.2" + "dequal": "^2.0.3" }, "peerDependencies": { "react": ">=16.8.0" } }, + "node_modules/@restart/ui": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.8.0.tgz", + "integrity": "sha512-xJEOXUOTmT4FngTmhdjKFRrVVF0hwCLNPdatLCHkyS4dkiSK12cEu1Y0fjxktjJrdst9jJIc5J6ihMJCoWEN/g==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0", + "@popperjs/core": "^2.11.6", + "@react-aria/ssr": "^3.5.0", + "@restart/hooks": "^0.4.9", + "@types/warning": "^3.0.0", + "dequal": "^2.0.3", + "dom-helpers": "^5.2.0", + "uncontrollable": "^8.0.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + } + }, + "node_modules/@restart/ui/node_modules/uncontrollable": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-8.0.4.tgz", + "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==", + "dev": true, + "peerDependencies": { + "react": ">=16.14.0" + } + }, "node_modules/@sentry-internal/tracing": { "version": "7.47.0", "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.47.0.tgz", @@ -3908,6 +3944,21 @@ "@sinonjs/commons": "^1.7.0" } }, + "node_modules/@swc/helpers": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.12.tgz", + "integrity": "sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@swc/helpers/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "dev": true + }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -3966,12 +4017,6 @@ "@types/node": "*" } }, - "node_modules/@types/invariant": { - "version": "2.2.35", - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", - "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==", - "dev": true - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -4035,9 +4080,9 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.11.tgz", + "integrity": "sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==", "dev": true, "dependencies": { "@types/react": "*" @@ -4055,9 +4100,9 @@ "dev": true }, "node_modules/@types/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.3.tgz", + "integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==", "dev": true }, "node_modules/@types/yargs": { @@ -4819,13 +4864,14 @@ } }, "node_modules/auth0-js": { - "version": "9.20.2", - "resolved": "https://registry.npmjs.org/auth0-js/-/auth0-js-9.20.2.tgz", - "integrity": "sha512-a6tFTYYK2+DQA3+A/mTKAWt/XOaMeiGWu644SnyAL5P84K79G53QOwtn/ok3DbM9MRfRp+2jYE6U4czTLJnj/g==", + "version": "9.27.0", + "resolved": "https://registry.npmjs.org/auth0-js/-/auth0-js-9.27.0.tgz", + "integrity": "sha512-v0qcPulkG/ezsCarJO9tDi3KeYAaEhVz84goq4x2dyk7NWs9JeGnvaT3eSehN11fRkoFXaQByMntEYVD9BqxPg==", "dev": true, + "license": "MIT", "dependencies": { "base64-js": "^1.5.1", - "idtoken-verifier": "^2.2.2", + "idtoken-verifier": "^2.2.4", "js-cookie": "^2.2.0", "minimist": "^1.2.5", "qs": "^6.10.1", @@ -4841,24 +4887,24 @@ "dev": true }, "node_modules/auth0-lock": { - "version": "11.35.1", - "resolved": "https://registry.npmjs.org/auth0-lock/-/auth0-lock-11.35.1.tgz", - "integrity": "sha512-OJZ83X2Ab6TqsYgwWEMjLM+M/kY0y3KlViDX1lVWZqQJzt3IitWpJ9P8mT+tsSSeInB69H/iDxmbgOaDKTs0ew==", + "version": "12.5.1", + "resolved": "https://registry.npmjs.org/auth0-lock/-/auth0-lock-12.5.1.tgz", + "integrity": "sha512-2MnhEm+C7ecddmgMz8kM5aMCAyP31EBQoU7C6yGWQzGEeamIWCwOoee3JjkETie+V+5rlESQwjbJAsFbDmDgWA==", "dev": true, + "license": "MIT", "dependencies": { - "auth0-js": "^9.20.0", + "auth0-js": "^9.26.0", "auth0-password-policies": "^1.0.2", "blueimp-md5": "^2.19.0", "classnames": "^2.3.2", "dompurify": "^2.3.12", "immutable": "^3.7.6", "jsonp": "^0.2.1", - "node-fetch": "^2.6.7", "password-sheriff": "^1.1.1", - "prop-types": "^15.8.1", - "qs": "^6.10.4", - "react": "^15.6.2", - "react-dom": "^15.6.2", + "prop-types": "^15.8.0", + "qs": "^6.10.3", + "react": "^18.2.0", + "react-dom": "^18.2.0", "react-transition-group": "^2.2.1", "trim": "^1.0.1", "url-join": "^1.1.0", @@ -4870,48 +4916,36 @@ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2" } }, - "node_modules/auth0-lock/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/auth0-lock/node_modules/react": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/react/-/react-15.7.0.tgz", - "integrity": "sha512-5/MMRYmpmM0sMTHGLossnJCrmXQIiJilD6y3YN3TzAwGFj6zdnMtFv6xmi65PHKRV+pehIHpT7oy67Sr6s9AHA==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dev": true, + "license": "MIT", "dependencies": { - "create-react-class": "^15.6.0", - "fbjs": "^0.8.9", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.0", - "prop-types": "^15.5.10" + "loose-envify": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/auth0-lock/node_modules/react-dom": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.7.0.tgz", - "integrity": "sha512-mpjXqC2t1FuYsILOLCj0kg6pbg460byZkVA/80VtDmKU/pYmoTdHOtaMcTRIDiyXLz4sIur0cQ04nOC6iGndJg==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dev": true, + "license": "MIT", "dependencies": { - "fbjs": "^0.8.9", "loose-envify": "^1.1.0", - "object-assign": "^4.1.0", - "prop-types": "^15.5.10" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^15.7.0" + "react": "^18.3.1" } }, "node_modules/auth0-lock/node_modules/react-transition-group": { @@ -4930,6 +4964,16 @@ "react-dom": ">=15.0.0" } }, + "node_modules/auth0-lock/node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, "node_modules/auth0-password-policies": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/auth0-password-policies/-/auth0-password-policies-1.0.2.tgz", @@ -6281,13 +6325,6 @@ "node": ">=0.10.0" } }, - "node_modules/core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true - }, "node_modules/core-js-compat": { "version": "3.30.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.0.tgz", @@ -6350,25 +6387,6 @@ "sha.js": "^2.4.8" } }, - "node_modules/create-react-class": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.7.0.tgz", - "integrity": "sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==", - "dev": true, - "dependencies": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "node_modules/create-react-class/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -7303,15 +7321,6 @@ "node": ">= 4" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -7498,7 +7507,8 @@ "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es6-symbol": { "version": "3.1.3", @@ -8539,30 +8549,6 @@ "bser": "2.1.1" } }, - "node_modules/fbjs": { - "version": "0.8.18", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.18.tgz", - "integrity": "sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==", - "dev": true, - "dependencies": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" - } - }, - "node_modules/fbjs/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", @@ -9965,13 +9951,14 @@ } }, "node_modules/idtoken-verifier": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/idtoken-verifier/-/idtoken-verifier-2.2.3.tgz", - "integrity": "sha512-hhpzB+MRgEvbwqzRLFdVbG55lKdXQVfeYEjAA2qu0UC72MSLeR0nX7P7rY5Dycz1aISHPOwq80hIPFoJ/+SItA==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/idtoken-verifier/-/idtoken-verifier-2.2.4.tgz", + "integrity": "sha512-5t7O8cNHpJBB8FnwLD0qFZqy/+qGICObQKUl0njD6vXKHhpZPLEe8LU7qv/GBWB3Qv5e/wAIFHYVi4SoQwdOxQ==", "dev": true, + "license": "MIT", "dependencies": { "base64-js": "^1.5.1", - "crypto-js": "^4.1.1", + "crypto-js": "^4.2.0", "es6-promise": "^4.2.8", "jsbn": "^1.1.0", "unfetch": "^4.2.0", @@ -9982,7 +9969,8 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ieee754": { "version": "1.1.13", @@ -10661,35 +10649,6 @@ "node": ">=0.10.0" } }, - "node_modules/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", - "dev": true, - "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch/node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dev": true, - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -14325,7 +14284,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsdom": { "version": "19.0.0", @@ -15424,48 +15384,6 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "dev": true }, - "node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/node-gyp-build": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", @@ -16438,15 +16356,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "dependencies": { - "asap": "~2.0.3" - } - }, "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", @@ -16675,32 +16584,33 @@ } }, "node_modules/react-bootstrap": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.4.tgz", - "integrity": "sha512-z3BhBD4bEZuLP8VrYqAD7OT7axdcSkkyvWBWnS2U/4MhyabUihrUyucPWkan7aMI1XIHbmH4LCpEtzWGfx/yfA==", + "version": "2.10.4", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.10.4.tgz", + "integrity": "sha512-W3398nBM2CBfmGP2evneEO3ZZwEMPtHs72q++eNw60uDGDAdiGn0f9yNys91eo7/y8CTF5Ke1C0QO8JFVPU40Q==", "dev": true, "dependencies": { - "@babel/runtime": "^7.14.0", - "@restart/context": "^2.1.4", - "@restart/hooks": "^0.3.26", - "@types/invariant": "^2.2.33", - "@types/prop-types": "^15.7.3", - "@types/react": ">=16.14.8", - "@types/react-transition-group": "^4.4.1", - "@types/warning": "^3.0.0", - "classnames": "^2.3.1", + "@babel/runtime": "^7.24.7", + "@restart/hooks": "^0.4.9", + "@restart/ui": "^1.6.9", + "@types/react-transition-group": "^4.4.6", + "classnames": "^2.3.2", "dom-helpers": "^5.2.1", "invariant": "^2.2.4", - "prop-types": "^15.7.2", + "prop-types": "^15.8.1", "prop-types-extra": "^1.1.0", - "react-overlays": "^5.1.1", - "react-transition-group": "^4.4.1", + "react-transition-group": "^4.4.5", "uncontrollable": "^7.2.1", "warning": "^4.0.3" }, "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "@types/react": ">=16.14.8", + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/react-dom": { @@ -16761,38 +16671,6 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", "dev": true }, - "node_modules/react-overlays": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", - "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.8", - "@popperjs/core": "^2.11.6", - "@restart/hooks": "^0.4.7", - "@types/warning": "^3.0.0", - "dom-helpers": "^5.2.0", - "prop-types": "^15.7.2", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" - }, - "peerDependencies": { - "react": ">=16.3.0", - "react-dom": ">=16.3.0" - } - }, - "node_modules/react-overlays/node_modules/@restart/hooks": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.9.tgz", - "integrity": "sha512-3BekqcwB6Umeya+16XPooARn4qEPW6vNvwYnlofIYe6h9qG1/VeD7UvShCWx11eFz5ELYmwIEshz+MkPX3wjcQ==", - "dev": true, - "dependencies": { - "dequal": "^2.0.2" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, "node_modules/react-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.2.tgz", @@ -16952,9 +16830,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regenerator-transform": { "version": "0.15.1", @@ -19008,25 +18886,6 @@ "is-typedarray": "^1.0.0" } }, - "node_modules/ua-parser-js": { - "version": "0.7.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", - "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "engines": { - "node": "*" - } - }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -19112,7 +18971,8 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -20486,12 +20346,6 @@ "node": ">=12" } }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", - "dev": true - }, "node_modules/whatwg-mimetype": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", @@ -21985,11 +21839,11 @@ "dev": true }, "@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.4.tgz", + "integrity": "sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==", "requires": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" } }, "@babel/template": { @@ -23475,25 +23329,53 @@ "dev": true }, "@popperjs/core": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz", - "integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==", + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "dev": true }, - "@restart/context": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", - "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==", + "@react-aria/ssr": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.5.tgz", + "integrity": "sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ==", "dev": true, - "requires": {} + "requires": { + "@swc/helpers": "^0.5.0" + } }, "@restart/hooks": { - "version": "0.3.27", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.27.tgz", - "integrity": "sha512-s984xV/EapUIfkjlf8wz9weP2O9TNKR96C68FfMEy2bE69+H4cNv3RD4Mf97lW7Htt7PjZrYTjSC8f3SB9VCXw==", + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz", + "integrity": "sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==", + "dev": true, + "requires": { + "dequal": "^2.0.3" + } + }, + "@restart/ui": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.8.0.tgz", + "integrity": "sha512-xJEOXUOTmT4FngTmhdjKFRrVVF0hwCLNPdatLCHkyS4dkiSK12cEu1Y0fjxktjJrdst9jJIc5J6ihMJCoWEN/g==", "dev": true, "requires": { - "dequal": "^2.0.2" + "@babel/runtime": "^7.21.0", + "@popperjs/core": "^2.11.6", + "@react-aria/ssr": "^3.5.0", + "@restart/hooks": "^0.4.9", + "@types/warning": "^3.0.0", + "dequal": "^2.0.3", + "dom-helpers": "^5.2.0", + "uncontrollable": "^8.0.1", + "warning": "^4.0.3" + }, + "dependencies": { + "uncontrollable": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-8.0.4.tgz", + "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==", + "dev": true, + "requires": {} + } } }, "@sentry-internal/tracing": { @@ -23598,6 +23480,23 @@ "@sinonjs/commons": "^1.7.0" } }, + "@swc/helpers": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.12.tgz", + "integrity": "sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "dev": true + } + } + }, "@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -23653,12 +23552,6 @@ "@types/node": "*" } }, - "@types/invariant": { - "version": "2.2.35", - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", - "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==", - "dev": true - }, "@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -23722,9 +23615,9 @@ } }, "@types/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.11.tgz", + "integrity": "sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==", "dev": true, "requires": { "@types/react": "*" @@ -23742,9 +23635,9 @@ "dev": true }, "@types/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.3.tgz", + "integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==", "dev": true }, "@types/yargs": { @@ -24379,13 +24272,13 @@ "dev": true }, "auth0-js": { - "version": "9.20.2", - "resolved": "https://registry.npmjs.org/auth0-js/-/auth0-js-9.20.2.tgz", - "integrity": "sha512-a6tFTYYK2+DQA3+A/mTKAWt/XOaMeiGWu644SnyAL5P84K79G53QOwtn/ok3DbM9MRfRp+2jYE6U4czTLJnj/g==", + "version": "9.27.0", + "resolved": "https://registry.npmjs.org/auth0-js/-/auth0-js-9.27.0.tgz", + "integrity": "sha512-v0qcPulkG/ezsCarJO9tDi3KeYAaEhVz84goq4x2dyk7NWs9JeGnvaT3eSehN11fRkoFXaQByMntEYVD9BqxPg==", "dev": true, "requires": { "base64-js": "^1.5.1", - "idtoken-verifier": "^2.2.2", + "idtoken-verifier": "^2.2.4", "js-cookie": "^2.2.0", "minimist": "^1.2.5", "qs": "^6.10.1", @@ -24403,24 +24296,23 @@ } }, "auth0-lock": { - "version": "11.35.1", - "resolved": "https://registry.npmjs.org/auth0-lock/-/auth0-lock-11.35.1.tgz", - "integrity": "sha512-OJZ83X2Ab6TqsYgwWEMjLM+M/kY0y3KlViDX1lVWZqQJzt3IitWpJ9P8mT+tsSSeInB69H/iDxmbgOaDKTs0ew==", + "version": "12.5.1", + "resolved": "https://registry.npmjs.org/auth0-lock/-/auth0-lock-12.5.1.tgz", + "integrity": "sha512-2MnhEm+C7ecddmgMz8kM5aMCAyP31EBQoU7C6yGWQzGEeamIWCwOoee3JjkETie+V+5rlESQwjbJAsFbDmDgWA==", "dev": true, "requires": { - "auth0-js": "^9.20.0", + "auth0-js": "^9.26.0", "auth0-password-policies": "^1.0.2", "blueimp-md5": "^2.19.0", "classnames": "^2.3.2", "dompurify": "^2.3.12", "immutable": "^3.7.6", "jsonp": "^0.2.1", - "node-fetch": "^2.6.7", "password-sheriff": "^1.1.1", - "prop-types": "^15.8.1", - "qs": "^6.10.4", - "react": "^15.6.2", - "react-dom": "^15.6.2", + "prop-types": "^15.8.0", + "qs": "^6.10.3", + "react": "^18.2.0", + "react-dom": "^18.2.0", "react-transition-group": "^2.2.1", "trim": "^1.0.1", "url-join": "^1.1.0", @@ -24436,35 +24328,23 @@ "@babel/runtime": "^7.1.2" } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, "react": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/react/-/react-15.7.0.tgz", - "integrity": "sha512-5/MMRYmpmM0sMTHGLossnJCrmXQIiJilD6y3YN3TzAwGFj6zdnMtFv6xmi65PHKRV+pehIHpT7oy67Sr6s9AHA==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dev": true, "requires": { - "create-react-class": "^15.6.0", - "fbjs": "^0.8.9", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.0", - "prop-types": "^15.5.10" + "loose-envify": "^1.1.0" } }, "react-dom": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.7.0.tgz", - "integrity": "sha512-mpjXqC2t1FuYsILOLCj0kg6pbg460byZkVA/80VtDmKU/pYmoTdHOtaMcTRIDiyXLz4sIur0cQ04nOC6iGndJg==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dev": true, "requires": { - "fbjs": "^0.8.9", "loose-envify": "^1.1.0", - "object-assign": "^4.1.0", - "prop-types": "^15.5.10" + "scheduler": "^0.23.2" } }, "react-transition-group": { @@ -24478,6 +24358,15 @@ "prop-types": "^15.6.2", "react-lifecycles-compat": "^3.0.4" } + }, + "scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0" + } } } }, @@ -25558,12 +25447,6 @@ } } }, - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA==", - "dev": true - }, "core-js-compat": { "version": "3.30.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.0.tgz", @@ -25624,24 +25507,6 @@ "sha.js": "^2.4.8" } }, - "create-react-class": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.7.0.tgz", - "integrity": "sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==", - "dev": true, - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - } - } - }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -26367,15 +26232,6 @@ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -27328,29 +27184,6 @@ "bser": "2.1.1" } }, - "fbjs": { - "version": "0.8.18", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.18.tgz", - "integrity": "sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==", - "dev": true, - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - } - } - }, "figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", @@ -28460,13 +28293,13 @@ } }, "idtoken-verifier": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/idtoken-verifier/-/idtoken-verifier-2.2.3.tgz", - "integrity": "sha512-hhpzB+MRgEvbwqzRLFdVbG55lKdXQVfeYEjAA2qu0UC72MSLeR0nX7P7rY5Dycz1aISHPOwq80hIPFoJ/+SItA==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/idtoken-verifier/-/idtoken-verifier-2.2.4.tgz", + "integrity": "sha512-5t7O8cNHpJBB8FnwLD0qFZqy/+qGICObQKUl0njD6vXKHhpZPLEe8LU7qv/GBWB3Qv5e/wAIFHYVi4SoQwdOxQ==", "dev": true, "requires": { "base64-js": "^1.5.1", - "crypto-js": "^4.1.1", + "crypto-js": "^4.2.0", "es6-promise": "^4.2.8", "jsbn": "^1.1.0", "unfetch": "^4.2.0", @@ -28970,34 +28803,6 @@ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", - "dev": true, - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - }, - "dependencies": { - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dev": true, - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - } - } - }, "istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -32717,39 +32522,6 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "dev": true }, - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, "node-gyp-build": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", @@ -33511,15 +33283,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "requires": { - "asap": "~2.0.3" - } - }, "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", @@ -33711,26 +33474,21 @@ } }, "react-bootstrap": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.4.tgz", - "integrity": "sha512-z3BhBD4bEZuLP8VrYqAD7OT7axdcSkkyvWBWnS2U/4MhyabUihrUyucPWkan7aMI1XIHbmH4LCpEtzWGfx/yfA==", + "version": "2.10.4", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.10.4.tgz", + "integrity": "sha512-W3398nBM2CBfmGP2evneEO3ZZwEMPtHs72q++eNw60uDGDAdiGn0f9yNys91eo7/y8CTF5Ke1C0QO8JFVPU40Q==", "dev": true, "requires": { - "@babel/runtime": "^7.14.0", - "@restart/context": "^2.1.4", - "@restart/hooks": "^0.3.26", - "@types/invariant": "^2.2.33", - "@types/prop-types": "^15.7.3", - "@types/react": ">=16.14.8", - "@types/react-transition-group": "^4.4.1", - "@types/warning": "^3.0.0", - "classnames": "^2.3.1", + "@babel/runtime": "^7.24.7", + "@restart/hooks": "^0.4.9", + "@restart/ui": "^1.6.9", + "@types/react-transition-group": "^4.4.6", + "classnames": "^2.3.2", "dom-helpers": "^5.2.1", "invariant": "^2.2.4", - "prop-types": "^15.7.2", + "prop-types": "^15.8.1", "prop-types-extra": "^1.1.0", - "react-overlays": "^5.1.1", - "react-transition-group": "^4.4.1", + "react-transition-group": "^4.4.5", "uncontrollable": "^7.2.1", "warning": "^4.0.3" } @@ -33781,33 +33539,6 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", "dev": true }, - "react-overlays": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", - "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.13.8", - "@popperjs/core": "^2.11.6", - "@restart/hooks": "^0.4.7", - "@types/warning": "^3.0.0", - "dom-helpers": "^5.2.0", - "prop-types": "^15.7.2", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" - }, - "dependencies": { - "@restart/hooks": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.9.tgz", - "integrity": "sha512-3BekqcwB6Umeya+16XPooARn4qEPW6vNvwYnlofIYe6h9qG1/VeD7UvShCWx11eFz5ELYmwIEshz+MkPX3wjcQ==", - "dev": true, - "requires": { - "dequal": "^2.0.2" - } - } - } - }, "react-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.2.tgz", @@ -33934,9 +33665,9 @@ } }, "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "regenerator-transform": { "version": "0.15.1", @@ -35563,12 +35294,6 @@ "is-typedarray": "^1.0.0" } }, - "ua-parser-js": { - "version": "0.7.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", - "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", - "dev": true - }, "unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -36740,12 +36465,6 @@ "iconv-lite": "0.6.3" } }, - "whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", - "dev": true - }, "whatwg-mimetype": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", diff --git a/package.json b/package.json index f173a5af..ff7d5753 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hms-dbmi-bgm/shared-portal-components", - "version": "0.1.90", + "version": "0.1.91", "description": "Shared components used for DBMI/BGM portal(s).", "repository": { "type": "git", @@ -42,7 +42,7 @@ "webpack": "^4.46.0", "webpack-bundle-analyzer": "^4.5.0", "webpack-deadcode-plugin": "^0.1.12", - "auth0-lock": "^11.33.0", + "auth0-lock": "^12.5.1", "d3": ">=5.9.0", "form-serialize": ">=0.6.0", "markdown-to-jsx": ">=6.9.3", @@ -51,7 +51,7 @@ "query-string": ">=4.3.0", "react": "^17.0.1", "react-dom": "^17.0.1", - "react-bootstrap": "1.6.4", + "react-bootstrap": "2.10.4", "react-tooltip": ">=3.11.6", "react-transition-group": ">=4.4.1", "underscore": ">=1.9.1", @@ -83,7 +83,7 @@ "query-string": ">=4.3.0", "react": ">=16.14.0", "react-dom": ">=16.14.0", - "react-bootstrap": "1.6.4", + "react-bootstrap": "2.10.4", "react-tooltip": ">=3.11.6", "react-transition-group": ">=4.4.2", "underscore": ">=1.9.1" diff --git a/scss/editable-fields.scss b/scss/editable-fields.scss index 3e81819c..e297091b 100644 --- a/scss/editable-fields.scss +++ b/scss/editable-fields.scss @@ -39,7 +39,7 @@ div.fieldset.editable-fields { // large text inputBorder .input-lg { - @include font-size(1.42rem, true); + @include font-size(1.42rem); font-weight: normal; height: 36px !important; line-height: 30px !important; @@ -48,7 +48,7 @@ div.fieldset.editable-fields { // medium text inputBorder .input-md { - @include font-size(1.21rem, true); + @include font-size(1.21rem); font-weight: normal; height: 28px !important; line-height: 22px !important; @@ -128,11 +128,11 @@ div.fieldset.editable-fields { } .cancel-button { - color : theme-color("danger"); + color : $danger; } .save-button { - color : theme-color("success"); + color : $success; } .field-loading-icon { diff --git a/scss/stacked-block-table.scss b/scss/stacked-block-table.scss index 51b46726..60da02d9 100644 --- a/scss/stacked-block-table.scss +++ b/scss/stacked-block-table.scss @@ -93,11 +93,11 @@ $font-family-sans-serif : sans-serif !default; border-top-color: #ccc; } - &.text-left { + &.text-start { text-align: left; padding-left: 0; } - &.text-right { + &.text-end { text-align: right; padding-right: 0; } @@ -181,7 +181,7 @@ $font-family-sans-serif : sans-serif !default; justify-content: center; .mono-text, - .text-monospace { + .font-monospace { font-size: 0.85rem; } diff --git a/scss/submission-view.scss b/scss/submission-view.scss index 2a858a9a..45ab618e 100644 --- a/scss/submission-view.scss +++ b/scss/submission-view.scss @@ -73,26 +73,28 @@ padding-right: calc(1.475em + 0.75rem); } - > .input-group-prepend.alias-lab-single-option { - & + .input-group-prepend.colon-separator > .input-group-text { - border-left: none; - } + .alias-lab-single-option + .colon-separator > .input-group-text { + border-left: none; } - - > .input-group-prepend.colon-separator { + + .colon-separator { font-weight: 700; border-left: none; border-right: none; background-color: #fff; - & + input{ + + input{ border-left: none; padding-left: 8px; &:focus { border-color: #aaa; - box-shadow: inset -2px 1px 1px rgba(0,0,0,0.075), 3px 0 8px rgba(0,0,0,0.1); + box-shadow: inset -2px 1px 1px rgba(0, 0, 0, 0.075), 3px 0 8px rgba(0, 0, 0, 0.1); } } } + + .input-group-text { + background-color: #e9ecef; + } } } diff --git a/src/components/browse/components/CustomColumnController.js b/src/components/browse/components/CustomColumnController.js index e89e27d2..751a1125 100644 --- a/src/components/browse/components/CustomColumnController.js +++ b/src/components/browse/components/CustomColumnController.js @@ -195,9 +195,9 @@ const ColumnOption = React.memo(function ColumnOption(props){ if (sameTitleColExists){ if (!description){ - showDescription = '' + field + ''; + showDescription = '' + field + ''; } else { - showDescription += '
' + field + ''; + showDescription += '
' + field + ''; } } diff --git a/src/components/browse/components/FacetList/ExtendedDescriptionPopoverIcon.js b/src/components/browse/components/FacetList/ExtendedDescriptionPopoverIcon.js index 7377d60f..f6b42ae4 100644 --- a/src/components/browse/components/FacetList/ExtendedDescriptionPopoverIcon.js +++ b/src/components/browse/components/FacetList/ExtendedDescriptionPopoverIcon.js @@ -64,7 +64,7 @@ export const ExtendedDescriptionPopoverIcon = React.memo(function ExtendedDescri ref: target, // By time icon is clicked, this will be mounted. popover: ( - +
{ title }
@@ -73,10 +73,10 @@ export const ExtendedDescriptionPopoverIcon = React.memo(function ExtendedDescri
-
- + +
- + ) }); diff --git a/src/components/browse/components/FacetList/FacetTermsList.js b/src/components/browse/components/FacetList/FacetTermsList.js index 1957126d..0a98ccf7 100644 --- a/src/components/browse/components/FacetList/FacetTermsList.js +++ b/src/components/browse/components/FacetList/FacetTermsList.js @@ -208,7 +208,7 @@ export class Term extends React.PureComponent { } return ( -
  • diff --git a/src/components/browse/components/FacetList/RangeFacet.js b/src/components/browse/components/FacetList/RangeFacet.js index e30b8c65..171015bd 100644 --- a/src/components/browse/components/FacetList/RangeFacet.js +++ b/src/components/browse/components/FacetList/RangeFacet.js @@ -501,7 +501,7 @@ export class RangeFacet extends React.PureComponent { collapsible={[
    -
    - diff --git a/src/components/browse/components/SelectedItemsController.js b/src/components/browse/components/SelectedItemsController.js index bc7eb23b..66de7674 100644 --- a/src/components/browse/components/SelectedItemsController.js +++ b/src/components/browse/components/SelectedItemsController.js @@ -188,7 +188,7 @@ export const SelectionItemCheckbox = React.memo(function SelectionItemCheckbox(p const onChange = useMemo(function(){ return onSelectItem.bind(onSelectItem, result, isMultiSelect); }, [ onSelectItem, result, isMultiSelect ]); - return ; + return ; }); /** Move to own file later maybe. Especially if functionality expands. */ @@ -231,14 +231,14 @@ export const SelectStickyFooter = React.memo(function SelectStickyFooter(props){ {currentAction === 'multiselect' ?

    { selectedItems.size }

    -

    +

    { itemTypeFriendlyName + (selectedItems.size === 1 ? '' : 's') } selected

    :

    { selectedItemDisplayTitle }

    -

    selected

    +

    selected

    }
    @@ -246,7 +246,7 @@ export const SelectStickyFooter = React.memo(function SelectStickyFooter(props){ -
  • @@ -269,7 +269,7 @@ export const BackNavigationStickyFooter = React.memo(function BackNavigationStic
    -
    diff --git a/src/components/browse/components/SortController.js b/src/components/browse/components/SortController.js index 69fc6533..826eea78 100644 --- a/src/components/browse/components/SortController.js +++ b/src/components/browse/components/SortController.js @@ -265,7 +265,7 @@ const MultiColumnSortOption = React.memo(function MultiColumnSortOption(props){ // eslint-disable-next-line prefer-destructuring title = foundSortDefinition.title; } else { - title = { useCol }; + title = { useCol }; } } @@ -284,7 +284,7 @@ const MultiColumnSortOption = React.memo(function MultiColumnSortOption(props){ return (
    - { allSortFields.map(function (col, idx) { @@ -300,21 +300,25 @@ const MultiColumnSortOption = React.memo(function MultiColumnSortOption(props){ }
    -
    - + Ascending Descending
    -
    +
    {!isLastRow ? - : - } +
    + +
    : +
    + +
    }
    ); diff --git a/src/components/browse/components/StackedBlockTable.js b/src/components/browse/components/StackedBlockTable.js index ea68ee36..4df8b9d7 100644 --- a/src/components/browse/components/StackedBlockTable.js +++ b/src/components/browse/components/StackedBlockTable.js @@ -105,7 +105,7 @@ export class StackedBlockListViewMoreButton extends React.PureComponent { // Show information label instead of button. return (
    - + { collapsibleChildrenLen + " More" + (title ? ' ' + title : '') } { showMoreExtTitle ? { showMoreExtTitle } : null }
    @@ -121,7 +121,7 @@ export class StackedBlockListViewMoreButton extends React.PureComponent { return (
    - + { titleStr } { showMoreExtTitle ? { showMoreExtTitle } : null }
    @@ -244,7 +244,7 @@ export class StackedBlockList extends React.PureComponent { } viewMoreButton = (
    - = incrementalExpandVisibleCount ? "plus" : "minus")} /> + = incrementalExpandVisibleCount ? "plus" : "minus")} /> { {titleStr} }
    ); } else { @@ -411,8 +411,8 @@ export class StackedBlockTable extends React.PureComponent { static defaultProps = { 'columnHeaders' : [ - { columnClass: 'biosample', className: 'text-left', title: 'Biosample', initialWidth: 115 }, - { columnClass: 'experiment', className: 'text-left', title: 'Experiment', initialWidth: 145 }, + { columnClass: 'biosample', className: 'text-start', title: 'Biosample', initialWidth: 115 }, + { columnClass: 'experiment', className: 'text-start', title: 'Experiment', initialWidth: 145 }, { columnClass: 'file-group', title: 'File Group', initialWidth: 40, visibleTitle : }, { columnClass: 'file', title: 'File', initialWidth: 125 } ], diff --git a/src/components/browse/components/above-table-controls/AboveSearchViewTableControls.js b/src/components/browse/components/above-table-controls/AboveSearchViewTableControls.js index ee4b0185..78d6558f 100644 --- a/src/components/browse/components/above-table-controls/AboveSearchViewTableControls.js +++ b/src/components/browse/components/above-table-controls/AboveSearchViewTableControls.js @@ -27,8 +27,8 @@ export const AboveSearchViewTableControls = React.memo(function AboveSearchViewT const addAction = _.findWhere(context.actions, { 'name' : 'add' }); if (addAction && typeof addAction.href === 'string'){ addButton = ( -
    - + + Create New   diff --git a/src/components/browse/components/above-table-controls/RightButtonsSection.js b/src/components/browse/components/above-table-controls/RightButtonsSection.js index 884df77f..ed7f6038 100644 --- a/src/components/browse/components/above-table-controls/RightButtonsSection.js +++ b/src/components/browse/components/above-table-controls/RightButtonsSection.js @@ -24,7 +24,7 @@ export const ConfigureVisibleColumnsButton = React.memo(function ConfigureVisibl ); }); @@ -34,7 +34,7 @@ export const MultiColumnSortButton = React.memo(function MultiColumnSortButton({ ); }); @@ -64,7 +64,7 @@ export class ToggleLayoutButton extends React.PureComponent { diff --git a/src/components/browse/components/table-commons/ColumnCombiner.js b/src/components/browse/components/table-commons/ColumnCombiner.js index b26fdc1c..4c033f2d 100644 --- a/src/components/browse/components/table-commons/ColumnCombiner.js +++ b/src/components/browse/components/table-commons/ColumnCombiner.js @@ -251,5 +251,6 @@ export function getColumnWidthFromDefinition(columnDefinition, mounted=true, win else responsiveGridSize = responsiveGridState(windowWidth); if (responsiveGridSize === 'xs') responsiveGridSize = 'sm'; if (responsiveGridSize === 'xl') responsiveGridSize = 'lg'; + if (responsiveGridSize === 'xxl') responsiveGridSize = 'lg'; return widthMap[responsiveGridSize || 'lg']; } diff --git a/src/components/browse/components/table-commons/HeadersRow.js b/src/components/browse/components/table-commons/HeadersRow.js index e3e336fe..dba291da 100644 --- a/src/components/browse/components/table-commons/HeadersRow.js +++ b/src/components/browse/components/table-commons/HeadersRow.js @@ -601,7 +601,7 @@ const SortOptionsMenu = React.memo(function SortOptionsMenu({ return (
    { title || field } - { !isActive ? null : } + { !isActive ? null : }
    ); }); diff --git a/src/components/browse/components/table-commons/ResultRowColumnBlockValue.js b/src/components/browse/components/table-commons/ResultRowColumnBlockValue.js index 2ec1c36f..2665e9c1 100644 --- a/src/components/browse/components/table-commons/ResultRowColumnBlockValue.js +++ b/src/components/browse/components/table-commons/ResultRowColumnBlockValue.js @@ -169,7 +169,7 @@ export function sanitizeOutputValue(value){ if (typeof value.display_title !== 'undefined'){ const atId = itemUtil.atId(value); if (atId){ - return { value.display_title }; + return { value.display_title }; } else { return value.display_title; } diff --git a/src/components/browse/components/table-commons/basicColumnExtensionMap.js b/src/components/browse/components/table-commons/basicColumnExtensionMap.js index 2a6e6a15..04d128b8 100644 --- a/src/components/browse/components/table-commons/basicColumnExtensionMap.js +++ b/src/components/browse/components/table-commons/basicColumnExtensionMap.js @@ -58,7 +58,7 @@ export const basicColumnExtensionMap = { return (
    - +
    { itemTypeTitle }
    @@ -73,7 +73,7 @@ export const basicColumnExtensionMap = { const { date_created = null } = result; if (!date_created) return null; return ( - + ); @@ -88,7 +88,7 @@ export const basicColumnExtensionMap = { const { last_modified : { date_modified = null } = {} } = result; if (!date_modified) return null; return ( - + ); @@ -156,12 +156,12 @@ export const DisplayTitleColumnDefault = React.memo(function DisplayTitleColumnD if (targetTabKey && typeof targetTabKey === 'string'){ link = `${propLink}#${targetTabKey}`; } - title = {title}; + title = {title}; } const cls = ( "title-block text-truncate" - + (shouldMonospace ? " text-monospace text-small" : "") + + (shouldMonospace ? " font-monospace text-small" : "") + (className ? " " + className : "") ); diff --git a/src/components/forms/SubmissionView.js b/src/components/forms/SubmissionView.js index a0b469b1..e15b7dda 100644 --- a/src/components/forms/SubmissionView.js +++ b/src/components/forms/SubmissionView.js @@ -438,7 +438,7 @@ export default class SubmissionView extends React.PureComponent{ /** Simple function to generate enum entries for ambiguous types */ buildAmbiguousEnumEntry(val, idx, all){ return( - + {val || ''} ); @@ -1490,7 +1490,7 @@ export default class SubmissionView extends React.PureComponent{ return (
    -
    { children }
    +
    { children }
    @@ -1805,7 +1805,7 @@ class TypeSelectModal extends React.Component { } render(){ - const { show, ambiguousType, ambiguousSelected, buildAmbiguousEnumEntry, submitAmbiguousType, schemas } = this.props; + const { show, ambiguousType, ambiguousSelected, buildAmbiguousEnumEntry, submitAmbiguousType, schemas, handleTypeSelection } = this.props; if (!show) return null; const itemTypeHierarchy = schemaTransforms.schemasToItemTypeHierarchy(schemas); @@ -1835,7 +1835,7 @@ class TypeSelectModal extends React.Component {

    Please select a specific Item type from the menu below.

    - + { specificItemTypeOptions.map(buildAmbiguousEnumEntry) }
    @@ -1881,7 +1881,7 @@ class AliasSelectModal extends TypeSelectModal { { creatingAliasMessage }
    : null } -
    +
    {/* {' '} diff --git a/src/components/forms/components/Checkbox.js b/src/components/forms/components/Checkbox.js index 046da3bc..341adbe1 100644 --- a/src/components/forms/components/Checkbox.js +++ b/src/components/forms/components/Checkbox.js @@ -9,7 +9,7 @@ export const Checkbox = React.memo(function Checkbox(props){ children, labelClassName = "mb-0", title, - inputClassName = "mr-08 align-middle", + inputClassName = "me-08 align-middle", indeterminate = false, ...passProps } = props; diff --git a/src/components/forms/components/DragAndDropUpload.js b/src/components/forms/components/DragAndDropUpload.js index 3e4804d7..ced89d3f 100644 --- a/src/components/forms/components/DragAndDropUpload.js +++ b/src/components/forms/components/DragAndDropUpload.js @@ -506,7 +506,7 @@ function RequestVerification(props) { return (
    - +
    ); } @@ -629,7 +629,7 @@ export class DragAndDropZone extends React.Component { {/* TODO: Consider making the file list a separate component... think about potential future features like listing files without icons/in rows or even sorting... would be best to have this be separate if implementing those */} -
      +
        { files.map((file) => (
      • -
        +
        {this.renderSavedValue()} @@ -612,7 +612,7 @@ export class EditableField extends React.Component { } else if (style === 'minimal-row') { return (
        -
        +
        {this.renderSavedValue()} @@ -693,7 +693,7 @@ export class EditableField extends React.Component { if (style == 'row' ) { return (
        -
        +
        diff --git a/src/components/forms/components/LinkToDropdown.js b/src/components/forms/components/LinkToDropdown.js index 5033eb99..4d4973b0 100644 --- a/src/components/forms/components/LinkToDropdown.js +++ b/src/components/forms/components/LinkToDropdown.js @@ -160,8 +160,8 @@ export class LinkToDropdown extends React.PureComponent { { display_title }
        - - { itemID } + + { itemID }
        diff --git a/src/components/forms/components/SearchAsYouTypeAjax.js b/src/components/forms/components/SearchAsYouTypeAjax.js index 369ebbcf..fede6ae2 100644 --- a/src/components/forms/components/SearchAsYouTypeAjax.js +++ b/src/components/forms/components/SearchAsYouTypeAjax.js @@ -606,7 +606,7 @@ export class LinkedObj extends React.PureComponent { return( ); } else { diff --git a/src/components/forms/components/SearchSelectionMenu.js b/src/components/forms/components/SearchSelectionMenu.js index f2bc5667..5c19fa3f 100644 --- a/src/components/forms/components/SearchSelectionMenu.js +++ b/src/components/forms/components/SearchSelectionMenu.js @@ -21,6 +21,7 @@ export class SearchSelectionMenu extends React.PureComponent { this.dropdown = React.createRef(); this.onToggleOpen = this.onToggleOpen.bind(this); this.onKeyDown = this.onKeyDown.bind(this); + this.handleDropdownSelect = this.handleDropdownSelect.bind(this); } componentDidUpdate(prevProps) { @@ -83,6 +84,15 @@ export class SearchSelectionMenu extends React.PureComponent { // otherwise handle as default } + handleDropdownSelect(evt, option) { + const { onDropdownSelect } = this.props; + + evt.preventDefault(); + evt.stopPropagation(); + onDropdownSelect(option); + this.setState({ dropOpen: false }); + }; + render(){ const { currentTextValue = "", // Temporary text value @@ -90,7 +100,6 @@ export class SearchSelectionMenu extends React.PureComponent { options = [], optionRenderFunction = null, titleRenderFunction, - onDropdownSelect, onTextInputChange, optionsHeader, optionsFooter, @@ -104,25 +113,19 @@ export class SearchSelectionMenu extends React.PureComponent { return ( { showValue } - - { + + { options.map(function(option, idx){ const renderedOption = typeof optionRenderFunction === "function" ? optionRenderFunction(option) : option; - function onClick(evt){ - evt.preventDefault(); - evt.stopPropagation(); - onDropdownSelect(option); - } return ( - + this.handleDropdownSelect(event, option)} key={idx} eventKey={idx} className="text-truncate" tabIndex="3"> { renderedOption } ); - }) - } + }, this)} ); diff --git a/src/components/forms/components/submission-fields.js b/src/components/forms/components/submission-fields.js index c0a08d37..4b347651 100644 --- a/src/components/forms/components/submission-fields.js +++ b/src/components/forms/components/submission-fields.js @@ -64,8 +64,8 @@ export class BuildField extends React.PureComponent { constructor(props){ super(props); _.bindAll(this, - 'displayField', 'handleDropdownButtonToggle', 'handleAliasChange', - 'handleEnumChange', 'buildSuggestedEnumEntry', 'submitSuggestedEnumVal', + 'displayField', 'handleDropdownButtonToggle', + 'handleEnumChange', 'submitSuggestedEnumVal', 'handleChange', 'handleAliasChange', 'deleteField', 'pushArrayValue', 'commonRowProps', 'labelTypeDescriptor', 'wrapWithLabel', 'wrapWithNoLabel' ); @@ -170,14 +170,6 @@ export class BuildField extends React.PureComponent { return
        No field for this case yet.
        ; } - buildSuggestedEnumEntry(val) { - return ( - - {val || ''} - - ); - } - submitSuggestedEnumVal(eventKey) { const { modifyNewContext, nestedField, fieldType, linkType, arrayIdx, schema } = this.props; @@ -317,7 +309,7 @@ export class BuildField extends React.PureComponent {
        { this.labelTypeDescriptor() } { fieldTip ? - { fieldTip } + { fieldTip } : null} { title }
        @@ -1109,11 +1101,9 @@ export class AliasInputField extends React.Component { ); } else { // Only 1 submits_for lab or 0 submits_for -- fallback to staticy thingy firstPartSelect = ( -
        - - { currFirstPartValue } - -
        + + { currFirstPartValue } + ); } @@ -1122,14 +1112,14 @@ export class AliasInputField extends React.Component {
        { firstPartSelect } -
        +
        :
        - { showErrorMsg && errorMessage ?
        { errorMessage }
        : null } + { showErrorMsg && errorMessage ?
        { errorMessage }
        : null }
        ); } diff --git a/src/components/static-pages/StaticPageBase.js b/src/components/static-pages/StaticPageBase.js index 41041817..44686c84 100644 --- a/src/components/static-pages/StaticPageBase.js +++ b/src/components/static-pages/StaticPageBase.js @@ -245,7 +245,7 @@ export class StaticPageBase extends React.PureComponent { 'entryRenderFxn' : PropTypes.func, 'contentParseFxn' : PropTypes.func.isRequired, 'href' : PropTypes.string, - 'CustomWrapper': PropTypes.element + 'CustomWrapper': PropTypes.elementType }; render() { diff --git a/src/components/static-pages/TableOfContents.js b/src/components/static-pages/TableOfContents.js index 127f4d30..8ca8aebf 100644 --- a/src/components/static-pages/TableOfContents.js +++ b/src/components/static-pages/TableOfContents.js @@ -544,12 +544,12 @@ export class TableOfContents extends React.Component { const cols = []; cols.push( ); if (windowInnerWidth && windowInnerWidth >= 1600){ cols.push( -
        +
        : null }

        { title }

        diff --git a/src/components/ui/FileDownloadButton.js b/src/components/ui/FileDownloadButton.js index 4f944bf5..c9c4574d 100644 --- a/src/components/ui/FileDownloadButton.js +++ b/src/components/ui/FileDownloadButton.js @@ -13,7 +13,7 @@ import { event as trackEvent } from './../util/analytics'; export function FileDownloadButton(props){ const { href, - className = "btn-block btn-primary", + className = "w-100 btn-primary", disabled = false, title = "Download", filename, @@ -30,7 +30,7 @@ export function FileDownloadButton(props){ ); return (disabled && tooltip) ? ( - + {button} ) : button; diff --git a/src/components/ui/ItemDetailList.js b/src/components/ui/ItemDetailList.js index 41516d79..286d5dab 100644 --- a/src/components/ui/ItemDetailList.js +++ b/src/components/ui/ItemDetailList.js @@ -472,7 +472,7 @@ class SubItemTable extends React.Component { * formats, says "secondary_file_formats" */ if (_.any(value, function(v){ return typeof v === 'object' && v; }) && colKeyContainer.childKeys == null) { - const links = value.map((link, i) => ({ link.display_title })); + const links = value.map((link, i) => ({ link.display_title })); return { 'value' :
        {links}
        , 'key' : colKey }; } @@ -482,7 +482,7 @@ class SubItemTable extends React.Component { return { 'value' : _.map(value, function(embeddedRow, i){ return ( -
        +
        { i + 1 }.
        { allKeys.map((k, j)=>{ var renderedSubVal;// = Schemas.Term.toName(k, embeddedRow[k]); @@ -496,7 +496,7 @@ class SubItemTable extends React.Component { } if (!renderedSubVal) { renderedSubVal = isAnItem(embeddedRow[k]) ? - { itemUtil.getTitleStringFromContext(embeddedRow[k]) } + { itemUtil.getTitleStringFromContext(embeddedRow[k]) } : termTransformFxn(k, embeddedRow[k]); } @@ -519,7 +519,7 @@ class SubItemTable extends React.Component { } } if (isAnItem(value)) { - return { 'value' : { value.display_title }, 'key' : colKey }; + return { 'value' : { value.display_title }, 'key' : colKey }; } if (typeof value === 'string' && value.length < 25) { return { 'value' : termTransformFxn(colKey, value), 'className' : 'no-word-break', 'key' : colKey }; @@ -609,15 +609,15 @@ class SubItemTable extends React.Component { val = { val ? 'True' : 'False' }; } if (colVal.key === '@id' && val.slice(0,1) === '/') { - val = { val }; + val = { val }; } if (val && typeof val === 'object' && !React.isValidElement(val) && !Array.isArray(val)) { if (isAnItem(val)) { - val = {val.display_title}; + val = {val.display_title}; } else if (isAnAttachment(val) && (val.href.charAt(0) === '/' || rowAtIdValue)) { const attachmentTitle = SubItemTable.getAttachmentTitle(val.href, 'attached_file'); const attachmentHref = val.href.charAt(0) === '/' ? val.href : rowAtIdValue + val.href; - val = {attachmentTitle}; + val = {attachmentTitle}; } else { val = SubItemTable.jsonify(val, columnKeys[j].key); } @@ -627,11 +627,11 @@ class SubItemTable extends React.Component { val = _.map(val, function (v, i) { let item = null; if (isAnItem(v)) { - item = {v.display_title}; + item = {v.display_title}; } else if (isAnAttachment(v) && (val.href.charAt(0) === '/' || rowAtIdValue)) { const attachmentTitle = SubItemTable.getAttachmentTitle(v.href, 'attached_file'); const attachmentHref = val.href.charAt(0) === '/' ? val.href : rowAtIdValue + val.href; - val = {attachmentTitle}; + val = {attachmentTitle}; } else { item = SubItemTable.jsonify(v, columnKeys[j].key + ':' + i); } @@ -639,7 +639,7 @@ class SubItemTable extends React.Component { }); if (renderAsList) { val =
          {val}
        ; - className += ' text-left'; + className += ' text-start'; } } return ( @@ -840,23 +840,23 @@ export class Detail extends React.PureComponent { } else if (typeof item === 'string'){ if (keyPrefix === '@id'){ - return {item}; + return {item}; } if(item.charAt(0) === '/' && item.indexOf('@@download') > -1){ // This is a download link. Format appropriately const attach_title = SubItemTable.getAttachmentTitle(item); - return { attach_title || item }; + return { attach_title || item }; } else if (item.charAt(0) === '/') { - if (popLink) return { item }; - else return { item }; + if (popLink) return { item }; + else return { item }; } else { // TODO: more comprehensive regexp url validator needed, look at: https://stackoverflow.com/a/5717133 // Is a URL. Check if we should render it as a link/uri. const schemaProperty = getSchemaProperty(keyPrefix, schemas || {}, atType); const schemaPropertyFormat = (schemaProperty && typeof schemaProperty.format === 'string' && schemaProperty.format.toLowerCase()) || null; if (schemaPropertyFormat && ['uri','url'].indexOf(schemaPropertyFormat) > -1 && item.slice(0,4) === 'http') { - return { item }; + return { item }; } else { return { termTransformFxn(keyPrefix, item) }; } @@ -936,7 +936,7 @@ export class Detail extends React.PureComponent { 'subscriptions.url' : { 'render' : function(value){ var fullUrl = '/search/' + value; - return View Results; + return View Results; }, 'title' : "Link", 'description' : "Link to results matching subscription query." @@ -962,7 +962,7 @@ export class Detail extends React.PureComponent { 'title' : "E-Mail", 'render' : function(value){ if (typeof value === 'string' && value.indexOf('@') > -1) { - return { value }; + return { value }; } return value; } @@ -1035,21 +1035,25 @@ export class Detail extends React.PureComponent { const ToggleJSONButton = React.memo(function ToggleJSONButton({ onClick, showingJSON, className }){ return ( - +
        + +
        ); }); const SeeMoreRowsButton = React.memo(function SeeMoreRowsButton({ onClick, collapsed, className }){ return ( - +
        + +
        ); }); diff --git a/src/components/util/layout.js b/src/components/util/layout.js index 592204bf..3eb94df4 100644 --- a/src/components/util/layout.js +++ b/src/components/util/layout.js @@ -78,6 +78,8 @@ export const shortenString = memoize(function(originalText, maxChars = 28, addEl * in src/encoded/static/scss/bootstrap/_variables.scss. * * 2019-07-10 -- updated to Bootstrap v4 breakpoints, added 'xl'. + * + * 2024-09-06 -- updated to Bootstrap v5 breakpoints, added 'xxl'. * * @deprecated * Will be replaced by portal-specific versions soon/eventually. @@ -90,8 +92,9 @@ export const responsiveGridState = memoize(function(width = null){ if (typeof width !== 'number') { // Assumed to be null or undefined which should mean we are // server-side or not yet mounted. - return 'xl'; + return 'xxl'; } + if (width >= 1400) return 'xxl'; if (width >= 1200) return 'xl'; if (width >= 992) return 'lg'; if (width >= 768) return 'md'; @@ -118,6 +121,7 @@ export const responsiveGridState = memoize(function(width = null){ export function gridContainerWidth(windowWidth = null){ // Subtract 20 for padding/margins. switch(responsiveGridState(windowWidth)){ + case 'xxl': return 1300; case 'xl': return 1120; case 'lg': return 940; case 'md': return 700; diff --git a/src/components/util/object.js b/src/components/util/object.js index ff3c97e9..026ce4b0 100644 --- a/src/components/util/object.js +++ b/src/components/util/object.js @@ -53,6 +53,7 @@ export function linkFromItem(item, addDescriptionTip = true, propertyForTitle = propsToInclude.key = href; } + propsToInclude.className = (propsToInclude.className || '') + " link-underline-hover"; if (addDescriptionTip && typeof propsToInclude['data-tip'] === 'undefined' && item.description){ propsToInclude['data-tip'] = item.description; propsToInclude.className = (propsToInclude.className || '') + ' d-inline-block';