@dataloop-ai/components 0.18.0 → 0.18.2

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.
Files changed (277) hide show
  1. package/package.json +6 -3
  2. package/src/App.vue +5 -227
  3. package/src/assets/constants.scss +2 -1
  4. package/src/assets/globals.scss +21 -0
  5. package/src/components/basic/DlAccordion/DlAccordion.vue +26 -4
  6. package/src/components/basic/DlAccordion/components/AccordionHeader.vue +2 -1
  7. package/src/components/basic/DlAvatar/DlAvatar.vue +1 -1
  8. package/src/components/basic/DlButton/DlButton.vue +115 -25
  9. package/src/components/basic/DlButton/utils.ts +45 -2
  10. package/src/components/basic/DlChip/DlChip.vue +3 -7
  11. package/src/components/basic/DlChip/utils.ts +4 -4
  12. package/src/components/basic/DlContainer/DlContainer.vue +70 -0
  13. package/src/components/basic/DlContainer/index.ts +3 -0
  14. package/src/components/basic/DlEmptyState/DlEmptyState.vue +282 -0
  15. package/src/components/basic/DlEmptyState/index.ts +2 -0
  16. package/src/components/basic/DlEmptyState/types.ts +20 -0
  17. package/src/components/basic/DlGrid/DlGrid.vue +163 -0
  18. package/src/components/basic/DlGrid/index.ts +4 -0
  19. package/src/components/basic/DlGrid/types.ts +5 -0
  20. package/src/components/basic/DlKpi/components/KpiInfo.vue +2 -1
  21. package/src/components/basic/DlListItem/DlListItem.vue +96 -66
  22. package/src/components/basic/DlListItem/utils.ts +0 -3
  23. package/src/components/basic/DlPanelContainer/DlPanelContainer.vue +37 -13
  24. package/src/components/basic/DlPopup/DlPopup.vue +58 -11
  25. package/src/components/basic/DlPopup/components/PopupHeader.vue +11 -6
  26. package/src/components/basic/DlProgressChart/DlProgressChart.vue +2 -1
  27. package/src/components/basic/DlWidget/DlWidget.vue +273 -141
  28. package/src/components/basic/DlWidget/index.ts +1 -3
  29. package/src/components/basic/DlWidget/utils.ts +90 -8
  30. package/src/components/basic/index.ts +4 -2
  31. package/src/components/basic/types.ts +2 -0
  32. package/src/components/compound/DlCard/DlCard.vue +796 -0
  33. package/src/components/compound/DlCard/components/DescriptionModal.vue +137 -0
  34. package/src/components/compound/DlCard/types.ts +38 -0
  35. package/src/components/compound/DlCharts/charts/DlBarChart/DlBarChart.vue +39 -4
  36. package/src/components/compound/DlCharts/charts/DlColumnChart/DlColumnChart.vue +128 -36
  37. package/src/components/compound/DlCharts/charts/DlConfusionMatrix/DlConfusionMatrix.vue +167 -87
  38. package/src/components/compound/DlCharts/charts/DlConfusionMatrix/utils.ts +2 -1
  39. package/src/components/compound/DlCharts/charts/DlDoughnutChart/DlDoughnutChart.vue +44 -3
  40. package/src/components/compound/DlCharts/charts/DlDoughnutChart/DlDoughnutChartWidget.vue +1 -2
  41. package/src/components/compound/DlCharts/charts/DlDoughnutChart/components/DlDoughnutChartLegend.vue +9 -18
  42. package/src/components/compound/DlCharts/charts/DlLineChart/DlLineChart.vue +48 -9
  43. package/src/components/compound/DlCharts/charts/DlScatterChart/DlScatterChart.vue +667 -0
  44. package/src/components/compound/DlCharts/charts/DlScatterChart/index.ts +2 -0
  45. package/src/components/compound/DlCharts/charts/index.ts +1 -0
  46. package/src/components/compound/DlCharts/components/DlBrush.vue +3 -2
  47. package/src/components/compound/DlCharts/components/DlChartLabels.vue +2 -1
  48. package/src/components/compound/DlCharts/components/DlChartScrollBar.vue +1 -0
  49. package/src/components/compound/DlCharts/types/props.ts +5 -1
  50. package/src/components/compound/DlCharts/utils.ts +1 -1
  51. package/src/components/compound/DlCodeEditor/DlCodeEditor.vue +173 -0
  52. package/src/components/compound/DlCodeEditor/README.md +11 -0
  53. package/src/components/compound/DlCodeEditor/components/CodeEditor.vue +705 -0
  54. package/src/components/compound/DlCodeEditor/index.ts +3 -0
  55. package/src/components/compound/DlCodeEditor/styles/themes-base16.css +12809 -0
  56. package/src/components/compound/DlCodeEditor/styles/themes.css +3999 -0
  57. package/src/components/compound/DlCodeEditor/types.ts +21 -0
  58. package/src/components/compound/DlDateTime/DlDatePicker/DlDatePicker.vue +9 -1
  59. package/src/components/compound/DlDateTime/DlDatePicker/components/DlCalendar.vue +4 -2
  60. package/src/components/compound/DlDateTime/DlDatePicker/components/DlMonthCalendar.vue +2 -1
  61. package/src/components/compound/DlDateTime/DlDateTimeRange/{DlCardSidebar.vue → CardSidebar.vue} +10 -11
  62. package/src/components/compound/DlDateTime/DlDateTimeRange/DlDateTimeRange.vue +18 -9
  63. package/src/components/compound/DlDateTime/DlTimePicker/DlTimePicker.vue +2 -2
  64. package/src/components/compound/DlDialogBox/DlDialogBox.vue +74 -15
  65. package/src/components/compound/DlDialogBox/components/DlDialogBoxFooter.vue +1 -1
  66. package/src/components/compound/DlDialogBox/components/DlDialogBoxHeader.vue +9 -7
  67. package/src/components/compound/DlDropdownButton/DlDropdownButton.vue +13 -4
  68. package/src/components/compound/DlInput/DlInput.vue +80 -17
  69. package/src/components/compound/DlJsonEditor/DlJsonEditor.vue +42 -219
  70. package/src/components/compound/DlOptionGroup/DlOptionGroup.vue +16 -17
  71. package/src/components/compound/DlOptionGroup/components/MenuItemWrapper.vue +2 -2
  72. package/src/components/compound/DlPagination/DlPagination.vue +1 -1
  73. package/src/components/compound/DlPagination/components/PaginationLegend.vue +0 -2
  74. package/src/components/compound/DlPagination/components/RowsSelector.vue +0 -2
  75. package/src/components/compound/DlRange/DlRange.vue +3 -2
  76. package/src/components/compound/DlSearches/DlSearch/DlSearch.vue +12 -5
  77. package/src/components/compound/DlSearches/DlSmartSearch/DlSmartSearch.vue +413 -97
  78. package/src/components/compound/DlSearches/DlSmartSearch/components/DlSmartSearchFilters.vue +4 -1
  79. package/src/components/compound/DlSearches/DlSmartSearch/components/DlSmartSearchInput.vue +100 -39
  80. package/src/components/compound/DlSearches/DlSmartSearch/components/DlSuggestionsDropdown.vue +12 -7
  81. package/src/components/compound/DlSearches/DlSmartSearch/components/FiltersQuery.vue +5 -6
  82. package/src/components/compound/DlSearches/DlSmartSearch/types.ts +14 -0
  83. package/src/components/compound/DlSearches/DlSmartSearch/utils/highlightSyntax.ts +10 -6
  84. package/src/components/compound/DlSearches/DlSmartSearch/utils/index.ts +172 -48
  85. package/src/components/compound/DlSelect/DlSelect.vue +264 -130
  86. package/src/components/compound/DlSelect/utils.ts +4 -1
  87. package/src/components/compound/DlSlider/DlSlider.vue +10 -2
  88. package/src/components/compound/DlSlider/components/DlSliderBase.vue +3 -3
  89. package/src/components/compound/DlSlider/components/DlSliderInput.vue +17 -26
  90. package/src/components/compound/DlSlider/sliderStyles.scss +5 -1
  91. package/src/components/compound/DlSlider/useSlider.ts +2 -2
  92. package/src/components/compound/DlSlider/utils.ts +2 -2
  93. package/src/components/compound/DlStepper/DlStepper.vue +46 -4
  94. package/src/components/compound/DlStepper/components/DlStepperContent.vue +6 -2
  95. package/src/components/compound/DlStepper/components/DlStepperFooter.vue +12 -0
  96. package/src/components/compound/DlStepper/components/DlStepperSidebar.vue +24 -11
  97. package/src/components/compound/DlStepper/models/Step.ts +37 -8
  98. package/src/components/compound/DlStepper/models/Stepper.ts +108 -15
  99. package/src/components/compound/DlStepper/models/interfaces.ts +2 -1
  100. package/src/components/compound/DlTable/DlTable.vue +49 -14
  101. package/src/components/compound/DlTable/components/DlTd.vue +9 -9
  102. package/src/components/compound/DlTable/components/DlTh.vue +3 -2
  103. package/src/components/compound/DlTable/hooks/tableColumnSelection.ts +35 -40
  104. package/src/components/compound/DlTable/hooks/tableFilter.ts +33 -21
  105. package/src/components/compound/DlTable/hooks/tablePagination.ts +18 -18
  106. package/src/components/compound/DlTable/hooks/tableRowExpand.ts +2 -1
  107. package/src/components/compound/DlTable/hooks/tableRowSelection.ts +0 -1
  108. package/src/components/compound/DlTable/hooks/tableSort.ts +52 -47
  109. package/src/components/compound/DlTable/styles/dl-table-styles.scss +8 -0
  110. package/src/components/compound/DlTabs/DlTabs.vue +83 -31
  111. package/src/components/compound/DlTabs/components/DlTab.vue +14 -4
  112. package/src/components/compound/DlTabs/components/TabsWrapper.vue +32 -27
  113. package/src/components/compound/DlThumbnailGallery/DlThumbnailGallery.vue +268 -0
  114. package/src/components/compound/DlThumbnailGallery/index.ts +2 -0
  115. package/src/components/compound/DlThumbnailGallery/types.ts +11 -0
  116. package/src/components/compound/DlToast/api/useToast.ts +42 -1
  117. package/src/components/compound/DlToast/components/ToastComponent.vue +24 -32
  118. package/src/components/compound/DlToast/types.ts +52 -0
  119. package/src/components/compound/DlTreeTable/DlTreeTable.vue +1293 -0
  120. package/src/components/compound/DlTreeTable/components/DlTdTree.vue +119 -0
  121. package/src/components/compound/DlTreeTable/components/DlTrTree.vue +52 -0
  122. package/src/components/compound/DlTreeTable/index.ts +3 -0
  123. package/src/components/compound/DlTreeTable/types.ts +1 -0
  124. package/src/components/compound/DlTreeTable/utils/convertToNestedObject.ts +51 -0
  125. package/src/components/compound/DlTreeTable/utils/flatTreeData.ts +19 -0
  126. package/src/components/compound/DlTreeTable/utils/getFromChildren.ts +39 -0
  127. package/src/components/compound/DlTreeTable/utils/trSpacing.ts +13 -0
  128. package/src/components/compound/DlTreeTable/utils/treeTableRowSelection.ts +184 -0
  129. package/src/components/compound/index.ts +14 -1
  130. package/src/components/compound/types.ts +2 -0
  131. package/src/components/essential/DlBadge/DlBadge.vue +3 -3
  132. package/src/components/essential/DlCheckbox/DlCheckbox.vue +10 -7
  133. package/src/components/essential/DlEllipsis/DlEllipsis.vue +141 -0
  134. package/src/components/essential/DlIcon/DlIcon.vue +5 -5
  135. package/src/components/essential/DlLabel/DlLabel.vue +190 -0
  136. package/src/components/essential/DlLabel/index.ts +2 -0
  137. package/src/components/essential/DlList/DlList.vue +3 -3
  138. package/src/components/essential/DlMenu/DlMenu.vue +41 -22
  139. package/src/components/essential/DlMenu/utils.ts +8 -7
  140. package/src/components/essential/DlPageLayout/DlPageLayout.vue +90 -0
  141. package/src/components/essential/DlPageLayout/index.ts +2 -0
  142. package/src/components/essential/DlProgressBar/DlProgressBar.vue +1 -1
  143. package/src/components/essential/DlRadio/DlRadio.vue +10 -5
  144. package/src/components/essential/DlSeparator/DlSeparator.vue +2 -2
  145. package/src/components/essential/DlSpinner/index.ts +1 -13
  146. package/src/components/essential/DlSpinner/styles/spinnerStyles.scss +7 -0
  147. package/src/components/essential/DlSwitch/DlSwitch.vue +6 -3
  148. package/src/components/essential/DlTextArea/DlTextArea.vue +212 -7
  149. package/src/components/essential/DlThemeProvider/DlThemeProvider.vue +6 -0
  150. package/src/components/essential/DlTypography/DlTypography.vue +7 -1
  151. package/src/components/essential/index.ts +3 -2
  152. package/src/components/shared/DlInfoErrorMessage/DlInfoErrorMessage.vue +1 -1
  153. package/src/components/{essential → shared}/DlTooltip/DlTooltip.vue +26 -19
  154. package/src/components/shared/DlVirtualScroll/DlVirtualScroll.vue +106 -43
  155. package/src/components/shared/DlVirtualScroll/useVirtualScroll.ts +28 -4
  156. package/src/components/shared/index.ts +1 -0
  157. package/src/components/types.ts +2 -0
  158. package/src/demos/BarChartDemo.vue +59 -2
  159. package/src/demos/ColumnChartDemo.vue +67 -2
  160. package/src/demos/DlAccordionDemo.vue +92 -43
  161. package/src/demos/DlAlertDemo.vue +14 -0
  162. package/src/demos/DlButtonDemo.vue +41 -4
  163. package/src/demos/DlCardDemo.vue +156 -19
  164. package/src/demos/DlChartDoughnutDemo.vue +49 -2
  165. package/src/demos/DlCheckboxDemo.vue +28 -3
  166. package/src/demos/DlCodeEditor/DlCodeEditorDemo.vue +247 -0
  167. package/src/demos/DlCodeEditor/index.ts +2 -0
  168. package/src/demos/DlConfusionMatrixDemo.vue +93 -37
  169. package/src/demos/DlDemoPage.vue +235 -0
  170. package/src/demos/DlDialogBoxDemo.vue +56 -51
  171. package/src/demos/DlDropdownButtonDemo.vue +35 -27
  172. package/src/demos/DlEmptyStateDemo.vue +81 -0
  173. package/src/demos/DlGridDemo.vue +40 -0
  174. package/src/demos/DlInputDemo.vue +21 -1
  175. package/src/demos/DlJsonEditorDemo.vue +59 -0
  176. package/src/demos/DlLabelDemo.vue +208 -0
  177. package/src/demos/DlLineChartDemo.vue +50 -2
  178. package/src/demos/DlListDemo.vue +12 -9
  179. package/src/demos/DlMenuDemo.vue +147 -20
  180. package/src/demos/DlPageLayoutDemo.vue +146 -0
  181. package/src/demos/DlPanelContainerDemo.vue +113 -2
  182. package/src/demos/DlPopupDemo.vue +82 -1
  183. package/src/demos/DlRadioDemo.vue +16 -1
  184. package/src/demos/DlScatterChartDemo.vue +161 -0
  185. package/src/demos/DlSearchDemo.vue +9 -0
  186. package/src/demos/DlSelectDemo.vue +124 -27
  187. package/src/demos/DlSpinnerDemo.vue +0 -2
  188. package/src/demos/DlStepperDemo/DlStepperDemo.vue +5 -1
  189. package/src/demos/DlStepperDemo/EmptyStateStepper.vue +149 -0
  190. package/src/demos/DlStepperDemo/SimpleStepper.vue +4 -0
  191. package/src/demos/DlStepperDemo/steps/GeneralStep.vue +1 -0
  192. package/src/demos/DlSwitchDemo.vue +12 -0
  193. package/src/demos/DlTableDemo.vue +84 -5
  194. package/src/demos/DlTabsDemo.vue +92 -3
  195. package/src/demos/DlTextAreaDemo.vue +14 -17
  196. package/src/demos/DlThumbnailGalleryDemo.vue +99 -0
  197. package/src/demos/DlToastDemo.vue +3 -9
  198. package/src/demos/DlTooltipDemo.vue +66 -2
  199. package/src/demos/DlTreeTableDemo.vue +694 -0
  200. package/src/demos/DlVirtualScrollDemo.vue +3 -12
  201. package/src/demos/DlWidgetDemo.vue +252 -61
  202. package/src/demos/SmartSearchDemo/DlSmartSearchDemo.vue +151 -32
  203. package/src/demos/index.ts +23 -4
  204. package/src/hooks/use-anchor.ts +15 -17
  205. package/src/hooks/use-arrow-navigation.ts +64 -21
  206. package/src/hooks/use-model-toggle.ts +14 -16
  207. package/src/hooks/use-portal.ts +9 -3
  208. package/src/hooks/use-scroll-target.ts +2 -4
  209. package/src/hooks/use-size-observer.ts +3 -2
  210. package/src/hooks/use-suggestions.ts +239 -49
  211. package/src/hooks/use-transition.ts +10 -4
  212. package/src/index.ts +22 -1
  213. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetFooter.vue +78 -0
  214. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetHeader.vue +22 -0
  215. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetLeftDrawer.vue +96 -0
  216. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetMainContent.vue +51 -0
  217. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetRightDrawer.vue +88 -0
  218. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/ActionsMenu.vue +70 -0
  219. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/AutomationMenu.vue +106 -0
  220. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/CardView.vue +101 -0
  221. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/CardViewGallery.vue +141 -0
  222. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/CardViewTable.vue +193 -0
  223. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/EmptyState/LayoutEmptyState.vue +227 -0
  224. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/EmptyState/UploadData.vue +106 -0
  225. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/MainContentImages.vue +540 -0
  226. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/MainContentNav.vue +329 -0
  227. package/src/layouts/DlDatasetBrowser/DemoComponents/NavbarKpi.vue +84 -0
  228. package/src/layouts/DlDatasetBrowser/DemoComponents/NavbarSearch.vue +132 -0
  229. package/src/layouts/DlDatasetBrowser/DemoComponents/SearchFilterMenu.vue +19 -0
  230. package/src/layouts/DlDatasetBrowser/DemoComponents/filters/AddFilter.vue +212 -0
  231. package/src/layouts/DlDatasetBrowser/DemoComponents/types/imageMetadata.ts +28 -0
  232. package/src/layouts/DlDatasetBrowser/DlDatasetBrowser.vue +42 -0
  233. package/src/layouts/DlStudioLayout/DlStudioLayout.vue +42 -0
  234. package/src/layouts/DlStudioLayout/components/Demo/LeftMenuContent.vue +23 -0
  235. package/src/layouts/DlStudioLayout/components/Demo/StudioFooter.vue +25 -0
  236. package/src/layouts/DlStudioLayout/components/Demo/StudioHeader.vue +121 -0
  237. package/src/layouts/DlStudioLayout/components/Demo/StudioLeftDrawer.vue +245 -0
  238. package/src/layouts/DlStudioLayout/components/Demo/StudioMainContent.vue +31 -0
  239. package/src/layouts/DlStudioLayout/components/Demo/StudioTabsMenu.vue +117 -0
  240. package/src/layouts/DlStudioLayout/components/Demo/TabMenu/FilterMenu.vue +62 -0
  241. package/src/layouts/DlStudioLayout/components/Demo/TabMenu/TabMenuAnnotations.vue +98 -0
  242. package/src/layouts/DlStudioLayout/components/Demo/TabMenu/TabMenuItem.vue +66 -0
  243. package/src/layouts/DlStudioLayout/components/LayoutNavbar.vue +24 -0
  244. package/src/layouts/DlStudioLayout/components/ListAutocomplete.vue +149 -0
  245. package/src/layouts/DlStudioLayout/components/NavigationDrawer.vue +147 -0
  246. package/src/layouts/DlStudioLayout/index.ts +2 -0
  247. package/src/layouts/DlStudioLayout/types/HorizontalItems.ts +9 -0
  248. package/src/layouts/DlStudioLayout/types/VerticalItems.ts +10 -0
  249. package/src/simple-code-editor.d.ts +1 -0
  250. package/src/utils/click-outside.ts +1 -1
  251. package/src/utils/dom.ts +5 -5
  252. package/src/utils/events.ts +3 -3
  253. package/src/utils/global-nodes.ts +2 -2
  254. package/src/utils/input-sizes.ts +5 -2
  255. package/src/utils/is-ellipsis-active.ts +4 -1
  256. package/src/utils/parse-smart-query.ts +209 -111
  257. package/src/utils/portal.ts +5 -5
  258. package/src/utils/position-engine.ts +7 -7
  259. package/src/utils/render.ts +1 -1
  260. package/src/utils/scroll.ts +2 -2
  261. package/src/utils/selection.ts +3 -3
  262. package/vite.config.ts +9 -1
  263. package/src/components/basic/DlCard/DlCard.vue +0 -241
  264. package/src/components/basic/DlCard/types.ts +0 -20
  265. package/src/components/basic/DlEllipsis/DlEllipsis.vue +0 -114
  266. package/src/components/basic/DlWidget/DlGrid.vue +0 -33
  267. package/src/components/basic/DlWidget/DlGridRow.vue +0 -32
  268. package/src/components/compound/DlSearches/DlSmartSearch/utils/utils.ts +0 -124
  269. package/src/components/compound/DlToast/utils/config.ts +0 -17
  270. package/src/components/essential/DlTextHolder/DlTextHolder.vue +0 -65
  271. package/src/components/essential/DlTextHolder/index.ts +0 -2
  272. package/src/demos/DlTextHolderDemo.vue +0 -42
  273. package/src/utils/swapNodes.ts +0 -30
  274. /package/src/components/{basic → compound}/DlCard/index.ts +0 -0
  275. /package/src/components/compound/DlDateTime/DlDateTimeRange/{DlDateInput.vue → DateInput.vue} +0 -0
  276. /package/src/components/{basic → essential}/DlEllipsis/index.ts +0 -0
  277. /package/src/components/{essential → shared}/DlTooltip/index.ts +0 -0
@@ -1,6 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  :id="uuid"
4
+ :style="cssVars"
4
5
  :class="rootContainerClasses"
5
6
  >
6
7
  <div :class="wrapperClasses">
@@ -33,9 +34,16 @@
33
34
  </dl-tooltip>
34
35
  </span>
35
36
  </div>
37
+ <div
38
+ v-if="!!topMessage.length && !isSmall"
39
+ class="break"
40
+ />
36
41
  <div
37
42
  v-show="!!topMessage.length"
38
- class="dl-text-input__top-message-container"
43
+ :class="{
44
+ 'dl-text-input__top-message-container': true,
45
+ 'dl-text-input__top-message-container--s': isSmall
46
+ }"
39
47
  >
40
48
  <dl-info-error-message
41
49
  v-show="!!topMessage.length"
@@ -135,7 +143,7 @@
135
143
  :key="item"
136
144
  clickable
137
145
  style="font-size: 12px"
138
- :is-highlighted="suggestIndex === highlightedIndex"
146
+ :highlighted="suggestIndex === highlightedIndex"
139
147
  @click="onClick($event, item)"
140
148
  >
141
149
  <span
@@ -202,9 +210,9 @@
202
210
  <script lang="ts">
203
211
  import { debounce } from 'lodash'
204
212
  import { computed, defineComponent, PropType, ref } from 'vue-demi'
205
- import { DlInfoErrorMessage } from '../../shared'
213
+ import { DlInfoErrorMessage, DlTooltip } from '../../shared'
206
214
  import { DlListItem } from '../../basic'
207
- import { DlMenu, DlIcon, DlList, DlTooltip } from '../../essential'
215
+ import { DlMenu, DlIcon, DlList } from '../../essential'
208
216
  import { DlButton } from '../../basic'
209
217
  import { InputSizes, TInputSizes } from '../../../utils/input-sizes'
210
218
  import { v4 } from 'uuid'
@@ -326,7 +334,11 @@ export default defineComponent({
326
334
  type: Boolean,
327
335
  default: false
328
336
  },
329
- fitContent: Boolean
337
+ fitContent: Boolean,
338
+ margin: {
339
+ type: String,
340
+ default: null
341
+ }
330
342
  },
331
343
  emits: ['input', 'focus', 'blur', 'clear', 'enter', 'update:model-value'],
332
344
  setup(props, { emit }) {
@@ -389,6 +401,26 @@ export default defineComponent({
389
401
  }
390
402
  return classes
391
403
  },
404
+ getBorderColor(): string {
405
+ if (this.error) {
406
+ return `var(--dl-color-negative)`
407
+ } else if (this.warning) {
408
+ return `var(--dl-color-warning)`
409
+ } else {
410
+ return `var(--dl-color-secondary)`
411
+ }
412
+ },
413
+ cssVars(): Record<string, any> {
414
+ let inputMargin = this.margin
415
+
416
+ if (!this.margin && this.isSmall) {
417
+ inputMargin = '0px 20px 0px 0px'
418
+ }
419
+ return {
420
+ '--dl-input-margin': inputMargin,
421
+ '--dl-input-border-color-hover': this.getBorderColor
422
+ }
423
+ },
392
424
  inputClasses(): string[] {
393
425
  const classes = [
394
426
  'dl-text-input__input',
@@ -428,10 +460,13 @@ export default defineComponent({
428
460
  ]
429
461
  },
430
462
  isSmall(): boolean {
431
- return this.size === InputSizes.s
463
+ return (
464
+ this.size === (InputSizes.s as TInputSizes) ||
465
+ this.size === (InputSizes.small as TInputSizes)
466
+ )
432
467
  },
433
468
  hasPrepend(): boolean {
434
- return !!this.$slots.prepend && !this.isSmall
469
+ return !!this.$slots.prepend
435
470
  },
436
471
  hasAppend(): boolean {
437
472
  return (
@@ -454,7 +489,6 @@ export default defineComponent({
454
489
  !this.disabled &&
455
490
  !this.readonly &&
456
491
  !!this.modelValue
457
- // this.focused
458
492
  )
459
493
  },
460
494
  showShowPassButton(): boolean {
@@ -616,7 +650,7 @@ export default defineComponent({
616
650
 
617
651
  <style scoped lang="scss">
618
652
  .dl-text-input {
619
- padding: 20px 20px 20px 0px;
653
+ margin: var(--dl-input-margin);
620
654
 
621
655
  /* Chrome, Safari, Edge, Opera */
622
656
  input::-webkit-outer-spin-button,
@@ -640,8 +674,10 @@ export default defineComponent({
640
674
  align-items: center;
641
675
 
642
676
  &--s {
643
- margin-right: 5px;
644
- margin-bottom: 0px;
677
+ margin: 4px auto auto;
678
+ }
679
+ &--small {
680
+ margin: 4px auto auto;
645
681
  }
646
682
  }
647
683
 
@@ -671,6 +707,13 @@ export default defineComponent({
671
707
  display: flex;
672
708
  margin-bottom: 10px;
673
709
  text-align: start;
710
+
711
+ &--s {
712
+ padding: 0px 10px;
713
+ }
714
+ &--small {
715
+ padding: 0px 10px;
716
+ }
674
717
  }
675
718
 
676
719
  &__input-wrapper {
@@ -710,8 +753,17 @@ export default defineComponent({
710
753
  padding-top: 7px;
711
754
  padding-bottom: 7px;
712
755
  }
756
+ &--medium {
757
+ padding-top: 7px;
758
+ padding-bottom: 7px;
759
+ }
713
760
 
714
761
  &--s {
762
+ padding-top: 4px;
763
+ padding-bottom: 3px;
764
+ padding-right: 5px;
765
+ }
766
+ &--small {
715
767
  padding-top: 3px;
716
768
  padding-bottom: 3px;
717
769
  padding-left: 5px;
@@ -721,14 +773,12 @@ export default defineComponent({
721
773
  &--error {
722
774
  border-color: var(--dl-color-negative);
723
775
  &:hover {
724
- border-color: var(--dl-color-separator) !important;
725
776
  }
726
777
  }
727
778
 
728
779
  &--warning {
729
- border-color: var(--dl-color-warning);
780
+ border-color: var(--dl-input-border-color-hover);
730
781
  &:hover {
731
- border-color: var(--dl-color-separator) !important;
732
782
  }
733
783
  }
734
784
 
@@ -738,11 +788,11 @@ export default defineComponent({
738
788
  }
739
789
 
740
790
  &:hover {
741
- border-color: var(--dl-color-secondary);
791
+ border-color: var(--dl-input-border-color-hover);
742
792
  }
743
793
 
744
794
  &:focus {
745
- border-color: var(--dl-color-secondary);
795
+ border-color: var(--dl-input-border-color-hover);
746
796
  }
747
797
 
748
798
  &:disabled {
@@ -750,7 +800,7 @@ export default defineComponent({
750
800
  color: var(--dl-color-disabled);
751
801
  cursor: not-allowed;
752
802
  }
753
- &:readonly {
803
+ &:read-only {
754
804
  border-color: var(--dl-color-separator);
755
805
  cursor: text;
756
806
  &:hover {
@@ -770,11 +820,24 @@ export default defineComponent({
770
820
  height: 34px;
771
821
  }
772
822
 
823
+ &--large {
824
+ height: 34px;
825
+ }
826
+
773
827
  &--m {
774
828
  height: 28px;
775
829
  }
776
830
 
831
+ &--medium {
832
+ height: 28px;
833
+ }
834
+
777
835
  &--s {
836
+ margin-top: 1px;
837
+ height: 20px;
838
+ }
839
+
840
+ &--small {
778
841
  height: 20px;
779
842
  }
780
843
 
@@ -1,196 +1,59 @@
1
1
  <template>
2
- <div class="json-editor-layout">
3
- <dl-dialog-box
4
- :model-value="modelValue"
5
- :width="800"
6
- >
7
- <template #header>
8
- <dl-dialog-box-header
9
- title="DQL Search"
10
- :close-button="true"
11
- style="font-weight: 200"
12
- @onClose="$emit('update:modelValue', false)"
13
- />
14
- </template>
15
- <template #body>
16
- <div class="json-query">
17
- <div class="json-query-menu">
18
- <dl-select
19
- :model-value="selectedOption"
20
- width="200px"
21
- :options="selectOptions"
22
- placeholder="New Query"
23
- @update:model-value="updateActiveQuery"
24
- />
25
- <dl-button
26
- icon="icon-dl-align-left"
27
- label="Align Left"
28
- flat
29
- color="secondary"
30
- @click="alignText"
31
- />
32
- </div>
33
- <div
34
- ref="jsonEditorRef"
35
- class="json-editor"
36
- />
37
- </div>
38
- </template>
39
- <template #footer>
40
- <div class="footer-menu">
41
- <div class="footer-delete">
42
- <dl-button
43
- :disabled="deleteButtonState"
44
- icon="icon-dl-delete"
45
- label="Delete Query"
46
- flat
47
- color="secondary"
48
- @click="$emit('remove', activeQuery)"
49
- />
50
- </div>
51
- <div class="footer-save">
52
- <dl-button
53
- outlined
54
- label="Save As"
55
- @click="handleSaveButton"
56
- />
57
- <dl-button
58
- label="Search"
59
- @click="handleSearchButton"
60
- />
61
- </div>
62
- </div>
63
- </template>
64
- </dl-dialog-box>
65
- </div>
2
+ <div
3
+ ref="jsonEditorRef"
4
+ class="json-editor"
5
+ />
66
6
  </template>
67
7
 
68
8
  <script lang="ts">
69
- import { defineComponent, PropType } from 'vue-demi'
70
- import { JSONEditor, JSONValue, Mode } from 'vanilla-jsoneditor'
9
+ import { defineComponent } from 'vue-demi'
10
+ import { JSONEditor, Mode } from 'vanilla-jsoneditor'
71
11
  import { debounce } from 'lodash'
72
- import { Query } from './types'
73
- import { DlSelect } from '../DlSelect'
74
- import { DlButton } from '../../basic'
75
- import { DlDialogBox, DlDialogBoxHeader } from '../DlDialogBox'
76
-
77
- interface JSONContent {
78
- json: JSONValue
79
- text: string
80
- }
81
12
 
82
13
  export default defineComponent({
83
- components: {
84
- DlDialogBox,
85
- DlDialogBoxHeader,
86
- DlSelect,
87
- DlButton
14
+ model: {
15
+ prop: 'modelValue',
16
+ event: 'update:modelValue'
88
17
  },
89
18
  props: {
90
- modelValue: { type: Boolean, default: false },
91
- query: {
92
- type: Object as PropType<Query>,
93
- default: () =>
94
- ({
95
- name: 'New Query',
96
- query: null
97
- } as Query)
19
+ /**
20
+ * The string to display and modify as JSON
21
+ */
22
+ modelValue: {
23
+ type: String,
24
+ default: '{}'
98
25
  },
99
- queries: {
100
- type: Array as PropType<Query[]>,
101
- default: () => [] as Query[]
26
+ /**
27
+ * When this prop is false, the editor will not refresh, paired with the update-prevent event
28
+ * it helps with controlling when the editor refreshes
29
+ */
30
+ preventUpdate: {
31
+ type: Boolean,
32
+ default: null
102
33
  }
103
34
  },
104
- emits: ['update:modelValue', 'save', 'remove', 'search', 'update-query'],
35
+ emits: ['update:modelValue', 'update-prevent', 'align-text'],
105
36
  data() {
106
37
  return {
107
- preventOnChange: false,
108
- preventUpdate: false,
109
38
  jsonEditor: {} as JSONEditor,
110
- activeQuery: this.query,
111
- selectedOption: {
112
- label: this.query?.name,
113
- value: this.query?.query
114
- }
115
- }
116
- },
117
- computed: {
118
- selectOptions(): Record<string, string>[] {
119
- return [
120
- {
121
- label: 'New Query',
122
- value: ''
123
- },
124
- ...this.queries.map((q: Query) => ({
125
- label: q.name,
126
- value: q.query
127
- }))
128
- ]
129
- },
130
- deleteButtonState(): boolean {
131
- return !this.queries.filter(
132
- (q: Query) => q.name === this.activeQuery?.name
133
- ).length
39
+ preventOnChange: false
134
40
  }
135
41
  },
136
42
  watch: {
137
- modelValue(value) {
138
- this.$nextTick(() => {
139
- if (value) this.initJsonEditor()
140
- else this.jsonEditor?.destroy()
141
- this.activeQuery = this.query
142
- })
143
- },
144
- queries() {
145
- this.resetEditor()
146
- },
147
- activeQuery(val) {
148
- this.$emit('update-query', val)
149
- this.jsonEditor?.set({
150
- text: val.query
151
- })
152
- this.selectedOption = {
153
- label: val.name,
154
- value: val.query
43
+ modelValue: {
44
+ handler(val) {
45
+ if (this.preventUpdate === false) {
46
+ this.setJsonText(val)
47
+ }
155
48
  }
156
49
  }
157
50
  },
158
51
  mounted() {
159
52
  this.initJsonEditor()
53
+ this.setJsonText(this.modelValue)
54
+ this.$emit('align-text')
160
55
  },
161
56
  methods: {
162
- updateActiveQuery(option: Record<string, string>) {
163
- this.activeQuery = {
164
- name: option.label,
165
- query: option.value
166
- }
167
- this.jsonEditor?.destroy()
168
- this.initJsonEditor()
169
- },
170
- alignText() {
171
- if (!(this.jsonEditor.get && this.jsonEditor.get())) return
172
- try {
173
- const parsed = JSON.parse(
174
- (
175
- this.jsonEditor.get &&
176
- (this.jsonEditor?.get() as JSONContent)
177
- )?.text
178
- )
179
- const newText = JSON.stringify(parsed, null, 2)
180
- this.jsonEditor?.set({ text: newText })
181
- } catch (error) {}
182
- },
183
- resetEditor() {
184
- if (this.jsonEditor.set) {
185
- this.jsonEditor.set({
186
- text: '{}'
187
- })
188
- }
189
- this.selectedOption = {
190
- label: 'New Query',
191
- value: ''
192
- }
193
- },
194
57
  initJsonEditor() {
195
58
  const initialAttrs: any = {
196
59
  onChange: debounce(
@@ -199,27 +62,17 @@ export default defineComponent({
199
62
  this.preventOnChange = false
200
63
  return
201
64
  }
202
- this.activeQuery = {
203
- name: this.activeQuery
204
- ? this.activeQuery.name
205
- : 'New Query',
206
- query: updatedContent.text
65
+ this.$emit('update:modelValue', updatedContent.text)
66
+ if (this.preventUpdate !== null) {
67
+ this.$emit('update-prevent', true)
207
68
  }
208
- this.preventUpdate = true
209
69
  },
210
70
  100
211
71
  ),
212
72
  mode: Mode.text,
213
73
  mainMenuBar: false,
214
74
  navigationBar: false,
215
- statusBar: false,
216
- ...(this.activeQuery !== undefined && {
217
- content: {
218
- text: this.activeQuery?.query
219
- ? this.activeQuery.query
220
- : '{}'
221
- }
222
- })
75
+ statusBar: false
223
76
  }
224
77
 
225
78
  // There is type instantiation issue with JSONEditor,
@@ -231,22 +84,11 @@ export default defineComponent({
231
84
  : document.createElement('div'),
232
85
  props: initialAttrs
233
86
  })
234
- this.alignText()
235
- },
236
- handleSaveButton() {
237
- this.$emit(
238
- 'save',
239
- this.activeQuery
240
- ? this.activeQuery
241
- : {
242
- name: 'New Query',
243
- query: (this.jsonEditor?.get() as any).text || ''
244
- }
245
- )
246
87
  },
247
- handleSearchButton() {
248
- this.$emit('search', this.activeQuery)
249
- this.$emit('update:modelValue', false)
88
+ setJsonText(text: string) {
89
+ this.jsonEditor?.set({
90
+ text
91
+ })
250
92
  }
251
93
  }
252
94
  })
@@ -260,6 +102,9 @@ export default defineComponent({
260
102
  --jse-background-color: var(--dl-color-tooltip-text);
261
103
  --jse-value-color-boolean: #ae6307;
262
104
  --jse-value-color-string: #337433;
105
+ --jse-panel-background: var(--dl-color-fill);
106
+ --jse-panel-border: var(--dl-color-separator);
107
+ height: 100%;
263
108
  .jse-error {
264
109
  display: none !important;
265
110
  }
@@ -267,26 +112,4 @@ export default defineComponent({
267
112
  display: none !important;
268
113
  }
269
114
  }
270
-
271
- .json-query-menu {
272
- display: flex;
273
- justify-content: space-between;
274
- align-items: center;
275
- margin-bottom: 10px;
276
- }
277
-
278
- .footer-save button {
279
- margin: 0px 10px;
280
- }
281
-
282
- .footer-menu {
283
- width: 100%;
284
- display: flex;
285
- justify-content: space-between;
286
- }
287
- .footer-save {
288
- width: 25%;
289
- display: flex;
290
- justify-content: space-between;
291
- }
292
115
  </style>
@@ -60,7 +60,8 @@ import {
60
60
  } from './types'
61
61
  import { loggerFactory } from '../../../utils'
62
62
  import { v4 } from 'uuid'
63
- import { DlIcon, DlTooltip } from '../../essential'
63
+ import { DlIcon } from '../../essential'
64
+ import { DlTooltip } from '../../shared'
64
65
 
65
66
  export default defineComponent({
66
67
  name: 'DlOptionGroup',
@@ -84,7 +85,11 @@ export default defineComponent({
84
85
  validator: optionsValidator
85
86
  },
86
87
  type: { type: String, default: 'radio', validator: typeValidator },
87
- modelValue: { type: [Array, String, Number, Boolean], required: true }
88
+ modelValue: {
89
+ type: [Array, String, Number, Boolean],
90
+ required: false,
91
+ default: null
92
+ }
88
93
  },
89
94
  data() {
90
95
  const logger = loggerFactory('DlOptionGroup')
@@ -123,15 +128,7 @@ export default defineComponent({
123
128
  : 'flex-end',
124
129
  '--option-group-width':
125
130
  this.leftLabel && !this.inline ? '100%' : 'auto',
126
- '--option-group-max-width': this.maxWidth,
127
- '--control-element-padding-left': this.leftLabel
128
- ? '10px'
129
- : this.inline
130
- ? '12px'
131
- : '0px',
132
- '--control-element-padding-right': this.leftLabel
133
- ? '0px'
134
- : '10px'
131
+ '--option-group-max-width': this.maxWidth
135
132
  }
136
133
  }
137
134
  },
@@ -160,6 +157,11 @@ export default defineComponent({
160
157
  </script>
161
158
 
162
159
  <style scoped lang="scss">
160
+ .control-element {
161
+ display: flex;
162
+ align-items: center;
163
+ }
164
+
163
165
  .tooltip-icon {
164
166
  color: var(--dl-color-medium);
165
167
  display: flex !important;
@@ -169,9 +171,11 @@ export default defineComponent({
169
171
  display: inline-flex;
170
172
  width: var(--option-group-width);
171
173
  max-width: var(--option-group-max-width);
174
+ gap: 20px;
172
175
  }
173
176
  .option-group-wrapper.column {
174
177
  flex-direction: column;
178
+ gap: 10px;
175
179
  }
176
180
 
177
181
  .option {
@@ -181,8 +185,8 @@ export default defineComponent({
181
185
  justify-content: var(--option-justify-content);
182
186
  font-size: var(--dl-font-size-body);
183
187
  user-select: none;
184
- height: 24px;
185
188
  color: var(--dl-color-darker);
189
+ gap: 10px;
186
190
  }
187
191
 
188
192
  .disabled {
@@ -192,9 +196,4 @@ export default defineComponent({
192
196
  }
193
197
  color: var(--dl-color-disabled);
194
198
  }
195
-
196
- .control-element {
197
- padding-left: var(--control-element-padding-left);
198
- padding-right: var(--control-element-padding-right);
199
- }
200
199
  </style>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <dl-list-item
3
- as="label"
3
+ type="label"
4
4
  clickable
5
5
  @click="emitClick"
6
6
  >
@@ -37,7 +37,7 @@ export default defineComponent({
37
37
  .menu-item-wrapper-section {
38
38
  display: flex;
39
39
  flex-direction: row-reverse;
40
- justify-content: flex-start;
40
+ justify-content: flex-end;
41
41
  align-items: center;
42
42
  }
43
43
 
@@ -146,7 +146,7 @@ export default defineComponent({
146
146
  return to > this.totalItems ? this.totalItems : to
147
147
  },
148
148
  max(): number {
149
- return this.rowsPerPageState === 0
149
+ return this.rowsPerPageState === 0 || this.totalItems === 0
150
150
  ? 1
151
151
  : Math.ceil(this.totalItems / this.rowsPerPageState)
152
152
  }
@@ -36,7 +36,5 @@ export default defineComponent({
36
36
  justify-content: flex-end;
37
37
  display: flex;
38
38
  color: var(--dl-color-lighter);
39
- padding-left: 16px;
40
- margin-left: auto;
41
39
  }
42
40
  </style>
@@ -69,11 +69,9 @@ export default defineComponent({
69
69
  <style scoped lang="scss">
70
70
  .dl-pagination {
71
71
  &--rows_selector {
72
- width: 15%;
73
72
  display: flex;
74
73
  align-items: center;
75
74
  color: var(--dl-color-darker);
76
- padding-right: 2px;
77
75
  }
78
76
 
79
77
  &--rows_per_page_label {