{"version":3,"sources":["../node_modules/diginet-core-ui/components/others/option-wrapper/index.js","../node_modules/diginet-core-ui/components/modal/context.js","../node_modules/diginet-core-ui/components/tooltip/index.js","../node_modules/diginet-core-ui/components/list/list.js","../node_modules/diginet-core-ui/components/list/list-item.js","../node_modules/diginet-core-ui/components/list/list-item-icon.js","../node_modules/diginet-core-ui/components/list/list-item-text.js","../node_modules/diginet-core-ui/components/list/list-item-action.js","../node_modules/diginet-core-ui/components/modal/index.js","../node_modules/diginet-core-ui/components/paging/page-info.js","../node_modules/diginet-core-ui/components/paging/page-selector.js","../node_modules/diginet-core-ui/components/popover/header.js","../node_modules/diginet-core-ui/components/popover/body.js","../node_modules/diginet-core-ui/components/popover/footer.js","../node_modules/diginet-core-ui/components/slider/slider-container.js","../node_modules/diginet-core-ui/components/rating/index.js","../node_modules/diginet-core-ui/components/status/index.js","../node_modules/diginet-core-ui/components/tab/tab-container.js","../node_modules/diginet-core-ui/components/tab/tab-header.js","../node_modules/diginet-core-ui/components/tab/tab-panel.js","../node_modules/diginet-core-ui/components/tab/tab.js","../node_modules/diginet-core-ui/components/transfer/index.js","../node_modules/diginet-core-ui/components/tree-view/index.js","../node_modules/diginet-core-ui/components/others/extra/index.js","../node_modules/diginet-core-ui/components/others/scrollbar/index.js","../node_modules/diginet-core-ui/components/popup/index.js","../node_modules/diginet-core-ui/components/popup/danger_popup.js","../node_modules/diginet-core-ui/components/others/import/index.js","../node_modules/diginet-core-ui/components/typography/index.js","../node_modules/diginet-core-ui/components/modal/header.js","../node_modules/diginet-core-ui/components/tab/context.js","../node_modules/diginet-core-ui/components/modal/footer.js","../node_modules/diginet-core-ui/components/paper/index.js","../node_modules/diginet-core-ui/components/popup/v2/index.js","../node_modules/diginet-core-ui/global/index.js","../node_modules/diginet-core-ui/components/progress/circular.js","../node_modules/diginet-core-ui/components/progress/linear.js","../node_modules/diginet-core-ui/components/popover/index.js","../node_modules/diginet-core-ui/components/modal/modal.js","../node_modules/diginet-core-ui/components/modal/body.js","../node_modules/diginet-core-ui/components/slider/slider-item.js"],"names":["OptionWrapper","WrappedComponent","forwardRef","props","ref","_useState","useState","_useState2","_slicedToArray","options","setOptions","useEffect","jsx","_objectSpread","action","option","optionValue","_defineProperty","css","sx","ModalContext","createContext","show","close","_useTheme","useTheme","_useTheme$colors","colors","systemWhite","system","white","fillTooltip","fill","tooltip","_useTheme$typography","typography","paragraph2","paragraph3","spacing","zIndexCORE","zIndex","hiddenPositions","left","opacity","border","top","getScrollTop","_ref","_ref2","_window$pageYOffset","window","pageYOffset","document","documentElement","scrollTop","body","getScrollLeft","_ref3","_ref4","_window$pageXOffset","pageXOffset","scrollLeft","getArrowSpacing","arrow","arrowSize","distance","Tooltip","memo","_ref5","reference","_ref5$action","alignMode","backgroundColor","children","className","color","direction","disabled","disableInteractive","forceDirection","hoverDelay","padding","size","style","TagCreatedName","tagCreatedName","textAlign","title","tooltipMaxWidth","viewportPadding","_objectWithoutProperties","_excluded","Id","randomString","allowSymbol","IDs","container","main","useRef","arrowRef","tooltipRef","calculateTimeoutRef","hoverTimeoutRef","open","setOpen","_MainCSS","MainCSS","checkHorizontal","el","parent","_parent$getBoundingCl","getBoundingClientRect","right","clientW","clientWidth","deadSpace","Math","min","offsetWidth","checkParent","_parent$getBoundingCl2","bottom","bottomOverhang","innerHeight","topOverhang","offsetHeight","halfTargetHeight","arrowFree","checkArrowOverhang","arrowStyles","enoughLeft","position","enoughRight","getTooltipMaxWidth","getArrowStyles","parentRect","halfParentH","halfParentW","arrowSpacing","borderLeft","concat","borderTop","borderBottom","borderRight","borderUp","getPosition","tooltipPosition","width","align","split","length","parseAlignMode","trueDirection","maxWidth","getDirection","currentDirection","recursive","wrapperHeight","enoughBelow","enoughAbove","space","parseInt","parentLeft","tooltipW","arrowCenter","arrowLeft","arrowRight","rightWithArrow","max","rightEdge","centeredLeft","availableLeft","rightOverhang","getVertical","arrowPadding","parentTop","arrowTop","arrowBottom","topForBottomAlign","centeredTop","getHorizontal","onHideTooltip","current","arrowEl","clearTimeout","setTimeout","Object","assign","setOpenTrue","setOpenFalse","positions","onShowTooltip","useImperativeHandle","currentRef","element","_instance","__proto__","instance","renderTooltip","useMemo","node","onMouseEnter","ArrowCSS","classNames","createPortal","onMouseLeave","onFocus","onBlur","_templateObject","_taggedTemplateLiteral","positionAbsolute","userSelectNone","parseWidthHeight","_templateObject2","displayInlineBlock","boxBorder","borderRadius4px","breakWord","defaultProps","propTypes","PropTypes","oneOf","bool","number","string","isRequired","object","oneOfType","levels","List","scrollAble","maxHeight","level","refs","ListRoot","isNaN","theme","classList","add","remove","trim","func","ListItem","onClick","button","inset","ListItemRoot","active","hover","handleClick","e","currentTarget","target","actionNode","querySelector","contains","Ripple","ListItemIcon","name","ListItemIconRoot","Icon","Icons","ListItemText","ListItemTextRoot","Typography","ListItemAction","ListItemActionRoot","ButtonIcon","viewType","ModalSample","_ref$action","bodyStyle","footer","footerStyle","headerStyle","React","createElement","Modal","Header","Body","Footer","any","_regeneratorRuntime","exports","Op","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","record","result","__await","then","unwrapped","error","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","i","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","awrap","async","Promise","iter","keys","val","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","systemActive","getLastPage","totalItems","itemsPerPage","_lastPage","ceil","delayOnInput","getGlobal","PagingInfo","bgColor","currentPage","hideWithPage","id","listPerPage","onChangePage","onChangePerPage","onChangingPage","onChangingPerPage","typeShort","timer","currentPageRef","numberRef","totalRef","totalItemsState","setTotalItemsState","_useState3","_useState4","itemsPerPageState","setItemsPerPageState","_useState5","_useState6","currentPageState","setCurrentPageState","_useState7","_useState8","listPerPageState","setListPerPageState","_useState9","_useState10","disablePrevState","setDisablePrevState","_useState11","_useState12","disableNextState","setDisableNextState","_useState13","_useState14","inputPageValue","setInputPageValue","_PagingInfoCSS","PagingInfoCSS","_onChangePage","_asyncToGenerator","_callee","page","changeBy","lastPage","disablePrev","disableNext","event","_context","cancel","prevPage","newPage","_x","apply","arguments","_onChangePerPage","_callee2","per","_context2","prevPerPage","newPerPage","_x2","onTypePaging","_e$value","checkKeyPress","test","preventDefault","setTotalItems","items","updateSize","_ref$current","conti","_toConsumableArray","item","display","hiddenEle","useLayoutEffect","addEventListener","removeEventListener","child","_ref$current2","infoChild","infoParent","getComputedStyle","currentStyle","margin","marginLeft","marginRight","setProperty","setWithNumber","useCallback","_totalRefs","totalRefs","numberRefs","infoText","minWidth","listPerPageData","includes","map","Map","v","JSON","stringify","sort","a","b","checkShowPaging","circular","ViewNumberInput","NumberInput","disabledNegative","String","autoWidth","inputStyle","placeholder","onKeyDown","onChange","whiteSpaceNoWrap","Divider","height","Dropdown","allowSearch","dataSource","toString","inputProps","readOnly","dropdownItemStyle","displayFlex","flexRow","itemsCenter","justifyCenter","mg","bgCl","parseHeight","pd","textColor","textCenter","noPadding","textLeft","mgl","mgb","parseMinWidth","parseMinHeight","cursorPointer","parseMinWidthHeight","array","PagingSelector","hideEllipsis","_useElementSize","useElementSize","_useElementSize2","refSize","componentWidth","renderButton","isSelected","customDisplay","fontWeight","count","pageArr","Array","halfArrLength","floor","quarterArrLength","showEllipsis","checkShowSelector","PageSelectorCSS","join","replace","_","idx","PopoverHeader","PopoverHeaderCSS","whiteSpace","overflow","textOverflow","positionRelative","order","z","PopoverBody","PopoverBodyCSS","flexCol","overflowAuto","parseWidth","borderRadius","PopoverFooter","boxShadow","_PopoverFooterCSS","PopoverFooterCSS","justifyEnd","_colors$system","rest","fillPressed","pressed","styles","iconLeft","transform","iconRight","SliderContainer","autoChange","animation","autoChangeTime","data","onShowNavigation","currentItemIndex","allowNumber","icon","navigation","navigationList","navigationItem","slideContainer","slideContainerRef","navigationRef","navigationListRef","iconLeftRef","iconRightRef","_containerCSS","containerCSS","_navigationListCSS","navigationListCSS","onChangeActiveItem","childNodeList","selector","querySelectorAll","removeClass","onNextItem","clearInterval","setInterval","childNodes","onPrevItem","renderNavigationItem","list","activeItem","findActiveItem","innerHTML","Slider","index","SliderItem","fileName","url","IconLeft","viewBox","IconRight","Navigation","navigationCSS","bgTransparent","displayNone","overflowHidden","_templateObject3","_useTheme$colors$syst","semantic","normal","line","Rating","half","quantity","defaultValue","onRating","unique","valueState","setValueState","_color","_RatingItemHaftCSS","RatingItemHaftCSS","_RatingItemCSS","RatingItemCSS","onSelectValue","newValue","_onRating","isHalf","ArrayRating","RatingRootCSS","RatingSelectCSS","Fragment","StarOutline","StarHalf","displayInlineFlex","flexRowReverse","pointerEventsNone","outlineNone","hexToRGBA","RatingItemHaftCSSName","_templateObject4","systemRest","fillSidebar","sidebar","colorMap","iconSizeMap","typographySizeMap","filledPaddingSizeMap","Status","colorProp","text","outlinedPaddingSize","get","iconSize","typographySize","_StatusRootCSS","StatusRootCSS","StatusIconView","StatusTextView","TextCSS","TabContainer","tabIndex","tabIndexState","setTabIndexState","_TabContainerCSS","TabContainerCSS","TabContext","Provider","Children","cloneElement","typographyTypes","TabHeader","centered","scrollButtons","useContext","setScrollLeft","isVertical","showScrollLeftButton","showScrollRightButton","scrollWidth","_ContainerCSS","ContainerCSS","_TabHeaderCSS","TabHeaderCSS","ScrollLeftButtonCSS","ScrollButtonCSS","ScrollRightButtonCSS","_onClickScrollButton","scrollPrevious","scrollValue","TabHeaderHorizontalCSS","onScroll","_e$target","selfCenter","TabPanel","lazyLoading","_useContext","isRendered","setIsRendered","_TabPanelCSS","TabPanelCSS","TabItem","endIcon","label","labelProps","startIcon","rippleRef","_TabItemCSS","TabItemCSS","_IndicatorCSS","IndicatorCSS","_onClick","start","renderIcon","isEndIcon","IconCSS","EndIconCSS","TabItemDisabledCSS","TabItemSelectedCSS","lineClamp","hoverTooltip","justifyStart","shadowNone","parseMaxWidth","pointerEventsAuto","cursorDefault","_templateObject5","parseMaxWidthHeight","mgr","_templateObject6","Transfer","choicesList","chosenList","selectAll","iconExpr","displayExpr","paperProps","renderItem","leftPaperRef","rightPaperRef","selectAllLeftRef","selectAllRightRef","chosenTextLeftRef","chosenTextRightRef","disabledAllLeft","setDisabledAllLeft","disabledAllRight","setDisabledAllRight","disabledLeft","setDisabledLeft","disabledRight","setDisabledRight","selectAllLeft","setSelectAllLeft","selectAllRight","setSelectAllRight","determinateLeft","setDeterminateLeft","_useState15","_useState16","determinateRight","setDeterminateRight","TransferRoot","TransferBox","dark12","TransferItem","TransferItemContent","TransferItemHeader","HeaderCheckbox","HeaderTitle","_templateObject7","ItemCheckbox","_templateObject8","ItemContent","_templateObject9","ItemImage","_templateObject10","DashboardRoot","_templateObject11","updateSelectedItemQuantity","side","newTotal","sideRef","sidePaperRef","_text$match","textContent","match","total","from","reduce","input","checked","selectAllItem","renderItemDefault","Checkbox","getAttribute","parentNode","every","isNotChecked","some","checkValue","src","renderContent","isArray","keyArr","pattern","separatorArr","RegExp","str","transferAll","appendChild","transferItem","remainLength","Dashboard","LeftSelectAll","determinate","inputRef","capitalize","sub","RightSelectAll","LeftTransferList","RightTransferList","Paper","separatorPattern","currentValue","itemsRenderAsync","TreeView","autoExpandToResult","collapseIcon","disabledBoldResult","disabledRelevantValue","expand","expandIcon","multiple","multipleValueMode","parentID","renderAsyncFromLevel","renderAsyncWithLength","searchDelayTime","searchMode","searchProps","selectAllLabel","selectBox","showChildrenOfResult","showSelectedItems","valueExpr","selectAllRef","inputValueRef","clearIconRef","timeout","determinateCheckbox","nextElementSibling","firstChild","checkedSelectAllCheckbox","allInput","handleDisabledChildren","isChecked","lastChild","handleDisabledParent","_loop2","summaryEl","click","checkbox","mustDisabled","_node$querySelectorAl","setValue","_data$childItems","childItems","d","clearAllValue","setValueIntoInput","_clearIconRef$current2","_clearIconRef$current","renderData","handleCheckbox","onClickHandler","justSelected","checkBoxEl","_value","inputEl","_loop","determinateQuantity","checkedQuantity","_node$parentNode","checkParentCheckbox","filter","checkedInput","isSameNode","onSelectAll","onChangeHandler","onSearchHandler","entries","compareTwoString","TreeViewItemEl","hiddenEls","hiddenEl","activeEls","activeEl","search","content","removeUnicode","normalize","renderDataAsync","res","renderTreeView","getElementById","render","displayText","mapping","sync","isTrue","isParentTrue","focusClass","Accordion","onExpand","onCollapse","AccordionSummary","expandIconAt","expandIconProps","paddingLeft","stopPropagation","AccordionDetails","_searchDelayTime$matc","_searchDelayTime$matc2","m","s","ms","_value2","checkedParentFollowValue","nodes","_node$lastChild","_node$lastChild$first","checkedLeastOfOne","_Object$keys","getValue","_value3","TreeViewRootCSS","InputBase","marginBottom","mapParent","displayBlock","cursorNotAllowed","pdl","icons","Extra","extraRef","textRef","iconRef","typeState","setTypeState","extraIcon","extraText","heading4","dark6","extra","dark11","blue13","brand","iconComp","textComp","proptypes","scrollbar","backgroundScroll","backgroundThumb","backgroundThumbHover","custom","Scrollbar","brand13","Info","success","ApprovalFilled","warning","Warning","danger","Failed","Popup","clearAble","fullScreen","pressESCToClose","autoFocusOKButton","popupStyle","clearIconStyle","confirmProps","cancelProps","getPopup","onClose","onConfirm","onCancel","confirmText","cancelText","yesText","noText","openState","setOpenState","setCustom","PopupContainer","fadeInDown","keyframes","fadeOutUp","PopupFrame","PopupContent","PopupInfo","paragraph1","PopupYesNo","PopupClearIcon","onShowPopup","message","cb","autoClose","confirmHandler","onConfirmHandler","onClosePopup","cancelHandler","onCancelHandler","newContent","Button","pressESCHandler","titleEl","iconEl","focus","DangerPopup","warningText","warningIconColor","warningDescription","timing","buttonTimingColor","popupActionRef","popupStyles","heading1","PopupWarning","PopupAction","childNode","time","renderHTML","ImportComp","components","_ref$from","_ref$importDefault","importDefault","importText","Notify","justifyContent","alignItems","fontSize","select","execCommand","removeChild","AlertNotify","getAddNotify","progressing","autoDisappear","center","formatMap","textCapitalize","textUppercase","textLowercase","italic","textLineThrough","textUnderline","textSentence","isTextClamped","elm","scrollHeight","clientHeight","format","fullWidth","tooltipDirection","uppercase","formatCSS","openTooltip","setOpenTooltip","_TextRootCSS","TextRootCSS","showTooltip","hideTooltip","classes","$$typeof","Popover","anchor","PopoverContentCSS","ClampCSS","breakAll","whiteSpaceBreakSpaces","arrayOf","smallBoxShadow","boxShadows","small","heading3","responsivePaddingCSS","handleBreakpoints","xs","md","propValue","ModalHeader","showClose","modal","_ModalHeaderCSS","ModalHeaderCSS","renderTitle","truncate","onMouseDown","onMoveModal","TitleContainerCSS","justifyBetween","cursorMove","ModalFooter","_ModalFooterCSS","ModalFooterCSS","bg","square","PaperRoot","_useTheme$colors$sema","semanticSuccess","semanticWarning","semanticDanger","semanticInfo","_useTheme$colors$fill","fillScrollbarTabbar","fillHover","titleMap","iconMap","animations","description","subtitle","statusAction","showMoreDescription","setShowMoreDescription","descriptionLines","setDescriptionLines","showPopup","useDelayUnmount","_PopupRootCSS","PopupRootCSS","newProps","popup","PopupHeaderView","PopupActionView","mode","onRefChange","round","toUpperCase","PopupBodyView","positionFixed","borderRadius50","textEllipsis","mgt","globalObject","language","vi","agree","confirm","unknownError","no","noDataText","notify","ok","showLess","showMore","yes","dropFileHere","deleteNotifyText","attachText","noFileText","byName","byType","bySize","byDate","byOwner","errorDefault","maxFile","maxSize","fileType","existingFile","lineNumber","choices","chosen","selected","helperInvalid","helperValid","weekdaysLong","weekdaysShort","months","full","notFull","days","night","day","month","year","thisFieldIsRequired","validate","isEmail","isNotEmptyString","isNotEmptyObject","isNotEmptyArray","invalidInput","required","inputPlaceholder","dropdownPlaceholder","en","maxSizeUpload","Infinity","attachment","allowSort","_globalObject$languag","locale","setGlobal","global","overrideGlobal","newGlobal","ingredient","newGlobalValue","rootValue","newKey","lineCategory","category","heading2","validatePercent","percent","designTemplate","labelStyle","rect","strokeWidth","directionAngleMap","CircularProgress","background","circleRef","duration","percentColorProp","percentColor","showValue","directionAngle","dimension","getDimensionOld","sizeObj","Number","templateObj","acc","getDimension","containerW","circleStrokeW","radius","radiusX10","circumference","PI","_CircleBackgroundCSS","CircleBackgroundCSS","_CircleMainCSS","CircleMainCSS","_CircleMainIndeterminateCSS","CircleMainIndeterminateCSS","_CircleMainDeterminateCSS","CircleMainDeterminateCSS","_TextCSS","CircleBackgroundView","cx","cy","r","CircleMainView","PercentTextView","dominantBaseline","x","y","AnimationRotateCSS","keyframeRotate","isIndeterminate","cutPX","Indeterminate","firstBarRef","secondBarRef","firstBar","secondBar","keyframeStart","keyframeMove","FirstBar","SecondBar","trimEnd","brand12","IndeterminateLinearProgress","Determinate","valuePosition","_excluded2","barRef","valueRef","bar","Bar","Value","textShadow","p","innerText","valHalfWidth","updateValuePosition","DeterminateLinearProgress","LinearProgress","_excluded3","useStyles","makeStyles","noScroll","eventMap","getArrowPosition","anchorOrigin","transformOrigin","translate","horizontal","vertical","calPosition","originBounding","getDirectionPopover","clickOutsideToClose","marginThreshold","onOpen","trigger","isMobile","anchorRef","setElement","_PortalPopoverCSS","PortalPopoverCSS","_PopoverContainerCSS","PopoverContainerCSS","_PopoverArrowCSS","PopoverArrowCSS","directionObject","onOpenPopover","onClosePopover","onClickOutside","_anchor2","_anchor3","_anchor3$current","_anchor4","_ref$current2$parentN","_anchor","toElement","updatePositionPopover","_window","_window2","_anchor6","_anchorRect","_anchorRect2","_anchor7","_anchorRect3","_anchorRect4","_anchorRect5","_anchorRect6","_anchorRect7","_anchorRect8","_anchorRect9","_anchorRect10","_anchorRect11","_anchorRect12","_newDirectionObject","_newDirectionObject$t","_transformOrigin","_newDirectionObject2","_newDirectionObject2$","_transformOrigin2","Element","verticalCenter","horizontalCenter","arrowPosition","anchorRect","aPosition","newDirectionObject","_anchor5","_anchor$current","containerWindow","innerWidth","popoverHeight","popoverWidth","heightThreshold","widthThreshold","bottomOfAnchor","topPos","verticalCenterPos","bottomPos","rightOfAnchor","leftPos","horizontalCenterPos","rightPos","validVerticalArrow","validHorizontalArrow","_anchorRect13","_anchorRect14","_anchorRect15","_anchorRect16","_anchorRect17","_anchorRect18","_anchorRect19","_anchorRect20","isVerticalOverFlow","handleEventTrigger","_anchor8","_anchor9","_anchorRef$current","_anchorRef$current$pr","anchorEl","eventArr","evt","_document$body$classL","timestamp","Date","now","noScrollClass","_document$body$classL2","setPosition","hide","PopoverView","_anchor10","_anchor11","_anchor11$props","cursor","renderAnchor","pointerEventsInitial","instanceOf","shape","alignment","autoFocus","darkTheme","dragAnyWhere","moveable","moveOutScreen","modalBoxRef","showModal","_ModalContainerCSS","ModalContainerCSS","_ModalBoxCSS","ModalBoxCSS","onShowModal","onCloseModal","modals","dragMouseDown","pos1","pos2","pos3","pos4","clientX","clientY","maxTop","maxLeft","offsetTop","offsetLeft","onmouseup","onmousemove","newTop","newLeft","activeElement","pdt","ModalBody","ModalBodyCSS","fadeIn","regex","googleDriveRegex","googleDocsRegex","checkURL","link","frame","image","itemContainer","video","iframeRef","iframeTimeoutId","setIframeTimeoutId","getFileType","intervalId","updateIframeSrc","iframeLoaded","getIframeLink","itemContainerCSS","loadingCSS","filePath","imageCSS","alt","frameCSS","frameBorder","onLoad","onError","autoPlay","controls","getViewer"],"mappings":"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","file":"static/js/main~1254fb46.13de8edd.chunk.js","sourcesContent":["/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { useState, forwardRef, useEffect } from 'react';\nimport { jsx } from '@emotion/core';\nimport sx from \"../../../styles/sx\";\nconst OptionWrapper = WrappedComponent => {\n return /*#__PURE__*/forwardRef((props, ref) => {\n const [options, setOptions] = useState({});\n const option = (option, optionValue) => {\n if (typeof option === 'undefined') {\n return props;\n } else if (typeof option === 'string') {\n if (typeof optionValue === 'undefined') return props[option];else setOptions({\n [option]: optionValue\n });\n } else if (typeof option === 'object') {\n setOptions({\n ...options,\n ...option\n });\n }\n };\n useEffect(() => {\n setOptions({});\n }, [props]);\n return jsx(WrappedComponent, {\n ...props,\n ...options,\n action: {\n option\n },\n ref: ref,\n css: sx(props === null || props === void 0 ? void 0 : props.sx)\n });\n });\n};\nexport default OptionWrapper;","import { createContext } from 'react';\nconst ModalContext = /*#__PURE__*/createContext({\n show: () => {},\n close: () => {}\n});\nexport default ModalContext;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { forwardRef, memo, useEffect, useRef, useState, useMemo, useImperativeHandle } from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { classNames, randomString } from \"../../utils\";\nimport { jsx, css } from '@emotion/core';\nimport { boxBorder, borderRadius4px, breakWord, displayInlineBlock, parseWidthHeight, positionAbsolute, userSelectNone } from \"../../styles/general\";\nimport { useColor as colors, useTheme } from \"../../theme\";\nconst {\n colors: {\n system: {\n white: systemWhite\n },\n fill: {\n tooltip: fillTooltip\n }\n },\n typography: {\n paragraph2,\n paragraph3\n },\n spacing,\n zIndex: zIndexCORE\n} = useTheme();\nconst defaultViewPadding = 4;\nconst hiddenPositions = {\n tooltip: {\n left: '-10000000px',\n opacity: 0\n },\n arrow: {\n border: 'none',\n left: '-10000000px',\n opacity: 0,\n top: '-10000000px'\n }\n};\nconst getScrollTop = () => {\n var _ref, _ref2, _window$pageYOffset;\n return (_ref = (_ref2 = (_window$pageYOffset = window.pageYOffset) !== null && _window$pageYOffset !== void 0 ? _window$pageYOffset : document.documentElement.scrollTop) !== null && _ref2 !== void 0 ? _ref2 : document.body.scrollTop) !== null && _ref !== void 0 ? _ref : 0;\n};\nconst getScrollLeft = () => {\n var _ref3, _ref4, _window$pageXOffset;\n return (_ref3 = (_ref4 = (_window$pageXOffset = window.pageXOffset) !== null && _window$pageXOffset !== void 0 ? _window$pageXOffset : document.documentElement.scrollLeft) !== null && _ref4 !== void 0 ? _ref4 : document.body.scrollLeft) !== null && _ref3 !== void 0 ? _ref3 : 0;\n};\nconst getArrowSpacing = (arrow, arrowSize, distance) => {\n const defaultArrowSpacing = arrow ? arrowSize : 0;\n return typeof distance === 'number' ? distance : defaultArrowSpacing;\n};\nconst parseAlignMode = alignMode => {\n if (alignMode.split('-').length > 1) {\n return alignMode.split('-')[1];\n }\n return 'middle';\n};\nconst Tooltip = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n alignMode,\n arrow,\n arrowSize,\n backgroundColor,\n children,\n className,\n color,\n direction,\n disabled,\n disableInteractive,\n distance,\n forceDirection,\n hoverDelay,\n padding,\n size,\n style,\n tagCreatedName: TagCreatedName,\n textAlign,\n title,\n tooltipMaxWidth,\n viewportPadding,\n ...props\n}, reference) => {\n const Id = randomString(6, {\n allowSymbol: false\n });\n const IDs = {\n arrow: 'DGN-UI-tooltip-arrow-' + Id,\n container: 'DGN-UI-tooltip-container-' + Id,\n main: 'DGN-UI-tooltip-main-' + Id\n };\n const ref = useRef(null);\n const arrowRef = useRef(null);\n const tooltipRef = useRef(null);\n const calculateTimeoutRef = useRef(null);\n const hoverTimeoutRef = useRef(null);\n const [open, setOpen] = useState(false);\n const _MainCSS = MainCSS(backgroundColor, color, size, padding, textAlign);\n const checkHorizontal = (distance, el, parent) => {\n const {\n left,\n right\n } = parent.getBoundingClientRect();\n const clientW = document.documentElement.clientWidth;\n const deadSpace = Math.min(left, clientW - right);\n return el.offsetWidth + parent.offsetWidth + distance + viewportPadding + deadSpace < clientW;\n };\n const checkParent = (el, parent) => {\n const {\n bottom,\n top\n } = parent.getBoundingClientRect();\n const bottomOverhang = bottom > window.innerHeight;\n const topOverhang = top < 0;\n if (topOverhang && bottomOverhang) {\n return true;\n }\n if (parent.offsetHeight > el.offsetHeight) {\n const halfTargetHeight = parent.offsetHeight / 2;\n const arrowFree = arrowSize + 6;\n const bOAmount = bottom - window.innerHeight;\n const tOAmount = -top;\n const centerToBottom = halfTargetHeight - bOAmount;\n const centerToTop = halfTargetHeight - tOAmount;\n return centerToBottom >= arrowFree && centerToTop >= arrowFree;\n }\n return !bottomOverhang && !topOverhang;\n };\n const checkArrowOverhang = arrowStyles => {\n const scrollLeft = getScrollLeft();\n const enoughLeft = arrowStyles.position.left - scrollLeft > viewportPadding;\n const enoughRight = arrowStyles.position.left + arrowSize * 2 < scrollLeft + document.documentElement.clientWidth - viewportPadding;\n return !enoughLeft || !enoughRight;\n };\n const getTooltipMaxWidth = () => {\n return tooltipMaxWidth ? tooltipMaxWidth : typeof document !== 'undefined' ? document.documentElement.clientWidth - viewportPadding * 2 : 300;\n };\n const getArrowStyles = (direction, el, parent) => {\n if (!parent || !arrow) {\n return {\n position: {\n top: 0,\n left: -10000000\n }\n };\n }\n const parentRect = parent.getBoundingClientRect();\n const halfParentH = parent.offsetHeight / 2;\n const halfParentW = parent.offsetWidth / 2;\n const scrollTop = getScrollTop();\n const scrollLeft = getScrollLeft();\n const arrowSpacing = getArrowSpacing(arrow, arrowSize, distance);\n const border = {};\n const position = {};\n switch (direction) {\n case 'right':\n border.borderLeft = `${arrowSize}px solid transparent`;\n border.borderTop = `${arrowSize}px solid transparent`;\n border.borderBottom = `${arrowSize}px solid transparent`;\n border.borderRight = `${arrowSize}px solid ${backgroundColor}`;\n position.top = el ? parentRect.top + scrollTop + halfParentH - arrowSize - 1 : '-10000000px';\n position.left = parentRect.right + scrollLeft - arrowSize + 1;\n break;\n case 'left':\n border.borderRight = `${arrowSize}px solid transparent`;\n border.borderTop = `${arrowSize}px solid transparent`;\n border.borderBottom = `${arrowSize}px solid transparent`;\n border.borderLeft = `${arrowSize}px solid ${backgroundColor}`;\n position.top = el ? parentRect.top + scrollTop + halfParentH - arrowSize - 1 : '-10000000px';\n position.left = parentRect.left + scrollLeft - arrowSpacing - 1;\n break;\n case 'up':\n border.borderBottom = `${arrowSize}px solid transparent`;\n border.borderLeft = `${arrowSize}px solid transparent`;\n border.borderRight = `${arrowSize}px solid transparent`;\n border.borderTop = `${arrowSize}px solid ${backgroundColor}`;\n position.left = el ? parentRect.left + scrollLeft + halfParentW - arrowSize : '-10000000px';\n position.top = parentRect.top + scrollTop - arrowSpacing;\n break;\n case 'down':\n default:\n border.borderUp = `${arrowSize}px solid transparent`;\n border.borderLeft = `${arrowSize}px solid transparent`;\n border.borderRight = `${arrowSize}px solid transparent`;\n border.borderBottom = `${arrowSize}px solid ${backgroundColor}`;\n position.left = el ? parentRect.left + scrollLeft + halfParentW - arrowSize : '-10000000px';\n position.top = parentRect.bottom + scrollTop + arrowSpacing + 1 - arrowSize;\n break;\n }\n return {\n border,\n position\n };\n };\n const getDirection = (arrowStyles, currentDirection, el, parent, recursive) => {\n if (!parent) {\n return currentDirection;\n }\n const clientW = document.documentElement.clientWidth;\n const parentRect = parent.getBoundingClientRect();\n const arrowSpacing = getArrowSpacing(arrow, arrowSize, distance);\n const wrapperHeight = el.offsetHeight + arrowSpacing + viewportPadding;\n const spaceBelow = window.innerHeight - parentRect.bottom;\n const spaceAbove = parentRect.top;\n const enoughBelow = spaceBelow >= wrapperHeight;\n const enoughAbove = spaceAbove >= wrapperHeight;\n switch (currentDirection) {\n case 'right':\n if (!checkHorizontal(arrowSpacing, el, parent) || !checkParent(el, parent)) {\n return getDirection(arrowStyles, 'down', el, parent, true);\n }\n if (clientW - parentRect.right < el.offsetWidth + arrowSpacing + viewportPadding) {\n return 'left';\n }\n return 'right';\n case 'left':\n if (!checkHorizontal(arrowSpacing, el, parent) || !checkParent(el, parent)) {\n return getDirection(arrowStyles, 'down', el, parent, true);\n }\n if (parentRect.left < el.offsetWidth + arrowSpacing + viewportPadding) {\n return 'right';\n }\n return 'left';\n case 'up':\n if (!recursive && arrowStyles && checkArrowOverhang(arrowStyles)) {\n return getDirection(arrowStyles, 'left', el, parent, true);\n }\n if (!enoughAbove) {\n if (enoughBelow) {\n return 'down';\n }\n if (!recursive && arrowStyles && checkHorizontal(arrowSpacing, el, parent)) {\n return getDirection(arrowStyles, 'right', el, parent, true);\n }\n }\n return 'up';\n case 'down':\n default:\n if (!recursive && arrowStyles && checkArrowOverhang(arrowStyles)) {\n return getDirection(arrowStyles, 'right', el, parent, true);\n }\n if (!enoughBelow) {\n if (enoughAbove) {\n return 'up';\n }\n if (!recursive && arrowStyles && checkHorizontal(arrowSpacing, el, parent)) {\n return getDirection(arrowStyles, 'right', el, parent, true);\n }\n }\n return 'down';\n }\n };\n const getVertical = (alignMode, direction, el, parent) => {\n let left = -10000000,\n top;\n const arrowSpacing = getArrowSpacing(arrow, arrowSize, distance);\n if (el) {\n const scrollLeft = getScrollLeft();\n const parentRect = parent.getBoundingClientRect();\n const parentLeft = parentRect.left + scrollLeft;\n const halfParentW = parent.offsetWidth / 2;\n const tooltipW = Math.min(getTooltipMaxWidth(), el && el.offsetWidth);\n const arrowCenter = parentLeft + halfParentW;\n const arrowLeft = arrowCenter - arrowSize;\n const arrowRight = arrowCenter + arrowSize;\n if (alignMode === 'start') {\n left = arrow ? Math.min(arrowLeft, parentLeft) : parentLeft;\n } else if (alignMode === 'end') {\n const rightWithArrow = Math.max(arrowRight, parentLeft + parent.offsetWidth);\n const rightEdge = arrow ? rightWithArrow : parentLeft + parent.offsetWidth;\n left = Math.max(rightEdge - tooltipW, scrollLeft + viewportPadding);\n } else {\n const centeredLeft = parentLeft + halfParentW - tooltipW / 2;\n const availableLeft = scrollLeft + viewportPadding;\n left = Math.max(centeredLeft, availableLeft);\n }\n const rightTooltip = left + tooltipW;\n const rightScreen = document.documentElement.clientWidth + scrollLeft - viewportPadding;\n const rightOverhang = rightTooltip - rightScreen;\n if (rightOverhang > 0) {\n left -= rightOverhang;\n }\n if (direction === 'up') {\n top = parentRect.top + getScrollTop() - (el.offsetHeight + arrowSpacing);\n } else {\n top = parentRect.bottom + getScrollTop() + arrowSpacing;\n }\n }\n return {\n left: left + 'px',\n top: top + 'px'\n };\n };\n const getHorizontal = (alignMode, direction, el, parent) => {\n let left = -10000000,\n top = 0;\n const arrowSpacing = getArrowSpacing(arrow, arrowSize, distance);\n const arrowPadding = arrow ? 6 : 0;\n if (el) {\n const scrollLeft = getScrollLeft();\n const scrollTop = getScrollTop();\n const parentRect = parent.getBoundingClientRect();\n const parentTop = parentRect.top + scrollTop;\n const halfParentH = parent.offsetHeight / 2;\n const arrowTop = parentTop + halfParentH - arrowSize;\n const arrowBottom = parentRect.top + scrollTop + halfParentH + arrowSize;\n if (alignMode === 'start') {\n top = arrow ? Math.min(parentTop, arrowTop) : parentTop;\n } else if (alignMode === 'end') {\n const topForBottomAlign = parentRect.bottom + scrollTop - el.offsetHeight;\n top = arrow ? Math.max(topForBottomAlign, arrowBottom - el.offsetHeight) : topForBottomAlign;\n } else {\n const centeredTop = Math.max(parentTop + halfParentH - el.offsetHeight / 2, scrollTop + viewportPadding);\n top = Math.min(centeredTop, arrowTop - arrowPadding);\n }\n const bottomOverhang = top - scrollTop + el.offsetHeight + viewportPadding - window.innerHeight;\n if (bottomOverhang > 0) {\n top = Math.max(top - bottomOverhang, arrowBottom + arrowPadding - el.offsetHeight);\n }\n if (direction === 'right') {\n left = parentRect.right + arrowSpacing + scrollLeft;\n } else {\n left = parentRect.left - arrowSpacing - el.offsetWidth + scrollLeft;\n }\n }\n return {\n left: left + 'px',\n top: top + 'px'\n };\n };\n const getPosition = (el, parent) => {\n const align = parseAlignMode(alignMode);\n let trueDirection = direction;\n const maxWidth = getTooltipMaxWidth() + 'px';\n let tooltipPosition, width;\n if (!forceDirection && el) {\n const arrowStylesForGetDirection = arrow && getArrowStyles(direction, el, parent);\n trueDirection = getDirection(arrowStylesForGetDirection, trueDirection, el, parent, false);\n }\n if (el) {\n const space = el.style.width ? 0 : 5;\n width = Math.min(el.offsetWidth, parseInt(maxWidth)) + space + 'px';\n tooltipPosition = trueDirection === 'up' || trueDirection === 'down' ? getVertical(align, trueDirection, el, parent) : getHorizontal(align, trueDirection, el, parent);\n }\n return {\n tooltip: {\n ...tooltipPosition,\n maxWidth,\n width\n },\n arrow: getArrowStyles(trueDirection, el, parent)\n };\n };\n const onShowTooltip = (arrow, parent) => {\n if (!tooltipRef.current || !arrowRef.current) return;\n const arrowEl = arrowRef.current,\n el = tooltipRef.current;\n let positions;\n clearTimeout(calculateTimeoutRef.current);\n calculateTimeoutRef.current = setTimeout(() => {\n positions = getPosition(el, parent);\n }, 10);\n clearTimeout(hoverTimeoutRef.current);\n hoverTimeoutRef.current = setTimeout(() => {\n Object.assign(el.style, positions.tooltip, {\n opacity: 1\n });\n if (arrow) {\n Object.assign(arrowEl.style, positions.arrow.border, {\n opacity: 1\n });\n arrowEl.style.left = positions.arrow.position.left + 'px';\n arrowEl.style.top = positions.arrow.position.top + 'px';\n } else {\n Object.assign(arrowEl.style, hiddenPositions.arrow);\n }\n }, hoverDelay);\n };\n const onHideTooltip = () => {\n if (!tooltipRef.current || !arrowRef.current) return;\n const arrowEl = arrowRef.current,\n el = tooltipRef.current;\n clearTimeout(hoverTimeoutRef.current);\n hoverTimeoutRef.current = setTimeout(() => {\n Object.assign(el.style, hiddenPositions.tooltip);\n Object.assign(arrowEl.style, hiddenPositions.arrow);\n }, hoverDelay);\n };\n const setOpenTrue = () => {\n if (disabled) return;\n setOpen(true);\n };\n const setOpenFalse = () => {\n setOpen(false);\n };\n useEffect(() => {\n if (open) {\n onShowTooltip(arrow, ref.current);\n } else {\n onHideTooltip();\n }\n }, [open]);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n const renderTooltip = useMemo(() => {\n if (open && title) {\n const node = jsx(\"div\", {\n className: 'DGN-UI-Portal DGN-Tooltip',\n onMouseEnter: () => disableInteractive ? onHideTooltip() : null\n }, jsx(\"span\", {\n className: IDs.arrow,\n css: ArrowCSS,\n ref: arrowRef,\n style: {\n ...hiddenPositions.arrow\n }\n }), jsx(\"span\", {\n className: classNames(IDs.main, className),\n css: _MainCSS,\n ref: tooltipRef,\n style: {\n ...hiddenPositions.tooltip\n }\n }, title));\n return /*#__PURE__*/createPortal(node, document.body);\n }\n return null;\n }, [backgroundColor, className, color, disableInteractive, hoverDelay, padding, size, textAlign, title, open]);\n return jsx(TagCreatedName, {\n ref: ref,\n className: IDs.container,\n style: style,\n onMouseEnter: setOpenTrue,\n onMouseLeave: setOpenFalse,\n onFocus: setOpenTrue,\n onBlur: setOpenFalse,\n ...props\n }, children, renderTooltip);\n}));\nconst ArrowCSS = css`\n ${positionAbsolute};\n ${userSelectNone};\n ${parseWidthHeight(0)};\n opacity: 0;\n transition: opacity 0.1s ease-in-out;\n z-index: ${zIndexCORE(5)};\n`;\nconst MainCSS = (backgroundColor, color, size, padding, textAlign) => css`\n ${displayInlineBlock};\n ${boxBorder};\n ${positionAbsolute};\n ${userSelectNone};\n ${borderRadius4px};\n ${size === 'small' ? paragraph3 : paragraph2};\n background-color: ${colors[backgroundColor] || backgroundColor};\n color: ${colors[color] || color};\n padding: ${padding};\n text-align: ${textAlign};\n opacity: 0;\n transition: opacity 0.1s ease-in-out;\n ${breakWord};\n z-index: ${zIndexCORE(4)};\n`;\nTooltip.defaultProps = {\n alignMode: 'middle',\n arrow: false,\n arrowSize: 6,\n backgroundColor: fillTooltip,\n className: '',\n color: systemWhite,\n direction: 'down',\n disabled: false,\n disableInteractive: false,\n forceDirection: false,\n hoverDelay: 50,\n padding: spacing([1, 1.5]),\n size: 'medium',\n style: {},\n tagCreatedName: 'div',\n textAlign: 'center',\n viewportPadding: defaultViewPadding\n};\nTooltip.propTypes = {\n /** alignMode use to set align-items of the tooltip*/\n alignMode: PropTypes.oneOf(['flex-end', 'flex-start', 'middle']),\n /** If true, adds an arrow to the tooltip. */\n arrow: PropTypes.bool,\n /** Size of the arrow. */\n arrowSize: PropTypes.number,\n /** Background color of the tooltip. */\n backgroundColor: PropTypes.string,\n /** Tooltip reference element. */\n children: PropTypes.node.isRequired,\n /** Class for component. */\n className: PropTypes.string,\n /** Color of the title. */\n color: PropTypes.string,\n /** Direction of the tooltip. */\n direction: PropTypes.oneOf(['down', 'left', 'right', 'up']),\n /** If `true`, the component is disabled. */\n disabled: PropTypes.bool,\n /** If `true`, makes a tooltip not interactive, i.e. it will close when the user hovers over the tooltip. */\n disableInteractive: PropTypes.bool,\n /** Distance between the tooltip and the children. */\n distance: PropTypes.number,\n /** If `true`, set the static direction of the tooltip. */\n forceDirection: PropTypes.bool,\n /** The number of milliseconds to wait before showing the tooltip. */\n hoverDelay: PropTypes.number,\n /** Padding of the title. */\n padding: PropTypes.string,\n /** The size of the title. */\n size: PropTypes.oneOf(['small', 'medium']),\n /** Style inline of component. */\n style: PropTypes.object,\n /** Tag name of the element will be created to contain the children. */\n tagCreatedName: PropTypes.oneOf(['div', 'span']),\n /** Text align of the title. */\n textAlign: PropTypes.oneOf(['center', 'justify', 'left', 'right']),\n /** The title to show in tooltip when hover. */\n title: PropTypes.oneOfType([PropTypes.element, PropTypes.string]).isRequired,\n /** Max width of the tooltip */\n tooltipMaxWidth: PropTypes.number,\n /** Padding of the viewport with the tooltip */\n viewportPadding: PropTypes.number\n};\nexport default Tooltip;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { memo, useRef, forwardRef, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx, css } from '@emotion/core';\nimport theme from \"../../theme/settings\";\nconst levels = [0, 1, 'second', 'third', 'fourth', 'fifth'];\nconst List = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n className,\n width,\n maxWidth,\n children,\n style,\n scrollAble,\n maxHeight,\n level,\n refs,\n ...props\n}, ref) => {\n if (!ref) {\n ref = useRef(null);\n }\n const ListRoot = css`\n display: block;\n position: relative;\n width: ${isNaN(width) ? width : width + 'px'};\n max-width: ${isNaN(maxWidth) ? maxWidth : maxWidth + 'px'};\n height: auto;\n padding: 5px 0;\n background-color: #fff;\n box-sizing: border-box;\n &.scroll-able {\n max-height: ${maxHeight ? isNaN(maxHeight) ? maxHeight : maxHeight + 'px' : '300px'};\n overflow-y: auto;\n padding-top: 0;\n &::-webkit-scrollbar {\n width: 6px;\n background-color: white;\n border-radius: 4px;\n }\n &::-webkit-scrollbar-thumb {\n border-radius: 10px;\n mix-blend-mode: normal;\n background-color: ${theme.colors.system.disabled};\n background-clip: content-box;\n }\n }\n .second {\n padding: 0;\n .DGN-UI-List-Item {\n padding-left: 32px;\n }\n }\n .third {\n padding: 0;\n .DGN-UI-List-Item {\n padding-left: 48px;\n }\n }\n .fourth {\n padding: 0;\n .DGN-UI-List-Item {\n padding-left: 64px;\n }\n }\n .fifth {\n padding: 0;\n .DGN-UI-List-Item {\n padding-left: 80px;\n }\n }\n `;\n useEffect(() => {\n if (refs) refs(ref);\n }, []);\n useEffect(() => {\n if (level && level > 1 && level < levels.length) {\n ref.current.classList.add(levels[level]);\n }\n return () => {\n if (ref.current && level && level > 1 && level < levels.length) {\n ref.current.classList.remove(levels[level]);\n }\n };\n }, [level]);\n useEffect(() => {\n if (scrollAble || maxHeight) {\n ref.current.classList.add('scroll-able');\n }\n return () => {\n if (ref.current && (scrollAble || maxHeight)) {\n ref.current.classList.remove('scroll-able');\n }\n };\n }, [scrollAble, maxHeight]);\n useEffect(() => {\n if (style) {\n Object.assign(ref.current.style, style);\n }\n return () => {\n if (style && ref.current) {\n ref.current.style = null;\n }\n };\n }, [style]);\n const ListView = useMemo(() => jsx(\"div\", {\n css: ListRoot,\n ref: ref,\n className: ('DGN-UI-List ' + className).trim(),\n ...props\n }, children), [children]);\n return ListView;\n}));\nList.defaultProps = {\n scrollAble: false,\n width: '100%',\n maxWidth: '360px',\n className: ''\n};\nList.propTypes = {\n /** fixed height of List and positive scroll list items */\n scrollAble: PropTypes.bool,\n /** class for List */\n className: PropTypes.string,\n /** width of list */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /** max width */\n maxWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /** fixed height of List and positive scroll list items */\n maxHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /** represents the level of nested List, The higher the level, the content will be pushed */\n level: PropTypes.number,\n // [1,2,3,4,5]\n /** the function to get ref */\n refs: PropTypes.func,\n /** style inline for List */\n style: PropTypes.object,\n /** include list subheader, list items */\n children: PropTypes.node\n};\nexport default List;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { memo, useRef, forwardRef, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx, css } from '@emotion/core';\nimport theme from \"../../theme/settings\";\nimport Ripple from \"../button/ripple-effect\";\nconst ListItem = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n children,\n className,\n style,\n onClick,\n button,\n inset,\n refs,\n ...props\n}, ref) => {\n if (!ref) {\n ref = useRef(null);\n }\n const ListItemRoot = css`\n display: flex;\n position: relative;\n flex: 1 1 auto;\n flex-direction: row;\n align-items: center;\n width: 100%;\n max-width: 360px;\n height: auto;\n min-height: 32px;\n padding: 0 16px;\n color: ${theme.colors.system.active};\n overflow: hidden;\n background-color: inherit;\n box-sizing: border-box;\n &.click-able {\n cursor: pointer;\n user-select: none;\n &:hover {\n background-color: ${theme.colors.fill.hover};\n }\n }\n &.DGN-Active {\n background-color: ${theme.colors.fill.hover};\n }\n &.inset {\n padding-left: 56px;\n }\n `;\n const handleClick = e => {\n const {\n currentTarget,\n target\n } = e;\n const actionNode = currentTarget.querySelector('.DGN-UI-List-Item-Action');\n if (!actionNode || !actionNode.contains(target)) {\n onClick(e);\n }\n };\n useEffect(() => {\n if (refs) refs(ref);\n }, []);\n useEffect(() => {\n if (inset) {\n ref.current.classList.add('inset');\n }\n return () => {\n if (inset && ref.current) {\n ref.current.classList.remove('inset');\n }\n };\n }, [inset]);\n const ListItemView = useMemo(() => jsx(\"div\", {\n css: ListItemRoot,\n className: 'DGN-UI-List-Item ' + (onClick ? 'click-able ' : '') + className,\n ref: ref,\n onClick: onClick ? handleClick : null,\n style: style,\n ...props\n }, children, button && jsx(Ripple, {\n color: '#8F9BB3'\n })), [children, button, style]);\n return ListItemView;\n}));\nListItem.defaultProps = {\n className: ''\n};\nListItem.propTypes = {\n /** has the same effect as a button if true */\n button: PropTypes.bool,\n /** classes name for list item */\n className: PropTypes.string,\n /** the function to get ref of ListItem */\n refs: PropTypes.func,\n /** the function for click event */\n onClick: PropTypes.func,\n /** style inline of ListItem */\n style: PropTypes.object,\n /** includes ListItemIcon, ListItemText, ListItemAction */\n children: PropTypes.node\n};\nexport default ListItem;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { memo, useRef, forwardRef, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx, css } from '@emotion/core';\nimport theme from \"../../theme/settings\";\nimport * as Icons from \"../../icons\";\nconst ListItemIcon = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n className,\n children,\n name,\n style,\n refs,\n ...props\n}, ref) => {\n if (!ref) {\n ref = useRef(null);\n }\n const ListItemIconRoot = css`\n display: flex;\n position: relative;\n align-items: center;\n min-width: 40px;\n color: ${theme.colors.system.active};\n background-color: transparent;\n box-sizing: border-box;\n order: 1;\n z-index: 1;\n `;\n useEffect(() => {\n if (refs) refs(ref);\n }, []);\n const ListItemIconView = useMemo(() => {\n let node = children;\n if (!node) {\n const Icon = Icons[name];\n if (Icon) {\n node = jsx(Icon, null);\n }\n }\n return jsx(\"div\", {\n css: ListItemIconRoot,\n className: 'DGN-UI-List-Item-Icon ' + className,\n ref: ref,\n style: style,\n ...props\n }, node);\n }, [children, name]);\n return ListItemIconView;\n}));\nListItemIcon.defaultProps = {\n className: ''\n};\nListItemIcon.propTypes = {\n /** the name of icon to display in ListItemIcon (used instead of children) */\n name: PropTypes.string,\n /** class for ListItemIcon */\n className: PropTypes.string,\n /** the function to get ref of ListItemIcon */\n refs: PropTypes.func,\n /** style inline of ListItemIcon */\n style: PropTypes.object,\n /** the icon to display in ListItem */\n children: PropTypes.node\n};\nexport default ListItemIcon;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { memo, useRef, forwardRef, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx, css } from '@emotion/core';\nimport { Typography } from \"../\";\nconst ListItemText = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n className,\n children,\n style,\n refs,\n ...props\n}, ref) => {\n if (!ref) {\n ref = useRef(null);\n }\n const ListItemTextRoot = css`\n display: flex;\n flex: 1 1 auto;\n position: relative;\n align-items: center;\n background-color: inherit;\n box-sizing: border-box;\n order: 2;\n `;\n useEffect(() => {\n if (refs) refs(ref);\n }, []);\n const ListItemTextView = useMemo(() => jsx(\"div\", {\n css: ListItemTextRoot,\n className: 'DGN-UI-List-Item-Text ' + className,\n ref: ref,\n style: style,\n ...props\n }, jsx(Typography, null, children)), [children]);\n return ListItemTextView;\n}));\nListItemText.defaultProps = {\n className: ''\n};\nListItemText.propTypes = {\n /** class for ListItemText */\n className: PropTypes.string,\n /** the function to get ref of ListItemText */\n refs: PropTypes.func,\n /** style inline of ListItemText */\n style: PropTypes.object,\n /** content to display in ListItem */\n children: PropTypes.node\n};\nexport default ListItemText;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { memo, useRef, forwardRef, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx, css } from '@emotion/core';\nimport theme from \"../../theme/settings\";\nimport { ButtonIcon } from '..';\nconst ListItemAction = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n children,\n name,\n className,\n style,\n onClick,\n refs,\n ...props\n}, ref) => {\n if (!ref) {\n ref = useRef(null);\n }\n const ListItemActionRoot = css`\n display: flex;\n position: relative;\n align-items: center;\n max-height: 24px;\n margin-left: 16px;\n line-height: 40px;\n color: ${theme.colors.system.active};\n background-color: transparent;\n box-sizing: border-box;\n order: 3;\n z-index: 1;\n `;\n useEffect(() => {\n if (refs) refs(ref);\n }, []);\n const ListItemActionView = useMemo(() => {\n let node = children;\n if (!node) {\n node = jsx(ButtonIcon, {\n viewType: 'ghost',\n name: name,\n onClick: onClick\n });\n }\n return jsx(\"div\", {\n className: 'DGN-UI-List-Item-Action ' + className,\n css: ListItemActionRoot,\n ref: ref,\n style: style,\n ...props\n }, node);\n }, [children, name, style]);\n return ListItemActionView;\n}));\nListItemAction.defaultProps = {\n className: ''\n};\nListItemAction.propTypes = {\n /** the name of icon to display in ListItemAction (used instead of children) */\n name: PropTypes.string,\n /** classes name for list item action */\n className: PropTypes.string,\n /** the function to get ref of ListItemAction */\n refs: PropTypes.func,\n /** the function for click event */\n onClick: PropTypes.func,\n /** style inline of ListItemAction */\n style: PropTypes.object,\n /** content to display in ListItem */\n children: PropTypes.node\n};\nexport default ListItemAction;","/* eslint-disable react/display-name */\nimport React, { forwardRef, memo, useImperativeHandle, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from \"./modal\";\nimport Header from \"./header\";\nimport Body from \"./body\";\nimport Footer from \"./footer\";\nconst ModalSample = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n bodyStyle,\n children,\n footer,\n footerStyle,\n headerStyle,\n style,\n title,\n ...props\n}, reference) => {\n const ref = useRef(null);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n return /*#__PURE__*/React.createElement(Modal, {\n ref: ref,\n style: style,\n ...props\n }, /*#__PURE__*/React.createElement(Header, {\n style: headerStyle\n }, title), /*#__PURE__*/React.createElement(Body, {\n style: bodyStyle\n }, children), footer && /*#__PURE__*/React.createElement(Footer, {\n style: footerStyle\n }, footer));\n}));\nModalSample.defaultProps = {\n title: ''\n};\nModalSample.propTypes = {\n /** Style inline of the body component. */\n bodyStyle: PropTypes.object,\n /** The content of the body component. */\n children: PropTypes.node,\n /** The content of the footer component. */\n footer: PropTypes.node,\n /** Style inline of the footer component. */\n footerStyle: PropTypes.object,\n /** Style inline of the header component. */\n headerStyle: PropTypes.object,\n /** Style inline of component. */\n style: PropTypes.object,\n /** The content of the header component. */\n title: PropTypes.node,\n /** Any props else. */\n props: PropTypes.any\n};\nexport default ModalSample;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport { ButtonIcon, Divider, Dropdown, NumberInput, Typography } from \"./..\";\nimport OptionWrapper from \"../others/option-wrapper\";\nimport { getGlobal } from \"../../global\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { bgColor, borderTop, boxBorder, cursorPointer, displayFlex, flexRow, itemsCenter, justifyCenter, mg, mgb, mgl, noPadding, parseHeight, parseMinHeight, parseMinWidth, parseMinWidthHeight, parseWidthHeight, pd, textCenter, textColor, textLeft, whiteSpaceNoWrap } from \"../../styles/general\";\nimport { useTheme } from \"../../theme\";\nimport { classNames } from \"../../utils\";\nconst {\n colors: {\n system: {\n active: systemActive\n }\n },\n typography: {\n paragraph2\n }\n} = useTheme();\nconst getLastPage = (totalItems, itemsPerPage) => {\n let _lastPage = 0;\n if (totalItems && totalItems >= 0 && itemsPerPage && itemsPerPage > 0) {\n _lastPage = Math.ceil(totalItems / itemsPerPage);\n return _lastPage;\n }\n return _lastPage + 1;\n};\nconst delayOnInput = getGlobal('delayOnInput');\nconst PagingInfo = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n bgColor,\n className,\n currentPage,\n hideWithPage,\n id,\n itemsPerPage,\n listPerPage,\n onChangePage,\n onChangePerPage,\n onChangingPage,\n onChangingPerPage,\n style,\n totalItems,\n typeShort\n}, reference) => {\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n const timer = useRef(null);\n const currentPageRef = useRef(currentPage);\n const numberRef = useRef(null);\n const totalRef = useRef(null);\n const [totalItemsState, setTotalItemsState] = useState(totalItems);\n const [itemsPerPageState, setItemsPerPageState] = useState(itemsPerPage || listPerPage[0] || 10);\n const [currentPageState, setCurrentPageState] = useState(currentPage);\n const [listPerPageState, setListPerPageState] = useState(listPerPage);\n const [disablePrevState, setDisablePrevState] = useState(true);\n const [disableNextState, setDisableNextState] = useState(!(totalItems > itemsPerPage));\n const [inputPageValue, setInputPageValue] = useState(currentPage);\n const _PagingInfoCSS = PagingInfoCSS(bgColor, typeShort);\n const _onChangePage = async ({\n page,\n e,\n changeBy\n }) => {\n const lastPage = getLastPage(totalItemsState, itemsPerPageState);\n let disablePrev = false;\n let disableNext = false;\n\n // If last page = 1. Disable all\n if (lastPage === 1) {\n disablePrev = true;\n disableNext = true;\n }\n\n // If current page = last page. Disable Next and Last\n if (page + 1 >= lastPage) {\n disableNext = true;\n }\n\n // If current page = 0. Disable Previous and First\n if (page === 0) {\n disablePrev = true;\n }\n setDisablePrevState(disablePrev);\n setDisableNextState(disableNext);\n if (page === currentPageState) return;\n if (onChangingPage) {\n const event = {\n ...e,\n cancel: false,\n prevPage: currentPageState,\n newPage: page,\n changeBy: changeBy\n };\n await onChangingPage(event);\n if (event.cancel) {\n if (e !== null && e !== void 0 && e.reset) e.reset();\n currentPageRef.current = currentPageState;\n setCurrentPageState(currentPageState);\n setInputPageValue(currentPageState);\n return;\n }\n }\n currentPageRef.current = page;\n setCurrentPageState(page);\n setInputPageValue(page);\n if (onChangePage) onChangePage(page);\n };\n const _onChangePerPage = async per => {\n if (per === itemsPerPageState) return;\n const lastPage = getLastPage(totalItemsState, per);\n per = parseInt(per, 10);\n let disableNext = false;\n\n // If last page = 1. Disable all\n if (lastPage === 1) {\n disableNext = true;\n }\n if (onChangingPerPage) {\n const event = {\n cancel: false,\n prevPerPage: itemsPerPageState,\n newPerPage: per\n };\n await onChangingPerPage(event);\n if (event.cancel) {\n return;\n }\n }\n setItemsPerPageState(per);\n _onChangePage({\n page: 0\n });\n setDisablePrevState(true);\n setDisableNextState(disableNext);\n if (onChangePerPage) onChangePerPage(per);\n };\n const onTypePaging = e => {\n var _e$value;\n if (timer.current) {\n clearTimeout(timer.current);\n }\n const value = (_e$value = e === null || e === void 0 ? void 0 : e.value) !== null && _e$value !== void 0 ? _e$value : e;\n const lastPage = getLastPage(totalItemsState, itemsPerPageState);\n const page = !value || parseInt(value) < 0 ? 1 : parseInt(value) > lastPage ? lastPage : parseInt(value);\n currentPage = page - 1;\n timer.current = setTimeout(() => {\n _onChangePage({\n page: page - 1,\n e: e\n });\n }, delayOnInput);\n };\n const checkKeyPress = e => {\n if (/,/.test(e.key)) {\n e.preventDefault();\n }\n };\n useEffect(() => {\n setTotalItemsState(totalItems);\n }, [totalItems]);\n useEffect(() => {\n _onChangePerPage(itemsPerPage);\n }, [itemsPerPage]);\n useEffect(() => {\n _onChangePage({\n page: currentPage,\n changeBy: 'currentPage'\n });\n }, [currentPage]);\n useEffect(() => {\n setListPerPageState(listPerPage);\n }, [listPerPage]);\n useEffect(() => {\n _onChangePage({\n page: totalItemsState / itemsPerPageState < currentPageState - 1 ? 0 : currentPageState,\n changeBy: 'totalItems'\n });\n }, [totalItemsState]);\n useEffect(() => {\n _onChangePage({\n page: totalItemsState / itemsPerPageState < currentPageState - 1 ? 0 : currentPageState,\n changeBy: 'itemsPerPage'\n });\n }, [itemsPerPageState]);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n onChangePage: page => _onChangePage({\n page: page,\n changeBy: 'ref'\n }),\n onChangePerPage: per => _onChangePerPage(per),\n setTotalItems: items => setTotalItemsState(items),\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n currentRef.onChangePage = page => _onChangePage({\n page: page,\n changeBy: 'ref'\n });\n currentRef.onChangePerPage = per => _onChangePerPage(per);\n currentRef.setTotalItems = items => setTotalItemsState(items);\n return currentRef;\n });\n const updateSize = () => {\n if (timer.current) {\n clearTimeout(timer.current);\n }\n timer.current = setTimeout(() => {\n var _ref$current;\n let conti = true;\n [...(((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.children) || [])].reverse().forEach(item => {\n if (item !== null && item !== void 0 && item.style) {\n item.style.display = 'flex';\n if (!conti) {\n item.style.opacity = 1;\n return;\n }\n }\n conti = hiddenEle(item);\n });\n }, 300);\n };\n useLayoutEffect(() => {\n window.addEventListener('resize', updateSize);\n updateSize();\n return () => window.removeEventListener('resize', updateSize);\n }, []);\n const hiddenEle = child => {\n setTimeout(() => {\n var _ref$current2;\n const infoChild = child === null || child === void 0 ? void 0 : child.getBoundingClientRect();\n const infoParent = (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.getBoundingClientRect();\n if (!infoChild || !infoParent) return;\n\n // getBoundingClientRect includes margin => phải trừ đi margin\n const style = window.getComputedStyle(child) || child.currentStyle;\n const margin = parseInt((style === null || style === void 0 ? void 0 : style.marginLeft) || 0) + parseInt((style === null || style === void 0 ? void 0 : style.marginRight) || 0);\n if (infoChild.right - margin >= infoParent.right) {\n child.style.opacity = 0;\n child.style.setProperty('display', 'none', 'important');\n } else {\n child.style.opacity = 1;\n }\n return infoChild.right >= infoParent.right;\n });\n };\n const setWithNumber = useCallback((totalRefs = totalRef, numberRefs = numberRef) => {\n var _totalRefs;\n if (!totalRefs) totalRefs = totalRef.current;\n if (!numberRefs) numberRefs = numberRef.current;\n if (!totalRefs || !numberRefs) return;\n const infoText = (_totalRefs = totalRefs) === null || _totalRefs === void 0 ? void 0 : _totalRefs.getBoundingClientRect();\n if (infoText && numberRefs) {\n numberRefs.style.width = `${infoText.width * 2 + 6}px`;\n numberRefs.style.minWidth = `${infoText.width * 2 + 6}px`;\n }\n }, [totalRef, numberRef]);\n const checkShowPaging = () => {\n switch (hideWithPage) {\n case 'empty':\n return totalItemsState !== 0;\n case 'single':\n return totalItemsState / itemsPerPageState > 1;\n case 'none':\n default:\n return true;\n }\n };\n return useMemo(() => {\n const lastPage = getLastPage(totalItemsState, itemsPerPageState);\n let listPerPageData = !listPerPageState.includes(itemsPerPageState) ? [{\n name: itemsPerPageState,\n id: itemsPerPageState\n }] : [];\n listPerPageState.map(item => listPerPageData = [...listPerPageData, {\n name: item,\n id: item\n }]);\n listPerPageData = [...new Map(listPerPageData.map(v => [JSON.stringify(v), v])).values()];\n listPerPageData.sort((a, b) => a.id - b.id);\n const showPaging = checkShowPaging();\n return showPaging ? jsx(\"div\", {\n ref: ref,\n css: _PagingInfoCSS,\n id: id,\n style: style,\n className: classNames('DGN-UI-PagingInfo', className)\n }, jsx(ButtonIcon, {\n circular: true,\n viewType: 'ghost',\n size: 'small',\n name: 'ArrowDoubleLeft',\n disabled: disablePrevState,\n onClick: e => {\n setInputPageValue(0);\n currentPageRef.current = 0;\n if (timer.current) {\n clearTimeout(timer.current);\n }\n timer.current = setTimeout(() => {\n _onChangePage({\n page: 0,\n e: e\n });\n }, delayOnInput);\n }\n }), jsx(ButtonIcon, {\n circular: true,\n viewType: 'ghost',\n size: 'small',\n name: 'ArrowLeft',\n disabled: disablePrevState,\n onClick: e => {\n setInputPageValue(inputPageValue - 1);\n currentPageRef.current = currentPageRef.current === 0 ? 0 : currentPageRef.current - 1;\n if (timer.current) {\n clearTimeout(timer.current);\n }\n timer.current = setTimeout(() => {\n _onChangePage({\n page: currentPageRef.current,\n e: e\n });\n }, delayOnInput);\n }\n }), jsx(\"div\", {\n css: ViewNumberInput,\n ref: refs => {\n numberRef.current = refs;\n setWithNumber(null, refs);\n }\n }, jsx(NumberInput, {\n disabledNegative: true,\n className: 'inputPage',\n value: inputPageValue ? String(inputPageValue + 1) : '1',\n min: 1,\n autoWidth: true,\n inputStyle: {\n minWidth: 10\n },\n width: 'auto',\n placeholder: '',\n max: lastPage,\n onKeyDown: checkKeyPress,\n onChange: onTypePaging\n }), \"/\", jsx(Typography, {\n ref: refs => {\n totalRef.current = refs;\n setWithNumber(refs, null);\n },\n css: whiteSpaceNoWrap,\n type: 'p2'\n }, lastPage)), jsx(ButtonIcon, {\n circular: true,\n viewType: 'ghost',\n size: 'small',\n name: 'ArrowRight',\n disabled: disableNextState,\n onClick: e => {\n setInputPageValue(inputPageValue + 1);\n currentPageRef.current = currentPageRef.current === lastPage ? lastPage : currentPageRef.current + 1;\n if (timer.current) {\n clearTimeout(timer.current);\n }\n timer.current = setTimeout(() => {\n _onChangePage({\n page: currentPageRef.current,\n e: e\n });\n }, delayOnInput);\n }\n }), jsx(ButtonIcon, {\n circular: true,\n viewType: 'ghost',\n size: 'small',\n name: 'ArrowDoubleRight',\n disabled: disableNextState,\n onClick: e => {\n setInputPageValue(lastPage - 1);\n currentPageRef.current = lastPage - 1;\n if (timer.current) {\n clearTimeout(timer.current);\n }\n timer.current = setTimeout(() => {\n _onChangePage({\n page: lastPage - 1,\n e: e\n });\n }, delayOnInput);\n }\n }), jsx(Typography, {\n type: 'p2',\n ref: hiddenEle,\n className: \"txt-line-number\"\n }, typeShort ? jsx(Divider, {\n direction: 'vertical',\n height: 24,\n color: 'line/category'\n }) : getGlobal('lineNumber'), jsx(Dropdown, {\n allowSearch: false,\n viewType: 'underlined',\n dataSource: listPerPageData,\n value: itemsPerPageState,\n onChange: e => _onChangePerPage(e === null || e === void 0 ? void 0 : e.value),\n inputStyle: {\n width: `${Math.max(...listPerPageState).toString().length}ch`\n },\n inputProps: {\n readOnly: true\n },\n dropdownItemStyle: {\n color: systemActive\n }\n })), jsx(Typography, {\n type: 'p2',\n ref: hiddenEle,\n className: 'total-items'\n }, typeShort ? jsx(Divider, {\n direction: 'vertical',\n height: 24,\n color: 'line/category'\n }) : getGlobal('total') + ':', totalItemsState)) : null;\n }, [bgColor, className, hideWithPage, style, typeShort, currentPageState, disableNextState, disablePrevState, inputPageValue, itemsPerPageState, listPerPageState, totalItemsState]);\n}));\nconst ViewNumberInput = css`\n ${displayFlex};\n ${flexRow};\n ${itemsCenter};\n ${justifyCenter};\n ${mg([0, 1])};\n transition: all 0.1s;\n`;\nconst PagingInfoCSS = (bgCl, typeShort) => css`\n ${displayFlex};\n ${flexRow};\n ${itemsCenter};\n ${paragraph2};\n ${boxBorder};\n ${parseHeight(40)};\n ${borderTop(1, 'line/system')};\n ${pd([1, 0])};\n ${bgColor(bgCl)};\n ${textColor('text/main')};\n .inputPage {\n ${textCenter};\n ${mg([0, 0.5])};\n .DGN-UI-InputBase {\n ${noPadding};\n input {\n ${paragraph2};\n ${textCenter};\n ${textColor('system/active')};\n ${textLeft};\n }\n }\n }\n .txt-line-number {\n ${displayFlex};\n ${whiteSpaceNoWrap};\n ${itemsCenter};\n opacity: 0;\n transition: opacity 0.3s ease;\n }\n .DGN-UI-Divider {\n ${mg([0, 2])};\n }\n .DGN-UI-Dropdown {\n ${mgl([typeShort ? 0 : 2])};\n ${mgb(0)};\n ${parseMinWidth(52)};\n .DGN-UI-Dropdown-Form {\n ${parseMinHeight(24)};\n ${pd(0)};\n input,\n span {\n ${paragraph2};\n ${noPadding};\n ${cursorPointer};\n }\n .DGN-UI-Dropdown-Icon {\n ${mgl([1.5])};\n div,\n span,\n svg {\n ${parseWidthHeight(20)};\n ${parseMinWidthHeight(20)};\n }\n }\n }\n }\n .total-items {\n ${displayFlex};\n ${flexRow};\n ${whiteSpaceNoWrap};\n ${itemsCenter};\n ${mgl([typeShort ? 0 : 4])};\n opacity: 0;\n transition: opacity 0.3s ease;\n }\n`;\nPagingInfo.defaultProps = {\n bgColor: 'system/white',\n className: '',\n currentPage: 0,\n hideWithPage: 'none',\n listPerPage: [10, 15, 20, 30, 50],\n style: {},\n totalItems: 0,\n typeShort: false\n};\nPagingInfo.propTypes = {\n /** Background color for component. */\n bgColor: PropTypes.string,\n /** Class for component. */\n className: PropTypes.string,\n /** Specifies the current page. */\n currentPage: PropTypes.number,\n /** Hidden mode for page selector. */\n hideWithPage: PropTypes.oneOf(['none', 'empty', 'single']),\n /** The quantity of items per page. */\n itemsPerPage: PropTypes.number,\n /** The list to choose the number of elements to display per page. */\n listPerPage: PropTypes.array,\n /** Callback fired when page number changed. */\n onChangePage: PropTypes.func,\n /** Callback fired when quantity on per page changed. */\n onChangePerPage: PropTypes.func,\n /**\r\n * Callback fired when page number is changing.\r\n *\r\n * * prevPage: Page before changed\r\n * * newPage: Page after changed\r\n * * cancel(value): Function cancel change page\r\n * * @param {value} - bool\r\n */\n onChangingPage: PropTypes.func,\n /**\r\n * Callback fired when quantity on item per page is changing.\r\n *\r\n * * prevPerPage: Items per page before changed\r\n * * newPerPage: Items per page after changed\r\n * * cancel(value): Function cancel change items per page\r\n * * @param {value} - bool\r\n */\n onChangingPerPage: PropTypes.func,\n /** Style inline of component. */\n style: PropTypes.object,\n /** Total items. */\n totalItems: PropTypes.number,\n /** Compact type for mobile. */\n typeShort: PropTypes.bool\n /**\r\n * ref methods (ref.current.instance.*method*)\r\n *\r\n * * onChangePage(page): Change page number\r\n * * @param {page} - number\r\n * * onChangePerPage(per): Change quantity on per page\r\n * * @param {per} - number\r\n * * setTotalItems(items): Set total items\r\n * * @param {items} - number\r\n *\r\n * * option(): Gets all UI component properties\r\n * * Returns value - object\r\n * * option(optionName): Gets the value of a single property\r\n * * @param {optionName} - string\r\n * * Returns value - any\r\n * * option(optionName, optionValue): Updates the value of a single property\r\n * * @param {optionName} - string\r\n * * @param {optionValue} - any\r\n * * option(options): Updates the values of several properties\r\n * * @param {options} - object\r\n */\n};\n\nexport { PagingInfo };\nexport default OptionWrapper(PagingInfo);","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport { ButtonIcon } from \"./..\";\nimport OptionWrapper from \"../others/option-wrapper\";\nimport { getGlobal } from \"../../global\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { bgColor, borderTop, boxBorder, displayFlex, flexRow, itemsCenter, parseWidthHeight, pd } from \"../../styles/general\";\nimport { useTheme } from \"../../theme\";\nimport { useElementSize } from \"../../utils\";\nconst {\n typography: {\n paragraph2\n }\n} = useTheme();\nconst getLastPage = (totalItems, itemsPerPage) => {\n let _lastPage = 0;\n if (totalItems && totalItems >= 0 && itemsPerPage && itemsPerPage > 0) {\n _lastPage = Math.ceil(totalItems / itemsPerPage);\n return _lastPage;\n }\n return _lastPage + 1;\n};\nconst delayOnInput = getGlobal('delayOnInput');\nconst PagingSelector = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n className,\n currentPage,\n hideEllipsis,\n hideWithPage,\n id,\n itemsPerPage,\n onChangePage,\n onChangePerPage,\n onChangingPage,\n onChangingPerPage,\n style,\n totalItems\n}, reference) => {\n const ref = useRef(null);\n const timer = useRef(null);\n const currentPageRef = useRef(currentPage);\n const [totalItemsState, setTotalItemsState] = useState(totalItems);\n const [itemsPerPageState, setItemsPerPageState] = useState(itemsPerPage || 10);\n const [currentPageState, setCurrentPageState] = useState(currentPage);\n const [disablePrevState, setDisablePrevState] = useState(true);\n const [disableNextState, setDisableNextState] = useState(!(totalItems > itemsPerPage));\n const [refSize, {\n width: componentWidth\n }] = useElementSize();\n const lastPage = getLastPage(totalItemsState, itemsPerPageState);\n const _onChangePage = async ({\n page,\n e,\n changeBy\n }) => {\n let disablePrev = false;\n let disableNext = false;\n\n // If last page = 1. Disable all\n if (lastPage === 1) {\n disablePrev = true;\n disableNext = true;\n }\n\n // If current page = last page. Disable Next and Last\n if (page + 1 >= lastPage) {\n disableNext = true;\n }\n\n // If current page = 0. Disable Previous and First\n if (page === 0) {\n disablePrev = true;\n }\n setDisablePrevState(disablePrev);\n setDisableNextState(disableNext);\n if (page === currentPageState) return;\n if (onChangingPage) {\n const event = {\n ...e,\n cancel: false,\n prevPage: currentPageState,\n newPage: page,\n changeBy: changeBy\n };\n await onChangingPage(event);\n if (event.cancel) {\n if (e !== null && e !== void 0 && e.reset) e.reset();\n currentPageRef.current = currentPageState;\n setCurrentPageState(currentPageState);\n return;\n }\n }\n currentPageRef.current = page;\n setCurrentPageState(page);\n if (onChangePage) onChangePage(page);\n };\n const _onChangePerPage = async per => {\n if (per === itemsPerPageState) return;\n const lastPage = getLastPage(totalItemsState, per);\n per = parseInt(per, 10);\n let disableNext = false;\n\n // If last page = 1. Disable all\n if (lastPage === 1) {\n disableNext = true;\n }\n if (onChangingPerPage) {\n const event = {\n cancel: false,\n prevPerPage: itemsPerPageState,\n newPerPage: per\n };\n await onChangingPerPage(event);\n if (event.cancel) {\n return;\n }\n }\n setItemsPerPageState(per);\n // currentPageRef.current = 0;\n // setCurrentPageState(0);\n _onChangePage({\n page: 0\n });\n setDisablePrevState(true);\n setDisableNextState(disableNext);\n if (onChangePerPage) onChangePerPage(per);\n };\n useEffect(() => {\n setTotalItemsState(totalItems);\n }, [totalItems]);\n useEffect(() => {\n _onChangePerPage(itemsPerPage);\n }, [itemsPerPage]);\n useEffect(() => {\n _onChangePage({\n page: currentPage,\n changeBy: 'currentPage'\n });\n }, [currentPage]);\n useEffect(() => {\n _onChangePage({\n page: totalItemsState / itemsPerPageState < currentPageState - 1 ? 0 : currentPageState,\n changeBy: 'totalItems'\n });\n }, [totalItemsState]);\n useEffect(() => {\n _onChangePage({\n page: totalItemsState / itemsPerPageState < currentPageState - 1 ? 0 : currentPageState,\n changeBy: 'itemsPerPage'\n });\n }, [itemsPerPageState]);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n onChangePage: page => _onChangePage({\n page: page,\n changeBy: 'ref'\n }),\n onChangePerPage: per => _onChangePerPage(per),\n setTotalItems: items => setTotalItemsState(items),\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n currentRef.onChangePage = page => _onChangePage({\n page: page,\n changeBy: 'ref'\n });\n currentRef.onChangePerPage = per => _onChangePerPage(per);\n currentRef.setTotalItems = items => setTotalItemsState(items);\n return currentRef;\n });\n const renderButton = (key, page, isSelected, customDisplay) => {\n if (page >= lastPage || page < 0) return;\n return jsx(ButtonIcon, {\n key: key,\n css: paragraph2,\n circular: true,\n viewType: isSelected ? 'filled' : 'text',\n size: 'small',\n color: 'primary',\n style: {\n fontWeight: 'normal'\n },\n onClick: e => page !== currentPageState && _onChangePage({\n page: page,\n e: e\n })\n }, customDisplay || page + 1);\n };\n const checkShowSelector = () => {\n switch (hideWithPage) {\n case 'empty':\n return totalItemsState !== 0;\n case 'single':\n return totalItemsState / itemsPerPageState > 1;\n case 'none':\n default:\n return true;\n }\n };\n return useMemo(() => {\n const count = componentWidth >= 368 ? 10 : componentWidth >= 208 ? 5 : 1;\n const pageArr = [...Array(count).keys()];\n const halfArrLength = Math.floor(count / 2);\n const quarterArrLength = Math.floor(count / 2.5);\n const showEllipsis = !hideEllipsis && count !== lastPage && count >= 5;\n const showSelector = checkShowSelector();\n return showSelector && jsx(\"div\", {\n css: PageSelectorCSS,\n ref: node => {\n ref.current = node;\n refSize(node);\n },\n id: id,\n style: style,\n className: ['DGN-UI-PagingSelector', className].join(' ').trim().replace(/\\s+/g, ' ')\n }, jsx(ButtonIcon, {\n circular: true,\n viewType: 'text',\n size: 'small',\n name: 'ArrowLeft',\n disabled: disablePrevState,\n onClick: e => {\n currentPageRef.current = currentPageRef.current === 0 ? 0 : currentPageRef.current - 1;\n if (timer.current) {\n clearTimeout(timer.current);\n }\n timer.current = setTimeout(() => {\n _onChangePage({\n page: currentPageRef.current,\n e: e\n });\n }, delayOnInput);\n }\n }), pageArr.map((_, idx) => {\n if (currentPageState < halfArrLength) {\n // các trang đầu\n if (showEllipsis) {\n if (idx === count - 1 && lastPage - 1 >= 10) {\n return renderButton(idx, lastPage - 1);\n } else {\n return renderButton(idx, idx, idx === currentPageState, idx === count - 2 && '...');\n }\n } else return renderButton(idx, idx, idx === currentPageState);\n } else if (currentPageState >= lastPage - halfArrLength) {\n // các trang cuối\n if (showEllipsis) {\n if (idx === 0) {\n return renderButton(idx, idx);\n } else {\n return renderButton(idx, lastPage - count + idx, lastPage - count + idx === currentPageState, idx === 1 && '...');\n }\n } else {\n return renderButton(idx, lastPage - count + idx, lastPage - count + idx === currentPageState);\n }\n } else {\n // các trang giữa\n if (idx < quarterArrLength) {\n if (showEllipsis) {\n if (idx === 0) {\n return renderButton(idx, idx);\n } else {\n return renderButton(idx, currentPageState - quarterArrLength + idx, false, idx === 1 && '...');\n }\n } else return renderButton(idx, currentPageState - quarterArrLength + idx);\n } else if (idx === quarterArrLength) {\n return renderButton(idx, currentPageState, true);\n } else {\n if (showEllipsis) {\n if (idx === count - 1) {\n return renderButton(idx, lastPage - 1);\n } else {\n return renderButton(idx, currentPageState - quarterArrLength + idx, false, idx === count - 2 && '...');\n }\n } else return renderButton(idx, currentPageState - quarterArrLength + idx);\n }\n }\n }), jsx(ButtonIcon, {\n circular: true,\n viewType: 'text',\n size: 'small',\n name: 'ArrowRight',\n disabled: disableNextState,\n onClick: e => {\n currentPageRef.current = currentPageRef.current === lastPage ? lastPage : currentPageRef.current + 1;\n if (timer.current) {\n clearTimeout(timer.current);\n }\n timer.current = setTimeout(() => {\n _onChangePage({\n page: currentPageRef.current,\n e: e\n });\n }, delayOnInput);\n }\n }));\n }, [className, hideEllipsis, hideWithPage, id, style, componentWidth, currentPageState, disableNextState, disablePrevState, itemsPerPageState, totalItemsState]);\n}));\nconst PageSelectorCSS = css`\n ${displayFlex};\n ${flexRow};\n ${itemsCenter};\n ${boxBorder};\n ${parseWidthHeight('100%', 40)};\n ${pd([1])};\n ${bgColor('system/white')};\n ${borderTop(1, 'line/system')};\n`;\nPagingSelector.defaultProps = {\n className: '',\n currentPage: 0,\n hideEllipsis: false,\n hideWithPage: 'none',\n style: {},\n totalItems: 0\n};\nPagingSelector.propTypes = {\n /** Class for component. */\n className: PropTypes.string,\n /** Specifies the current page. */\n currentPage: PropTypes.number,\n /** If `true`, hide ellipsis. */\n hideEllipsis: PropTypes.bool,\n /** Hidden mode for page selector. */\n hideWithPage: PropTypes.oneOf(['none', 'empty', 'single']),\n /** The quantity of items per page. */\n itemsPerPage: PropTypes.number,\n /** Callback fired when page number changed. */\n onChangePage: PropTypes.func,\n /** Callback fired when quantity on per page changed. */\n onChangePerPage: PropTypes.func,\n /**\r\n * Callback fired when page number is changing.\r\n *\r\n * * prevPage: Page before changed\r\n * * newPage: Page after changed\r\n * * cancel(value): Function cancel change page\r\n * * @param {value} - bool\r\n */\n onChangingPage: PropTypes.func,\n /**\r\n * Callback fired when quantity on item per page is changing.\r\n *\r\n * * prevPerPage: Items per page before changed\r\n * * newPerPage: Items per page after changed\r\n * * cancel(value): Function cancel change items per page\r\n * * @param {value} - bool\r\n */\n onChangingPerPage: PropTypes.func,\n /** Style inline of component. */\n style: PropTypes.object,\n /** Total items. */\n totalItems: PropTypes.number\n /**\r\n * ref methods (ref.current.instance.*method*)\r\n *\r\n * * onChangePage(page): Change page number\r\n * * @param {page} - number\r\n * * onChangePerPage(per): Change quantity on per page\r\n * * @param {per} - number\r\n * * setTotalItems(items): Set total items\r\n * * @param {items} - number\r\n *\r\n * * option(): Gets all UI component properties\r\n * * Returns value - object\r\n * * option(optionName): Gets the value of a single property\r\n * * @param {optionName} - string\r\n * * Returns value - any\r\n * * option(optionName, optionValue): Updates the value of a single property\r\n * * @param {optionName} - string\r\n * * @param {optionValue} - any\r\n * * option(options): Updates the values of several properties\r\n * * @param {options} - object\r\n */\n};\n\nexport { PagingSelector };\nexport default OptionWrapper(PagingSelector);","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport { Typography } from \"./..\";\nimport OptionWrapper from \"../others/option-wrapper\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useImperativeHandle, useMemo, useRef } from 'react';\nimport { bgColor, boxBorder, displayFlex, flexRow, itemsCenter, order, parseWidthHeight, pd, positionRelative, z } from \"../../styles/general\";\nimport { classNames } from \"../../utils\";\nconst PopoverHeader = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n children,\n className,\n id,\n style,\n title\n}, reference) => {\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n return useMemo(() => jsx(\"div\", {\n css: PopoverHeaderCSS,\n ref: ref,\n id: id,\n style: style,\n className: classNames('DGN-UI-Popover-Header', className)\n }, jsx(Typography, {\n type: 'h3',\n style: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: '100%'\n }\n }, children ? children : title)), [children, className, id, style, title]);\n}));\nconst PopoverHeaderCSS = css`\n ${displayFlex};\n ${flexRow};\n ${itemsCenter};\n ${positionRelative};\n ${boxBorder};\n ${parseWidthHeight('100%', 56)};\n ${bgColor('fill/headerbar')};\n ${pd([4])};\n border-radius: 4px 4px 0px 0px;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25);\n ${order(1)};\n ${z(1)};\n`;\nPopoverHeader.defaultProps = {\n title: '',\n className: '',\n style: {}\n};\nPopoverHeader.propTypes = {\n /** The content of the component. */\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n /** Class for component. */\n className: PropTypes.string,\n /** Style inline of component. */\n style: PropTypes.object,\n /** The content of the component if not have prop `children`. */\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node])\n};\nexport { PopoverHeader };\nexport default OptionWrapper(PopoverHeader);","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport OptionWrapper from \"../others/option-wrapper\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useImperativeHandle, useMemo, useRef } from 'react';\nimport { bgColor, border, borderRadius, displayFlex, flexCol, order, overflowAuto, parseWidth, pd, positionRelative } from \"../../styles/general\";\nimport { classNames } from \"../../utils\";\nconst PopoverBody = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n children,\n className,\n id,\n style\n}, reference) => {\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n return useMemo(() => jsx(\"div\", {\n css: PopoverBodyCSS,\n ref: ref,\n id: id,\n style: style,\n className: classNames('DGN-UI-Popover-Body', className)\n }, children), [children, className, id, style]);\n}));\nconst PopoverBodyCSS = css`\n ${displayFlex};\n ${flexCol};\n ${positionRelative};\n ${overflowAuto};\n ${pd([4])};\n ${order(2)};\n &::-webkit-scrollbar {\n ${parseWidth(24)};\n }\n &::-webkit-scrollbar-thumb {\n ${borderRadius(10)};\n mix-blend-mode: normal;\n ${bgColor('fill/scrollbar_rest')};\n background-clip: content-box;\n ${border(8, 'transparent')};\n :hover {\n ${bgColor('fill/scrollbar_hover')};\n }\n }\n`;\nPopoverBody.defaultProps = {\n className: '',\n style: {}\n};\nPopoverBody.propTypes = {\n /** The content of the component. */\n children: PropTypes.node,\n /** Class for component. */\n className: PropTypes.string,\n /** Style inline of component. */\n style: PropTypes.object\n};\nexport { PopoverBody };\nexport default OptionWrapper(PopoverBody);","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport OptionWrapper from \"../others/option-wrapper\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useImperativeHandle, useMemo, useRef } from 'react';\nimport { bgColor, boxBorder, displayFlex, flexRow, itemsCenter, justifyEnd, order, parseMinHeight, parseWidth, pd, positionRelative } from \"../../styles/general\";\nimport { classNames } from \"../../utils\";\nconst PopoverFooter = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n boxShadow,\n children,\n className,\n id,\n style\n}, reference) => {\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n const _PopoverFooterCSS = PopoverFooterCSS(boxShadow);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n return useMemo(() => jsx(\"div\", {\n css: _PopoverFooterCSS,\n ref: ref,\n id: id,\n style: style,\n className: classNames('DGN-UI-Popover-Footer', className)\n }, children), [boxShadow, children, className, id, style]);\n}));\nconst PopoverFooterCSS = boxShadow => css`\n ${displayFlex};\n ${flexRow};\n ${positionRelative};\n ${itemsCenter};\n ${justifyEnd};\n ${boxBorder};\n ${parseWidth('100%')};\n ${parseMinHeight(56)};\n ${pd([4])};\n ${bgColor('system/white')};\n border-radius: 0px 0px 4px 4px;\n box-shadow: ${boxShadow ? '0px -2px 2px rgba(0, 0, 0, 0.1)' : 'none'};\n ${order(3)};\n`;\nPopoverFooter.defaultProps = {\n className: '',\n style: {},\n boxShadow: true\n};\nPopoverFooter.propTypes = {\n /** The box-shadow of component. */\n boxShadow: PropTypes.bool,\n /** The content of the component. */\n children: PropTypes.node,\n /** Class for component. */\n className: PropTypes.string,\n /** Style inline of component. */\n style: PropTypes.object\n};\nexport { PopoverFooter };\nexport default OptionWrapper(PopoverFooter);","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\nimport { ButtonIcon } from '..';\nimport { randomString } from \"../../utils\";\nimport SliderItem from \"./slider-item\";\nimport { useColor as colors } from \"../../theme\";\nimport { itemsCenter, bgTransparent, boxBorder, cursorPointer, displayNone, flexCol, flexRow, justifyCenter, overflowHidden, positionAbsolute, positionRelative, userSelectNone } from \"../../styles/general\";\nconst {\n system: {\n active,\n rest,\n white\n },\n fill: {\n pressed: fillPressed\n }\n} = colors;\nconst styles = {\n iconLeft: {\n left: 0,\n position: 'absolute',\n top: '50%',\n transform: 'translate(0, -50%)'\n },\n iconRight: {\n right: 0,\n position: 'absolute',\n top: '50%',\n transform: 'translate(0, -50%)'\n }\n};\nconst SliderContainer = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n animation,\n active,\n autoChangeTime,\n children,\n className,\n data,\n onShowNavigation,\n style\n}, reference) => {\n let autoChange;\n let currentItemIndex = 0;\n const Id = randomString(7, {\n allowSymbol: false,\n allowNumber: false\n });\n const IDs = {\n container: 'DGN-UI-Slider-container-' + Id,\n icon: 'DGN-UI-Slider-icon',\n iconLeft: 'DGN-UI-Slider-icon-left',\n iconRight: 'DGN-UI-Slider-icon-right',\n navigation: 'DGN-UI-Slider-navigation-' + Id,\n navigationList: 'DGN-UI-Slider-navigation-list-' + Id,\n navigationItem: 'DGN-UI-Slider-navigation-item',\n slideContainer: 'DGN-UI-Slider-slide-container'\n };\n const ref = useRef(null);\n const slideContainerRef = useRef(null);\n const navigationRef = useRef(null);\n const navigationListRef = useRef(null);\n const iconLeftRef = useRef(null);\n const iconRightRef = useRef(null);\n const _containerCSS = containerCSS(IDs);\n const _navigationListCSS = navigationListCSS(IDs);\n const removeClass = (className, selector) => {\n const array = document.querySelectorAll(`.${selector}`) || document.querySelectorAll(selector);\n array.forEach(a => {\n a.classList.remove(className);\n });\n };\n const onChangeActiveItem = (childNodeList, e, i) => {\n removeClass('item-focused', IDs.navigationItem);\n e.classList.add('item-focused');\n childNodeList.forEach(node => {\n node.style.display = 'none';\n });\n childNodeList[i].style.display = 'block';\n currentItemIndex = i;\n };\n const onNextItem = childNodeList => {\n if (childNodeList.length > 1 && autoChangeTime && autoChangeTime > 0) {\n clearInterval(autoChange);\n autoChange = setInterval(() => onNextItem(childNodeList), autoChangeTime * 1000);\n }\n childNodeList[currentItemIndex].style.display = 'none';\n if (currentItemIndex === childNodeList.length - 1) {\n currentItemIndex = 0;\n } else {\n currentItemIndex += 1;\n }\n childNodeList[currentItemIndex].style.display = 'block';\n onChangeActiveItem(childNodeList, navigationListRef.current.childNodes[currentItemIndex], currentItemIndex);\n };\n const onPrevItem = childNodeList => {\n if (childNodeList.length > 1 && autoChangeTime && autoChangeTime > 0) {\n clearInterval(autoChange);\n autoChange = setInterval(() => onNextItem(childNodeList), autoChangeTime * 1000);\n }\n childNodeList[currentItemIndex].style.display = 'none';\n if (currentItemIndex === 0) {\n currentItemIndex = childNodeList.length - 1;\n } else {\n currentItemIndex -= 1;\n }\n childNodeList[currentItemIndex].style.display = 'block';\n onChangeActiveItem(childNodeList, navigationListRef.current.childNodes[currentItemIndex], currentItemIndex);\n };\n const findActiveItem = childNodeList => {\n for (let i = 0; i < childNodeList.length; i++) {\n if (childNodeList[i].classList.contains('active')) {\n childNodeList[i].style.display = 'block';\n currentItemIndex = i;\n return i;\n }\n }\n childNodeList[0].style.display = 'block';\n currentItemIndex = 0;\n return 0;\n };\n const renderNavigationItem = childNodeList => {\n const list = navigationListRef.current;\n const activeItem = findActiveItem(childNodeList);\n let items = '';\n for (let i = 0; i < childNodeList.length; i++) {\n items += ``;\n }\n list.innerHTML = items;\n navigationListRef.current.querySelectorAll(`.${IDs.navigationItem}`).forEach((item, i) => {\n item.addEventListener('click', e => {\n onChangeActiveItem(childNodeList, e.target, i);\n });\n });\n };\n useEffect(() => {\n if (!slideContainerRef.current || !navigationRef.current || !iconLeftRef.current || !iconRightRef.current) return;\n const childNodeList = slideContainerRef.current.childNodes,\n navigation = navigationRef.current,\n iconLeft = iconLeftRef.current,\n iconRight = iconRightRef.current;\n renderNavigationItem(childNodeList);\n if (childNodeList.length > 1) {\n navigation.style.display = onShowNavigation ? 'block' : 'none';\n iconLeft.style.display = 'block';\n iconRight.style.display = 'block';\n iconRight.addEventListener('click', () => onNextItem(childNodeList));\n iconLeft.addEventListener('click', () => onPrevItem(childNodeList));\n } else {\n navigation.style.display = 'none';\n iconLeft.style.display = 'none';\n iconRight.style.display = 'none';\n }\n return () => {\n childNodeList.forEach(node => {\n node.style.display = 'none';\n });\n if (childNodeList.length > 1) {\n iconRight.removeEventListener('click', () => onNextItem(childNodeList));\n iconLeft.removeEventListener('click', () => onPrevItem(childNodeList));\n }\n };\n });\n useEffect(() => {\n if (!slideContainerRef.current) return;\n const childNodeList = slideContainerRef.current.childNodes;\n if (childNodeList.length > 1 && autoChangeTime && autoChangeTime > 0) {\n autoChange = setInterval(() => onNextItem(childNodeList), autoChangeTime * 1000);\n }\n return () => {\n if (childNodeList.length > 1 && autoChangeTime && autoChangeTime > 0) {\n clearInterval(autoChange);\n }\n };\n }, [autoChangeTime, children, data]);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n const _instance = {}; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n const Slider = useMemo(() => jsx(\"div\", {\n className: IDs.slideContainer,\n ref: slideContainerRef\n }, children || data && data.map((i, index) => {\n return jsx(SliderItem, {\n animation: animation,\n key: index,\n fileName: i.name,\n active: index === active,\n id: index,\n url: i.url\n });\n })), [animation, autoChangeTime, children, data]);\n const IconLeft = useMemo(() => jsx(\"span\", {\n className: [IDs.icon, IDs.iconLeft].join(' ').trim().replace(/\\s+/g, ' '),\n ref: iconLeftRef\n }, jsx(ButtonIcon, {\n circular: true,\n viewType: 'filled',\n color: white,\n name: 'ArrowLeft',\n style: styles.iconLeft,\n viewBox: false\n })), [children, data]);\n const IconRight = useMemo(() => jsx(\"span\", {\n className: [IDs.icon, IDs.iconRight].join(' ').trim().replace(/\\s+/g, ' '),\n ref: iconRightRef\n }, jsx(ButtonIcon, {\n circular: true,\n viewType: 'filled',\n color: white,\n name: 'ArrowRight',\n style: styles.iconRight,\n viewBox: false\n })), [children, data]);\n const Navigation = useMemo(() => jsx(\"div\", {\n className: [IDs.navigation, onShowNavigation && 'navigation-hidden'].join(' ').trim().replace(/\\s+/g, ' '),\n css: navigationCSS,\n id: IDs.navigation,\n ref: navigationRef\n }, jsx(\"div\", {\n css: _navigationListCSS,\n className: IDs.navigationList,\n id: IDs.navigationList,\n ref: navigationListRef\n })), [animation, autoChangeTime, children, data, onShowNavigation]);\n return jsx(\"div\", {\n css: _containerCSS,\n className: [IDs.container, className].join(' ').trim().replace(/\\s+/g, ' '),\n id: IDs.container,\n style: style,\n ref: ref\n }, Slider, IconLeft, IconRight, Navigation);\n}));\nconst containerCSS = IDs => css`\n * {\n ${boxBorder};\n margin: 0;\n padding: 0;\n }\n ${flexCol};\n ${itemsCenter};\n ${justifyCenter};\n ${positionRelative};\n ${bgTransparent};\n height: 100%;\n resize: both;\n .${IDs.icon} {\n opacity: 0;\n &.${IDs.iconLeft} {\n ${displayNone};\n ${cursorPointer};\n ${userSelectNone};\n ${positionAbsolute};\n height: 100%;\n left: 0;\n margin-left: 16px;\n width: 15%;\n }\n &.${IDs.iconRight} {\n ${displayNone};\n ${cursorPointer};\n ${userSelectNone};\n ${positionAbsolute};\n height: 100%;\n right: 0;\n margin-right: 16px;\n width: 15%;\n }\n }\n .${IDs.slideContainer} {\n ${overflowHidden};\n ${positionRelative};\n ${bgTransparent};\n height: 95%;\n margin: 0 auto;\n width: 100%;\n }\n &:hover {\n .${IDs.icon} {\n opacity: 1;\n }\n }\n`;\nconst navigationCSS = css`\n ${displayNone};\n ${positionRelative};\n background-color: ${white};\n height: 5%;\n width: 100%;\n &.navigation-hidden {\n ${displayNone};\n }\n`;\nconst navigationListCSS = IDs => css`\n ${flexRow};\n ${positionAbsolute};\n left: 50%;\n top: 50%;\n transform: translate(-50%, 14px);\n .${IDs.navigationItem} {\n ${cursorPointer};\n ${positionRelative};\n background-color: ${rest};\n border-radius: 50%;\n height: 12px;\n margin: 0 6px;\n width: 12px;\n :hover:not(.item-focused) {\n background-color: ${fillPressed};\n }\n &.item-focused {\n background-color: ${active};\n }\n }\n`;\nSliderContainer.defaultProps = {\n animation: true,\n autoChangeTime: 0,\n children: null,\n data: [],\n onShowNavigation: true,\n className: '',\n style: {}\n};\nSliderContainer.propTypes = {\n /** Index of the active item. */\n active: PropTypes.number,\n /** Enable/disable the animation when change active item. */\n animation: PropTypes.bool,\n /** Time to slider auto change (s). */\n autoChangeTime: PropTypes.number,\n /** Element or node to display on slider without data. */\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.node]),\n /** Class for component. */\n className: PropTypes.string,\n /** Data to display on slider. */\n data: PropTypes.array,\n /** Show/hide the navigation bar. */\n onShowNavigation: PropTypes.bool,\n /** Style inline of component. */\n style: PropTypes.object\n};\nexport default SliderContainer;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { memo, useMemo, useRef, useState, useEffect, forwardRef, Fragment, useImperativeHandle } from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx, css } from '@emotion/core';\nimport { StarHalf, StarOutline } from \"../../icons\";\nimport { randomString } from \"../../utils\";\nimport { hexToRGBA } from \"../../styles/color-helper\";\nimport { useTheme, useColor as colors } from \"../../theme\";\nimport { itemsCenter, border, cursorPointer, flexRow, flexRowReverse, displayInlineFlex, outlineNone, overflowHidden, pointerEventsNone, positionAbsolute, positionRelative } from \"../../styles/general\";\nconst {\n colors: {\n system: {\n active,\n rest,\n white\n },\n semantic: {\n info\n },\n line: {\n normal\n }\n },\n typography: {\n paragraph3\n },\n spacing\n} = useTheme();\nconst Rating = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n id,\n disabled,\n readOnly,\n half,\n width,\n height,\n selector,\n quantity,\n defaultValue,\n value,\n color,\n className,\n style,\n onRating\n}, reference) => {\n if (height === undefined) height = width;\n const ref = useRef(null);\n const [unique] = useState(randomString(6, {\n allowSymbol: false,\n allowNumber: false\n }));\n const [valueState, setValueState] = useState(value || defaultValue);\n const _color = colors[color] || color;\n const _RatingItemHaftCSS = RatingItemHaftCSS(_color);\n const _RatingItemCSS = RatingItemCSS(_RatingItemHaftCSS.name, _color, half);\n const onSelectValue = e => {\n if (disabled || readOnly) return;\n const newValue = +e.target.value;\n e.value = newValue;\n setValueState(newValue);\n !!onRating && onRating(e, newValue);\n };\n const _onRating = (e, value, isHalf = false) => {\n if (disabled || readOnly || half && !isHalf) return;\n setValueState(value);\n !!onRating && onRating(e, value);\n };\n useEffect(() => {\n setValueState(value);\n }, [value]);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n const _instance = {}; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n return useMemo(() => {\n let ArrayRating = [];\n [...Array(quantity).keys()].reverse().forEach(item => ArrayRating = [...ArrayRating, item + 1]);\n return jsx(\"div\", {\n id: id,\n css: RatingRootCSS,\n ref: ref,\n style: style,\n className: ['DGN-UI-Rating', className, disabled ? 'disabled' : '', readOnly ? 'read-only' : ''].join(' ').trim().replace(/\\s+/g, ' ')\n }, selector && jsx(\"select\", {\n css: RatingSelectCSS,\n name: `DGN-UI-Rating-Select-${unique}`,\n id: `DGN-UI-Rating-Select-${unique}`,\n disabled: disabled,\n value: valueState,\n onChange: onSelectValue\n }, jsx(\"option\", {\n value: '',\n id: unique + '-0'\n }, 0), ArrayRating.map((i, idx) => half ? jsx(Fragment, {\n key: i\n }, jsx(\"option\", {\n value: idx + 0.5\n }, idx + 0.5), jsx(\"option\", {\n value: idx + 1\n }, idx + 1)) : jsx(\"option\", {\n key: i,\n value: idx + 1\n }, idx + 1))), ArrayRating.map(i => jsx(\"span\", {\n css: _RatingItemCSS,\n key: i,\n className: ['DGN-UI-Rating-Item', disabled && 'disabled', i <= valueState && 'chosen'].join(' ').trim().replace(/\\s+/g, ' '),\n onClick: e => _onRating(e, i)\n }, jsx(StarOutline, {\n width: width,\n height: height,\n color: disabled ? rest : color || 'currentColor'\n }), jsx(\"span\", {\n css: _RatingItemHaftCSS,\n className: ['DGN-UI-Rating-Item-Star right', disabled && 'disabled', half && 'half', i <= valueState ? 'chosen' : ''].join(' ').trim().replace(/\\s+/g, ' '),\n onClick: e => half && _onRating(e, i, true)\n }, jsx(StarHalf, {\n width: width,\n height: height,\n color: 'currentColor'\n })), jsx(\"span\", {\n css: _RatingItemHaftCSS,\n className: ['DGN-UI-Rating-Item-Star left', disabled && 'disabled', half && 'half', i - 0.5 <= valueState ? 'chosen' : ''].join(' ').trim().replace(/\\s+/g, ' '),\n onClick: e => half && _onRating(e, i - 0.5, true)\n }, jsx(StarHalf, {\n width: width,\n height: height,\n color: 'currentColor'\n })))));\n }, [half, color, quantity, readOnly, disabled, selector, width, height, onRating, valueState]);\n}));\nconst RatingRootCSS = css`\n ${displayInlineFlex};\n ${flexRowReverse};\n &.disabled,\n &.read-only {\n ${pointerEventsNone};\n }\n`;\nconst RatingSelectCSS = css`\n ${outlineNone};\n ${paragraph3};\n ${border(1, normal)}\n margin-left: ${spacing()}px;\n color: ${active};\n &:hover {\n border-color: ${active};\n background-color: ${hexToRGBA(active, 0.2)};\n }\n &:active,\n &:focus {\n border-color: ${info};\n }\n option {\n background-color: ${white};\n }\n`;\nconst RatingItemHaftCSS = color => css`\n ${flexRow};\n ${positionAbsolute};\n ${overflowHidden};\n width: 50%;\n svg {\n ${cursorPointer}\n color: transparent;\n transition: color 0.15s linear;\n transform: scale(2);\n transform-origin: left;\n }\n &.right {\n transform: rotateY(180deg);\n right: 0;\n }\n &.half {\n svg:hover,\n &.right:hover + span svg,\n &.chosen svg {\n color: ${color};\n }\n &.chosen {\n &.disabled svg {\n color: ${rest} !important;\n }\n }\n }\n`;\nconst RatingItemCSS = (RatingItemHaftCSSName, color, half) => css`\n ${displayInlineFlex};\n ${positionRelative};\n ${itemsCenter};\n svg {\n transition: color 0.15s linear;\n }\n &:hover ~ span > span.css-${RatingItemHaftCSSName}, ${half ? '' : `&:hover,`} &:hover ~ span.full,\n &.chosen ~ span > span.css-${RatingItemHaftCSSName}, ${half ? '' : `&.chosen,`} &.chosen ~ span.full {\n svg {\n color: ${color};\n }\n }\n &.disabled {\n &.chosen {\n svg {\n color: ${rest} !important;\n }\n }\n }\n`;\nRating.defaultProps = {\n disabled: false,\n readOnly: false,\n half: false,\n selector: false,\n width: 20,\n quantity: 5,\n defaultValue: 0,\n color: 'primary',\n className: ''\n};\nRating.propTypes = {\n /** If true, the component is disabled. */\n disabled: PropTypes.bool,\n /** Removes all hover effects and pointer events. */\n readOnly: PropTypes.bool,\n /** Allows rating with an odd number of stars. */\n half: PropTypes.bool,\n /** Display select box to select by number. */\n selector: PropTypes.bool,\n /** The default number of stars is selected. */\n defaultValue: PropTypes.number,\n /** The number of stars is selected. */\n value: PropTypes.number,\n /** The maximum number of stars allowed to rate. */\n quantity: PropTypes.number,\n /** Width of star icon. */\n width: PropTypes.number,\n /** Height of star icon. */\n height: PropTypes.number,\n /** Color of stars, ['primary', 'info', 'success', 'warning', 'danger', #hex, rgb(#, #, #)]. */\n color: PropTypes.string,\n /** Class for component. */\n className: PropTypes.string,\n /** Style inline of component. */\n style: PropTypes.object,\n /**\r\n * Callback fired when the value changes.\r\n * \r\n function(event: React.SyntheticEvent, value: number) => void\r\n *\r\n * event: The event source of the callback.\r\n * \r\n * value: The new value.\r\n */\n onRating: PropTypes.func\n};\nexport default Rating;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport { Icon, Typography } from \"./..\";\nimport OptionWrapper from \"../others/option-wrapper\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useImperativeHandle, useMemo, useRef } from 'react';\nimport { itemsCenter, bgTransparent, boxBorder, flexRow, parseMinHeight, parseWidth } from \"../../styles/general\";\nimport { useTheme, useColor as colors } from \"../../theme\";\nimport { classNames } from \"../../utils\";\nconst {\n colors: {\n system: {\n rest: systemRest\n },\n fill: {\n sidebar: fillSidebar\n }\n },\n spacing\n} = useTheme();\nconst colorMap = new Map([['default', systemRest]]);\nconst iconSizeMap = new Map([['small', '16px'], ['medium', '20px'], ['large', '24px']]);\nconst typographySizeMap = new Map([['small', 'p3'], ['medium', 'p2'], ['large', 'p1']]);\nconst filledPaddingSizeMap = new Map([['small', spacing([0.5, 2])], ['medium', spacing([0.5, 2])], ['large', spacing([0.5, 3])]]);\nconst Status = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n className,\n color: colorProp,\n icon,\n id,\n size,\n style,\n text,\n viewType\n}, reference) => {\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n const outlinedPaddingSize = filledPaddingSizeMap.get(size);\n const color = colorMap.get(colorProp) || colors[colorProp] || colorProp || systemRest;\n const iconSize = iconSizeMap.get(size);\n const typographySize = typographySizeMap.get(size);\n const _StatusRootCSS = StatusRootCSS(iconSize, color, size, outlinedPaddingSize);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n const StatusIconView = typeof icon === 'string' ? jsx(Icon, {\n name: icon,\n width: iconSize,\n height: iconSize,\n color: 'currentColor',\n viewBox: true\n }) : icon;\n const StatusTextView = jsx(Typography, {\n css: TextCSS,\n type: typographySize,\n color: 'inherit'\n }, text);\n return useMemo(() => {\n return jsx(\"div\", {\n css: _StatusRootCSS,\n ref: ref,\n id: id,\n style: style,\n className: classNames('DGN-UI-Status', viewType, size, className)\n }, StatusIconView, StatusTextView);\n }, [className, colorProp, icon, id, size, style, text, viewType]);\n}));\nconst StatusRootCSS = (iconSize, color, size, outlinedPaddingSize) => css`\n ${flexRow};\n ${itemsCenter};\n ${bgTransparent};\n ${boxBorder};\n ${parseWidth('fit-content')};\n ${parseMinHeight(iconSize)};\n gap: ${spacing([size === 'small' ? 0.5 : 1])};\n color: ${color};\n &.filled {\n color: ${fillSidebar};\n background-color: ${color};\n border-radius: 20px;\n &.${size} {\n padding: ${outlinedPaddingSize};\n }\n }\n`;\nconst TextCSS = css`\n white-space: nowrap;\n`;\nStatus.defaultProps = {\n className: '',\n icon: '',\n size: 'medium',\n style: {},\n text: '',\n viewType: 'ghost'\n};\nStatus.propTypes = {\n /** Class for component. */\n className: PropTypes.string,\n /** The color of the component. */\n color: PropTypes.string,\n /** [Icon](https://core.diginet.com.vn/ui/?path=/story/icon-basic--basic) or element placed before the content. */\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n /** The size of the component. */\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n /** Style inline of component. */\n style: PropTypes.object,\n /** The content of the component. */\n text: PropTypes.string,\n /** The variant to use. */\n viewType: PropTypes.oneOf(['filled', 'ghost'])\n};\nexport { Status };\nexport default OptionWrapper(Status);","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport PropTypes from 'prop-types';\nimport React, { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { displayFlex, flexCol, flexRow, parseWidth, positionRelative, typographyTypes } from \"../../styles/general\";\nimport { classNames } from \"../../utils\";\nimport TabContext from \"./context\";\nconst TabContainer = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n children,\n className,\n direction,\n level,\n style,\n tabIndex,\n width,\n ...props\n}, reference) => {\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n const {\n value\n } = props;\n const [tabIndexState, setTabIndexState] = useState(tabIndex || value);\n if (level === 'level1') level = 'h3';\n if (level === 'level2') level = 'p1';\n const _TabContainerCSS = TabContainerCSS(direction, width);\n useEffect(() => {\n if (typeof value === 'number') setTabIndexState(value);else setTabIndexState(tabIndex);\n }, [value, tabIndex]);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n return useMemo(() => {\n return jsx(\"div\", {\n css: _TabContainerCSS,\n ref: ref,\n className: classNames('DGN-UI-Tab-Container', className),\n style: style,\n ...props\n }, jsx(TabContext.Provider, {\n value: {\n tabIndexState,\n setTabIndexState,\n direction\n }\n }, React.Children.map(children, child => child && /*#__PURE__*/React.cloneElement(child, {\n level\n }))));\n }, [children, className, direction, level, props, style, tabIndex, width, tabIndexState, value]);\n}));\nconst TabContainerCSS = (direction, width) => css`\n ${displayFlex};\n ${direction === 'vertical' ? flexRow : flexCol};\n ${positionRelative};\n ${parseWidth(width)};\n`;\nTabContainer.defaultProps = {\n className: '',\n direction: 'horizontal',\n level: 'level1',\n style: {},\n tabIndex: 0,\n width: '100%'\n};\nTabContainer.propTypes = {\n /** The content of the component. */\n children: PropTypes.node,\n /** Class for component */\n className: PropTypes.string,\n /** Direction change the position of Tabs. */\n direction: PropTypes.oneOf(['vertical', 'horizontal']),\n /** Direction change the size typography of Tab (typesTypography is types of Typography - exp: h1, h2, h3, p1 ...). */\n level: PropTypes.oneOfType([PropTypes.oneOf(['level1', 'level2', ...typographyTypes])]),\n /** Style inline of component. */\n style: PropTypes.object,\n /** The value of the currently selected Tab. */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /** Width of component. */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /** Any props else. */\n props: PropTypes.any\n};\nexport default TabContainer;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport { ButtonIcon } from \"./..\";\nimport PropTypes from 'prop-types';\nimport React, { forwardRef, memo, useContext, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { boxBorder, displayFlex, displayNone, flexCol, flexRow, justifyCenter, mg, overflowHidden, parseWidth, parseWidthHeight, pd, positionRelative, selfCenter, whiteSpaceNoWrap } from \"../../styles/general\";\nimport { classNames } from \"../../utils\";\nimport TabContext from \"./context\";\nconst TabHeader = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n centered,\n children,\n className,\n level,\n scrollButtons,\n style,\n width,\n ...props\n}, reference) => {\n var _ref$current, _ref$current2;\n const {\n direction\n } = useContext(TabContext);\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n const [scrollLeft, setScrollLeft] = useState(0);\n const isVertical = direction === 'vertical';\n let showScrollLeftButton = !isVertical && scrollLeft > 0;\n let showScrollRightButton = !isVertical && (ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.offsetWidth) + scrollLeft < (ref === null || ref === void 0 ? void 0 : (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.scrollWidth);\n const _ContainerCSS = ContainerCSS(centered, isVertical, width);\n const _TabHeaderCSS = TabHeaderCSS(width);\n const ScrollLeftButtonCSS = ScrollButtonCSS(true, showScrollLeftButton, showScrollRightButton);\n const ScrollRightButtonCSS = ScrollButtonCSS(false, showScrollLeftButton, showScrollRightButton);\n const _onClickScrollButton = scrollPrevious => {\n let scrollValue = scrollPrevious ? ref.current.scrollLeft - (ref.current.offsetWidth + 30) : ref.current.scrollLeft + (ref.current.offsetWidth + 30);\n ref.current.scrollLeft = scrollValue;\n setScrollLeft(scrollValue);\n };\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n return useMemo(() => {\n return jsx(\"div\", {\n css: _ContainerCSS,\n className: classNames('DGN-UI-Tab-Header-Container', className),\n style: style,\n ...props\n }, scrollButtons && !isVertical ? jsx(ButtonIcon, {\n css: ScrollLeftButtonCSS,\n name: isVertical ? 'ArrowUp' : 'ArrowLeft',\n viewType: 'text',\n size: 'tiny',\n viewBox: true,\n disabled: !showScrollLeftButton,\n onClick: () => _onClickScrollButton(true)\n }) : null, jsx(\"div\", {\n css: [_TabHeaderCSS, !isVertical && TabHeaderHorizontalCSS],\n className: 'DGN-UI-Tab-Header',\n ref: ref,\n onScroll: e => {\n var _e$target;\n return scrollButtons && setScrollLeft((e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.scrollLeft) || 0);\n }\n }, React.Children.map(children, child => child && /*#__PURE__*/React.cloneElement(child, {\n level\n }))), scrollButtons && !isVertical ? jsx(ButtonIcon, {\n css: ScrollRightButtonCSS,\n name: isVertical ? 'ArrowDown' : 'ArrowRight',\n viewType: 'text',\n size: 'tiny',\n viewBox: true,\n disabled: !showScrollRightButton,\n onClick: () => _onClickScrollButton(false)\n }) : null);\n }, [centered, children, className, level, props, scrollButtons, style, width, direction, isVertical, scrollLeft]);\n}));\nconst ContainerCSS = (centered, isVertical, width) => css`\n ${displayFlex};\n ${overflowHidden};\n ${positionRelative};\n ${boxBorder};\n ${parseWidthHeight(width, 'auto')};\n ${centered && justifyCenter};\n ${isVertical ? flexCol : flexRow};\n ${pd(0)};\n`;\nconst TabHeaderCSS = width => css`\n ${displayFlex};\n ${flexCol};\n ${parseWidth(width)};\n`;\nconst TabHeaderHorizontalCSS = css`\n ${displayFlex};\n ${flexRow};\n ${positionRelative};\n ${whiteSpaceNoWrap};\n ${mg(0)};\n overflow-x: auto;\n scroll-behavior: smooth;\n scroll-snap-type: x mandatory;\n scroll-padding: 50%;\n transition: 0.3s ease-in-out 0.3s;\n &::-webkit-scrollbar {\n ${displayNone};\n }\n`;\nconst ScrollButtonCSS = (scrollPrevious, showScrollLeftButton, showScrollRightButton) => css`\n ${parseWidthHeight(24, 24)};\n ${selfCenter};\n ${mg(scrollPrevious ? [0, 2, 0, 0] : [0, 0, 0, 2])}\n overflow: initial;\n opacity: ${scrollPrevious && showScrollLeftButton || !scrollPrevious && showScrollRightButton ? '1' : '0'};\n`;\nTabHeader.defaultProps = {\n centered: false,\n className: '',\n scrollButtons: false,\n style: {},\n width: '100%'\n};\nTabHeader.propTypes = {\n /** If true, the tabs are centered. */\n centered: PropTypes.bool,\n /** Element to display in Tab header. */\n children: PropTypes.array,\n /** Class for component. */\n className: PropTypes.string,\n /** If true, show scroll buttons. */\n scrollButtons: PropTypes.bool,\n /** Style inline of component. */\n style: PropTypes.object,\n /** Width of component. */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /** Any props else. */\n props: PropTypes.any\n};\nexport default TabHeader;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { boxBorder, displayFlex, displayNone, flexCol, parseWidthHeight, pd, positionRelative, textColor } from \"../../styles/general\";\nimport { classNames } from \"../../utils\";\nimport TabContext from \"./context\";\nconst TabPanel = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n children,\n className,\n index,\n lazyLoading,\n style,\n ...props\n}, reference) => {\n const {\n tabIndexState,\n direction\n } = useContext(TabContext);\n if (!reference) reference = useRef(null);\n const [isRendered, setIsRendered] = useState(false);\n const ref = useRef(null);\n const isVertical = direction === 'vertical';\n const isSelected = index === tabIndexState;\n const _TabPanelCSS = TabPanelCSS(isVertical, isSelected);\n useEffect(() => {\n if (isRendered) return;else if (index === tabIndexState) setIsRendered(true);\n }, [tabIndexState]);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n return useMemo(() => {\n return jsx(\"div\", {\n css: _TabPanelCSS,\n ref: ref,\n className: classNames('DGN-UI-Tab-Panel', className),\n style: style,\n ...props\n }, isSelected || !lazyLoading || isRendered ? children : null);\n }, [children, className, index, lazyLoading, props, style, isSelected, isRendered, tabIndexState]);\n}));\nconst TabPanelCSS = (isVertical, isSelected) => css`\n ${displayFlex};\n ${flexCol};\n ${boxBorder};\n ${positionRelative};\n ${isSelected ? flexCol : displayNone};\n ${parseWidthHeight('100%', isVertical ? 300 : '100%')};\n ${textColor('text/main')};\n ${pd([0, isVertical ? 3 : 2.5])};\n`;\nTabPanel.defaultProps = {\n className: '',\n lazyLoading: false,\n style: {}\n};\nTabPanel.propTypes = {\n /** The content of the component. */\n children: PropTypes.node,\n /** Class for component. */\n className: PropTypes.string,\n /** Index received in position of TabHeaderButton. */\n index: PropTypes.number,\n /** Lazy loading mode. */\n lazyLoading: PropTypes.bool,\n /** Style inline of component. */\n style: PropTypes.object,\n /** Any props else. */\n props: PropTypes.any\n};\nexport default TabPanel;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport { Icon, Typography } from \"./..\";\nimport Ripple from \"../button/ripple-effect\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useContext, useImperativeHandle, useMemo, useRef } from 'react';\nimport { bgColor, borderRadius, bottom, boxBorder, breakWord, cursorDefault, cursorPointer, displayFlex, flexRow, itemsCenter, justifyCenter, justifyStart, left, mgl, mgr, outlineNone, overflowHidden, parseHeight, parseMaxWidth, parseMaxWidthHeight, parseMinWidth, parseWidth, pd, pointerEventsAuto, pointerEventsNone, positionAbsolute, positionRelative, shadowNone, textCenter, textColor, userSelectNone, whiteSpaceNoWrap } from \"../../styles/general\";\nimport { classNames } from \"../../utils\";\nimport TabContext from \"./context\";\nconst TabItem = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n children,\n className,\n color,\n disabled,\n endIcon,\n index,\n label,\n labelProps,\n level,\n onClick,\n startIcon,\n style,\n ...props\n}, reference) => {\n const {\n tabIndexState,\n setTabIndexState,\n direction\n } = useContext(TabContext);\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n const rippleRef = useRef(null);\n const isVertical = direction === 'vertical';\n const _TabItemCSS = TabItemCSS(color, isVertical);\n const _IndicatorCSS = IndicatorCSS(isVertical);\n const _onClick = e => {\n if (disabled) return;\n rippleRef.current.start(e);\n onClick ? onClick(e, index) : setTabIndexState(index);\n };\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n const renderIcon = (icon, isEndIcon) => {\n let node = icon;\n if (typeof node === 'string') {\n node = jsx(Icon, {\n color: 'currentColor',\n name: icon\n });\n }\n return jsx(\"span\", {\n css: [IconCSS, isEndIcon && EndIconCSS]\n }, node);\n };\n return useMemo(() => {\n return jsx(\"div\", {\n css: [_TabItemCSS, disabled && TabItemDisabledCSS, index === tabIndexState && !disabled && TabItemSelectedCSS],\n ref: ref,\n className: classNames('DGN-UI-Tab-Item', disabled && 'disabled', index === tabIndexState && !disabled && 'selected', className),\n style: style,\n onClick: _onClick,\n ...props\n }, startIcon && renderIcon(startIcon), jsx(Typography, {\n type: level,\n color: 'inherit',\n lineClamp: 1,\n hoverTooltip: true,\n ...labelProps\n }, label), children, endIcon && renderIcon(endIcon, true), jsx(Ripple, {\n ref: rippleRef,\n css: pointerEventsNone\n }), jsx(\"span\", {\n css: _IndicatorCSS,\n className: 'Indicator'\n }));\n }, [children, className, color, disabled, endIcon, index, label, labelProps, level, onClick, props, startIcon, style, isVertical, tabIndexState]);\n}));\nconst TabItemCSS = (color, isVertical) => css`\n ${displayFlex};\n ${flexRow};\n ${overflowHidden};\n ${itemsCenter};\n ${isVertical ? justifyStart : justifyCenter};\n ${boxBorder};\n ${cursorPointer};\n ${positionRelative};\n ${outlineNone};\n ${breakWord};\n ${whiteSpaceNoWrap};\n ${shadowNone};\n ${!isVertical && textCenter};\n ${textColor(color)};\n ${parseMinWidth(80)};\n ${parseMaxWidth(isVertical ? '100%' : 287)};\n ${pd(isVertical ? [3.5, 4] : [2, 4])}\n ${pointerEventsAuto};\n ${userSelectNone};\n flex: 0 0 auto;\n transition: all 0.2s ease-in-out, background-color 0.2s ease-in-out;\n :hover:not(.selected):not(.disabled),\n :focus {\n ${textColor('system/rest')};\n .Indicator {\n ${bgColor('system/rest')};\n transform: scale(1);\n }\n }\n`;\nconst TabItemDisabledCSS = css`\n ${pointerEventsNone};\n ${cursorDefault};\n ${bgColor('transparent')};\n ${textColor('system/disabled')};\n`;\nconst TabItemSelectedCSS = css`\n ${textColor('system/active')};\n .Indicator {\n ${bgColor('system/active')};\n transform: scale(1);\n }\n`;\nconst IndicatorCSS = isVertical => css`\n ${positionAbsolute};\n ${parseHeight(isVertical ? '100%' : 4)};\n ${parseWidth(isVertical ? 4 : '100%')}\n ${borderRadius(1)};\n ${bottom(0)};\n ${left(0)};\n transform: ${isVertical ? 'scaleY(0)' : 'scaleX(0)'};\n transition: transform 0.2s ease-in-out;\n`;\nconst IconCSS = css`\n ${displayFlex};\n ${flexRow};\n ${itemsCenter};\n ${justifyCenter};\n ${positionRelative};\n ${boxBorder};\n ${parseMaxWidthHeight(24)};\n ${mgr([1])};\n`;\nconst EndIconCSS = css`\n ${mgr('unset')};\n ${mgl([1])};\n`;\nTabItem.defaultProps = {\n className: '',\n color: 'system/rest',\n disabled: false,\n label: '',\n style: {}\n};\nTabItem.propTypes = {\n /** Element to display in Tabs (like label). */\n children: PropTypes.node,\n /** Class for component. */\n className: PropTypes.string,\n /** Color for Tabs. */\n color: PropTypes.string,\n /** If true, the component is disabled. */\n disabled: PropTypes.bool,\n /** Icon to the right of the button. */\n endIcon: PropTypes.node,\n /** Index received in position of TabHeaderButton. */\n index: PropTypes.number,\n /** Data string, if any. */\n label: PropTypes.string,\n /** [Props](https://core.diginet.com.vn/ui/?path=/docs/typography--title) applied to the `Typography` label. */\n labelProps: PropTypes.object,\n /** Callback fired when a \"click\" event is detected. */\n onClick: PropTypes.func,\n /** Icon to the left of the button. */\n startIcon: PropTypes.node,\n /** Style inline of component. */\n style: PropTypes.object,\n /** Any props else. */\n props: PropTypes.any\n};\nexport default TabItem;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { Fragment, memo, useState, useMemo, useRef, forwardRef } from 'react';\nimport { string, number, bool, oneOfType, array, object, func } from 'prop-types';\nimport { jsx, css } from '@emotion/core';\nimport theme from \"../../theme/settings\";\nimport Paper from \"../paper\";\nimport { ButtonIcon, Checkbox, Typography } from \"../\";\nimport { getGlobal } from \"../../global\";\nimport { capitalize } from \"../../utils\";\nconst Transfer = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n choicesList,\n chosenList,\n selectAll,\n iconExpr,\n displayExpr,\n width,\n height,\n paperProps,\n renderItem,\n ...props\n}, ref) => {\n if (!ref) {\n ref = useRef(null);\n }\n const leftPaperRef = useRef(null),\n rightPaperRef = useRef(null),\n selectAllLeftRef = useRef(null),\n selectAllRightRef = useRef(null),\n chosenTextLeftRef = useRef(null),\n chosenTextRightRef = useRef(null);\n const [disabledAllLeft, setDisabledAllLeft] = useState(!chosenList.length),\n [disabledAllRight, setDisabledAllRight] = useState(!choicesList.length),\n [disabledLeft, setDisabledLeft] = useState(true),\n [disabledRight, setDisabledRight] = useState(true),\n [selectAllLeft, setSelectAllLeft] = useState(!!choicesList.length),\n [selectAllRight, setSelectAllRight] = useState(!!chosenList.length),\n [determinateLeft, setDeterminateLeft] = useState(true),\n [determinateRight, setDeterminateRight] = useState(true);\n const TransferRoot = css`\n display: flex;\n position: relative;\n `;\n const TransferBox = css`\n display: block;\n position: relative;\n margin: 8px 0;\n &.select-all {\n max-height: calc(100% - 72px);\n overflow-y: auto;\n &::-webkit-scrollbar {\n width: 8px;\n background-color: #fff !important;\n border-radius: 4px;\n }\n &::-webkit-scrollbar-thumb {\n border-radius: 4px;\n mix-blend-mode: normal;\n background-color: ${theme.colors.dark12} !important;\n background-clip: content-box;\n }\n }\n `;\n const TransferItem = css`\n display: flex;\n position: relative;\n min-height: 40px;\n &:hover {\n background-color: ${theme.colors.fill.hover};\n }\n `;\n const TransferItemContent = css`\n display: flex;\n position: relative;\n margin: 0 16px;\n width: 100%;\n align-items: center;\n box-sizing: border-box;\n `;\n const TransferItemHeader = css`\n display: flex;\n position: sticky;\n top: 0;\n background-color: inherit;\n width: 100%;\n height: 56px;\n padding: 8px 16px;\n align-items: center;\n box-sizing: border-box;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25);\n z-index: 2;\n `;\n const HeaderCheckbox = css`\n display: inline-flex;\n position: relative;\n width: 40px;\n height: 40px;\n align-items: center;\n `;\n const HeaderTitle = css`\n display: block;\n position: relative;\n `;\n const ItemCheckbox = css`\n display: block;\n position: relative;\n margin-right: 19px;\n `;\n const ItemContent = css`\n display: flex;\n position: relative;\n align-items: center;\n `;\n const ItemImage = css`\n width: 24px;\n height: 24px;\n margin-right: 8px;\n object-fit: cover;\n `;\n const DashboardRoot = css`\n display: flex;\n position: relative;\n flex-direction: column;\n justify-content: center;\n margin-left: 5px;\n margin-right: 5px;\n button {\n margin-top: 5px;\n margin-bottom: 5px;\n }\n `;\n const updateSelectedItemQuantity = (side, newTotal) => {\n const sideRef = side === 'right' ? chosenTextRightRef : chosenTextLeftRef;\n const sidePaperRef = side === 'right' ? rightPaperRef : leftPaperRef;\n const text = sideRef.current.textContent;\n const [, total] = text.match(/\\d+/g);\n const number = Array.from(sidePaperRef.current.querySelectorAll('input')).reduce((prev, input) => prev + (input.checked ? 1 : 0), 0);\n sideRef.current.textContent = `${number}/${typeof newTotal === 'number' ? newTotal : total} ${getGlobal('selected')}`;\n };\n const checkValue = e => {\n let side = '';\n let parent = e.target;\n while (!side && parent) {\n side = parent.getAttribute('data-side');\n parent = parent.parentNode;\n }\n // e.target.parentNode.parentNode.parentNode.parentNode.parentNode.getAttribute('data-side');\n if (side === 'left') {\n if (e.value) {\n setDisabledRight(false);\n if (selectAll) {\n setDeterminateLeft(Array.from(leftPaperRef.current.querySelectorAll('input')).every(input => input.checked));\n selectAllLeftRef.current.checked = true;\n // Update selected item quantity\n updateSelectedItemQuantity(side);\n }\n } else {\n const isNotChecked = !Array.from(leftPaperRef.current.childNodes).some(node => node.querySelector('input').checked);\n setDisabledRight(isNotChecked);\n if (selectAll) {\n setDeterminateLeft(false);\n selectAllLeftRef.current.checked = !isNotChecked;\n // Update selected item quantity\n updateSelectedItemQuantity(side);\n }\n }\n } else {\n if (e.value) {\n setDisabledLeft(false);\n if (selectAll) {\n setDeterminateRight(Array.from(rightPaperRef.current.querySelectorAll('input')).every(input => input.checked));\n selectAllRightRef.current.checked = true;\n // Update selected item quantity\n updateSelectedItemQuantity(side);\n }\n } else {\n const isNotChecked = !Array.from(rightPaperRef.current.childNodes).some(node => node.querySelector('input').checked);\n setDisabledLeft(isNotChecked);\n if (selectAll) {\n setDeterminateRight(false);\n selectAllRightRef.current.checked = !isNotChecked;\n // Update selected item quantity\n updateSelectedItemQuantity(side);\n }\n }\n }\n };\n const selectAllItem = (e, side) => {\n if (side === 'right') {\n setDisabledLeft(false);\n rightPaperRef.current.querySelectorAll('input').forEach(input => {\n input.checked = e.value;\n });\n } else {\n setDisabledRight(false);\n leftPaperRef.current.querySelectorAll('input').forEach(input => {\n input.checked = e.value;\n });\n }\n updateSelectedItemQuantity(side);\n };\n const renderItemDefault = (item, index) => {\n return jsx(\"div\", {\n css: TransferItem,\n key: index\n }, jsx(\"div\", {\n css: TransferItemContent\n }, jsx(\"div\", {\n css: ItemCheckbox\n }, jsx(Checkbox, {\n onChange: e => checkValue(e)\n })), jsx(\"div\", {\n css: ItemContent\n }, !renderItem && iconExpr && item[iconExpr] && jsx(\"img\", {\n src: item[iconExpr],\n css: ItemImage\n }), jsx(Typography, null, renderItem ? renderItem(item, index) : renderContent(item)))));\n };\n const renderContent = item => {\n if (typeof item === 'object') {\n if (displayExpr && Array.isArray(displayExpr)) {\n displayExpr = displayExpr.join(' - ');\n }\n const keyArr = displayExpr && displayExpr.match(/\\{\\w+\\}/g);\n if (keyArr) {\n const pattern = keyArr.join('|').replace(/([\\\\{\\\\}])/g, '\\\\$1');\n const separatorArr = displayExpr.split(new RegExp(pattern));\n let str = '';\n let i = 0;\n for (i; i < keyArr.length; i++) {\n str += separatorArr[i] + (item[keyArr[i].replace(/\\W/g, '')] || keyArr[i]);\n }\n return str + separatorArr[i];\n }\n return item[displayExpr];\n }\n return item;\n };\n const transferAll = direction => {\n if (direction === 'right') {\n const childNodes = Array.from(leftPaperRef.current.childNodes);\n const length = childNodes.length;\n for (let i = 0; i < length; i++) {\n childNodes[i].querySelector('input').checked = false;\n rightPaperRef.current.appendChild(childNodes[i]);\n }\n leftPaperRef.current.innerHTML = null;\n setDisabledAllLeft(false);\n setDisabledAllRight(true);\n setDisabledRight(true);\n } else {\n const childNodes = Array.from(rightPaperRef.current.childNodes);\n const length = childNodes.length;\n for (let i = 0; i < length; i++) {\n childNodes[i].querySelector('input').checked = false;\n leftPaperRef.current.appendChild(childNodes[i]);\n }\n rightPaperRef.current.innerHTML = null;\n setDisabledAllLeft(true);\n setDisabledAllRight(false);\n setDisabledLeft(true);\n }\n };\n const transferItem = direction => {\n if (direction === 'right') {\n const childNodes = Array.from(leftPaperRef.current.childNodes);\n const length = childNodes.length;\n for (let i = 0; i < length; i++) {\n const node = childNodes[i];\n if (node.querySelector('input').checked) {\n node.querySelector('input').checked = false;\n rightPaperRef.current.appendChild(node);\n }\n }\n setDisabledRight(true);\n const remainLength = Array.from(leftPaperRef.current.childNodes).length;\n if (selectAll) {\n selectAllLeftRef.current.checked = false;\n setSelectAllLeft(!!remainLength);\n setSelectAllRight(true);\n updateSelectedItemQuantity('right', Array.from(rightPaperRef.current.childNodes).length);\n updateSelectedItemQuantity('left', remainLength);\n } else {\n setDisabledAllRight(!remainLength); // is empty\n setDisabledAllLeft(false);\n }\n } else {\n const childNodes = Array.from(rightPaperRef.current.childNodes);\n const length = childNodes.length;\n for (let i = 0; i < length; i++) {\n const node = childNodes[i];\n if (node.querySelector('input').checked) {\n node.querySelector('input').checked = false;\n leftPaperRef.current.appendChild(node);\n }\n }\n setDisabledLeft(true);\n const remainLength = Array.from(rightPaperRef.current.childNodes).length;\n if (selectAll) {\n selectAllRightRef.current.checked = false;\n setSelectAllRight(!!remainLength);\n setSelectAllLeft(true);\n updateSelectedItemQuantity('left', Array.from(leftPaperRef.current.childNodes).length);\n updateSelectedItemQuantity('right', remainLength);\n } else {\n setDisabledAllLeft(!remainLength); // is empty\n setDisabledAllRight(false);\n }\n }\n };\n const Dashboard = useMemo(() => jsx(\"div\", {\n css: DashboardRoot\n }, !selectAll && jsx(ButtonIcon, {\n size: 'tiny',\n style: {\n width: '40px'\n },\n name: 'ArrowDoubleLeft',\n onClick: () => transferAll('left'),\n disabled: disabledAllLeft\n }), jsx(ButtonIcon, {\n size: 'tiny',\n style: {\n width: '40px'\n },\n name: 'ArrowLeft',\n onClick: () => transferItem('left'),\n disabled: disabledLeft\n }), jsx(ButtonIcon, {\n size: 'tiny',\n style: {\n width: '40px'\n },\n name: 'ArrowRight',\n onClick: () => transferItem('right'),\n disabled: disabledRight\n }), !selectAll && jsx(ButtonIcon, {\n size: 'tiny',\n style: {\n width: '40px'\n },\n name: 'ArrowDoubleRight',\n onClick: () => transferAll('right'),\n disabled: disabledAllRight\n })), [choicesList, chosenList, disabledAllLeft, disabledLeft, disabledRight, disabledAllRight]);\n const LeftSelectAll = useMemo(() => jsx(\"div\", {\n css: TransferItemHeader\n }, jsx(\"div\", {\n css: HeaderCheckbox\n }, jsx(Checkbox, {\n onChange: e => selectAllItem(e, 'left'),\n determinate: determinateLeft,\n inputRef: selectAllLeftRef,\n disabled: !selectAllLeft\n })), jsx(\"div\", {\n css: HeaderTitle\n }, jsx(Typography, null, capitalize(getGlobal('choices'))), jsx(Typography, {\n type: 'p2',\n color: theme.colors.text.sub,\n ref: chosenTextLeftRef\n }, \"0/\", choicesList.length, \" \", getGlobal('selected')))), [determinateLeft, selectAllLeft]);\n const RightSelectAll = useMemo(() => jsx(\"div\", {\n css: TransferItemHeader\n }, jsx(\"div\", {\n css: HeaderCheckbox\n }, jsx(Checkbox, {\n onChange: e => selectAllItem(e, 'right'),\n determinate: determinateRight,\n inputRef: selectAllRightRef,\n disabled: !selectAllRight\n })), jsx(\"div\", {\n css: HeaderTitle\n }, jsx(Typography, null, capitalize(getGlobal('chosen'))), jsx(Typography, {\n type: 'p2',\n color: theme.colors.text.sub,\n ref: chosenTextRightRef\n }, \"0/\", chosenList.length, \" \", getGlobal('selected')))), [determinateRight, selectAllRight]);\n const LeftTransferList = useMemo(() => jsx(\"div\", {\n css: TransferBox,\n className: selectAll ? 'select-all' : '',\n ref: leftPaperRef,\n \"data-side\": 'left'\n }, choicesList.map((item, index) => renderItemDefault(item, index))), [choicesList]);\n const RightTransferList = useMemo(() => jsx(\"div\", {\n css: TransferBox,\n className: selectAll ? 'select-all' : '',\n ref: rightPaperRef,\n \"data-side\": 'right'\n }, chosenList.map((item, index) => renderItemDefault(item, index))), [chosenList]);\n const TransferView = useMemo(() => jsx(\"div\", {\n css: TransferRoot,\n ...props\n }, jsx(Paper, {\n width: width,\n ...paperProps,\n scrollAble: !selectAll\n }, jsx(Fragment, null, selectAll && LeftSelectAll, LeftTransferList)), Dashboard, jsx(Paper, {\n height: height,\n ...paperProps,\n scrollAble: !selectAll\n }, jsx(Fragment, null, selectAll && RightSelectAll, RightTransferList))), [choicesList, chosenList, disabledAllLeft, disabledLeft, disabledRight, disabledAllRight, determinateLeft, determinateRight, selectAllLeft, selectAllRight]);\n return TransferView;\n}));\nTransfer.defaultProps = {\n width: 240,\n height: 240,\n selectAll: false,\n choicesList: [],\n chosenList: [],\n paperProps: {}\n};\nTransfer.propTypes = {\n /** the width of Transfer */\n width: oneOfType([string, number]),\n /** the height of Transfer */\n height: oneOfType([string, number]),\n /** field name used for icon display */\n iconExpr: string,\n /** field name used for text display
\r\n * Example: 'name', '{id} - {name}', '{age} age(s)'
\r\n * Note: don't use 'id - name', return undefined\r\n */\n displayExpr: oneOfType([string, array]),\n /** display header to select all choices if true */\n selectAll: bool,\n /** Choices list */\n choicesList: array,\n /** Chosen list */\n chosenList: array,\n /** props for Paper component */\n paperProps: object,\n /** the function to render content in transfer item */\n renderItem: func\n};\nexport default Transfer;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport { Accordion, AccordionDetails, AccordionSummary, ButtonIcon, Checkbox, Divider, InputBase, Typography } from \"./..\";\nimport { getGlobal } from \"../../global\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, Fragment, memo, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { render } from 'react-dom';\nimport { bgColor, borderRadius, boxBorder, cursorNotAllowed, cursorPointer, displayBlock, displayFlex, displayInlineBlock, flexRow, itemsCenter, mgb, mgl, mgr, parseHeight, parseMinHeight, parseWidth, pd, pdl, positionRelative, textColor, textLeft } from \"../../styles/general\";\nimport { classNames, mapParent, randomString, removeUnicode } from \"../../utils\";\nconst separatorPattern = /\\{\\w+\\}/g;\nconst currentValue = {},\n itemsRenderAsync = {};\nconst TreeView = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n allowSearch,\n autoExpandToResult,\n className,\n collapseIcon,\n dataSource,\n disabled,\n disabledBoldResult,\n disabledRelevantValue,\n displayExpr,\n expand,\n expandIcon,\n id,\n multiple,\n multipleValueMode,\n onChange,\n parentID,\n renderAsyncFromLevel,\n renderAsyncWithLength,\n renderItem,\n searchDelayTime,\n searchMode,\n searchProps,\n selectAll,\n selectAllLabel,\n selectBox,\n showChildrenOfResult,\n showSelectedItems,\n value,\n valueExpr,\n ...props\n}, reference) => {\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n const selectAllRef = useRef(null);\n const inputValueRef = useRef(null);\n const clearIconRef = useRef(null);\n const timer = useRef(null);\n const timeout = useRef(null);\n const [unique] = useState(randomString(6, {\n allowNumber: false,\n allowSymbol: false\n }));\n const determinateCheckbox = (input, determinate) => {\n if (multipleValueMode === 'multiple' || disabledRelevantValue) {\n input.classList[determinate ? 'add' : 'remove']('determinate');\n input.classList[determinate ? 'remove' : 'add']('indeterminate');\n input.nextElementSibling.firstChild.classList[determinate ? 'add' : 'remove']('determinate');\n input.nextElementSibling.firstChild.classList[determinate ? 'remove' : 'add']('indeterminate');\n }\n };\n\n // const triggerCheckboxRecursion = (nodes, isChecked) => {\n // nodes.forEach(el => {\n // if (el.classList.contains('non-child')) {\n // el.querySelector('input').checked = isChecked;\n // } else {\n // el.firstChild.querySelector('input').checked = isChecked;\n // triggerCheckboxRecursion(Array.from(el.lastChild.firstChild.childNodes), isChecked);\n // }\n // });\n // };\n\n const checkedParentFollowValue = nodes => {\n if (nodes && nodes !== null && nodes !== void 0 && nodes.length) {\n nodes.forEach(node => {\n if (!node.classList.contains('non-child')) {\n const input = node.firstChild.querySelector('input');\n if (input.checked) {\n if (!input.classList.contains('determinate')) {\n determinateCheckbox(input, true);\n }\n Array.from(node.querySelectorAll('input')).forEach(el => {\n el.checked = true;\n if (!el.classList.contains('determinate')) {\n determinateCheckbox(el, true);\n }\n });\n } else {\n var _node$lastChild, _node$lastChild$first;\n const checkedLeastOfOne = Array.from(node.querySelectorAll('input')).some(el => el.checked);\n if (checkedLeastOfOne) {\n input.checked = checkedLeastOfOne;\n if (input.classList.contains('determinate')) {\n determinateCheckbox(input, false);\n }\n } else if (input.checked) {\n input.checked = false;\n }\n const childNodes = Array.from((node === null || node === void 0 ? void 0 : (_node$lastChild = node.lastChild) === null || _node$lastChild === void 0 ? void 0 : (_node$lastChild$first = _node$lastChild.firstChild) === null || _node$lastChild$first === void 0 ? void 0 : _node$lastChild$first.childNodes) || '');\n checkedParentFollowValue(childNodes);\n }\n }\n });\n }\n };\n const checkParentCheckbox = node => {\n while (ref.current.contains(node)) {\n node = node.parentNode;\n if (multipleValueMode === 'multiple' && node.classList.contains('DGN-UI-Accordion-Details-Content')) {\n const childNodes = Array.from(node.childNodes);\n if (childNodes) {\n var _node$parentNode;\n // Số lượng input đã check, dùng để kiểm tra là đã check tất cả, check chưa đầy đủ hoặc chưa check phần tử nào\n let determinateQuantity = 0;\n const checkedQuantity = childNodes.reduce((quantity, el) => {\n const input = el.querySelector('input');\n determinateQuantity += +input.classList.contains('determinate');\n return quantity + +input.checked;\n }, 0);\n // Accordion root\n node = (_node$parentNode = node.parentNode) === null || _node$parentNode === void 0 ? void 0 : _node$parentNode.parentNode;\n if (node && node.firstChild) {\n const input = node.firstChild.querySelector('input');\n if (input) {\n if (!checkedQuantity) {\n input.checked = false;\n currentValue[unique][input.value] = false;\n } else {\n input.checked = true;\n if (checkedQuantity === (childNodes === null || childNodes === void 0 ? void 0 : childNodes.length) && checkedQuantity === determinateQuantity) {\n if (!input.classList.contains('determinate')) {\n determinateCheckbox(input, true);\n }\n currentValue[unique][input.value] = true;\n } else {\n if (input.classList.contains('determinate')) {\n determinateCheckbox(input, false);\n }\n // currentValue[unique][input.value] = false;\n }\n }\n }\n }\n }\n } else if (multipleValueMode === 'inheritance' && node.classList.contains('DGN-UI-Accordion')) {\n const input = node.firstChild.firstChild.querySelector('input');\n input.checked = true;\n currentValue[unique][input.value] = true;\n }\n }\n };\n const checkChildrenCheckbox = (node, isChecked) => {\n // node = node.nextElementSibling?.firstChild;\n // if (node) {\n // const childNodes = Array.from(node.childNodes);\n // if (childNodes) {\n // triggerCheckboxRecursion(childNodes, isChecked);\n // }\n // }\n if (node) {\n node.querySelectorAll('input').forEach(el => {\n if (!el.classList.contains('determinate')) {\n determinateCheckbox(el, true);\n }\n el.checked = isChecked;\n });\n }\n };\n const checkedSelectAllCheckbox = () => {\n const allInput = Array.from(ref.current.querySelectorAll('input'));\n if (allInput.some(i => i.checked)) {\n const isCheckedAll = allInput.every(i => i.checked);\n if (isCheckedAll) {\n if (!selectAllRef.current.classList.contains('determinate')) {\n determinateCheckbox(selectAllRef.current, true);\n }\n } else {\n if (selectAllRef.current.classList.contains('determinate')) {\n determinateCheckbox(selectAllRef.current, false);\n }\n }\n selectAllRef.current.checked = true;\n } else if (selectAllRef.current.checked) {\n selectAllRef.current.checked = false;\n }\n };\n const handleDisabledChildren = (node, isChecked) => {\n if (node) {\n node.querySelectorAll('.TreeView-Item.non-child, .DGN-UI-Accordion').forEach(el => {\n el.classList[isChecked ? 'add' : 'remove']('disabled');\n if (el.classList.contains('DGN-UI-Accordion')) {\n el.firstChild.firstChild.lastChild.firstChild.firstChild.firstChild.classList[isChecked ? 'add' : 'remove']('disabled');\n el.firstChild.firstChild.lastChild.firstChild.firstChild.firstChild.disabled = isChecked;\n Array.from(el.childNodes).forEach(e => {\n e.classList[isChecked ? 'add' : 'remove']('treeview-disabled');\n });\n } else {\n el.firstChild.firstChild.firstChild.firstChild.disabled = isChecked;\n el.parentNode.classList[isChecked ? 'add' : 'remove']('disabled');\n el.firstChild.firstChild.firstChild.classList[isChecked ? 'add' : 'remove']('disabled');\n }\n });\n }\n };\n const handleDisabledParent = (node, isChecked) => {\n while (ref.current.contains(node)) {\n node = node.parentNode;\n if (node.classList.contains('DGN-UI-Accordion') && node.firstChild.classList.contains('DGN-UI-Accordion-Summary')) {\n var _node$querySelectorAl;\n const summaryEl = node.firstChild;\n if (!summaryEl.classList.contains('expanding')) {\n summaryEl.lastChild.firstChild.click();\n }\n const checkbox = node.firstChild.firstChild.lastChild.firstChild.firstChild.firstChild;\n // Trường hợp phải set về false để xét các input đã check không bao gồm node này\n checkbox.firstChild.checked = isChecked;\n const mustDisabled = !!((_node$querySelectorAl = node.querySelectorAll('input:checked')) !== null && _node$querySelectorAl !== void 0 && _node$querySelectorAl.length);\n // Nếu có ít nhất một input con được check thì phải checked cho input này\n checkbox.firstChild.checked = mustDisabled;\n determinateCheckbox(checkbox.firstChild, !mustDisabled);\n node.classList[mustDisabled || isChecked ? 'add' : 'remove']('disabled');\n checkbox.classList[mustDisabled || isChecked ? 'add' : 'remove']('disabled');\n Array.from(node.childNodes).forEach(e => {\n setTimeout(() => {\n e.classList[mustDisabled || isChecked ? 'add' : 'remove']('treeview-disabled');\n });\n });\n }\n }\n };\n const setValue = (data, isChecked) => {\n if (multiple && multipleValueMode !== 'single') {\n var _data$childItems;\n currentValue[unique][typeof data === 'object' ? data[valueExpr] : data] = isChecked;\n if (data.childItems && (_data$childItems = data.childItems) !== null && _data$childItems !== void 0 && _data$childItems.length) {\n data.childItems.forEach(d => {\n setValue(d, isChecked);\n });\n }\n }\n };\n const clearAllValue = () => {\n inputValueRef.current.value = '';\n clearIconRef.current.style.opacity = 0;\n Object.keys(currentValue[unique]).forEach(key => {\n currentValue[unique][key] = false;\n });\n Array.from(ref.current.querySelectorAll('input')).forEach(input => {\n input.checked = false;\n });\n !!onChange && onChange({\n value: [],\n data: []\n }, []);\n };\n const setValueIntoInput = data => {\n var _clearIconRef$current2;\n if (!data || !(data !== null && data !== void 0 && data.length)) {\n var _clearIconRef$current;\n inputValueRef.current.value = '';\n if ((_clearIconRef$current = clearIconRef.current) !== null && _clearIconRef$current !== void 0 && _clearIconRef$current.element) clearIconRef.current.element.style.opacity = 0;\n return;\n }\n if ((_clearIconRef$current2 = clearIconRef.current) !== null && _clearIconRef$current2 !== void 0 && _clearIconRef$current2.element && clearIconRef.current.element.style.opacity === '0') {\n clearIconRef.current.element.style.opacity = null;\n }\n let result = '';\n const keyArr = displayExpr.match(separatorPattern);\n data.forEach(d => {\n result += keyArr ? renderData(d, keyArr) : d[displayExpr] + ', ';\n });\n inputValueRef.current.value = result.replace(/, $/, '');\n };\n const handleCheckbox = (isChecked = false, value = 'all') => {\n if ((selectBox || multiple) && ref.current) {\n if (value === 'all') {\n ref.current.querySelectorAll('input').forEach(input => input.checked = isChecked);\n } else if (value) {\n if (typeof value === 'string') {\n value = [value];\n }\n value.forEach(v => {\n const input = ref.current.querySelector(`input[value=\"${v}\"]`);\n if (input) {\n input.checked = isChecked;\n }\n });\n }\n }\n };\n const onClickHandler = (e, data) => {\n if (disabled) return;\n const target = e.target;\n const currentTarget = e.currentTarget;\n let value = typeof data === 'object' ? data[valueExpr] : data;\n const justSelected = value;\n const result = [];\n const checkBoxEl = currentTarget.querySelector('.TreeView-Item-Checkbox');\n if (multiple) {\n var _value;\n let checked;\n let inputEl;\n // Click on text (not checkbox)\n if (!checkBoxEl.contains(target)) {\n inputEl = checkBoxEl.querySelector('input');\n checked = !inputEl.checked || inputEl.classList.contains('indeterminate');\n inputEl.checked = checked;\n } else {\n inputEl = currentTarget.querySelector('input');\n checked = inputEl.checked || inputEl.classList.contains('indeterminate');\n inputEl.checked = checked;\n }\n if (multipleValueMode !== 'single') {\n if (!currentTarget.classList.contains('non-child')) {\n checkChildrenCheckbox(currentTarget.nextElementSibling, checked);\n if (checked) {\n determinateCheckbox(inputEl, true);\n }\n }\n if (checked || multipleValueMode === 'multiple') {\n checkParentCheckbox(currentTarget);\n }\n // Handle result when multiple\n setValue(data, checked);\n } else {\n currentValue[unique][value] = checked;\n if (disabledRelevantValue) {\n // Disabled/Enabled parent and children node\n if (!currentTarget.classList.contains('non-child')) {\n handleDisabledChildren(currentTarget.nextElementSibling, checked);\n }\n handleDisabledParent(currentTarget.parentNode, checked);\n }\n }\n result.push(...Object.keys(currentValue[unique]).filter(v => currentValue[unique][v]));\n value = result;\n if ((_value = value) !== null && _value !== void 0 && _value.length) {\n data = dataSource.filter(obj => value.includes(typeof obj === 'object' ? obj[valueExpr] : obj));\n } else {\n data = [];\n }\n if (showSelectedItems) {\n setValueIntoInput(data);\n }\n } else {\n if (selectBox) {\n const checkedInput = ref.current.querySelectorAll('input:checked');\n let input = currentTarget.querySelector('input');\n // Click on checkbox\n if (checkBoxEl.contains(target)) {\n if (!input.checked) {\n input.checked = true;\n return;\n }\n } else if (checkedInput[0].isSameNode(input)) {\n return;\n }\n if (checkedInput) {\n checkedInput.forEach(el => el.checked = false);\n }\n input.checked = true;\n }\n currentValue[unique][value] = true;\n result.push(value);\n }\n if (selectAllRef.current) {\n checkedSelectAllCheckbox();\n }\n e.value = value;\n e.justSelected = justSelected;\n e.data = data;\n !!onChange && onChange(e, result);\n };\n const onSelectAll = e => {\n let result;\n if (!e.target.checked && e.target.classList.contains('determinate')) {\n ref.current.querySelectorAll('input:checked').forEach(input => input.checked = false);\n e.value = [];\n result = [];\n } else {\n if (!e.target.classList.contains('determinate')) {\n determinateCheckbox(e.target, true);\n }\n e.target.checked = true;\n ref.current.querySelectorAll('input').forEach(input => {\n input.checked = true;\n if (!input.classList.contains('determinate')) {\n determinateCheckbox(input, true);\n }\n });\n result = Object.keys(currentValue[unique]).map(v => v);\n e.value = result;\n }\n !!onChange && onChange(e, result);\n };\n const onChangeHandler = e => {\n const value = e.target.value;\n if (timeout.current) {\n if (timer.current) clearTimeout(timer.current);\n timer.current = setTimeout(() => {\n onSearchHandler(value);\n }, /^\\d+$/.test(timeout.current) ? timeout.current : 700);\n } else {\n onSearchHandler(value);\n }\n };\n const onSearchHandler = value => {\n const entries = ref.current.querySelectorAll('.TreeView-Item.non-child, .DGN-UI-Accordion');\n if (value) {\n entries.forEach(entry => {\n if (compareTwoString(value, entry.textContent)) {\n entry.classList.remove('DGN-Hidden');\n // Check exactly entry\n if (entry.classList.contains('TreeView-Item')) {\n if (!disabledBoldResult && !entry.classList.contains('TreeView-Item-active')) {\n entry.classList.add('TreeView-Item-active');\n }\n } else {\n const summaryEl = entry.firstChild;\n const TreeViewItemEl = summaryEl.querySelector('.TreeView-Item');\n if (TreeViewItemEl) {\n if (compareTwoString(value, TreeViewItemEl.textContent)) {\n if (!disabledBoldResult && !TreeViewItemEl.classList.contains('TreeView-Item-active')) {\n TreeViewItemEl.classList.add('TreeView-Item-active');\n entry.classList.add('TreeView-Item-contain-children-active');\n }\n if (!compareTwoString(value, entry.lastChild.textContent)) {\n summaryEl.lastChild.classList.add('DGN-Invisible');\n } else {\n summaryEl.lastChild.classList.remove('DGN-Invisible');\n }\n } else if (TreeViewItemEl.classList.contains('TreeView-Item-active')) {\n TreeViewItemEl.classList.remove('TreeView-Item-active');\n entry.classList.remove('TreeView-Item-contain-children-active');\n }\n if (autoExpandToResult && !summaryEl.classList.contains('expanding')) {\n summaryEl.lastChild.firstChild.click();\n }\n }\n }\n } else {\n entry.classList.add('DGN-Hidden');\n if (entry.classList.contains('TreeView-Item')) {\n if (entry.classList.contains('TreeView-Item-active')) {\n entry.classList.remove('TreeView-Item-active');\n }\n entry.classList.remove('TreeView-Item-contain-children-active');\n } else {\n const summaryEl = entry.firstChild;\n const TreeViewItemEl = summaryEl.querySelector('.TreeView-Item');\n if (TreeViewItemEl) {\n if (TreeViewItemEl.classList.contains('TreeView-Item-active')) {\n TreeViewItemEl.classList.remove('TreeView-Item-active');\n }\n summaryEl.lastChild.classList.remove('DGN-Invisible');\n }\n }\n }\n });\n if (showChildrenOfResult) {\n entries.forEach(entry => {\n if (entry.classList.contains('TreeView-Item-contain-children-active')) {\n const hiddenEls = entry.querySelectorAll('.DGN-Hidden, .DGN-Invisible');\n if (hiddenEls && hiddenEls !== null && hiddenEls !== void 0 && hiddenEls.length) {\n hiddenEls.forEach(hiddenEl => hiddenEl.classList.remove('DGN-Hidden', 'DGN-Invisible'));\n }\n }\n });\n }\n } else {\n entries.forEach(entry => {\n entry.classList.remove('DGN-Hidden');\n if (!entry.classList.contains('TreeView-Item') && entry.firstChild.lastChild.classList.contains('DGN-Invisible')) {\n entry.firstChild.lastChild.classList.remove('DGN-Invisible');\n }\n });\n const activeEls = ref.current.querySelectorAll('.TreeView-Item-active');\n if (!disabledBoldResult && activeEls && activeEls !== null && activeEls !== void 0 && activeEls.length) {\n activeEls.forEach(activeEl => {\n activeEl.classList.remove('TreeView-Item-active', 'TreeView-Item-contain-children-active');\n });\n }\n }\n };\n const compareTwoString = (search, content) => {\n if (searchMode === 'similar') {\n search = removeUnicode(search.normalize(), '.*?');\n content = removeUnicode(content);\n }\n return new RegExp(search.normalize(), 'img').test(content.normalize());\n };\n const renderDataAsync = (id, array) => {\n return new Promise(res => {\n const node = array.map(({\n data,\n index,\n level\n }) => {\n return renderTreeView(data, index, level, false);\n });\n const container = document.getElementById(id);\n if (container && node) {\n render(node, container.firstChild, () => res(1));\n }\n });\n };\n const renderData = (data, keyArr) => {\n const pattern = keyArr.join('|').replace(/([{}])/g, '\\\\$1');\n const separatorArr = displayExpr.split(new RegExp(pattern));\n let str = '';\n let i = 0;\n for (i; i < (keyArr === null || keyArr === void 0 ? void 0 : keyArr.length); i++) {\n str += separatorArr[i] + (data[keyArr[i].replace(/\\W/g, '')] !== undefined ? data[keyArr[i].replace(/\\W/g, '')] : keyArr[i]);\n }\n return str + separatorArr[i];\n };\n const renderContent = (item, keyArr, index) => {\n const displayText = renderItem && typeof renderItem === 'function' ? renderItem({\n data: item,\n index\n }) : typeof item === 'object' ? keyArr ? renderData(item, keyArr) : item[displayExpr] : item;\n return jsx(Typography, {\n mapping: 'div',\n color: 'inherit',\n style: {\n width: '100%'\n }\n }, displayText);\n };\n const renderTreeView = (data, index, level, sync = true, id) => {\n if (level > renderAsyncFromLevel - 1 && sync) {\n if (itemsRenderAsync[unique][id]) {\n itemsRenderAsync[unique][id].push({\n data,\n index,\n level\n });\n } else {\n itemsRenderAsync[unique][id] = [{\n data,\n index,\n level\n }];\n }\n return null;\n }\n const keyArr = displayExpr.match(separatorPattern);\n const isTrue = value.includes(data[valueExpr] || data);\n const isParentTrue = value.includes(data[parentID]);\n const focusClass = isTrue && !selectBox && !multiple ? 'focus' : '';\n const childItems = data.childItems;\n // is Summary\n if (childItems && childItems !== null && childItems !== void 0 && childItems.length) {\n const id = randomString(6, {\n allowSymbol: false,\n allowNumber: false\n });\n return jsx(Accordion, {\n key: index,\n className: focusClass,\n expand: expand || data.expand,\n onExpand: e => {\n if (disabledRelevantValue && !isTrue && !isParentTrue) {\n handleDisabledParent(e, isTrue);\n }\n },\n onCollapse: e => {\n if (disabledRelevantValue && !isTrue && !isParentTrue) {\n handleDisabledParent(e, isTrue);\n }\n }\n }, jsx(AccordionSummary, {\n expandIcon: expandIcon,\n collapseIcon: collapseIcon,\n expandIconAt: 'start',\n expandIconProps: {\n className: 'TreeView'\n },\n className: focusClass,\n onClick: multiple || selectBox || onChange ? e => onClickHandler(e, data) : undefined,\n style: {\n paddingLeft: 16 * level\n }\n }, jsx(\"div\", {\n className: 'TreeView-Item'\n }, selectBox || multiple ? jsx(\"span\", {\n className: 'TreeView-Item-Checkbox'\n }, jsx(Checkbox, {\n checked: isTrue,\n value: typeof data === 'object' ? data[valueExpr] : data,\n stopPropagation: false,\n disabled: disabled\n })) : null, renderContent(data, keyArr, index))), jsx(AccordionDetails, {\n id: id\n }, childItems.map((child, i) => renderTreeView(child, index + i, level + 1, sync, id))));\n }\n return jsx(\"div\", {\n className: classNames('TreeView-Item', 'non-child', focusClass),\n style: {\n paddingLeft: 34 + 16 * level\n },\n onClick: multiple || selectBox || onChange ? e => onClickHandler(e, data) : undefined,\n key: index,\n tabIndex: \"-1\"\n }, selectBox || multiple ? jsx(\"span\", {\n className: 'TreeView-Item-Checkbox'\n }, jsx(Checkbox, {\n checked: isTrue,\n value: typeof data === 'object' ? data[valueExpr] : data,\n stopPropagation: false,\n disabled: disabled\n })) : null, renderContent(data, keyArr, index));\n };\n useEffect(() => {\n currentValue[unique] = {};\n return () => {\n currentValue[unique] = null;\n };\n }, []);\n useEffect(() => {\n if (searchDelayTime) {\n var _searchDelayTime$matc, _searchDelayTime$matc2;\n if (searchDelayTime === true) searchDelayTime = getGlobal('delayOnInput');\n const units = {\n m: 60000,\n s: 1000,\n ms: 1\n };\n timeout.current = typeof searchDelayTime === 'number' ? searchDelayTime : (((_searchDelayTime$matc = searchDelayTime.match(/[^a-z]+/i)) === null || _searchDelayTime$matc === void 0 ? void 0 : _searchDelayTime$matc[0]) || 1) * units[((_searchDelayTime$matc2 = searchDelayTime.match(/ms|s|m/i)) === null || _searchDelayTime$matc2 === void 0 ? void 0 : _searchDelayTime$matc2[0]) || 's'];\n return () => {\n timeout.current = null;\n };\n }\n }, [searchDelayTime]);\n useEffect(() => {\n var _value2;\n dataSource.forEach(data => {\n currentValue[unique][typeof data === 'object' ? data[valueExpr] : data] = false;\n });\n if (value && (_value2 = value) !== null && _value2 !== void 0 && _value2.length) {\n value.forEach(v => {\n currentValue[unique][v] = true;\n });\n }\n return () => {\n currentValue[unique] = {};\n };\n }, [dataSource, value]);\n useEffect(() => {\n if (value && multiple) {\n if (multipleValueMode !== 'single') {\n const childNodes = Array.from(ref.current.childNodes);\n if (childNodes && childNodes !== null && childNodes !== void 0 && childNodes.length) {\n checkedParentFollowValue(childNodes);\n }\n if (showSelectedItems) {\n const data = dataSource.filter(d => value.includes(d[valueExpr]));\n setValueIntoInput(data);\n }\n return () => {\n if (ref.current) {\n Array.from(ref.current.querySelectorAll('input')).forEach(input => {\n input.checked = value.includes(input.value);\n });\n }\n };\n } else if (disabledRelevantValue) {\n Array.from(ref.current.querySelectorAll('.TreeView-Item.non-child, .DGN-UI-Accordion')).forEach(el => {\n if (el.firstChild.querySelector('input').checked) {\n if (!el.classList.contains('non-child')) {\n handleDisabledChildren(el, true);\n }\n handleDisabledParent(el.parentNode, true);\n }\n });\n }\n }\n }, []);\n useEffect(() => {\n if (selectAllRef.current) {\n checkedSelectAllCheckbox();\n }\n if (ref.current.querySelector('.DGN-UI-Accordion-Details-Content')) {\n if (!ref.current.parentNode.classList.contains('expand-able')) {\n ref.current.parentNode.classList.add('expand-able');\n }\n return () => {\n if (ref.current) {\n ref.current.parentNode.classList.remove('expand-able');\n }\n };\n }\n }, [dataSource, value, multiple, selectBox]);\n useEffect(() => {\n var _Object$keys;\n if ((_Object$keys = Object.keys(itemsRenderAsync[unique])) !== null && _Object$keys !== void 0 && _Object$keys.length) {\n Object.keys(itemsRenderAsync[unique]).forEach(async key => {\n await renderDataAsync(key, itemsRenderAsync[unique][key]);\n });\n }\n }, [dataSource, value, multiple, selectBox, onChange]);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n // keep old method\n currentRef.disabled = disabled;\n currentRef.displayExpr = displayExpr;\n currentRef.valueExpr = valueExpr;\n currentRef.id = id;\n currentRef.parentID = parentID;\n currentRef.value = value;\n currentRef.getValue = () => Object.keys(currentValue[unique]).filter(v => currentValue[unique][v]);\n currentRef.setValue = setValue;\n currentRef.handleCheckbox = handleCheckbox;\n currentRef.get = () => ref.current;\n return currentRef;\n });\n return useMemo(() => {\n var _value3;\n if (typeof value === 'string') {\n value = [value];\n }\n if (!multiple && ((_value3 = value) === null || _value3 === void 0 ? void 0 : _value3.length) > 1) {\n value.length = 1;\n }\n itemsRenderAsync[unique] = {};\n const sync = (dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) > renderAsyncWithLength;\n return jsx(\"div\", {\n css: TreeViewRootCSS,\n className: classNames('DGN-UI-TreeView', disabled && 'disabled')\n }, showSelectedItems && multiple ? jsx(InputBase, {\n inputRef: inputValueRef,\n viewType: 'outlined',\n readOnly: true,\n style: {\n marginBottom: 1\n },\n inputStyle: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n endIcon: jsx(ButtonIcon, {\n viewType: 'ghost',\n ref: clearIconRef,\n name: 'Cancel',\n onClick: clearAllValue\n })\n }) : null, allowSearch ? jsx(InputBase, {\n startIcon: 'Search',\n onChange: onChangeHandler,\n viewType: 'outlined',\n ...searchProps\n }) : null, multiple && selectAll ? jsx(Fragment, null, jsx(\"div\", {\n className: 'TreeView-All'\n }, jsx(Checkbox, {\n label: selectAllLabel,\n onChange: onSelectAll,\n inputRef: selectAllRef,\n stopPropagation: false,\n disabled: disabled\n })), jsx(Divider, null)) : null, jsx(\"div\", {\n ref: ref,\n className: classNames('TreeView-Content', disabled && 'disabled', className),\n ...props\n }, mapParent(dataSource, id, parentID, true).map((data, index) => renderTreeView(data, index.toString(), 0, sync))));\n }, [allowSearch, autoExpandToResult, className, collapseIcon, dataSource, disabled, disabledBoldResult, disabledRelevantValue, displayExpr, expandIcon, id, multiple, multipleValueMode, onChange, parentID, renderAsyncFromLevel, renderAsyncWithLength, renderItem, searchMode, searchProps, selectAll, selectAllLabel, selectBox, showChildrenOfResult, showSelectedItems, value, valueExpr]);\n}));\nconst TreeViewRootCSS = css`\n ${displayBlock};\n ${positionRelative};\n .DGN-UI-Accordion {\n box-shadow: none !important;\n .DGN-UI-Accordion-Summary {\n ${itemsCenter};\n ${parseMinHeight(40)};\n ${pd(0)};\n ${borderRadius(0)};\n &.focus {\n ${bgColor('fill/focus')};\n }\n .Accordion-Icon-Root {\n ${displayFlex};\n ${flexRow};\n ${mgr([1])};\n }\n }\n .DGN-UI-Accordion-Details-Content {\n ${pd(0)};\n ${borderRadius(0)};\n }\n .Accordion-Icon-Root {\n ${displayFlex};\n ${flexRow};\n transition: opacity 0.2s ease-out;\n opacity: 1;\n &.DGN-Invisible {\n opacity: 0;\n }\n }\n &.DGN-Hidden {\n display: none !important;\n }\n }\n .TreeView-All,\n .TreeView-Content {\n ${displayBlock};\n ${positionRelative};\n .DGN-UI-Accordion {\n ${mgb(0)};\n }\n }\n .TreeView-Item-Checkbox {\n ${displayInlineBlock};\n ${positionRelative};\n ${parseHeight('100%')};\n ${mgr([2])};\n }\n .TreeView-Item {\n ${flexRow};\n ${positionRelative};\n ${itemsCenter};\n ${boxBorder};\n ${parseWidth('100%')};\n ${parseMinHeight(40)};\n ${textLeft};\n ${textColor('text/main')};\n &.non-child {\n ${cursorPointer};\n transition: background-color 300ms ease;\n &.disabled {\n ${cursorNotAllowed};\n ${textColor('system/disabled')};\n }\n &:not(.disabled) {\n &:hover {\n ${bgColor('fill/hover')};\n }\n &:focus {\n ${bgColor('fill/focus')};\n }\n &:active {\n ${bgColor('fill/pressed')};\n }\n }\n &.DGN-Hidden {\n display: none !important;\n }\n }\n &.focus {\n ${bgColor('fill/focus')};\n }\n &.TreeView-Item-active .DGN-UI-Typography {\n font-weight: bold;\n }\n }\n &.expand-able {\n .TreeView-All {\n ${mgl([8.5])};\n }\n .TreeView-Item.non-child {\n ${pdl([8.5])};\n }\n }\n`;\nTreeView.defaultProps = {\n allowSearch: false,\n autoExpandToResult: true,\n className: '',\n dataSource: [],\n disabled: false,\n disabledBoldResult: false,\n disabledRelevantValue: false,\n displayExpr: 'name',\n expand: false,\n expandIcon: 'ArrowDown',\n id: 'id',\n multiple: false,\n multipleValueMode: 'multiple',\n parentID: 'parentID',\n renderAsyncFromLevel: 2,\n renderAsyncWithLength: 200,\n searchMode: 'contains',\n searchProps: {},\n selectAll: false,\n selectAllLabel: getGlobal('selectAll'),\n selectBox: false,\n showChildrenOfResult: false,\n showSelectedItems: false,\n value: [],\n valueExpr: ''\n};\nTreeView.propTypes = {\n /** If `true`, display input box search. */\n allowSearch: PropTypes.bool,\n /** If `true`, expand TreeView to match result. */\n autoExpandToResult: PropTypes.bool,\n /** Class for component. */\n className: PropTypes.string,\n /** Icon display for collapse icon. */\n collapseIcon: PropTypes.any,\n /** The array of elements that appear in the tree list. */\n dataSource: PropTypes.array,\n /** If `true`, the component is disabled. */\n disabled: PropTypes.bool,\n /** If `true`, prevent display content of match values with bold style. */\n disabledBoldResult: PropTypes.bool,\n /** If `true`, disabled parent and children item (only supported for multipleValueMode is single). */\n disabledRelevantValue: PropTypes.bool,\n /** Field name used for text display in dropdown list.
\r\n * Example: 'name', '{id} - {name}', '{age} age(s)'
\r\n * Note: don't use 'id - name', return undefined\r\n */\n displayExpr: PropTypes.string,\n /** If `true`, expand immediate after render (shouldn't use this). */\n expand: PropTypes.bool,\n /** Icon display for expand icon. */\n expandIcon: PropTypes.any,\n /** If `true`, value must be an array and the treeview will support multiple selections. */\n multiple: PropTypes.bool,\n /** Return value for the select multiple use case. */\n multipleValueMode: PropTypes.oneOf(['single', 'multiple', 'inheritance']),\n /**\r\n * Callback fired when the value changes.
\r\n * return 2 parameters (e, data)
\r\n * * e: element (insist {value, justSelected, data})
\r\n *      + value is one or an array of selected values
\r\n *      + justSelected is value has just been selected (either true or false))
\r\n *      + data is one or an array of selected values with full information
\r\n * * data: array of selected values (not recommend because it's the same e.value)\r\n */\n onChange: PropTypes.func,\n /** Used for mapping into a nested list. */\n parentID: PropTypes.string.isRequired,\n /** Will render asynchronously from level equal this number. */\n renderAsyncFromLevel: PropTypes.oneOf([2, 3, 4, 5]),\n /** Will render asynchronously if the number of elements is greater than this number. */\n renderAsyncWithLength: PropTypes.number,\n /** Function displays items by custom.
\r\n * renderItem={(data, index) => data.name + ' - ' + data.role}
\r\n * --> such as: displayExpr={'name - role'}\r\n */\n renderItem: PropTypes.func,\n /**\r\n * Duration wait enter search content on search.
\r\n * Example: 700 -> 700ms, '700ms' -> 700ms, '0.7s' -> 700ms, '1m' -> 60000ms\r\n * If `true`, used default delayOnInput.\r\n */\n searchDelayTime: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** Specifies a comparison operation used to search items. */\n searchMode: PropTypes.oneOf(['contains', 'similar']),\n /** The props for InputBase. */\n searchProps: PropTypes.object,\n /** If `true`, allow select/unselect all items on one click (just support for multiple). */\n selectAll: PropTypes.bool,\n /** The content display for label of checkbox select all */\n selectAllLabel: PropTypes.string,\n /** If `true`, show checkbox in each item. */\n selectBox: PropTypes.bool,\n /** If `true`, still show children of last result was found. */\n showChildrenOfResult: PropTypes.bool,\n /** If `true`, display all value in a box. */\n showSelectedItems: PropTypes.bool,\n /** Used to identify the parent key. */\n id: PropTypes.string.isRequired,\n /** The displayed value of component. */\n value: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n /** The field name used for the returned result. */\n valueExpr: PropTypes.string\n /**\r\n * get ref of TreeView component, insist:
\r\n * {
\r\n *     disabled: true/false,
\r\n *     displayExpr: string,
\r\n *     valueExpr: string,
\r\n *     id: string,
\r\n *     parentID: string,
\r\n *     value: string/array
\r\n *     getValue: get selected values (instead of onChange function),
\r\n *     setValue: set array of value (only multiple),
\r\n *     handleCheckbox: checked/unchecked a Checkbox, includes 2 parameters (isChecked, value):
\r\n *          + isChecked: checked if true (default is false)
\r\n *          + value: selected values, use 'all' for all values (default is 'all')
\r\n *     get: get DOM of TreeView component
\r\n * }\r\n */\n};\n\nexport default TreeView;","/* eslint-disable react/prop-types */\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { memo, useState, useEffect, useMemo, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx, css } from '@emotion/core';\nimport { brand, dark11, dark6, blue13 } from \"../../../styles/colors\";\nimport { typography } from \"../../../styles/typography\";\nconst icons = {\n expand: `\n \n `,\n collapse: `\n \n `\n};\nconst Extra = ({\n type,\n displayText,\n style,\n onClick,\n ...props\n}) => {\n const extraRef = useRef(null);\n const textRef = useRef(null);\n const iconRef = useRef(null);\n const [typeState, setTypeState] = useState(type);\n\n /* Start styled */\n const extraIcon = css`\n display: flex;\n align-items: center;\n `;\n const extraText = css`\n margin-left: 9px;\n ${typography.heading4};\n color: ${dark6};\n `;\n const extra = css`\n width: 100%;\n height: 40px;\n background-color: ${dark11};\n display: flex;\n justify-content: center;\n align-items: center;\n color: ${dark6};\n cursor: pointer;\n &:hover {\n background-color: ${blue13};\n .css-${extraIcon.name} {\n color: ${brand};\n path: {\n fill: ${brand};\n }\n }\n .css-${extraText.name} {\n color: ${brand};\n }\n }\n `;\n /* End styled */\n\n /* Start handler */\n const handleClick = () => {\n if (typeState === 'expand') {\n iconRef.current.innerHTML = icons.collapse;\n textRef.current.innerHTML = displayText || 'Thu gọn';\n setTypeState('collapse');\n } else {\n iconRef.current.innerHTML = icons.expand;\n textRef.current.innerHTML = displayText || 'Xem thêm';\n setTypeState('expand');\n }\n if (onClick) onClick({\n type: typeState === 'expand' ? 'collapse' : 'expand'\n });\n };\n useEffect(() => {\n iconRef.current.innerHTML = type === 'expand' ? icons.expand : icons.collapse;\n setTypeState(type);\n }, [type]);\n useEffect(() => {\n textRef.current.innerHTML = displayText || (type === 'expand' ? 'Xem thêm' : 'Thu gọn');\n }, [displayText, type]);\n /* End handler */\n\n /* Start component */\n const iconComp = useMemo(() => jsx(\"div\", {\n ref: iconRef,\n css: extraIcon\n }), []);\n const textComp = useMemo(() => jsx(\"div\", {\n ref: textRef,\n css: extraText\n }, displayText), []);\n /* End component */\n\n return jsx(\"div\", {\n ...props,\n ref: extraRef,\n css: extra,\n onClick: handleClick,\n style: style\n }, iconComp, textComp);\n};\nExtra.defaultProps = {\n type: 'expand'\n};\nExtra.proptypes = {\n type: PropTypes.string,\n displayText: PropTypes.string,\n style: PropTypes.object,\n onClick: PropTypes.func\n};\nexport default /*#__PURE__*/memo(Extra);","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx, css } from '@emotion/core';\nimport { white, dark12, brand13 } from \"../../../styles/colors\";\nconst getPosition = {\n bottom: `\n\t\toverflow-x: auto;\n\t\tword-wrap: no-wrap;\n\t`,\n right: `\n\t\toverflow-x: auto;\n\t`,\n left: `\n\t\toverflow-x: auto;\n\t\tdirection: rtl;\n\t\ttext-align: left;\n\t`\n};\nconst scrollbar = ({\n backgroundScroll,\n backgroundThumb,\n backgroundThumbHover,\n children,\n maxWidth,\n maxHeight,\n width,\n height,\n style,\n position,\n custom,\n ...props\n}) => {\n const Scrollbar = css`\n position: relative;\n display: block;\n padding: 8px 8px;\n margin-right: 8px;\n max-width: ${maxWidth ? isNaN(maxWidth) ? maxWidth : maxWidth + 'px' : '100%'};\n max-height: ${maxHeight ? isNaN(maxHeight) ? maxHeight : maxHeight + 'px' : '100%'};\n &::-webkit-scrollbar {\n width: ${width ? isNaN(width) ? width : width + 'px' : '8px'};\n height: ${height ? isNaN(height) ? height : height + 'px' : '8px'};\n background-color: ${backgroundScroll};\n }\n &::-webkit-scrollbar-thumb {\n border-radius: 10px;\n mix-blend-mode: normal;\n background-color: ${backgroundThumb};\n background-clip: content-box;\n }\n &::-webkit-scrollbar-thumb:hover {\n border-radius: 10px;\n background-color: ${backgroundThumbHover};\n background-clip: content-box;\n }\n ${/tract/i.test(custom) ? `&::-webkit-scrollbar-track {\n\t\t\t\t\t\tborder-radius: 10px;\n\t\t\t\t\t\tmix-blend-mode: normal;\n\t\t\t\t\t\tbackground: rgba(21, 26, 48, 0.02);\n\t\t\t\t\t}` : ''}\n ${getPosition[position]}\n `;\n return jsx(\"div\", {\n css: Scrollbar,\n style: style,\n ...props\n }, children);\n};\nscrollbar.defaultProps = {\n backgroundScroll: white,\n backgroundThumb: dark12,\n backgroundThumbHover: brand13,\n position: 'right',\n width: 8\n};\nscrollbar.propTypes = {\n custom: PropTypes.string,\n position: PropTypes.oneOf(['bottom', 'right', 'left']),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n style: PropTypes.object,\n children: PropTypes.node\n};\nexport default /*#__PURE__*/memo(scrollbar);","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { memo, useEffect, useMemo, useRef, forwardRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { jsx, css, keyframes } from '@emotion/core';\nimport { Button, ButtonIcon, Typography } from \"../\";\nimport { Info, ApprovalFilled, Warning, Failed } from \"../../icons\";\nimport theme from \"../../theme/settings\";\nimport { getGlobal } from \"../../global\";\nimport { typography } from \"../../styles/typography\";\nimport { useTheme } from \"../../theme\";\nconst {\n zIndex\n} = useTheme();\nexport const icons = {\n info: jsx(Info, {\n viewBox: true\n }),\n success: jsx(ApprovalFilled, {\n viewBox: true\n }),\n warning: jsx(Warning, {\n viewBox: true\n }),\n danger: jsx(Failed, {\n viewBox: true\n })\n};\nconst Popup = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n open,\n type,\n icon,\n title,\n className,\n clearAble,\n fullScreen,\n pressESCToClose,\n autoFocusOKButton,\n style,\n popupStyle,\n clearIconStyle,\n confirmProps,\n cancelProps,\n refs,\n getPopup,\n onClose,\n onConfirm,\n onCancel,\n children,\n width,\n top,\n confirmText,\n cancelText,\n yesText,\n noText,\n ...props\n}, ref) => {\n if (!ref) {\n ref = useRef(null);\n }\n const [openState, setOpenState] = useState(open);\n const [custom, setCustom] = useState(null);\n const PopupContainer = css`\n position: fixed;\n display: none;\n width: 100%;\n height: 100vh;\n background-color: ${!fullScreen ? 'transparent' : 'rgba(21, 26, 48, 0.5)'};\n top: 0;\n left: 0;\n justify-content: center;\n padding-top: ${isNaN(top) ? top : top + 'px'};\n pointer-events: ${!fullScreen ? 'none' : 'auto'};\n opacity: 0;\n transition: opacity 0.3s ease;\n z-index: ${zIndex(1)};\n `;\n const fadeInDown = keyframes`\n from {\n opacity: 0;\n transform: translateY(-30px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n `;\n const fadeOutUp = keyframes`\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n transform: translateY(-30px);\n }\n `;\n const PopupFrame = css`\n display: flex;\n position: relative;\n color: ${theme.colors.text.main};\n background-color: white;\n width: ${width};\n height: max-content;\n min-width: 150px;\n max-width: 480px;\n min-height: 68px;\n border-radius: 4px;\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n box-sizing: border-box;\n pointer-events: auto;\n animation: ${fadeOutUp} 0.2s ease;\n animation-fill-mode: forwards;\n &.animate_fadeInDown {\n animation: ${fadeInDown} 0.2s ease;\n }\n `;\n const PopupContent = css`\n display: block;\n position: relative;\n color: inherit;\n width: 100%;\n margin: 24px 48px;\n `;\n const PopupInfo = css`\n /* width: max-content; */\n display: flex;\n color: inherit;\n justify-content: center;\n .popup-icon {\n display: inline-flex;\n margin-top: 2px;\n width: auto;\n height: auto;\n }\n .popup-title {\n /* width: 100%; */\n display: inline-flex;\n margin-left: 8px;\n margin-right: 8px;\n color: inherit;\n text-align: center;\n align-items: center;\n ${typography.paragraph1};\n }\n `;\n const PopupYesNo = css`\n display: flex;\n justify-content: center;\n margin-top: 21px;\n `;\n const PopupClearIcon = css`\n display: block;\n position: absolute;\n width: 24px;\n height: 24px;\n top: 16px;\n right: 16px;\n color: ${theme.colors.system.rest};\n cursor: pointer;\n `;\n const onShowPopup = (message, options = {}, cb, autoClose = true) => {\n if (!message && (!options || JSON.stringify(options) === '{}') && !cb) {\n setCustom(false);\n setOpenState(true);\n return;\n }\n message = message || title;\n if (Object.keys(options).length) {\n type = options.type || type;\n icon = options.icon || icon;\n confirmText = options.confirmText || confirmText;\n cancelText = options.cancelText || cancelText;\n yesText = options.yesText || yesText;\n noText = options.noText || noText;\n }\n const confirmHandler = () => {\n if (cb && typeof cb === 'function') cb(true);else onConfirmHandler();\n if (autoClose) {\n onClosePopup();\n }\n };\n const cancelHandler = () => {\n if (cb && typeof cb === 'function') cb(false);else onCancelHandler();\n if (autoClose) {\n onClosePopup();\n }\n };\n const newContent = jsx(\"div\", {\n css: PopupContent\n }, jsx(\"div\", {\n css: PopupInfo\n }, icon ? jsx(\"span\", {\n className: 'popup-icon'\n }, icons[icon]) : null, jsx(\"span\", {\n className: 'popup-title'\n }, jsx(Typography, null, message))), /(yes.*?no)|(confirm)/i.test(type) && jsx(\"div\", {\n css: PopupYesNo\n }, jsx(Button, {\n viewType: 'filled',\n color: 'info',\n style: {\n minWidth: 104\n },\n ...confirmProps,\n onClick: confirmHandler\n }, /confirm/i.test(type) ? confirmText : yesText), jsx(Button, {\n viewType: 'outlined',\n style: {\n minWidth: 104,\n marginLeft: 24\n },\n ...cancelProps,\n onClick: cancelHandler\n }, /confirm/i.test(type) ? cancelText : noText)));\n setCustom(newContent);\n setOpenState(true);\n };\n const onClosePopup = (action = false) => {\n if (onClose && action) {\n onClose();\n } else {\n if (ref.current) {\n setTimeout(() => {\n setOpenState(false);\n }, 300);\n ref.current.style.opacity = null;\n ref.current.firstChild.classList.remove('animate_fadeInDown');\n if (fullScreen) {\n document.body.style.overflow = null;\n }\n }\n }\n };\n const onConfirmHandler = () => {\n if (onConfirm) onConfirm();else setOpenState(false);\n };\n const onCancelHandler = () => {\n if (onCancel) onCancel();else setOpenState(false);\n };\n const pressESCHandler = event => {\n if (event.key === 'Escape') {\n onClosePopup(custom === null);\n document.removeEventListener('keydown', pressESCHandler);\n }\n };\n useEffect(() => {\n if (refs) refs(ref);\n }, []);\n useEffect(() => {\n if (getPopup && typeof getPopup === 'function') getPopup({\n show: onShowPopup,\n close: onClosePopup\n });\n }, [getPopup]);\n useEffect(() => {\n if (open) {\n setOpenState(open);\n } else {\n onClosePopup();\n }\n }, [open]);\n useEffect(() => {\n if (openState) {\n ref.current.style.display = 'flex';\n const titleEl = ref.current.querySelector('.popup-title');\n const iconEl = ref.current.querySelector('.popup-icon');\n if (iconEl && titleEl) {\n titleEl.style.marginRight = '32px';\n const height = titleEl.offsetHeight;\n if (height && height > 39) {\n iconEl.style.height = '40px';\n iconEl.style.width = '40px';\n iconEl.firstChild.style.height = '40px';\n iconEl.firstChild.style.width = '40px';\n }\n }\n setTimeout(() => {\n ref.current.style.opacity = 1;\n ref.current.firstChild.classList.add('animate_fadeInDown');\n }, 0);\n\n // Allow press ESC to close popup\n if (pressESCToClose) {\n document.addEventListener('keydown', pressESCHandler);\n }\n if (autoFocusOKButton && type !== 'info' && ref.current.querySelector('button')) {\n ref.current.querySelector('button').focus();\n }\n if (fullScreen) {\n document.body.style.overflow = 'hidden';\n }\n return () => {\n setCustom(null);\n };\n }\n }, [openState]);\n const Popup = useMemo(() => openState && /*#__PURE__*/createPortal(jsx(\"div\", {\n css: PopupContainer,\n className: 'DGN-UI-Portal',\n ref: ref,\n style: style\n }, jsx(\"div\", {\n css: PopupFrame,\n ...props,\n style: popupStyle,\n className: 'DGN-UI-Popup ' + className\n }, custom ? custom : /^custom$/i.test(type) ? children : jsx(\"div\", {\n css: PopupContent,\n className: 'DGN-UI-Popup-Content'\n }, jsx(\"div\", {\n css: PopupInfo\n }, icon ? jsx(\"span\", {\n className: 'popup-icon'\n }, icons[icon]) : null, jsx(\"span\", {\n className: 'popup-title'\n }, jsx(Typography, null, title))), /(yes.*?no)|(confirm)/i.test(type) && jsx(\"div\", {\n css: PopupYesNo\n }, jsx(Button, {\n viewType: 'filled',\n color: 'info',\n style: {\n minWidth: 104\n },\n ...confirmProps,\n onClick: onConfirmHandler\n }, /confirm/i.test(type) ? confirmText : yesText), jsx(Button, {\n viewType: 'outlined',\n style: {\n minWidth: 104,\n marginLeft: 24\n },\n ...cancelProps,\n onClick: onCancelHandler\n }, /confirm/i.test(type) ? cancelText : noText))), (clearAble || /info/i.test(type)) && jsx(\"div\", {\n css: PopupClearIcon,\n style: clearIconStyle\n }, jsx(ButtonIcon, {\n viewType: 'ghost',\n name: 'close',\n onClick: e => onClosePopup(custom === false ? false : e)\n })))), document.body), [openState, custom, title, icon, type, onClose, onConfirm, onCancel]);\n return Popup;\n}));\nPopup.defaultProps = {\n type: 'info',\n width: '450px',\n title: '',\n className: '',\n yesText: getGlobal('yes'),\n noText: getGlobal('no'),\n confirmText: getGlobal('ok'),\n cancelText: getGlobal('cancel'),\n clearAble: true,\n open: false,\n pressESCToClose: false,\n autoFocusOKButton: true,\n fullScreen: false,\n top: 50\n};\nPopup.propTypes = {\n /** type of Popup, corresponding to the content inside */\n type: PropTypes.oneOf(['info', 'yes-no', 'confirm', 'custom']),\n /** the icon to display before content */\n icon: PropTypes.oneOf(['info', 'success', 'warning', 'danger']),\n /** the main content to display */\n title: PropTypes.node,\n /** class of Popup component */\n className: PropTypes.string,\n /** the text to display in agree button */\n yesText: PropTypes.string,\n /** the text to display in deny button */\n noText: PropTypes.string,\n /** the text to display in confirm button */\n confirmText: PropTypes.string,\n /** the text to display in cancel button */\n cancelText: PropTypes.string,\n /** the width of Popup */\n width: PropTypes.string,\n /** display clear icon if true */\n clearAble: PropTypes.bool,\n /** show Popup if true */\n open: PropTypes.bool,\n /** allow close Popup when press ESC */\n pressESCToClose: PropTypes.bool,\n /** auto focus in OK button */\n autoFocusOKButton: PropTypes.bool,\n /** style inline for Popup container */\n style: PropTypes.object,\n /** style inline for Popup */\n popupStyle: PropTypes.object,\n /** style inline for clear icon */\n clearIconStyle: PropTypes.object,\n /** the props of confirm button */\n confirmProps: PropTypes.object,\n /** the props of cancel button */\n cancelProps: PropTypes.object,\n /** the function to get ref of Popup */\n refs: PropTypes.func,\n /** the function to get events of Popup (show/close) */\n getPopup: PropTypes.func,\n /** the function run when close Popup */\n onClose: PropTypes.func,\n /** the function run when click confirm button */\n onConfirm: PropTypes.func,\n /** the function run when click cancel button */\n onCancel: PropTypes.func,\n /** set top position for Popup */\n top: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** show a dark background under the popup if true */\n fullScreen: PropTypes.bool,\n /** the full content will display in Popup if set */\n children: PropTypes.any\n};\nexport default Popup;","/* eslint-disable react/prop-types */\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { memo, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx, css } from '@emotion/core';\nimport Popup from \"./\";\nimport { Button } from \"../\";\nimport { renderHTML } from \"../../utils\";\nimport { Warning } from \"../../icons\";\nimport { typography } from \"../../styles/typography\";\nconst DangerPopup = ({\n open,\n warningText,\n warningIconColor,\n warningDescription,\n confirmText,\n cancelText,\n timing,\n buttonTimingColor,\n onConfirm,\n onCancel,\n popupStyle,\n ...props\n}) => {\n const popupActionRef = useRef(null);\n const popupStyles = {\n backgroundColor: '#FFDCD8',\n color: '#E7000F',\n width: 486,\n height: 'max-content',\n ...popupStyle\n };\n const PopupContent = css`\n display: block;\n position: relative;\n color: inherit;\n margin: 24px 58px;\n width: 100%;\n `;\n const PopupInfo = css`\n display: flex;\n justify-content: center;\n align-items: center;\n color: inherit;\n .popup-icon {\n width: 48px;\n height: 44px;\n margin-right: 13px;\n }\n .popup-title {\n ${typography.heading1};\n color: inherit;\n }\n `;\n const PopupWarning = css`\n ${typography.paragraph1};\n text-align: center;\n color: inherit;\n `;\n const PopupAction = css`\n margin-top: 15px;\n display: flex;\n justify-content: space-between;\n button {\n min-width: 176px;\n ${typography.paragraph1};\n &.button-confirm {\n &.popup-timing {\n color: ${buttonTimingColor};\n background-color: white;\n border: 1px solid ${buttonTimingColor};\n box-shadow: none;\n }\n }\n }\n `;\n const onConfirmHandler = () => {\n if (onConfirm) onConfirm();\n };\n const onCancelHandler = () => {\n if (onCancel) onCancel();\n };\n useEffect(() => {\n let timer = null;\n if (open) {\n setTimeout(() => {\n if (popupActionRef.current) {\n const button = popupActionRef.current.querySelector('button.button-confirm');\n if (!button) return;\n const childNode = button.querySelector('.button-text');\n let time = timing;\n button.classList.add('popup-timing');\n button.disabled = true;\n childNode.textContent += ` (${time}s)`;\n timer = setInterval(() => {\n if (time === 0) {\n button.classList.remove('popup-timing');\n button.disabled = false;\n childNode.textContent = confirmText;\n clearInterval(timer);\n return;\n }\n time--;\n childNode.textContent = `${confirmText} (${time}s)`;\n }, 1000);\n }\n }, 0);\n }\n return () => {\n if (open && popupActionRef.current) {\n const button = popupActionRef.current.querySelector('button.button-confirm');\n if (!button) return;\n const childNode = button.querySelector('.button-text');\n setTimeout(() => {\n button.classList.remove('popup-timing');\n button.disabled = false;\n childNode.textContent = confirmText;\n }, 300);\n }\n if (timer) clearInterval(timer);\n };\n }, [open]);\n return jsx(Popup, {\n popupStyle: popupStyles,\n type: 'custom',\n open: open,\n ...props\n }, jsx(\"div\", {\n css: PopupContent\n }, jsx(\"div\", {\n css: PopupInfo\n }, jsx(\"span\", {\n className: 'popup-icon'\n }, jsx(Warning, {\n width: 40,\n height: 40,\n color: warningIconColor,\n viewBox: true\n })), jsx(\"span\", {\n className: 'popup-title'\n }, warningText)), jsx(\"div\", {\n css: PopupWarning\n }, renderHTML(warningDescription)), jsx(\"div\", {\n css: PopupAction,\n ref: popupActionRef\n }, jsx(Button, {\n viewType: 'outlined',\n color: 'danger',\n className: 'button-confirm',\n onClick: onConfirmHandler\n }, confirmText), jsx(Button, {\n viewType: 'outlined',\n color: 'primary',\n onClick: onCancelHandler\n }, cancelText))));\n};\nDangerPopup.defaultProps = {\n warningText: 'CẢNH BÁO NGUY HIỂM',\n warningIconColor: '#E7000F',\n warningDescription: `Hành động này sẽ xóa tất cả các công việc bên trong dự án và không thể khôi phục.
\n Bạn có chắn chắn muốn xóa dự án này không?`,\n confirmText: 'XÁC NHẬN XOÁ',\n cancelText: 'HUỶ THAO TÁC',\n timing: 10,\n buttonTimingColor: 'rgba(231, 0, 15, 0.5)'\n};\nDangerPopup.propTypes = {\n /** the title of Popup */\n warningText: PropTypes.string,\n /** the title of Popup */\n warningIconColor: PropTypes.string,\n /** the content to description for warning title */\n warningDescription: PropTypes.string,\n /** the content to display in confirm button */\n confirmText: PropTypes.string,\n /** the content to display in cancel button */\n cancelText: PropTypes.string,\n /** the color of button when timing */\n buttonTimingColor: PropTypes.string,\n /** the period to prevent click confirm button */\n timing: PropTypes.number,\n /** the function run when click confirm button */\n onConfirm: PropTypes.func,\n /** the function run when click cancel button */\n onCancel: PropTypes.func\n};\nexport default /*#__PURE__*/memo(DangerPopup);","import React from 'react';\nimport { Button, Typography, Notify as AlertNotify } from \"../..\";\nimport PropTypes from 'prop-types';\nconst ImportComp = ({\n components,\n from = 'components',\n importDefault = false\n}) => {\n let text = Array.isArray(components) ? components.join(', ') : components;\n if (!importDefault) {\n text = `{ ${text} }`;\n }\n const importText = `import ${text} from 'diginet-core-ui/${from}';`;\n let Notify = null;\n const onCopyImport = () => {\n if (!components) {\n Notify(`Không có components để copy`, {\n color: 'warning'\n });\n return;\n }\n const el = document.createElement('input');\n el.value = importText;\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n Notify(`Đã copy ${text} from ${from}`);\n };\n return components ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'flex',\n position: 'sticky',\n justifyContent: 'flex-end',\n alignItems: 'center',\n top: 0,\n textAlign: 'right'\n }\n }, /*#__PURE__*/React.createElement(Typography, {\n type: 'h3',\n color: 'primary',\n style: {\n fontSize: 14\n }\n }, importText), /*#__PURE__*/React.createElement(Button, {\n onClick: onCopyImport,\n text: 'Copy',\n viewType: 'filled',\n color: 'info',\n size: 'tiny'\n }), /*#__PURE__*/React.createElement(AlertNotify, {\n getAddNotify: func => Notify = func,\n progressing: true,\n autoDisappear: true,\n maxWidth: '500px',\n color: 'success'\n })) : /*#__PURE__*/React.createElement(Typography, {\n type: 'h1',\n color: 'danger',\n center: true\n }, \"DEVELOPING\", ' ', /*#__PURE__*/React.createElement(Typography, {\n type: 'h3',\n color: 'warning'\n }, \"(Khoan h\\u1EB5n d\\xF9ng)\"));\n};\nImportComp.propTypes = {\n components: PropTypes.string,\n from: PropTypes.string,\n importDefault: PropTypes.bool\n};\nexport default ImportComp;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport { Popover } from \"./..\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, Fragment, memo, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { breakAll, breakWord, cursorPointer, displayBlock, displayInlineBlock, italic, overflowHidden, parseHeight, parseMaxWidth, parseMinWidth, pd, positionRelative, textCapitalize, textCenter, textColor, textLineThrough, textLowercase, textSentence, textUnderline, textUppercase, whiteSpaceBreakSpaces } from \"../../styles/general\";\nimport { useTypography as typography } from \"../../theme\";\nimport { classNames, renderHTML } from \"../../utils\";\nconst colorMap = new Map([['default', 'text/main']]);\nconst formatMap = new Map([['capitalize', textCapitalize], ['uppercase', textUppercase], ['lowercase', textLowercase], ['italic', italic], ['line-through', textLineThrough], ['underline', textUnderline], ['sentence', textSentence]]);\nconst isTextClamped = elm => (elm === null || elm === void 0 ? void 0 : elm.scrollHeight) > (elm === null || elm === void 0 ? void 0 : elm.clientHeight);\nconst Typography = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n capitalize,\n // deprecated\n center,\n children,\n className,\n color,\n format,\n fullWidth,\n hoverTooltip,\n italic,\n lineClamp,\n mapping,\n onClick,\n tooltipDirection,\n type,\n uppercase,\n // deprecated\n ...props\n}, reference) => {\n var _ref$current;\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n const formatCSS = [];\n if (Array.isArray(format)) {\n format.forEach(item => {\n formatCSS.push(formatMap.get(item));\n });\n }\n const [openTooltip, setOpenTooltip] = useState(false);\n const _TextRootCSS = [TextRootCSS(color, type, lineClamp, onClick, hoverTooltip, center, fullWidth, uppercase, capitalize), ...formatCSS];\n const showTooltip = () => {\n if (!hoverTooltip) return;\n if (isTextClamped(ref.current)) {\n setOpenTooltip(true);\n }\n };\n const hideTooltip = () => {\n if (!hoverTooltip) return;\n if (isTextClamped(ref.current)) {\n setOpenTooltip(false);\n }\n };\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n const classes = classNames('DGN-UI-Typography', `DGN-UI-Typography-${type}`, className);\n const content = Array.isArray(children) && !children.some(node => node && String(node.$$typeof) === 'Symbol(react.element)') ? children.join('') : children;\n const renderTooltip = hoverTooltip ? jsx(Popover, {\n css: parseMinWidth(300),\n open: openTooltip,\n pressESCToClose: false,\n fullScreen: false,\n bgColor: 'fill/tooltip',\n anchor: ref,\n width: ((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.clientWidth) || 'max-content',\n direction: tooltipDirection\n }, renderHTML(content, mapping, {\n css: [_TextRootCSS, PopoverContentCSS],\n className: classes\n })) : null;\n return useMemo(() => {\n return jsx(Fragment, null, renderHTML(content, mapping, {\n ref: ref,\n css: [_TextRootCSS, lineClamp && ClampCSS(lineClamp)],\n className: classes,\n onMouseEnter: showTooltip,\n onMouseLeave: hideTooltip,\n onClick: onClick,\n ...props\n }), renderTooltip);\n }, [capitalize, center, children, className, color, format, fullWidth, hoverTooltip, italic, lineClamp, mapping, onClick, props, tooltipDirection, type, uppercase, openTooltip]);\n}));\nconst TextRootCSS = (color, type, lineClamp, onClick, hoverTooltip, center, fullWidth, uppercase, capitalize) => css`\n ${displayInlineBlock};\n ${positionRelative};\n ${onClick && cursorPointer};\n ${hoverTooltip && lineClamp === 1 ? breakAll : breakWord};\n ${whiteSpaceBreakSpaces};\n ${textColor(colorMap.get(color) || color)};\n ${parseMaxWidth('max-content')};\n ${type !== 'inherit' && typography[type]};\n ${center && textCenter};\n ${uppercase && textUppercase};\n ${capitalize && textCapitalize};\n ${fullWidth && css`\n ${displayBlock};\n ${parseMaxWidth('initial')};\n `}\n`;\nconst ClampCSS = lineClamp => css`\n ${overflowHidden};\n display: -webkit-box;\n -webkit-line-clamp: ${lineClamp};\n -webkit-box-orient: vertical;\n`;\nconst PopoverContentCSS = css`\n ${textColor('text/tooltip')};\n ${pd([1, 1.5])};\n ${parseHeight('fit-content')};\n`;\nTypography.defaultProps = {\n center: false,\n className: '',\n color: 'default',\n format: [],\n fullWidth: true,\n hoverTooltip: false,\n mapping: 'span',\n tooltipDirection: 'bottom',\n type: 'p1'\n};\n\n/** type of text
\r\n * h1: Title
\r\n * h2: Header Popup
\r\n * h3: Header popup
\r\n * h4: Button, Tab, Title group
\r\n * h5: Label column, Title group
\r\n * h6: Label form
\r\n * p1: Body text
\r\n * p2: Body text
\r\n * p3: Notice, Tooltip
\r\n */\nexport const arrTypeTypography = ['t1', 't2', 't3', 't4', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p1', 'p2', 'p3', 'title1', 'title2', 'title3', 'title4', 'heading1', 'heading2', 'heading3', 'heading4', 'heading5', 'heading6', 'paragraph1', 'paragraph2', 'paragraph3'];\nTypography.propTypes = {\n /** If `true`, text-align is center. */\n center: PropTypes.bool,\n /** The content of the component. */\n children: PropTypes.node,\n /** Class for component. */\n className: PropTypes.string,\n /** Color of text ['primary', 'secondary', 'success', 'warning', 'danger', 'info', '#hex', rgb(#,#,#)]. */\n color: PropTypes.string,\n /** Option to make the text bold, italic, capitalize or underline. */\n format: PropTypes.arrayOf(PropTypes.oneOf(['capitalize', 'uppercase', 'lowercase', 'italic', 'line-through', 'underline', 'sentence', 'none'])),\n /** If `true`, the component will take up the full width of its container. */\n fullWidth: PropTypes.bool,\n /** If `true`, hover will show tooltip when text clamped. */\n hoverTooltip: PropTypes.bool,\n /** The line-clamp property truncates text at a specific number of lines. */\n lineClamp: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])]),\n /** The component used for the root node. Either a string to use a HTML element or a component. */\n mapping: PropTypes.string,\n /** Callback fired when the component is clicked. */\n onClick: PropTypes.func,\n /** Accepts all props which `mapping` tag support. */\n props: PropTypes.object,\n /** Tooltip direction. */\n tooltipDirection: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n /** Applies the theme typography styles. */\n type: PropTypes.oneOf([...arrTypeTypography, 'inherit'])\n};\nexport default Typography;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport { ButtonIcon, Typography } from \"./..\";\nimport OptionWrapper from \"../others/option-wrapper\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useContext, useImperativeHandle, useMemo, useRef } from 'react';\nimport { bgColor, boxBorder, cursorMove, displayFlex, flexRow, itemsCenter, justifyBetween, mgl, order, parseWidth, parseWidthHeight, positionRelative, truncate } from \"../../styles/general\";\nimport { useTheme } from \"../../theme\";\nimport { classNames, handleBreakpoints } from \"../../utils\";\nimport ModalContext from \"./context\";\nconst {\n boxShadows: {\n small: smallBoxShadow\n },\n typography: {\n heading3\n },\n spacing\n} = useTheme();\nexport const responsivePaddingCSS = handleBreakpoints({\n xs: 4,\n md: 6\n}, propValue => {\n return `padding: ${spacing([4, propValue])};`;\n});\nconst ModalHeader = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n children,\n className,\n id,\n showClose,\n style,\n title\n}, reference) => {\n if (!reference) reference = useRef(null);\n const modal = useContext(ModalContext);\n const ref = useRef(null);\n const _ModalHeaderCSS = ModalHeaderCSS(modal);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n const renderTitle = content => {\n if (!content) return null;\n return jsx(Typography, {\n css: [truncate, parseWidth('100%')],\n fullWidth: false,\n type: 'h3'\n }, content);\n };\n return useMemo(() => {\n return jsx(\"div\", {\n css: _ModalHeaderCSS,\n ref: ref,\n id: id,\n className: classNames('DGN-UI-Modal-Header', className),\n style: style,\n onMouseDown: modal.onMoveModal\n }, typeof children === 'string' ? renderTitle(children) : children, title || showClose ? jsx(\"div\", {\n css: [TitleContainerCSS, title && parseWidth('100%')],\n className: 'DGN-UI-Modal-Header-Title'\n }, renderTitle(title), showClose ? jsx(ButtonIcon, {\n css: mgl([children || title ? 4 : 'auto']),\n viewType: 'ghost',\n name: 'Close',\n onClick: modal.close\n }) : null) : null);\n }, [children, className, id, showClose, style, title]);\n}));\nconst ModalHeaderCSS = modal => css`\n ${displayFlex};\n ${flexRow};\n ${positionRelative};\n ${justifyBetween};\n ${itemsCenter};\n ${boxBorder};\n ${heading3};\n ${parseWidthHeight('100%', 56)};\n ${bgColor('fill/headerbar')}\n ${modal.onMoveModal && cursorMove};\n ${order(1)};\n border-radius: 4px 4px 0px 0px;\n box-shadow: ${smallBoxShadow};\n ${responsivePaddingCSS};\n`;\nconst TitleContainerCSS = css`\n ${displayFlex};\n ${flexRow};\n ${positionRelative};\n ${justifyBetween};\n ${itemsCenter};\n`;\nModalHeader.defaultProps = {\n className: '',\n showClose: true,\n style: {},\n title: ''\n};\nModalHeader.propTypes = {\n /** The content of the component. */\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n /** Class for component. */\n className: PropTypes.string,\n /** If `true`, button close is shown. */\n showClose: PropTypes.bool,\n /** Style inline of component. */\n style: PropTypes.object,\n /** The content of the component if not have prop `children`. */\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node])\n};\nexport { ModalHeader };\nexport default OptionWrapper(ModalHeader);","import { createContext } from 'react';\nconst TabContext = /*#__PURE__*/createContext({});\nexport default TabContext;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport OptionWrapper from \"../others/option-wrapper\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useImperativeHandle, useMemo, useRef } from 'react';\nimport { boxBorder, displayFlex, flexRow, itemsCenter, justifyEnd, order, parseWidth, positionRelative } from \"../../styles/general\";\nimport { classNames } from \"../../utils\";\nimport { responsivePaddingCSS } from \"./header\";\nconst ModalFooter = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n boxShadow,\n children,\n className,\n id,\n style\n}, reference) => {\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n const _ModalFooterCSS = ModalFooterCSS(boxShadow);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n return useMemo(() => {\n return jsx(\"div\", {\n css: _ModalFooterCSS,\n ref: ref,\n id: id,\n className: classNames('DGN-UI-Modal-Footer', className),\n style: style\n }, children);\n }, [boxShadow, children, className, id, style]);\n}));\nconst ModalFooterCSS = boxShadow => css`\n ${displayFlex};\n ${flexRow};\n ${positionRelative};\n ${itemsCenter};\n ${justifyEnd};\n ${boxBorder};\n ${parseWidth('100%')};\n ${order(3)};\n border-radius: 0px 0px 4px 4px;\n box-shadow: ${boxShadow};\n ${responsivePaddingCSS};\n`;\nModalFooter.defaultProps = {\n boxShadow: '0px -1px 1px rgba(0, 0, 0, 0.25)',\n className: '',\n style: {}\n};\nModalFooter.propTypes = {\n /** The box-shadow of component. */\n boxShadow: PropTypes.string,\n /** The content of the component. */\n children: PropTypes.node,\n /** Class for component. */\n className: PropTypes.string,\n /** Style inline of component. */\n style: PropTypes.object\n};\nexport { ModalFooter };\nexport default OptionWrapper(ModalFooter);","/** @jsxRuntime classic */\nimport { memo, useEffect, useMemo, useRef, forwardRef } from 'react';\nimport { string, number, bool, node, oneOfType, func } from 'prop-types';\nimport { css } from '@emotion/core';\nimport { renderHTML } from \"../../utils\";\nimport theme from \"../../theme/settings\";\nconst Paper = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n width,\n height,\n mapping,\n bg,\n className,\n square,\n scrollAble,\n refs,\n children,\n ...props\n}, ref) => {\n if (!ref) {\n ref = useRef(null);\n }\n const PaperRoot = css`\n width: ${isNaN(width) ? width : width + 'px'};\n height: ${isNaN(height) ? height : height + 'px'};\n border: 1px solid ${theme.colors.line.normal};\n border-radius: 4px;\n background-color: ${bg};\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25);\n &.square {\n border-radius: 0;\n }\n &.scroll-able {\n max-height: ${isNaN(height) ? height : height + 'px'};\n overflow-y: auto;\n &::-webkit-scrollbar {\n width: 8px;\n background-color: #fff !important;\n border-radius: 4px;\n }\n &::-webkit-scrollbar-thumb {\n border-radius: 4px;\n mix-blend-mode: normal;\n background-color: ${theme.colors.dark12} !important;\n background-clip: content-box;\n }\n }\n `;\n useEffect(() => {\n refs && refs(ref);\n }, []);\n useEffect(() => {\n if (square) {\n ref.current.classList.add('square');\n }\n return () => {\n if (square && ref.current) {\n ref.current.classList.remove('square');\n }\n };\n }, [square]);\n useEffect(() => {\n if (scrollAble && !ref.current.classList.contains('scroll-able')) {\n ref.current.classList.add('scroll-able');\n }\n return () => {\n if (scrollAble && ref.current) {\n ref.current.classList.remove('scroll-able');\n }\n };\n }, [scrollAble]);\n const PaperView = useMemo(() => renderHTML(children, mapping, {\n ref,\n css: PaperRoot,\n className: [className, scrollAble ? 'scroll-able' : ''].join(' ').trim(),\n ...props\n }), [children]);\n return PaperView;\n}));\nPaper.defaultProps = {\n width: 240,\n height: 240,\n mapping: 'div',\n bg: 'white',\n className: '',\n square: false,\n scrollAble: false\n};\nPaper.propTypes = {\n /** the width of Paper */\n width: oneOfType([string, number]),\n /** the height of Paper */\n height: oneOfType([string, number]),\n /** html tag to render */\n mapping: string,\n /** background color of Paper */\n bg: string,\n /** className of Paper component */\n className: string,\n /** rounded Paper if false */\n square: bool,\n /** Allow to roll if the height exceeds the limit */\n scrollAble: bool,\n /** the function to get ref of Paper */\n refs: func,\n /** content to display in Paper */\n children: node\n};\nexport default Paper;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport { Button, ButtonIcon, Icon, Typography } from \"../..\";\nimport { getGlobal } from \"../../../global\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, Fragment, memo, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { animations } from \"../../../styles/animation\";\nimport { hexToRGBA } from \"../../../styles/color-helper\";\nimport { bgColor, border, borderRadius, borderRadius50, boxBorder, breakWord, cursorPointer, displayBlock, displayFlex, flexCol, flexRow, inset, itemsCenter, justifyCenter, justifyEnd, mg, mgb, mgr, mgt, overflowAuto, overflowHidden, parseHeight, parseMaxWidthHeight, parseMinHeight, parseMinWidth, parseWidth, parseWidthHeight, pd, positionFixed, positionRelative, textColor, textEllipsis, textUnderline, truncate, z } from \"../../../styles/general\";\nimport { useTheme } from \"../../../theme\";\nimport { classNames, useDelayUnmount } from \"../../../utils\";\nconst {\n colors: {\n system: {\n white: systemWhite\n },\n semantic: {\n success: semanticSuccess,\n warning: semanticWarning,\n danger: semanticDanger,\n info: semanticInfo\n },\n fill: {\n 'scrollbar-tabbar': fillScrollbarTabbar,\n hover: fillHover\n }\n }\n} = useTheme();\nconst colorMap = new Map([['yesno', semanticInfo], ['success', semanticSuccess], ['warning', semanticWarning], ['danger', semanticDanger], ['info', semanticInfo]]);\nconst titleMap = new Map([['yesno', 'notify'], ['success', 'confirm'], ['warning', 'warning'], ['danger', 'error'], ['info', 'notify']]);\nconst iconMap = new Map([['yesno', 'Info'], ['success', 'ApprovalFilled'], ['warning', 'Warning'], ['danger', 'Failed'], ['info', 'Info']]);\nconst fadeInDown = animations.fadeInDown;\nconst fadeOutUp = animations.fadeOutUp;\nconst Popup = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n cancelProps,\n className,\n confirmProps,\n description,\n icon,\n noText,\n onCancel,\n onClose,\n onConfirm,\n open,\n pressESCToClose,\n style,\n subtitle,\n title,\n top,\n type,\n width,\n yesText,\n ...props\n}, reference) => {\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n const statusAction = useRef('');\n const [openState, setOpenState] = useState(open);\n const [custom, setCustom] = useState(null);\n const [showMoreDescription, setShowMoreDescription] = useState(false);\n const [descriptionLines, setDescriptionLines] = useState(0);\n const showPopup = useDelayUnmount(openState, 200);\n const _PopupRootCSS = PopupRootCSS(width, top, type, description, subtitle, showMoreDescription, descriptionLines);\n const pressESCHandler = event => {\n if (event.key === 'Escape') {\n onClosePopup('isClose');\n }\n };\n const onShowPopup = (options, cb) => {\n if (options && typeof options === 'object' && Object.keys(options).length) {\n const newProps = {\n type: options.type !== undefined ? options.type : type,\n title: options.title !== undefined ? options.title : title,\n icon: options.icon !== undefined ? options.icon : icon,\n description: options.description !== undefined ? options.description : description,\n yesText: options.yesText !== undefined ? options.yesText : yesText,\n noText: options.noText !== undefined ? options.noText : noText,\n confirmProps: options.confirmProps !== undefined ? options.confirmProps : confirmProps,\n cancelProps: options.cancelProps !== undefined ? options.cancelProps : cancelProps,\n onCancel: cb ? () => cb(false) : options.onCancel !== undefined ? options.onCancel : onCancel,\n onConfirm: cb ? () => cb(true) : options.onConfirm !== undefined ? options.onConfirm : onConfirm\n };\n const popup = jsx(Fragment, null, PopupHeaderView(newProps.title, newProps.type), jsx(\"div\", {\n className: 'DGN-UI-Popup-Body'\n }, newProps.icon !== false ? jsx(\"div\", {\n className: 'DGN-UI-Popup-Body-Icon'\n }, jsx(Icon, {\n name: newProps.icon === true ? iconMap.get(newProps.type) : newProps.icon,\n width: 40,\n height: 40,\n color: colorMap.get(newProps.type)\n })) : null, jsx(\"div\", {\n className: 'DGN-UI-Popup-Body-Description'\n }, jsx(Typography, {\n type: 'p2'\n }, newProps.description))), PopupActionView(newProps.onConfirm, newProps.confirmProps, newProps.onCancel, newProps.cancelProps, newProps.type, newProps.yesText, newProps.noText));\n setCustom(popup);\n } else {\n setCustom(false);\n }\n setOpenState(true);\n };\n const onClosePopup = mode => {\n if (onClose) {\n setOpenState(false);\n statusAction.current = mode;\n } else {\n if (ref.current) {\n setOpenState(false);\n }\n }\n };\n const onRefChange = useCallback(node => {\n if (node) {\n setDescriptionLines(Math.round((node === null || node === void 0 ? void 0 : node.offsetHeight) / 18)); //18 is line-height of Typography p2\n setShowMoreDescription(false);\n }\n }, []);\n useEffect(() => {\n if (open) {\n setOpenState(open);\n setShowMoreDescription(true);\n } else if (openState) {\n onClosePopup('isClose');\n }\n }, [open]);\n useEffect(() => {\n if (openState) {\n if (pressESCToClose) {\n document.addEventListener('keydown', pressESCHandler);\n }\n } else {\n setCustom(null);\n if (onClose) onClose({\n action: statusAction.current\n });\n }\n return () => {\n document.removeEventListener('keydown', pressESCHandler);\n };\n }, [openState]);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n const _instance = {\n show: onShowPopup,\n close: onClosePopup,\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n currentRef.show = onShowPopup;\n currentRef.close = onClosePopup;\n return currentRef;\n });\n const PopupHeaderView = (title, type) => {\n return jsx(\"div\", {\n className: 'DGN-UI-Popup-Header'\n }, jsx(Typography, {\n className: 'DGN-UI-Popup-Header-Title',\n type: 'h3',\n color: 'inherit'\n }, title !== null && title !== void 0 ? title : getGlobal(titleMap.get(type))), jsx(ButtonIcon, {\n circular: true,\n viewType: 'text',\n color: type === 'yesno' ? 'info' : type,\n name: 'Close',\n onClick: () => onClosePopup('isClose')\n }));\n };\n const PopupBodyView = (icon, type, subtitle, description) => {\n return jsx(\"div\", {\n className: 'DGN-UI-Popup-Body'\n }, icon !== false ? jsx(\"div\", {\n className: 'DGN-UI-Popup-Body-Icon'\n }, jsx(Icon, {\n name: icon === true ? iconMap.get(type) : icon,\n width: 40,\n height: 40,\n color: colorMap.get(type)\n })) : null, jsx(\"div\", {\n className: 'DGN-UI-Popup-Body-Description'\n }, jsx(Typography, {\n type: 'p2'\n }, subtitle ? jsx(Typography, {\n className: 'DGN-UI-Popup-Body-Subtitle',\n fullWidth: true\n }, subtitle) : null, jsx(Typography, {\n ref: onRefChange,\n type: 'p2',\n className: 'DGN-UI-Popup-Body-Detail'\n }, description), subtitle && descriptionLines > 1 || descriptionLines > 3 ? jsx(\"span\", {\n className: 'DGN-More-Action',\n onClick: () => setShowMoreDescription(!showMoreDescription)\n }, getGlobal(showMoreDescription ? 'showLess' : 'showMore')) : null)));\n };\n const PopupActionView = (onConfirm, confirmProps, onCancel, cancelProps, type, yesText, noText) => {\n return onConfirm || onCancel || type === 'yesno' ? jsx(\"div\", {\n className: 'DGN-UI-Popup-Action'\n }, onConfirm || type === 'yesno' ? jsx(Button, {\n viewType: 'filled',\n label: yesText || getGlobal('ok').toUpperCase(),\n color: type === 'yesno' ? 'info' : type,\n onClick: () => {\n onClosePopup('isConfirm');\n onConfirm && onConfirm();\n },\n ...confirmProps\n }) : null, onCancel || type === 'yesno' ? jsx(Button, {\n viewType: 'outlined',\n label: noText || getGlobal('cancel').toUpperCase(),\n color: type === 'yesno' ? 'info' : type,\n onClick: () => {\n onClosePopup('isCancel');\n onCancel && onCancel();\n },\n ...cancelProps\n }) : null) : null;\n };\n return showPopup && /*#__PURE__*/createPortal(jsx(\"div\", {\n css: _PopupRootCSS,\n ref: ref,\n style: style,\n className: classNames('DGN-UI-Portal DGN-UI-Popup-Portal', className)\n }, jsx(\"div\", {\n className: classNames('DGN-UI-Popup', openState ? 'DGN-Show' : 'DGN-Hide'),\n ...props\n }, custom ? custom : jsx(Fragment, null, PopupHeaderView(title, type), PopupBodyView(icon, type, subtitle, description), PopupActionView(onConfirm, confirmProps, onCancel, cancelProps, type, yesText, noText)))), document.body);\n}));\nconst PopupRootCSS = (width, top, type, description, subtitle, showMoreDescription, descriptionLines) => css`\n ${displayFlex};\n ${flexRow};\n ${positionFixed};\n ${justifyCenter};\n ${breakWord};\n ${parseWidthHeight('100%')};\n ${inset(0)};\n ${bgColor('rgba(21, 26, 48, 0.5)')}\n ${z(2)};\n .DGN-UI-Popup {\n ${displayFlex};\n ${flexCol};\n ${boxBorder};\n ${borderRadius(4)};\n ${parseWidthHeight(width, 'fit-content')};\n ${parseMaxWidthHeight('80%')};\n ${bgColor(systemWhite)};\n margin: ${isNaN(top) ? top : top + 'px'} auto auto;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25);\n &.DGN-Show {\n animation: ${fadeInDown} 0.2s ease;\n }\n &.DGN-Hide {\n animation: ${fadeOutUp} 0.3s ease;\n animation-fill-mode: forwards;\n }\n .DGN-UI-Popup-Header {\n ${displayFlex};\n ${flexRow};\n ${itemsCenter};\n ${parseMinHeight(40)};\n ${pd([0, 2, 0, 4])};\n ${borderRadius('4px 4px 0px 0px')};\n .DGN-UI-Popup-Header-Title {\n ${displayFlex};\n ${flexRow};\n ${truncate};\n ${parseWidth('calc(100% - 24px)')};\n }\n color: ${colorMap.get(type)};\n ${bgColor(hexToRGBA(colorMap.get(type), 0.15))};\n }\n .DGN-UI-Popup-Body {\n ${displayFlex};\n ${flexRow};\n ${positionRelative};\n ${overflowAuto};\n ${pd([4])};\n flex: 1 1 auto;\n &::-webkit-scrollbar {\n ${borderRadius(4)};\n ${parseWidth(24)};\n background-color: ${systemWhite} !important;\n }\n &::-webkit-scrollbar-thumb {\n ${border(8, 'transparent')};\n ${borderRadius(24)};\n mix-blend-mode: normal;\n background-color: ${fillScrollbarTabbar} !important;\n background-clip: content-box;\n }\n &::-webkit-scrollbar-thumb:hover {\n ${border(8, 'transparent')};\n ${borderRadius(24)};\n mix-blend-mode: normal;\n background-color: ${fillHover} !important;\n background-clip: content-box;\n }\n .DGN-UI-Popup-Body-Icon {\n ${displayBlock};\n ${borderRadius50};\n ${parseWidth(40)};\n ${mgr([4])};\n }\n .DGN-UI-Popup-Body-Description {\n ${displayFlex};\n ${flexRow};\n ${positionRelative};\n ${itemsCenter};\n ${parseMinHeight(40)};\n ${parseHeight('max-content')};\n .DGN-UI-Popup-Body-Subtitle {\n ${mgb([(description === null || description === void 0 ? void 0 : description.length) > 0 ? 2 : 0])};\n }\n .DGN-UI-Popup-Body-Detail {\n ${overflowHidden};\n ${textEllipsis};\n display: -webkit-box;\n -webkit-line-clamp: ${showMoreDescription ? 'none' : subtitle && descriptionLines > 1 ? 1 : descriptionLines > 3 ? 3 : 'none'};\n -webkit-box-orient: vertical;\n }\n .DGN-More-Action {\n ${displayBlock};\n ${cursorPointer};\n ${parseWidth('fit-content')};\n ${mgt([4])};\n ${mgb([type === 'yesno' ? 0 : 2])};\n ${textUnderline};\n ${textColor('semantic.info')};\n }\n }\n }\n .DGN-UI-Popup-Action {\n ${displayFlex};\n ${flexRow};\n ${justifyEnd};\n ${pd([2, 4, 4, 4])};\n .DGN-UI-Button {\n ${parseMinWidth(80)};\n ${mg(0)};\n &.filled {\n ${mgr([2])};\n }\n }\n }\n }\n`;\nPopup.defaultProps = {\n className: '',\n description: '',\n icon: true,\n open: false,\n pressESCToClose: false,\n style: {},\n top: 56,\n type: 'info',\n width: 480\n};\nPopup.propTypes = {\n /** If `true`, the component is shown. */\n open: PropTypes.bool,\n /** [Props](https://core.diginet.com.vn/ui/?path=/story/button) applied to the cancel `Button`. */\n cancelProps: PropTypes.object,\n /** Class for component. */\n className: PropTypes.string,\n /** [Props](https://core.diginet.com.vn/ui/?path=/story/button) applied to the confirm `Button`. */\n confirmProps: PropTypes.object,\n /** Details content of the component. */\n description: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\n /** [Icon](https://core.diginet.com.vn/ui/?path=/story/icon-basic) display before content. */\n icon: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n /** Label of cancel button. */\n noText: PropTypes.string,\n /** Callback fired when click on cancel button. */\n onCancel: PropTypes.func,\n /** Callback fired when click on confirm button. */\n onConfirm: PropTypes.func,\n /** If `true`, hitting escape will close component. */\n pressESCToClose: PropTypes.bool,\n /** Style inline of component. */\n style: PropTypes.object,\n /** Main content of the component. */\n subtitle: PropTypes.node,\n /** Title of the component. */\n title: PropTypes.node,\n /** Top position of the component. */\n top: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /** Type of the component. */\n type: PropTypes.oneOf(['info', 'success', 'warning', 'danger', 'yesno']),\n /** Width of the component. */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /** Label of confirm button. */\n yesText: PropTypes.string\n /**\r\n * ref methods\r\n *\r\n * how to get component element? ref.current\r\n *\r\n * how to call method? ref.current.instance.{method}\r\n *\r\n * * show(options, callback): Show popup\r\n * * @param {options} - object\r\n * * {type, title, icon, yesNo, description, confirmProps, cancelProps, onCancel, onConfirm}\r\n * * @param {callback} - func\r\n * * Callback fired after click on button (callback(true) with confirm Button and callback(false) with cancel Button). Alternate both onCancel, onConfirm methods of options\r\n * * close(): Close popup\r\n */\n};\n\nexport default Popup;","import locale from \"../locale\";\nconst globalObject = {\n language: 'vi',\n vi: {\n agree: 'Đồng ý',\n cancel: 'Hủy',\n close: 'Đóng',\n confirm: 'Xác nhận',\n error: 'Lỗi',\n unknownError: 'Lỗi chưa xác định',\n no: 'Không',\n noDataText: 'Không có dữ liệu',\n notify: 'Thông báo',\n ok: 'Đồng ý',\n showLess: 'Rút gọn',\n showMore: 'Xem thêm',\n yes: 'Có',\n warning: 'Cảnh Báo',\n // attachment\n dropFileHere: 'Kéo và thả tập tin đính kèm vào đây',\n deleteNotifyText: 'Bạn có chắc muốn xóa (những) đính kèm này?',\n attachText: 'Đính kèm',\n noFileText: 'Không có file đính kèm',\n byName: 'Theo tên',\n byType: 'Theo loại',\n bySize: 'Theo kích thước',\n byDate: 'Theo ngày',\n byOwner: 'Theo người tạo',\n errorDefault: {\n maxFile: ' vượt quá số lượng cho phép!',\n maxSize: ' quá dung lượng cho phép!',\n fileType: ' không đúng định dạng!',\n existingFile: ' đã được đính kèm!'\n },\n // Paging\n lineNumber: 'Số dòng',\n total: 'Tổng',\n // Transfer\n choices: 'lựa chọn',\n chosen: 'được chọn',\n selected: 'Đã chọn',\n // Date Picker\n helperInvalid: 'Sai định dạng',\n helperValid: 'Phù hợp',\n label: 'Thời gian',\n weekdaysLong: ['Hai', 'Ba', 'Tư', 'Năm', 'Sáu', 'Bảy', 'CN'],\n weekdaysShort: ['H', 'B', 'T', 'N', 'S', 'B', 'C'],\n // Time Picker\n months: {\n full: ['tháng 01', 'tháng 02', 'tháng 03', 'tháng 04', 'tháng 05', 'tháng 06', 'tháng 07', 'tháng 08', 'tháng 09', 'tháng 10', 'tháng 11', 'tháng 12'],\n notFull: ['thg 01', 'thg 02', 'thg 03', 'thg 04', 'thg 05', 'thg 06', 'thg 07', 'thg 08', 'thg 09', 'thg 10', 'thg 11', 'thg 12']\n },\n days: {\n full: ['chủ nhật', 'thứ hai', 'thứ ba', 'thứ tư', 'thứ năm', 'thứ sáu', 'thứ bảy'],\n notFull: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7']\n },\n night: 'đêm',\n day: 'ngày',\n month: 'tháng',\n year: 'năm',\n // Localize\n selectAll: 'Chọn tất cả',\n thisFieldIsRequired: 'Trường này bắt buộc nhập',\n validate: {\n isEmail: 'Email không hợp lệ',\n isNotEmptyString: 'Phải chứa ít nhất một ký tự',\n isNotEmptyObject: 'Phải chứa ít nhất một thuộc tính',\n isNotEmptyArray: 'Phải chứa ít nhất một phần tử',\n invalidInput: 'Giá trị đầu vào chưa đúng',\n max: 'Vượt quá giá trị tối đa cho phép',\n min: 'Chưa đạt giá trị tối thiểu cho phép',\n required: 'Trường này bắt buộc nhập'\n },\n inputPlaceholder: 'Nhập',\n dropdownPlaceholder: 'Chọn'\n },\n en: {\n agree: 'Agree',\n cancel: 'Cancel',\n close: 'Close',\n confirm: 'Confirm',\n error: 'Error',\n unknownError: 'Unknown Error',\n no: 'No',\n noDataText: 'No data',\n notify: 'Notify',\n ok: 'OK',\n showLess: 'Show less',\n showMore: 'Show more',\n yes: 'Yes',\n warning: 'Warning',\n // attachment\n dropFileHere: 'Drop files here',\n deleteNotifyText: 'Are you sure you want to delete this attachment(s)?',\n attachText: 'Attachment',\n noFileText: 'No attachments',\n byName: 'By name',\n byType: 'By type',\n bySize: 'By size',\n byDate: 'By date',\n byOwner: 'By owner',\n errorDefault: {\n maxFile: ' exceeded the allowed number!',\n maxSize: ' is/are too large to allow!',\n fileType: ' is/are not in the correct format!',\n existingFile: ' have been attached!'\n },\n // Paging\n lineNumber: 'Items per page',\n total: 'Total',\n // Transfer\n choices: 'choices',\n chosen: 'chosen',\n selected: 'selected',\n // Date Picker\n helperInvalid: 'Invalid',\n helperValid: 'Valid',\n label: 'Time',\n weekdaysLong: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],\n weekdaysShort: ['M', 'T', 'W', 'T', 'F', 'S', 'S'],\n // Time Picker\n months: {\n full: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n notFull: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n },\n days: {\n full: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n notFull: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n },\n night: 'night',\n day: 'day',\n month: 'month',\n year: 'year',\n // Localize\n selectAll: 'Select all',\n thisFieldIsRequired: 'This field is required',\n validate: {\n isEmail: 'Email invalid',\n isNotEmptyString: 'Must not be empty',\n isNotEmptyObject: 'Must contain at least one attribute',\n isNotEmptyArray: 'Must contain at least one element',\n invalidInput: 'Input value is not correct',\n max: 'Exceeds the maximum value allowed',\n min: 'The minimum allowed value has not been reached',\n required: 'This field is required'\n },\n inputPlaceholder: 'Type something',\n dropdownPlaceholder: 'Select'\n },\n //Global variable\n delayOnInput: 500,\n maxSizeUpload: Infinity,\n //Components\n components: {\n attachment: {\n defaultProps: {\n allowSort: true,\n className: '',\n data: [],\n disabled: false,\n maxFile: Infinity,\n multiple: true,\n style: {},\n viewType: 'detail'\n }\n }\n }\n};\nexport const getGlobal = (key, language = locale.get()) => {\n var _globalObject$languag;\n if (Array.isArray(key)) {\n let result = key[0] === 'components' ? globalObject : globalObject[language];\n for (let i = 0; i < key.length; i++) {\n if (!result[key[i]]) {\n return null;\n }\n result = result[key[i]];\n }\n return result;\n }\n return globalObject[key] || ((_globalObject$languag = globalObject[language]) === null || _globalObject$languag === void 0 ? void 0 : _globalObject$languag[key]);\n};\nexport const setGlobal = global => {\n if (global && typeof global === 'object') {\n const themeKeys = Object.keys(global);\n themeKeys.forEach(key => {\n overrideGlobal(global, globalObject, key);\n });\n }\n};\nconst overrideGlobal = (newGlobal, ingredient, key) => {\n const newGlobalValue = newGlobal[key];\n const rootValue = ingredient[key];\n if (typeof newGlobalValue === 'object' && typeof rootValue === 'object') {\n const newGlobalKeys = Object.keys(newGlobalValue);\n newGlobalKeys.forEach(newKey => {\n if (newGlobalValue[newKey] && rootValue[newKey]) {\n overrideGlobal(newGlobalValue, rootValue, newKey);\n }\n });\n } else {\n globalObject[key] = newGlobalValue;\n }\n};\nexport default globalObject;","/* eslint-disable no-unused-vars */\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx, keyframes } from '@emotion/core';\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useImperativeHandle, useMemo, useRef } from 'react';\nimport { displayInlineBlock, parseWidthHeight, userSelectNone } from \"../../styles/general\";\nimport { useColor as colors, useTheme } from \"../../theme\";\nimport { classNames } from \"../../utils\";\nconst {\n colors: {\n semantic: {\n info: semanticInfo\n },\n line: {\n category: lineCategory\n }\n },\n typography: {\n heading1,\n heading2,\n paragraph1,\n paragraph2,\n paragraph3\n }\n} = useTheme();\nconst validatePercent = percent => {\n let per = +percent.toString().replace('%', '');\n return Math.max(Math.min(per, 100), 0);\n};\nconst getDimensionOld = size => {\n let width, labelStyle, rect, strokeWidth;\n switch (size) {\n case 'xl':\n case 'extraLarge':\n labelStyle = heading1;\n width = 240;\n rect = 120;\n strokeWidth = 16;\n break;\n case 'lg':\n case 'large':\n labelStyle = heading2;\n width = 160;\n rect = 80;\n strokeWidth = 12;\n break;\n case 'md':\n case 'medium':\n labelStyle = paragraph1;\n width = 120;\n rect = 60;\n strokeWidth = 8;\n break;\n case 'sm':\n case 'small':\n labelStyle = paragraph2;\n width = 80;\n rect = 40;\n strokeWidth = 6;\n break;\n case 'xs':\n case 'extraSmall':\n labelStyle = paragraph3;\n width = 40;\n rect = 20;\n strokeWidth = 4;\n break;\n default:\n return null;\n }\n return {\n labelStyle,\n rect,\n strokeWidth,\n width\n };\n};\nconst designTemplate = [{\n width: 16,\n labelStyle: paragraph3,\n rect: 8,\n strokeWidth: 2\n}, {\n width: 24,\n labelStyle: paragraph3,\n rect: 12,\n strokeWidth: 2\n}, {\n width: 40,\n labelStyle: paragraph3,\n rect: 20,\n strokeWidth: 4\n}, {\n width: 80,\n labelStyle: paragraph2,\n rect: 40,\n strokeWidth: 6\n}, {\n width: 120,\n labelStyle: paragraph1,\n rect: 60,\n strokeWidth: 8\n}, {\n width: 160,\n labelStyle: heading2,\n rect: 80,\n strokeWidth: 12\n}, {\n width: 240,\n labelStyle: heading1,\n rect: 120,\n strokeWidth: 16\n}];\nconst getDimension = size => {\n const sizeObj = {\n width: Number(size),\n rect: size / 2\n };\n if (size <= 16) {\n return {\n ...designTemplate[0],\n ...sizeObj\n };\n } else if (size >= 240) {\n return {\n ...designTemplate[designTemplate.length - 1],\n ...sizeObj\n };\n } else {\n const templateObj = designTemplate.reduce((acc, obj) =>\n // Math.abs(size - obj.width) < Math.abs(size - acc.width) ? obj : acc\n size > obj.width ? obj : acc);\n return {\n ...templateObj,\n ...sizeObj\n };\n }\n};\nconst directionAngleMap = new Map([['top', -90], ['bottom', 90], ['right', 0], ['left', -180]]);\nconst CircularProgress = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n background,\n circleRef,\n className,\n color: colorProp,\n determinate,\n direction,\n duration,\n id,\n percent,\n percentColor: percentColorProp,\n showValue,\n size,\n strokeWidth,\n style,\n width\n}, reference) => {\n const ref = useRef(null);\n if (!circleRef) circleRef = useRef(null);\n const color = colors[colorProp] || colorProp;\n const percentColor = colors[percentColorProp] || percentColorProp;\n const directionAngle = directionAngleMap.get(direction);\n const dimension = getDimensionOld(size) || getDimension(size);\n const containerW = width ? Math.max(determinate ? 24 : 16, width) : dimension.width;\n const circleStrokeW = strokeWidth ? Math.max(2, strokeWidth) : dimension.strokeWidth;\n const radius = Math.max(0, (containerW - circleStrokeW) / 2);\n const radiusX10 = radius * 10;\n const circumference = radius * 2 * Math.PI;\n const _ContainerCSS = ContainerCSS(containerW, directionAngle);\n const _CircleBackgroundCSS = CircleBackgroundCSS(background, !determinate);\n const _CircleMainCSS = CircleMainCSS(color);\n const _CircleMainIndeterminateCSS = CircleMainIndeterminateCSS(radiusX10);\n const _CircleMainDeterminateCSS = CircleMainDeterminateCSS(circumference, percent, duration);\n const _TextCSS = TextCSS(percentColor, color, dimension, directionAngle);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n const CircleBackgroundView = jsx(\"circle\", {\n css: _CircleBackgroundCSS,\n cx: containerW / 2,\n cy: containerW / 2,\n r: radius,\n strokeWidth: circleStrokeW\n });\n const CircleMainView = jsx(\"circle\", {\n css: [_CircleMainCSS, determinate ? _CircleMainDeterminateCSS : _CircleMainIndeterminateCSS],\n cx: containerW / 2,\n cy: containerW / 2,\n r: radius,\n strokeWidth: circleStrokeW,\n ref: circleRef\n });\n const PercentTextView = showValue && determinate && containerW >= 40 ? jsx(\"text\", {\n css: _TextCSS,\n dominantBaseline: 'middle',\n x: containerW / 2,\n y: containerW / 2 + containerW / 80\n }, validatePercent(percent), \"%\") : null;\n return useMemo(() => {\n return jsx(\"span\", {\n ref: ref,\n css: [_ContainerCSS, !determinate && AnimationRotateCSS],\n id: id,\n style: style,\n className: classNames('DGN-UI-Circular-Progress', className)\n }, jsx(\"svg\", {\n width: '100%',\n height: '100%'\n }, CircleBackgroundView, CircleMainView, PercentTextView));\n }, [background, className, colorProp, determinate, direction, duration, id, percent, percentColorProp, showValue, size, strokeWidth, style, width]);\n}));\nconst keyframeRotate = keyframes`\n\t100%{ transform: rotate(360deg);}\n`;\nconst keyframeDash = r => keyframes`\n\t0%{\n\t\tstroke-dasharray: 1, ${r};\n\t\tstroke-dashoffset: 0;\n\t}\n\t40%{\n\t\tstroke-dasharray: ${r * 89 / 200}, ${r};\n\t\tstroke-dashoffset: -${r * 35 / 200};\n\t}\n\t100%{\n\t\tstroke-dasharray: ${r * 89 / 200}, ${r};\n\t\tstroke-dashoffset: -${r * 124 / 200};\n\t}\n`;\nconst ContainerCSS = (containerW, directionAngle) => css`\n ${displayInlineBlock};\n ${parseWidthHeight(containerW)};\n transform: rotate(${directionAngle}deg);\n transform-origin: center;\n`;\nconst AnimationRotateCSS = css`\n animation: ${keyframeRotate} 2s linear infinite;\n`;\nconst CircleBackgroundCSS = (background, isIndeterminate) => css`\n fill: transparent;\n stroke: ${background};\n ${isIndeterminate && 'stroke-linecap: round'};\n`;\nconst CircleMainCSS = color => css`\n fill: transparent;\n stroke: ${color};\n stroke-linecap: round;\n`;\nconst CircleMainDeterminateCSS = (circumference, percent, duration) => css`\n stroke-dasharray: ${`${circumference} ${circumference}`};\n stroke-dashoffset: ${circumference - validatePercent(percent) / 100 * circumference};\n transition: stroke-dashoffset ${duration}s cubic-bezier(0.77, 0, 0.175, 1); /* easeInOutQuart */\n`;\nconst CircleMainIndeterminateCSS = radiusX10 => css`\n stroke-dasharray: 10, ${radiusX10};\n stroke-dashoffset: 0;\n animation: ${keyframeDash(radiusX10)} 2s ease-in-out infinite;\n`;\nconst TextCSS = (percentColor, color, dimension, directionAngle) => css`\n ${userSelectNone};\n fill: ${percentColor ? percentColor : color};\n ${dimension.labelStyle}\n text-anchor: middle;\n transform: rotate(${-directionAngle}deg);\n transform-origin: center;\n`;\nCircularProgress.defaultProps = {\n background: lineCategory,\n className: '',\n color: semanticInfo,\n determinate: false,\n direction: 'top',\n duration: 1,\n percent: 25,\n percentColor: semanticInfo,\n showValue: true,\n size: 'medium',\n style: {}\n};\nCircularProgress.propTypes = {\n /** Color for background stroke of the circular progress. */\n background: PropTypes.string,\n /** Class for component. */\n className: PropTypes.string,\n /** Color for main stroke of the circular progress. */\n color: PropTypes.string,\n /** Determinate or Indeterminate. */\n determinate: PropTypes.bool,\n /** Direction of the start point. */\n direction: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),\n /** Time to processing. */\n duration: PropTypes.number,\n /** The percent of the determinate progress. */\n percent: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** Color percent-label of the progress. */\n percentColor: PropTypes.string,\n /** If `true, show the percent-label. */\n showValue: PropTypes.bool,\n /** The size of the component. */\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.oneOf(['xl', 'lg', 'md', 'sm', 'xs', 'extraLarge', 'large', 'medium', 'small', 'extraSmall'])]),\n /** Style inline of component. */\n style: PropTypes.object\n};\nexport default CircularProgress;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx, css, keyframes } from '@emotion/core';\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useEffect, useMemo, useRef } from 'react';\nimport theme from \"../../theme/settings\";\nimport { Typography } from \"../\";\nconst cutPX = x => {\n return isNaN(x) ? x : x + 'px';\n};\nconst validatePercent = p => {\n let per = +p.toString().replace('%', '');\n return Math.max(Math.min(per, 100), 0);\n};\nconst Indeterminate = /*#__PURE__*/forwardRef(({\n background,\n className,\n color,\n height,\n width,\n ...props\n}, ref) => {\n if (!ref) ref = useRef(null);\n const firstBarRef = useRef(null);\n const secondBarRef = useRef(null);\n const unique = {\n container: 'DGN-UI-LinearProgress-Determinate',\n firstBar: 'DGN-UI-LinearProgress-Determinate-BarFirst',\n secondBar: 'DGN-UI-LinearProgress-Determinate-BarSecond'\n };\n const animation = {\n keyframeStart: keyframes`\n from {\n max-height: 0;\n opacity: 0;\n }\n to {\n max-height: 20px;\n opacity: 1;\n }\n `,\n keyframeMove: keyframes`\n 0% {\n left: -100%;\n }\n 50% {\n left: 100%;\n }\n 100% {\n left: 100%;\n }\n `\n };\n const containerCSS = css`\n animation: ${animation.keyframeStart} 0.3s ease-in;\n background-color: ${background};\n border-radius: 4px;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.1);\n height: ${cutPX(height)};\n overflow: hidden;\n position: relative;\n width: ${cutPX(width)};\n .${unique.firstBar} {\n animation: ${animation.keyframeMove} 3s infinite;\n background-color: ${theme.colors[color] || color};\n border-radius: 4px;\n bottom: 0;\n left: 0;\n position: absolute;\n top: 0;\n transition: transform 0.3s ease-in-out;\n width: 100%;\n }\n .${unique.secondBar} {\n animation-delay: 1.5s;\n animation: ${animation.keyframeMove} 3s infinite;\n background-color: ${theme.colors[color] || color};\n border-radius: 4px;\n bottom: 0;\n left: -100%;\n position: absolute;\n top: 0;\n transition: transform 0.3s ease-in-out;\n width: 100%;\n }\n `;\n const FirstBar = useMemo(() => jsx(\"div\", {\n className: unique.firstBar,\n ref: firstBarRef\n }), [color]);\n const SecondBar = useMemo(() => jsx(\"div\", {\n className: unique.secondBar,\n ref: secondBarRef\n }), [color]);\n return jsx(\"div\", {\n ...props,\n className: [unique.container, className].join(' ').trimEnd(),\n css: containerCSS,\n ref: ref\n }, FirstBar, SecondBar);\n});\nIndeterminate.defaultProps = {\n background: theme.colors.brand12,\n color: theme.colors.semantic.info,\n height: 8,\n width: '100%'\n};\nIndeterminate.propTypes = {\n background: PropTypes.string,\n className: PropTypes.string,\n color: PropTypes.string,\n height: PropTypes.number,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nexport const IndeterminateLinearProgress = /*#__PURE__*/memo(Indeterminate);\nconst Determinate = /*#__PURE__*/forwardRef(({\n background,\n color,\n className,\n duration,\n height,\n percent,\n percentColor,\n showValue,\n valuePosition,\n width,\n ...props\n}, ref) => {\n if (!ref) ref = useRef(null);\n const barRef = useRef(null);\n const valueRef = useRef(null);\n const unique = {\n container: 'DGN-UI-LinearProgress-Determinate',\n bar: 'DGN-UI-LinearProgress-Determinate-Bar',\n value: 'DGN-UI-LinearProgress-Determinate-Value'\n };\n const keyframeStart = keyframes`\n from {\n max-height: 0;\n opacity: 0;\n }\n to {\n max-height: 20px;\n opacity: 1;\n }\n `;\n const containerCSS = css`\n animation: ${keyframeStart} 0.3s ease-in;\n background-color: ${background};\n border-radius: 4px;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.1);\n height: ${cutPX(height)};\n position: relative;\n width: ${cutPX(width)};\n .${unique.bar} {\n background-color: ${theme.colors[color] || color};\n border-radius: 4px;\n bottom: 0;\n left: 0;\n position: absolute;\n top: 0;\n transition: width ${duration}s cubic-bezier(0.77, 0, 0.175, 1); /* easeInOutQuart */\n }\n .${unique.value} {\n color: ${percentColor ? percentColor : theme.colors[color] || color};\n margin: 4px 0;\n min-width: max-content;\n position: absolute;\n transform: translateX(-50%);\n transition: left ${duration}s cubic-bezier(0.77, 0, 0.175, 1); /* easeInOutQuart */\n user-select: none;\n ${valuePosition === 'bottom' ? 'top: 100%;' : 'bottom: 100%;'};\n }\n `;\n const updateValuePosition = value => {\n valueRef.current.firstChild.innerText = value + '%';\n const valHalfWidth = valueRef.current.getBoundingClientRect().width / 2;\n if (value > 90) {\n valueRef.current.style.left = `calc(${value + '%'} - ${valHalfWidth}px)`;\n } else if (value < 10) {\n valueRef.current.style.left = `calc(${value + '%'} + ${valHalfWidth}px)`;\n } else {\n valueRef.current.style.left = value + '%';\n }\n };\n const Bar = useMemo(() => jsx(\"div\", {\n className: unique.bar,\n ref: barRef\n }), [color, duration, percent]);\n const Value = useMemo(() => showValue && jsx(\"span\", {\n className: unique.value,\n ref: valueRef\n }, jsx(Typography, {\n type: 'p2',\n color: 'inherit',\n style: {\n textShadow: '0px 2px 4px rgba(0,0,0,0.3)'\n }\n })), [duration, percentColor, showValue, valuePosition]);\n useEffect(() => {\n const value = validatePercent(percent);\n barRef.current.style.width = value + '%';\n if (showValue) {\n updateValuePosition(value);\n }\n }, [percent, showValue]);\n return jsx(\"div\", {\n ...props,\n className: [unique.container, className].join(' ').trim(),\n css: containerCSS,\n ref: ref\n }, Bar, Value);\n});\nDeterminate.defaultProps = {\n background: theme.colors.brand12,\n color: theme.colors.semantic.info,\n duration: 0.1,\n height: 8,\n percent: 69,\n showValue: false,\n valuePosition: 'bottom',\n width: '100%'\n};\nDeterminate.propTypes = {\n background: PropTypes.string,\n className: PropTypes.string,\n color: PropTypes.string,\n duration: PropTypes.number,\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n percent: PropTypes.number,\n percentColor: PropTypes.string,\n showValue: PropTypes.bool,\n valuePosition: PropTypes.oneOf(['bottom', 'top']),\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nexport const DeterminateLinearProgress = /*#__PURE__*/memo(Determinate);\nconst LinearProgress = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n background,\n className,\n color,\n determinate,\n duration,\n height,\n percent,\n percentColor,\n showValue,\n valuePosition,\n width,\n ...props\n}, ref) => {\n if (!ref) ref = useRef(null);\n return determinate ? jsx(DeterminateLinearProgress, {\n background: background,\n className: className,\n color: color,\n duration: duration,\n height: height,\n percent: percent,\n percentColor: percentColor,\n showValue: showValue,\n valuePosition: valuePosition,\n width: width,\n ...props,\n ref: ref\n }) : jsx(IndeterminateLinearProgress, {\n background: background,\n className: className,\n color: color,\n height: height,\n width: width,\n ...props,\n ref: ref\n });\n}));\nLinearProgress.defaultProps = {\n background: theme.colors.brand12,\n color: theme.colors.semantic.info,\n determinate: false,\n duration: 0.1,\n height: 8,\n percent: 69,\n showValue: false,\n width: '100%'\n};\nLinearProgress.propTypes = {\n /** Color for background stroke of the linear progress. */\n background: PropTypes.string,\n /** className use in linear progress. */\n className: PropTypes.string,\n /** color of liner progress. */\n color: PropTypes.string,\n /** Determinate or Indeterminate. */\n determinate: PropTypes.bool,\n /** Time to processing. */\n duration: PropTypes.number,\n /** Dynamic height dimensions of the container. */\n height: PropTypes.number,\n /** The percent of the determinate progress. */\n percent: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** Color percent-label of the progress. */\n percentColor: PropTypes.string,\n /** It's boolean to show the percent-label. */\n showValue: PropTypes.bool,\n /** Dynamic position of the progress value. */\n valuePosition: PropTypes.oneOf(['bottom', 'top']),\n /** Dynamic width dimensions of the container. */\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nexport default LinearProgress;","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport OptionWrapper from \"../others/option-wrapper\";\nimport PropTypes from 'prop-types';\nimport React, { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { bgColor, borderBottom, borderRadius4px, displayFlex, displayNone, flexCol, inset, justifyBetween, overflowAuto, parseMaxWidthHeight, parseMinWidthHeight, parseWidthHeight, pointerEventsInitial, pointerEventsNone, positionAbsolute, positionFixed, positionRelative } from \"../../styles/general\";\nimport { makeStyles, useTheme } from \"../../theme\";\nimport { classNames, isMobile, refType as ref } from \"../../utils\";\nconst {\n typography: {\n paragraph1\n },\n spacing,\n zIndex: zIndexCORE\n} = useTheme();\nconst useStyles = makeStyles({\n noScroll: {\n key: props => `DGN-Popover-${props}`,\n overflow: 'hidden'\n }\n});\nconst eventMap = new Map([['click', ['click']], ['hover', ['mouseenter', 'mouseleave']], ['focus', ['focus', 'blur']]]);\nconst getArrowPosition = (anchorOrigin, transformOrigin, translate) => {\n if (anchorOrigin.horizontal === 'right' && transformOrigin.horizontal === 'left') {\n translate.left = -6;\n translate.transform = 'rotateZ(270deg)';\n return 'left';\n } else if (anchorOrigin.horizontal === 'left' && transformOrigin.horizontal === 'right') {\n translate.left = 6;\n translate.transform = 'rotateZ(90deg)';\n return 'right';\n } else if (transformOrigin.vertical === 'bottom') {\n translate.top = 6;\n translate.transform = 'rotateZ(180deg)';\n return 'bottom';\n } else {\n translate.top = -6;\n return 'top';\n }\n};\nconst calPosition = (position, originBounding) => {\n const {\n width,\n height\n } = originBounding;\n switch (position) {\n case 'bottom':\n case 'right':\n {\n return [height, width];\n }\n case 'center':\n {\n return [height / 2, width / 2];\n }\n default:\n return [0, 0];\n }\n};\nconst getDirectionPopover = direction => {\n switch (direction) {\n case 'center':\n return {\n anchorOrigin: {\n vertical: 'center',\n horizontal: 'center'\n },\n transformOrigin: {\n vertical: 'center',\n horizontal: 'center'\n }\n };\n case 'top':\n return {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n transformOrigin: {\n vertical: 'bottom',\n horizontal: 'center'\n }\n };\n case 'left':\n return {\n anchorOrigin: {\n vertical: 'center',\n horizontal: 'left'\n },\n transformOrigin: {\n vertical: 'center',\n horizontal: 'right'\n }\n };\n case 'right':\n return {\n anchorOrigin: {\n vertical: 'center',\n horizontal: 'right'\n },\n transformOrigin: {\n vertical: 'center',\n horizontal: 'left'\n }\n };\n default:\n return {\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'center'\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n };\n }\n};\nconst Popover = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n anchor,\n anchorOrigin,\n arrow,\n bgColor,\n children,\n className,\n clickOutsideToClose,\n direction,\n fullScreen,\n height,\n marginThreshold,\n onClose,\n onOpen,\n open,\n pressESCToClose,\n style,\n transformOrigin,\n trigger,\n width,\n zIndex\n}, reference) => {\n if (!reference) reference = useRef(null);\n if (isMobile.any() && trigger === 'hover') trigger = 'click';\n const ref = useRef(null);\n const arrowRef = useRef(null);\n // const overflow = useRef(null);\n const anchorRef = useRef(anchor);\n const [openState, setOpenState] = useState(open);\n const [element, setElement] = useState(null);\n const arrowSize = arrow ? 6 : 0;\n const _PortalPopoverCSS = PortalPopoverCSS(zIndex, fullScreen);\n const _PopoverContainerCSS = PopoverContainerCSS(bgColor, width, height);\n const _PopoverArrowCSS = PopoverArrowCSS(bgColor, arrowSize);\n if (direction) {\n const directionObject = getDirectionPopover(direction);\n anchorOrigin = directionObject.anchorOrigin;\n transformOrigin = directionObject.transformOrigin;\n }\n const onOpenPopover = () => {\n if (!openState) setOpenState(true);\n onOpen && onOpen();\n };\n const onClosePopover = () => {\n if (openState) {\n if (ref.current) ref.current.style.opacity = 0;\n onClose && onClose();\n setOpenState(false);\n }\n };\n const pressESCHandler = event => {\n if (event.key === 'Escape') {\n onClosePopover();\n }\n };\n const onClickOutside = event => {\n var _anchor2, _anchor3, _anchor3$current, _anchor4, _ref$current, _ref$current2, _ref$current2$parentN;\n if (!ref.current) {\n document.removeEventListener('click', onClickOutside);\n return;\n }\n const _anchor = ((_anchor2 = anchor) === null || _anchor2 === void 0 ? void 0 : _anchor2.element) || ((_anchor3 = anchor) === null || _anchor3 === void 0 ? void 0 : (_anchor3$current = _anchor3.current) === null || _anchor3$current === void 0 ? void 0 : _anchor3$current.element) || ((_anchor4 = anchor) === null || _anchor4 === void 0 ? void 0 : _anchor4.current) || anchor;\n if (clickOutsideToClose && !((_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.contains((event === null || event === void 0 ? void 0 : event.toElement) || (event === null || event === void 0 ? void 0 : event.target))) && (!fullScreen || (_ref$current2 = ref.current) !== null && _ref$current2 !== void 0 && (_ref$current2$parentN = _ref$current2.parentNode) !== null && _ref$current2$parentN !== void 0 && _ref$current2$parentN.contains(event === null || event === void 0 ? void 0 : event.target)) && !(_anchor !== null && _anchor !== void 0 && _anchor.contains((event === null || event === void 0 ? void 0 : event.toElement) || (event === null || event === void 0 ? void 0 : event.target))) && openState) {\n onClosePopover();\n }\n };\n const updatePositionPopover = (el = null, cb) => {\n var _window, _window2, _anchor6, _anchorRect, _anchorRect2, _anchor7, _anchorRect3, _anchorRect4, _anchorRect5, _anchorRect6, _anchorRect7, _anchorRect8, _anchorRect9, _anchorRect10, _anchorRect11, _anchorRect12, _newDirectionObject, _newDirectionObject$t, _transformOrigin, _newDirectionObject2, _newDirectionObject2$, _transformOrigin2;\n if (el instanceof Element) setElement(el);\n if (!ref.current) {\n window.removeEventListener('resize', updatePositionPopover);\n return;\n }\n let top = 0,\n left = 0,\n vertical = 0,\n verticalCenter = 0,\n horizontal = 0,\n horizontalCenter = 0,\n arrowPosition = {\n display: 'block'\n },\n translate = {\n left: 0,\n top: 0\n },\n anchorRect = null,\n aPosition = '',\n newDirectionObject = null;\n if (transformOrigin === 'center') {\n transformOrigin = {\n vertical: 'center',\n horizontal: 'center'\n };\n }\n if (element || anchor) {\n if (element) anchor = element;else if (anchor && !(anchor instanceof Element)) {\n var _anchor5, _anchor$current;\n anchor = ((_anchor5 = anchor) === null || _anchor5 === void 0 ? void 0 : _anchor5.element) || ((_anchor$current = anchor.current) === null || _anchor$current === void 0 ? void 0 : _anchor$current.element) || anchor.current;\n }\n if (!document.body.contains(anchor)) return;\n if (arrow && anchorOrigin.vertical !== anchorOrigin.horizontal && transformOrigin.vertical !== transformOrigin.horizontal) {\n aPosition = getArrowPosition(anchorOrigin, transformOrigin, translate);\n }\n anchorRect = anchor.getBoundingClientRect();\n vertical = anchorRect.y + calPosition(anchorOrigin.vertical, anchorRect)[0] - translate.top;\n verticalCenter = anchorRect.y + calPosition('center', anchorRect)[0];\n horizontal = anchorRect.x + calPosition(anchorOrigin.horizontal, anchorRect)[1] - translate.left;\n horizontalCenter = anchorRect.x + calPosition('center', anchorRect)[1];\n }\n\n // Calculate element positioning\n const containerWindow = {\n width: ((_window = window) === null || _window === void 0 ? void 0 : _window.innerWidth) || 0,\n height: ((_window2 = window) === null || _window2 === void 0 ? void 0 : _window2.innerHeight) || 0\n };\n const popoverHeight = ref.current.offsetHeight;\n const popoverWidth = ref.current.offsetWidth;\n switch (transformOrigin.vertical) {\n case 'center':\n top = vertical - popoverHeight / 2;\n break;\n case 'bottom':\n top = vertical - popoverHeight;\n break;\n default:\n top = vertical;\n break;\n }\n switch (transformOrigin.horizontal) {\n case 'center':\n left = horizontal - popoverWidth / 2;\n break;\n case 'right':\n left = horizontal - popoverWidth;\n break;\n default:\n left = horizontal;\n break;\n }\n\n // Variables for check if needs shifting\n const heightThreshold = containerWindow.height - marginThreshold;\n const widthThreshold = containerWindow.width - marginThreshold;\n const bottomOfAnchor = top + ((_anchor6 = anchor) === null || _anchor6 === void 0 ? void 0 : _anchor6.offsetHeight);\n const topPos = ((_anchorRect = anchorRect) === null || _anchorRect === void 0 ? void 0 : _anchorRect.bottom) + arrowSize;\n const verticalCenterPos = verticalCenter - popoverHeight / 2;\n const bottomPos = ((_anchorRect2 = anchorRect) === null || _anchorRect2 === void 0 ? void 0 : _anchorRect2.top) - (popoverHeight + arrowSize);\n const rightOfAnchor = left + ((_anchor7 = anchor) === null || _anchor7 === void 0 ? void 0 : _anchor7.offsetWidth);\n const leftPos = ((_anchorRect3 = anchorRect) === null || _anchorRect3 === void 0 ? void 0 : _anchorRect3.right) + arrowSize;\n const horizontalCenterPos = horizontalCenter - popoverWidth / 2;\n const rightPos = ((_anchorRect4 = anchorRect) === null || _anchorRect4 === void 0 ? void 0 : _anchorRect4.left) - (popoverWidth + arrowSize);\n\n // Check if the vertical axis needs shifting\n if (top < marginThreshold) {\n if (topPos > heightThreshold) {\n top = verticalCenterPos;\n newDirectionObject = getDirectionPopover('center');\n aPosition = '';\n } else {\n top = topPos;\n newDirectionObject = getDirectionPopover('bottom');\n aPosition = getArrowPosition(newDirectionObject.anchorOrigin, newDirectionObject.transformOrigin, translate);\n }\n } else if (top + popoverHeight > containerWindow.height) {\n if (bottomPos < bottomOfAnchor && bottomPos < marginThreshold) {\n top = verticalCenterPos;\n newDirectionObject = getDirectionPopover('center');\n aPosition = '';\n } else {\n top = bottomPos;\n newDirectionObject = getDirectionPopover('top');\n aPosition = getArrowPosition(newDirectionObject.anchorOrigin, newDirectionObject.transformOrigin, translate);\n }\n }\n\n // Check if the horizontal axis needs shifting\n if (left < marginThreshold) {\n if (leftPos > widthThreshold) {\n left = horizontalCenterPos;\n newDirectionObject = getDirectionPopover('center');\n aPosition = '';\n } else {\n left = leftPos;\n newDirectionObject = getDirectionPopover('right');\n aPosition = getArrowPosition(newDirectionObject.anchorOrigin, newDirectionObject.transformOrigin, translate);\n }\n } else if (left + popoverWidth > containerWindow.width) {\n if (rightPos < rightOfAnchor && rightPos < marginThreshold) {\n left = horizontalCenterPos;\n newDirectionObject = getDirectionPopover('center');\n aPosition = '';\n } else {\n left = rightPos;\n newDirectionObject = getDirectionPopover('left');\n aPosition = getArrowPosition(newDirectionObject.anchorOrigin, newDirectionObject.transformOrigin, translate);\n }\n }\n\n // Valid mean popover not at top-left, top-right, bottom-left, bottom-right\n const validVerticalArrow = left >= ((_anchorRect5 = anchorRect) === null || _anchorRect5 === void 0 ? void 0 : _anchorRect5.left) + ((_anchorRect6 = anchorRect) === null || _anchorRect6 === void 0 ? void 0 : _anchorRect6.width) / 2 - popoverWidth && left <= ((_anchorRect7 = anchorRect) === null || _anchorRect7 === void 0 ? void 0 : _anchorRect7.right) - ((_anchorRect8 = anchorRect) === null || _anchorRect8 === void 0 ? void 0 : _anchorRect8.width) / 2 + popoverWidth;\n const validHorizontalArrow = top >= ((_anchorRect9 = anchorRect) === null || _anchorRect9 === void 0 ? void 0 : _anchorRect9.top) + ((_anchorRect10 = anchorRect) === null || _anchorRect10 === void 0 ? void 0 : _anchorRect10.height) / 2 - popoverHeight && top <= ((_anchorRect11 = anchorRect) === null || _anchorRect11 === void 0 ? void 0 : _anchorRect11.bottom) - ((_anchorRect12 = anchorRect) === null || _anchorRect12 === void 0 ? void 0 : _anchorRect12.height) / 2;\n\n // Get arrow's position\n if (arrow && translate) {\n switch (aPosition) {\n case 'top':\n if (validVerticalArrow) {\n var _anchorRect13, _anchorRect14;\n arrowPosition.left = ((_anchorRect13 = anchorRect) === null || _anchorRect13 === void 0 ? void 0 : _anchorRect13.width) / 2 + ((_anchorRect14 = anchorRect) === null || _anchorRect14 === void 0 ? void 0 : _anchorRect14.left) - arrowSize + 'px';\n arrowPosition.top = Math.round(top) - arrowSize + 'px';\n }\n break;\n case 'bottom':\n if (validVerticalArrow) {\n var _anchorRect15, _anchorRect16;\n arrowPosition.left = ((_anchorRect15 = anchorRect) === null || _anchorRect15 === void 0 ? void 0 : _anchorRect15.width) / 2 + ((_anchorRect16 = anchorRect) === null || _anchorRect16 === void 0 ? void 0 : _anchorRect16.left) - arrowSize + 'px';\n arrowPosition.top = Math.round(top) + popoverHeight + 'px';\n }\n break;\n case 'left':\n if (validHorizontalArrow) {\n var _anchorRect17, _anchorRect18;\n arrowPosition.top = ((_anchorRect17 = anchorRect) === null || _anchorRect17 === void 0 ? void 0 : _anchorRect17.height) / 2 + ((_anchorRect18 = anchorRect) === null || _anchorRect18 === void 0 ? void 0 : _anchorRect18.top) - arrowSize / 2 + 'px';\n arrowPosition.left = Math.round(left) - 1.5 * arrowSize + 'px';\n }\n break;\n case 'right':\n if (validHorizontalArrow) {\n var _anchorRect19, _anchorRect20;\n arrowPosition.top = ((_anchorRect19 = anchorRect) === null || _anchorRect19 === void 0 ? void 0 : _anchorRect19.height) / 2 + ((_anchorRect20 = anchorRect) === null || _anchorRect20 === void 0 ? void 0 : _anchorRect20.top) - arrowSize / 2 + 'px';\n arrowPosition.left = Math.round(left) + popoverWidth - arrowSize / 2 + 'px';\n }\n break;\n default:\n break;\n }\n if (arrowRef.current) {\n Object.assign(arrowRef.current.style, arrowPosition, {\n transform: translate.transform,\n display: newDirectionObject === 'center' || !(arrowPosition !== null && arrowPosition !== void 0 && arrowPosition.top) ? 'none' : 'block'\n });\n }\n }\n if (top < marginThreshold) top = marginThreshold;\n if (left < marginThreshold) left = marginThreshold;\n const isVerticalOverFlow = left + popoverWidth > containerWindow.width;\n ref.current.style.maxHeight = `calc(100% - ${spacing(8) + top}px)`;\n ref.current.style.top = `${Math.round(top)}px`;\n if (isVerticalOverFlow) {\n ref.current.style.left = 0;\n ref.current.style.margin = 'auto';\n } else ref.current.style.left = `${Math.round(left)}px`;\n ref.current.style.transformOrigin = `${((_newDirectionObject = newDirectionObject) === null || _newDirectionObject === void 0 ? void 0 : (_newDirectionObject$t = _newDirectionObject.transformOrigin) === null || _newDirectionObject$t === void 0 ? void 0 : _newDirectionObject$t.horizontal) || ((_transformOrigin = transformOrigin) === null || _transformOrigin === void 0 ? void 0 : _transformOrigin.horizontal) || 'left'} ${((_newDirectionObject2 = newDirectionObject) === null || _newDirectionObject2 === void 0 ? void 0 : (_newDirectionObject2$ = _newDirectionObject2.transformOrigin) === null || _newDirectionObject2$ === void 0 ? void 0 : _newDirectionObject2$.vertical) || ((_transformOrigin2 = transformOrigin) === null || _transformOrigin2 === void 0 ? void 0 : _transformOrigin2.vertical) || 'top'}`;\n ref.current.style.opacity = 1;\n cb === null || cb === void 0 ? void 0 : cb();\n };\n const handleEventTrigger = e => {\n if (!openState) {\n onOpenPopover();\n } else {\n onClickOutside(e);\n }\n };\n useEffect(() => {\n return () => {\n if (pressESCToClose) {\n document.removeEventListener('keydown', pressESCHandler);\n }\n document.removeEventListener('click', onClickOutside);\n window.removeEventListener('resize', updatePositionPopover);\n };\n }, []);\n useEffect(() => {\n anchorRef.current = anchor;\n }, [anchor]);\n useEffect(() => {\n var _anchor8, _anchor9, _anchorRef$current, _anchorRef$current$pr;\n const anchorEl = ((_anchor8 = anchor) === null || _anchor8 === void 0 ? void 0 : _anchor8.element) || ((_anchor9 = anchor) === null || _anchor9 === void 0 ? void 0 : _anchor9.current) || anchor;\n if (anchorEl !== null && anchorEl !== void 0 && anchorEl.disabled || (_anchorRef$current = anchorRef.current) !== null && _anchorRef$current !== void 0 && (_anchorRef$current$pr = _anchorRef$current.props) !== null && _anchorRef$current$pr !== void 0 && _anchorRef$current$pr.disabled) return;\n const eventArr = eventMap.get(trigger) || [];\n if (anchorEl && open === undefined && (eventArr === null || eventArr === void 0 ? void 0 : eventArr.length) > 0) {\n eventArr.forEach(evt => anchorEl.addEventListener(evt, handleEventTrigger, false));\n return () => {\n eventArr.forEach(evt => anchorEl.removeEventListener(evt, handleEventTrigger, false));\n };\n }\n }, [anchor, trigger, openState]);\n useEffect(() => {\n if (open !== undefined) setOpenState(open);\n }, [open]);\n useEffect(() => {\n if (openState && ref.current) {\n // if (document.body.style.overflow !== 'hidden') {\n // overflow.current = document.body.style.overflow; // store overflow of before open\n // document.body.style.overflow = 'hidden';\n // }\n const timestamp = Date.now();\n const classes = useStyles(timestamp);\n const noScrollClass = classes.noScroll.split(' ');\n document.body.classList.add(...noScrollClass);\n // Position's anchor\n updatePositionPopover();\n\n // Allow press ESC to close popup\n if (pressESCToClose) {\n document.addEventListener('keydown', pressESCHandler);\n }\n // Click out popover to close popover\n document.addEventListener('click', onClickOutside);\n\n // Update position popover on resize\n window.addEventListener('resize', updatePositionPopover);\n if (trigger === 'hover') ref.current.addEventListener('mouseleave', handleEventTrigger, false);\n return () => {\n document.body.classList.remove(...noScrollClass);\n // document.body.style.overflow = overflow.current; // reset overflow of before open\n if (pressESCToClose) {\n document.removeEventListener('keydown', pressESCHandler);\n }\n document.removeEventListener('click', onClickOutside);\n window.removeEventListener('resize', updatePositionPopover);\n if (trigger === 'hover' && ref.current) ref.current.removeEventListener('mouseleave', handleEventTrigger, false);\n };\n }\n // else if (!openState) {\n // document.documentElement.style.overflow = overflow.current;\n // }\n }, [openState]);\n useEffect(() => {\n clickOutsideToClose ? document.addEventListener('click', onClickOutside) : document.removeEventListener('click', onClickOutside);\n }, [clickOutsideToClose]);\n useEffect(() => {\n updatePositionPopover();\n }, [children]);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n show: el => {\n if (el) setElement(el);\n !openState && el ? updatePositionPopover(el, onOpenPopover()) : onOpenPopover();\n },\n close: () => onClosePopover(),\n setPosition: el => updatePositionPopover(el),\n ...action\n }; // methods\n _instance.__proto__ = {\n hide: () => onClosePopover()\n }; // hidden methods\n currentRef.instance = _instance;\n currentRef.show = el => {\n if (el) setElement(el);\n !openState && el ? updatePositionPopover(el, onOpenPopover()) : onOpenPopover();\n };\n currentRef.close = onClosePopover;\n currentRef.setPosition = el => updatePositionPopover(el);\n return currentRef;\n });\n const renderAnchor = () => {\n var _anchor10, _anchor11, _anchor11$props;\n if (!((_anchor10 = anchor) !== null && _anchor10 !== void 0 && _anchor10.type)) return null;\n const AnchorTag = /*#__PURE__*/React.cloneElement(anchor, {\n ref: ref => {\n anchor = ref;\n },\n style: {\n cursor: 'pointer',\n ...(((_anchor11 = anchor) === null || _anchor11 === void 0 ? void 0 : (_anchor11$props = _anchor11.props) === null || _anchor11$props === void 0 ? void 0 : _anchor11$props.style) || {})\n }\n });\n return AnchorTag;\n };\n const PopoverView = useMemo(() => {\n if (openState) {\n const node = jsx(\"div\", {\n css: _PortalPopoverCSS,\n className: 'DGN-UI-Portal DGN-UI-Popover'\n }, jsx(\"div\", {\n css: _PopoverContainerCSS,\n ref: ref,\n style: style,\n className: classNames('DGN-UI-Popover-Container', className)\n }, children), arrow ? jsx(\"span\", {\n ref: arrowRef,\n css: _PopoverArrowCSS\n }) : null);\n return /*#__PURE__*/createPortal(node, document.body);\n }\n return null;\n }, [openState, arrow, bgColor, children, className, clickOutsideToClose, fullScreen, height, style, width, zIndex]);\n return jsx(React.Fragment, null, renderAnchor(), PopoverView);\n}));\nconst PortalPopoverCSS = (zIndex, fullScreen) => css`\n ${positionFixed};\n ${fullScreen ? pointerEventsInitial : pointerEventsNone};\n ${inset(0)};\n z-index: ${zIndex};\n`;\nconst PopoverContainerCSS = (bgCl, width, height) => css`\n ${displayFlex};\n ${flexCol};\n ${positionRelative};\n ${justifyBetween};\n ${overflowAuto};\n ${borderRadius4px};\n ${paragraph1};\n ${pointerEventsInitial};\n ${parseWidthHeight(width, height)};\n ${parseMinWidthHeight(spacing([4]))};\n ${parseMaxWidthHeight(`calc(100% - ${spacing([8])})`)};\n ${bgColor(bgCl)};\n transition: opacity 0.3s ease;\n opacity: 0;\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n`;\nconst PopoverArrowCSS = (bgCl, arrowSize) => css`\n ${displayNone};\n ${positionAbsolute};\n ${parseWidthHeight(0)};\n ${borderBottom(arrowSize, bgCl)};\n border-left: ${arrowSize}px solid transparent;\n border-right: ${arrowSize}px solid transparent;\n`;\nPopover.defaultProps = {\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'center'\n },\n arrow: false,\n bgColor: 'system/white',\n className: '',\n clickOutsideToClose: true,\n fullScreen: true,\n height: 'max-content',\n marginThreshold: spacing(4),\n pressESCToClose: true,\n style: {},\n transformOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n trigger: 'click',\n width: 'max-content',\n zIndex: zIndexCORE(1)\n};\nPopover.propTypes = {\n /** An HTML element, or a function that returns one. It's used to set the position of the popover. */\n anchor: PropTypes.oneOfType([PropTypes.instanceOf(Element), PropTypes.func, PropTypes.object, PropTypes.node, ref]),\n /**\r\n * This is the point on the anchor where the popover's anchor will attach to.\r\n * Options: vertical: [top, center, bottom]; horizontal: [left, center, right].\r\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['center', 'left', 'right']),\n vertical: PropTypes.oneOf(['bottom', 'center', 'top'])\n }),\n /** If `true`, arrow is shown. */\n arrow: PropTypes.bool,\n /** Background color of the component. */\n bgColor: PropTypes.string,\n /** The content of the component. */\n children: PropTypes.node,\n /** Class for component. */\n className: PropTypes.string,\n /** If `true`, click outside will close component. */\n clickOutsideToClose: PropTypes.bool,\n /**\r\n * Direction when Popover shown.\r\n * Note: This prop will overwrite anchorOrigin & transformOrigin.\r\n *\r\n * * top: anchorOrigin: { vertical: 'top', horizontal: 'center' }, transformOrigin: { vertical: 'bottom', horizontal: 'center' }\r\n * * left: anchorOrigin: { vertical: 'center', horizontal: 'left' }, transformOrigin: { vertical: 'center', horizontal: 'right' }\r\n * * right: anchorOrigin: { vertical: 'center', horizontal: 'right' }, transformOrigin: { vertical: 'center', horizontal: 'left' }\r\n * * bottom: anchorOrigin: { vertical: 'bottom', horizontal: 'center' }, transformOrigin: { vertical: 'top', horizontal: 'center' }\r\n */\n direction: PropTypes.oneOf(['top', 'left', 'right', 'bottom']),\n /** Height of the component. */\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /** Specifies how close to the edge of the window the popover can appear. */\n marginThreshold: PropTypes.number,\n /** Callback fired when the component requests to be closed. */\n onClose: PropTypes.func,\n /** Callback fired when the component requests to be opened. */\n onOpen: PropTypes.func,\n /** If `true`, the component is shown. */\n open: PropTypes.bool,\n /** If `true`, hitting escape will close component. */\n pressESCToClose: PropTypes.bool,\n /** Style inline of component. */\n style: PropTypes.object,\n /**\r\n * This is the point on the popover which will attach to the anchor's origin.\r\n * Options: vertical: [top, center, bottom]; horizontal: [left, center, right].\r\n */\n transformOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['center', 'left', 'right']),\n vertical: PropTypes.oneOf(['bottom', 'center', 'top'])\n }),\n /** Trigger mode of the component. Will not work when use with `open` prop. */\n trigger: PropTypes.oneOf(['click', 'hover', 'focus']),\n /** Width of the component. */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /** Config z-index of the component. */\n zIndex: PropTypes.number\n /**\r\n * ref methods (ref.current.instance.*method*)\r\n *\r\n * * show: Show popover\r\n * * close: Close popover\r\n * * setPosition(element): Set position of popover\r\n * * @param {element} - element\r\n *\r\n * * option(): Gets all UI component properties\r\n * * Returns value - object\r\n * * option(optionName): Gets the value of a single property\r\n * * @param {optionName} - string\r\n * * Returns value - any\r\n * * option(optionName, optionValue): Updates the value of a single property\r\n * * @param {optionName} - string\r\n * * @param {optionValue} - any\r\n * * option(options): Updates the values of several properties\r\n * * @param {options} - object\r\n */\n};\n\nexport { Popover };\nexport default OptionWrapper(Popover);","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport OptionWrapper from \"../others/option-wrapper\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { animations } from \"../../styles/animation\";\nimport { bgColor, borderRadius, boxBorder, cursorMove, displayFlex, flexCol, flexRow, justifyCenter, left, parseMaxWidthHeight, parseMinWidth, parseWidthHeight, pdt, positionAbsolute, positionRelative, top } from \"../../styles/general\";\nimport { makeStyles, useTheme } from \"../../theme\";\nimport { classNames, useDelayUnmount } from \"../../utils\";\nimport ModalContext from \"./context\";\nconst {\n typography: {\n paragraph1\n },\n zIndex: zIndexCORE\n} = useTheme();\nconst useStyles = makeStyles({\n noScroll: {\n key: props => `DGN-Modal-${props}`,\n overflow: 'hidden'\n }\n});\nconst fadeInDown = animations.fadeInDown;\nconst fadeOutUp = animations.fadeOutUp;\nconst Modal = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n alignment,\n autoFocus,\n children,\n className,\n darkTheme,\n dragAnyWhere,\n id,\n moveable,\n moveOutScreen,\n onClose,\n open,\n pressESCToClose,\n style,\n width,\n zIndex\n}, reference) => {\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n\n // const overflow = useRef(null);\n const modalBoxRef = useRef(null);\n const [openState, setOpenState] = useState(open);\n const showModal = useDelayUnmount(openState, 200);\n const _ModalContainerCSS = ModalContainerCSS(zIndex, alignment, darkTheme);\n const _ModalBoxCSS = ModalBoxCSS(width, moveable, dragAnyWhere);\n const onShowModal = () => {\n setOpenState(true);\n };\n const onCloseModal = () => {\n onClose && onClose();\n setOpenState(false);\n };\n const pressESCHandler = event => {\n if (event.key === 'Escape') {\n const modals = document.querySelectorAll('.DGN-UI-Portal');\n if ((modals === null || modals === void 0 ? void 0 : modals.length) > 1 && Array.from(modals)[modals.length - 1] && !Array.from(modals)[modals.length - 1].contains(ref.current)) {\n return;\n }\n onCloseModal();\n }\n };\n const dragMouseDown = e => {\n let pos1 = 0,\n pos2 = 0,\n pos3 = 0,\n pos4 = 0;\n pos3 = e.clientX;\n pos4 = e.clientY;\n const maxTop = window.innerHeight - modalBoxRef.current.offsetHeight;\n const maxLeft = window.innerWidth - modalBoxRef.current.offsetWidth;\n if (modalBoxRef.current.style.display !== 'block') {\n const top = modalBoxRef.current.offsetTop;\n const left = modalBoxRef.current.offsetLeft;\n modalBoxRef.current.style.display = 'block';\n modalBoxRef.current.style.position = 'absolute';\n modalBoxRef.current.style.margin = '0px';\n modalBoxRef.current.style.top = top + 'px';\n modalBoxRef.current.style.left = left + 'px';\n }\n document.onmouseup = () => {\n /* stop moving when mouse button is released:*/\n document.onmouseup = null;\n document.onmousemove = null;\n };\n // call a function whenever the cursor moves:\n document.onmousemove = el => {\n pos1 = pos3 - el.clientX;\n pos2 = pos4 - el.clientY;\n pos3 = el.clientX;\n pos4 = el.clientY;\n let newTop = modalBoxRef.current.offsetTop - pos2;\n let newLeft = modalBoxRef.current.offsetLeft - pos1;\n if (!moveOutScreen) {\n if (newTop > maxTop) {\n newTop = maxTop;\n } else if (newTop < 0) {\n newTop = 0;\n }\n if (newLeft > maxLeft) {\n newLeft = maxLeft;\n } else if (newLeft < 0) {\n newLeft = 0;\n }\n }\n // set the element's new position:\n modalBoxRef.current.style.top = newTop + 'px';\n modalBoxRef.current.style.left = newLeft + 'px';\n };\n };\n useEffect(() => {\n setOpenState(open);\n }, [open]);\n useEffect(() => {\n if (openState && ref.current) {\n const modals = document.querySelectorAll('.DGN-UI-Modal');\n if (!darkTheme && modals && modals.length > 1) {\n ref.current.style.backgroundColor = 'transparent';\n }\n if (autoFocus) {\n if (!ref.current.contains(document.activeElement)) {\n ref.current.tabIndex = -1;\n ref.current.focus();\n }\n }\n const timestamp = Date.now();\n const classes = useStyles(timestamp);\n const noScrollClass = classes.noScroll.split(' ');\n document.body.classList.add(...noScrollClass);\n // overflow.current = document.body.style.overflow; // overflow of before open modal\n // document.body.style.overflow = 'hidden';\n // Allow press ESC to close popup\n if (pressESCToClose) {\n document.addEventListener('keydown', pressESCHandler);\n }\n return () => {\n document.body.classList.remove(...noScrollClass);\n // document.body.style.overflow = overflow.current; // reset overflow of before open modal\n if (pressESCToClose) {\n document.removeEventListener('keydown', pressESCHandler);\n }\n };\n }\n }, [openState]);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n return useMemo(() => {\n if (showModal) {\n const node = jsx(\"div\", {\n className: 'DGN-UI-Portal DGN-UI-Modal',\n style: {\n position: 'fixed',\n zIndex,\n inset: 0\n }\n }, jsx(\"div\", {\n id: id,\n css: _ModalContainerCSS,\n className: 'DGN-UI-Modal-Container',\n ref: ref\n }, jsx(\"div\", {\n css: _ModalBoxCSS,\n ref: modalBoxRef,\n onMouseDown: moveable && dragAnyWhere ? dragMouseDown : null,\n className: classNames('DGN-UI-Modal-Box', openState ? 'DGN-UI-Modal-Show' : 'DGN-UI-Modal-Hide', className),\n style: style\n }, jsx(ModalContext.Provider, {\n value: {\n show: onShowModal,\n close: onCloseModal,\n onMoveModal: moveable && !dragAnyWhere ? dragMouseDown : null\n }\n }, children))));\n return /*#__PURE__*/createPortal(node, document.body);\n }\n return null;\n }, [alignment, autoFocus, children, className, darkTheme, dragAnyWhere, id, moveable, moveOutScreen, onClose, open, pressESCToClose, style, width, zIndex, openState, showModal]);\n}));\nconst ModalContainerCSS = (zIndex, alignment, darkTheme) => css`\n ${displayFlex};\n ${flexRow};\n ${positionAbsolute}\n ${justifyCenter};\n ${parseWidthHeight('100%')};\n ${pdt(alignment === 'top' ? [3] : 0)};\n ${bgColor(darkTheme ? 'rgba(21, 26, 48, 0.5)' : 'transparent')};\n ${top(0)};\n ${left(0)};\n z-index: ${zIndex};\n align-items: ${alignment === 'top' ? 'inherit' : 'center'};\n`;\nconst ModalBoxCSS = (width, moveable, dragAnyWhere) => css`\n ${paragraph1};\n ${displayFlex};\n ${flexCol};\n ${positionRelative};\n ${borderRadius(4)};\n ${boxBorder};\n ${parseWidthHeight(width, 'max-content')};\n ${parseMaxWidthHeight('90%', 'calc(100% - 12px)')};\n ${parseMinWidth(150)};\n ${moveable && dragAnyWhere && cursorMove};\n ${bgColor('system/white')};\n margin: 0 auto;\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n animation: ${fadeInDown} 0.2s ease;\n animation-fill-mode: forwards;\n &.DGN-UI-Modal-Show {\n animation: ${fadeInDown} 0.2s ease;\n }\n &.DGN-UI-Modal-Hide {\n animation: ${fadeOutUp} 0.3s ease;\n animation-fill-mode: forwards;\n }\n`;\nModal.defaultProps = {\n alignment: 'top',\n autoFocus: true,\n className: '',\n darkTheme: true,\n dragAnyWhere: false,\n moveable: false,\n moveOutScreen: false,\n open: false,\n pressESCToClose: true,\n style: {},\n width: '80%',\n zIndex: zIndexCORE()\n};\nModal.propTypes = {\n /** The component alignment. */\n alignment: PropTypes.oneOf(['top', 'center']),\n /** If `true`, focus when component is shown. */\n autoFocus: PropTypes.bool,\n /** The content of the component. */\n children: PropTypes.node,\n /** Class for component. */\n className: PropTypes.string,\n /** If `true`, dark backdrop when component is shown. */\n darkTheme: PropTypes.bool,\n /** If `true`, allow drag the component at any position. */\n dragAnyWhere: PropTypes.bool,\n /** If `true`, allow move the component by drag and move. */\n moveable: PropTypes.bool,\n /** If `true`, allows drag the component out of the screen. */\n moveOutScreen: PropTypes.bool,\n /** Callback fired when the component requests to be closed. */\n onClose: PropTypes.func,\n /** If `true`, the component is shown. */\n open: PropTypes.bool,\n /** If `true`, hitting escape will close component. */\n pressESCToClose: PropTypes.bool,\n /** Style inline of component. */\n style: PropTypes.object,\n /** Width of the component. */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /** The z-index of component. */\n zIndex: PropTypes.number\n};\nexport { Modal };\nexport default OptionWrapper(Modal);","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport OptionWrapper from \"../others/option-wrapper\";\nimport PropTypes from 'prop-types';\nimport { forwardRef, memo, useImperativeHandle, useMemo, useRef } from 'react';\nimport { boxBorder, displayBlock, displayNone, order, overflowAuto, parseWidthHeight, positionRelative } from \"../../styles/general\";\nimport { classNames } from \"../../utils\";\nimport { responsivePaddingCSS } from \"./header\";\nconst ModalBody = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n action = {},\n children,\n className,\n id,\n style,\n ...props\n}, reference) => {\n if (!reference) reference = useRef(null);\n const ref = useRef(null);\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n currentRef.element = ref.current;\n const _instance = {\n ...action\n }; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n return useMemo(() => {\n return jsx(\"div\", {\n css: ModalBodyCSS,\n ref: ref,\n id: id,\n className: classNames('DGN-UI-Modal-Body', className),\n style: style,\n ...props\n }, children);\n }, [children, className, id, style, props]);\n}));\nconst ModalBodyCSS = css`\n ${displayBlock};\n ${positionRelative};\n ${boxBorder};\n ${overflowAuto};\n ${parseWidthHeight('100%', 'auto')};\n ${order(2)};\n &::-webkit-scrollbar {\n ${displayNone};\n }\n ${responsivePaddingCSS};\n`;\nModalBody.defaultProps = {\n className: '',\n style: {}\n};\nModalBody.propTypes = {\n /** The content of the component. */\n children: PropTypes.node,\n /** Class for component. */\n className: PropTypes.string,\n /** Style inline of component. */\n style: PropTypes.object\n};\nexport { ModalBody };\nexport default OptionWrapper(ModalBody);","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { forwardRef, memo, useEffect, useState, useRef, useImperativeHandle } from 'react';\nimport { jsx, css } from '@emotion/core';\nimport { randomString, getFileType } from \"../../utils\";\nimport PropTypes from 'prop-types';\nimport CircularProgress from \"../progress/circular\";\nimport { animations } from \"../../styles/animation\";\nimport { displayBlock, displayNone, justifyCenter, positionAbsolute } from \"../../styles/general\";\nconst fadeIn = animations.fadeIn;\nconst regex = /(http(s)?:\\/\\/.)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)/g;\nconst googleDriveRegex = /(http(s)?:\\/\\/.)?(drive\\.google\\.com\\/file\\/d\\/)/;\nconst googleDocsRegex = /(http(s)?:\\/\\/.)?(docs\\.google\\.com\\/fileview\\?)/;\nconst checkURL = link => {\n const res = regex.test(link);\n if (res) {\n if (googleDriveRegex.test(link)) {\n const id = link.split('/')[0] === 'drive.google.com' ? link.split('/')[3] : link.split('/')[5];\n return `https://docs.google.com/viewer?srcid=${id}&pid=explorer&efh=false&a=v&chrome=false&embedded=true`;\n }\n if (googleDocsRegex.test(link)) {\n return `https://docs.google.com/viewer?srcid=${link.split('=')[1]}&pid=explorer&efh=false&a=v&chrome=false&embedded=true`;\n }\n }\n return link;\n};\nconst SliderItem = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({\n active,\n animation,\n fileName,\n url,\n ...props\n}, reference) => {\n const Id = randomString(7, {\n allowSymbol: false,\n allowNumber: false\n });\n const IDs = {\n frame: 'DGN-UI-Slider-frame' + Id,\n image: 'DGN-UI-Slider-image' + Id,\n itemContainer: 'DGN-UI-Slider-item-container-' + Id,\n video: 'DGN-UI-Slider-video' + Id\n };\n const ref = useRef(null);\n const iframeRef = useRef(null);\n const [iframeTimeoutId, setIframeTimeoutId] = useState(null);\n const getViewer = (filePath, fileType) => {\n switch (fileType) {\n case 'image':\n {\n return jsx(\"img\", {\n ...props,\n className: IDs.image,\n css: imageCSS,\n src: filePath,\n alt: ''\n });\n }\n case 'word':\n case 'sheet':\n {\n return jsx(\"iframe\", {\n ...props,\n className: IDs.frame,\n css: frameCSS,\n frameBorder: 0,\n src: `https://view.officeapps.live.com/op/view.aspx?src=${filePath}`,\n title: fileName\n });\n }\n case 'pdf':\n {\n return jsx(\"iframe\", {\n ...props,\n ref: iframeRef,\n className: IDs.frame,\n css: frameCSS,\n frameBorder: 0,\n src: getIframeLink(),\n title: fileName,\n onLoad: iframeLoaded,\n onError: updateIframeSrc\n });\n }\n case 'mp4':\n {\n return jsx(\"video\", {\n autoPlay: true,\n className: IDs.video,\n controls: \"controls\",\n height: \"auto\",\n width: \"auto\"\n }, jsx(\"source\", {\n src: filePath,\n type: \"video/mp4\"\n }));\n }\n case 'another':\n {\n return jsx(\"iframe\", {\n ...props,\n className: IDs.frame,\n css: frameCSS,\n frameBorder: 0,\n src: checkURL(filePath),\n title: fileName\n });\n }\n default:\n {\n return jsx(\"iframe\", {\n ...props,\n className: IDs.frame,\n css: frameCSS,\n frameBorder: 0,\n src: filePath,\n title: fileName\n });\n }\n }\n };\n useEffect(() => {\n const fileType = getFileType(url, undefined, false);\n if (fileType === 'pdf') {\n const intervalId = setInterval(updateIframeSrc, 2000);\n setIframeTimeoutId(intervalId);\n }\n }, []);\n const iframeLoaded = () => {\n clearInterval(iframeTimeoutId);\n setIframeTimeoutId(null);\n };\n const getIframeLink = () => {\n return `https://docs.google.com/gview?url=${url}&embedded=true`;\n };\n const updateIframeSrc = () => {\n if (iframeRef.current) {\n iframeRef.current.src = getIframeLink();\n }\n };\n useImperativeHandle(reference, () => {\n const currentRef = ref.current || {};\n const _instance = {}; // methods\n _instance.__proto__ = {}; // hidden methods\n currentRef.instance = _instance;\n return currentRef;\n });\n return jsx(\"div\", {\n className: [IDs.itemContainer, active ? 'active' : '', animation ? 'item-animation' : ''].join(' ').trim().replace(/\\s+/g, ' '),\n css: itemContainerCSS,\n id: IDs.itemContainer,\n ref: ref\n }, iframeTimeoutId && getFileType(url, undefined, false) === 'pdf' && jsx(\"div\", {\n css: loadingCSS\n }, jsx(CircularProgress, {\n size: 'xs'\n })), getViewer(url, getFileType(url, undefined, false)));\n}));\nconst itemContainerCSS = css`\n ${displayNone};\n ${justifyCenter};\n height: 100%;\n width: 100%;\n &.item-animation {\n animation: ${fadeIn} 1s;\n }\n`;\nconst frameCSS = css`\n ${displayBlock};\n height: 85vh;\n margin: 0;\n padding: 0;\n width: 100%;\n`;\nconst imageCSS = css`\n ${displayBlock};\n height: auto;\n margin: auto;\n max-height: 100%;\n max-width: 100%;\n width: auto;\n`;\nconst loadingCSS = css`\n ${positionAbsolute};\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n`;\nSliderItem.defaultProps = {\n active: false,\n animation: true\n};\nSliderItem.propTypes = {\n active: PropTypes.bool,\n animation: PropTypes.bool,\n fileName: PropTypes.string,\n url: PropTypes.string\n};\nexport default SliderItem;"],"sourceRoot":""}