fluency-v8-components 1.3.5 → 1.3.7

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 (178) hide show
  1. package/dist/fluency-v8-components.es.js +1 -1
  2. package/dist/fluency-v8-components.umd.js +99 -99
  3. package/dist/{index-q2NbjdVo.mjs → index-ChEFiXF5.mjs} +12 -11
  4. package/dist/{index.es-PAPL4E6Y.mjs → index.es-CjjN70eV.mjs} +1 -1
  5. package/package.json +3 -2
  6. package/src/assets/images/ai.svg +1 -0
  7. package/src/assets/images/github-dark.svg +1 -0
  8. package/src/assets/images/github.svg +1 -0
  9. package/src/assets/images/high-priority.svg +1 -0
  10. package/src/assets/images/power-off.svg +1 -0
  11. package/src/assets/images/save.svg +1 -0
  12. package/src/assets/index.ts +15 -0
  13. package/src/assets/main.css +495 -0
  14. package/src/assets/prism-theme.css +290 -0
  15. package/src/components/buttons/ActionButtons.vue +374 -0
  16. package/src/components/buttons/DropdownButton.vue +104 -0
  17. package/src/components/buttons/IconButton.vue +63 -0
  18. package/src/components/buttons/ImageButton.vue +16 -0
  19. package/src/components/buttons/MenuButton.vue +138 -0
  20. package/src/components/buttons/SubmitButtons.vue +51 -0
  21. package/src/components/buttons/TextButton.vue +40 -0
  22. package/src/components/charts/AlertChart.vue +376 -0
  23. package/src/components/charts/BarChart.vue +212 -0
  24. package/src/components/charts/BarChartHorizontal.vue +243 -0
  25. package/src/components/charts/CronChart.vue +146 -0
  26. package/src/components/charts/EmptyChart.vue +76 -0
  27. package/src/components/charts/GradientChart.vue +310 -0
  28. package/src/components/charts/LineChart.test.js +59 -0
  29. package/src/components/charts/LineChart.vue +434 -0
  30. package/src/components/charts/PieChart.vue +293 -0
  31. package/src/components/charts/ProgressChart.vue +106 -0
  32. package/src/components/charts/StackedChart.vue +364 -0
  33. package/src/components/charts/StackedChartClustered.vue +395 -0
  34. package/src/components/charts/TimelineChart.vue +215 -0
  35. package/src/components/charts/WorkflowChart.vue +520 -0
  36. package/src/components/common/AutoCompleteSearchBar.vue +100 -0
  37. package/src/components/common/AutoRefreshButton.vue +53 -0
  38. package/src/components/common/Breadcrumb.vue +45 -0
  39. package/src/components/common/ButtonToggle.vue +24 -0
  40. package/src/components/common/Card.vue +116 -0
  41. package/src/components/common/Carousel.vue +66 -0
  42. package/src/components/common/CategoryCard.vue +28 -0
  43. package/src/components/common/CodeEditor.vue +59 -0
  44. package/src/components/common/DatePicker.vue +21 -0
  45. package/src/components/common/DatePickerInput.vue +109 -0
  46. package/src/components/common/Dialog.vue +103 -0
  47. package/src/components/common/EditorHeading.vue +10 -0
  48. package/src/components/common/EventList.vue +41 -0
  49. package/src/components/common/Facet.vue +206 -0
  50. package/src/components/common/Feed.vue +58 -0
  51. package/src/components/common/Flag.vue +27 -0
  52. package/src/components/common/HomeCard.vue +20 -0
  53. package/src/components/common/ItemBox.vue +49 -0
  54. package/src/components/common/Loading.vue +19 -0
  55. package/src/components/common/LoadingDots.vue +12 -0
  56. package/src/components/common/PageHeading.vue +30 -0
  57. package/src/components/common/Pagination.vue +105 -0
  58. package/src/components/common/Popover.vue +24 -0
  59. package/src/components/common/PowerToggle.vue +130 -0
  60. package/src/components/common/ProgressBar.vue +33 -0
  61. package/src/components/common/RadioButtons.vue +52 -0
  62. package/src/components/common/Schedule.vue +79 -0
  63. package/src/components/common/SearchBar.vue +30 -0
  64. package/src/components/common/Separator.vue +3 -0
  65. package/src/components/common/Slideout.vue +95 -0
  66. package/src/components/common/Sort.vue +83 -0
  67. package/src/components/common/Table.vue +48 -0
  68. package/src/components/common/Tabs.vue +129 -0
  69. package/src/components/common/Tag.vue +53 -0
  70. package/src/components/common/Tooltip.vue +49 -0
  71. package/src/components/common/VerticalTabs.vue +34 -0
  72. package/src/components/common/card/CardItem.vue +27 -0
  73. package/src/components/common/card/CardItemGroup.vue +45 -0
  74. package/src/components/common/facet/Leaf.vue +97 -0
  75. package/src/components/common/facet/TriState.vue +37 -0
  76. package/src/components/common/table/TableData.vue +48 -0
  77. package/src/components/common/table/TableHeader.vue +21 -0
  78. package/src/components/dialogs/ChooseValueDialog.vue +97 -0
  79. package/src/components/dialogs/ConfirmDialog.vue +73 -0
  80. package/src/components/dialogs/CopyDialog.vue +51 -0
  81. package/src/components/dialogs/DownloadDialog.vue +48 -0
  82. package/src/components/dialogs/NameDescDialog.vue +74 -0
  83. package/src/components/dialogs/NameDialog.vue +56 -0
  84. package/src/components/dialogs/PopupEditor.vue +113 -0
  85. package/src/components/dialogs/ProgressDialog.vue +58 -0
  86. package/src/components/dialogs/ResetPasswordDialog.vue +58 -0
  87. package/src/components/dialogs/Wizard.vue +99 -0
  88. package/src/components/dialogs/wizard/Stepper.vue +31 -0
  89. package/src/components/form/CheckBox.vue +26 -0
  90. package/src/components/form/Editor.vue +93 -0
  91. package/src/components/form/FormCol.vue +19 -0
  92. package/src/components/form/FormRow.vue +19 -0
  93. package/src/components/form/FormSection.vue +21 -0
  94. package/src/components/form/GreyForm.vue +7 -0
  95. package/src/components/form/GreyInput.vue +51 -0
  96. package/src/components/form/GreyInputAutocomplete.vue +100 -0
  97. package/src/components/form/GreyInputCopy.vue +66 -0
  98. package/src/components/form/GreyInputGrow.vue +42 -0
  99. package/src/components/form/GreyInputToken.vue +78 -0
  100. package/src/components/form/GreyPassword.vue +36 -0
  101. package/src/components/form/GreySelect.vue +154 -0
  102. package/src/components/form/GreySelectInput.vue +123 -0
  103. package/src/components/form/GreySelectInputMultiple.vue +218 -0
  104. package/src/components/form/GreyTel.vue +58 -0
  105. package/src/components/form/HamburgerItem.vue +95 -0
  106. package/src/components/form/KeyValueEntry.vue +74 -0
  107. package/src/components/form/RadioInput.vue +38 -0
  108. package/src/components/form/UploadFile.vue +99 -0
  109. package/src/components/icons/AiIcon.vue +6 -0
  110. package/src/components/icons/GithubIcon.vue +18 -0
  111. package/src/components/icons/HighPriorityIcon.vue +6 -0
  112. package/src/components/icons/PowerOffIcon.vue +6 -0
  113. package/src/components/icons/SaveIcon.vue +6 -0
  114. package/src/components/index.js +134 -0
  115. package/src/components/menu/DialogMenu.vue +142 -0
  116. package/src/components/menu/GrandChild.vue +39 -0
  117. package/src/components/menu/GridMenu.vue +88 -0
  118. package/src/components/menu/MenuAvatar.vue +66 -0
  119. package/src/components/menu/MenuDesktop.vue +90 -0
  120. package/src/components/notifications/Notify.vue +123 -0
  121. package/src/components/notifications/NotifyList.vue +130 -0
  122. package/src/components/page-structure/FacetPage.vue +77 -0
  123. package/src/components/query/Child.vue +63 -0
  124. package/src/components/query/LVDBQuery.vue +38 -0
  125. package/src/components/status/Active.vue +44 -0
  126. package/src/components/status/ScoreLevel.vue +43 -0
  127. package/src/components/status/Status.vue +51 -0
  128. package/src/components/status/TaskDot.vue +25 -0
  129. package/src/components/status/TaskStatus.vue +26 -0
  130. package/src/components/status/TicketStatus.vue +201 -0
  131. package/src/components/status/Trend.vue +20 -0
  132. package/src/components/tables/ArgumentRunTable.vue +96 -0
  133. package/src/components/tables/ArgumentTable.vue +67 -0
  134. package/src/components/tables/CloudFormationParameters.vue +25 -0
  135. package/src/constants/colors.js +248 -0
  136. package/src/constants/font-map.js +128 -0
  137. package/src/constants/fpl2.js +162 -0
  138. package/src/constants/icon-svg.js +405 -0
  139. package/src/constants/schedule.js +52 -0
  140. package/src/fpl/AddPanel.vue +237 -0
  141. package/src/fpl/Configs/Alert.vue +16 -0
  142. package/src/fpl/Configs/AlertSprite.vue +2 -0
  143. package/src/fpl/Configs/Chart.vue +63 -0
  144. package/src/fpl/Configs/Config.js +154 -0
  145. package/src/fpl/Configs/Counter.vue +35 -0
  146. package/src/fpl/Configs/Histogram.vue +70 -0
  147. package/src/fpl/Configs/IPMap.vue +37 -0
  148. package/src/fpl/Configs/Image.vue +163 -0
  149. package/src/fpl/Configs/MetricChart.vue +20 -0
  150. package/src/fpl/Configs/PieChart.vue +37 -0
  151. package/src/fpl/Configs/SparkChart.vue +41 -0
  152. package/src/fpl/Configs/StackedBarChart.vue +49 -0
  153. package/src/fpl/Configs/Table.vue +211 -0
  154. package/src/fpl/Configs/Text.vue +14 -0
  155. package/src/fpl/Configs/TopNChart.vue +37 -0
  156. package/src/fpl/Outputs/FPLAlert.vue +64 -0
  157. package/src/fpl/Outputs/FPLStream.vue +41 -0
  158. package/src/fpl/Outputs/FPLTable.vue +77 -0
  159. package/src/fpl/Panel.vue +202 -0
  160. package/src/fpl/Panels/Alert.vue +85 -0
  161. package/src/fpl/Panels/AlertSprite.vue +9 -0
  162. package/src/fpl/Panels/Chart.vue +98 -0
  163. package/src/fpl/Panels/Counter.vue +43 -0
  164. package/src/fpl/Panels/Histogram.vue +138 -0
  165. package/src/fpl/Panels/IPMap.vue +48 -0
  166. package/src/fpl/Panels/Image.vue +35 -0
  167. package/src/fpl/Panels/MetricChart.vue +97 -0
  168. package/src/fpl/Panels/PieChart.vue +54 -0
  169. package/src/fpl/Panels/SparkChart.vue +166 -0
  170. package/src/fpl/Panels/StackedBarChart.vue +74 -0
  171. package/src/fpl/Panels/Table.vue +103 -0
  172. package/src/fpl/Panels/Text.vue +24 -0
  173. package/src/fpl/Panels/TopNChart.vue +69 -0
  174. package/src/fpl/index.js +39 -0
  175. package/src/utils/download.js +220 -0
  176. package/src/utils/formatOutput.js +156 -0
  177. package/src/utils/random.js +32 -0
  178. package/src/utils/timeUtils.js +138 -0
@@ -0,0 +1,290 @@
1
+ pre[class*="language-"],
2
+ code[class*="language-"] {
3
+ color: #d4d4d4;
4
+ font-size: 13px;
5
+ text-shadow: none;
6
+ font-family: Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace;
7
+ direction: ltr;
8
+ text-align: left;
9
+ white-space: pre;
10
+ word-spacing: normal;
11
+ word-break: normal;
12
+ line-height: 1.5;
13
+ -moz-tab-size: 4;
14
+ -o-tab-size: 4;
15
+ tab-size: 4;
16
+ -webkit-hyphens: none;
17
+ -moz-hyphens: none;
18
+ -ms-hyphens: none;
19
+ hyphens: none;
20
+ }
21
+
22
+ pre[class*="language-"]::selection,
23
+ code[class*="language-"]::selection,
24
+ pre[class*="language-"] *::selection,
25
+ code[class*="language-"] *::selection {
26
+ text-shadow: none;
27
+ background: #264F78;
28
+ }
29
+
30
+ @media print {
31
+ pre[class*="language-"],
32
+ code[class*="language-"] {
33
+ text-shadow: none;
34
+ }
35
+ }
36
+
37
+ pre[class*="language-"] {
38
+ padding: 1em;
39
+ margin: .5em 0;
40
+ overflow: auto;
41
+ background: #1e1e1e;
42
+ }
43
+
44
+ :not(pre) > code[class*="language-"] {
45
+ padding: .1em .3em;
46
+ border-radius: .3em;
47
+ color: #db4c69;
48
+ background: #1e1e1e;
49
+ }
50
+ /*********************************************************
51
+ * Tokens
52
+ */
53
+ .namespace {
54
+ opacity: .7;
55
+ }
56
+
57
+ .token.doctype .token.doctype-tag {
58
+ color: #569CD6;
59
+ }
60
+
61
+ .token.doctype .token.name {
62
+ color: #9cdcfe;
63
+ }
64
+
65
+ .token.comment,
66
+ .token.prolog {
67
+ color: #6a9955;
68
+ }
69
+
70
+ .token.timestamp {
71
+ color: #6a9955;
72
+ }
73
+
74
+ .token.errors {
75
+ color: #C10015;
76
+ }
77
+
78
+ .token.punctuation,
79
+ .language-html .language-css,
80
+ .language-html .language-javascript {
81
+ color: #FDBE23;
82
+ }
83
+
84
+ .token.property,
85
+ .token.tag,
86
+ .token.boolean,
87
+ .token.number,
88
+ .token.constant,
89
+ .token.symbol,
90
+ .token.inserted,
91
+ .token.unit {
92
+ color: #b5cea8;
93
+ }
94
+
95
+ .token.selector,
96
+ .token.attr-name,
97
+ .token.string,
98
+ .token.char,
99
+ .token.builtin,
100
+ .token.deleted {
101
+ color: #ce9178;
102
+ }
103
+
104
+ .language-css .token.string.url {
105
+ text-decoration: underline;
106
+ }
107
+
108
+ .token.operator,
109
+ .token.entity {
110
+ color: #d4d4d4;
111
+ }
112
+
113
+ .token.operator.arrow {
114
+ color: #569CD6;
115
+ }
116
+
117
+ .token.atrule {
118
+ color: #ce9178;
119
+ }
120
+
121
+ .token.atrule .token.rule {
122
+ color: #c586c0;
123
+ }
124
+
125
+ .token.atrule .token.url {
126
+ color: #9cdcfe;
127
+ }
128
+
129
+ .token.atrule .token.url .token.function {
130
+ color: #dcdcaa;
131
+ }
132
+
133
+ .token.atrule .token.url .token.punctuation {
134
+ color: #d4d4d4;
135
+ }
136
+
137
+ .token.keyword.module,
138
+ .token.keyword.control-flow {
139
+ color: #c586c0;
140
+ }
141
+
142
+ .token.function,
143
+ .token.function .token.maybe-class-name,
144
+ .token.brackets {
145
+ color: #E9D299;
146
+ }
147
+
148
+ .token.builtinfunction,
149
+ .token.builtinfunction {
150
+ color: #CE92D8;
151
+ }
152
+
153
+ .token.keyword,
154
+ .token.curlybraces {
155
+ color: #569CD6;
156
+ }
157
+
158
+ .token.regex {
159
+ color: #d16969;
160
+ }
161
+
162
+ .token.important {
163
+ color: #569cd6;
164
+ }
165
+
166
+ .token.italic {
167
+ font-style: italic;
168
+ }
169
+
170
+ .token.constant {
171
+ color: #9cdcfe;
172
+ }
173
+
174
+ .token.class-name,
175
+ .token.maybe-class-name {
176
+ color: #4ec9b0;
177
+ }
178
+
179
+ .token.console {
180
+ color: #9cdcfe;
181
+ }
182
+
183
+ .token.parameter {
184
+ color: #9cdcfe;
185
+ }
186
+
187
+ .token.interpolation {
188
+ color: #9cdcfe;
189
+ }
190
+
191
+ .token.punctuation.interpolation-punctuation {
192
+ color: #569cd6;
193
+ }
194
+
195
+ .token.boolean {
196
+ color: #569cd6;
197
+ }
198
+
199
+ .token.property,
200
+ .token.variable,
201
+ .token.imports .token.maybe-class-name,
202
+ .token.exports .token.maybe-class-name {
203
+ color: #9cdcfe;
204
+ }
205
+
206
+ .token.selector {
207
+ color: #d7ba7d;
208
+ }
209
+
210
+ .token.escape {
211
+ color: #d7ba7d;
212
+ }
213
+
214
+ .token.tag {
215
+ color: #569cd6;
216
+ }
217
+
218
+ .token.tag .token.punctuation {
219
+ color: #808080;
220
+ }
221
+
222
+ .token.cdata {
223
+ color: #808080;
224
+ }
225
+
226
+ .token.attr-name {
227
+ color: #9cdcfe;
228
+ }
229
+
230
+ .token.attr-value,
231
+ .token.attr-value .token.punctuation {
232
+ color: #ce9178;
233
+ }
234
+
235
+ .token.attr-value .token.punctuation.attr-equals {
236
+ color: #d4d4d4;
237
+ }
238
+
239
+ .token.entity {
240
+ color: #569cd6;
241
+ }
242
+
243
+ .token.namespace {
244
+ color: #4ec9b0;
245
+ }
246
+ /*********************************************************
247
+ * Language Specific
248
+ */
249
+
250
+ pre[class*="language-javascript"],
251
+ code[class*="language-javascript"],
252
+ pre[class*="language-jsx"],
253
+ code[class*="language-jsx"],
254
+ pre[class*="language-typescript"],
255
+ code[class*="language-typescript"],
256
+ pre[class*="language-tsx"],
257
+ code[class*="language-tsx"] {
258
+ color: #9cdcfe;
259
+ }
260
+
261
+ pre[class*="language-css"],
262
+ code[class*="language-css"] {
263
+ color: #ce9178;
264
+ }
265
+
266
+ pre[class*="language-html"],
267
+ code[class*="language-html"] {
268
+ color: #d4d4d4;
269
+ }
270
+
271
+ .language-regex .token.anchor {
272
+ color: #dcdcaa;
273
+ }
274
+
275
+ .language-html .token.punctuation {
276
+ color: #808080;
277
+ }
278
+ /*********************************************************
279
+ * Line highlighting
280
+ */
281
+ pre[class*="language-"] > code[class*="language-"] {
282
+ position: relative;
283
+ z-index: 1;
284
+ }
285
+
286
+ .line-highlight.line-highlight {
287
+ background: #f7ebc6;
288
+ box-shadow: inset 5px 0 0 #f7d87c;
289
+ z-index: 0;
290
+ }
@@ -0,0 +1,374 @@
1
+ <template>
2
+ <span class="relative isolate inline-flex rounded-md shadow-xs">
3
+ <button
4
+ v-if="props.add"
5
+ type="button"
6
+ :class="[
7
+ 'action-btn std-blue rounded-l-md',
8
+ {
9
+ 'rounded-r-md':
10
+ !props.config &&
11
+ !props.view &&
12
+ !props.edit &&
13
+ !props.delete &&
14
+ !props.schedule &&
15
+ !props.download &&
16
+ !props.play &&
17
+ !props.refresh &&
18
+ !props.stop,
19
+ },
20
+ ]"
21
+ @click.stop="$emit('add')"
22
+ @mouseover="toggleTooltip(true, addTooltip)"
23
+ @mouseout="toggleTooltip(false)"
24
+ >
25
+ <span class="sr-only">Add</span>
26
+ <PlusIcon class="icon" aria-hidden="true" />
27
+ </button>
28
+ <button
29
+ v-if="props.view"
30
+ type="button"
31
+ :class="[
32
+ 'action-btn std-blue',
33
+ {
34
+ 'rounded-l-md': !props.add,
35
+ },
36
+ {
37
+ 'rounded-r-md':
38
+ !props.config &&
39
+ !props.edit &&
40
+ !props.delete &&
41
+ !props.schedule &&
42
+ !props.download &&
43
+ !props.play &&
44
+ !props.refresh &&
45
+ !props.stop,
46
+ },
47
+ ]"
48
+ @click.stop="$emit('view')"
49
+ @mouseover="toggleTooltip(true, viewTooltip)"
50
+ @mouseout="toggleTooltip(false)"
51
+ >
52
+ <EyeIcon class="icon" aria-hidden="true" />
53
+ </button>
54
+ <button
55
+ v-if="props.edit"
56
+ type="button"
57
+ :class="[
58
+ 'action-btn std-blue',
59
+ {
60
+ 'rounded-l-md': !props.add && !props.view,
61
+ },
62
+ {
63
+ 'rounded-r-md':
64
+ !props.config &&
65
+ !props.delete &&
66
+ !props.schedule &&
67
+ !props.download &&
68
+ !props.play &&
69
+ !props.refresh &&
70
+ !props.stop,
71
+ },
72
+ ]"
73
+ @click.stop="$emit('edit')"
74
+ @mouseover="toggleTooltip(true, editTooltip)"
75
+ @mouseout="toggleTooltip(false)"
76
+ >
77
+ <PencilSquareIcon class="icon" aria-hidden="true" />
78
+ </button>
79
+ <button
80
+ v-if="props.config"
81
+ type="button"
82
+ :class="[
83
+ 'action-btn std-blue',
84
+ {
85
+ 'rounded-l-md': !props.add && !props.view && !props.edit,
86
+ },
87
+ {
88
+ 'rounded-r-md':
89
+ !props.delete &&
90
+ !props.schedule &&
91
+ !props.download &&
92
+ !props.play &&
93
+ !props.refresh &&
94
+ !props.stop,
95
+ },
96
+ ]"
97
+ @click.stop="$emit('config')"
98
+ @mouseover="toggleTooltip(true, props.configTooltip)"
99
+ @mouseout="toggleTooltip(false)"
100
+ >
101
+ <Cog8ToothIcon class="icon" aria-hidden="true" />
102
+ </button>
103
+ <button
104
+ v-if="props.schedule"
105
+ type="button"
106
+ :class="[
107
+ 'action-btn std-blue',
108
+ {
109
+ 'rounded-l-md':
110
+ !props.add && !props.view && !props.edit && !props.config,
111
+ },
112
+ {
113
+ 'rounded-r-md':
114
+ !props.delete &&
115
+ !props.download &&
116
+ !props.play &&
117
+ !props.refresh &&
118
+ !props.stop,
119
+ },
120
+ ]"
121
+ @click.stop="$emit('schedule')"
122
+ @mouseover="toggleTooltip(true, 'Schedule')"
123
+ @mouseout="toggleTooltip(false)"
124
+ >
125
+ <ClockIcon class="icon" aria-hidden="true" />
126
+ </button>
127
+ <button
128
+ v-if="props.play"
129
+ type="button"
130
+ :class="[
131
+ 'action-btn std-green',
132
+ {
133
+ 'rounded-l-md':
134
+ !props.add &&
135
+ !props.view &&
136
+ !props.edit &&
137
+ !props.schedule &&
138
+ !props.config,
139
+ },
140
+ {
141
+ 'rounded-r-md':
142
+ !props.delete && !props.download && !props.refresh && !props.stop,
143
+ },
144
+ ]"
145
+ @click.stop="$emit('play')"
146
+ @mouseover="toggleTooltip(true, playTooltip)"
147
+ @mouseout="toggleTooltip(false)"
148
+ >
149
+ <PlayIcon class="icon" aria-hidden="true" />
150
+ </button>
151
+ <button
152
+ v-if="props.stop"
153
+ type="button"
154
+ :class="[
155
+ 'action-btn std-red',
156
+ {
157
+ 'rounded-l-md':
158
+ !props.add &&
159
+ !props.view &&
160
+ !props.edit &&
161
+ !props.config &&
162
+ !props.play &&
163
+ !props.schedule,
164
+ },
165
+ {
166
+ 'rounded-r-md': !props.delete && !props.download && !props.refresh,
167
+ },
168
+ ]"
169
+ @mouseover="toggleTooltip(true, 'Stop')"
170
+ @mouseout="toggleTooltip(false)"
171
+ @click.stop="$emit('stop')"
172
+ >
173
+ <StopIcon class="icon" aria-hidden="true" />
174
+ </button>
175
+ <button
176
+ v-if="props.refresh"
177
+ type="button"
178
+ :class="[
179
+ 'action-btn std-blue',
180
+ {
181
+ 'rounded-l-md':
182
+ !props.add &&
183
+ !props.view &&
184
+ !props.edit &&
185
+ !props.config &&
186
+ !props.play &&
187
+ !props.schedule &&
188
+ !props.stop,
189
+ },
190
+ {
191
+ 'rounded-r-md': !props.delete && !props.download,
192
+ },
193
+ ]"
194
+ @mouseover="toggleTooltip(true, refreshTooltip)"
195
+ @mouseout="toggleTooltip(false)"
196
+ @click.stop="$emit('refresh')"
197
+ >
198
+ <ArrowPathIcon class="icon" aria-hidden="true" />
199
+ </button>
200
+ <button
201
+ v-if="props.download"
202
+ type="button"
203
+ :class="[
204
+ 'action-btn std-blue',
205
+ {
206
+ 'rounded-l-md':
207
+ !props.add &&
208
+ !props.view &&
209
+ !props.edit &&
210
+ !props.config &&
211
+ !props.play &&
212
+ !props.schedule &&
213
+ !props.stop &&
214
+ !props.refresh,
215
+ },
216
+ {
217
+ 'rounded-r-md': !props.delete,
218
+ },
219
+ ]"
220
+ @mouseover="toggleTooltip(true, downloadTooltip)"
221
+ @mouseout="toggleTooltip(false)"
222
+ @click.stop="$emit('download')"
223
+ >
224
+ <ArrowDownTrayIcon class="icon" aria-hidden="true" />
225
+ </button>
226
+ <button
227
+ v-if="props.delete"
228
+ type="button"
229
+ :class="[
230
+ 'action-btn std-red rounded-r-md',
231
+ {
232
+ 'rounded-l-md':
233
+ !props.add &&
234
+ !props.view &&
235
+ !props.edit &&
236
+ !props.config &&
237
+ !props.play &&
238
+ !props.schedule &&
239
+ !props.download &&
240
+ !props.refresh &&
241
+ !props.stop,
242
+ },
243
+ ]"
244
+ @mouseover="toggleTooltip(true, deleteTooltip)"
245
+ @mouseout="toggleTooltip(false)"
246
+ @click.stop="$emit('delete')"
247
+ >
248
+ <TrashIcon class="icon" aria-hidden="true" />
249
+ </button>
250
+ <Tooltip
251
+ v-if="!hideTooltip"
252
+ :tooltip="tooltip"
253
+ :showingTooltip="showingTooltip"
254
+ direction="top"
255
+ style="transform: translateY(-40%)"
256
+ />
257
+ </span>
258
+ </template>
259
+ <script setup>
260
+ import {
261
+ ArrowDownTrayIcon,
262
+ ClockIcon,
263
+ EyeIcon,
264
+ PencilSquareIcon,
265
+ PlayIcon,
266
+ PlusIcon,
267
+ TrashIcon,
268
+ ArrowPathIcon,
269
+ StopIcon,
270
+ Cog8ToothIcon,
271
+ } from "@heroicons/vue/20/solid";
272
+ import { Tooltip } from "..";
273
+ import { ref } from "vue";
274
+
275
+ const props = defineProps({
276
+ add: {
277
+ type: Boolean,
278
+ default: false,
279
+ },
280
+ view: {
281
+ type: Boolean,
282
+ default: false,
283
+ },
284
+ edit: {
285
+ type: Boolean,
286
+ default: false,
287
+ },
288
+ play: {
289
+ type: Boolean,
290
+ default: false,
291
+ },
292
+ config: {
293
+ type: Boolean,
294
+ default: false,
295
+ },
296
+ delete: {
297
+ type: Boolean,
298
+ default: false,
299
+ },
300
+ schedule: {
301
+ type: Boolean,
302
+ default: false,
303
+ },
304
+ download: {
305
+ type: Boolean,
306
+ default: false,
307
+ },
308
+ refresh: {
309
+ type: Boolean,
310
+ default: false,
311
+ },
312
+ stop: {
313
+ type: Boolean,
314
+ default: false,
315
+ },
316
+ addTooltip: {
317
+ type: String,
318
+ default: "Add",
319
+ },
320
+ viewTooltip: {
321
+ type: String,
322
+ default: "View",
323
+ },
324
+ editTooltip: {
325
+ type: String,
326
+ default: "Edit",
327
+ },
328
+ configTooltip: {
329
+ type: String,
330
+ default: "Configure",
331
+ },
332
+ playTooltip: {
333
+ type: String,
334
+ default: "Run",
335
+ },
336
+ refreshTooltip: {
337
+ type: String,
338
+ default: "Refresh",
339
+ },
340
+ downloadTooltip: {
341
+ type: String,
342
+ default: "Download",
343
+ },
344
+ deleteTooltip: {
345
+ type: String,
346
+ default: "Delete",
347
+ },
348
+ hideTooltip: {
349
+ type: Boolean,
350
+ default: false,
351
+ },
352
+ });
353
+
354
+ const emits = defineEmits([
355
+ "edit",
356
+ "delete",
357
+ "view",
358
+ "add",
359
+ "config",
360
+ "schedule",
361
+ "download",
362
+ "play",
363
+ "refresh",
364
+ "stop",
365
+ ]);
366
+
367
+ const tooltip = ref("");
368
+ const showingTooltip = ref(false);
369
+
370
+ function toggleTooltip(flag, val = "") {
371
+ showingTooltip.value = flag;
372
+ tooltip.value = val;
373
+ }
374
+ </script>