@equinor/echo-components 0.5.17 → 0.5.19-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +62 -62
- package/dist/components/buttonWithPopover/ButtonWithPopover.d.ts +21 -21
- package/dist/components/contextMenu/ContextMenu.d.ts +35 -35
- package/dist/components/contextMenuPopover/DataInfoButton.d.ts +19 -19
- package/dist/components/contextMenuPopover/DataInfoPopover.d.ts +18 -18
- package/dist/components/datePicker/PopupHeader.d.ts +19 -19
- package/dist/components/datePicker/ReactDatePicker.d.ts +19 -19
- package/dist/components/dialogGenerator/DialogGenerator.d.ts +26 -26
- package/dist/components/dropdown/Dropdown.d.ts +37 -37
- package/dist/components/echoBottomBar/EchoBottomBar.d.ts +7 -7
- package/dist/components/echoCard/Body.d.ts +7 -7
- package/dist/components/echoCard/DateSection.d.ts +8 -8
- package/dist/components/echoCard/EchoCard.d.ts +7 -7
- package/dist/components/echoCard/LinkSection.d.ts +8 -8
- package/dist/components/echoCard/Title.d.ts +13 -13
- package/dist/components/echoCard/index.d.ts +14 -14
- package/dist/components/echoHeader/EchoHeader.d.ts +20 -20
- package/dist/components/echoTooltip/Tooltip/Tooltip.d.ts +10 -10
- package/dist/components/echoTooltip/Tooltip/useTooltip.d.ts +51 -51
- package/dist/components/echoTooltip/index.d.ts +10 -10
- package/dist/components/floatingActionButton/FloatingActionButton.d.ts +33 -33
- package/dist/components/floatingSearchBar/FloatingSearchBar.d.ts +31 -31
- package/dist/components/index.d.ts +22 -22
- package/dist/components/inlineTagIconLink/InlineTagIconLink.d.ts +12 -12
- package/dist/components/listItem/ListItem.d.ts +50 -50
- package/dist/components/listItem/index.d.ts +1 -1
- package/dist/components/listRow/ListRow.d.ts +29 -29
- package/dist/components/rightPanel/PanelStore.d.ts +9 -0
- package/dist/components/rightPanel/index.d.ts +5 -5
- package/dist/components/rightPanel/menuButton/MenuButton.d.ts +24 -26
- package/dist/components/rightPanel/panel/Panel.d.ts +18 -18
- package/dist/components/rightPanel/panelContent/PanelContent.d.ts +23 -21
- package/dist/components/rightPanel/panelWrapper/PanelWrapper.d.ts +21 -21
- package/dist/components/sidebarButton/SidebarButton.d.ts +61 -61
- package/dist/components/sidesheet/enums.d.ts +5 -5
- package/dist/components/sidesheet/index.d.ts +11 -11
- package/dist/components/sidesheet/sheet/Sheet.d.ts +19 -19
- package/dist/components/sidesheet/sheet/index.d.ts +1 -1
- package/dist/components/sidesheet/sheet/utils.d.ts +2 -2
- package/dist/components/sidesheet/sheetTopArea/SheetTopArea.d.ts +16 -16
- package/dist/components/sidesheet/sheetTopArea/index.d.ts +1 -1
- package/dist/components/splitView/SplitView.d.ts +14 -14
- package/dist/components/splitView/index.d.ts +8 -8
- package/dist/components/splitView/left/SplitViewLeft.d.ts +9 -9
- package/dist/components/tagContextMenu/TagContextMenu.d.ts +30 -30
- package/dist/components/timePicker/TimePicker.d.ts +12 -12
- package/dist/components/workOrderListItem/WorkOrderStatusLabel.d.ts +11 -11
- package/dist/components/workOrderListItem/WorkOrdertListItem.d.ts +10 -10
- package/dist/elements/draggableItemsWrapper/DraggableItemsWrapper.d.ts +18 -18
- package/dist/elements/icon/Icon.d.ts +20 -20
- package/dist/elements/index.d.ts +8 -8
- package/dist/elements/radioButtonGroup/RadioButtonGroup.d.ts +20 -20
- package/dist/elements/roundIconButton/RoundIconButton.d.ts +13 -13
- package/dist/elements/sliderField/SliderField.d.ts +25 -25
- package/dist/elements/tagIcon/TagIcon.d.ts +16 -16
- package/dist/elements/tagIcon/TagIconShadow.d.ts +13 -13
- package/dist/elements/textIconButton/TextIconButton.d.ts +19 -19
- package/dist/helpers/classnames.d.ts +5 -5
- package/dist/helpers/getIcon.d.ts +2 -2
- package/dist/helpers/index.d.ts +3 -3
- package/dist/helpers/tagCategoryIcon.d.ts +38 -38
- package/dist/hooks/index.d.ts +3 -3
- package/dist/hooks/useEventListener.d.ts +3 -3
- package/dist/hooks/useIsMobile.d.ts +5 -5
- package/dist/hooks/useKeyboardNavigation.d.ts +21 -21
- package/dist/icons/echoAssets/external.d.ts +5 -5
- package/dist/icons/echoAssets/index.d.ts +4 -4
- package/dist/icons/echoAssets/notifications.d.ts +9 -9
- package/dist/icons/echoAssets/punches.d.ts +4 -4
- package/dist/icons/echoAssets/workOrders.d.ts +11 -11
- package/dist/icons/index.d.ts +3 -3
- package/dist/index.d.ts +9 -9
- package/dist/index.js +1042 -449
- package/dist/index.js.map +1 -1
- package/dist/setupTests.d.ts +1 -1
- package/dist/structure/iconList/IconList.d.ts +32 -32
- package/dist/structure/iconList/createListRow.d.ts +14 -14
- package/dist/structure/index.d.ts +3 -3
- package/dist/structure/linkCard/LinkCard.d.ts +26 -26
- package/dist/structure/optionsList/OptionsList.d.ts +24 -24
- package/dist/theme/index.d.ts +1 -1
- package/dist/theme/themeConst.d.ts +66 -66
- package/dist/types/actionButton.d.ts +6 -6
- package/dist/types/dataInformation.d.ts +8 -8
- package/dist/types/draggableItem.d.ts +5 -5
- package/dist/types/expandableRowProps.d.ts +6 -6
- package/dist/types/iconItem.d.ts +4 -4
- package/dist/types/iconListItem.d.ts +6 -6
- package/dist/types/index.d.ts +11 -11
- package/dist/types/linkCardItem.d.ts +5 -5
- package/dist/types/menuItem.d.ts +11 -9
- package/dist/types/optionsItem.d.ts +6 -6
- package/dist/types/radioButtonItem.d.ts +4 -4
- package/dist/types/workOrderItem.d.ts +9 -9
- package/dist/utils/date.d.ts +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/workorder.d.ts +3 -3
- package/package.json +125 -125
- package/dist/components/rightPanel/PanelContextWrapper.d.ts +0 -19
- package/dist/components/rightPanel/usePanelContext.d.ts +0 -8
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Icon as Icon$1, Button, DotProgress, Banner, CircularProgress, Typography, Dialog, Search, Radio, Slider, Menu, Autocomplete, Tooltip as Tooltip$1 } from '@equinor/eds-core-react';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import React__default, { useState, useEffect, useCallback, createElement, PureComponent, useRef, useLayoutEffect, useMemo, createContext, useContext, forwardRef, isValidElement, cloneElement } from 'react';
|
|
3
|
+
import React__default, { useState, useEffect, useCallback, createElement, PureComponent, useRef, useLayoutEffect, useMemo, createContext, useContext, forwardRef, isValidElement, cloneElement, useDebugValue } from 'react';
|
|
4
4
|
import * as ReactDOM from 'react-dom';
|
|
5
5
|
import ReactDOM__default, { createPortal } from 'react-dom';
|
|
6
6
|
import * as edsIcons from '@equinor/eds-icons';
|
|
@@ -37,16 +37,16 @@ function styleInject(css, ref) {
|
|
|
37
37
|
var css_248z$B = ":root{--xSmall:0.25rem;--small:0.5rem;--medium:1rem;--large:1.5rem;--xLarge:2rem;--black:#000;--white:#fff;--equiBlue1:#233746;--equiBlue2:#d7e1ed;--equiBlue3:#d5eaf4;--equiGray1:#87929a;--equiGray2:#b4bbc0;--equiGray3:#d1d5d8;--equiGray4:#e3e6e8;--equiGray5:#f7f7f7;--equiRed1:#ff1243;--darkEquiRed:#ce183e;--equiGreen1:#006f79;--equiGreen2:#deedee;--equiGreen3:#e6faec;--equiGreen4:#c3f3d2;--echoText:#3d3d3d;--disabledBackgroundColor:#eaeaea;--disabledColor:#6f6f6f;--pm01:#0f0;--pm02:#ff1493;--pm03:#0ff;--pm04:#9400d3;--pm05:#1e90ff;--pm06:#ffdead;--pm010:#ff4500;--pm015:#228b22;--pm020:#00008b;--onGoing:#fbca36;--done:#4bb748;--asBuilt:#007079;--planned:#4bb748;--future:#52c0ff;--historic:#ff7d98;--outOfService:#ff9200;--reserved:#243746;--voided:#eb0000;--default:#dcdcdc;--ok:#23ef2a;--os:#adaead;--pa:#f94693;--pb:#fd0;--unknown:#525252;--rfccSent:#bcf316;--rfccPartly:#c7f316;--rfcc:#60f316;--rfocSent:#0dccf2;--rfocPartly:#1accf2;--rfoc:#0d59f2;--rfccRejected:#ff1243;--rfocRejected:#ff1243;--handoverError:#eb0000;--priorityHigh:#ff1243;--priorityMedium:#fbca36;--systems:#d5eaf4;--locations:#3eb54a;--ofpDark:#f4d6a2;--ofpLight:#faebce;--warningText:#ad6200;--warningIcon:#ff9200;--warningBackground:#ffe7d6;--dropDownButtonBackground:#f0f0f0;--dropDownTextColor:grey;--searchBarBackground:#f7f7f7;--highSeverity:#ffc1c1;--mediumSeverity:#ffe7d6;--lowSeverity:#dce6ee;--defaultSeverity:#d5eaf4;--highSeverityText:#eb0000;--mediumSeverityText:#52c0ff;--lowSeverityText:#4bb748;--defaultSeverityText:#3d3d3d;--toggleActive:#4bb748;--toggleInactive:#b30d2f;--hoverIcon:#004f55;--hoverIconWithNotification:#b30d2f;--tertiaryText:#6f6f6f}#root,body,html{height:100%;overflow:hidden;width:100%}html[data-theme=dark]{--equiGreen1:#006f79}body,h1,h2,h3,h4,h5,h6,label,p{color:var(--echoText)}body,html,span{font-family:Equinor!important}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#f7f7f7;border-radius:5px}::-webkit-scrollbar-thumb{background:#007079;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#004f55}button,input{appearance:none;background:transparent;border:inherit;color:inherit;font:inherit;outline:0}input,input:after,input:before{-webkit-user-select:initial;-khtml-user-select:initial;-moz-user-select:initial;-ms-user-select:initial;user-select:auto}";
|
|
38
38
|
styleInject(css_248z$B);
|
|
39
39
|
|
|
40
|
-
/**
|
|
41
|
-
* Component that work's as a eds icon wrapper, it imports all eds possible icons
|
|
42
|
-
*
|
|
43
|
-
* @param {IconProps} {
|
|
44
|
-
* name: The name of the icon to be displayed
|
|
45
|
-
* title: The html title to use
|
|
46
|
-
* color:The color to icon should have
|
|
47
|
-
* size: The wanted size of the icon. Possible values are 16, 24, 32, 40 and 48
|
|
48
|
-
* }
|
|
49
|
-
* @return {*} {JSX.Element} A icon for the provided information
|
|
40
|
+
/**
|
|
41
|
+
* Component that work's as a eds icon wrapper, it imports all eds possible icons
|
|
42
|
+
*
|
|
43
|
+
* @param {IconProps} {
|
|
44
|
+
* name: The name of the icon to be displayed
|
|
45
|
+
* title: The html title to use
|
|
46
|
+
* color:The color to icon should have
|
|
47
|
+
* size: The wanted size of the icon. Possible values are 16, 24, 32, 40 and 48
|
|
48
|
+
* }
|
|
49
|
+
* @return {*} {JSX.Element} A icon for the provided information
|
|
50
50
|
*/
|
|
51
51
|
var Icon = function Icon(_ref) {
|
|
52
52
|
var name = _ref.name,
|
|
@@ -358,17 +358,17 @@ var css_248z$A = ".dataInfoButton-module_button__N4F5j{background-color:var(--wh
|
|
|
358
358
|
var style$a = {"button":"dataInfoButton-module_button__N4F5j","buttonWithBadge":"dataInfoButton-module_buttonWithBadge__Qjm3a"};
|
|
359
359
|
styleInject(css_248z$A);
|
|
360
360
|
|
|
361
|
-
/**
|
|
362
|
-
* Component that renders a data information button with a badge to indicate the number of items under that scoped type
|
|
363
|
-
*
|
|
364
|
-
* @param {DataInfoButtonProps} { data } Contains data information related to how the button should be rendered
|
|
365
|
-
* numberOfItems: If number is 1 or less no badge will be displayed on the button. If number is over 99,
|
|
366
|
-
* then the text 99+ will be displayed. Otherwise the provided number will be displayed
|
|
367
|
-
* label: The name of the data type, will be displayed on the button
|
|
368
|
-
* ariaLabel: The aria label set on the button, if empty the label will be used
|
|
369
|
-
* onTagInfoClicked: The method to be called when button is pressed
|
|
370
|
-
* itemButtonClassName: Used to style button if default styling is not wanted. class name might need higher precedence for overriding existing styling e.g. "div.itemButtonClassName { background-color: blue !important}"
|
|
371
|
-
* @return {*} {JSX.Element} Data information button with or without a badge based on the provided data object
|
|
361
|
+
/**
|
|
362
|
+
* Component that renders a data information button with a badge to indicate the number of items under that scoped type
|
|
363
|
+
*
|
|
364
|
+
* @param {DataInfoButtonProps} { data } Contains data information related to how the button should be rendered
|
|
365
|
+
* numberOfItems: If number is 1 or less no badge will be displayed on the button. If number is over 99,
|
|
366
|
+
* then the text 99+ will be displayed. Otherwise the provided number will be displayed
|
|
367
|
+
* label: The name of the data type, will be displayed on the button
|
|
368
|
+
* ariaLabel: The aria label set on the button, if empty the label will be used
|
|
369
|
+
* onTagInfoClicked: The method to be called when button is pressed
|
|
370
|
+
* itemButtonClassName: Used to style button if default styling is not wanted. class name might need higher precedence for overriding existing styling e.g. "div.itemButtonClassName { background-color: blue !important}"
|
|
371
|
+
* @return {*} {JSX.Element} Data information button with or without a badge based on the provided data object
|
|
372
372
|
*/
|
|
373
373
|
var DataInfoButton = function DataInfoButton(_ref) {
|
|
374
374
|
var data = _ref.data;
|
|
@@ -386,15 +386,15 @@ var css_248z$z = ".dataInfoPopover-module_wrapper__l8JCd{display:flex;flex-direc
|
|
|
386
386
|
var style$9 = {"wrapper":"dataInfoPopover-module_wrapper__l8JCd","arrow":"dataInfoPopover-module_arrow__KXQ5a","optionsPopover":"dataInfoPopover-module_optionsPopover__ZPXbv","groupWrapper":"dataInfoPopover-module_groupWrapper__InWuY","banner":"dataInfoPopover-module_banner__QtiKf","infoMessage":"dataInfoPopover-module_infoMessage__lqzTe"};
|
|
387
387
|
styleInject(css_248z$z);
|
|
388
388
|
|
|
389
|
-
/**
|
|
390
|
-
* Component that renders a popover with data information buttons
|
|
391
|
-
*
|
|
392
|
-
* @param {DataInfoPopoverProps} {
|
|
393
|
-
* dataToShow: list of DataInformation objects to be displayed.
|
|
394
|
-
* The itemType in these objects are used to group them together in the popover
|
|
395
|
-
* isLoading: loading flag that tells if a dot progress should be displayed if data is being fetched
|
|
396
|
-
* }
|
|
397
|
-
* @return {*} {JSX.Element} Popover with data information buttons based on the provided DataInformation objects
|
|
389
|
+
/**
|
|
390
|
+
* Component that renders a popover with data information buttons
|
|
391
|
+
*
|
|
392
|
+
* @param {DataInfoPopoverProps} {
|
|
393
|
+
* dataToShow: list of DataInformation objects to be displayed.
|
|
394
|
+
* The itemType in these objects are used to group them together in the popover
|
|
395
|
+
* isLoading: loading flag that tells if a dot progress should be displayed if data is being fetched
|
|
396
|
+
* }
|
|
397
|
+
* @return {*} {JSX.Element} Popover with data information buttons based on the provided DataInformation objects
|
|
398
398
|
*/
|
|
399
399
|
var DataInfoPopover = function DataInfoPopover(_ref) {
|
|
400
400
|
var dataToShow = _ref.dataToShow,
|
|
@@ -455,16 +455,16 @@ var css_248z$y = ".buttonWithPopover-module_button__FDyTt{background-color:var(-
|
|
|
455
455
|
var style$8 = {"button":"buttonWithPopover-module_button__FDyTt","wrapper":"buttonWithPopover-module_wrapper__-pQfB","spinner":"buttonWithPopover-module_spinner__LMbqe"};
|
|
456
456
|
styleInject(css_248z$y);
|
|
457
457
|
|
|
458
|
-
/**
|
|
459
|
-
* Component that renders a round button, that opens a popover upon being clicked
|
|
460
|
-
*
|
|
461
|
-
* @param {ButtonWithPopoverProps} {
|
|
462
|
-
* onShowMoreClicked: method called upon button clicked
|
|
463
|
-
* fetchedData: array of DataInformation that popover should be displayed when button is clicked.
|
|
464
|
-
* Meant to be the return value of the fetchDataToShow method
|
|
465
|
-
* isLoading: flag to show loading state if data fetch takes some time
|
|
466
|
-
* expanded: flag to determine if popover should be expanded or not
|
|
467
|
-
* @return {*} {JSX.Element} Round button with belonging popover to display data information buttons
|
|
458
|
+
/**
|
|
459
|
+
* Component that renders a round button, that opens a popover upon being clicked
|
|
460
|
+
*
|
|
461
|
+
* @param {ButtonWithPopoverProps} {
|
|
462
|
+
* onShowMoreClicked: method called upon button clicked
|
|
463
|
+
* fetchedData: array of DataInformation that popover should be displayed when button is clicked.
|
|
464
|
+
* Meant to be the return value of the fetchDataToShow method
|
|
465
|
+
* isLoading: flag to show loading state if data fetch takes some time
|
|
466
|
+
* expanded: flag to determine if popover should be expanded or not
|
|
467
|
+
* @return {*} {JSX.Element} Round button with belonging popover to display data information buttons
|
|
468
468
|
*/
|
|
469
469
|
var ButtonWithPopover = function ButtonWithPopover(_ref) {
|
|
470
470
|
var onShowMoreClicked = _ref.onShowMoreClicked,
|
|
@@ -507,14 +507,14 @@ var css_248z$x = ".tagIcon-module_icon__FVhlT{border:3px solid var(--white);bord
|
|
|
507
507
|
var styles$n = {"icon":"tagIcon-module_icon__FVhlT","shadow":"tagIcon-module_shadow__dAk0l"};
|
|
508
508
|
styleInject(css_248z$x);
|
|
509
509
|
|
|
510
|
-
/**
|
|
511
|
-
* Component that will wrap the provided icon with a background color (usually the legend color)
|
|
512
|
-
*
|
|
513
|
-
* @param {TagIconProps} {
|
|
514
|
-
* icon: Icon to be wrapped
|
|
515
|
-
* legendColor: background color to apply. Need to be valid css color
|
|
516
|
-
* }
|
|
517
|
-
* @return {*} {JSX.Element} Wrapped icon with provided color
|
|
510
|
+
/**
|
|
511
|
+
* Component that will wrap the provided icon with a background color (usually the legend color)
|
|
512
|
+
*
|
|
513
|
+
* @param {TagIconProps} {
|
|
514
|
+
* icon: Icon to be wrapped
|
|
515
|
+
* legendColor: background color to apply. Need to be valid css color
|
|
516
|
+
* }
|
|
517
|
+
* @return {*} {JSX.Element} Wrapped icon with provided color
|
|
518
518
|
*/
|
|
519
519
|
var TagIcon = function TagIcon(_ref) {
|
|
520
520
|
var icon = _ref.icon,
|
|
@@ -527,12 +527,12 @@ var TagIcon = function TagIcon(_ref) {
|
|
|
527
527
|
}, icon);
|
|
528
528
|
};
|
|
529
529
|
|
|
530
|
-
/**
|
|
531
|
-
* Component that will wrap the provided child element in a shadow.
|
|
532
|
-
* Should be used to add shadow to the tagIcon component
|
|
533
|
-
*
|
|
534
|
-
* @param {TagIconShadowWrapperProps} { children } Child element to wrap
|
|
535
|
-
* @return {*} {JSX.Element} wrapped child element in a shadow
|
|
530
|
+
/**
|
|
531
|
+
* Component that will wrap the provided child element in a shadow.
|
|
532
|
+
* Should be used to add shadow to the tagIcon component
|
|
533
|
+
*
|
|
534
|
+
* @param {TagIconShadowWrapperProps} { children } Child element to wrap
|
|
535
|
+
* @return {*} {JSX.Element} wrapped child element in a shadow
|
|
536
536
|
*/
|
|
537
537
|
var TagIconShadowWrapper = function TagIconShadowWrapper(_ref) {
|
|
538
538
|
var children = _ref.children;
|
|
@@ -545,22 +545,22 @@ var css_248z$w = ".tagContextMenu-module_contextWrapper__o8wWz{border-radius:10r
|
|
|
545
545
|
var styles$m = {"contextWrapper":"tagContextMenu-module_contextWrapper__o8wWz","contextWrapperExpanded":"tagContextMenu-module_contextWrapperExpanded__FJI8c","selected":"tagContextMenu-module_selected__4L6WK","tagInfoWrapper":"tagContextMenu-module_tagInfoWrapper__y4LBf","tagText":"tagContextMenu-module_tagText__8GaFk","tagHeader":"tagContextMenu-module_tagHeader__NW1El","tagDescription":"tagContextMenu-module_tagDescription__lrT1D","tagInfoIcon":"tagContextMenu-module_tagInfoIcon__AMpqu"};
|
|
546
546
|
styleInject(css_248z$w);
|
|
547
547
|
|
|
548
|
-
/**
|
|
549
|
-
* Component that renders a tag context menu that can be expanded and closed upon click
|
|
550
|
-
* The condensed variant will only display the the relevant tag icon
|
|
551
|
-
* The expanded variant will display relevant tag icon, tag number and tag description
|
|
552
|
-
*
|
|
553
|
-
* @param {TagContextMenuProps} {
|
|
554
|
-
* expanded: flag that state if the context menu should be expanded or not
|
|
555
|
-
* setExpanded: method to update the expanded flag
|
|
556
|
-
* tagNo: the tag no to display
|
|
557
|
-
* description: the tag description
|
|
558
|
-
* openTagInformation: method called when expanded context menu is called
|
|
559
|
-
* selected: Flag to handle if there are multiple context menu's on a page, and a selected style should be applied
|
|
560
|
-
* selectedClassName: styling used to handle multiple tag visible on the page at the same time, class will be added to tagIcon when context menu is not expanded
|
|
561
|
-
* children: Meant to be used to pass TagIcon component to this component
|
|
562
|
-
* }
|
|
563
|
-
* @return {*} {JSX.Element} a tag context menu for the provided properties
|
|
548
|
+
/**
|
|
549
|
+
* Component that renders a tag context menu that can be expanded and closed upon click
|
|
550
|
+
* The condensed variant will only display the the relevant tag icon
|
|
551
|
+
* The expanded variant will display relevant tag icon, tag number and tag description
|
|
552
|
+
*
|
|
553
|
+
* @param {TagContextMenuProps} {
|
|
554
|
+
* expanded: flag that state if the context menu should be expanded or not
|
|
555
|
+
* setExpanded: method to update the expanded flag
|
|
556
|
+
* tagNo: the tag no to display
|
|
557
|
+
* description: the tag description
|
|
558
|
+
* openTagInformation: method called when expanded context menu is called
|
|
559
|
+
* selected: Flag to handle if there are multiple context menu's on a page, and a selected style should be applied
|
|
560
|
+
* selectedClassName: styling used to handle multiple tag visible on the page at the same time, class will be added to tagIcon when context menu is not expanded
|
|
561
|
+
* children: Meant to be used to pass TagIcon component to this component
|
|
562
|
+
* }
|
|
563
|
+
* @return {*} {JSX.Element} a tag context menu for the provided properties
|
|
564
564
|
*/
|
|
565
565
|
var TagContextMenu = function TagContextMenu(_ref) {
|
|
566
566
|
var expanded = _ref.expanded,
|
|
@@ -609,24 +609,24 @@ var css_248z$v = ".contextMenu-module_wrapper__p-0Zc{display:flex;flex-wrap:wrap
|
|
|
609
609
|
var style$7 = {"wrapper":"contextMenu-module_wrapper__p-0Zc"};
|
|
610
610
|
styleInject(css_248z$v);
|
|
611
611
|
|
|
612
|
-
/**
|
|
613
|
-
* Component that renders full context menu functionality, meant for displaying tag context menu.
|
|
614
|
-
* With the ability to provide more information button and related popover that should be wrapped with the context menu
|
|
615
|
-
*
|
|
616
|
-
* @param {ContextMenuProps} {
|
|
617
|
-
* icon: icon to be displayed
|
|
618
|
-
* expanded: flag to determine if context menu should be expanded or not
|
|
619
|
-
* legendColor: color used for the tag icon
|
|
620
|
-
* setExpanded: method to update expanded flag
|
|
621
|
-
* tagNo: The tag number to display
|
|
622
|
-
* description: The tag description to display
|
|
623
|
-
* positionStyle: The position styling element used to position the context menu
|
|
624
|
-
* openTagInformation: Method that will be called when expanded context menu is clicked
|
|
625
|
-
* selected: Flag to handle if there are multiple context menu's on a page, and a selected style should be applied
|
|
626
|
-
* selectedClassName: styling used to handle multiple tag visible on the page at the same time, class will be added to tagIcon when context menu is not expanded
|
|
627
|
-
* children: Related elements to display, e.g. more information button
|
|
628
|
-
* }
|
|
629
|
-
* @return {*} {JSX.Element} Context menu with relevant children wrapped
|
|
612
|
+
/**
|
|
613
|
+
* Component that renders full context menu functionality, meant for displaying tag context menu.
|
|
614
|
+
* With the ability to provide more information button and related popover that should be wrapped with the context menu
|
|
615
|
+
*
|
|
616
|
+
* @param {ContextMenuProps} {
|
|
617
|
+
* icon: icon to be displayed
|
|
618
|
+
* expanded: flag to determine if context menu should be expanded or not
|
|
619
|
+
* legendColor: color used for the tag icon
|
|
620
|
+
* setExpanded: method to update expanded flag
|
|
621
|
+
* tagNo: The tag number to display
|
|
622
|
+
* description: The tag description to display
|
|
623
|
+
* positionStyle: The position styling element used to position the context menu
|
|
624
|
+
* openTagInformation: Method that will be called when expanded context menu is clicked
|
|
625
|
+
* selected: Flag to handle if there are multiple context menu's on a page, and a selected style should be applied
|
|
626
|
+
* selectedClassName: styling used to handle multiple tag visible on the page at the same time, class will be added to tagIcon when context menu is not expanded
|
|
627
|
+
* children: Related elements to display, e.g. more information button
|
|
628
|
+
* }
|
|
629
|
+
* @return {*} {JSX.Element} Context menu with relevant children wrapped
|
|
630
630
|
*/
|
|
631
631
|
var ContextMenu = function ContextMenu(_ref) {
|
|
632
632
|
var icon = _ref.icon,
|
|
@@ -13527,19 +13527,19 @@ var css_248z$q = ".dialogGenerator-module_footer__h-ido{box-sizing:border-box;di
|
|
|
13527
13527
|
var styles$l = {"footer":"dialogGenerator-module_footer__h-ido"};
|
|
13528
13528
|
styleInject(css_248z$q);
|
|
13529
13529
|
|
|
13530
|
-
/**
|
|
13531
|
-
* Component that renders a dialog box based on input properties
|
|
13532
|
-
*
|
|
13533
|
-
* @param {DialogGeneratorProps} {
|
|
13534
|
-
* dialogStyle: style property to override existing styling on the dialog wrapper
|
|
13535
|
-
* title: the title of the dialog
|
|
13536
|
-
* children: The main content of the dialog
|
|
13537
|
-
* actionButtons: the buttons to show in the dialog
|
|
13538
|
-
* open: if the dialog should be open
|
|
13539
|
-
* isDismissable: if the modal is closable by clicking aside or by hitting ESC key
|
|
13540
|
-
* onClose: callback to be called when the dialog is closed
|
|
13541
|
-
* }
|
|
13542
|
-
* @return {*} {JSX.Element} Dialog component
|
|
13530
|
+
/**
|
|
13531
|
+
* Component that renders a dialog box based on input properties
|
|
13532
|
+
*
|
|
13533
|
+
* @param {DialogGeneratorProps} {
|
|
13534
|
+
* dialogStyle: style property to override existing styling on the dialog wrapper
|
|
13535
|
+
* title: the title of the dialog
|
|
13536
|
+
* children: The main content of the dialog
|
|
13537
|
+
* actionButtons: the buttons to show in the dialog
|
|
13538
|
+
* open: if the dialog should be open
|
|
13539
|
+
* isDismissable: if the modal is closable by clicking aside or by hitting ESC key
|
|
13540
|
+
* onClose: callback to be called when the dialog is closed
|
|
13541
|
+
* }
|
|
13542
|
+
* @return {*} {JSX.Element} Dialog component
|
|
13543
13543
|
*/
|
|
13544
13544
|
var DialogGenerator = function DialogGenerator(_ref) {
|
|
13545
13545
|
var dialogStyle = _ref.dialogStyle,
|
|
@@ -14498,24 +14498,24 @@ var _EchoUtils$Hooks = EchoUtils.Hooks,
|
|
|
14498
14498
|
useFocus$1 = _EchoUtils$Hooks.useFocus,
|
|
14499
14499
|
useOnOutsideClick = _EchoUtils$Hooks.useOnOutsideClick;
|
|
14500
14500
|
var generateRandomId = EchoUtils.Utils.generateRandomId;
|
|
14501
|
-
/**
|
|
14502
|
-
* Component that renders a dropdown menu, e.g., for a plant selector.
|
|
14503
|
-
* Additional possibility to make the list searchable by adding a search field.
|
|
14504
|
-
* @param {DropdownItemProps} {
|
|
14505
|
-
* selected: The item that is currently selected from the list.
|
|
14506
|
-
* data: The list of data items to be displayed in the dropdown.
|
|
14507
|
-
* placeholder: Placeholder text to be displayed when no item is selected.
|
|
14508
|
-
* openDownWards: Flag which decides if the menu is opened downwards or upwards.
|
|
14509
|
-
* filterFunc: Function which filters the list of data based on the value of the search field.
|
|
14510
|
-
* setSelected: Function for setting the selected item.
|
|
14511
|
-
* isDisabled: Flag which disables the dropdown.
|
|
14512
|
-
* disabledText: The title text that displays when the dropdown is disabled.
|
|
14513
|
-
* variant: Decides which style the dropdown should have. Either default or compact.
|
|
14514
|
-
* showSearch: Flag which decides whether we should include the search field or not.
|
|
14515
|
-
* position: Determines if the dropdown position should be relative or absolute.
|
|
14516
|
-
* triggerOpen: Callback to trigger when the dropdown is opened.
|
|
14517
|
-
* }
|
|
14518
|
-
* @return {*} {JSX.Element} The dropdown component.
|
|
14501
|
+
/**
|
|
14502
|
+
* Component that renders a dropdown menu, e.g., for a plant selector.
|
|
14503
|
+
* Additional possibility to make the list searchable by adding a search field.
|
|
14504
|
+
* @param {DropdownItemProps} {
|
|
14505
|
+
* selected: The item that is currently selected from the list.
|
|
14506
|
+
* data: The list of data items to be displayed in the dropdown.
|
|
14507
|
+
* placeholder: Placeholder text to be displayed when no item is selected.
|
|
14508
|
+
* openDownWards: Flag which decides if the menu is opened downwards or upwards.
|
|
14509
|
+
* filterFunc: Function which filters the list of data based on the value of the search field.
|
|
14510
|
+
* setSelected: Function for setting the selected item.
|
|
14511
|
+
* isDisabled: Flag which disables the dropdown.
|
|
14512
|
+
* disabledText: The title text that displays when the dropdown is disabled.
|
|
14513
|
+
* variant: Decides which style the dropdown should have. Either default or compact.
|
|
14514
|
+
* showSearch: Flag which decides whether we should include the search field or not.
|
|
14515
|
+
* position: Determines if the dropdown position should be relative or absolute.
|
|
14516
|
+
* triggerOpen: Callback to trigger when the dropdown is opened.
|
|
14517
|
+
* }
|
|
14518
|
+
* @return {*} {JSX.Element} The dropdown component.
|
|
14519
14519
|
*/
|
|
14520
14520
|
var Dropdown = function Dropdown(_ref) {
|
|
14521
14521
|
var selected = _ref.selected,
|
|
@@ -14916,16 +14916,16 @@ var css_248z$m = ".echoHeader-module_headerWrapper__1aaPR{background-color:#fff;
|
|
|
14916
14916
|
var styles$i = {"headerWrapper":"echoHeader-module_headerWrapper__1aaPR","headerContainer":"echoHeader-module_headerContainer__jHC0e","moduleIcon":"echoHeader-module_moduleIcon__-U7mU","titleSection":"echoHeader-module_titleSection__macuj","moduleTextTitle":"echoHeader-module_moduleTextTitle__CiJzX","plantName":"echoHeader-module_plantName__eNNEy","customSection":"echoHeader-module_customSection__gGG2C"};
|
|
14917
14917
|
styleInject(css_248z$m);
|
|
14918
14918
|
|
|
14919
|
-
/**
|
|
14920
|
-
* Component that renders the Echo header
|
|
14921
|
-
*
|
|
14922
|
-
* @param {EchoHeaderProps} {
|
|
14923
|
-
* moduleTitle: the title of the module
|
|
14924
|
-
* moduleIcon: the module Icon
|
|
14925
|
-
* plantName: show the plant name next to the module title
|
|
14926
|
-
* customSection: a section in the header where there can be custom components
|
|
14927
|
-
* }
|
|
14928
|
-
* @returns {*} {JSX.Element} Echo header with custom section
|
|
14919
|
+
/**
|
|
14920
|
+
* Component that renders the Echo header
|
|
14921
|
+
*
|
|
14922
|
+
* @param {EchoHeaderProps} {
|
|
14923
|
+
* moduleTitle: the title of the module
|
|
14924
|
+
* moduleIcon: the module Icon
|
|
14925
|
+
* plantName: show the plant name next to the module title
|
|
14926
|
+
* customSection: a section in the header where there can be custom components
|
|
14927
|
+
* }
|
|
14928
|
+
* @returns {*} {JSX.Element} Echo header with custom section
|
|
14929
14929
|
*/
|
|
14930
14930
|
var EchoHeader = function EchoHeader(_ref) {
|
|
14931
14931
|
var _ref$moduleTitle = _ref.moduleTitle,
|
|
@@ -16970,10 +16970,10 @@ var getEchoVariantStyle = function getEchoVariantStyle(echoVariant) {
|
|
|
16970
16970
|
return '';
|
|
16971
16971
|
}
|
|
16972
16972
|
};
|
|
16973
|
-
/**
|
|
16974
|
-
* Floating actions buttons exists within the viewport, seperated from any sheet, dialog or menu
|
|
16975
|
-
* and are typically used for special actions pertaining to the module they are used in.
|
|
16976
|
-
* @return {*} {JSX.Element} Floating actions button
|
|
16973
|
+
/**
|
|
16974
|
+
* Floating actions buttons exists within the viewport, seperated from any sheet, dialog or menu
|
|
16975
|
+
* and are typically used for special actions pertaining to the module they are used in.
|
|
16976
|
+
* @return {*} {JSX.Element} Floating actions button
|
|
16977
16977
|
*/
|
|
16978
16978
|
var FloatingActionButton = function FloatingActionButton(_ref) {
|
|
16979
16979
|
var label = _ref.label,
|
|
@@ -17020,9 +17020,9 @@ var useEventListener = function useEventListener(eventName, handler, options) {
|
|
|
17020
17020
|
};
|
|
17021
17021
|
|
|
17022
17022
|
var useInitial = EchoUtils.Hooks.useInitial;
|
|
17023
|
-
/**
|
|
17024
|
-
* Hook for checking if page is loaded from mobile device.
|
|
17025
|
-
* @returns boolean true if on mobile.
|
|
17023
|
+
/**
|
|
17024
|
+
* Hook for checking if page is loaded from mobile device.
|
|
17025
|
+
* @returns boolean true if on mobile.
|
|
17026
17026
|
*/
|
|
17027
17027
|
function useIsMobile() {
|
|
17028
17028
|
var _useState = useState(false),
|
|
@@ -17082,11 +17082,11 @@ var useListNavigator = function useListNavigator(listLength) {
|
|
|
17082
17082
|
}, listenerTarget);
|
|
17083
17083
|
return currIndex;
|
|
17084
17084
|
};
|
|
17085
|
-
/**
|
|
17086
|
-
* 1. On open: focus should be undefined/inactive. (list should scroll/show selected item if any).
|
|
17087
|
-
* 2. user presses a key (usually down) - scroll list to focused element, which should be first item
|
|
17088
|
-
* in the first section. Also set focused section.
|
|
17089
|
-
* 3. Potentially jump to last in list if user goes up?
|
|
17085
|
+
/**
|
|
17086
|
+
* 1. On open: focus should be undefined/inactive. (list should scroll/show selected item if any).
|
|
17087
|
+
* 2. user presses a key (usually down) - scroll list to focused element, which should be first item
|
|
17088
|
+
* in the first section. Also set focused section.
|
|
17089
|
+
* 3. Potentially jump to last in list if user goes up?
|
|
17090
17090
|
*/
|
|
17091
17091
|
var useSectionNavigator = function useSectionNavigator(sections, initialSelected, keyboardEvents) {
|
|
17092
17092
|
var listenerTarget = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : document;
|
|
@@ -17457,23 +17457,23 @@ var TagCategoryType;
|
|
|
17457
17457
|
TagCategoryType["JunctionBox"] = "junction box";
|
|
17458
17458
|
TagCategoryType["Administrative"] = "administrative";
|
|
17459
17459
|
})(TagCategoryType || (TagCategoryType = {}));
|
|
17460
|
-
/**
|
|
17461
|
-
* Method that returns the relevant Icon for the tagCategoryDescription provided
|
|
17462
|
-
* Tag icon is the default JSX.Element Icon returned
|
|
17463
|
-
* @export
|
|
17464
|
-
* @param {('electrical'
|
|
17465
|
-
* | 'main equipment'
|
|
17466
|
-
* | 'line'
|
|
17467
|
-
* | 'manual valve'
|
|
17468
|
-
* | 'circuit/starter'
|
|
17469
|
-
* | 'instrument'
|
|
17470
|
-
* | 'cable'
|
|
17471
|
-
* | 'function'
|
|
17472
|
-
* | 'signal'
|
|
17473
|
-
* | 'telecom'
|
|
17474
|
-
* | 'junction box'
|
|
17475
|
-
* | 'administrative'
|
|
17476
|
-
* @return {*} {JSX.Element} Relevant icon for the provided tagCategoryDescription
|
|
17460
|
+
/**
|
|
17461
|
+
* Method that returns the relevant Icon for the tagCategoryDescription provided
|
|
17462
|
+
* Tag icon is the default JSX.Element Icon returned
|
|
17463
|
+
* @export
|
|
17464
|
+
* @param {('electrical'
|
|
17465
|
+
* | 'main equipment'
|
|
17466
|
+
* | 'line'
|
|
17467
|
+
* | 'manual valve'
|
|
17468
|
+
* | 'circuit/starter'
|
|
17469
|
+
* | 'instrument'
|
|
17470
|
+
* | 'cable'
|
|
17471
|
+
* | 'function'
|
|
17472
|
+
* | 'signal'
|
|
17473
|
+
* | 'telecom'
|
|
17474
|
+
* | 'junction box'
|
|
17475
|
+
* | 'administrative'
|
|
17476
|
+
* @return {*} {JSX.Element} Relevant icon for the provided tagCategoryDescription
|
|
17477
17477
|
*/
|
|
17478
17478
|
var TagCategoryIcon = function TagCategoryIcon(_ref) {
|
|
17479
17479
|
var tagCategoryDescription = _ref.tagCategoryDescription;
|
|
@@ -17540,12 +17540,12 @@ function getIcon(tagCategoryDescription) {
|
|
|
17540
17540
|
});
|
|
17541
17541
|
}
|
|
17542
17542
|
|
|
17543
|
-
/**
|
|
17544
|
-
* Floating search bar
|
|
17545
|
-
*
|
|
17546
|
-
* @param {FloatingSearchBarProps} {
|
|
17547
|
-
* }
|
|
17548
|
-
* @return {*} {JSX.Element}
|
|
17543
|
+
/**
|
|
17544
|
+
* Floating search bar
|
|
17545
|
+
*
|
|
17546
|
+
* @param {FloatingSearchBarProps} {
|
|
17547
|
+
* }
|
|
17548
|
+
* @return {*} {JSX.Element}
|
|
17549
17549
|
*/
|
|
17550
17550
|
var FloatingSearchBar = function FloatingSearchBar(_ref) {
|
|
17551
17551
|
var ariaLabel = _ref.ariaLabel,
|
|
@@ -22038,15 +22038,15 @@ Please read the updated README.md at https://github.com/SortableJS/react-sortabl
|
|
|
22038
22038
|
} (dist));
|
|
22039
22039
|
|
|
22040
22040
|
var DraggableHandleSelector = 'globalDraggableHandle';
|
|
22041
|
-
/**
|
|
22042
|
-
* Component that renders a wrapper for items that are draggable
|
|
22043
|
-
*
|
|
22044
|
-
* @param {DraggableItemsWrapperProps} {
|
|
22045
|
-
* style: style element to override wrapper style
|
|
22046
|
-
* onChange: method that will be called when elements have be reordered inside the wrapper
|
|
22047
|
-
* children: list of elements that can be reordered
|
|
22048
|
-
* }
|
|
22049
|
-
* @return {*} {JSX.Element}
|
|
22041
|
+
/**
|
|
22042
|
+
* Component that renders a wrapper for items that are draggable
|
|
22043
|
+
*
|
|
22044
|
+
* @param {DraggableItemsWrapperProps} {
|
|
22045
|
+
* style: style element to override wrapper style
|
|
22046
|
+
* onChange: method that will be called when elements have be reordered inside the wrapper
|
|
22047
|
+
* children: list of elements that can be reordered
|
|
22048
|
+
* }
|
|
22049
|
+
* @return {*} {JSX.Element}
|
|
22050
22050
|
*/
|
|
22051
22051
|
var DraggableItemsWrapper = function DraggableItemsWrapper(_ref) {
|
|
22052
22052
|
var style = _ref.style,
|
|
@@ -22091,16 +22091,16 @@ var css_248z$h = ".radioButton-module_buttonWrapper__gzYAz span,.radioButton-mod
|
|
|
22091
22091
|
var styles$f = {"header":"radioButton-module_header__f6AoN","buttonWrapper":"radioButton-module_buttonWrapper__gzYAz"};
|
|
22092
22092
|
styleInject(css_248z$h);
|
|
22093
22093
|
|
|
22094
|
-
/**
|
|
22095
|
-
* Component that renders a Radio Button Group with a set of options to choose from
|
|
22096
|
-
*
|
|
22097
|
-
* @param {RadioButtonGroupProps} {
|
|
22098
|
-
* title: The title of the radio button group,
|
|
22099
|
-
* options: List of items to be displayed as options,
|
|
22100
|
-
* style: Style element to override wrapper style,
|
|
22101
|
-
* onSelected: Method to be called when the selected value is changed
|
|
22102
|
-
* }
|
|
22103
|
-
* @return {*} {JSX.Element}
|
|
22094
|
+
/**
|
|
22095
|
+
* Component that renders a Radio Button Group with a set of options to choose from
|
|
22096
|
+
*
|
|
22097
|
+
* @param {RadioButtonGroupProps} {
|
|
22098
|
+
* title: The title of the radio button group,
|
|
22099
|
+
* options: List of items to be displayed as options,
|
|
22100
|
+
* style: Style element to override wrapper style,
|
|
22101
|
+
* onSelected: Method to be called when the selected value is changed
|
|
22102
|
+
* }
|
|
22103
|
+
* @return {*} {JSX.Element}
|
|
22104
22104
|
*/
|
|
22105
22105
|
var RadioButtonGroup = function RadioButtonGroup(_ref) {
|
|
22106
22106
|
var title = _ref.title,
|
|
@@ -22164,19 +22164,19 @@ var css_248z$f = ".sliderField-module_sliderField__gp6ce{display:flex;flex-direc
|
|
|
22164
22164
|
var styles$e = {"sliderField":"sliderField-module_sliderField__gp6ce","sliderWrapper":"sliderField-module_sliderWrapper__pAwLd"};
|
|
22165
22165
|
styleInject(css_248z$f);
|
|
22166
22166
|
|
|
22167
|
-
/**
|
|
22168
|
-
* Component that renders a slider with numeric or custom values
|
|
22169
|
-
*
|
|
22170
|
-
* @param {SliderFieldProps} {
|
|
22171
|
-
* value: Current value of the slider,
|
|
22172
|
-
* min: Minimum value of the slider,
|
|
22173
|
-
* max: Maximum value of the slider,
|
|
22174
|
-
* labels: List of labels to use if the slider should not display numeric values,
|
|
22175
|
-
* title: Text shown as title of the slider,
|
|
22176
|
-
* onChange: Method that will be called if the slider value is changed,
|
|
22177
|
-
* style: style element to override wrapper style
|
|
22178
|
-
* }
|
|
22179
|
-
* @return {*} {JSX.Element}
|
|
22167
|
+
/**
|
|
22168
|
+
* Component that renders a slider with numeric or custom values
|
|
22169
|
+
*
|
|
22170
|
+
* @param {SliderFieldProps} {
|
|
22171
|
+
* value: Current value of the slider,
|
|
22172
|
+
* min: Minimum value of the slider,
|
|
22173
|
+
* max: Maximum value of the slider,
|
|
22174
|
+
* labels: List of labels to use if the slider should not display numeric values,
|
|
22175
|
+
* title: Text shown as title of the slider,
|
|
22176
|
+
* onChange: Method that will be called if the slider value is changed,
|
|
22177
|
+
* style: style element to override wrapper style
|
|
22178
|
+
* }
|
|
22179
|
+
* @return {*} {JSX.Element}
|
|
22180
22180
|
*/
|
|
22181
22181
|
var SliderField = function SliderField(_ref) {
|
|
22182
22182
|
var value = _ref.value,
|
|
@@ -22222,16 +22222,16 @@ var css_248z$e = ".textIconButton-module_button__9s6rE{align-items:center;border
|
|
|
22222
22222
|
var styles$d = {"button":"textIconButton-module_button__9s6rE","text":"textIconButton-module_text__hw0bg"};
|
|
22223
22223
|
styleInject(css_248z$e);
|
|
22224
22224
|
|
|
22225
|
-
/**
|
|
22226
|
-
* Component that renders a button with the icon and the text provided
|
|
22227
|
-
*
|
|
22228
|
-
* @param {TextIconButtonProps} {
|
|
22229
|
-
* icon: the name of the icon to display
|
|
22230
|
-
* title: the title text that the button should display
|
|
22231
|
-
* onClick: the function that will be called when user clicks the button
|
|
22232
|
-
* style: Optional parameter that will override the button style
|
|
22233
|
-
* }
|
|
22234
|
-
* @return {*} {JSX.Element} A button with the provided icon and text
|
|
22225
|
+
/**
|
|
22226
|
+
* Component that renders a button with the icon and the text provided
|
|
22227
|
+
*
|
|
22228
|
+
* @param {TextIconButtonProps} {
|
|
22229
|
+
* icon: the name of the icon to display
|
|
22230
|
+
* title: the title text that the button should display
|
|
22231
|
+
* onClick: the function that will be called when user clicks the button
|
|
22232
|
+
* style: Optional parameter that will override the button style
|
|
22233
|
+
* }
|
|
22234
|
+
* @return {*} {JSX.Element} A button with the provided icon and text
|
|
22235
22235
|
*/
|
|
22236
22236
|
var TextIconButton = function TextIconButton(_ref) {
|
|
22237
22237
|
var icon = _ref.icon,
|
|
@@ -22258,24 +22258,24 @@ var css_248z$d = ".listRow-module_wrapper__j5Czq{border-bottom:1px solid #dcdcdc
|
|
|
22258
22258
|
var styles$c = {"wrapper":"listRow-module_wrapper__j5Czq","row":"listRow-module_row__5taKB","infoCol":"listRow-module_infoCol__fSiO5","draggable":"listRow-module_draggable__WoQYD","info":"listRow-module_info__fX3UU","iconCol":"listRow-module_iconCol__A4oE0","activeIconButton":"listRow-module_activeIconButton__GdFjq","iconButton":"listRow-module_iconButton__j9G0z","expandedRow":"listRow-module_expandedRow__DdJu5","close":"listRow-module_close__gdtqH"};
|
|
22259
22259
|
styleInject(css_248z$d);
|
|
22260
22260
|
|
|
22261
|
-
/**
|
|
22262
|
-
* Component that renders one row in a list. The row can be marked as draggable and expandable
|
|
22263
|
-
*
|
|
22264
|
-
* @param {ListRowProps} {
|
|
22265
|
-
* isDraggable: flag to indicate that the row can be rearranged in a list
|
|
22266
|
-
* item: { The item to be rendered in the row
|
|
22267
|
-
* title: the title of the item in the row
|
|
22268
|
-
* subtitle: the subtitle of the item in the row
|
|
22269
|
-
* icons: the icons that will be displayed on the same row, and their respective actions
|
|
22270
|
-
* }
|
|
22271
|
-
* expandable: { object with properties to handle if the row is expandable. If undefined the row cannot be expanded
|
|
22272
|
-
* iconItems: the items that will be displayed if row is expanded, and their respective actions
|
|
22273
|
-
* expanded: flag to indicate if the row is expanded or not
|
|
22274
|
-
* setExpanded: method that updates the expanded flag
|
|
22275
|
-
* }
|
|
22276
|
-
* style: style element to override wrapper style
|
|
22277
|
-
* }
|
|
22278
|
-
* @return {*} {JSX.Element} a row element to be used in a list
|
|
22261
|
+
/**
|
|
22262
|
+
* Component that renders one row in a list. The row can be marked as draggable and expandable
|
|
22263
|
+
*
|
|
22264
|
+
* @param {ListRowProps} {
|
|
22265
|
+
* isDraggable: flag to indicate that the row can be rearranged in a list
|
|
22266
|
+
* item: { The item to be rendered in the row
|
|
22267
|
+
* title: the title of the item in the row
|
|
22268
|
+
* subtitle: the subtitle of the item in the row
|
|
22269
|
+
* icons: the icons that will be displayed on the same row, and their respective actions
|
|
22270
|
+
* }
|
|
22271
|
+
* expandable: { object with properties to handle if the row is expandable. If undefined the row cannot be expanded
|
|
22272
|
+
* iconItems: the items that will be displayed if row is expanded, and their respective actions
|
|
22273
|
+
* expanded: flag to indicate if the row is expanded or not
|
|
22274
|
+
* setExpanded: method that updates the expanded flag
|
|
22275
|
+
* }
|
|
22276
|
+
* style: style element to override wrapper style
|
|
22277
|
+
* }
|
|
22278
|
+
* @return {*} {JSX.Element} a row element to be used in a list
|
|
22279
22279
|
*/
|
|
22280
22280
|
var ListRow = function ListRow(_ref) {
|
|
22281
22281
|
var isDraggable = _ref.isDraggable,
|
|
@@ -22351,31 +22351,29 @@ var css_248z$c = ".menuButton-module_button__qpHsn{align-items:center;border-lef
|
|
|
22351
22351
|
var styles$b = {"button":"menuButton-module_button__qpHsn","text":"menuButton-module_text__MiZeF","active":"menuButton-module_active__1Dznq"};
|
|
22352
22352
|
styleInject(css_248z$c);
|
|
22353
22353
|
|
|
22354
|
-
/**
|
|
22355
|
-
* The menu bottom items
|
|
22356
|
-
* On desktop it will have an active border on the left,
|
|
22357
|
-
* and on mobile the active border will be on the bottom
|
|
22358
|
-
* Contains an icon and a descriptive text
|
|
22359
|
-
* @param {*} {
|
|
22360
|
-
* text, the text below the icon, also displayed on hover
|
|
22361
|
-
* active, boolean describing the buttons active state
|
|
22362
|
-
* children, the icon to be displayed
|
|
22363
|
-
* onClick, the on click event
|
|
22364
|
-
*
|
|
22365
|
-
*
|
|
22366
|
-
* }
|
|
22367
|
-
* @return {*} {JSX.Element}
|
|
22354
|
+
/**
|
|
22355
|
+
* The menu bottom items
|
|
22356
|
+
* On desktop it will have an active border on the left,
|
|
22357
|
+
* and on mobile the active border will be on the bottom
|
|
22358
|
+
* Contains an icon and a descriptive text
|
|
22359
|
+
* @param {*} {
|
|
22360
|
+
* text, the text below the icon, also displayed on hover
|
|
22361
|
+
* active, boolean describing the buttons active state
|
|
22362
|
+
* children, the icon to be displayed
|
|
22363
|
+
* onClick, the on click event
|
|
22364
|
+
* id: the id of the button in case its needed
|
|
22365
|
+
* }
|
|
22366
|
+
* @return {*} {JSX.Element}
|
|
22368
22367
|
*/
|
|
22369
|
-
var MenuButton = function
|
|
22370
|
-
var text =
|
|
22371
|
-
active =
|
|
22372
|
-
children =
|
|
22373
|
-
onClick =
|
|
22374
|
-
|
|
22375
|
-
id = _ref.id;
|
|
22368
|
+
var MenuButton = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
22369
|
+
var text = props.text,
|
|
22370
|
+
active = props.active,
|
|
22371
|
+
children = props.children,
|
|
22372
|
+
onClick = props.onClick,
|
|
22373
|
+
id = props.id;
|
|
22376
22374
|
return /*#__PURE__*/React__default.createElement("button", {
|
|
22377
22375
|
title: text,
|
|
22378
|
-
ref:
|
|
22376
|
+
ref: ref,
|
|
22379
22377
|
type: "button",
|
|
22380
22378
|
onClick: onClick,
|
|
22381
22379
|
id: id,
|
|
@@ -22383,61 +22381,12 @@ var MenuButton = function MenuButton(_ref) {
|
|
|
22383
22381
|
}, children, /*#__PURE__*/React__default.createElement(Typography, {
|
|
22384
22382
|
className: styles$b.text
|
|
22385
22383
|
}, text));
|
|
22386
|
-
};
|
|
22384
|
+
});
|
|
22385
|
+
MenuButton.displayName = 'MenuButton';
|
|
22387
22386
|
MenuButton.defaultProps = {
|
|
22388
|
-
refValue: undefined,
|
|
22389
22387
|
id: ''
|
|
22390
22388
|
};
|
|
22391
22389
|
|
|
22392
|
-
/**
|
|
22393
|
-
* Panel context with default initialized values
|
|
22394
|
-
*
|
|
22395
|
-
*/
|
|
22396
|
-
var PanelContext = /*#__PURE__*/React__default.createContext({
|
|
22397
|
-
activePanel: undefined,
|
|
22398
|
-
panelSize: 'wide',
|
|
22399
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- need to match interface
|
|
22400
|
-
updateActivePanel: function updateActivePanel(newActivePanel) {
|
|
22401
|
-
throw new Error('Panel Context not initialized use Panel component');
|
|
22402
|
-
},
|
|
22403
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- need to match interface
|
|
22404
|
-
updatePanelSize: function updatePanelSize(newPanelSize) {
|
|
22405
|
-
throw new Error('Panel Context not initialized use Panel component');
|
|
22406
|
-
}
|
|
22407
|
-
});
|
|
22408
|
-
/**
|
|
22409
|
-
* The panel context wrapper that should be used within Panel component to store the state of the panel
|
|
22410
|
-
*
|
|
22411
|
-
*/
|
|
22412
|
-
var PanelContextWrapper = function PanelContextWrapper(_ref) {
|
|
22413
|
-
var children = _ref.children;
|
|
22414
|
-
var _React$useState = React__default.useState(undefined),
|
|
22415
|
-
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
22416
|
-
activePanel = _React$useState2[0],
|
|
22417
|
-
setActivePanel = _React$useState2[1];
|
|
22418
|
-
var updateActivePanel = React__default.useCallback(function (newActivePanel) {
|
|
22419
|
-
return setActivePanel(newActivePanel);
|
|
22420
|
-
}, []);
|
|
22421
|
-
var _React$useState3 = React__default.useState('wide'),
|
|
22422
|
-
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
22423
|
-
panelSize = _React$useState4[0],
|
|
22424
|
-
setPanelSize = _React$useState4[1];
|
|
22425
|
-
var updatePanelSize = React__default.useCallback(function (newPanelSize) {
|
|
22426
|
-
return setPanelSize(newPanelSize);
|
|
22427
|
-
}, []);
|
|
22428
|
-
var value = React__default.useMemo(function () {
|
|
22429
|
-
return {
|
|
22430
|
-
activePanel: activePanel,
|
|
22431
|
-
updateActivePanel: updateActivePanel,
|
|
22432
|
-
panelSize: panelSize,
|
|
22433
|
-
updatePanelSize: updatePanelSize
|
|
22434
|
-
};
|
|
22435
|
-
}, [activePanel, panelSize, updateActivePanel, updatePanelSize]);
|
|
22436
|
-
return /*#__PURE__*/React__default.createElement(PanelContext.Provider, {
|
|
22437
|
-
value: value
|
|
22438
|
-
}, children);
|
|
22439
|
-
};
|
|
22440
|
-
|
|
22441
22390
|
/**
|
|
22442
22391
|
* lodash (Custom Build) <https://lodash.com/>
|
|
22443
22392
|
* Build: `lodash modularize exports="npm" -o ./`
|
|
@@ -22878,47 +22827,608 @@ function toNumber(value) {
|
|
|
22878
22827
|
|
|
22879
22828
|
var lodash_throttle = throttle;
|
|
22880
22829
|
|
|
22830
|
+
const createStoreImpl = (createState) => {
|
|
22831
|
+
let state;
|
|
22832
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
22833
|
+
const setState = (partial, replace) => {
|
|
22834
|
+
const nextState = typeof partial === "function" ? partial(state) : partial;
|
|
22835
|
+
if (!Object.is(nextState, state)) {
|
|
22836
|
+
const previousState = state;
|
|
22837
|
+
state = (replace != null ? replace : typeof nextState !== "object") ? nextState : Object.assign({}, state, nextState);
|
|
22838
|
+
listeners.forEach((listener) => listener(state, previousState));
|
|
22839
|
+
}
|
|
22840
|
+
};
|
|
22841
|
+
const getState = () => state;
|
|
22842
|
+
const subscribe = (listener) => {
|
|
22843
|
+
listeners.add(listener);
|
|
22844
|
+
return () => listeners.delete(listener);
|
|
22845
|
+
};
|
|
22846
|
+
const destroy = () => {
|
|
22847
|
+
if ((import.meta.env && import.meta.env.MODE) !== "production") {
|
|
22848
|
+
console.warn(
|
|
22849
|
+
"[DEPRECATED] The destroy method will be unsupported in the future version. You should use unsubscribe function returned by subscribe. Everything will be garbage collected if store is garbage collected."
|
|
22850
|
+
);
|
|
22851
|
+
}
|
|
22852
|
+
listeners.clear();
|
|
22853
|
+
};
|
|
22854
|
+
const api = { setState, getState, subscribe, destroy };
|
|
22855
|
+
state = createState(setState, getState, api);
|
|
22856
|
+
return api;
|
|
22857
|
+
};
|
|
22858
|
+
const createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;
|
|
22859
|
+
|
|
22860
|
+
var withSelectorExports = {};
|
|
22861
|
+
var withSelector = {
|
|
22862
|
+
get exports(){ return withSelectorExports; },
|
|
22863
|
+
set exports(v){ withSelectorExports = v; },
|
|
22864
|
+
};
|
|
22865
|
+
|
|
22866
|
+
var withSelector_production_min = {};
|
|
22867
|
+
|
|
22868
|
+
var shimExports = {};
|
|
22869
|
+
var shim = {
|
|
22870
|
+
get exports(){ return shimExports; },
|
|
22871
|
+
set exports(v){ shimExports = v; },
|
|
22872
|
+
};
|
|
22873
|
+
|
|
22874
|
+
var useSyncExternalStoreShim_production_min = {};
|
|
22875
|
+
|
|
22881
22876
|
/**
|
|
22882
|
-
*
|
|
22877
|
+
* @license React
|
|
22878
|
+
* use-sync-external-store-shim.production.min.js
|
|
22879
|
+
*
|
|
22880
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
22883
22881
|
*
|
|
22884
|
-
*
|
|
22885
|
-
*
|
|
22882
|
+
* This source code is licensed under the MIT license found in the
|
|
22883
|
+
* LICENSE file in the root directory of this source tree.
|
|
22886
22884
|
*/
|
|
22887
|
-
|
|
22888
|
-
|
|
22889
|
-
|
|
22890
|
-
|
|
22891
|
-
|
|
22892
|
-
|
|
22885
|
+
|
|
22886
|
+
var hasRequiredUseSyncExternalStoreShim_production_min;
|
|
22887
|
+
|
|
22888
|
+
function requireUseSyncExternalStoreShim_production_min () {
|
|
22889
|
+
if (hasRequiredUseSyncExternalStoreShim_production_min) return useSyncExternalStoreShim_production_min;
|
|
22890
|
+
hasRequiredUseSyncExternalStoreShim_production_min = 1;
|
|
22891
|
+
var e=React__default;function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k="function"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c});},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c});})},[a]);p(d);return d}
|
|
22892
|
+
function r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return !k(a,d)}catch(f){return !0}}function t(a,b){return b()}var u="undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement?t:q;useSyncExternalStoreShim_production_min.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;
|
|
22893
|
+
return useSyncExternalStoreShim_production_min;
|
|
22893
22894
|
}
|
|
22894
22895
|
|
|
22895
|
-
var
|
|
22896
|
-
var styles$a = {"wrapper":"panelWrapper-module_wrapper__asJxL","topBarWrapper":"panelWrapper-module_topBarWrapper__Nt84G","narrowPanel":"panelWrapper-module_narrowPanel__zW0DI","contentPanel":"panelWrapper-module_contentPanel__JWij5","activeContentPanel":"panelWrapper-module_activeContentPanel__1nAhR","buttonWrapperMobile":"panelWrapper-module_buttonWrapperMobile__pcR1V","buttonWrapper":"panelWrapper-module_buttonWrapper__xbmQI","moduleTitle":"panelWrapper-module_moduleTitle__4Wloo"};
|
|
22897
|
-
styleInject(css_248z$b);
|
|
22896
|
+
var useSyncExternalStoreShim_development = {};
|
|
22898
22897
|
|
|
22899
22898
|
/**
|
|
22900
|
-
*
|
|
22901
|
-
*
|
|
22902
|
-
*
|
|
22903
|
-
*
|
|
22904
|
-
*
|
|
22905
|
-
*
|
|
22906
|
-
*
|
|
22907
|
-
|
|
22908
|
-
|
|
22909
|
-
|
|
22910
|
-
|
|
22899
|
+
* @license React
|
|
22900
|
+
* use-sync-external-store-shim.development.js
|
|
22901
|
+
*
|
|
22902
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
22903
|
+
*
|
|
22904
|
+
* This source code is licensed under the MIT license found in the
|
|
22905
|
+
* LICENSE file in the root directory of this source tree.
|
|
22906
|
+
*/
|
|
22907
|
+
|
|
22908
|
+
var hasRequiredUseSyncExternalStoreShim_development;
|
|
22909
|
+
|
|
22910
|
+
function requireUseSyncExternalStoreShim_development () {
|
|
22911
|
+
if (hasRequiredUseSyncExternalStoreShim_development) return useSyncExternalStoreShim_development;
|
|
22912
|
+
hasRequiredUseSyncExternalStoreShim_development = 1;
|
|
22913
|
+
|
|
22914
|
+
if (process.env.NODE_ENV !== "production") {
|
|
22915
|
+
(function() {
|
|
22916
|
+
|
|
22917
|
+
/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
|
|
22918
|
+
if (
|
|
22919
|
+
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
|
|
22920
|
+
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===
|
|
22921
|
+
'function'
|
|
22922
|
+
) {
|
|
22923
|
+
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
|
|
22924
|
+
}
|
|
22925
|
+
var React = React__default;
|
|
22926
|
+
|
|
22927
|
+
var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
22928
|
+
|
|
22929
|
+
function error(format) {
|
|
22930
|
+
{
|
|
22931
|
+
{
|
|
22932
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
22933
|
+
args[_key2 - 1] = arguments[_key2];
|
|
22934
|
+
}
|
|
22935
|
+
|
|
22936
|
+
printWarning('error', format, args);
|
|
22937
|
+
}
|
|
22938
|
+
}
|
|
22939
|
+
}
|
|
22940
|
+
|
|
22941
|
+
function printWarning(level, format, args) {
|
|
22942
|
+
// When changing this logic, you might want to also
|
|
22943
|
+
// update consoleWithStackDev.www.js as well.
|
|
22944
|
+
{
|
|
22945
|
+
var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
|
|
22946
|
+
var stack = ReactDebugCurrentFrame.getStackAddendum();
|
|
22947
|
+
|
|
22948
|
+
if (stack !== '') {
|
|
22949
|
+
format += '%s';
|
|
22950
|
+
args = args.concat([stack]);
|
|
22951
|
+
} // eslint-disable-next-line react-internal/safe-string-coercion
|
|
22952
|
+
|
|
22953
|
+
|
|
22954
|
+
var argsWithFormat = args.map(function (item) {
|
|
22955
|
+
return String(item);
|
|
22956
|
+
}); // Careful: RN currently depends on this prefix
|
|
22957
|
+
|
|
22958
|
+
argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
|
|
22959
|
+
// breaks IE9: https://github.com/facebook/react/issues/13610
|
|
22960
|
+
// eslint-disable-next-line react-internal/no-production-logging
|
|
22961
|
+
|
|
22962
|
+
Function.prototype.apply.call(console[level], console, argsWithFormat);
|
|
22963
|
+
}
|
|
22964
|
+
}
|
|
22965
|
+
|
|
22966
|
+
/**
|
|
22967
|
+
* inlined Object.is polyfill to avoid requiring consumers ship their own
|
|
22968
|
+
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
|
|
22969
|
+
*/
|
|
22970
|
+
function is(x, y) {
|
|
22971
|
+
return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare
|
|
22972
|
+
;
|
|
22973
|
+
}
|
|
22974
|
+
|
|
22975
|
+
var objectIs = typeof Object.is === 'function' ? Object.is : is;
|
|
22976
|
+
|
|
22977
|
+
// dispatch for CommonJS interop named imports.
|
|
22978
|
+
|
|
22979
|
+
var useState = React.useState,
|
|
22980
|
+
useEffect = React.useEffect,
|
|
22981
|
+
useLayoutEffect = React.useLayoutEffect,
|
|
22982
|
+
useDebugValue = React.useDebugValue;
|
|
22983
|
+
var didWarnOld18Alpha = false;
|
|
22984
|
+
var didWarnUncachedGetSnapshot = false; // Disclaimer: This shim breaks many of the rules of React, and only works
|
|
22985
|
+
// because of a very particular set of implementation details and assumptions
|
|
22986
|
+
// -- change any one of them and it will break. The most important assumption
|
|
22987
|
+
// is that updates are always synchronous, because concurrent rendering is
|
|
22988
|
+
// only available in versions of React that also have a built-in
|
|
22989
|
+
// useSyncExternalStore API. And we only use this shim when the built-in API
|
|
22990
|
+
// does not exist.
|
|
22991
|
+
//
|
|
22992
|
+
// Do not assume that the clever hacks used by this hook also work in general.
|
|
22993
|
+
// The point of this shim is to replace the need for hacks by other libraries.
|
|
22994
|
+
|
|
22995
|
+
function useSyncExternalStore(subscribe, getSnapshot, // Note: The shim does not use getServerSnapshot, because pre-18 versions of
|
|
22996
|
+
// React do not expose a way to check if we're hydrating. So users of the shim
|
|
22997
|
+
// will need to track that themselves and return the correct value
|
|
22998
|
+
// from `getSnapshot`.
|
|
22999
|
+
getServerSnapshot) {
|
|
23000
|
+
{
|
|
23001
|
+
if (!didWarnOld18Alpha) {
|
|
23002
|
+
if (React.startTransition !== undefined) {
|
|
23003
|
+
didWarnOld18Alpha = true;
|
|
23004
|
+
|
|
23005
|
+
error('You are using an outdated, pre-release alpha of React 18 that ' + 'does not support useSyncExternalStore. The ' + 'use-sync-external-store shim will not work correctly. Upgrade ' + 'to a newer pre-release.');
|
|
23006
|
+
}
|
|
23007
|
+
}
|
|
23008
|
+
} // Read the current snapshot from the store on every render. Again, this
|
|
23009
|
+
// breaks the rules of React, and only works here because of specific
|
|
23010
|
+
// implementation details, most importantly that updates are
|
|
23011
|
+
// always synchronous.
|
|
23012
|
+
|
|
23013
|
+
|
|
23014
|
+
var value = getSnapshot();
|
|
23015
|
+
|
|
23016
|
+
{
|
|
23017
|
+
if (!didWarnUncachedGetSnapshot) {
|
|
23018
|
+
var cachedValue = getSnapshot();
|
|
23019
|
+
|
|
23020
|
+
if (!objectIs(value, cachedValue)) {
|
|
23021
|
+
error('The result of getSnapshot should be cached to avoid an infinite loop');
|
|
23022
|
+
|
|
23023
|
+
didWarnUncachedGetSnapshot = true;
|
|
23024
|
+
}
|
|
23025
|
+
}
|
|
23026
|
+
} // Because updates are synchronous, we don't queue them. Instead we force a
|
|
23027
|
+
// re-render whenever the subscribed state changes by updating an some
|
|
23028
|
+
// arbitrary useState hook. Then, during render, we call getSnapshot to read
|
|
23029
|
+
// the current value.
|
|
23030
|
+
//
|
|
23031
|
+
// Because we don't actually use the state returned by the useState hook, we
|
|
23032
|
+
// can save a bit of memory by storing other stuff in that slot.
|
|
23033
|
+
//
|
|
23034
|
+
// To implement the early bailout, we need to track some things on a mutable
|
|
23035
|
+
// object. Usually, we would put that in a useRef hook, but we can stash it in
|
|
23036
|
+
// our useState hook instead.
|
|
23037
|
+
//
|
|
23038
|
+
// To force a re-render, we call forceUpdate({inst}). That works because the
|
|
23039
|
+
// new object always fails an equality check.
|
|
23040
|
+
|
|
23041
|
+
|
|
23042
|
+
var _useState = useState({
|
|
23043
|
+
inst: {
|
|
23044
|
+
value: value,
|
|
23045
|
+
getSnapshot: getSnapshot
|
|
23046
|
+
}
|
|
23047
|
+
}),
|
|
23048
|
+
inst = _useState[0].inst,
|
|
23049
|
+
forceUpdate = _useState[1]; // Track the latest getSnapshot function with a ref. This needs to be updated
|
|
23050
|
+
// in the layout phase so we can access it during the tearing check that
|
|
23051
|
+
// happens on subscribe.
|
|
23052
|
+
|
|
23053
|
+
|
|
23054
|
+
useLayoutEffect(function () {
|
|
23055
|
+
inst.value = value;
|
|
23056
|
+
inst.getSnapshot = getSnapshot; // Whenever getSnapshot or subscribe changes, we need to check in the
|
|
23057
|
+
// commit phase if there was an interleaved mutation. In concurrent mode
|
|
23058
|
+
// this can happen all the time, but even in synchronous mode, an earlier
|
|
23059
|
+
// effect may have mutated the store.
|
|
23060
|
+
|
|
23061
|
+
if (checkIfSnapshotChanged(inst)) {
|
|
23062
|
+
// Force a re-render.
|
|
23063
|
+
forceUpdate({
|
|
23064
|
+
inst: inst
|
|
23065
|
+
});
|
|
23066
|
+
}
|
|
23067
|
+
}, [subscribe, value, getSnapshot]);
|
|
23068
|
+
useEffect(function () {
|
|
23069
|
+
// Check for changes right before subscribing. Subsequent changes will be
|
|
23070
|
+
// detected in the subscription handler.
|
|
23071
|
+
if (checkIfSnapshotChanged(inst)) {
|
|
23072
|
+
// Force a re-render.
|
|
23073
|
+
forceUpdate({
|
|
23074
|
+
inst: inst
|
|
23075
|
+
});
|
|
23076
|
+
}
|
|
23077
|
+
|
|
23078
|
+
var handleStoreChange = function () {
|
|
23079
|
+
// TODO: Because there is no cross-renderer API for batching updates, it's
|
|
23080
|
+
// up to the consumer of this library to wrap their subscription event
|
|
23081
|
+
// with unstable_batchedUpdates. Should we try to detect when this isn't
|
|
23082
|
+
// the case and print a warning in development?
|
|
23083
|
+
// The store changed. Check if the snapshot changed since the last time we
|
|
23084
|
+
// read from the store.
|
|
23085
|
+
if (checkIfSnapshotChanged(inst)) {
|
|
23086
|
+
// Force a re-render.
|
|
23087
|
+
forceUpdate({
|
|
23088
|
+
inst: inst
|
|
23089
|
+
});
|
|
23090
|
+
}
|
|
23091
|
+
}; // Subscribe to the store and return a clean-up function.
|
|
23092
|
+
|
|
23093
|
+
|
|
23094
|
+
return subscribe(handleStoreChange);
|
|
23095
|
+
}, [subscribe]);
|
|
23096
|
+
useDebugValue(value);
|
|
23097
|
+
return value;
|
|
23098
|
+
}
|
|
23099
|
+
|
|
23100
|
+
function checkIfSnapshotChanged(inst) {
|
|
23101
|
+
var latestGetSnapshot = inst.getSnapshot;
|
|
23102
|
+
var prevValue = inst.value;
|
|
23103
|
+
|
|
23104
|
+
try {
|
|
23105
|
+
var nextValue = latestGetSnapshot();
|
|
23106
|
+
return !objectIs(prevValue, nextValue);
|
|
23107
|
+
} catch (error) {
|
|
23108
|
+
return true;
|
|
23109
|
+
}
|
|
23110
|
+
}
|
|
23111
|
+
|
|
23112
|
+
function useSyncExternalStore$1(subscribe, getSnapshot, getServerSnapshot) {
|
|
23113
|
+
// Note: The shim does not use getServerSnapshot, because pre-18 versions of
|
|
23114
|
+
// React do not expose a way to check if we're hydrating. So users of the shim
|
|
23115
|
+
// will need to track that themselves and return the correct value
|
|
23116
|
+
// from `getSnapshot`.
|
|
23117
|
+
return getSnapshot();
|
|
23118
|
+
}
|
|
23119
|
+
|
|
23120
|
+
var canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');
|
|
23121
|
+
|
|
23122
|
+
var isServerEnvironment = !canUseDOM;
|
|
23123
|
+
|
|
23124
|
+
var shim = isServerEnvironment ? useSyncExternalStore$1 : useSyncExternalStore;
|
|
23125
|
+
var useSyncExternalStore$2 = React.useSyncExternalStore !== undefined ? React.useSyncExternalStore : shim;
|
|
23126
|
+
|
|
23127
|
+
useSyncExternalStoreShim_development.useSyncExternalStore = useSyncExternalStore$2;
|
|
23128
|
+
/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
|
|
23129
|
+
if (
|
|
23130
|
+
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
|
|
23131
|
+
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===
|
|
23132
|
+
'function'
|
|
23133
|
+
) {
|
|
23134
|
+
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
|
|
23135
|
+
}
|
|
23136
|
+
|
|
23137
|
+
})();
|
|
23138
|
+
}
|
|
23139
|
+
return useSyncExternalStoreShim_development;
|
|
23140
|
+
}
|
|
23141
|
+
|
|
23142
|
+
var hasRequiredShim;
|
|
23143
|
+
|
|
23144
|
+
function requireShim () {
|
|
23145
|
+
if (hasRequiredShim) return shimExports;
|
|
23146
|
+
hasRequiredShim = 1;
|
|
23147
|
+
(function (module) {
|
|
23148
|
+
|
|
23149
|
+
if (process.env.NODE_ENV === 'production') {
|
|
23150
|
+
module.exports = requireUseSyncExternalStoreShim_production_min();
|
|
23151
|
+
} else {
|
|
23152
|
+
module.exports = requireUseSyncExternalStoreShim_development();
|
|
23153
|
+
}
|
|
23154
|
+
} (shim));
|
|
23155
|
+
return shimExports;
|
|
23156
|
+
}
|
|
23157
|
+
|
|
23158
|
+
/**
|
|
23159
|
+
* @license React
|
|
23160
|
+
* use-sync-external-store-shim/with-selector.production.min.js
|
|
23161
|
+
*
|
|
23162
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
23163
|
+
*
|
|
23164
|
+
* This source code is licensed under the MIT license found in the
|
|
23165
|
+
* LICENSE file in the root directory of this source tree.
|
|
23166
|
+
*/
|
|
23167
|
+
|
|
23168
|
+
var hasRequiredWithSelector_production_min;
|
|
23169
|
+
|
|
23170
|
+
function requireWithSelector_production_min () {
|
|
23171
|
+
if (hasRequiredWithSelector_production_min) return withSelector_production_min;
|
|
23172
|
+
hasRequiredWithSelector_production_min = 1;
|
|
23173
|
+
var h=React__default,n=requireShim();function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q="function"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;
|
|
23174
|
+
withSelector_production_min.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f;}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return [function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);
|
|
23175
|
+
u(function(){f.hasValue=!0;f.value=d;},[d]);w(d);return d};
|
|
23176
|
+
return withSelector_production_min;
|
|
23177
|
+
}
|
|
23178
|
+
|
|
23179
|
+
var withSelector_development = {};
|
|
23180
|
+
|
|
23181
|
+
/**
|
|
23182
|
+
* @license React
|
|
23183
|
+
* use-sync-external-store-shim/with-selector.development.js
|
|
23184
|
+
*
|
|
23185
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
23186
|
+
*
|
|
23187
|
+
* This source code is licensed under the MIT license found in the
|
|
23188
|
+
* LICENSE file in the root directory of this source tree.
|
|
23189
|
+
*/
|
|
23190
|
+
|
|
23191
|
+
var hasRequiredWithSelector_development;
|
|
23192
|
+
|
|
23193
|
+
function requireWithSelector_development () {
|
|
23194
|
+
if (hasRequiredWithSelector_development) return withSelector_development;
|
|
23195
|
+
hasRequiredWithSelector_development = 1;
|
|
23196
|
+
|
|
23197
|
+
if (process.env.NODE_ENV !== "production") {
|
|
23198
|
+
(function() {
|
|
23199
|
+
|
|
23200
|
+
/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
|
|
23201
|
+
if (
|
|
23202
|
+
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
|
|
23203
|
+
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===
|
|
23204
|
+
'function'
|
|
23205
|
+
) {
|
|
23206
|
+
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
|
|
23207
|
+
}
|
|
23208
|
+
var React = React__default;
|
|
23209
|
+
var shim = requireShim();
|
|
23210
|
+
|
|
23211
|
+
/**
|
|
23212
|
+
* inlined Object.is polyfill to avoid requiring consumers ship their own
|
|
23213
|
+
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
|
|
23214
|
+
*/
|
|
23215
|
+
function is(x, y) {
|
|
23216
|
+
return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare
|
|
23217
|
+
;
|
|
23218
|
+
}
|
|
23219
|
+
|
|
23220
|
+
var objectIs = typeof Object.is === 'function' ? Object.is : is;
|
|
23221
|
+
|
|
23222
|
+
var useSyncExternalStore = shim.useSyncExternalStore;
|
|
23223
|
+
|
|
23224
|
+
// for CommonJS interop.
|
|
23225
|
+
|
|
23226
|
+
var useRef = React.useRef,
|
|
23227
|
+
useEffect = React.useEffect,
|
|
23228
|
+
useMemo = React.useMemo,
|
|
23229
|
+
useDebugValue = React.useDebugValue; // Same as useSyncExternalStore, but supports selector and isEqual arguments.
|
|
23230
|
+
|
|
23231
|
+
function useSyncExternalStoreWithSelector(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) {
|
|
23232
|
+
// Use this to track the rendered snapshot.
|
|
23233
|
+
var instRef = useRef(null);
|
|
23234
|
+
var inst;
|
|
23235
|
+
|
|
23236
|
+
if (instRef.current === null) {
|
|
23237
|
+
inst = {
|
|
23238
|
+
hasValue: false,
|
|
23239
|
+
value: null
|
|
23240
|
+
};
|
|
23241
|
+
instRef.current = inst;
|
|
23242
|
+
} else {
|
|
23243
|
+
inst = instRef.current;
|
|
23244
|
+
}
|
|
23245
|
+
|
|
23246
|
+
var _useMemo = useMemo(function () {
|
|
23247
|
+
// Track the memoized state using closure variables that are local to this
|
|
23248
|
+
// memoized instance of a getSnapshot function. Intentionally not using a
|
|
23249
|
+
// useRef hook, because that state would be shared across all concurrent
|
|
23250
|
+
// copies of the hook/component.
|
|
23251
|
+
var hasMemo = false;
|
|
23252
|
+
var memoizedSnapshot;
|
|
23253
|
+
var memoizedSelection;
|
|
23254
|
+
|
|
23255
|
+
var memoizedSelector = function (nextSnapshot) {
|
|
23256
|
+
if (!hasMemo) {
|
|
23257
|
+
// The first time the hook is called, there is no memoized result.
|
|
23258
|
+
hasMemo = true;
|
|
23259
|
+
memoizedSnapshot = nextSnapshot;
|
|
23260
|
+
|
|
23261
|
+
var _nextSelection = selector(nextSnapshot);
|
|
23262
|
+
|
|
23263
|
+
if (isEqual !== undefined) {
|
|
23264
|
+
// Even if the selector has changed, the currently rendered selection
|
|
23265
|
+
// may be equal to the new selection. We should attempt to reuse the
|
|
23266
|
+
// current value if possible, to preserve downstream memoizations.
|
|
23267
|
+
if (inst.hasValue) {
|
|
23268
|
+
var currentSelection = inst.value;
|
|
23269
|
+
|
|
23270
|
+
if (isEqual(currentSelection, _nextSelection)) {
|
|
23271
|
+
memoizedSelection = currentSelection;
|
|
23272
|
+
return currentSelection;
|
|
23273
|
+
}
|
|
23274
|
+
}
|
|
23275
|
+
}
|
|
23276
|
+
|
|
23277
|
+
memoizedSelection = _nextSelection;
|
|
23278
|
+
return _nextSelection;
|
|
23279
|
+
} // We may be able to reuse the previous invocation's result.
|
|
23280
|
+
|
|
23281
|
+
|
|
23282
|
+
// We may be able to reuse the previous invocation's result.
|
|
23283
|
+
var prevSnapshot = memoizedSnapshot;
|
|
23284
|
+
var prevSelection = memoizedSelection;
|
|
23285
|
+
|
|
23286
|
+
if (objectIs(prevSnapshot, nextSnapshot)) {
|
|
23287
|
+
// The snapshot is the same as last time. Reuse the previous selection.
|
|
23288
|
+
return prevSelection;
|
|
23289
|
+
} // The snapshot has changed, so we need to compute a new selection.
|
|
23290
|
+
|
|
23291
|
+
|
|
23292
|
+
// The snapshot has changed, so we need to compute a new selection.
|
|
23293
|
+
var nextSelection = selector(nextSnapshot); // If a custom isEqual function is provided, use that to check if the data
|
|
23294
|
+
// has changed. If it hasn't, return the previous selection. That signals
|
|
23295
|
+
// to React that the selections are conceptually equal, and we can bail
|
|
23296
|
+
// out of rendering.
|
|
23297
|
+
|
|
23298
|
+
// If a custom isEqual function is provided, use that to check if the data
|
|
23299
|
+
// has changed. If it hasn't, return the previous selection. That signals
|
|
23300
|
+
// to React that the selections are conceptually equal, and we can bail
|
|
23301
|
+
// out of rendering.
|
|
23302
|
+
if (isEqual !== undefined && isEqual(prevSelection, nextSelection)) {
|
|
23303
|
+
return prevSelection;
|
|
23304
|
+
}
|
|
23305
|
+
|
|
23306
|
+
memoizedSnapshot = nextSnapshot;
|
|
23307
|
+
memoizedSelection = nextSelection;
|
|
23308
|
+
return nextSelection;
|
|
23309
|
+
}; // Assigning this to a constant so that Flow knows it can't change.
|
|
23310
|
+
|
|
23311
|
+
|
|
23312
|
+
// Assigning this to a constant so that Flow knows it can't change.
|
|
23313
|
+
var maybeGetServerSnapshot = getServerSnapshot === undefined ? null : getServerSnapshot;
|
|
23314
|
+
|
|
23315
|
+
var getSnapshotWithSelector = function () {
|
|
23316
|
+
return memoizedSelector(getSnapshot());
|
|
23317
|
+
};
|
|
23318
|
+
|
|
23319
|
+
var getServerSnapshotWithSelector = maybeGetServerSnapshot === null ? undefined : function () {
|
|
23320
|
+
return memoizedSelector(maybeGetServerSnapshot());
|
|
23321
|
+
};
|
|
23322
|
+
return [getSnapshotWithSelector, getServerSnapshotWithSelector];
|
|
23323
|
+
}, [getSnapshot, getServerSnapshot, selector, isEqual]),
|
|
23324
|
+
getSelection = _useMemo[0],
|
|
23325
|
+
getServerSelection = _useMemo[1];
|
|
23326
|
+
|
|
23327
|
+
var value = useSyncExternalStore(subscribe, getSelection, getServerSelection);
|
|
23328
|
+
useEffect(function () {
|
|
23329
|
+
inst.hasValue = true;
|
|
23330
|
+
inst.value = value;
|
|
23331
|
+
}, [value]);
|
|
23332
|
+
useDebugValue(value);
|
|
23333
|
+
return value;
|
|
23334
|
+
}
|
|
23335
|
+
|
|
23336
|
+
withSelector_development.useSyncExternalStoreWithSelector = useSyncExternalStoreWithSelector;
|
|
23337
|
+
/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
|
|
23338
|
+
if (
|
|
23339
|
+
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
|
|
23340
|
+
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===
|
|
23341
|
+
'function'
|
|
23342
|
+
) {
|
|
23343
|
+
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
|
|
23344
|
+
}
|
|
23345
|
+
|
|
23346
|
+
})();
|
|
23347
|
+
}
|
|
23348
|
+
return withSelector_development;
|
|
23349
|
+
}
|
|
23350
|
+
|
|
23351
|
+
(function (module) {
|
|
23352
|
+
|
|
23353
|
+
if (process.env.NODE_ENV === 'production') {
|
|
23354
|
+
module.exports = requireWithSelector_production_min();
|
|
23355
|
+
} else {
|
|
23356
|
+
module.exports = requireWithSelector_development();
|
|
23357
|
+
}
|
|
23358
|
+
} (withSelector));
|
|
23359
|
+
|
|
23360
|
+
var useSyncExternalStoreExports = /*@__PURE__*/getDefaultExportFromCjs(withSelectorExports);
|
|
23361
|
+
|
|
23362
|
+
const { useSyncExternalStoreWithSelector } = useSyncExternalStoreExports;
|
|
23363
|
+
function useStore(api, selector = api.getState, equalityFn) {
|
|
23364
|
+
const slice = useSyncExternalStoreWithSelector(
|
|
23365
|
+
api.subscribe,
|
|
23366
|
+
api.getState,
|
|
23367
|
+
api.getServerState || api.getState,
|
|
23368
|
+
selector,
|
|
23369
|
+
equalityFn
|
|
23370
|
+
);
|
|
23371
|
+
useDebugValue(slice);
|
|
23372
|
+
return slice;
|
|
23373
|
+
}
|
|
23374
|
+
const createImpl = (createState) => {
|
|
23375
|
+
if ((import.meta.env && import.meta.env.MODE) !== "production" && typeof createState !== "function") {
|
|
23376
|
+
console.warn(
|
|
23377
|
+
'[DEPRECATED] Passing a vanilla store will be unsupported in the future version. Please use `import { useStore } from "zustand"` to use the vanilla store in React.'
|
|
23378
|
+
);
|
|
23379
|
+
}
|
|
23380
|
+
const api = typeof createState === "function" ? createStore(createState) : createState;
|
|
23381
|
+
const useBoundStore = (selector, equalityFn) => useStore(api, selector, equalityFn);
|
|
23382
|
+
Object.assign(useBoundStore, api);
|
|
23383
|
+
return useBoundStore;
|
|
23384
|
+
};
|
|
23385
|
+
const create = (createState) => createState ? createImpl(createState) : createImpl;
|
|
23386
|
+
|
|
23387
|
+
// need to import whole of zustand for the build to be correct so the store can be used by other modules in the proper way
|
|
23388
|
+
var usePanelStore = create(function (set) {
|
|
23389
|
+
return {
|
|
23390
|
+
activePanel: undefined,
|
|
23391
|
+
panelSize: 'wide',
|
|
23392
|
+
updateActivePanel: function updateActivePanel(newActivePanel) {
|
|
23393
|
+
set({
|
|
23394
|
+
activePanel: newActivePanel
|
|
23395
|
+
});
|
|
23396
|
+
},
|
|
23397
|
+
updatePanelSize: function updatePanelSize(newPanelSize) {
|
|
23398
|
+
set({
|
|
23399
|
+
panelSize: newPanelSize
|
|
23400
|
+
});
|
|
23401
|
+
}
|
|
23402
|
+
};
|
|
23403
|
+
});
|
|
23404
|
+
|
|
23405
|
+
var css_248z$b = ".panelWrapper-module_wrapper__asJxL{position:fixed;right:0;z-index:5}.panelWrapper-module_topBarWrapper__Nt84G{background-color:#fff;border-left:1px solid #dcdcdc;box-sizing:border-box;height:calc(100dvh - 64px);padding-left:0;padding-right:0;width:64px;z-index:10}.panelWrapper-module_topBarWrapper__Nt84G div:first-child{display:none}.panelWrapper-module_contentPanel__JWij5,.panelWrapper-module_narrowPanel__zW0DI{background:#fff;box-sizing:border-box;height:100%;overflow:hidden;position:absolute;right:64px;top:0;transition:width .4s ease-in-out;width:0;z-index:1200}.panelWrapper-module_narrowPanel__zW0DI{width:240px!important}.panelWrapper-module_activeContentPanel__1nAhR{border-left:2px solid #f7f7f7;padding-left:14px;padding-right:16px;padding-top:16px;width:320px}.panelWrapper-module_buttonWrapperMobile__pcR1V{display:none}.panelWrapper-module_buttonWrapper__xbmQI{height:calc(100dvh - 70px)}.panelWrapper-module_buttonAtBottomWrapper__jLd-d{bottom:6px;position:absolute;width:100%}@media screen and (max-width:927px) and (orientation:landscape){.panelWrapper-module_topBarWrapper__Nt84G{width:calc(100dvw - 56px)}}@media screen and (max-width:767px) and (orientation:portrait){.panelWrapper-module_activeContentPanel__1nAhR,.panelWrapper-module_topBarWrapper__Nt84G{width:100dvw}}@media screen and (max-width:767px) and (orientation:portrait),screen and (max-width:927px) and (orientation:landscape){.panelWrapper-module_buttonAtBottomWrapper__jLd-d{display:none}.panelWrapper-module_topBarWrapper__Nt84G{border-bottom:1px solid #dcdcdc;border-left:none;display:flex;flex-direction:row;height:48px;padding-bottom:0;padding-top:0;z-index:10}.panelWrapper-module_topBarWrapper__Nt84G div:first-child{display:flex}.panelWrapper-module_moduleTitle__4Wloo{display:flex;margin:auto 0 auto 16px}.panelWrapper-module_moduleTitle__4Wloo p{color:var(--echoText);font-size:16px;font-weight:500;line-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panelWrapper-module_contentPanel__JWij5,.panelWrapper-module_narrowPanel__zW0DI{height:100dvh;right:0}.panelWrapper-module_buttonWrapperMobile__pcR1V{display:flex;justify-content:flex-end;margin-right:8px}.panelWrapper-module_buttonWrapper__xbmQI{display:none}}@media screen and (max-width:768px) and (orientation:portrait){.panelWrapper-module_moduleTitle__4Wloo{width:140px}.panelWrapper-module_buttonWrapperMobile__pcR1V{width:calc(100vw - 140px)}}@media screen and (max-width:927px) and (orientation:landscape){.panelWrapper-module_moduleTitle__4Wloo{width:240px}.panelWrapper-module_buttonWrapperMobile__pcR1V{width:calc(100vw - 240px)}}";
|
|
23406
|
+
var styles$a = {"wrapper":"panelWrapper-module_wrapper__asJxL","topBarWrapper":"panelWrapper-module_topBarWrapper__Nt84G","narrowPanel":"panelWrapper-module_narrowPanel__zW0DI","contentPanel":"panelWrapper-module_contentPanel__JWij5","activeContentPanel":"panelWrapper-module_activeContentPanel__1nAhR","buttonWrapperMobile":"panelWrapper-module_buttonWrapperMobile__pcR1V","buttonWrapper":"panelWrapper-module_buttonWrapper__xbmQI","buttonAtBottomWrapper":"panelWrapper-module_buttonAtBottomWrapper__jLd-d","moduleTitle":"panelWrapper-module_moduleTitle__4Wloo"};
|
|
23407
|
+
styleInject(css_248z$b);
|
|
23408
|
+
|
|
23409
|
+
/**
|
|
23410
|
+
* Component that display's the buttons in a panel. It will automatically try to calculate how many buttons to display
|
|
23411
|
+
* and how many buttons to hide behind the more menu.
|
|
23412
|
+
* It controls which panel to display when a button is clicked
|
|
23413
|
+
* On desktop this component will render on the right side, and on the top in mobile view
|
|
23414
|
+
*
|
|
23415
|
+
* @param {*} {
|
|
23416
|
+
* menuItems, the items to be displayed in the menu and its belonging panels
|
|
23417
|
+
* header, the header that will be displayed on mobile.
|
|
23418
|
+
* If its a string then it will only display a header text. But it can also be a component with self defined html
|
|
23419
|
+
* }
|
|
23420
|
+
* @return {*} {JSX.Element}
|
|
22911
23421
|
*/
|
|
22912
23422
|
var PanelWrapper = function PanelWrapper(_ref) {
|
|
22913
23423
|
var _classnames;
|
|
22914
23424
|
var menuItems = _ref.menuItems,
|
|
22915
23425
|
header = _ref.header;
|
|
22916
|
-
var _a, _b;
|
|
22917
|
-
var
|
|
22918
|
-
activePanel =
|
|
22919
|
-
panelSize =
|
|
22920
|
-
updateActivePanel =
|
|
22921
|
-
updatePanelSize =
|
|
23426
|
+
var _a, _b, _c;
|
|
23427
|
+
var _usePanelStore = usePanelStore(),
|
|
23428
|
+
activePanel = _usePanelStore.activePanel,
|
|
23429
|
+
panelSize = _usePanelStore.panelSize,
|
|
23430
|
+
updateActivePanel = _usePanelStore.updateActivePanel,
|
|
23431
|
+
updatePanelSize = _usePanelStore.updatePanelSize;
|
|
22922
23432
|
var _useState = useState(false),
|
|
22923
23433
|
_useState2 = _slicedToArray(_useState, 2),
|
|
22924
23434
|
isMenuOpen = _useState2[0],
|
|
@@ -22932,6 +23442,10 @@ var PanelWrapper = function PanelWrapper(_ref) {
|
|
|
22932
23442
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
22933
23443
|
buttonsInOverflow = _useState6[0],
|
|
22934
23444
|
setButtonsInOverflow = _useState6[1];
|
|
23445
|
+
var _useState7 = useState(),
|
|
23446
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
23447
|
+
buttonAtBottom = _useState8[0],
|
|
23448
|
+
setButtonAtBottom = _useState8[1];
|
|
22935
23449
|
var mobileWrapperRef = useRef(null);
|
|
22936
23450
|
var desktopWrapperRef = useRef(null);
|
|
22937
23451
|
var handleActiveMenuItemChanged = function handleActiveMenuItemChanged(menuItemType, panelSizeToUse) {
|
|
@@ -22946,9 +23460,15 @@ var PanelWrapper = function PanelWrapper(_ref) {
|
|
|
22946
23460
|
var calculateOverflow = useCallback(function () {
|
|
22947
23461
|
var _a, _b, _c, _d, _e, _f;
|
|
22948
23462
|
var numberOfIconsThereIsRoomFor;
|
|
23463
|
+
var shouldShowButtonAtBottom = false;
|
|
22949
23464
|
if ((_a = mobileWrapperRef.current) === null || _a === void 0 ? void 0 : _a.clientWidth) {
|
|
22950
23465
|
numberOfIconsThereIsRoomFor = ((_c = (_b = mobileWrapperRef.current) === null || _b === void 0 ? void 0 : _b.clientWidth) !== null && _c !== void 0 ? _c : 0) / 56;
|
|
22951
23466
|
} else if ((_d = desktopWrapperRef.current) === null || _d === void 0 ? void 0 : _d.clientHeight) {
|
|
23467
|
+
var buttonAtBottomFromList = menuItems.find(function (item) {
|
|
23468
|
+
return item.isBottomItem === true;
|
|
23469
|
+
});
|
|
23470
|
+
if (buttonAtBottomFromList) shouldShowButtonAtBottom = true;
|
|
23471
|
+
setButtonAtBottom(buttonAtBottomFromList);
|
|
22952
23472
|
numberOfIconsThereIsRoomFor = ((_f = (_e = desktopWrapperRef.current) === null || _e === void 0 ? void 0 : _e.clientHeight) !== null && _f !== void 0 ? _f : 0) / 56;
|
|
22953
23473
|
}
|
|
22954
23474
|
if (!numberOfIconsThereIsRoomFor) {
|
|
@@ -22964,9 +23484,19 @@ var PanelWrapper = function PanelWrapper(_ref) {
|
|
|
22964
23484
|
}
|
|
22965
23485
|
}
|
|
22966
23486
|
var menuItemsCopy = _toConsumableArray$1(menuItems);
|
|
23487
|
+
// if there is a button at the bottom then there is less room for the other buttons
|
|
23488
|
+
if (shouldShowButtonAtBottom) {
|
|
23489
|
+
iconsInOverflow += 1;
|
|
23490
|
+
var _buttonAtBottomFromList = menuItems.find(function (item) {
|
|
23491
|
+
return item.isBottomItem === true;
|
|
23492
|
+
});
|
|
23493
|
+
if (_buttonAtBottomFromList) menuItemsCopy = menuItems.filter(function (item) {
|
|
23494
|
+
return item.labelId !== _buttonAtBottomFromList.labelId;
|
|
23495
|
+
});
|
|
23496
|
+
}
|
|
22967
23497
|
setButtonsToDisplay(menuItemsCopy.slice(0, menuItems.length - iconsInOverflow));
|
|
22968
23498
|
setButtonsInOverflow(menuItemsCopy.slice(menuItems.length - iconsInOverflow));
|
|
22969
|
-
}, [menuItems]);
|
|
23499
|
+
}, [menuItems, mobileWrapperRef, desktopWrapperRef]);
|
|
22970
23500
|
useEffect(function () {
|
|
22971
23501
|
calculateOverflow();
|
|
22972
23502
|
}, [calculateOverflow]);
|
|
@@ -22999,12 +23529,55 @@ var PanelWrapper = function PanelWrapper(_ref) {
|
|
|
22999
23529
|
}
|
|
23000
23530
|
return null;
|
|
23001
23531
|
};
|
|
23532
|
+
var shouldCloseMoreOnOutsideClick = function shouldCloseMoreOnOutsideClick() {
|
|
23533
|
+
if (buttonsInOverflow.find(function (button) {
|
|
23534
|
+
return button.skipPanelContent;
|
|
23535
|
+
})) {
|
|
23536
|
+
return undefined;
|
|
23537
|
+
} else {
|
|
23538
|
+
return function () {
|
|
23539
|
+
return setIsMenuOpen(false);
|
|
23540
|
+
};
|
|
23541
|
+
}
|
|
23542
|
+
};
|
|
23543
|
+
var renderButtonAtBottom = function renderButtonAtBottom(button) {
|
|
23544
|
+
if (!button) return;
|
|
23545
|
+
if (button.skipPanelContent) {
|
|
23546
|
+
var PanelComponent = button.component;
|
|
23547
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
23548
|
+
className: styles$a.buttonAtBottomWrapper
|
|
23549
|
+
}, /*#__PURE__*/React__default.createElement(PanelComponent, {
|
|
23550
|
+
key: button.labelId
|
|
23551
|
+
}));
|
|
23552
|
+
}
|
|
23553
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
23554
|
+
className: styles$a.buttonAtBottomWrapper
|
|
23555
|
+
}, /*#__PURE__*/React__default.createElement(MenuButton, {
|
|
23556
|
+
text: button.label,
|
|
23557
|
+
key: button.labelId,
|
|
23558
|
+
id: button.labelId,
|
|
23559
|
+
active: activePanel === button.labelId,
|
|
23560
|
+
onClick: function onClick() {
|
|
23561
|
+
return handleActiveMenuItemChanged(button.labelId, button.panelSize);
|
|
23562
|
+
}
|
|
23563
|
+
}, typeof button.icon === 'string' ? /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
23564
|
+
color: themeConst.echoText,
|
|
23565
|
+
name: button.icon
|
|
23566
|
+
}) : button.icon));
|
|
23567
|
+
};
|
|
23002
23568
|
var renderMenuItems = function renderMenuItems() {
|
|
23003
23569
|
var _a, _b;
|
|
23004
23570
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, buttonsToDisplay.map(function (button) {
|
|
23571
|
+
if (button.skipPanelContent) {
|
|
23572
|
+
var PanelComponent = button.component;
|
|
23573
|
+
return /*#__PURE__*/React__default.createElement(PanelComponent, {
|
|
23574
|
+
key: button.labelId
|
|
23575
|
+
});
|
|
23576
|
+
}
|
|
23005
23577
|
return /*#__PURE__*/React__default.createElement(MenuButton, {
|
|
23006
23578
|
text: button.label,
|
|
23007
23579
|
key: button.labelId,
|
|
23580
|
+
id: button.labelId,
|
|
23008
23581
|
active: activePanel === button.labelId,
|
|
23009
23582
|
onClick: function onClick() {
|
|
23010
23583
|
return handleActiveMenuItemChanged(button.labelId, button.panelSize);
|
|
@@ -23015,7 +23588,7 @@ var PanelWrapper = function PanelWrapper(_ref) {
|
|
|
23015
23588
|
}) : button.icon);
|
|
23016
23589
|
}), buttonsInOverflow.length > 0 && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(MenuButton, {
|
|
23017
23590
|
text: "More",
|
|
23018
|
-
|
|
23591
|
+
ref: menuRef,
|
|
23019
23592
|
id: "more-menu-options-anchor",
|
|
23020
23593
|
active: isMenuOpen,
|
|
23021
23594
|
onClick: function onClick() {
|
|
@@ -23025,14 +23598,23 @@ var PanelWrapper = function PanelWrapper(_ref) {
|
|
|
23025
23598
|
color: themeConst.echoText,
|
|
23026
23599
|
name: "more_vertical"
|
|
23027
23600
|
})), /*#__PURE__*/React__default.createElement(Menu, {
|
|
23601
|
+
style: {
|
|
23602
|
+
overflowX: 'auto',
|
|
23603
|
+
maxHeight: 'calc(100dvh - 70px)'
|
|
23604
|
+
},
|
|
23028
23605
|
anchorEl: menuRef.current,
|
|
23029
23606
|
id: "more-menu-options",
|
|
23030
|
-
onClose:
|
|
23031
|
-
return setIsMenuOpen(false);
|
|
23032
|
-
},
|
|
23607
|
+
onClose: shouldCloseMoreOnOutsideClick,
|
|
23033
23608
|
placement: ((_b = (_a = mobileWrapperRef.current) === null || _a === void 0 ? void 0 : _a.clientWidth) !== null && _b !== void 0 ? _b : 0) > 0 ? 'bottom-start' : 'left',
|
|
23034
23609
|
open: isMenuOpen
|
|
23035
23610
|
}, buttonsInOverflow.map(function (button) {
|
|
23611
|
+
if (button.skipPanelContent) {
|
|
23612
|
+
var PanelComponent = button.component;
|
|
23613
|
+
return /*#__PURE__*/React__default.createElement(PanelComponent, {
|
|
23614
|
+
key: button.labelId,
|
|
23615
|
+
isOverflow: true
|
|
23616
|
+
});
|
|
23617
|
+
}
|
|
23036
23618
|
return /*#__PURE__*/React__default.createElement(Menu.Item, {
|
|
23037
23619
|
key: button.labelId,
|
|
23038
23620
|
onClick: function onClick() {
|
|
@@ -23042,7 +23624,7 @@ var PanelWrapper = function PanelWrapper(_ref) {
|
|
|
23042
23624
|
color: themeConst.echoText,
|
|
23043
23625
|
name: button.icon
|
|
23044
23626
|
}) : button.icon, button.label);
|
|
23045
|
-
}))));
|
|
23627
|
+
}))), renderButtonAtBottom(buttonAtBottom));
|
|
23046
23628
|
};
|
|
23047
23629
|
var renderMenuItemsBasedOnRef = function renderMenuItemsBasedOnRef(ref) {
|
|
23048
23630
|
if (ref) return renderMenuItems();
|
|
@@ -23059,53 +23641,55 @@ var PanelWrapper = function PanelWrapper(_ref) {
|
|
|
23059
23641
|
}, renderMenuItemsBasedOnRef((_a = mobileWrapperRef.current) === null || _a === void 0 ? void 0 : _a.clientWidth)), /*#__PURE__*/React__default.createElement("div", {
|
|
23060
23642
|
className: styles$a.buttonWrapper,
|
|
23061
23643
|
ref: desktopWrapperRef
|
|
23062
|
-
}, renderMenuItemsBasedOnRef((_b = desktopWrapperRef.current) === null || _b === void 0 ? void 0 : _b.clientHeight))), /*#__PURE__*/React__default.createElement("div", {
|
|
23644
|
+
}, renderMenuItemsBasedOnRef((_b = desktopWrapperRef.current) === null || _b === void 0 ? void 0 : _b.clientHeight))), !((_c = getActivePanel(activePanel)) === null || _c === void 0 ? void 0 : _c.skipPanelContent) && /*#__PURE__*/React__default.createElement("div", {
|
|
23063
23645
|
className: classnames$2(styles$a.contentPanel, (_classnames = {}, _defineProperty$1(_classnames, styles$a.narrowPanel, panelSize === 'narrow' && activePanel), _defineProperty$1(_classnames, styles$a.activeContentPanel, activePanel), _classnames))
|
|
23064
23646
|
}, getPanelComponentForActivePanel(activePanel)));
|
|
23065
23647
|
};
|
|
23066
23648
|
|
|
23067
|
-
/**
|
|
23068
|
-
* The actual right side panel. This component wraps the panel with a panel state
|
|
23069
|
-
*
|
|
23070
|
-
* @param {PanelProps} {
|
|
23071
|
-
* menuItems, the items to be displayed in the menu and its belonging panels
|
|
23072
|
-
* header, the header that will be displayed on mobile.
|
|
23073
|
-
* If its a string then it will only display a header text. But it can also be a component with self defined html
|
|
23074
|
-
* }
|
|
23075
|
-
* @return {*} {JSX.Element}
|
|
23649
|
+
/**
|
|
23650
|
+
* The actual right side panel. This component wraps the panel with a panel state
|
|
23651
|
+
*
|
|
23652
|
+
* @param {PanelProps} {
|
|
23653
|
+
* menuItems, the items to be displayed in the menu and its belonging panels
|
|
23654
|
+
* header, the header that will be displayed on mobile.
|
|
23655
|
+
* If its a string then it will only display a header text. But it can also be a component with self defined html
|
|
23656
|
+
* }
|
|
23657
|
+
* @return {*} {JSX.Element}
|
|
23076
23658
|
*/
|
|
23077
23659
|
var Panel = function Panel(_ref) {
|
|
23078
23660
|
var menuItems = _ref.menuItems,
|
|
23079
23661
|
header = _ref.header;
|
|
23080
|
-
return /*#__PURE__*/React__default.createElement(
|
|
23662
|
+
return /*#__PURE__*/React__default.createElement(PanelWrapper, {
|
|
23081
23663
|
header: header,
|
|
23082
23664
|
menuItems: menuItems
|
|
23083
|
-
})
|
|
23665
|
+
});
|
|
23084
23666
|
};
|
|
23085
23667
|
|
|
23086
|
-
var css_248z$a = ".panelContent-module_headerWrapper__BAc2H{display:flex;justify-content:space-between;padding-bottom:16px}.panelContent-module_panelTitle__jqqJT{margin:auto 0!important}.panelContent-module_bodyWrapper__EHsg5{height:calc(100dvh - 112px);margin-right:-8px;margin-top:16px;overflow-x:hidden;overflow-y:auto}.panelContent-module_contentWrapper__1re5K{margin-right:8px}";
|
|
23087
|
-
var styles$9 = {"headerWrapper":"panelContent-module_headerWrapper__BAc2H","panelTitle":"panelContent-module_panelTitle__jqqJT","bodyWrapper":"panelContent-module_bodyWrapper__EHsg5","contentWrapper":"panelContent-module_contentWrapper__1re5K"};
|
|
23668
|
+
var css_248z$a = ".panelContent-module_headerWrapper__BAc2H{display:flex;justify-content:space-between;padding-bottom:16px}.panelContent-module_panelTitle__jqqJT{margin:auto 0!important}.panelContent-module_bodyWrapperWithFooter__uoMyR,.panelContent-module_bodyWrapper__EHsg5{height:calc(100dvh - 112px);margin-right:-8px;margin-top:16px;overflow-x:hidden;overflow-y:auto}.panelContent-module_bodyWrapperWithFooter__uoMyR{height:calc(100dvh - 140px)}.panelContent-module_footer__P1Nr8{height:52px}.panelContent-module_contentWrapper__1re5K{margin-right:8px}";
|
|
23669
|
+
var styles$9 = {"headerWrapper":"panelContent-module_headerWrapper__BAc2H","panelTitle":"panelContent-module_panelTitle__jqqJT","bodyWrapper":"panelContent-module_bodyWrapper__EHsg5","bodyWrapperWithFooter":"panelContent-module_bodyWrapperWithFooter__uoMyR","footer":"panelContent-module_footer__P1Nr8","contentWrapper":"panelContent-module_contentWrapper__1re5K"};
|
|
23088
23670
|
styleInject(css_248z$a);
|
|
23089
23671
|
|
|
23090
|
-
/**
|
|
23091
|
-
* The component that wraps the panel drawer content
|
|
23092
|
-
* This components displays a header with close and possible back button
|
|
23093
|
-
* It also displays the content wrapped with some css
|
|
23094
|
-
*
|
|
23095
|
-
* @param {PanelContentProps} {
|
|
23096
|
-
* header, the header text to display
|
|
23097
|
-
* children, the panels content
|
|
23098
|
-
* backToMainPanel: optional parameter that controls whether the panel should have a back button or not
|
|
23099
|
-
* to be used in cases where there are panels within panels
|
|
23100
|
-
*
|
|
23101
|
-
*
|
|
23672
|
+
/**
|
|
23673
|
+
* The component that wraps the panel drawer content
|
|
23674
|
+
* This components displays a header with close and possible back button
|
|
23675
|
+
* It also displays the content wrapped with some css
|
|
23676
|
+
*
|
|
23677
|
+
* @param {PanelContentProps} {
|
|
23678
|
+
* header, the header text to display
|
|
23679
|
+
* children, the panels content
|
|
23680
|
+
* backToMainPanel: optional parameter that controls whether the panel should have a back button or not
|
|
23681
|
+
* to be used in cases where there are panels within panels,
|
|
23682
|
+
* footer: optional param, if used a footer will be shown in the panel content
|
|
23683
|
+
* }
|
|
23684
|
+
* @return {*} {JSX.Element}
|
|
23102
23685
|
*/
|
|
23103
23686
|
var PanelContent = function PanelContent(_ref) {
|
|
23104
23687
|
var header = _ref.header,
|
|
23105
23688
|
children = _ref.children,
|
|
23106
|
-
backToMainPanel = _ref.backToMainPanel
|
|
23107
|
-
|
|
23108
|
-
|
|
23689
|
+
backToMainPanel = _ref.backToMainPanel,
|
|
23690
|
+
footer = _ref.footer;
|
|
23691
|
+
var _usePanelStore = usePanelStore(),
|
|
23692
|
+
updateActivePanel = _usePanelStore.updateActivePanel;
|
|
23109
23693
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
|
|
23110
23694
|
className: styles$9.headerWrapper
|
|
23111
23695
|
}, backToMainPanel && /*#__PURE__*/React__default.createElement(Button, {
|
|
@@ -23124,10 +23708,12 @@ var PanelContent = function PanelContent(_ref) {
|
|
|
23124
23708
|
}, /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
23125
23709
|
name: "close"
|
|
23126
23710
|
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
23127
|
-
className: styles$9.bodyWrapper
|
|
23711
|
+
className: footer ? styles$9.bodyWrapperWithFooter : styles$9.bodyWrapper
|
|
23128
23712
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
23129
23713
|
className: styles$9.contentWrapper
|
|
23130
|
-
}, children))
|
|
23714
|
+
}, children)), footer && /*#__PURE__*/React__default.createElement("div", {
|
|
23715
|
+
className: styles$9.footer
|
|
23716
|
+
}, footer));
|
|
23131
23717
|
};
|
|
23132
23718
|
PanelContent.defaultProps = {
|
|
23133
23719
|
backToMainPanel: undefined
|
|
@@ -23137,28 +23723,28 @@ var css_248z$9 = ".sidebarButton-module_button__37sG4{align-items:center;box-siz
|
|
|
23137
23723
|
var styles$8 = {"button":"sidebarButton-module_button__37sG4","activeButton":"sidebarButton-module_activeButton__WkS2p","text":"sidebarButton-module_text__S0hrv","rightBarButton":"sidebarButton-module_rightBarButton__nh2hd","leftBarButton":"sidebarButton-module_leftBarButton__C5g1N","bottomBarButton":"sidebarButton-module_bottomBarButton__UJRT3","tabButton":"sidebarButton-module_tabButton__eQISU","tabItemCount":"sidebarButton-module_tabItemCount__nQc-M"};
|
|
23138
23724
|
styleInject(css_248z$9);
|
|
23139
23725
|
|
|
23140
|
-
/**
|
|
23141
|
-
* The reusable button component that is used in the sidebars/bottom bar.
|
|
23142
|
-
*
|
|
23143
|
-
* On desktop it will have an active border on the left/right/top,
|
|
23144
|
-
* depending if the ButtonPosition is set to: "right"/"left"/"bottom".
|
|
23145
|
-
* The active border will be on the right if it's a tab button and ButtonPosition is set to: "tab".
|
|
23146
|
-
*
|
|
23147
|
-
* On mobile with the right sidebar, the active border will be on the bottom.
|
|
23148
|
-
* In landscape mode with the bottom bar, the active border will be on the right.
|
|
23149
|
-
*
|
|
23150
|
-
* The button contains an icon and a descriptive text.
|
|
23151
|
-
* @param {*} {
|
|
23152
|
-
* text: the text below the icon.
|
|
23153
|
-
* active: boolean describing the button's active state.
|
|
23154
|
-
* onClick: the onClick event.
|
|
23155
|
-
* count: will display a count on the button.
|
|
23156
|
-
* buttonPosition: decides the active border, depending if the button is placed in the right bar/left bar/bottom bar.
|
|
23157
|
-
* refValue: a reference value, in case it's needed.
|
|
23158
|
-
* id: the id of the button, in case it's needed.
|
|
23159
|
-
* children: the icon to be displayed.
|
|
23160
|
-
* }
|
|
23161
|
-
* @return {*} {JSX.Element}
|
|
23726
|
+
/**
|
|
23727
|
+
* The reusable button component that is used in the sidebars/bottom bar.
|
|
23728
|
+
*
|
|
23729
|
+
* On desktop it will have an active border on the left/right/top,
|
|
23730
|
+
* depending if the ButtonPosition is set to: "right"/"left"/"bottom".
|
|
23731
|
+
* The active border will be on the right if it's a tab button and ButtonPosition is set to: "tab".
|
|
23732
|
+
*
|
|
23733
|
+
* On mobile with the right sidebar, the active border will be on the bottom.
|
|
23734
|
+
* In landscape mode with the bottom bar, the active border will be on the right.
|
|
23735
|
+
*
|
|
23736
|
+
* The button contains an icon and a descriptive text.
|
|
23737
|
+
* @param {*} {
|
|
23738
|
+
* text: the text below the icon.
|
|
23739
|
+
* active: boolean describing the button's active state.
|
|
23740
|
+
* onClick: the onClick event.
|
|
23741
|
+
* count: will display a count on the button.
|
|
23742
|
+
* buttonPosition: decides the active border, depending if the button is placed in the right bar/left bar/bottom bar.
|
|
23743
|
+
* refValue: a reference value, in case it's needed.
|
|
23744
|
+
* id: the id of the button, in case it's needed.
|
|
23745
|
+
* children: the icon to be displayed.
|
|
23746
|
+
* }
|
|
23747
|
+
* @return {*} {JSX.Element}
|
|
23162
23748
|
*/
|
|
23163
23749
|
var SidebarButton = function SidebarButton(_ref) {
|
|
23164
23750
|
var _classnames;
|
|
@@ -23503,8 +24089,8 @@ function getIsActive(statusIds) {
|
|
|
23503
24089
|
return true;
|
|
23504
24090
|
}
|
|
23505
24091
|
|
|
23506
|
-
var css_248z$3 = ".WorkOrderListItem-module_container__AaZwJ{padding:1rem}.WorkOrderListItem-module_container__AaZwJ>div:not(:first-of-type){gap:8px}.WorkOrderListItem-module_visual__UCRRo{align-items:center;background-color:var(--echoText);border-radius:50%;color:#fff;display:flex;flex-direction:column;font-size:12px;font-weight:500;height:40px;justify-content:center;margin:.5rem;padding:.5rem;width:40px}.WorkOrderListItem-module_primary__aflKC{align-items:center;display:flex;flex-flow:row nowrap}.WorkOrderListItem-module_tertiary__9VMmL{gap:.75rem}.WorkOrderListItem-module_tertiaryMultiline__fnZfW{align-items:flex-start;flex-direction:column;gap:.1rem}.WorkOrderListItem-module_primaryText__Fdd7q{width:auto}.WorkOrderListItem-module_secondaryText__I85sw{color:#565656}.WorkOrderListItem-module_tertiaryText__TRbrY{color:var(--tertiaryText)}.WorkOrderListItem-module_divider__XvYes{border:1px solid #d9d9d9;height:.75rem}.WorkOrderListItem-module_statusContainer__YJ0If{align-items:center;display:flex;flex-flow:row nowrap;gap:.2rem}.WorkOrderListItem-module_statusIndicator__aCFoR{border-radius:50%;height:.75rem;margin-left:.5rem;width:.75rem}.WorkOrderListItem-module_statusText__a2z46{display:contents;margin-left:.25rem}";
|
|
23507
|
-
var styles$3 = {"container":"WorkOrderListItem-module_container__AaZwJ","visual":"WorkOrderListItem-module_visual__UCRRo","primary":"WorkOrderListItem-module_primary__aflKC","tertiary":"WorkOrderListItem-module_tertiary__9VMmL WorkOrderListItem-module_primary__aflKC","tertiaryMultiline":"WorkOrderListItem-module_tertiaryMultiline__fnZfW WorkOrderListItem-module_primary__aflKC","primaryText":"WorkOrderListItem-module_primaryText__Fdd7q","secondaryText":"WorkOrderListItem-module_secondaryText__I85sw","tertiaryText":"WorkOrderListItem-module_tertiaryText__TRbrY","divider":"WorkOrderListItem-module_divider__XvYes","statusContainer":"WorkOrderListItem-module_statusContainer__YJ0If","statusIndicator":"WorkOrderListItem-module_statusIndicator__aCFoR","statusText":"WorkOrderListItem-module_statusText__a2z46"};
|
|
24092
|
+
var css_248z$3 = ".WorkOrderListItem-module_container__AaZwJ{padding:1rem}.WorkOrderListItem-module_container__AaZwJ>div:not(:first-of-type){gap:8px}.WorkOrderListItem-module_visual__UCRRo{align-items:center;background-color:var(--echoText);border-radius:50%;color:#fff;display:flex;flex-direction:column;font-size:12px;font-weight:500;height:40px;justify-content:center;margin:.5rem;padding:.5rem;width:40px}.WorkOrderListItem-module_primary__aflKC{align-items:center;display:flex;flex-flow:row nowrap}.WorkOrderListItem-module_tertiary__9VMmL{gap:.75rem}.WorkOrderListItem-module_tertiaryMultiline__fnZfW{align-items:flex-start;flex-direction:column;gap:.1rem}.WorkOrderListItem-module_primaryText__Fdd7q{width:auto}.WorkOrderListItem-module_secondaryText__I85sw{color:#565656}.WorkOrderListItem-module_tertiaryText__TRbrY{color:var(--tertiaryText)}.WorkOrderListItem-module_divider__XvYes{border:1px solid #d9d9d9;height:.75rem}.WorkOrderListItem-module_statusContainer__YJ0If{align-items:center;display:flex;flex-flow:row nowrap;gap:.2rem}.WorkOrderListItem-module_statusIndicator__aCFoR{border-radius:50%;height:.75rem;margin-left:.5rem;width:.75rem}.WorkOrderListItem-module_statusText__a2z46{display:contents;margin-left:.25rem}.WorkOrderListItem-module_title__S3kG9{width:auto}";
|
|
24093
|
+
var styles$3 = {"container":"WorkOrderListItem-module_container__AaZwJ","visual":"WorkOrderListItem-module_visual__UCRRo","primary":"WorkOrderListItem-module_primary__aflKC","tertiary":"WorkOrderListItem-module_tertiary__9VMmL WorkOrderListItem-module_primary__aflKC","tertiaryMultiline":"WorkOrderListItem-module_tertiaryMultiline__fnZfW WorkOrderListItem-module_primary__aflKC","primaryText":"WorkOrderListItem-module_primaryText__Fdd7q","secondaryText":"WorkOrderListItem-module_secondaryText__I85sw","tertiaryText":"WorkOrderListItem-module_tertiaryText__TRbrY","divider":"WorkOrderListItem-module_divider__XvYes","statusContainer":"WorkOrderListItem-module_statusContainer__YJ0If","statusIndicator":"WorkOrderListItem-module_statusIndicator__aCFoR","statusText":"WorkOrderListItem-module_statusText__a2z46","title":"WorkOrderListItem-module_title__S3kG9"};
|
|
23508
24094
|
styleInject(css_248z$3);
|
|
23509
24095
|
|
|
23510
24096
|
function WorkOrderStatusLabel(_ref) {
|
|
@@ -23533,16 +24119,22 @@ var WorkOrderStatusColorMap = {
|
|
|
23533
24119
|
active: '#FF9200'
|
|
23534
24120
|
};
|
|
23535
24121
|
|
|
24122
|
+
function setShowDate(wo) {
|
|
24123
|
+
if (wo.orderType.toUpperCase() === 'PM01' && wo.requiredEndDateTime) return true;
|
|
24124
|
+
if (wo.orderType.toUpperCase() === 'PM02' && wo.maintenancePlanDate) return true;
|
|
24125
|
+
return false;
|
|
24126
|
+
}
|
|
23536
24127
|
function WorkOrderListItem(props) {
|
|
23537
24128
|
var _classnames;
|
|
23538
24129
|
var isMobile = useIsMobile();
|
|
23539
24130
|
var wo = props.workOrder;
|
|
24131
|
+
var showDate = setShowDate(wo);
|
|
23540
24132
|
var displayHeaderDate = function displayHeaderDate() {
|
|
23541
24133
|
if (wo.orderType.toUpperCase() === 'PM01') {
|
|
23542
|
-
return /*#__PURE__*/React__default.createElement("
|
|
24134
|
+
return /*#__PURE__*/React__default.createElement("span", null, "Req. end date: ", dateToStringOrEmpty(wo.requiredEndDateTime));
|
|
23543
24135
|
}
|
|
23544
24136
|
if (wo.orderType.toUpperCase() === 'PM02') {
|
|
23545
|
-
return /*#__PURE__*/React__default.createElement("
|
|
24137
|
+
return /*#__PURE__*/React__default.createElement("span", null, "Planned date: ", dateToStringOrEmpty(wo.maintenancePlanDate));
|
|
23546
24138
|
}
|
|
23547
24139
|
return null;
|
|
23548
24140
|
};
|
|
@@ -23554,6 +24146,7 @@ function WorkOrderListItem(props) {
|
|
|
23554
24146
|
primary: /*#__PURE__*/React__default.createElement("div", {
|
|
23555
24147
|
className: styles$3.primary
|
|
23556
24148
|
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
24149
|
+
className: styles$3.title,
|
|
23557
24150
|
variant: 'h6'
|
|
23558
24151
|
}, wo.id.substring(4)), /*#__PURE__*/React__default.createElement(WorkOrderStatusLabel, {
|
|
23559
24152
|
workOrderStatus: wo.activeStatusIds
|
|
@@ -23568,13 +24161,13 @@ function WorkOrderListItem(props) {
|
|
|
23568
24161
|
variant: 'chart',
|
|
23569
24162
|
group: 'ui',
|
|
23570
24163
|
className: styles$3.tertiaryText
|
|
23571
|
-
}, wo.planningPlant), !isOverflow && !isMobile && /*#__PURE__*/React__default.createElement("div", {
|
|
24164
|
+
}, wo.planningPlant), showDate && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, !isOverflow && !isMobile && /*#__PURE__*/React__default.createElement("div", {
|
|
23572
24165
|
className: styles$3.divider
|
|
23573
24166
|
}), /*#__PURE__*/React__default.createElement(Typography, {
|
|
23574
24167
|
variant: 'chart',
|
|
23575
24168
|
group: 'ui',
|
|
23576
24169
|
className: styles$3.tertiaryText
|
|
23577
|
-
}, displayHeaderDate())),
|
|
24170
|
+
}, displayHeaderDate()))),
|
|
23578
24171
|
visual: /*#__PURE__*/React__default.createElement("div", {
|
|
23579
24172
|
className: styles$3.visual
|
|
23580
24173
|
}, /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
@@ -23592,8 +24185,8 @@ var staticData$3 = {
|
|
|
23592
24185
|
prefix: 'echo',
|
|
23593
24186
|
group: 'robim_external'
|
|
23594
24187
|
};
|
|
23595
|
-
/*
|
|
23596
|
-
* ROBIM EXTERNAL ICONS
|
|
24188
|
+
/*
|
|
24189
|
+
* ROBIM EXTERNAL ICONS
|
|
23597
24190
|
*/
|
|
23598
24191
|
var robim_external_ald = Object.assign(Object.assign({}, staticData$3), {
|
|
23599
24192
|
name: 'robim_external_ald',
|
|
@@ -23748,15 +24341,15 @@ var echoIcons = /*#__PURE__*/Object.freeze({
|
|
|
23748
24341
|
|
|
23749
24342
|
Icon$1.add(Object.assign(Object.assign({}, edsIcons), echoIcons));
|
|
23750
24343
|
|
|
23751
|
-
/**
|
|
23752
|
-
* Helper method that will return a list row given some input values. Used in IconList component for rendering rows
|
|
23753
|
-
*
|
|
23754
|
-
* @param {boolean} isDraggable flag to indicate that the row is draggable
|
|
23755
|
-
* @param {number} index the index of the list
|
|
23756
|
-
* @param {IconListState} iconListState the state from the IconList component used to create the row and its interactions
|
|
23757
|
-
* @param {(value: React.SetStateAction<IconListState>) => void} setIconListState the action to update the state from the IconList component
|
|
23758
|
-
* @param {IconItem[]} expandedIcons the icons to be displayed if the row is expandable. Is undefined if the row should not be expandable
|
|
23759
|
-
* @return {*} {React.ReactNode} A list row component created from the input parameters
|
|
24344
|
+
/**
|
|
24345
|
+
* Helper method that will return a list row given some input values. Used in IconList component for rendering rows
|
|
24346
|
+
*
|
|
24347
|
+
* @param {boolean} isDraggable flag to indicate that the row is draggable
|
|
24348
|
+
* @param {number} index the index of the list
|
|
24349
|
+
* @param {IconListState} iconListState the state from the IconList component used to create the row and its interactions
|
|
24350
|
+
* @param {(value: React.SetStateAction<IconListState>) => void} setIconListState the action to update the state from the IconList component
|
|
24351
|
+
* @param {IconItem[]} expandedIcons the icons to be displayed if the row is expandable. Is undefined if the row should not be expandable
|
|
24352
|
+
* @return {*} {React.ReactNode} A list row component created from the input parameters
|
|
23760
24353
|
*/
|
|
23761
24354
|
var createListRow = function createListRow(isDraggable, index, iconListState, setIconListState, expandedIcons) {
|
|
23762
24355
|
return /*#__PURE__*/React__default.createElement(ListRow, {
|
|
@@ -23788,22 +24381,22 @@ var css_248z$2 = ".iconList-module_wrapper__AMjAK{display:flex;flex-direction:co
|
|
|
23788
24381
|
var styles$2 = {"wrapper":"iconList-module_wrapper__AMjAK","header":"iconList-module_header__g2suM"};
|
|
23789
24382
|
styleInject(css_248z$2);
|
|
23790
24383
|
|
|
23791
|
-
/**
|
|
23792
|
-
* Component that renders an IconList of rows, that can be draggable and/or expandable
|
|
23793
|
-
*
|
|
23794
|
-
* @param {IconListProps} {
|
|
23795
|
-
* style: the style to override the IconList wrapper
|
|
23796
|
-
* title: The title of the list
|
|
23797
|
-
* items: { The items to be rendered in the row
|
|
23798
|
-
* title: the title of the item in the row
|
|
23799
|
-
* subtitle: the subtitle of the item in the row
|
|
23800
|
-
* icons: the icons that will be displayed on the same row, and their respective actions
|
|
23801
|
-
* }[]
|
|
23802
|
-
* isDraggable: flag to indicate if the elements in the list should be draggable
|
|
23803
|
-
* expandedIcons: list of icons that should be displayed if a row is expanded. If undefined no row can be expanded
|
|
23804
|
-
* onUpdatedOrder: method that will be called when the order of the list has changed
|
|
23805
|
-
* }
|
|
23806
|
-
* @return {*} {JSX.Element} a list of items that can be draggable and/or expandable
|
|
24384
|
+
/**
|
|
24385
|
+
* Component that renders an IconList of rows, that can be draggable and/or expandable
|
|
24386
|
+
*
|
|
24387
|
+
* @param {IconListProps} {
|
|
24388
|
+
* style: the style to override the IconList wrapper
|
|
24389
|
+
* title: The title of the list
|
|
24390
|
+
* items: { The items to be rendered in the row
|
|
24391
|
+
* title: the title of the item in the row
|
|
24392
|
+
* subtitle: the subtitle of the item in the row
|
|
24393
|
+
* icons: the icons that will be displayed on the same row, and their respective actions
|
|
24394
|
+
* }[]
|
|
24395
|
+
* isDraggable: flag to indicate if the elements in the list should be draggable
|
|
24396
|
+
* expandedIcons: list of icons that should be displayed if a row is expanded. If undefined no row can be expanded
|
|
24397
|
+
* onUpdatedOrder: method that will be called when the order of the list has changed
|
|
24398
|
+
* }
|
|
24399
|
+
* @return {*} {JSX.Element} a list of items that can be draggable and/or expandable
|
|
23807
24400
|
*/
|
|
23808
24401
|
var IconList = function IconList(_ref) {
|
|
23809
24402
|
var style = _ref.style,
|
|
@@ -23881,21 +24474,21 @@ var css_248z$1 = ".linkCard-module_wrapper__eoD5r{background-color:var(--white);
|
|
|
23881
24474
|
var styles$1 = {"wrapper":"linkCard-module_wrapper__eoD5r","image":"linkCard-module_image__EUhQK","header":"linkCard-module_header__P5GTe","title":"linkCard-module_title__WGglA","subTitle":"linkCard-module_subTitle__0j2D5","links":"linkCard-module_links__LkokT","link":"linkCard-module_link__uaQqQ"};
|
|
23882
24475
|
styleInject(css_248z$1);
|
|
23883
24476
|
|
|
23884
|
-
/**
|
|
23885
|
-
* Component that renders a card with an image and a list of links
|
|
23886
|
-
*
|
|
23887
|
-
* @param {LinkCardProps} {
|
|
23888
|
-
* style: style element to override wrapper style
|
|
23889
|
-
* image: the image scr of the image to be displayed
|
|
23890
|
-
* title: the title of the card
|
|
23891
|
-
* subTitle: the subtitle of the cars
|
|
23892
|
-
* links { A list of links to display
|
|
23893
|
-
* title: the text of the link
|
|
23894
|
-
* url: the url to the link
|
|
23895
|
-
* target: how the link should be opened. Possible values are '_blank' | '_self', default is '_self'
|
|
23896
|
-
* }
|
|
23897
|
-
* }
|
|
23898
|
-
* @return {*} {JSX.Element} a card element with an image and some provided links
|
|
24477
|
+
/**
|
|
24478
|
+
* Component that renders a card with an image and a list of links
|
|
24479
|
+
*
|
|
24480
|
+
* @param {LinkCardProps} {
|
|
24481
|
+
* style: style element to override wrapper style
|
|
24482
|
+
* image: the image scr of the image to be displayed
|
|
24483
|
+
* title: the title of the card
|
|
24484
|
+
* subTitle: the subtitle of the cars
|
|
24485
|
+
* links { A list of links to display
|
|
24486
|
+
* title: the text of the link
|
|
24487
|
+
* url: the url to the link
|
|
24488
|
+
* target: how the link should be opened. Possible values are '_blank' | '_self', default is '_self'
|
|
24489
|
+
* }
|
|
24490
|
+
* }
|
|
24491
|
+
* @return {*} {JSX.Element} a card element with an image and some provided links
|
|
23899
24492
|
*/
|
|
23900
24493
|
var LinkCard = function LinkCard(_ref) {
|
|
23901
24494
|
var style = _ref.style,
|
|
@@ -23974,20 +24567,20 @@ var css_248z = ".optionsList-module_wrapper__r6i4r{display:table;width:100%}.opt
|
|
|
23974
24567
|
var styles = {"wrapper":"optionsList-module_wrapper__r6i4r","head":"optionsList-module_head__W2pf7","row":"optionsList-module_row__hkSEt","item":"optionsList-module_item__uXdrQ","itemTitle":"optionsList-module_itemTitle__tQcdj","columnTitle":"optionsList-module_columnTitle__ciUTO","radio":"optionsList-module_radio__Ll5Fr","circle":"optionsList-module_circle__5Ub8n"};
|
|
23975
24568
|
styleInject(css_248z);
|
|
23976
24569
|
|
|
23977
|
-
/**
|
|
23978
|
-
* Component that renders a list with a set number of radio buttons for each row in the list
|
|
23979
|
-
*
|
|
23980
|
-
* @param {OptionsListProps} {
|
|
23981
|
-
* items:{ the items that should be shown in the list
|
|
23982
|
-
* title: the text displayed for a row in the list
|
|
23983
|
-
* color: the background color used in the badge in front of the title of the item
|
|
23984
|
-
* selectedColumnIndex: specifies witch radio button should have selected state. Should not be larger than the columns input property
|
|
23985
|
-
* }
|
|
23986
|
-
* style: Optional parameter that can override the wrapper style
|
|
23987
|
-
* titles: list of title that should be shown for the different columns in the list
|
|
23988
|
-
* columns: the number of columns the list should have
|
|
23989
|
-
* }
|
|
23990
|
-
* @return {*} {JSX.Element} a list of rows with a set of radio buttons
|
|
24570
|
+
/**
|
|
24571
|
+
* Component that renders a list with a set number of radio buttons for each row in the list
|
|
24572
|
+
*
|
|
24573
|
+
* @param {OptionsListProps} {
|
|
24574
|
+
* items:{ the items that should be shown in the list
|
|
24575
|
+
* title: the text displayed for a row in the list
|
|
24576
|
+
* color: the background color used in the badge in front of the title of the item
|
|
24577
|
+
* selectedColumnIndex: specifies witch radio button should have selected state. Should not be larger than the columns input property
|
|
24578
|
+
* }
|
|
24579
|
+
* style: Optional parameter that can override the wrapper style
|
|
24580
|
+
* titles: list of title that should be shown for the different columns in the list
|
|
24581
|
+
* columns: the number of columns the list should have
|
|
24582
|
+
* }
|
|
24583
|
+
* @return {*} {JSX.Element} a list of rows with a set of radio buttons
|
|
23991
24584
|
*/
|
|
23992
24585
|
var OptionsList = function OptionsList(_ref) {
|
|
23993
24586
|
var items = _ref.items,
|
|
@@ -24035,5 +24628,5 @@ var OptionsList = function OptionsList(_ref) {
|
|
|
24035
24628
|
}));
|
|
24036
24629
|
};
|
|
24037
24630
|
|
|
24038
|
-
export { ButtonWithPopover, ContextMenu, DataInfoButton, DialogGenerator, DraggableItemsWrapper, Dropdown, EchoBottomBar, EchoCard, EchoHeader, EchoTooltip, FloatingActionButton, FloatingSearchBar, Icon, IconList, InlineTagIconLink, LinkCard, ListItem, ListRow, OptionsList, Panel, PanelContent, PanelWrapper, RadioButtonGroup, ReactDatePicker, RoundIconButton, RoundIconButtonVariants, SideSheet, SideSheetOrientation, SidebarButton, SliderField, SplitView, TagCategoryIcon, TagCategoryType, TagContextMenu, TagIcon, TagIconShadowWrapper, TextIconButton, TimePicker, WorkOrderListItem, classnames$1 as classnames, echoIcons, getIcon, notifications_m1, notifications_m2, notifications_m3, notifications_m4, notifications_m5, notifications_m6, notifications_m9, notifications_main_group, punches_main_group, punches_pa, punches_pb, robim_external_ald, robim_external_iwit, robim_external_timp, robim_external_timp_text, themeConst, useIsMobile, useKeyboardNavigation, useListNavigator,
|
|
24631
|
+
export { ButtonWithPopover, ContextMenu, DataInfoButton, DialogGenerator, DraggableItemsWrapper, Dropdown, EchoBottomBar, EchoCard, EchoHeader, EchoTooltip, FloatingActionButton, FloatingSearchBar, Icon, IconList, InlineTagIconLink, LinkCard, ListItem, ListRow, OptionsList, Panel, PanelContent, PanelWrapper, RadioButtonGroup, ReactDatePicker, RoundIconButton, RoundIconButtonVariants, SideSheet, SideSheetOrientation, SidebarButton, SliderField, SplitView, TagCategoryIcon, TagCategoryType, TagContextMenu, TagIcon, TagIconShadowWrapper, TextIconButton, TimePicker, WorkOrderListItem, classnames$1 as classnames, echoIcons, getIcon, notifications_m1, notifications_m2, notifications_m3, notifications_m4, notifications_m5, notifications_m6, notifications_m9, notifications_main_group, punches_main_group, punches_pa, punches_pb, robim_external_ald, robim_external_iwit, robim_external_timp, robim_external_timp_text, themeConst, useIsMobile, useKeyboardNavigation, useListNavigator, usePanelStore, useSectionNavigator, workorders_main_group, workorders_pm01, workorders_pm02, workorders_pm03, workorders_pm04, workorders_pm05, workorders_pm06, workorders_pm10, workorders_pm15, workorders_pm20 };
|
|
24039
24632
|
//# sourceMappingURL=index.js.map
|