@onehat/ui 0.3.381 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +37 -9
- package/src/Components/Accordion/Accordion.js +22 -17
- package/src/Components/Blank.js +1 -3
- package/src/Components/Buttons/BackButton.js +21 -12
- package/src/Components/Buttons/Button.js +65 -13
- package/src/Components/Buttons/CartButtonWithBadge.js +14 -6
- package/src/Components/Buttons/IconButton.js +31 -74
- package/src/Components/Buttons/PlusMinusButton.js +34 -21
- package/src/Components/Buttons/ReloadButton.js +7 -8
- package/src/Components/Buttons/SquareButton.js +41 -55
- package/src/Components/Container/Container.js +55 -16
- package/src/Components/Container/ScreenContainer.js +26 -16
- package/src/Components/Container/Splitter.js +38 -25
- package/src/Components/Editor/Editor.js +3 -2
- package/src/Components/Editor/InlineEditor.js +38 -32
- package/src/Components/Filter/DateRange.js +37 -18
- package/src/Components/Filter/NumberRange.js +87 -83
- package/src/Components/Form/Field/CKEditor/CKEditor.js +4 -4
- package/src/Components/Form/Field/Checkbox/CheckboxGroup.js +9 -6
- package/src/Components/Form/Field/Color.js +95 -86
- package/src/Components/Form/Field/Combo/Combo.js +347 -284
- package/src/Components/Form/Field/Combo/PageSizeCombo.js +4 -7
- package/src/Components/Form/Field/Date.js +276 -312
- package/src/Components/Form/Field/DisplayField.js +11 -5
- package/src/Components/Form/Field/File.js +26 -32
- package/src/Components/Form/Field/FormikForm.js +1018 -0
- package/src/Components/Form/Field/Input.js +91 -41
- package/src/Components/Form/Field/Json.js +25 -21
- package/src/Components/Form/Field/Number.js +70 -51
- package/src/Components/Form/Field/RadioGroup/RadioGroup.js +4 -6
- package/src/Components/Form/Field/Select/PageSizeSelect.js +33 -0
- package/src/Components/Form/Field/Select/Select.js +109 -0
- package/src/Components/Form/Field/Slider.js +38 -30
- package/src/Components/Form/Field/Tag/Tag.js +88 -72
- package/src/Components/Form/Field/Tag/ValueBox.js +25 -20
- package/src/Components/Form/Field/Text.js +21 -12
- package/src/Components/Form/Field/TextArea.js +32 -15
- package/src/Components/Form/Field/Toggle.js +42 -24
- package/src/Components/Form/FieldSet.js +77 -54
- package/src/Components/Form/Form.js +491 -268
- package/src/Components/Form/Label.js +28 -17
- package/src/Components/Gluestack/accordion/index.tsx +394 -0
- package/src/Components/Gluestack/actionsheet/index.tsx +619 -0
- package/src/Components/Gluestack/alert/index.tsx +310 -0
- package/src/Components/Gluestack/alert-dialog/index.tsx +295 -0
- package/src/Components/Gluestack/avatar/index.tsx +190 -0
- package/src/Components/Gluestack/badge/index.tsx +272 -0
- package/src/Components/Gluestack/bottomsheet/index.tsx +294 -0
- package/src/Components/Gluestack/box/index.tsx +19 -0
- package/src/Components/Gluestack/box/index.web.tsx +18 -0
- package/src/Components/Gluestack/box/styles.tsx +10 -0
- package/src/Components/Gluestack/button/index.tsx +494 -0
- package/src/Components/Gluestack/card/index.tsx +23 -0
- package/src/Components/Gluestack/card/index.web.tsx +22 -0
- package/src/Components/Gluestack/card/styles.tsx +20 -0
- package/src/Components/Gluestack/center/index.tsx +22 -0
- package/src/Components/Gluestack/center/index.web.tsx +19 -0
- package/src/Components/Gluestack/center/styles.tsx +8 -0
- package/src/Components/Gluestack/checkbox/index.tsx +305 -0
- package/src/Components/Gluestack/divider/index.tsx +44 -0
- package/src/Components/Gluestack/drawer/index.tsx +354 -0
- package/src/Components/Gluestack/fab/index.tsx +286 -0
- package/src/Components/Gluestack/flat-list/index.tsx +2 -0
- package/src/Components/Gluestack/form-control/index.tsx +527 -0
- package/src/Components/Gluestack/gluestack-ui-provider/config.ts +332 -0
- package/src/Components/Gluestack/gluestack-ui-provider/index.tsx +47 -0
- package/src/Components/Gluestack/gluestack-ui-provider/index.web.tsx +94 -0
- package/src/Components/Gluestack/gluestack-ui-provider/script.ts +19 -0
- package/src/Components/Gluestack/grid/index.tsx +341 -0
- package/src/Components/Gluestack/grid/index.web.tsx +65 -0
- package/src/Components/Gluestack/grid/styles.tsx +15 -0
- package/src/Components/Gluestack/heading/index.tsx +212 -0
- package/src/Components/Gluestack/heading/index.web.tsx +203 -0
- package/src/Components/Gluestack/heading/styles.tsx +43 -0
- package/src/Components/Gluestack/hstack/index.tsx +23 -0
- package/src/Components/Gluestack/hstack/index.web.tsx +22 -0
- package/src/Components/Gluestack/hstack/styles.tsx +25 -0
- package/src/Components/Gluestack/image/index.tsx +52 -0
- package/src/Components/Gluestack/image-background/index.tsx +21 -0
- package/src/Components/Gluestack/index.js +116 -0
- package/src/Components/Gluestack/input/index.tsx +287 -0
- package/src/Components/Gluestack/input-accessory-view/index.tsx +2 -0
- package/src/Components/Gluestack/keyboard-avoiding-view/index.tsx +2 -0
- package/src/Components/Gluestack/link/index.tsx +107 -0
- package/src/Components/Gluestack/menu/index.tsx +210 -0
- package/src/Components/Gluestack/modal/index.tsx +279 -0
- package/src/Components/Gluestack/popover/index.tsx +352 -0
- package/src/Components/Gluestack/portal/index.tsx +13 -0
- package/src/Components/Gluestack/pressable/index.tsx +46 -0
- package/src/Components/Gluestack/progress/index.tsx +164 -0
- package/src/Components/Gluestack/radio/index.tsx +304 -0
- package/src/Components/Gluestack/refresh-control/index.tsx +2 -0
- package/src/Components/Gluestack/safe-area-view/index.tsx +2 -0
- package/src/Components/Gluestack/scroll-view/index.tsx +2 -0
- package/src/Components/Gluestack/section-list/index.tsx +2 -0
- package/src/Components/Gluestack/select/index.tsx +335 -0
- package/src/Components/Gluestack/select/select-actionsheet.tsx +584 -0
- package/src/Components/Gluestack/skeleton/index.tsx +138 -0
- package/src/Components/Gluestack/skeleton/index.web.tsx +103 -0
- package/src/Components/Gluestack/skeleton/styles.tsx +35 -0
- package/src/Components/Gluestack/slider/index.tsx +283 -0
- package/src/Components/Gluestack/spinner/index.tsx +34 -0
- package/src/Components/Gluestack/status-bar/index.tsx +2 -0
- package/src/Components/Gluestack/switch/index.tsx +55 -0
- package/src/Components/Gluestack/table/index.tsx +200 -0
- package/src/Components/Gluestack/table/index.web.tsx +142 -0
- package/src/Components/Gluestack/table/styles.tsx +44 -0
- package/src/Components/Gluestack/text/index.tsx +48 -0
- package/src/Components/Gluestack/text/index.web.tsx +45 -0
- package/src/Components/Gluestack/text/styles.tsx +47 -0
- package/src/Components/Gluestack/textarea/index.tsx +108 -0
- package/src/Components/Gluestack/toast/index.tsx +225 -0
- package/src/Components/Gluestack/tooltip/index.tsx +125 -0
- package/src/Components/Gluestack/utils/use-break-point-value.ts +101 -0
- package/src/Components/Gluestack/view/index.tsx +2 -0
- package/src/Components/Gluestack/virtualized-list/index.tsx +2 -0
- package/src/Components/Gluestack/vstack/index.tsx +24 -0
- package/src/Components/Gluestack/vstack/index.web.tsx +23 -0
- package/src/Components/Gluestack/vstack/styles.tsx +25 -0
- package/src/Components/Grid/Grid.js +192 -135
- package/src/Components/Grid/GridHeaderRow.js +51 -59
- package/src/Components/Grid/GridRow.js +152 -58
- package/src/Components/Grid/HeaderColumnSelectorHandle.js +16 -10
- package/src/Components/Grid/HeaderReorderHandle.js +17 -13
- package/src/Components/Grid/HeaderResizeHandle.js +17 -13
- package/src/Components/Grid/NoRecordsFound.js +15 -18
- package/src/Components/Grid/RowDragHandle.js +9 -13
- package/src/Components/Hoc/Secondary/withSecondaryEditor.js +14 -9
- package/src/Components/Hoc/Secondary/withSecondaryWindowedEditor.js +14 -11
- package/src/Components/Hoc/withAlert.js +150 -200
- package/src/Components/Hoc/withBlank.js +4 -6
- package/src/Components/Hoc/withCollapsible.js +4 -3
- package/src/Components/Hoc/withComponent.js +33 -6
- package/src/Components/Hoc/withContextMenu.js +133 -141
- package/src/Components/Hoc/withData.js +5 -4
- package/src/Components/Hoc/withDnd.js +11 -9
- package/src/Components/Hoc/withDraggable.js +10 -10
- package/src/Components/Hoc/withEditor.js +18 -13
- package/src/Components/Hoc/withEvents.js +4 -6
- package/src/Components/Hoc/withFilters.js +524 -498
- package/src/Components/Hoc/withInlineEditor.js +7 -5
- package/src/Components/Hoc/withModal.js +79 -137
- package/src/Components/Hoc/withMultiSelection.js +4 -2
- package/src/Components/Hoc/withPdfButtons.js +109 -111
- package/src/Components/Hoc/withPresetButtons.js +49 -53
- package/src/Components/Hoc/withSelection.js +6 -5
- package/src/Components/Hoc/withSideEditor.js +12 -6
- package/src/Components/Hoc/withTooltip.js +18 -12
- package/src/Components/Hoc/withValue.js +6 -5
- package/src/Components/Hoc/withWindowedEditor.js +13 -11
- package/src/Components/Icons/AddressBook.js +7 -10
- package/src/Components/Icons/Alt.js +8 -15
- package/src/Components/Icons/AngleLeft.js +7 -14
- package/src/Components/Icons/AngleRight.js +7 -14
- package/src/Components/Icons/AnglesLeft.js +7 -14
- package/src/Components/Icons/AnglesRight.js +7 -14
- package/src/Components/Icons/Asterisk.js +7 -10
- package/src/Components/Icons/Ban.js +9 -14
- package/src/Components/Icons/Bars.js +7 -10
- package/src/Components/Icons/BarsStaggered.js +7 -10
- package/src/Components/Icons/Bell.js +7 -19
- package/src/Components/Icons/BigCircle.js +7 -14
- package/src/Components/Icons/Book.js +7 -10
- package/src/Components/Icons/BookOpen.js +7 -10
- package/src/Components/Icons/Bookmark.js +8 -17
- package/src/Components/Icons/Bug.js +7 -10
- package/src/Components/Icons/Building.js +7 -10
- package/src/Components/Icons/Calendar.js +7 -14
- package/src/Components/Icons/Calendar2.js +7 -14
- package/src/Components/Icons/CalendarDays.js +7 -14
- package/src/Components/Icons/Camera.js +7 -14
- package/src/Components/Icons/CaretDown.js +7 -14
- package/src/Components/Icons/CaretUp.js +7 -14
- package/src/Components/Icons/CartPlus.js +7 -10
- package/src/Components/Icons/CartShopping.js +7 -10
- package/src/Components/Icons/CashRegister.js +7 -10
- package/src/Components/Icons/Certificate.js +7 -10
- package/src/Components/Icons/ChartLine.js +7 -10
- package/src/Components/Icons/ChartPie.js +7 -10
- package/src/Components/Icons/Check.js +7 -10
- package/src/Components/Icons/CheckDouble.js +7 -10
- package/src/Components/Icons/ChevronDown.js +7 -10
- package/src/Components/Icons/ChevronLeft.js +7 -10
- package/src/Components/Icons/ChevronRight.js +7 -10
- package/src/Components/Icons/ChevronUp.js +7 -10
- package/src/Components/Icons/Circle.js +7 -10
- package/src/Components/Icons/CircleArrowRight.js +7 -10
- package/src/Components/Icons/CircleExclamation.js +7 -14
- package/src/Components/Icons/CircleInfo.js +7 -10
- package/src/Components/Icons/CircleQuestion.js +7 -10
- package/src/Components/Icons/CircleXmark.js +7 -10
- package/src/Components/Icons/CircleXmarkRegular.js +7 -10
- package/src/Components/Icons/Clipboard.js +7 -14
- package/src/Components/Icons/ClipboardCheck.js +7 -17
- package/src/Components/Icons/ClipboardList.js +7 -16
- package/src/Components/Icons/Clock.js +7 -10
- package/src/Components/Icons/ClockRegular.js +7 -10
- package/src/Components/Icons/ClockRotateLeft.js +7 -10
- package/src/Components/Icons/Clone.js +7 -10
- package/src/Components/Icons/Collapse.js +7 -14
- package/src/Components/Icons/Comment.js +7 -10
- package/src/Components/Icons/CommentDots.js +7 -10
- package/src/Components/Icons/CommentRegular.js +7 -10
- package/src/Components/Icons/Comments.js +7 -10
- package/src/Components/Icons/CommentsRegular.js +7 -10
- package/src/Components/Icons/Copyright.js +7 -10
- package/src/Components/Icons/Dot.js +10 -15
- package/src/Components/Icons/Download.js +11 -0
- package/src/Components/Icons/Duplicate.js +7 -14
- package/src/Components/Icons/Edit.js +7 -14
- package/src/Components/Icons/EllipsisHorizontal.js +7 -16
- package/src/Components/Icons/EllipsisVertical.js +7 -14
- package/src/Components/Icons/Envelope.js +7 -10
- package/src/Components/Icons/EnvelopeRegular.js +7 -10
- package/src/Components/Icons/Excel.js +7 -10
- package/src/Components/Icons/Exclamation.js +7 -10
- package/src/Components/Icons/Expand.js +7 -10
- package/src/Components/Icons/Eye.js +7 -14
- package/src/Components/Icons/EyeSlash.js +7 -10
- package/src/Components/Icons/File.js +7 -14
- package/src/Components/Icons/FloppyDiskRegular.js +7 -10
- package/src/Components/Icons/Folder.js +7 -10
- package/src/Components/Icons/FolderClosed.js +7 -10
- package/src/Components/Icons/FolderOpen.js +7 -10
- package/src/Components/Icons/FolderTree.js +7 -10
- package/src/Components/Icons/FullWidth.js +10 -25
- package/src/Components/Icons/Gauge.js +7 -17
- package/src/Components/Icons/Gear.js +7 -14
- package/src/Components/Icons/Gears.js +7 -10
- package/src/Components/Icons/Gift.js +7 -10
- package/src/Components/Icons/Grip.js +7 -14
- package/src/Components/Icons/GripLines.js +7 -14
- package/src/Components/Icons/GripLinesVertical.js +7 -14
- package/src/Components/Icons/GripVertical.js +7 -14
- package/src/Components/Icons/Hammer.js +7 -10
- package/src/Components/Icons/Hand.js +7 -10
- package/src/Components/Icons/HighPriority.js +7 -17
- package/src/Components/Icons/House.js +7 -10
- package/src/Components/Icons/Images.js +7 -10
- package/src/Components/Icons/Info.js +7 -10
- package/src/Components/Icons/ItunesNote.js +7 -10
- package/src/Components/Icons/Js.js +7 -16
- package/src/Components/Icons/Leaf.js +7 -10
- package/src/Components/Icons/Link.js +7 -9
- package/src/Components/Icons/List.js +7 -10
- package/src/Components/Icons/ListCheck.js +7 -10
- package/src/Components/Icons/LocationDot.js +7 -10
- package/src/Components/Icons/Loop.js +7 -14
- package/src/Components/Icons/Loop1.js +8 -13
- package/src/Components/Icons/LoopAll.js +8 -13
- package/src/Components/Icons/LowPriority.js +7 -17
- package/src/Components/Icons/MagnifyingGlass.js +7 -10
- package/src/Components/Icons/Maximize.js +7 -10
- package/src/Components/Icons/MedPriority.js +7 -17
- package/src/Components/Icons/Microphone.js +7 -10
- package/src/Components/Icons/Minimize.js +7 -10
- package/src/Components/Icons/Minus.js +7 -14
- package/src/Components/Icons/MobileScreenButton.js +7 -10
- package/src/Components/Icons/MoneyBill.js +7 -10
- package/src/Components/Icons/MoneyBillWave.js +7 -10
- package/src/Components/Icons/Mouth.js +10 -21
- package/src/Components/Icons/Music.js +7 -10
- package/src/Components/Icons/Na.js +7 -14
- package/src/Components/Icons/NoLoop.js +11 -13
- package/src/Components/Icons/NoReorderRows.js +17 -22
- package/src/Components/Icons/ObjectGroupRegular.js +7 -10
- package/src/Components/Icons/Pause.js +7 -10
- package/src/Components/Icons/Pdf.js +7 -10
- package/src/Components/Icons/Pencil.js +7 -14
- package/src/Components/Icons/Phone.js +7 -10
- package/src/Components/Icons/Play.js +7 -10
- package/src/Components/Icons/Plus.js +7 -14
- package/src/Components/Icons/Presentation.js +7 -16
- package/src/Components/Icons/Print.js +7 -14
- package/src/Components/Icons/Question.js +7 -10
- package/src/Components/Icons/Rate-.25x.js +12 -17
- package/src/Components/Icons/Rate-.5x.js +11 -16
- package/src/Components/Icons/Rate-.75x.js +8 -13
- package/src/Components/Icons/Rate-1.25x.js +8 -13
- package/src/Components/Icons/Rate-1.5x.js +8 -13
- package/src/Components/Icons/Rate-1.75x.js +8 -13
- package/src/Components/Icons/Rate-1x.js +11 -16
- package/src/Components/Icons/Rate-2x.js +8 -13
- package/src/Components/Icons/RateIcon-.25x.js +8 -13
- package/src/Components/Icons/RateIcon-.5x.js +11 -16
- package/src/Components/Icons/RateIcon-.75x.js +8 -13
- package/src/Components/Icons/RateIcon-1.25x.js +8 -13
- package/src/Components/Icons/RateIcon-1.5x.js +8 -13
- package/src/Components/Icons/RateIcon-1.75x.js +8 -13
- package/src/Components/Icons/RateIcon-1x.js +8 -13
- package/src/Components/Icons/RateIcon-2x.js +8 -13
- package/src/Components/Icons/RectangleXmark.js +7 -10
- package/src/Components/Icons/RectangleXmarkRegular.js +7 -10
- package/src/Components/Icons/ReorderRows.js +8 -13
- package/src/Components/Icons/RightFromBracket.js +7 -10
- package/src/Components/Icons/RightLeft.js +7 -10
- package/src/Components/Icons/RightToBracket.js +7 -10
- package/src/Components/Icons/Rotate.js +7 -14
- package/src/Components/Icons/RotateLeft.js +7 -10
- package/src/Components/Icons/RotateRight.js +7 -14
- package/src/Components/Icons/ScrewdriverWrench.js +7 -10
- package/src/Components/Icons/Scroll.js +7 -10
- package/src/Components/Icons/Share.js +7 -10
- package/src/Components/Icons/Shop.js +7 -10
- package/src/Components/Icons/SideBySide.js +7 -20
- package/src/Components/Icons/SortDown.js +7 -10
- package/src/Components/Icons/SortDownAlt.js +7 -10
- package/src/Components/Icons/SortUp.js +7 -10
- package/src/Components/Icons/SortUpAlt.js +7 -14
- package/src/Components/Icons/Square.js +7 -10
- package/src/Components/Icons/SquareCheck.js +7 -10
- package/src/Components/Icons/SquareCheckRegular.js +7 -10
- package/src/Components/Icons/SquareMinus.js +7 -14
- package/src/Components/Icons/SquareRegular.js +7 -10
- package/src/Components/Icons/Store.js +7 -10
- package/src/Components/Icons/Table.js +7 -16
- package/src/Components/Icons/ThumbsDown.js +7 -10
- package/src/Components/Icons/ThumbsDownRegular.js +7 -10
- package/src/Components/Icons/ThumbsUp.js +7 -10
- package/src/Components/Icons/ThumbsUpRegular.js +7 -10
- package/src/Components/Icons/Trash.js +7 -14
- package/src/Components/Icons/TrashCan.js +7 -14
- package/src/Components/Icons/TriangleExclamation.js +7 -14
- package/src/Components/Icons/Truck.js +7 -10
- package/src/Components/Icons/TruckFast.js +7 -10
- package/src/Components/Icons/Upload.js +11 -0
- package/src/Components/Icons/UploadDownload.js +11 -11
- package/src/Components/Icons/User.js +7 -10
- package/src/Components/Icons/UserGroup.js +7 -10
- package/src/Components/Icons/UserPlus.js +7 -10
- package/src/Components/Icons/UserSecret.js +7 -10
- package/src/Components/Icons/Video.js +7 -16
- package/src/Components/Icons/X.js +7 -10
- package/src/Components/Icons/Xmark.js +7 -10
- package/src/Components/Layout/CenterBox.js +13 -9
- package/src/Components/Layout/Footer.js +20 -13
- package/src/Components/Messages/ConfirmationMessage.js +30 -13
- package/src/Components/Messages/ErrorMessage.js +29 -23
- package/src/Components/Messages/Loading.js +10 -8
- package/src/Components/Messages/OkMessage.js +30 -13
- package/src/Components/Messages/Unauthorized.js +5 -8
- package/src/Components/Messages/WaitMessage.js +37 -73
- package/src/Components/Panel/AccordionGridPanel.js +6 -6
- package/src/Components/Panel/FormPanel.js +7 -3
- package/src/Components/Panel/Header.js +132 -94
- package/src/Components/Panel/Mask.js +4 -4
- package/src/Components/Panel/Panel.js +55 -72
- package/src/Components/Panel/TabPanel.js +1 -1
- package/src/Components/Picker/Picker.js +10 -9
- package/src/Components/Report/Report.js +17 -14
- package/src/Components/Screens/Manager.js +22 -22
- package/src/Components/Tab/TabBar.js +293 -225
- package/src/Components/Toolbar/FilterToolbar.js +15 -11
- package/src/Components/Toolbar/Pagination.js +51 -46
- package/src/Components/Toolbar/PaginationToolbar.js +25 -19
- package/src/Components/Toolbar/Toolbar.js +26 -13
- package/src/Components/Tooltip/Tooltip.js +35 -0
- package/src/Components/Tree/Tree.js +134 -140
- package/src/Components/Tree/TreeNode.js +75 -36
- package/src/Components/Viewer/Viewer.js +203 -80
- package/src/Components/Window/Editor.js +0 -5
- package/src/Components/Window/UploadsDownloadsWindow.js +40 -22
- package/src/Components/index.js +11 -8
- package/src/Constants/Alert.js +0 -0
- package/src/Constants/AppStates.js +0 -0
- package/src/Constants/Colors.js +13 -0
- package/src/Constants/Commands.js +0 -0
- package/src/Constants/Date.js +0 -0
- package/src/Constants/Dates.js +16 -0
- package/src/Constants/Directions.js +0 -0
- package/src/Constants/Editor.js +0 -0
- package/src/Constants/EditorModes.js +2 -0
- package/src/Constants/File.js +0 -0
- package/src/Constants/Filters.js +0 -0
- package/src/Constants/Grid.js +0 -0
- package/src/Constants/Input.js +1 -0
- package/src/Constants/MimeTypes.js +0 -0
- package/src/Constants/Selection.js +0 -0
- package/src/Constants/Styles.js +119 -108
- package/src/Constants/Tasks.js +3 -0
- package/src/Constants/Tree.js +0 -0
- package/src/Constants/UiModes.js +4 -3
- package/src/Functions/BankersRound.js +0 -0
- package/src/Functions/Cypress/button_functions.js +0 -0
- package/src/Functions/Cypress/crud_functions.js +0 -0
- package/src/Functions/Cypress/dom_functions.js +0 -0
- package/src/Functions/Cypress/grid_functions.js +0 -0
- package/src/Functions/Cypress/navigation_functions.js +0 -0
- package/src/Functions/Cypress/tree_functions.js +0 -0
- package/src/Functions/Cypress/utilities.js +0 -0
- package/src/Functions/PlatformDetector.js +0 -0
- package/src/Functions/Timer.js +0 -0
- package/src/Functions/buildAdditionalButtons.js +5 -5
- package/src/Functions/chunkArray.js +0 -0
- package/src/Functions/colorConversions.js +74 -0
- package/src/Functions/delay.js +0 -0
- package/src/Functions/delayUntil.js +0 -0
- package/src/Functions/deleteSaved.js +0 -0
- package/src/Functions/deleteSecure.js +0 -0
- package/src/Functions/downloadInBackground.js +0 -0
- package/src/Functions/downloadWithFetch.js +0 -0
- package/src/Functions/emptyFn.js +0 -0
- package/src/Functions/getComponentFromType.js +0 -0
- package/src/Functions/getIconButtonFromConfig.js +5 -9
- package/src/Functions/getIsMobile.js +0 -0
- package/src/Functions/getNodeIcon.js +28 -0
- package/src/Functions/getPref.js +0 -0
- package/src/Functions/getSaved.js +0 -0
- package/src/Functions/getSecure.js +0 -0
- package/src/Functions/getTokenHeaders.js +0 -0
- package/src/Functions/gsToHex.js +205 -0
- package/src/Functions/ignoreWanings.js +46 -0
- package/src/Functions/inArray.js +0 -0
- package/src/Functions/isJson.js +0 -0
- package/src/Functions/isSerializable.js +0 -0
- package/src/Functions/isVideo.js +0 -0
- package/src/Functions/jsonValidator.js +0 -0
- package/src/Functions/nbToRgb.js +1 -1
- package/src/Functions/objectToClassName.js +72 -0
- package/src/Functions/parseNotification.js +0 -0
- package/src/Functions/processImage.js +0 -0
- package/src/Functions/registerReactNativeComponents.js +0 -0
- package/src/Functions/registerWebComponents.js +0 -0
- package/src/Functions/setCustomInflector.js +0 -0
- package/src/Functions/setPref.js +0 -0
- package/src/Functions/setProgress.js +0 -0
- package/src/Functions/setSaved.js +0 -0
- package/src/Functions/setSecure.js +0 -0
- package/src/Functions/setThemeOverrides.js +0 -0
- package/src/Functions/setUiSavesRepo.js +0 -0
- package/src/Functions/sleep.js +0 -0
- package/src/Functions/tailwindFunctions.js +384 -0
- package/src/Functions/testProps.js +0 -0
- package/src/Functions/trackEngagementHit.js +0 -0
- package/src/Functions/verifyCompleted.js +0 -0
- package/src/Functions/waitFor.js +2 -2
- package/src/PlatformImports/Web/Attachments.js +32 -38
- package/src/PlatformImports/Web/File.js +38 -31
- package/src/UiGlobals.js +8 -1
- package/src/Components/Grid/ColumnSelectorWindow.js +0 -125
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import { useState, useEffect, useRef, useMemo, } from 'react';
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
FlatList,
|
|
5
|
-
Modal,
|
|
3
|
+
HStack,
|
|
6
4
|
Pressable,
|
|
7
|
-
Icon,
|
|
8
|
-
Row,
|
|
9
5
|
ScrollView,
|
|
10
|
-
|
|
11
|
-
} from '
|
|
6
|
+
VStack,
|
|
7
|
+
} from '../Gluestack';
|
|
12
8
|
import {
|
|
13
9
|
SELECTION_MODE_SINGLE,
|
|
14
10
|
SELECTION_MODE_MULTI,
|
|
@@ -24,7 +20,6 @@ import {
|
|
|
24
20
|
EXPANDED,
|
|
25
21
|
LEAF,
|
|
26
22
|
} from '../../Constants/Tree.js';
|
|
27
|
-
import * as colourMixer from '@k-renwick/colour-mixer'
|
|
28
23
|
import UiGlobals from '../../UiGlobals.js';
|
|
29
24
|
import useForceUpdate from '../../Hooks/useForceUpdate.js';
|
|
30
25
|
import withContextMenu from '../Hoc/withContextMenu.js';
|
|
@@ -34,6 +29,7 @@ import withData from '../Hoc/withData.js';
|
|
|
34
29
|
import withEvents from '../Hoc/withEvents.js';
|
|
35
30
|
import withSideEditor from '../Hoc/withSideEditor.js';
|
|
36
31
|
import withFilters from '../Hoc/withFilters.js';
|
|
32
|
+
import withModal from '../Hoc/withModal.js';
|
|
37
33
|
import withMultiSelection from '../Hoc/withMultiSelection.js';
|
|
38
34
|
import withPresetButtons from '../Hoc/withPresetButtons.js';
|
|
39
35
|
import withPermissions from '../Hoc/withPermissions.js';
|
|
@@ -42,8 +38,8 @@ import withWindowedEditor from '../Hoc/withWindowedEditor.js';
|
|
|
42
38
|
import getIconButtonFromConfig from '../../Functions/getIconButtonFromConfig.js';
|
|
43
39
|
import inArray from '../../Functions/inArray.js';
|
|
44
40
|
import testProps from '../../Functions/testProps.js';
|
|
45
|
-
import
|
|
46
|
-
import
|
|
41
|
+
import CenterBox from '../Layout/CenterBox.js';
|
|
42
|
+
import ReloadButton from '../Buttons/ReloadButton.js';
|
|
47
43
|
import TreeNode, { DraggableTreeNode } from './TreeNode.js';
|
|
48
44
|
import FormPanel from '../Panel/FormPanel.js';
|
|
49
45
|
import Input from '../Form/Field/Input.js';
|
|
@@ -63,7 +59,12 @@ import Loading from '../Messages/Loading.js';
|
|
|
63
59
|
import Unauthorized from '../Messages/Unauthorized.js';
|
|
64
60
|
import _ from 'lodash';
|
|
65
61
|
|
|
66
|
-
const
|
|
62
|
+
const
|
|
63
|
+
DEPTH_INDENT_PX = 25,
|
|
64
|
+
SIMULATED_CLICK = 0,
|
|
65
|
+
SINGLE_CLICK = 1,
|
|
66
|
+
DOUBLE_CLICK = 2,
|
|
67
|
+
TRIPLE_CLICK = 3;
|
|
67
68
|
|
|
68
69
|
function TreeComponent(props) {
|
|
69
70
|
const {
|
|
@@ -121,6 +122,10 @@ function TreeComponent(props) {
|
|
|
121
122
|
alert,
|
|
122
123
|
confirm,
|
|
123
124
|
showInfo,
|
|
125
|
+
|
|
126
|
+
// withModal
|
|
127
|
+
showModal,
|
|
128
|
+
hideModal,
|
|
124
129
|
|
|
125
130
|
// withEditor
|
|
126
131
|
onAdd,
|
|
@@ -166,7 +171,6 @@ function TreeComponent(props) {
|
|
|
166
171
|
treeNodeData = useRef(),
|
|
167
172
|
[isReady, setIsReady] = useState(false),
|
|
168
173
|
[isLoading, setIsLoading] = useState(false),
|
|
169
|
-
[isModalShown, setIsModalShown] = useState(false),
|
|
170
174
|
[rowToDatumMap, setRowToDatumMap] = useState({}),
|
|
171
175
|
[searchResults, setSearchResults] = useState([]),
|
|
172
176
|
[searchFormData, setSearchFormData] = useState([]),
|
|
@@ -288,8 +292,6 @@ function TreeComponent(props) {
|
|
|
288
292
|
|
|
289
293
|
// Update the datum with the new entity
|
|
290
294
|
return onAfterEdit(entities);
|
|
291
|
-
|
|
292
|
-
|
|
293
295
|
},
|
|
294
296
|
onBeforeEditSave = (entities) => {
|
|
295
297
|
onBeforeSave(entities);
|
|
@@ -417,8 +419,52 @@ function TreeComponent(props) {
|
|
|
417
419
|
});
|
|
418
420
|
setSearchFormData(searchFormData);
|
|
419
421
|
setSearchResults(found);
|
|
420
|
-
|
|
422
|
+
showChooseTreeNode();
|
|
421
423
|
},
|
|
424
|
+
showChooseTreeNode = () => {
|
|
425
|
+
showModal({
|
|
426
|
+
body: <VStack className="bg-white w-[300px]">
|
|
427
|
+
<FormPanel
|
|
428
|
+
_panel={{
|
|
429
|
+
title: 'Choose Tree Node',
|
|
430
|
+
}}
|
|
431
|
+
instructions="Multiple tree nodes matched your search. Please select which one to show."
|
|
432
|
+
_form={{
|
|
433
|
+
flex: 1,
|
|
434
|
+
items: [
|
|
435
|
+
{
|
|
436
|
+
type: 'Column',
|
|
437
|
+
flex: 1,
|
|
438
|
+
items: [
|
|
439
|
+
{
|
|
440
|
+
key: 'node_id',
|
|
441
|
+
name: 'node_id',
|
|
442
|
+
type: 'Combo',
|
|
443
|
+
label: 'Tree Node',
|
|
444
|
+
data: searchFormData,
|
|
445
|
+
}
|
|
446
|
+
],
|
|
447
|
+
},
|
|
448
|
+
],
|
|
449
|
+
onCancel: (e) => {
|
|
450
|
+
setHighlitedDatum(null);
|
|
451
|
+
hideModal();
|
|
452
|
+
},
|
|
453
|
+
onSave: (data, e) => {
|
|
454
|
+
const
|
|
455
|
+
treeNode = _.find(searchResults, (item) => {
|
|
456
|
+
return item.id === data.node_id;
|
|
457
|
+
}),
|
|
458
|
+
cPath = treeNode.cPath;
|
|
459
|
+
expandPath(cPath);
|
|
460
|
+
hideModal();
|
|
461
|
+
},
|
|
462
|
+
}}
|
|
463
|
+
/>
|
|
464
|
+
</VStack>,
|
|
465
|
+
onCancel: hideModal,
|
|
466
|
+
});
|
|
467
|
+
};
|
|
422
468
|
|
|
423
469
|
// utilities
|
|
424
470
|
getNodeData = (id) => {
|
|
@@ -864,7 +910,7 @@ function TreeComponent(props) {
|
|
|
864
910
|
|
|
865
911
|
items.unshift(<Input // Add text input to beginning of header items
|
|
866
912
|
key="searchNodes"
|
|
867
|
-
flex
|
|
913
|
+
className="flex-1"
|
|
868
914
|
placeholder="Find tree node"
|
|
869
915
|
onChangeText={(val) => setTreeSearchValue(val)}
|
|
870
916
|
onKeyPress={(e) => {
|
|
@@ -916,11 +962,11 @@ function TreeComponent(props) {
|
|
|
916
962
|
return
|
|
917
963
|
}
|
|
918
964
|
switch (e.detail) {
|
|
919
|
-
case
|
|
920
|
-
case
|
|
965
|
+
case SIMULATED_CLICK:
|
|
966
|
+
case SINGLE_CLICK:
|
|
921
967
|
onNodeClick(item, e); // sets selection
|
|
922
968
|
break;
|
|
923
|
-
case
|
|
969
|
+
case DOUBLE_CLICK:
|
|
924
970
|
if (!isSelected) { // If a row was already selected when double-clicked, the first click will deselect it,
|
|
925
971
|
onNodeClick(item, e); // so reselect it
|
|
926
972
|
}
|
|
@@ -939,7 +985,7 @@ function TreeComponent(props) {
|
|
|
939
985
|
onView();
|
|
940
986
|
}
|
|
941
987
|
break;
|
|
942
|
-
case
|
|
988
|
+
case TRIPLE_CLICK:
|
|
943
989
|
break;
|
|
944
990
|
default:
|
|
945
991
|
}
|
|
@@ -960,38 +1006,21 @@ function TreeComponent(props) {
|
|
|
960
1006
|
const selection = [item];
|
|
961
1007
|
setSelection(selection);
|
|
962
1008
|
if (onContextMenu) {
|
|
963
|
-
onContextMenu(item, e, selection
|
|
1009
|
+
onContextMenu(item, e, selection);
|
|
964
1010
|
}
|
|
965
1011
|
}}
|
|
966
|
-
|
|
967
|
-
|
|
1012
|
+
className={`
|
|
1013
|
+
flex-row
|
|
1014
|
+
`}
|
|
1015
|
+
style={{
|
|
1016
|
+
paddingLeft: (areRootsVisible ? depth : depth -1) * DEPTH_INDENT_PX,
|
|
1017
|
+
}}
|
|
968
1018
|
>
|
|
969
1019
|
{({
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
1020
|
+
hovered,
|
|
1021
|
+
focused,
|
|
1022
|
+
pressed,
|
|
973
1023
|
}) => {
|
|
974
|
-
let bg = nodeProps.bg || styles.TREE_NODE_BG,
|
|
975
|
-
mixWith;
|
|
976
|
-
if (!isDragMode) {
|
|
977
|
-
if (isSelected) {
|
|
978
|
-
if (showHovers && isHovered) {
|
|
979
|
-
mixWith = styles.TREE_NODE_SELECTED_HOVER_BG;
|
|
980
|
-
} else {
|
|
981
|
-
mixWith = styles.TREE_NODE_SELECTED_BG;
|
|
982
|
-
}
|
|
983
|
-
} else if (showHovers && isHovered) {
|
|
984
|
-
mixWith = styles.TREE_NODE_HOVER_BG;
|
|
985
|
-
}
|
|
986
|
-
if (mixWith) {
|
|
987
|
-
const
|
|
988
|
-
mixWithObj = nbToRgb(mixWith),
|
|
989
|
-
ratio = mixWithObj.alpha ? 1 - mixWithObj.alpha : 0.5;
|
|
990
|
-
bg = colourMixer.blend(bg, ratio, mixWithObj.color);
|
|
991
|
-
}
|
|
992
|
-
} else {
|
|
993
|
-
|
|
994
|
-
}
|
|
995
1024
|
let WhichTreeNode = TreeNode,
|
|
996
1025
|
dragProps = {};
|
|
997
1026
|
if (canNodesReorder && isDragMode && !datum.item.isRoot) { // Can't drag root nodes
|
|
@@ -1006,18 +1035,18 @@ function TreeComponent(props) {
|
|
|
1006
1035
|
proxyParent: treeRef.current,
|
|
1007
1036
|
proxyPositionRelativeToParent: true,
|
|
1008
1037
|
};
|
|
1009
|
-
nodeProps.
|
|
1038
|
+
nodeProps.className = 'w-full';
|
|
1010
1039
|
}
|
|
1011
1040
|
|
|
1012
1041
|
return <WhichTreeNode
|
|
1013
|
-
nodeProps={nodeProps}
|
|
1014
|
-
{...dragProps}
|
|
1015
|
-
bg={bg}
|
|
1016
1042
|
datum={datum}
|
|
1043
|
+
nodeProps={nodeProps}
|
|
1017
1044
|
onToggle={onToggle}
|
|
1045
|
+
isSelected={isSelected}
|
|
1046
|
+
isHovered={hovered}
|
|
1018
1047
|
isDragMode={isDragMode}
|
|
1019
1048
|
isHighlighted={highlitedDatum === datum}
|
|
1020
|
-
|
|
1049
|
+
{...dragProps}
|
|
1021
1050
|
|
|
1022
1051
|
// fields={fields}
|
|
1023
1052
|
/>;
|
|
@@ -1210,7 +1239,7 @@ function TreeComponent(props) {
|
|
|
1210
1239
|
const
|
|
1211
1240
|
setTrue = () => setIsLoading(true),
|
|
1212
1241
|
setFalse = () => setIsLoading(false);
|
|
1213
|
-
|
|
1242
|
+
|
|
1214
1243
|
if (Repository.isLoading) {
|
|
1215
1244
|
setTrue();
|
|
1216
1245
|
}
|
|
@@ -1255,7 +1284,9 @@ function TreeComponent(props) {
|
|
|
1255
1284
|
}, [selectorId, selectorSelected]);
|
|
1256
1285
|
|
|
1257
1286
|
if (canUser && !canUser('view')) {
|
|
1258
|
-
return <
|
|
1287
|
+
return <CenterBox>
|
|
1288
|
+
<Unauthorized />
|
|
1289
|
+
</CenterBox>;
|
|
1259
1290
|
}
|
|
1260
1291
|
|
|
1261
1292
|
if (setWithEditListeners) {
|
|
@@ -1282,7 +1313,9 @@ function TreeComponent(props) {
|
|
|
1282
1313
|
footerToolbarItemComponents = useMemo(() => getFooterToolbarItems(), [Repository?.hash, additionalToolbarButtons, isDragMode, getTreeNodeData()]);
|
|
1283
1314
|
|
|
1284
1315
|
if (!isReady) {
|
|
1285
|
-
return <
|
|
1316
|
+
return <CenterBox>
|
|
1317
|
+
<Loading />
|
|
1318
|
+
</CenterBox>;
|
|
1286
1319
|
}
|
|
1287
1320
|
|
|
1288
1321
|
const treeNodes = renderTreeNodes(getTreeNodeData());
|
|
@@ -1298,103 +1331,64 @@ function TreeComponent(props) {
|
|
|
1298
1331
|
/>;
|
|
1299
1332
|
} else if (footerToolbarItemComponents.length) {
|
|
1300
1333
|
treeFooterComponent = <Toolbar>
|
|
1301
|
-
<
|
|
1334
|
+
<ReloadButton isTree={true} Repository={Repository} self={self} />
|
|
1302
1335
|
{footerToolbarItemComponents}
|
|
1303
1336
|
</Toolbar>;
|
|
1304
1337
|
}
|
|
1305
1338
|
}
|
|
1306
1339
|
|
|
1307
|
-
|
|
1340
|
+
let className = `
|
|
1341
|
+
Tree-VStack
|
|
1342
|
+
flex-1
|
|
1343
|
+
w-full
|
|
1344
|
+
min-w-[300px]
|
|
1345
|
+
`;
|
|
1308
1346
|
if (isDragMode) {
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1347
|
+
className += `
|
|
1348
|
+
${styles.GRID_REORDER_BORDER_COLOR}
|
|
1349
|
+
${styles.GRID_REORDER_BORDER_WIDTH}
|
|
1350
|
+
${styles.GRID_REORDER_BORDER_STYLE}
|
|
1351
|
+
`;
|
|
1312
1352
|
} else {
|
|
1313
|
-
|
|
1314
|
-
|
|
1353
|
+
if (isLoading) {
|
|
1354
|
+
className += ' border-t-2 border-[#f00]';
|
|
1355
|
+
} else {
|
|
1356
|
+
className += ' border-t-1 border-grey-300';
|
|
1357
|
+
}
|
|
1358
|
+
}
|
|
1359
|
+
if (props.className) {
|
|
1360
|
+
className += ' ' + props.className;
|
|
1315
1361
|
}
|
|
1316
1362
|
|
|
1317
|
-
return
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
>
|
|
1323
|
-
{topToolbar}
|
|
1324
|
-
|
|
1325
|
-
{headerToolbarItemComponents?.length && <Row>{headerToolbarItemComponents}</Row>}
|
|
1326
|
-
|
|
1327
|
-
<Column
|
|
1328
|
-
ref={treeRef}
|
|
1329
|
-
w="100%"
|
|
1330
|
-
flex={1}
|
|
1331
|
-
p={2}
|
|
1332
|
-
bg="#fff"
|
|
1333
|
-
{...borderProps}
|
|
1334
|
-
onClick={() => {
|
|
1335
|
-
if (!isDragMode) {
|
|
1336
|
-
deselectAll();
|
|
1337
|
-
}
|
|
1338
|
-
}}
|
|
1339
|
-
>
|
|
1340
|
-
<ScrollView {...testProps('ScrollView')} flex={1} w="100%">
|
|
1341
|
-
{!treeNodes?.length ?
|
|
1342
|
-
<NoRecordsFound text={noneFoundText} onRefresh={reloadTree} /> :
|
|
1343
|
-
treeNodes}
|
|
1344
|
-
</ScrollView>
|
|
1345
|
-
</Column>
|
|
1346
|
-
|
|
1347
|
-
{treeFooterComponent}
|
|
1363
|
+
return <VStack
|
|
1364
|
+
{...testProps(self)}
|
|
1365
|
+
className={className}
|
|
1366
|
+
>
|
|
1367
|
+
{topToolbar}
|
|
1348
1368
|
|
|
1349
|
-
</
|
|
1369
|
+
{headerToolbarItemComponents?.length && <HStack>{headerToolbarItemComponents}</HStack>}
|
|
1350
1370
|
|
|
1351
|
-
<
|
|
1352
|
-
|
|
1353
|
-
|
|
1371
|
+
<VStack
|
|
1372
|
+
ref={treeRef}
|
|
1373
|
+
onClick={() => {
|
|
1374
|
+
if (!isDragMode) {
|
|
1375
|
+
deselectAll();
|
|
1376
|
+
}
|
|
1377
|
+
}}
|
|
1378
|
+
className="Tree-deselector w-full flex-1 p-1 bg-white"
|
|
1354
1379
|
>
|
|
1355
|
-
<
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
items: [
|
|
1368
|
-
{
|
|
1369
|
-
key: 'node_id',
|
|
1370
|
-
name: 'node_id',
|
|
1371
|
-
type: 'Combo',
|
|
1372
|
-
label: 'Tree Node',
|
|
1373
|
-
data: searchFormData,
|
|
1374
|
-
}
|
|
1375
|
-
],
|
|
1376
|
-
},
|
|
1377
|
-
],
|
|
1378
|
-
onCancel: (e) => {
|
|
1379
|
-
setHighlitedDatum(null);
|
|
1380
|
-
setIsModalShown(false);
|
|
1381
|
-
},
|
|
1382
|
-
onSave: (data, e) => {
|
|
1383
|
-
const
|
|
1384
|
-
treeNode = _.find(searchResults, (item) => {
|
|
1385
|
-
return item.id === data.node_id;
|
|
1386
|
-
}),
|
|
1387
|
-
cPath = treeNode.cPath;
|
|
1388
|
-
expandPath(cPath);
|
|
1389
|
-
|
|
1390
|
-
// Close the modal
|
|
1391
|
-
setIsModalShown(false);
|
|
1392
|
-
},
|
|
1393
|
-
}}
|
|
1394
|
-
/>
|
|
1395
|
-
</Column>
|
|
1396
|
-
</Modal>
|
|
1397
|
-
</>;
|
|
1380
|
+
<ScrollView {...testProps('ScrollView')} className="ScrollView flex-1 w-full">
|
|
1381
|
+
{!treeNodes?.length ?
|
|
1382
|
+
<CenterBox>
|
|
1383
|
+
<NoRecordsFound text={noneFoundText} onRefresh={reloadTree} />
|
|
1384
|
+
</CenterBox> :
|
|
1385
|
+
treeNodes}
|
|
1386
|
+
</ScrollView>
|
|
1387
|
+
</VStack>
|
|
1388
|
+
|
|
1389
|
+
{treeFooterComponent}
|
|
1390
|
+
|
|
1391
|
+
</VStack>;
|
|
1398
1392
|
|
|
1399
1393
|
}
|
|
1400
1394
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { useMemo, } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
Box,
|
|
4
|
+
HStack,
|
|
4
5
|
Icon,
|
|
5
|
-
Row,
|
|
6
6
|
Spinner,
|
|
7
|
-
|
|
8
|
-
} from '
|
|
7
|
+
TextNative,
|
|
8
|
+
} from '../Gluestack';
|
|
9
|
+
import * as colourMixer from '@k-renwick/colour-mixer';
|
|
9
10
|
import UiGlobals from '../../UiGlobals.js';
|
|
10
11
|
import withDraggable from '../Hoc/withDraggable.js';
|
|
11
12
|
import IconButton from '../Buttons/IconButton.js';
|
|
@@ -16,13 +17,14 @@ import _ from 'lodash';
|
|
|
16
17
|
|
|
17
18
|
export default function TreeNode(props) {
|
|
18
19
|
const {
|
|
19
|
-
nodeProps = {},
|
|
20
|
-
bg,
|
|
21
20
|
datum,
|
|
21
|
+
nodeProps = {},
|
|
22
22
|
onToggle,
|
|
23
|
+
isSelected,
|
|
24
|
+
isHovered,
|
|
23
25
|
isDragMode,
|
|
24
26
|
isHighlighted,
|
|
25
|
-
|
|
27
|
+
bg,
|
|
26
28
|
...propsToPass
|
|
27
29
|
} = props,
|
|
28
30
|
styles = UiGlobals.styles,
|
|
@@ -38,60 +40,97 @@ export default function TreeNode(props) {
|
|
|
38
40
|
iconLeaf = datum.iconLeaf,
|
|
39
41
|
hash = item?.hash || item;
|
|
40
42
|
|
|
41
|
-
const
|
|
42
|
-
icon = hasChildren ? (isExpanded ? iconExpanded : iconCollapsed) : iconLeaf,
|
|
43
|
-
adjustedBg = isHighlighted ? styles.TREE_NODE_HIGHLIGHTED_BG : bg;
|
|
44
|
-
|
|
45
43
|
return useMemo(() => {
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
const icon = hasChildren ? (isExpanded ? iconExpanded : iconCollapsed) : iconLeaf;
|
|
45
|
+
let bg = props.bg || styles.TREE_NODE_BG,
|
|
46
|
+
mixWith;
|
|
47
|
+
if (isSelected) {
|
|
48
|
+
if (isHovered) {
|
|
49
|
+
mixWith = styles.TREE_NODE_SELECTED_BG_HOVER;
|
|
50
|
+
} else {
|
|
51
|
+
mixWith = styles.TREE_NODE_SELECTED_BG;
|
|
52
|
+
}
|
|
53
|
+
} else if (isHovered) {
|
|
54
|
+
mixWith = styles.TREE_NODE_BG_HOVER;
|
|
55
|
+
}
|
|
56
|
+
if (isHighlighted) {
|
|
57
|
+
mixWith = styles.TREE_NODE_HIGHLIGHTED_BG;
|
|
58
|
+
}
|
|
59
|
+
if (mixWith) {
|
|
60
|
+
// const
|
|
61
|
+
// mixWithObj = gsToHex(mixWith),
|
|
62
|
+
// ratio = mixWithObj.alpha ? 1 - mixWithObj.alpha : 0.5;
|
|
63
|
+
// bg = colourMixer.blend(bg, ratio, mixWithObj.color);
|
|
64
|
+
bg = colourMixer.blend(bg, 0.5, mixWith);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
let className = `
|
|
68
|
+
treenode
|
|
69
|
+
items-center
|
|
70
|
+
flex
|
|
71
|
+
flex-1
|
|
72
|
+
grow-1
|
|
73
|
+
`;
|
|
74
|
+
if (props.className) {
|
|
75
|
+
className += ' ' + props.className;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return <HStack
|
|
48
79
|
{...testProps('node' + (isSelected ? '-selected' : ''))}
|
|
49
|
-
alignItems="center"
|
|
50
|
-
flexGrow={1}
|
|
51
80
|
{...nodeProps}
|
|
52
|
-
bg={adjustedBg}
|
|
53
81
|
key={hash}
|
|
82
|
+
className={className}
|
|
83
|
+
style={{
|
|
84
|
+
backgroundColor: bg,
|
|
85
|
+
}}
|
|
54
86
|
>
|
|
55
|
-
{isPhantom && <Box
|
|
87
|
+
{isPhantom && <Box t={0} l={0} className="absolute bg-[#f00] h-[2px] w-[2px]" />}
|
|
56
88
|
|
|
57
89
|
{isLoading ?
|
|
58
|
-
<Spinner px
|
|
90
|
+
<Spinner className="px-2" /> :
|
|
59
91
|
(hasChildren && !isDragMode ?
|
|
60
92
|
<IconButton
|
|
93
|
+
{...testProps('expandBtn')}
|
|
61
94
|
icon={icon}
|
|
62
95
|
onPress={(e) => onToggle(datum, e)}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
<
|
|
67
|
-
overflow="hidden"
|
|
68
|
-
textOverflow="ellipsis"
|
|
69
|
-
alignSelf="center"
|
|
70
|
-
style={{ userSelect: 'none', }}
|
|
71
|
-
fontSize={styles.TREE_NODE_FONTSIZE}
|
|
72
|
-
px={styles.TREE_NODE_PX}
|
|
73
|
-
py={styles.TREE_NODE_PY}
|
|
96
|
+
/> :
|
|
97
|
+
<Icon as={icon} className="ml-4 mr-1" />)}
|
|
98
|
+
|
|
99
|
+
<TextNative
|
|
74
100
|
numberOfLines={1}
|
|
75
101
|
ellipsizeMode="head"
|
|
76
|
-
{...propsToPass}
|
|
77
|
-
|
|
102
|
+
// {...propsToPass}
|
|
103
|
+
className={`
|
|
104
|
+
treenode-text
|
|
105
|
+
self-center
|
|
106
|
+
overflow-hidden
|
|
107
|
+
flex
|
|
108
|
+
flex-1
|
|
109
|
+
text-ellipsis
|
|
110
|
+
${styles.TREE_NODE_PY}
|
|
111
|
+
${styles.TREE_NODE_PX}
|
|
112
|
+
${styles.TREE_NODE_FONTSIZE}
|
|
113
|
+
`}
|
|
114
|
+
style={{ userSelect: 'none', }}
|
|
115
|
+
>{text}</TextNative>
|
|
78
116
|
|
|
79
|
-
</
|
|
117
|
+
</HStack>;
|
|
80
118
|
}, [
|
|
81
119
|
nodeProps,
|
|
82
|
-
|
|
120
|
+
bg,
|
|
83
121
|
item,
|
|
84
|
-
isPhantom,
|
|
85
122
|
hash, // this is an easy way to determine if the data has changed and the item needs to be rerendered
|
|
123
|
+
isDragMode,
|
|
124
|
+
isHighlighted,
|
|
125
|
+
isSelected,
|
|
126
|
+
isPhantom,
|
|
86
127
|
isExpanded,
|
|
128
|
+
isLoading,
|
|
87
129
|
hasChildren,
|
|
88
130
|
depth,
|
|
89
131
|
text,
|
|
90
|
-
icon,
|
|
91
132
|
onToggle,
|
|
92
133
|
isLoading,
|
|
93
|
-
isDragMode,
|
|
94
|
-
isHighlighted,
|
|
95
134
|
]);
|
|
96
135
|
}
|
|
97
136
|
|