@dataloop-ai/components 0.17.134 → 0.18.1

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 (180) hide show
  1. package/package.json +3 -1
  2. package/src/App.vue +5 -227
  3. package/src/assets/globals.scss +4 -0
  4. package/src/components/basic/DlAccordion/DlAccordion.vue +26 -4
  5. package/src/components/basic/DlButton/DlButton.vue +2 -6
  6. package/src/components/basic/DlChip/DlChip.vue +1 -5
  7. package/src/components/basic/DlEmptyState/DlEmptyState.vue +282 -0
  8. package/src/components/basic/DlEmptyState/index.ts +2 -0
  9. package/src/components/basic/DlEmptyState/types.ts +20 -0
  10. package/src/components/basic/DlListItem/DlListItem.vue +96 -63
  11. package/src/components/basic/DlListItem/utils.ts +0 -3
  12. package/src/components/basic/DlPanelContainer/DlPanelContainer.vue +35 -12
  13. package/src/components/basic/DlPopup/DlPopup.vue +29 -7
  14. package/src/components/basic/DlWidget/DlWidget.vue +32 -4
  15. package/src/components/basic/index.ts +2 -1
  16. package/src/components/basic/types.ts +2 -0
  17. package/src/components/compound/DlCard/DlCard.vue +796 -0
  18. package/src/components/compound/DlCard/components/DescriptionModal.vue +137 -0
  19. package/src/components/compound/DlCard/types.ts +38 -0
  20. package/src/components/compound/DlCharts/charts/DlBarChart/DlBarChart.vue +35 -3
  21. package/src/components/compound/DlCharts/charts/DlColumnChart/DlColumnChart.vue +51 -12
  22. package/src/components/compound/DlCharts/charts/DlConfusionMatrix/DlConfusionMatrix.vue +71 -14
  23. package/src/components/compound/DlCharts/charts/DlDoughnutChart/DlDoughnutChart.vue +28 -4
  24. package/src/components/compound/DlCharts/charts/DlDoughnutChart/components/DlDoughnutChartLegend.vue +1 -1
  25. package/src/components/compound/DlCharts/charts/DlLineChart/DlLineChart.vue +46 -8
  26. package/src/components/compound/DlCharts/components/DlBrush.vue +2 -2
  27. package/src/components/compound/DlCharts/types/props.ts +5 -1
  28. package/src/components/compound/DlCharts/utils.ts +1 -1
  29. package/src/components/compound/DlCodeEditor/DlCodeEditor.vue +171 -0
  30. package/src/components/compound/DlCodeEditor/README.md +11 -0
  31. package/src/components/compound/DlCodeEditor/components/CodeEditor.vue +705 -0
  32. package/src/components/compound/DlCodeEditor/index.ts +3 -0
  33. package/src/components/compound/DlCodeEditor/styles/themes-base16.css +12809 -0
  34. package/src/components/compound/DlCodeEditor/styles/themes.css +3999 -0
  35. package/src/components/compound/DlCodeEditor/types.ts +21 -0
  36. package/src/components/compound/DlDateTime/DlDateTimeRange/{DlCardSidebar.vue → CardSidebar.vue} +10 -11
  37. package/src/components/compound/DlDateTime/DlDateTimeRange/DlDateTimeRange.vue +8 -8
  38. package/src/components/compound/DlDialogBox/DlDialogBox.vue +26 -2
  39. package/src/components/compound/DlInput/DlInput.vue +2 -2
  40. package/src/components/compound/DlOptionGroup/components/MenuItemWrapper.vue +2 -2
  41. package/src/components/compound/DlRange/DlRange.vue +2 -2
  42. package/src/components/compound/DlSearches/DlSmartSearch/components/DlSmartSearchInput.vue +1 -1
  43. package/src/components/compound/DlSearches/DlSmartSearch/components/DlSuggestionsDropdown.vue +1 -1
  44. package/src/components/compound/DlSearches/DlSmartSearch/utils/highlightSyntax.ts +10 -6
  45. package/src/components/compound/DlSelect/DlSelect.vue +78 -70
  46. package/src/components/compound/DlSlider/components/DlSliderBase.vue +2 -2
  47. package/src/components/compound/DlSlider/useSlider.ts +2 -2
  48. package/src/components/compound/DlStepper/DlStepper.vue +33 -3
  49. package/src/components/compound/DlStepper/components/DlStepperContent.vue +6 -2
  50. package/src/components/compound/DlStepper/components/DlStepperSidebar.vue +12 -6
  51. package/src/components/compound/DlTable/DlTable.vue +30 -4
  52. package/src/components/compound/DlTable/components/DlTd.vue +8 -8
  53. package/src/components/compound/DlTable/components/DlTh.vue +1 -1
  54. package/src/components/compound/DlTable/hooks/tableColumnSelection.ts +35 -40
  55. package/src/components/compound/DlTable/hooks/tableFilter.ts +33 -21
  56. package/src/components/compound/DlTable/hooks/tablePagination.ts +10 -13
  57. package/src/components/compound/DlTable/hooks/tableRowExpand.ts +2 -1
  58. package/src/components/compound/DlTable/hooks/tableRowSelection.ts +0 -1
  59. package/src/components/compound/DlTable/hooks/tableSort.ts +52 -47
  60. package/src/components/compound/DlThumbnailGallery/DlThumbnailGallery.vue +268 -0
  61. package/src/components/compound/DlThumbnailGallery/index.ts +2 -0
  62. package/src/components/compound/DlThumbnailGallery/types.ts +11 -0
  63. package/src/components/compound/DlTreeTable/DlTreeTable.vue +1293 -0
  64. package/src/components/compound/DlTreeTable/components/DlTdTree.vue +119 -0
  65. package/src/components/compound/DlTreeTable/components/DlTrTree.vue +52 -0
  66. package/src/components/compound/DlTreeTable/index.ts +3 -0
  67. package/src/components/compound/DlTreeTable/types.ts +1 -0
  68. package/src/components/compound/DlTreeTable/utils/convertToNestedObject.ts +51 -0
  69. package/src/components/compound/DlTreeTable/utils/flatTreeData.ts +19 -0
  70. package/src/components/compound/DlTreeTable/utils/getFromChildren.ts +39 -0
  71. package/src/components/compound/DlTreeTable/utils/trSpacing.ts +13 -0
  72. package/src/components/compound/DlTreeTable/utils/treeTableRowSelection.ts +184 -0
  73. package/src/components/compound/index.ts +5 -0
  74. package/src/components/compound/types.ts +2 -0
  75. package/src/components/essential/DlBadge/DlBadge.vue +3 -3
  76. package/src/components/essential/DlCheckbox/DlCheckbox.vue +6 -3
  77. package/src/components/essential/DlEllipsis/DlEllipsis.vue +18 -14
  78. package/src/components/essential/DlIcon/DlIcon.vue +1 -1
  79. package/src/components/essential/DlLabel/DlLabel.vue +174 -0
  80. package/src/components/essential/DlLabel/index.ts +2 -0
  81. package/src/components/essential/DlList/DlList.vue +2 -2
  82. package/src/components/essential/DlMenu/DlMenu.vue +26 -20
  83. package/src/components/essential/DlMenu/utils.ts +7 -6
  84. package/src/components/essential/DlPageLayout/DlPageLayout.vue +90 -0
  85. package/src/components/essential/DlPageLayout/index.ts +2 -0
  86. package/src/components/essential/DlSeparator/DlSeparator.vue +2 -2
  87. package/src/components/essential/DlThemeProvider/DlThemeProvider.vue +6 -0
  88. package/src/components/essential/index.ts +2 -1
  89. package/src/components/shared/DlTooltip/DlTooltip.vue +9 -10
  90. package/src/demos/BarChartDemo.vue +47 -2
  91. package/src/demos/ColumnChartDemo.vue +51 -2
  92. package/src/demos/DlAccordionDemo.vue +92 -43
  93. package/src/demos/DlCardDemo.vue +156 -19
  94. package/src/demos/DlChartDoughnutDemo.vue +49 -2
  95. package/src/demos/DlCheckboxDemo.vue +13 -0
  96. package/src/demos/DlCodeEditor/DlCodeEditorDemo.vue +247 -0
  97. package/src/demos/DlCodeEditor/index.ts +2 -0
  98. package/src/demos/DlConfusionMatrixDemo.vue +51 -6
  99. package/src/demos/DlDemoPage.vue +235 -0
  100. package/src/demos/DlDialogBoxDemo.vue +56 -51
  101. package/src/demos/DlDropdownButtonDemo.vue +1 -1
  102. package/src/demos/DlEmptyStateDemo.vue +81 -0
  103. package/src/demos/DlLabelDemo.vue +128 -0
  104. package/src/demos/DlLineChartDemo.vue +50 -2
  105. package/src/demos/DlListDemo.vue +12 -9
  106. package/src/demos/DlMenuDemo.vue +13 -14
  107. package/src/demos/DlPageLayoutDemo.vue +146 -0
  108. package/src/demos/DlPanelContainerDemo.vue +113 -2
  109. package/src/demos/DlPopupDemo.vue +51 -0
  110. package/src/demos/DlSelectDemo.vue +14 -5
  111. package/src/demos/DlStepperDemo/DlStepperDemo.vue +5 -1
  112. package/src/demos/DlStepperDemo/EmptyStateStepper.vue +149 -0
  113. package/src/demos/DlTableDemo.vue +65 -2
  114. package/src/demos/DlTabsDemo.vue +1 -1
  115. package/src/demos/DlThumbnailGalleryDemo.vue +99 -0
  116. package/src/demos/DlTreeTableDemo.vue +694 -0
  117. package/src/demos/DlWidgetDemo.vue +48 -3
  118. package/src/demos/index.ts +17 -4
  119. package/src/hooks/use-anchor.ts +14 -16
  120. package/src/hooks/use-model-toggle.ts +12 -14
  121. package/src/hooks/use-portal.ts +2 -2
  122. package/src/hooks/use-scroll-target.ts +2 -4
  123. package/src/hooks/use-size-observer.ts +3 -2
  124. package/src/hooks/use-transition.ts +10 -4
  125. package/src/index.ts +22 -1
  126. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetFooter.vue +78 -0
  127. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetHeader.vue +22 -0
  128. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetLeftDrawer.vue +96 -0
  129. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetMainContent.vue +51 -0
  130. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetRightDrawer.vue +88 -0
  131. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/ActionsMenu.vue +70 -0
  132. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/AutomationMenu.vue +106 -0
  133. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/CardView.vue +101 -0
  134. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/CardViewGallery.vue +141 -0
  135. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/CardViewTable.vue +193 -0
  136. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/EmptyState/LayoutEmptyState.vue +227 -0
  137. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/EmptyState/UploadData.vue +106 -0
  138. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/MainContentImages.vue +540 -0
  139. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/MainContentNav.vue +329 -0
  140. package/src/layouts/DlDatasetBrowser/DemoComponents/NavbarKpi.vue +84 -0
  141. package/src/layouts/DlDatasetBrowser/DemoComponents/NavbarSearch.vue +132 -0
  142. package/src/layouts/DlDatasetBrowser/DemoComponents/SearchFilterMenu.vue +19 -0
  143. package/src/layouts/DlDatasetBrowser/DemoComponents/filters/AddFilter.vue +212 -0
  144. package/src/layouts/DlDatasetBrowser/DemoComponents/types/imageMetadata.ts +28 -0
  145. package/src/layouts/DlDatasetBrowser/DlDatasetBrowser.vue +42 -0
  146. package/src/layouts/DlStudioLayout/DlStudioLayout.vue +42 -0
  147. package/src/layouts/DlStudioLayout/components/Demo/LeftMenuContent.vue +23 -0
  148. package/src/layouts/DlStudioLayout/components/Demo/StudioFooter.vue +25 -0
  149. package/src/layouts/DlStudioLayout/components/Demo/StudioHeader.vue +121 -0
  150. package/src/layouts/DlStudioLayout/components/Demo/StudioLeftDrawer.vue +245 -0
  151. package/src/layouts/DlStudioLayout/components/Demo/StudioMainContent.vue +31 -0
  152. package/src/layouts/DlStudioLayout/components/Demo/StudioTabsMenu.vue +117 -0
  153. package/src/layouts/DlStudioLayout/components/Demo/TabMenu/FilterMenu.vue +62 -0
  154. package/src/layouts/DlStudioLayout/components/Demo/TabMenu/TabMenuAnnotations.vue +98 -0
  155. package/src/layouts/DlStudioLayout/components/Demo/TabMenu/TabMenuItem.vue +66 -0
  156. package/src/layouts/DlStudioLayout/components/LayoutNavbar.vue +24 -0
  157. package/src/layouts/DlStudioLayout/components/ListAutocomplete.vue +149 -0
  158. package/src/layouts/DlStudioLayout/components/NavigationDrawer.vue +147 -0
  159. package/src/layouts/DlStudioLayout/index.ts +2 -0
  160. package/src/layouts/DlStudioLayout/types/HorizontalItems.ts +9 -0
  161. package/src/layouts/DlStudioLayout/types/VerticalItems.ts +10 -0
  162. package/src/simple-code-editor.d.ts +1 -0
  163. package/src/utils/click-outside.ts +1 -1
  164. package/src/utils/dom.ts +5 -5
  165. package/src/utils/events.ts +3 -3
  166. package/src/utils/global-nodes.ts +2 -2
  167. package/src/utils/is-ellipsis-active.ts +4 -1
  168. package/src/utils/portal.ts +5 -5
  169. package/src/utils/position-engine.ts +5 -5
  170. package/src/utils/render.ts +1 -1
  171. package/src/utils/scroll.ts +2 -2
  172. package/src/utils/selection.ts +3 -3
  173. package/vite.config.ts +9 -1
  174. package/src/components/basic/DlCard/DlCard.vue +0 -242
  175. package/src/components/basic/DlCard/types.ts +0 -20
  176. package/src/components/essential/DlTextHolder/DlTextHolder.vue +0 -93
  177. package/src/components/essential/DlTextHolder/index.ts +0 -2
  178. package/src/demos/DlTextHolderDemo.vue +0 -50
  179. /package/src/components/{basic → compound}/DlCard/index.ts +0 -0
  180. /package/src/components/compound/DlDateTime/DlDateTimeRange/{DlDateInput.vue → DateInput.vue} +0 -0
@@ -0,0 +1,227 @@
1
+ <template>
2
+ <div class="layout-empty-state grid-cols-2">
3
+ <div class="flex full-width text-center justify-center">
4
+ <upload-data />
5
+ </div>
6
+ <div class="flex full-width text-center justify-center">
7
+ <dl-code-editor
8
+ v-model="codeEditorValue"
9
+ width="485px"
10
+ height="547px"
11
+ :language="language"
12
+ :theme="theme"
13
+ />
14
+ </div>
15
+ </div>
16
+ </template>
17
+
18
+ <script lang="ts">
19
+ import { computed, defineComponent, ref } from 'vue-demi'
20
+ import UploadData from './UploadData.vue'
21
+ import { DlCodeEditor } from '../../../../../components'
22
+ import { DlCodeEditorTheme } from '../../../../../components/types'
23
+
24
+ export default defineComponent({
25
+ name: 'LayoutEmptyState',
26
+ components: {
27
+ UploadData,
28
+ DlCodeEditor
29
+ },
30
+ setup() {
31
+ const codeEditorValue = ref(
32
+ 'import urllib3\n' +
33
+ 'urllib3.disable_warnings()\n' +
34
+ 'from base64 import b64encode\n' +
35
+ 'import os\n' +
36
+ 'import sys\n' +
37
+ 'import json\n' +
38
+ 'import getpass\n' +
39
+ 'from optparse import OptionParser\n' +
40
+ 'from datetime import datetime, timedelta\n' +
41
+ 'import time\n' +
42
+ 'from time import gmtime, strftime, strptime\n' +
43
+ 'from operator import itemgetter, attrgetter\n' +
44
+ 'from purity_fb import PurityFb, FileSystem, FileSystemSnapshot, SnapshotSuffix, rest\n' +
45
+ '\n' +
46
+ '# Global Variables\n' +
47
+ "VERSION = '2.0.0'\n" +
48
+ "HEADER = 'Pure Storage Take FlashBlade Snapshot (' + VERSION + ')'\n" +
49
+ "BANNER = ('=' * 132)\n" +
50
+ 'DEBUG_FLAG = False\n' +
51
+ 'VERBOSE_FLAG = False\n' +
52
+ "COOKIE = ''\n" +
53
+ '\n' +
54
+ 'def parsecl():\n' +
55
+ " usage = 'usage: %prog [options]'\n" +
56
+ " version = '%prog ' + VERSION\n" +
57
+ ' description = "This application has been developed using Pure Storage v1.12 RESTful Web Service interfaces. Developed and tested using Python 3.9.5 Please contact ron@purestorage.com for assistance."\n' +
58
+ '\n' +
59
+ ' parser = OptionParser(usage=usage, version=version, description=description)\n' +
60
+ '\n' +
61
+ '\n' +
62
+ " parser.add_option('-d', '--debug',\n" +
63
+ " action = 'store_true',\n" +
64
+ " dest = 'DEBUG_FLAG',\n" +
65
+ ' default = False,\n' +
66
+ " help = 'Debug [default: %default]')\n" +
67
+ ' \n' +
68
+ " parser.add_option('-f', '--filesystem',\n" +
69
+ " action = 'store',\n" +
70
+ " type = 'string',\n" +
71
+ " dest = 'fs',\n" +
72
+ " help = 'FlashBlade File System')\n" +
73
+ ' \n' +
74
+ " parser.add_option('-r', '--replicant',\n" +
75
+ " action = 'store',\n" +
76
+ " type = 'string',\n" +
77
+ " dest = 'flashBladeRep',\n" +
78
+ " help = 'FlashBlade Replicant array')\n" +
79
+ ' \n' +
80
+ " parser.add_option('-s', '--server',\n" +
81
+ " action = 'store',\n" +
82
+ " type = 'string',\n" +
83
+ " dest = 'flashBlade',\n" +
84
+ " help = 'FlashBlade array')\n" +
85
+ ' \n' +
86
+ " parser.add_option('-t', '--token',\n" +
87
+ " action = 'store',\n" +
88
+ " type = 'string',\n" +
89
+ " dest = 'API_TOKEN',\n" +
90
+ " help = 'Pure API Token')\n" +
91
+ '\n' +
92
+ " parser.add_option('-S', '--suffix',\n" +
93
+ " action = 'store',\n" +
94
+ " type = 'string',\n" +
95
+ " dest = 'suffix',\n" +
96
+ " help = 'File system snapshot suffix')\n" +
97
+ '\n' +
98
+ " parser.add_option('-v', '--verbose',\n" +
99
+ " action = 'store_true',\n" +
100
+ " dest = 'VERBOSE_FLAG',\n" +
101
+ ' default = False,\n' +
102
+ " help = 'Verbose [default: %default]')\n" +
103
+ '\n' +
104
+ ' (options, args) = parser.parse_args()\n' +
105
+ '\n' +
106
+ " '''\n" +
107
+ ' print("Options:", options)\n' +
108
+ ' print("Args:", args)\n' +
109
+ " '''\n" +
110
+ ' \n' +
111
+ ' return(options)\n' +
112
+ '\n' +
113
+ 'def main():\n' +
114
+ ' # Setup variables\n' +
115
+ ' global DEBUG_FLAG\n' +
116
+ ' exit_code = 0\n' +
117
+ '\n' +
118
+ ' # Check for command line parameters\n' +
119
+ ' options = parsecl()\n' +
120
+ ' API_TOKEN = options.API_TOKEN\n' +
121
+ ' flashBlade = options.flashBlade\n' +
122
+ ' flashBladeRep = options.flashBladeRep\n' +
123
+ ' fs = options.fs\n' +
124
+ ' suffix = options.suffix\n' +
125
+ ' DEBUG_FLAG = options.DEBUG_FLAG\n' +
126
+ ' VERBOSE_FLAG = options.VERBOSE_FLAG\n' +
127
+ ' \n' +
128
+ ' if DEBUG_FLAG:\n' +
129
+ " print('API Token:', API_TOKEN)\n" +
130
+ " print('FlashBlade:', flashBlade)\n" +
131
+ " print('Relplicant:', flashBladeRep)\n" +
132
+ " print('File System:', fs)\n" +
133
+ " print('Suffix:', suffix)\n" +
134
+ " print('Debug Flag:', DEBUG_FLAG)\n" +
135
+ " print('Verbose Flag:', VERBOSE_FLAG)\n" +
136
+ '\n' +
137
+ ' if flashBlade == None:\n' +
138
+ " sys.exit('Exiting: You must provide FlashBlade details')\n" +
139
+ ' \n' +
140
+ ' if API_TOKEN == None:\n' +
141
+ " sys.exit('Exiting: You must provide FlashBlade API Token details')\n" +
142
+ '\n' +
143
+ ' if fs == None:\n' +
144
+ " sys.exit('Exiting: You must provide FlashBlade file system')\n" +
145
+ '\n' +
146
+ ' print(BANNER)\n' +
147
+ " print(HEADER + ' - ' + flashBlade)\n" +
148
+ " print(strftime('%d/%m/%Y %H:%M:%S %Z', gmtime()))\n" +
149
+ ' print(BANNER)\n' +
150
+ '\n' +
151
+ ' # create PurityFb object for a certain array\n' +
152
+ ' fb = PurityFb(flashBlade)\n' +
153
+ ' # this is required for versions before Purity//FB 2.1.3 because they only supports self-signed\n' +
154
+ ' # certificates. in later versions, this may be unnecessary if you have imported a certificate.\n' +
155
+ ' fb.disable_verify_ssl()\n' +
156
+ ' \n' +
157
+ ' try:\n' +
158
+ ' res= fb.login(API_TOKEN)\n' +
159
+ ' except rest.ApiException as e:\n' +
160
+ ' print("Exception when logging in to the array: %s\\n" % e)\n' +
161
+ '\n' +
162
+ ' if res:\n' +
163
+ ' try:\n' +
164
+ ' if flashBladeRep:\n' +
165
+ ' if suffix:\n' +
166
+ ' # create a snapshot with suffix and replicate to target array\n' +
167
+ ' res = fb.file_system_snapshots.create_file_system_snapshots(sources=[fs],\n' +
168
+ ' suffix=SnapshotSuffix(suffix),\n' +
169
+ ' send=True,\n' +
170
+ ' targets=[flashBladeRep])\n' +
171
+ ' else:\n' +
172
+ ' # create a snapshot without suffix and replicate to target array\n' +
173
+ ' res = fb.file_system_snapshots.create_file_system_snapshots(sources=[fs],\n' +
174
+ ' send=True,\n' +
175
+ ' targets=[flashBladeRep])\n' +
176
+ ' else:\n' +
177
+ ' if suffix:\n' +
178
+ ' # create a snapshot with suffix for the file system\n' +
179
+ ' res = fb.file_system_snapshots.create_file_system_snapshots(sources=[fs],\n' +
180
+ ' suffix=SnapshotSuffix(suffix))\n' +
181
+ ' else:\n' +
182
+ ' # create a snapshot without suffix for the file system\n' +
183
+ ' res = fb.file_system_snapshots.create_file_system_snapshots(sources=[fs])\n' +
184
+ ' \n' +
185
+ ' if VERBOSE_FLAG:\n' +
186
+ ' print(res)\n' +
187
+ ' \n' +
188
+ " print('Snapshot created for', fs, 'suffix', res.items[0].suffix) \n" +
189
+ '\n' +
190
+ ' except rest.ApiException as e:\n' +
191
+ ' print("Exception when creating file system snapshots: %s\\n" % e) \n' +
192
+ '\n' +
193
+ ' fb.logout()\n' +
194
+ ' print(BANNER)\n' +
195
+ " print(strftime('%d/%m/%Y %H:%M:%S %Z', gmtime()))\n" +
196
+ ' print(BANNER)\n' +
197
+ ' sys.exit(exit_code)\n' +
198
+ '\n' +
199
+ 'main()'
200
+ )
201
+ const language = ref('python')
202
+
203
+ const theme = computed(() => {
204
+ if (
205
+ // @ts-ignore
206
+ window.DlComponents.isDark.value
207
+ ) {
208
+ return DlCodeEditorTheme.Dark
209
+ }
210
+ return DlCodeEditorTheme.Light
211
+ })
212
+
213
+ return {
214
+ codeEditorValue,
215
+ language,
216
+ theme
217
+ }
218
+ }
219
+ })
220
+ </script>
221
+
222
+ <style scoped lang="scss">
223
+ .layout-empty-state {
224
+ display: grid;
225
+ width: 100%;
226
+ }
227
+ </style>
@@ -0,0 +1,106 @@
1
+ <template>
2
+ <div class="dl-layout-upload-data">
3
+ <dl-empty-state
4
+ icon-size="100px"
5
+ class="dl-layout-upload-data__empty-state"
6
+ icon=""
7
+ title=""
8
+ >
9
+ <template #cta="">
10
+ <div
11
+ style="
12
+ display: flex;
13
+ align-items: center;
14
+ gap: 10px;
15
+ padding-bottom: 20px;
16
+ "
17
+ >
18
+ <dl-icon
19
+ icon="icon-dl-upload"
20
+ size="20px"
21
+ color="dl-color-darker"
22
+ />
23
+ <dl-typography
24
+ size="20px"
25
+ color="dl-color-darker"
26
+ >
27
+ Upload data (files, folders & annotations)
28
+ </dl-typography>
29
+ </div>
30
+ <dl-typography
31
+ size="12px"
32
+ color="dl-color-medium"
33
+ >
34
+ Models can be trained, evaluated with data (and if there's
35
+ ground-truth, you'll have precision-recall and confusion
36
+ matrix), and deployed as a service in the Dataloop platform,
37
+ with an endpoint for use from outside.
38
+ </dl-typography>
39
+ <div style="padding-top: 20px">
40
+ <dl-button label="Upload Data" />
41
+ </div>
42
+ </template>
43
+
44
+ <template #links>
45
+ <div style="display: flex; gap: 15px">
46
+ <dl-button
47
+ padding="0px"
48
+ icon="icon-dl-sdk-documentation"
49
+ flat
50
+ uppercase
51
+ label="SDK"
52
+ size="s"
53
+ color="secondary"
54
+ />
55
+ <dl-button
56
+ padding="0px"
57
+ icon="icon-dl-file"
58
+ flat
59
+ label="Documentation"
60
+ size="s"
61
+ color="secondary"
62
+ />
63
+ <dl-button
64
+ padding="0px"
65
+ icon="icon-dl-youtube"
66
+ flat
67
+ label="Video"
68
+ size="s"
69
+ color="secondary"
70
+ />
71
+ </div>
72
+ </template>
73
+ </dl-empty-state>
74
+ </div>
75
+ </template>
76
+
77
+ <script lang="ts">
78
+ import { defineComponent } from 'vue-demi'
79
+ import {
80
+ DlEmptyState,
81
+ DlButton,
82
+ DlTypography,
83
+ DlIcon
84
+ } from '../../../../../components'
85
+
86
+ export default defineComponent({
87
+ name: 'UploadData',
88
+ components: {
89
+ DlEmptyState,
90
+ DlButton,
91
+ DlTypography,
92
+ DlIcon
93
+ }
94
+ })
95
+ </script>
96
+
97
+ <style scoped lang="scss">
98
+ .dl-layout-upload-data {
99
+ &__empty-state {
100
+ min-width: 400px;
101
+ min-height: 300px;
102
+ max-width: 400px;
103
+ padding-top: 100px;
104
+ }
105
+ }
106
+ </style>