unisi 0.2.8__py3-none-any.whl → 0.3.1__py3-none-any.whl

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.
unisi/voicecom.py CHANGED
@@ -1,122 +1,304 @@
1
- from difflib import get_close_matches
1
+ # Copyright © 2024 UNISI Tech. All rights reserved.
2
+ from difflib import SequenceMatcher
2
3
  from word2number import w2n
3
4
  from .users import *
4
5
  from .units import *
6
+ from .tables import Table
5
7
  from .containers import *
6
8
 
9
+ def find_most_similar_sequence(input_string, string_list):
10
+ best_match = ""
11
+ highest_ratio = 0
12
+ for string in string_list:
13
+ matcher = SequenceMatcher(None, input_string, string.lower())
14
+ ratio = matcher.ratio()
15
+ if ratio > highest_ratio:
16
+ highest_ratio = ratio
17
+ best_match = string
18
+ return best_match, highest_ratio
19
+
7
20
  def word_to_number(sn):
8
21
  try:
9
22
  return w2n.word_to_num(sn)
10
23
  except:
11
24
  return None
12
25
 
13
- commands = dict( #-> words
14
- value = ['value', 'is', 'equals'],
15
- select = ['select','choose','set'],
16
- backspace = ['backspace', 'back'],
17
- left = ['left'],
18
- right = ['right'],
19
- up = ['up'],
20
- down = ['down'],
21
- enter = ['enter', 'push', 'execute','run'],
22
- clean = ['clean', 'empty','erase'],
23
- screen = ['screen']
26
+ command_synonyms = dict( #-> words
27
+ value = ['is', 'equals'],
28
+ select = ['choose','set'],
29
+ backspace = ['back'],
30
+ enter = ['push', 'execute','run'],
31
+ clean = ['empty','erase'],
32
+ screen = ['menu'],
33
+ push = ['execute','run'],
34
+ reset = ['cancel'],
35
+ ok = ['okay']
24
36
  )
25
37
 
26
- modes = dict( #-> actions
27
- none = ['select', 'name'],
28
- text = ['text', 'left', 'right', 'up', 'down','backspace','delete', 'space', 'tab', 'enter'],
29
- number = ['number', 'backspace','delete'],
30
- select = ['select'],
31
- graph = ['select', 'node', 'edge'],
32
- table = ['page','row', 'column', 'left', 'right', 'up', 'down','backspace','delete'],
38
+ root_commands = ['select', 'screen', 'stop', 'reset', 'ok']
39
+
40
+ modes = dict( #-> actions
41
+ text = ['text', 'left', 'right', 'up', 'down','backspace','delete', 'space', 'tab', 'enter', 'undo','clean'],
42
+ number = ['number', 'backspace','delete', 'undo','clean'],
43
+ graph = ['node', 'edge'],
44
+ table = ['page','row', 'column', 'left', 'right', 'up', 'down','backspace','delete'],
45
+ command = ['push']
33
46
  )
47
+ word2command = {}
48
+ for command, syns in command_synonyms.items():
49
+ for syn in syns:
50
+ word2command[syn] = command
51
+ if command in root_commands:
52
+ root_commands.append(syn)
53
+
54
+ word2command.update({command: command for command in root_commands})
55
+ for mode, commands in modes.items():
56
+ word2command.update({c:c for c in commands})
34
57
 
35
- select_str = 'Select element ..'
36
- screen_str = 'Screen ..'
37
58
  class VoiceCom:
59
+ standart_message = "Element or command?"
38
60
  def __init__(self, user):
39
- self.user = user
40
- self.block = None
61
+ self.block = self.assist_block()
62
+ self.user = user
63
+ self.previous_unit_value_x = None
64
+ self.unit = None
65
+ self.cached_commands = {}
41
66
  self.set_screen(user.screen)
42
67
 
43
- def set_screen(self, screen):
44
- self.buffer = []
45
- self.mode = 'none'
46
- self.unit = None
68
+ def assist_block(self) -> Block:
69
+ self.input = Edit('Recognized words', '', update = lambda _,value: self.process_word(value))
70
+ self.message = Edit('System message', '', edit = False)
71
+ self.context_list = Select('Elements', None, self.select_elem, type = 'list')
72
+ self.command_list = Select('Commands', None, self.select_command, type = 'list')
73
+
74
+ return Block("Mate:",
75
+ self.message,
76
+ self.input,
77
+ self.context_list,
78
+ self.command_list,
79
+ closable = True, width = 390, icon = 'mic'
80
+ )
81
+ def set_screen(self, screen):
47
82
  self.calc_interactive_units()
48
83
  self.screen = screen
49
- if not self.block:
50
- self.block = self.assist_block()
84
+ self.reset()
85
+
86
+ def select_elem(self, elem, value):
87
+ elem.value = value
88
+ if value:
89
+ if self.mode == 'screen':
90
+ return self.user.set_screen(value)
91
+ self.activate_unit(self.name2unit.get(value, None))
92
+
93
+ def select_command(self, elem, value):
94
+ if command := word2command.get(value, None):
95
+ self.run_command(command)
96
+ self.input.value = value
97
+ self.message.value = command if command else ''
98
+ self.command_list.value = None
99
+
100
+ @property
101
+ def context_options(self):
102
+ return self.context_list.options
103
+
104
+ @context_options.setter
105
+ def context_options(self, names):
106
+ self.context_list.options = names
107
+
108
+ @property
109
+ def commands(self):
110
+ return self.command_list.options
111
+
112
+ @commands.setter
113
+ def commands(self, commands):
114
+ self.command_list.options = commands
115
+
116
+ @property
117
+ def context(self):
118
+ return self.context_list.value
119
+
120
+ @context.setter
121
+ def context(self, context):
122
+ self.context_list.value = context
51
123
 
52
124
  def calc_interactive_units(self):
53
125
  interactive_names = []
54
- name2unit = {}
126
+ name2unit = {}
55
127
  self.sreen_name = self.user.screen.name
56
- for block in flatten(self.user.screen.blocks):
57
- name2unit[block.name] = block
128
+ for block in flatten(self.user.screen.blocks):
58
129
  for elem in flatten(block.value):
59
130
  if getattr(elem, 'edit', True):
60
- name2unit[elem.name] = elem
61
- interactive_names.append(elem)
131
+ pretty_name = pretty4(elem.name)
132
+ name2unit[pretty_name] = elem
133
+ interactive_names.append(pretty_name)
134
+ interactive_names.sort()
62
135
  self.unit_names = interactive_names
63
136
  self.name2unit = name2unit
137
+
138
+ def commands4mode(self, mode):
139
+ if commands :=self.cached_commands.get(mode, None):
140
+ return commands
141
+ syn_commands = []
142
+ commands = modes.get(mode, [])
143
+ for command in commands:
144
+ if command in command_synonyms:
145
+ syn_commands.extend(command_synonyms[command])
146
+ if syn_commands:
147
+ commands.extend(syn_commands)
148
+ commands.extend(root_commands)
149
+ commands.sort()
150
+ self.cached_commands[mode] = commands
151
+ self.commands = commands
64
152
 
65
- def activate_unit(self, unit):
66
- match unit.type:
67
- case 'string':
68
- self.mode = 'text'
69
- case 'range':
70
- self.mode = 'number'
71
- case _:
72
- self.mode = unit.type
153
+ def activate_unit(self, unit: Unit | None):
154
+ if self.unit:
155
+ self.unit.active = False
156
+ self.unit.focus = False
73
157
  self.unit = unit
74
- self.buffer = []
158
+ self.message.value = VoiceCom.standart_message
159
+ if unit:
160
+ match unit.type:
161
+ case 'string':
162
+ self.mode = 'text'
163
+ case 'range':
164
+ self.mode = 'number'
165
+ case _:
166
+ self.mode = unit.type
167
+ unit.active = True
168
+ unit.focus = True
169
+ self.buffer = []
170
+ self.commands4mode(self.mode)
171
+ if unit.type == 'text' or unit.type == 'number':
172
+ self.previous_unit_value_x = unit.value, unit.x
173
+ else:
174
+ self.commands = root_commands
75
175
 
76
176
  def start(self):
77
177
  if self.screen.blocks[-1] != self.block:
78
- self.screen.blocks.append(self.block)
79
- return Redesign
178
+ self.screen.blocks.append(self.block)
80
179
  def stop(self):
81
- if self.screen.blocks[-1] is self.block:
82
- self.screen.blocks.remove(self.block)
83
- return Redesign
180
+ if self.screen.blocks[-1] == self.block:
181
+ self.screen.blocks.remove(self.block)
84
182
 
85
- def assist_block(self) -> Block:
86
- self.input = Edit('Input', '')
87
- self.context_state = Select('Context', value = select_str, options = self.unit_names)
88
- self.commands = Select('Commands', value = select_str, options = [select_str])
89
-
90
- return Block("Voice Assistant",
91
- self.input,
92
- self.context_state,
93
- closable = True, width = 390
94
- )
95
-
96
- def input_word(self, word: str):
183
+ def process_word(self, word: str):
184
+ self.input.value = word
185
+ self.message.value = ''
97
186
  if word:
98
- self.buffer.append(word)
187
+ command = word2command.get(word, None)
99
188
  match self.mode:
100
- case 'none':
101
- if unit := self.buffer_suits_name():
102
- self.activate_unit(unit)
189
+ case 'number'|'text':
190
+ #double repeat command word cause execution
191
+ if self.mode == 'number' and not command:
192
+ num = word_to_number(word)
193
+ if num is not None:
194
+ self.previous_unit_value_x = self.unit.value, self.unit.x
195
+ if self.unit.x == -1:
196
+ self.unit.value = num
197
+ elif num >= 0 and num <= 9:
198
+ snum = str(num)
199
+ svalue = str(self.unit.value)
200
+ self.unit.value = float(svalue[:self.unit.x] + snum + svalue[self.unit.x:])
201
+ self.unit.x += 1
202
+ else:
203
+ self.message.value = 'Not a number'
204
+ elif self.mode == 'text':
205
+ if self.buffer and self.buffer[-1] == word and command:
206
+ self.buffer.pop()
207
+ self.run_command(command)
208
+ else:
209
+ self.previous_unit_value_x = self.unit.value, self.unit.x
210
+ self.buffer = [word]
211
+ value = self.unit.value
212
+ if self.unit.x == -1:
213
+ if value:
214
+ self.unit.value += ' ' + word
215
+ else:
216
+ self.unit.value = word
217
+ self.unit.x = len(self.unit.value)
218
+ else:
219
+ word += ' '
220
+ self.unit.value = value[:self.unit.x] + word + value[self.unit.x:]
221
+ self.unit.x += len(word)
222
+ case 'select':
223
+ if command == 'ok' and self.context:
224
+ self.activate_unit(self.name2unit[self.context])
103
225
  else:
104
- self.process()
226
+ unit_name, similarity = self.buffer_suits_name(word)
227
+ if similarity >= 0.8:
228
+ self.activate_unit(self.name2unit[unit_name])
229
+ elif unit_name:
230
+ self.context = unit_name
231
+ self.message.value = '"Ok" to confirm'
232
+ else:
233
+ self.commands = []
234
+ self.message.value = 'Continue..'
235
+ self.input.value = ' '.join(self.buffer)
236
+ case 'screen':
237
+ if command == 'ok' and self.context:
238
+ self.user.set_screen(self.context)
239
+ return self.set_screen(self.user.screen)
240
+ else:
241
+ screen_name, similarity = self.buffer_suits_name(word)
242
+ if similarity > 0.9:
243
+ return self.user.set_screen(screen_name)
244
+ else:
245
+ self.context = screen_name
246
+ self.message.value = '"Ok" to confirm'
105
247
  case _:
106
- self.process()
107
-
108
- def buffer_suits_name(self):
109
- name = ' '.join(self.buffer)
110
- recon = get_close_matches(name, self.unit_names, n=1)
111
- if recon:
112
- self.context_state
113
-
114
- def process(self):
115
- u = self.unit
116
- word = self.buffer[0]
117
- match self.mode:
248
+ if command:
249
+ self.run_command(command)
250
+ else:
251
+ self.message.value = 'Unknown command.'
252
+
253
+ def run_command(self, command: str):
254
+ self.message.value = ''
255
+ match command:
256
+ case 'select':
257
+ self.mode = 'select'
258
+ self.buffer = []
259
+ self.commands = root_commands
260
+ self.message.value = VoiceCom.standart_message
261
+ case 'screen':
262
+ self.context_options = [getattr(s, 'name')for s in self.user.screens
263
+ if hasattr(s, 'name') and s.name != self.user.screen.name]
264
+ self.commands4mode('screen')
265
+ self.context = None
266
+ self.mode = command
267
+ self.buffer = []
268
+ self.message.value = 'Select a screen'
269
+ case 'reset':
270
+ self.reset()
271
+ case 'stop':
272
+ self.stop()
273
+ case _:
274
+ if self.unit:
275
+ self.context_command(command)
276
+ else:
277
+ self.message.value = 'Command is out of context.'
278
+ def reset(self):
279
+ self.buffer = []
280
+ self.mode = 'select'
281
+ if self.unit:
282
+ self.unit.active = False
283
+ self.unit.focus = False
284
+ self.unit = None
285
+ self.input.value = VoiceCom.standart_message
286
+ self.message.value = 'Select an element'
287
+ self.context_list.value = None
288
+ self.commands = root_commands
289
+ self.context = None
290
+ self.context_options = self.unit_names
291
+
292
+ def buffer_suits_name(self, word: str):
293
+ self.buffer.append(word)
294
+ name = ' '.join(self.buffer)
295
+ return find_most_similar_sequence(name, self.context_options)
296
+
297
+ def context_command(self, command: str):
298
+ u = self.unit
299
+ match self.mode:
118
300
  case 'text':
119
- match word:
301
+ match command:
120
302
  case 'left' :
121
303
  if u.x > 0:
122
304
  u.x -= 1
@@ -134,14 +316,15 @@ class VoiceCom:
134
316
  if hasattr(u, 'x'):
135
317
  u.value = u.value[:u.x] + ' ' + u.value[u.x:]
136
318
  u.x += 1
319
+ case 'undo':
320
+ u.value, u.x = self.previous_unit_value_x
321
+ case 'clean':
322
+ u.value = ''
137
323
  case _ :
138
- if u.x < len(u.value):
139
- u.value = u.value[:u.x] + word + u.value[u.x:]
140
- u.x += len(word)
141
-
324
+ self.message.value = 'Command is ouside context'
142
325
  case 'number':
143
- svalue = str(self.value)
144
- match word:
326
+ svalue = str(u.value)
327
+ match command:
145
328
  case 'left' :
146
329
  if u.x > 0:
147
330
  u.x -= 1
@@ -155,16 +338,13 @@ class VoiceCom:
155
338
  case 'delete' :
156
339
  if u.x < len(svalue) - 1:
157
340
  u.value = float(svalue[:u.x] + svalue[u.x+1:])
158
- case _ :
159
- num = word_to_number(word)
160
- if num is not None and hasattr(u, 'x') :
161
- if num >= 0 and num <= 9:
162
- u.value = float(svalue + str(num))
163
- u.x += len(word)
341
+ case 'clean':
342
+ u.value = None
343
+ case _ :
344
+ self.message.value = 'Command is ouside context'
164
345
 
165
- case _:
166
- pass
167
-
168
-
169
-
170
-
346
+ case 'command':
347
+ if command == 'ok' or command == 'push':
348
+ return self.unit.accept(None)
349
+ else:
350
+ self.message.value = 'Command is ouside context'
@@ -1 +1 @@
1
- thead tr:first-child th{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:1000}:root{--scrollbar-width-height:10px;--scrollbar-thumb-hover:#2176d2;--scrollbar-thumb-dark:#2176d2;--scrollbar-thumb-hover-dark:#2176d2}::-webkit-scrollbar{height:var(--scrollbar-width-height);width:var(--scrollbar-width-height)}::-webkit-scrollbar-track{box-shadow:inset 0 0 4px var(--scrollbar-track-dark)}::-webkit-scrollbar-corner{background:var(--scrollbar-track-dark)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-dark);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-dark)}#header[data-v-419ab6c8]{font-size:16px;font-weight:700;left:10px;pointer-events:none;position:absolute;top:10px;z-index:2}#graph[data-v-419ab6c8]{border:1px solid #ccc;height:600px;position:relative;width:100%}body[data-v-0f5a7837]{display:flex;justify-content:center}.custom-caption[data-v-0f5a7837]{padding:5px!important}.web-camera-container[data-v-0f5a7837]{align-items:center;border:1px solid #ccc;border-radius:4px;display:flex;flex-direction:column;justify-content:center;margin-bottom:2rem;margin-top:2rem;padding:2rem;width:500px}.web-camera-container .camera-button[data-v-0f5a7837]{margin-bottom:2rem}.web-camera-container .camera-box .camera-shutter[data-v-0f5a7837]{background-color:#fff;height:337.5px;opacity:0;position:absolute;width:450px}.web-camera-container .camera-box .camera-shutter.flash[data-v-0f5a7837]{opacity:1}.web-camera-container .camera-shoot[data-v-0f5a7837]{margin:1rem 0}.web-camera-container .camera-shoot button[data-v-0f5a7837]{align-items:center;border-radius:100%;display:flex;height:60px;justify-content:center;width:60px}.web-camera-container .camera-shoot button img[data-v-0f5a7837]{height:35px;object-fit:cover}.web-camera-container .camera-loading[data-v-0f5a7837]{height:100%;margin:3rem 0 0 -1.2rem;min-height:150px;overflow:hidden;position:absolute;width:100%}.web-camera-container .camera-loading ul[data-v-0f5a7837]{height:100%;margin:0;position:absolute;width:100%;z-index:999999}.web-camera-container .camera-loading .loader-circle[data-v-0f5a7837]{display:block;height:14px;left:100%;margin:0 auto;padding:0;position:absolute;top:50%;transform:translateY(-50%);transform:translateX(-50%);width:100%}.web-camera-container .camera-loading .loader-circle li[data-v-0f5a7837]{animation:preload-0f5a7837 1s infinite;background:#999;border-radius:100%;display:block;float:left;height:10px;line-height:10px;margin:0 0 0 4px;padding:0;position:relative;top:-50%;width:10px}.web-camera-container .camera-loading .loader-circle li[data-v-0f5a7837]:nth-child(2){animation-delay:.2s}.web-camera-container .camera-loading .loader-circle li[data-v-0f5a7837]:nth-child(3){animation-delay:.4s}@keyframes preload-0f5a7837{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.container[data-v-0f5a7837]{position:relative}.frame[data-v-0f5a7837]{border:2px solid #573497;border-radius:8px;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.container{position:relative}.frame{border:2px solid #573497;border-radius:8px;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.q-tab__label{font-size:16px;font-weight:700}
1
+ thead tr:first-child th{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:1000}:root{--scrollbar-width-height:10px;--scrollbar-thumb-hover:#2176d2;--scrollbar-thumb-dark:#2176d2;--scrollbar-thumb-hover-dark:#2176d2}::-webkit-scrollbar{height:var(--scrollbar-width-height);width:var(--scrollbar-width-height)}::-webkit-scrollbar-track{box-shadow:inset 0 0 4px var(--scrollbar-track-dark)}::-webkit-scrollbar-corner{background:var(--scrollbar-track-dark)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-dark);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-dark)}#header[data-v-419ab6c8]{font-size:16px;font-weight:700;left:10px;pointer-events:none;position:absolute;top:10px;z-index:2}#graph[data-v-419ab6c8]{border:1px solid #ccc;height:600px;position:relative;width:100%}body[data-v-95178f22]{display:flex;justify-content:center}.custom-caption[data-v-95178f22]{padding:5px!important}.web-camera-container[data-v-95178f22]{align-items:center;border:1px solid #ccc;border-radius:4px;display:flex;flex-direction:column;justify-content:center;margin-bottom:2rem;margin-top:2rem;padding:2rem;width:500px}.web-camera-container .camera-button[data-v-95178f22]{margin-bottom:2rem}.web-camera-container .camera-box .camera-shutter[data-v-95178f22]{background-color:#fff;height:337.5px;opacity:0;position:absolute;width:450px}.web-camera-container .camera-box .camera-shutter.flash[data-v-95178f22]{opacity:1}.web-camera-container .camera-shoot[data-v-95178f22]{margin:1rem 0}.web-camera-container .camera-shoot button[data-v-95178f22]{align-items:center;border-radius:100%;display:flex;height:60px;justify-content:center;width:60px}.web-camera-container .camera-shoot button img[data-v-95178f22]{height:35px;object-fit:cover}.web-camera-container .camera-loading[data-v-95178f22]{height:100%;margin:3rem 0 0 -1.2rem;min-height:150px;overflow:hidden;position:absolute;width:100%}.web-camera-container .camera-loading ul[data-v-95178f22]{height:100%;margin:0;position:absolute;width:100%;z-index:999999}.web-camera-container .camera-loading .loader-circle[data-v-95178f22]{display:block;height:14px;left:100%;margin:0 auto;padding:0;position:absolute;top:50%;transform:translateY(-50%);transform:translateX(-50%);width:100%}.web-camera-container .camera-loading .loader-circle li[data-v-95178f22]{animation:preload-95178f22 1s infinite;background:#999;border-radius:100%;display:block;float:left;height:10px;line-height:10px;margin:0 0 0 4px;padding:0;position:relative;top:-50%;width:10px}.web-camera-container .camera-loading .loader-circle li[data-v-95178f22]:nth-child(2){animation-delay:.2s}.web-camera-container .camera-loading .loader-circle li[data-v-95178f22]:nth-child(3){animation-delay:.4s}@keyframes preload-95178f22{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.container[data-v-95178f22]{position:relative}.frame[data-v-95178f22]{border:2px solid #573497;border-radius:8px;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.container{position:relative}.frame{border:2px solid #573497;border-radius:8px;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.q-tab__label{font-size:16px;font-weight:700}
unisi/web/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><base href=/ ><title>UNISI</title><meta charset=utf-8><meta name=description content="UNISI on Quasar"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width"><link rel=icon type=image/png sizes=128x128 href=icons/favicon-128x128.png><link rel=icon type=image/png sizes=96x96 href=icons/favicon-96x96.png><link rel=icon type=image/png sizes=32x32 href=icons/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=icons/favicon-16x16.png><link rel=icon type=image/ico href=favicon.ico><script defer src=/js/vendor.1bb14e9d.js></script><script defer src=/js/app.8df2e0ff.js></script><link href=/css/vendor.f7e3cefe.css rel=stylesheet><link href=/css/app.31d6cfe0.css rel=stylesheet></head><body><div id=q-app></div></body></html>
1
+ <!DOCTYPE html><html><head><base href=/ ><title>UNISI</title><meta charset=utf-8><meta name=description content="UNISI on Quasar"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width"><link rel=icon type=image/png sizes=128x128 href=icons/favicon-128x128.png><link rel=icon type=image/png sizes=96x96 href=icons/favicon-96x96.png><link rel=icon type=image/png sizes=32x32 href=icons/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=icons/favicon-16x16.png><link rel=icon type=image/ico href=favicon.ico><script defer src=/js/vendor.1bb14e9d.js></script><script defer src=/js/app.99853ae7.js></script><link href=/css/vendor.f7e3cefe.css rel=stylesheet><link href=/css/app.31d6cfe0.css rel=stylesheet></head><body><div id=q-app></div></body></html>
@@ -0,0 +1 @@
1
+ "use strict";(globalThis["webpackChunkuniqua"]=globalThis["webpackChunkuniqua"]||[]).push([[364],{8364:(e,t,a)=>{a.r(t),a.d(t,{default:()=>Aa});var l=a(1758),s=a(8790);const i=(0,l.Lk)("div",{class:"q-pa-md"},null,-1),n=(0,l.Lk)("div",{class:"q-pa-md"},null,-1);function o(e,t,a,o,r,d){const c=(0,l.g2)("q-item-label"),u=(0,l.g2)("element"),h=(0,l.g2)("q-tab"),p=(0,l.g2)("q-tabs"),g=(0,l.g2)("q-space"),m=(0,l.g2)("q-tooltip"),f=(0,l.g2)("q-btn"),y=(0,l.g2)("q-toolbar"),b=(0,l.g2)("q-header"),v=(0,l.g2)("zone"),k=(0,l.g2)("q-page"),w=(0,l.g2)("q-page-container"),A=(0,l.g2)("q-layout");return(0,l.uX)(),(0,l.Wv)(A,{view:"lHh Lpr lFf"},{default:(0,l.k6)((()=>[(0,l.bF)(b,{elevated:"",class:(0,s.C4)({"bg-deep-purple-9":e.Dark.isActive,"bg-blue-grey-9":!e.Dark.isActive})},{default:(0,l.k6)((()=>[(0,l.bF)(y,null,{default:(0,l.k6)((()=>[(0,l.bF)(c,{class:"text-h5"},{default:(0,l.k6)((()=>[(0,l.eW)((0,s.v_)(e.screen.header?e.screen.header:""),1)])),_:1}),i,((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(e.left_toolbar,(t=>((0,l.uX)(),(0,l.Wv)(u,{class:(0,s.C4)(["q-ma-xs",{"bg-blue-grey-9":e.Dark.isActive}]),data:t,pdata:e.tooldata},null,8,["class","data","pdata"])))),256)),n,(0,l.bF)(p,{class:"bold-tabs",align:"center","inline-label":"",dense:"",modelValue:e.tab,"onUpdate:modelValue":t[0]||(t[0]=t=>e.tab=t),style:{float:"center"}},{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(e.menu,(t=>((0,l.uX)(),(0,l.CE)("div",null,[t.icon?((0,l.uX)(),(0,l.Wv)(h,{key:0,class:"justify-center text-white shadow-2","no-caps":"",name:t.name,icon:t.icon,label:t.name,onClick:a=>e.tabclick(t.name)},null,8,["name","icon","label","onClick"])):(0,l.Q3)("",!0),t.icon?(0,l.Q3)("",!0):((0,l.uX)(),(0,l.Wv)(h,{key:1,class:"justify-center text-white shadow-2","no-caps":"",name:t.name,label:t.name,onClick:a=>e.tabclick(t.name)},null,8,["name","label","onClick"]))])))),256))])),_:1},8,["modelValue"]),(0,l.bF)(g),((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(e.right_toolbar,(t=>((0,l.uX)(),(0,l.Wv)(u,{class:(0,s.C4)(["q-ma-xs",{"bg-blue-grey-9":e.Dark.isActive}]),data:t,pdata:e.tooldata},null,8,["class","data","pdata"])))),256)),e.voice_button?((0,l.uX)(),(0,l.Wv)(f,{key:0,class:(0,s.C4)(["q-ma-xs",{"bg-blue-grey-9":e.Dark.isActive}]),dense:"",round:"",icon:e.isListening?"record_voice_over":"voice_over_off",onClick:e.toggleListening},{default:(0,l.k6)((()=>[(0,l.bF)(m,{class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)((0,s.v_)(e.isListening?"Stop Voice Mate":"Start Voice Mate"),1)])),_:1})])),_:1},8,["class","icon","onClick"])):(0,l.Q3)("",!0),(0,l.bF)(f,{class:(0,s.C4)(["q-ma-xs",{"bg-blue-grey-9":e.Dark.isActive}]),dense:"",round:"",icon:e.Dark.isActive?"light_mode":"dark_mode",onClick:e.switchTheme},{default:(0,l.k6)((()=>[(0,l.bF)(m,{class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)("Dark/Light mode")])),_:1})])),_:1},8,["class","icon","onClick"])])),_:1})])),_:1},8,["class"]),(0,l.bF)(w,{class:"content"},{default:(0,l.k6)((()=>[(0,l.bF)(k,{class:"flex justify-center centers"},{default:(0,l.k6)((()=>[(0,l.bF)(v,{data:e.screen.blocks,ref:"page"},null,8,["data"])])),_:1})])),_:1})])),_:1})}function r(e,t,a,i,n,o){const r=(0,l.g2)("q-icon"),d=(0,l.g2)("q-item-section"),c=(0,l.g2)("q-item-label"),u=(0,l.g2)("q-item");return(0,l.uX)(),(0,l.Wv)(u,{clickable:"",tag:"a",target:"_blank",onClick:e.send},{default:(0,l.k6)((()=>[(0,l.bF)(d,{avatar:""},{default:(0,l.k6)((()=>[(0,l.bF)(r,{name:e.icon},null,8,["name"])])),_:1}),(0,l.bF)(d,null,{default:(0,l.k6)((()=>[(0,l.bF)(c,null,{default:(0,l.k6)((()=>[(0,l.eW)((0,s.v_)(e.name),1)])),_:1})])),_:1})])),_:1},8,["onClick"])}var d=a(1576),c=a(3436);let u=null,h={};var p;const g=!1;let m=g;const f=["graph","chart","block","text"],y=["tree","table","list","text","graph","chart"];const b=window.location.host,v=`${window.location.protocol}//${b}`;let k={},w={},A={};function C(e){let t=window.location.href,a=t.split("?"),l=2==a.length?a[1]:null;l&&(a=l.split("#"),2==a.length&&(l=a[0]));let s=g?"ws://localhost:8000/ws":`ws://${b}/ws`;l&&(s+="?"+l),p=new WebSocket(s),p.onopen=()=>e.statusConnect=!0,p.onmessage=t=>{m&&console.log("incoming message",t.data),u.designCycle=0;let a=JSON.parse(t.data);a?e.processMessage(a):e.closeProgress(a)},p.onerror=t=>e.error(t),p.onclose=t=>{t.wasClean?e.info("Connection was finished by the server."):e.error("Connection suddenly closed!"),e.statusConnect=!1,m&&console.info("close code : "+t.code+" reason: "+t.reason)},u=e}function x(e){let t={block:e[0],element:e[1],event:e[2],value:e[3]};m&&console.log("sended",t),p.send(JSON.stringify(t))}let _=!0;function S(e){_=e,e||(A={})}function E(e){if(_){let t=A[e.fullname];if(t)return t.styleSize;_=!1}return null}function q(e,t,a,l="complete"){let s=[e.pdata.name,e.data.name,l,t];x(s),h[s.toString()]=a}function X(e,t,a,l,s){let i=[e,t,s,a];x(i),h[i.toString()]=l}function F(){k={},A=w,_=!0,w={}}function W(e,t,a=null){let l=null;for(let s=0;s<e.length;s++)if(Array.isArray(e[s])){if(l=W(e[s],t,a),l)return l}else if(e[s].name==t)return a&&(e[s]=a),e[s];return null}function $(e){for(let t of e){let e=t.path,a=u.screen.blocks,l=null;e.length>1?(l=W(a,e[0],null),l&&(l=W(l.value,e[1],t.data))):l=W(a,e[0],t.data),l||u.error("Invalid path: "+name)}}function z(e){let t=`${e.element}@${e.block}`,a=w[t];a.update?a.update(e):console.error()}function D(e){let t=[e.message.block,e.message.element,e.type,e.message.value].toString();if("string"==typeof e.value)u.error(e.value);else if(h[t]){let a=h[t];delete h[t],a(e.value,e.message)}else u.error(t+" doesnt exist in queryMap!")}function Q(e){let t=[];for(let l of e)l instanceof Array?t.push(l):t.push([l]);let a=t.shift();return t.reduce(((e,t)=>e.flatMap((e=>t.map((t=>e instanceof Array?[...e,t]:[e,t]))))),a)}function L(e=!1){requestAnimationFrame((()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{I(document.documentElement.scrollWidth>window.innerWidth)}))}))}))}let M=(0,c.debounce)(L,50);function I(e){if(u.designCycle>=1)return;m&&console.log(`------------------recalc design ${u.designCycle}`),u.designCycle++;const t=O(e),a=R(e);for(let[l,s]of Object.entries(t)){let e=w[l],t=a[l];const[i,n]=t||[0,1];let o,r=e.geom(),d=r.el,c=e.pdata?e.pdata.name:e.name,u=k[c];for(let a of u.data.value.slice(1))if(Array.isArray(a)){if(a.find((t=>t.name==e.data.name))){let e=a[a.length-1],t=`${e.name}@${c}`;o=w[t];break}}else if(a.name==e.data.name){o=e;break}let h=i;h/=n;let p=e.only_fixed_elems?"":`width:${Math.ceil(d.clientWidth+h)}px`;"text"==e.type&&(s-=e.showname?50:6);let g=`height:${Math.floor(s+e.he)}px;${p}`;g!=e.styleSize&&(e.styleSize=g),e.has_recalc=!1}}function O(e){const t=u.screen.blocks;let a=window.innerHeight-60,l={},s=new Map,i=[];for(let o of t){const e=[];let t=o instanceof Array,n=t?Q(o):[[o]],r={};for(let[a,l]of Object.entries(k)){let e=l.$el.getBoundingClientRect(),t=e.bottom;r[a]=t-e.top}for(let a of n){let e=0,t=!0;Array.isArray(a)||(a=[a]);for(let l of a)e+=r[l.name],k[l.name].only_fixed_elems||(t=!1);if(t){let e=k[a.slice(-1)[0].name];w[e.fullname]=e}i.push([e+8*a.length,a])}i.sort(((e,t)=>e[0]>t[0]?-1:e[0]==t[0]?0:1));for(let a of i){let t=a[1];(0,d.vA)(Array.isArray(t));const l=[];for(let[e,a]of Object.entries(w))if(a.expanding_height){let[i,n]=e.split("@");if(t.find((e=>e.name==n))){let e=!0;const t=a.geom();for(let[i,n]of l.entries()){let o=n.geom();e&&n!==a&&o.top==t.top&&(o.scrollHeight<t.scrollHeight&&(l[i]=a),e=!1,s.set(a.fullname,n.fullname))}e&&l.push(a)}}l.length&&e.push([a[0],l])}for(let[s,i]of e){let e=0,t=[];for(let a of i)if(a.fullname in l)s+=l[a.fullname];else{let l=a.geom(),i=l.bottom-l.top;i<100&&(s+=100-i,i=100),a.he=i,e+=a.he,t.push(a)}let n=(e+a-s)/t.length,o=0;for(let a of t){let e,s=n-a.he;if(1==t.length)e=s;else if(e=Math.floor(s),s-e){o+=s-e;let t=Math.round(o)-o;t<.001&&t>-.001&&(e+=Math.round(o),o=0)}l[a.fullname]=e}}}let n=Array.from(s.entries());n.sort(((e,t)=>e[0]in l||e[1]in l?-1:1));for(let[o,r]of n)r in l?(l[o]=l[r],w[o].he=w[r].he):(l[r]=l[o],w[r].he=w[o].he);return l}function R(e){let t=null;const a=t?[t]:u.screen.blocks;let l=window.innerWidth-20,s=[],i={};for(let o of a)if(0==s.length)if(Array.isArray(o))for(let e of o)s.push(Array.isArray(e)?e:[e]);else s=[[o]];else{let e=[];if(Array.isArray(o))for(let t of o)for(let a of s)e.push(Array.isArray(t)?a.concat(t):[...a,t]);else for(let t of s)e.push([...t,o]);s=e}const n=[];for(let o of s){let e=0;for(let l of o){let t=k[l.name].$el.getBoundingClientRect();e+=t.right-t.left+5}let t=l-e,a=[[]];for(let l of o){let e=[],t=k[l.name].hlevelements;if(t.length){for(let l of t)for(let t of a)e.push([...t,...l]);a=e}}for(let l of a)n.push([t,l])}n.sort(((e,t)=>t[1].length-e[1].length));for(let[o,r]of n){let t=new Map;for(let e=0;e<r.length;e++){let a=r[e],l=a.parent_name,s=l||a.name,n=a.geom(),d=(a.data.width?a.data.width:n.scrollWidth)-(n.right-n.left);if(d>1&&!f.includes(a.type)&&o>0&&!i[a.fullname]){let e=o>d?d:o;o-=e,i[a.fullname]=[e,1]}if(s=a.parent_name,s){let e=k[s],l=e.$el.getBoundingClientRect().right-6,i=e.free_right_delta4(a,n.right),o=l-i;i&&o>0&&(!t.has(s)||t.get(s)>o)&&t.set(s,o)}}for(let e of t.values())o+=e;let a=[];for(let n of r)if(n.expanding_width&&(e||f.includes(n.type)))if(i[n.fullname]){let[e,t]=i[n.fullname];o-=e/t}else a.push(n);let l=a.length;const s=o/l;for(let e of a)i[e.fullname]||(i[e.fullname]=[Math.floor(s),1]);for(let e of r)i[e.fullname]||(i[e.fullname]=[0,1])}return i}const V=(0,l.pM)({name:"menubar",methods:{send(){x(["root",null,"changed",this.name])}},props:{name:{type:String,required:!0},icon:{type:String,default:""}}});var K=a(2807),T=a(124),N=a(5173),P=a(492),H=a(3796),B=a(8582),j=a.n(B);const U=(0,K.A)(V,[["render",r]]),G=U;j()(V,"components",{QItem:T.A,QItemSection:N.A,QIcon:P.A,QItemLabel:H.A});const Y={key:0,class:"row q-col-gutter-xs q-py-xs"},J={class:"q-col-gutter-xs"},Z={key:0,class:"column q-col-gutter-xs"};function ee(e,t,a,s,i,n){const o=(0,l.g2)("zone",!0),r=(0,l.g2)("block");return e.data instanceof Array?((0,l.uX)(),(0,l.CE)("div",Y,[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(e.data,(e=>((0,l.uX)(),(0,l.CE)("div",J,[e instanceof Array?((0,l.uX)(),(0,l.CE)("div",Z,[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(e,(e=>((0,l.uX)(),(0,l.Wv)(o,{class:"q-col-gutter-xs q-py-xs",data:e},null,8,["data"])))),256))])):((0,l.uX)(),(0,l.Wv)(r,{key:1,data:e},null,8,["data"]))])))),256))])):((0,l.uX)(),(0,l.Wv)(r,{key:1,data:e.data},null,8,["data"]))}const te={class:"row no-wrap"},ae={key:0,class:"frame"},le=["data","pdata"],se={key:0,class:"row"},ie=["data","pdata"],ne={key:0,class:"row no-wrap"};function oe(e,t,a,i,n,o){const r=(0,l.g2)("element"),d=(0,l.g2)("q-icon"),c=(0,l.g2)("q-space"),u=(0,l.g2)("q-tooltip"),h=(0,l.g2)("q-btn"),p=(0,l.g2)("q-scroll-area"),g=(0,l.g2)("q-card");return(0,l.uX)(),(0,l.Wv)(g,{class:"my-card q-ma-xs container",style:(0,s.Tr)(e.only_fixed_elems?e.styleSize:null),key:e.name},{default:(0,l.k6)((()=>[(0,l.Lk)("div",te,[e.data.active?((0,l.uX)(),(0,l.CE)("div",ae)):(0,l.Q3)("",!0),e.data.logo?((0,l.uX)(),(0,l.Wv)(r,{key:1,class:"q-ma-sm",data:e.data.logo,pdata:e.data},null,8,["data","pdata"])):e.data.icon?((0,l.uX)(),(0,l.Wv)(d,{key:2,class:"q-mt-sm q-ml-sm",style:{"padding-top":"6px"},size:"sm",name:e.data.icon},null,8,["name"])):(0,l.Q3)("",!0),"_"!=e.name[0]?((0,l.uX)(),(0,l.CE)("p",{key:3,class:(0,s.C4)(["q-ma-sm",{"text-info":e.Dark.isActive,"text-cyan-10":!e.Dark.isActive}]),style:{"padding-top":"6px","font-size":"18px"}},(0,s.v_)(e.name),3)):(0,l.Q3)("",!0),((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(e.tops,(t=>((0,l.uX)(),(0,l.Wv)(r,{class:"q-ma-sm",data:t,pdata:e.data},null,8,["data","pdata"])))),256)),(0,l.bF)(c),"close"in e.data?((0,l.uX)(),(0,l.Wv)(h,{key:4,class:(0,s.C4)(["q-ma-xs",{"bg-blue-grey-9":e.Dark.isActive}]),rounded:"",dense:"",flat:"",size:"14px",icon:"cancel",onClick:e.close},{default:(0,l.k6)((()=>[(0,l.bF)(u,{class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)("Close")])),_:1})])),_:1},8,["class","onClick"])):(0,l.Q3)("",!0)]),e.data.scroll?((0,l.uX)(),(0,l.Wv)(p,{key:0,style:(0,s.Tr)(e.styleSize),"thumb-style":e.thumbStyle,"bar-style":e.barStyle},{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(e.data.value.slice(1),(t=>((0,l.uX)(),(0,l.CE)("div",{class:"column",data:t,pdata:e.data},[t instanceof Array?((0,l.uX)(),(0,l.CE)("div",se,[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(t,(t=>((0,l.uX)(),(0,l.Wv)(r,{class:"q-ma-xs",data:t,pdata:e.data},null,8,["data","pdata"])))),256))])):((0,l.uX)(),(0,l.Wv)(r,{key:1,class:"q-ma-xs",data:t,pdata:e.data},null,8,["data","pdata"]))],8,le)))),256))])),_:1},8,["style","thumb-style","bar-style"])):((0,l.uX)(!0),(0,l.CE)(l.FK,{key:1},(0,l.pI)(e.data.value.slice(1),(t=>((0,l.uX)(),(0,l.CE)("div",{class:"column",data:t,pdata:e.data},[t instanceof Array?((0,l.uX)(),(0,l.CE)("div",ne,[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(t,(t=>((0,l.uX)(),(0,l.Wv)(r,{class:"q-ma-xs",data:t,pdata:e.data},null,8,["data","pdata"])))),256))])):((0,l.uX)(),(0,l.Wv)(r,{key:1,class:"q-ma-xs",data:t,pdata:e.data},null,8,["data","pdata"]))],8,ie)))),256))])),_:1},8,["style"])}var re=a(9104);const de=e=>((0,l.Qi)("data-v-95178f22"),e=e(),(0,l.jt)(),e),ce={class:"container"},ue={key:5,class:"{'bg-blue-grey-9': Dark.isActive}"},he=["width","height"],pe=["src"],ge={class:"camera-button"},me={key:0},fe={key:1},ye={class:"camera-loading"},be=de((()=>(0,l.Lk)("ul",{class:"loader-circle"},[(0,l.Lk)("li"),(0,l.Lk)("li"),(0,l.Lk)("li")],-1))),ve=[be],ke=["height"],we=["height"],Ae={key:1,class:"camera-shoot"},Ce=de((()=>(0,l.Lk)("img",{src:"https://img.icons8.com/material-outlined/50/000000/camera--v2.png"},null,-1))),xe=[Ce],_e={key:2,class:"camera-download"},Se={key:20},Ee={key:23,class:"frame"};function qe(e,t,a,i,n,o){const r=(0,l.g2)("q-icon"),d=(0,l.g2)("q-img"),c=(0,l.g2)("q-select"),u=(0,l.g2)("q-checkbox"),h=(0,l.g2)("q-toggle"),p=(0,l.g2)("q-badge"),g=(0,l.g2)("q-slider"),m=(0,l.g2)("q-btn"),f=(0,l.g2)("q-btn-toggle"),y=(0,l.g2)("utable"),b=(0,l.g2)("linechart"),v=(0,l.g2)("q-input"),k=(0,l.g2)("q-tree"),w=(0,l.g2)("q-scroll-area"),A=(0,l.g2)("q-separator"),C=(0,l.g2)("q-uploader"),x=(0,l.g2)("sgraph"),_=(0,l.g2)("q-tooltip"),S=(0,l.g2)("q-spinner-ios");return(0,l.uX)(),(0,l.CE)("div",ce,["image"==e.type?((0,l.uX)(),(0,l.Wv)(d,{key:e.key,src:e.data.url,"spinner-color":"blue",onClick:(0,re.D$)(e.switchValue,["stop"]),fit:"cover",style:(0,s.Tr)(e.elemSize)},{default:(0,l.k6)((()=>[e.data.label?((0,l.uX)(),(0,l.CE)("div",{key:0,class:"absolute-bottom-right text-subtitle2 custom-caption",onClick:t[0]||(t[0]=(0,re.D$)(((...t)=>e.lens&&e.lens(...t)),["stop"]))},(0,s.v_)(e.data.label),1)):(0,l.Q3)("",!0),e.value?((0,l.uX)(),(0,l.Wv)(r,{key:1,class:"absolute all-pointer-events",size:"32px",name:"check_circle",color:"light-blue-2",style:{"font-size":"2em",top:"8px",left:"8px"}})):(0,l.Q3)("",!0)])),_:1},8,["src","onClick","style"])):"select"==e.type?((0,l.uX)(),(0,l.Wv)(c,{key:e.key,ref:"inputRef","transition-show":"flip-up",readonly:0==e.data.edit,"transition-hide":"flip-down",dense:"",modelValue:e.value,"onUpdate:modelValue":t[1]||(t[1]=t=>e.value=t),options:e.data.options},(0,l.eX)({_:2},[e.showname?{name:"prepend",fn:(0,l.k6)((()=>[(0,l.Lk)("p",{class:(0,s.C4)(["text-subtitle1 q-ma-sm",{white:e.Dark.isActive,black:!e.Dark.isActive}])},(0,s.v_)(e.name),3)])),key:"0"}:void 0]),1032,["readonly","modelValue","options"])):"check"==e.type?((0,l.uX)(),(0,l.Wv)(u,{key:e.key,ref:"inputRef","left-label":"",disable:0==e.data.edit,modelValue:e.value,"onUpdate:modelValue":t[2]||(t[2]=t=>e.value=t),label:e.nameLabel,"checked-icon":"task_alt","unchecked-icon":"highlight_off"},null,8,["disable","modelValue","label"])):"switch"==e.type?((0,l.uX)(),(0,l.Wv)(h,{key:e.key,ref:"inputRef",modelValue:e.value,"onUpdate:modelValue":t[3]||(t[3]=t=>e.value=t),disable:0==e.data.edit,color:"primary",label:e.nameLabel,"left-label":""},null,8,["modelValue","disable","label"])):"range"==e.type?((0,l.uX)(),(0,l.CE)("div",{key:e.key},[(0,l.bF)(p,{outline:"",dense:"",color:e.Dark.isActive?"blue-3":"blue-9"},{default:(0,l.k6)((()=>[(0,l.eW)((0,s.v_)(e.name)+": "+(0,s.v_)(e.value)+" ("+(0,s.v_)(e.data.options[0])+" to "+(0,s.v_)(e.data.options[1])+", Δ "+(0,s.v_)(e.data.options[2])+")",1)])),_:1},8,["color"]),(0,l.bF)(g,{class:"q-pl-sm",dense:"",modelValue:e.value,"onUpdate:modelValue":t[4]||(t[4]=t=>e.value=t),min:e.data.options[0],max:e.data.options[1],step:e.data.options[2],color:"primary"},null,8,["modelValue","min","max","step"])])):"radio"==e.type?((0,l.uX)(),(0,l.CE)("div",ue,[e.showname?((0,l.uX)(),(0,l.Wv)(m,{key:0,ripple:!1,color:"indigo-10",disable:"",label:e.name,"no-caps":""},null,8,["label"])):(0,l.Q3)("",!0),(0,l.bF)(f,{ref:"inputRef",modelValue:e.value,"onUpdate:modelValue":t[5]||(t[5]=t=>e.value=t),readonly:0==e.data.edit,class:(0,s.C4)({"bg-blue-grey-9":e.Dark.isActive}),"no-caps":"",options:e.data.options.map((e=>({label:e,value:e})))},null,8,["modelValue","readonly","class","options"])])):"table"==e.type?((0,l.uX)(),(0,l.Wv)(y,{key:e.key,data:e.data,pdata:e.pdata,styleSize:e.styleSize},null,8,["data","pdata","styleSize"])):"chart"==e.type?((0,l.uX)(),(0,l.Wv)(b,{key:e.key,data:e.data,pdata:e.pdata,styleSize:e.styleSize},null,8,["data","pdata","styleSize"])):"string"==e.type&&e.data.hasOwnProperty("complete")?((0,l.uX)(),(0,l.Wv)(c,{key:e.key,ref:"inputRef",dense:"",readonly:0==e.data.edit,modelValue:e.value,"onUpdate:modelValue":t[6]||(t[6]=t=>e.value=t),"use-input":"","hide-selected":"",borderless:"",outlined:"","hide-bottom-space":"","fill-input":"","input-debounce":"0",options:e.options,onFilter:e.complete,label:e.name,onKeydown:(0,re.jR)(e.pressedEnter,["enter"])},null,8,["readonly","modelValue","options","onFilter","label","onKeydown"])):"string"==e.type&&0==e.data.edit?((0,l.uX)(),(0,l.CE)("div",{key:e.key},[(0,l.Lk)("p",{class:(0,s.C4)(["q-ma-sm",{white:e.Dark.isActive,black:!e.Dark.isActive}])},(0,s.v_)(e.value),3)])):"string"==e.type?((0,l.uX)(),(0,l.Wv)(v,{key:e.key,modelValue:e.value,"onUpdate:modelValue":t[7]||(t[7]=t=>e.value=t),label:e.name2show,ref:"inputRef",autogrow:e.data.autogrow,dense:"",onKeydown:(0,re.jR)(e.pressedEnter,["enter"]),readonly:0==e.data.edit},null,8,["modelValue","label","autogrow","onKeydown","readonly"])):"number"==e.type?((0,l.uX)(),(0,l.Wv)(v,{key:e.key,modelValue:e.value,"onUpdate:modelValue":t[8]||(t[8]=t=>e.value=t),modelModifiers:{number:!0},label:e.name2show,ref:"inputRef",dense:"",onKeydown:(0,re.jR)(e.pressedEnter,["enter"]),type:"number",readonly:0==e.data.edit},null,8,["modelValue","label","onKeydown","readonly"])):"tree"==e.type||"list"==e.type?((0,l.uX)(),(0,l.CE)("div",{key:e.key},[e.showname?((0,l.uX)(),(0,l.CE)("p",{key:0,class:(0,s.C4)(["text-subtitle1 q-ma-sm text-grey-7",{"text-white":e.Dark.isActive,"text-indigo-10":!e.Dark.isActive}])},(0,s.v_)(e.name),3)):(0,l.Q3)("",!0),(0,l.bF)(w,{style:(0,s.Tr)(e.styleSize),"thumb-style":e.thumbStyle,"bar-style":e.barStyle,ref:"scroller"},{default:(0,l.k6)((()=>[(0,l.bF)(k,{nodes:e.treeNodes,"selected-color":e.Dark.isActive?"blue-3":"blue-9",dense:e.data.dense,ref:"tree",selected:e.value,"onUpdate:selected":t[9]||(t[9]=t=>e.value=t),expanded:e.expandedKeys,"onUpdate:expanded":t[10]||(t[10]=t=>e.expandedKeys=t),"node-key":"label","default-expand-all":""},null,8,["nodes","selected-color","dense","selected","expanded"])])),_:1},8,["style","thumb-style","bar-style"])])):"text"==e.type?((0,l.uX)(),(0,l.CE)("div",{key:e.key},[e.showname?((0,l.uX)(),(0,l.CE)("p",{key:0,class:(0,s.C4)(["text-subtitle1 q-ma-sm",{"text-white":e.Dark.isActive,"text-indigo-10":!e.Dark.isActive}])},(0,s.v_)(e.name),3)):(0,l.Q3)("",!0),(0,l.bo)((0,l.Lk)("textarea",{class:(0,s.C4)(["textarea",{"bg-grey-10":e.Dark.isActive,"text-white":e.Dark.isActive}]),"onUpdate:modelValue":t[11]||(t[11]=t=>e.value=t),ref:"inputRef",filled:"",type:"textarea",style:(0,s.Tr)(e.elemSize),onKeydown:t[12]||(t[12]=(0,re.jR)(((...t)=>e.pressedEnter&&e.pressedEnter(...t)),["enter"]))},null,38),[[re.Jo,e.value]])])):"line"==e.type?((0,l.uX)(),(0,l.Wv)(A,{key:14,color:"green"})):"video"==e.type?((0,l.uX)(),(0,l.CE)("video",{key:e.key,controls:"",width:e.data.width,height:e.data.height},[(0,l.Lk)("source",{src:e.data.url,type:"video/mp4"},null,8,pe)],8,he)):"uploader"==e.type?((0,l.uX)(),(0,l.Wv)(C,{key:e.key,label:e.name,"auto-upload":"",thumbnails:"",url:e.host_path,onUploaded:e.updateDom,onAdded:e.onAdded,style:(0,s.Tr)(e.elemSize),ref:"uploaderRef",flat:"",class:(0,s.C4)({"bg-grey-10":e.Dark.isActive}),color:e.Dark.isActive?"purple-10":"blue"},null,8,["label","url","onUploaded","onAdded","style","class","color"])):"image_uploader"==e.type?((0,l.uX)(),(0,l.Wv)(C,{key:e.key,label:e.name,"auto-upload":"",thumbnails:"",url:e.host_path,onUploaded:e.updateDom,onAdded:e.onAdded,ref:"uploaderRef",flat:"",class:(0,s.C4)({"bg-grey-10":e.Dark.isActive}),color:e.Dark.isActive?"purple-10":"blue"},null,8,["label","url","onUploaded","onAdded","class","color"])):"graph"==e.type?((0,l.uX)(),(0,l.Wv)(x,{key:e.key,data:e.data,pdata:e.pdata,styleSize:e.elemSize},null,8,["data","pdata","styleSize"])):"camera"==e.type?((0,l.uX)(),(0,l.CE)("div",{class:"web-camera-container",key:e.key},[(0,l.Lk)("div",ge,[(0,l.Lk)("button",{class:(0,s.C4)(["button is-rounded",{"is-primary":!e.isCameraOpen,"is-danger":e.isCameraOpen}]),type:"button",onClick:t[13]||(t[13]=(...t)=>e.toggleCamera&&e.toggleCamera(...t))},[e.isCameraOpen?((0,l.uX)(),(0,l.CE)("span",fe,"Close Camera")):((0,l.uX)(),(0,l.CE)("span",me,"Open Camera"))],2)]),(0,l.bo)((0,l.Lk)("div",ye,ve,512),[[re.aG,e.isCameraOpen&&e.isLoading]]),e.isCameraOpen?(0,l.bo)(((0,l.uX)(),(0,l.CE)("div",{key:0,class:(0,s.C4)(["camera-box",{flash:e.isShotPhoto}])},[(0,l.Lk)("div",{class:(0,s.C4)(["camera-shutter",{flash:e.isShotPhoto}])},null,2),(0,l.bo)((0,l.Lk)("video",{ref:"camera",width:450,height:337.5,autoplay:""},null,8,ke),[[re.aG,!e.isPhotoTaken]]),(0,l.bo)((0,l.Lk)("canvas",{id:"photoTaken",ref:"canvas",width:450,height:337.5},null,8,we),[[re.aG,e.isPhotoTaken]])],2)),[[re.aG,!e.isLoading]]):(0,l.Q3)("",!0),e.isCameraOpen&&!e.isLoading?((0,l.uX)(),(0,l.CE)("div",Ae,[(0,l.Lk)("button",{class:"button",type:"button",onClick:t[14]||(t[14]=(...t)=>e.takePhoto&&e.takePhoto(...t))},xe)])):(0,l.Q3)("",!0),e.isPhotoTaken&&e.isCameraOpen?((0,l.uX)(),(0,l.CE)("div",_e,[(0,l.bF)(m,{onClick:e.downloadImage,label:"Send"},null,8,["onClick"])])):(0,l.Q3)("",!0)])):""!=e.showname?((0,l.uX)(),(0,l.CE)("div",Se,[((0,l.uX)(),(0,l.Wv)(m,{key:e.key,ref:"inputRef","no-caps":"",disable:0==e.data.edit,class:(0,s.C4)({"bg-blue-grey-8":e.Dark.isActive}),label:e.name,icon:e.data.icon,onClick:e.sendValue},{default:(0,l.k6)((()=>[e.data.tooltip?((0,l.uX)(),(0,l.Wv)(_,{key:0,class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)((0,s.v_)(e.data.tooltip),1)])),_:1})):(0,l.Q3)("",!0)])),_:1},8,["disable","class","label","icon","onClick"]))])):e.data.spinner?((0,l.uX)(),(0,l.Wv)(m,{key:e.key,ref:"inputRef","no-caps":"",dense:"",disable:0==e.data.edit,round:"",class:(0,s.C4)({"bg-blue-grey-8":e.Dark.isActive}),onClick:e.sendValue},{default:(0,l.k6)((()=>[(0,l.bF)(S,{color:e.Dark.isActive?"white":"black"},null,8,["color"]),e.data.tooltip?((0,l.uX)(),(0,l.Wv)(_,{key:0,class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)((0,s.v_)(e.data.tooltip),1)])),_:1})):(0,l.Q3)("",!0)])),_:1},8,["disable","class","onClick"])):((0,l.uX)(),(0,l.Wv)(m,{key:e.key,ref:"inputRef","no-caps":"",disable:0==e.data.edit,dense:"",round:"",class:(0,s.C4)({"bg-blue-grey-8":e.Dark.isActive}),icon:e.data.icon,onClick:e.sendValue},{default:(0,l.k6)((()=>[e.data.tooltip?((0,l.uX)(),(0,l.Wv)(_,{key:0,class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)((0,s.v_)(e.data.tooltip),1)])),_:1})):(0,l.Q3)("",!0)])),_:1},8,["disable","class","icon","onClick"])),e.data.active?((0,l.uX)(),(0,l.CE)("div",Ee)):(0,l.Q3)("",!0)])}var Xe=a(8734);const Fe={class:"text-h6"},We={key:0},$e={class:"row"},ze=["onClick"],De=["onClick"];function Qe(e,t,a,i,n,o){const r=(0,l.g2)("q-tooltip"),d=(0,l.g2)("q-btn"),c=(0,l.g2)("q-icon"),u=(0,l.g2)("q-input"),h=(0,l.g2)("q-th"),p=(0,l.g2)("q-tr"),g=(0,l.g2)("q-checkbox"),m=(0,l.g2)("q-select"),f=(0,l.g2)("q-td"),y=(0,l.g2)("q-table");return(0,l.uX)(),(0,l.Wv)(y,{"virtual-scroll":"",dense:e.data.dense,style:(0,s.Tr)(e.styleSize?e.styleSize:e.currentStyle()),flat:"",filter:e.data.id?"":e.search,ref:"table",virtualScrollSliceSize:"100","rows-per-page-options":[0],"virtual-scroll-sticky-size-start":48,"row-key":"iiid",title:e.name,rows:e.rows,columns:e.columns,selection:e.singleMode?"single":"multiple",selected:e.selected,"onUpdate:selected":t[2]||(t[2]=t=>e.selected=t)},{"top-left":(0,l.k6)((()=>["link"in e.data?((0,l.uX)(),(0,l.Wv)(d,{key:0,class:(0,s.C4)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",outline:"",color:"primary",icon:e.data.filter?"filter_alt":"filter_alt_off","no-caps":"",onClick:e.switchFilter},{default:(0,l.k6)((()=>[(0,l.bF)(r,{class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)((0,s.v_)(e.data.filter?"Turn off filter":"Turn on filter"),1)])),_:1})])),_:1},8,["class","icon","onClick"])):(0,l.Q3)("",!0),(0,l.Lk)("div",Fe,(0,s.v_)(e.name),1)])),"top-right":(0,l.k6)((()=>[!1!==e.data.tools?((0,l.uX)(),(0,l.CE)("div",We,[(0,l.Lk)("div",$e,[(0,l.bF)(u,{modelValue:e.search,"onUpdate:modelValue":t[1]||(t[1]=t=>e.search=t),label:"Search",dense:"",ref:"searchField"},(0,l.eX)({append:(0,l.k6)((()=>[""!=e.search?((0,l.uX)(),(0,l.Wv)(c,{key:0,class:"cursor-pointer",name:"close",size:"xs",onClick:t[0]||(t[0]=t=>{e.search="",e.$refs.searchField.focus()})},{default:(0,l.k6)((()=>[(0,l.bF)(r,{class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)("Reset search ")])),_:1})])),_:1})):(0,l.Q3)("",!0)])),_:2},[""==e.search?{name:"prepend",fn:(0,l.k6)((()=>[(0,l.bF)(c,{name:"search",size:"xs"})])),key:"0"}:void 0]),1032,["modelValue"]),(0,l.Lk)("div",null,[(0,l.bF)(d,{class:(0,s.C4)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"select_all","no-caps":"",onClick:e.showSelected},{default:(0,l.k6)((()=>[(0,l.bF)(r,{class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)("Show selected ")])),_:1})])),_:1},8,["class","onClick"]),(0,l.bF)(d,{class:(0,s.C4)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"deselect","no-caps":"",onClick:e.deselectAll},{default:(0,l.k6)((()=>[(0,l.bF)(r,{class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)("Deselect all")])),_:1})])),_:1},8,["class","onClick"]),!1!==e.data.multimode?((0,l.uX)(),(0,l.Wv)(d,{key:0,class:(0,s.C4)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:e.singleMode?"looks_one":"grain","no-caps":"",onClick:e.switchMode},{default:(0,l.k6)((()=>[(0,l.bF)(r,{class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)("Multi-single select mode ")])),_:1})])),_:1},8,["class","icon","onClick"])):(0,l.Q3)("",!0),e.editable?((0,l.uX)(),(0,l.Wv)(d,{key:1,class:(0,s.C4)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:e.data.editing?"cancel":"edit","no-caps":"",onClick:e.switchEdit},{default:(0,l.k6)((()=>[(0,l.bF)(r,{class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)("Edit mode")])),_:1})])),_:1},8,["class","icon","onClick"])):(0,l.Q3)("",!0),e.editable&&"append"in e.data?((0,l.uX)(),(0,l.Wv)(d,{key:2,class:(0,s.C4)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"add","no-caps":"",onClick:e.append},{default:(0,l.k6)((()=>[(0,l.bF)(r,{class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)((0,s.v_)(e.data.filter?"Add a new entity+link":"Add a new row"),1)])),_:1})])),_:1},8,["class","onClick"])):(0,l.Q3)("",!0),"delete"in e.data?((0,l.uX)(),(0,l.Wv)(d,{key:3,class:(0,s.C4)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"delete_forever","no-caps":"",onClick:e.delSelected},{default:(0,l.k6)((()=>[(0,l.bF)(r,{class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)("Delete selected ")])),_:1})])),_:1},8,["class","onClick"])):(0,l.Q3)("",!0),"view"in e.data?((0,l.uX)(),(0,l.Wv)(d,{key:4,class:(0,s.C4)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"insights","no-caps":"",onClick:e.chart},{default:(0,l.k6)((()=>[(0,l.bF)(r,{class:"text-body2"},{default:(0,l.k6)((()=>[(0,l.eW)("Draw the chart")])),_:1})])),_:1},8,["class","onClick"])):(0,l.Q3)("",!0)])])])):(0,l.Q3)("",!0)])),header:(0,l.k6)((t=>[(0,l.bF)(p,{props:t},{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(t.cols,(a=>((0,l.uX)(),(0,l.Wv)(h,{class:(0,s.C4)(["text-italic",{"text-grey-9":!e.Dark.isActive,"text-teal-3":e.Dark.isActive}]),key:a.name,props:t},{default:(0,l.k6)((()=>[(0,l.eW)((0,s.v_)(a.label),1)])),_:2},1032,["class","props"])))),128))])),_:2},1032,["props"])])),body:(0,l.k6)((t=>[(0,l.bF)(p,{props:t,onClick:e=>t.selected=!t.selected},{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(e.columns,((a,i)=>((0,l.uX)(),(0,l.Wv)(f,{key:a.name,props:t},{default:(0,l.k6)((()=>["boolean"==typeof t.row[a.name]?((0,l.uX)(),(0,l.Wv)(g,{key:0,modelValue:t.row[a.name],"onUpdate:modelValue":[e=>t.row[a.name]=e,l=>e.change_switcher(t.row,a.name,i)],dense:"",disable:!e.data.editing},null,8,["modelValue","onUpdate:modelValue","disable"])):e.data.editing&&"complete"in e.data&&i==e.cedit&&e.redit==t.row.iiid?((0,l.uX)(),(0,l.Wv)(m,{key:1,dense:"","model-value":t.row[a.name],"use-input":"","hide-selected":"","fill-input":"",autofocus:"",outlined:"",borderless:"",onInputValue:e.change,"hide-dropdown-icon":"","input-debounce":"0",options:e.options,onKeydown:e.keyInput,onFilter:e.complete},null,8,["model-value","onInputValue","options","onKeydown","onFilter"])):e.data.editing&&i==e.cedit&&e.redit==t.row.iiid?((0,l.uX)(),(0,l.Wv)(u,{key:2,modelValue:t.row[a.name],"onUpdate:modelValue":[e=>t.row[a.name]=e,e.change],dense:"",onKeydown:e.keyInput,autofocus:""},null,8,["modelValue","onUpdate:modelValue","onKeydown"])):void 0==t.row[a.name]?((0,l.uX)(),(0,l.CE)("div",{key:3,onClick:a=>e.select(t.row,i)},"-- ",8,ze)):((0,l.uX)(),(0,l.CE)("div",{key:4,onClick:a=>e.select(t.row,i)},(0,s.v_)(t.row[a.name]),9,De))])),_:2},1032,["props"])))),128))])),_:2},1032,["props","onClick"])])),_:1},8,["dense","style","filter","title","rows","columns","selection","selected"])}var Le=a(411);function Me(e,t){return e.length===t.length&&e.every(((e,a)=>t[a]&&e.iiid==t[a].iiid))}let Ie="✘";function Oe(e,t){let a=[];const l=e.headers,s=l.length,i=t.length;for(var n=0;n<i;n++){const i={},r=t[n];for(var o=0;o<s;o++)null!=r[o]&&void 0!=r[o]&&(i[l[o]]=r[o]);let d=r.length;i.iiid=s<d||e.id?r[d-1]:n,a.push(i)}return a}function Re(e,t){let a=[],{limit:l,length:s,data:i}=t.rows;s&&a.splice(0,0,...Oe(t,i)),a.length=s,a=(0,Xe.Kh)(a);let n=[];function o(l,s){switch(l.update){case"update":a[l.index]=Oe(t,[l.data])[0];break;case"updates":if(l.data){let e=l.data.length;a.splice(l.index,e,...Oe(t,l.data))}if("length"in l&&(a.length=l.length),s){let a=n.indexOf(s.value);-1!=a&&n.splice(a,1),n.length&&X(e,t.name,n[n.length-1],o,"get")}break;case"delete":this.length--,a.splice(l.index,1);break;case"add":a[this.length]=Oe(t,[l.data])[0],this.length++;break;case"adds":a.splice(l.index,0,...Oe(t,l.data)),this.length+=l.data.length}}function r(a){-1==n.indexOf(a)&&(n.length>5&&n.splice(0,1),n.push(a),1==n.length&&X(e,t.name,a,o,"get"))}t.update=o;let d=new Proxy(a,{get(e,t,a){if("slice"===t)return function(...a){a[0];let s=a[1];if(s>0){let a=(t/l|0)*l;for(;a<=s;a+=l)e[a]||r(a)}return Array.prototype.slice.apply(e,a)};if(e[t]||isNaN(t))return e[t];{let e=(t/l|0)*l;return void r(e)}}});return d}const Ve=(0,l.pM)({name:"utable",setup(e){const{data:t,pdata:a}=(0,Xe.QW)(e);let s,i=t.value;s=i.id?(0,l.EW)((()=>Re(a.value.name,i))):(0,Xe.KR)(Oe(i,i.rows));let n=()=>{let e=t.value,a=null===e.value||0==s.value.length?[]:Array.isArray(e.value)?s.value.filter((t=>e.value.includes(t.iiid))):s.value.filter((t=>e.value==t.iiid));return a},o=n(),r=(0,Xe.KR)(o),d=(0,Xe.KR)(o),c=(0,Xe.KR)(!Array.isArray(t.value.value)),u=(e,l)=>{x([a.value.name,t.value.name,e,l])},h=(0,l.EW)((()=>t.value.value));return(0,l.wB)(s,((e,t)=>{d.value=n(),r.value=d.value})),(0,l.wB)(t,((e,a)=>{m&&console.log("data update",a.name),d.value=n(),r.value=d.value,c.value=!Array.isArray(t.value.value),i.id||(s.value=Oe(e,e.rows))})),{rows:s,selected:d,singleMode:c,sendMessage:u,datavalue:h,updated:r}},data(){return{Dark:Le.A,search:"",options:[],prevSelectedId:void 0,cedit:null}},methods:{switchFilter(){let e=this.data;e.filter=!e.filter,this.sendMessage("filter",e.filter)},currentStyle(){let e=this.data.tablerect;if(e){let t=e.width,a=e.height;return`width: ${t}px; height: ${a}px`}return null},select(e,t){if(this.data.editing){let a=this.headers[t];"ID"!=a&&"ⓇID"!=a&&(this.cedit=t,m&&console.log("selected",e.iiid,this.cedit))}},change_switcher(e,t,a){if(this.data.editing){let a=this.data.headers.indexOf(t),l=this.rows.findIndex((t=>t.iiid==e.iiid));this.sendMessage("modify",{value:e[t],id:e.iiid,delta:l,cell:a})}},change(e){let t=this.headers[this.cedit],a=this.data.headers.indexOf(t);if(m&&console.log("changed",t,e),this.data.editing&&this.selected.length){const l=this.selected[0];l[t]=e;this.rows;let s=this.rows.findIndex((e=>e.iiid==l.iiid));if(-1==s)return void console.log("cannot find a row!");this.sendMessage("modify",{value:e,delta:s,id:l.iiid,cell:a})}},keyInput(e){if("Control"==e.key)return;let t=!1;switch(e.key){case"Enter":"update"in this.data&&this.sendMessage("update",[this.rows[this.redit][this.headers[this.cedit]],[this.redit,this.cedit]]),t=!0;case"ArrowRight":if(e.ctrlKey||t)for(let e=this.cedit+1;e<this.headers.length;){let t=this.headers[e],a=this.selected[0][t],l=typeof a;if("boolean"!=l&&"ⓇID"!=t&&"ID"!=t){this.cedit=e;break}}break;case"Escape":this.switchEdit();break;case"ArrowLeft":if(e.ctrlKey)for(let e=this.cedit-1;e>=0;e--){let t=this.headers[e],a=typeof this.selected[0][t];if("boolean"!=a&&"ⓇID"!=t&&"ID"!=t){this.cedit=e;break}}break;case"ArrowUp":if(e.ctrlKey&&this.redit>0){let e=this.redit-1,t=this.data,a=typeof t.rows[e][this.cedit];"string"!=a&&"number"!=a||(t.value=e),this.selected=[this.rows[e]]}break;case"ArrowDown":if(e.ctrlKey&&this.redit+1<this.rows.length){let e=this.redit+1,t=this.data,a=typeof t.rows[e][this.cedit];"string"!=a&&"number"!=a||(t.value=e),this.selected=[this.rows[e]]}break}},complete(e,t,a){q(this,[e,[this.redit,this.cedit]],(e=>t((()=>{this.options=e}))))},append(){let e=this.rows,t=e.length,a=this;"append"in this.data&&q(this,this.search,(function(l){if(!Array.isArray(l))return u.error(l);m&&console.log("added row",l),a.search="",l=Oe(a.data,[l])[0],l.iiid=Math.random(),e.push(l),setTimeout((()=>{let e=a.rows;a.selected=[e[t]],a.showSelected(),a.data.editing||a.switchEdit(),a.select(e[t],0)}),100)}),"append")},showSelected(){if(this.selected.length){let e=this.$refs.table,t=this.rows,a=this.selected[0];if(void 0!=this.prevSelectedId){let e=this.selected.findIndex((e=>e?.iiid==this.prevSelectedId));-1!=e&&(++e>=this.selected.length&&(e=0),a=this.selected[e])}let s=a.iiid;this.prevSelectedId=s;let i=t.findIndex((e=>e.iiid==s));e.scrollTo(i),(0,l.dY)((()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{e.scrollTo(i)}))}))}))}))}))}))}))}},deselectAll(){this.selected=[],this.sendMessage("changed",this.value)},chart(){let e=this.data;e.type="chart",e.tablerect=this.$refs.table.$el.getBoundingClientRect(),w[this.fullname].styleSize=this.currentStyle()},switchMode(){this.singleMode=!this.singleMode,this.singleMode&&this.selected.length>1&&this.selected.splice(1)},switchEdit(){let e=this.data;e.editing=!e.editing,this.sendMessage("editing",this.data.editing)},delSelected(){if(this.selected.length){if(this.sendMessage("delete",this.value),this.singleMode)this.rows.splice(this.value,1);else{let e=this.value;e.sort((function(e,t){return t-e}));for(let t of e)this.rows.splice(t,1)}this.selected=[]}else u.error("Rows are not selected!")}},watch:{selected(e){const t=this.data;Me(this.updated,this.selected)||(this.sendMessage("changed",this.value),this.updated=this.selected),t.show&&(this.showSelected(),t.show=!1)},search(e){this.data.id&&this.sendMessage("search",e)}},computed:{fullname(){return`${this.data.name}@${this.pdata.name}`},redit(){return this.data.editing&&this.selected.length?this.selected[0].iiid:null},editable(){return 0!=this.data["edit"]},value(){let e=this.selected.map((e=>this.rows.findIndex((t=>t.iiid===e.iiid))));return-1!=e.indexOf(-1)&&console.error("selected row in a table did not found!"),this.singleMode?1==e.length?e[0]:null:e},name(){return"_"==this.data.name?"":this.data.name},headers(){let e=this.data;return e.headers.filter((e=>!e.startsWith(Ie)))},columns(){let e=!this.data.id;return this.headers.map((t=>({name:t,label:t,align:"left",sortable:e,field:t})))}},props:{data:Object,pdata:Object,styleSize:String}});var Ke=a(8098),Te=a(6384),Ne=a(7410),Pe=a(9270),He=a(4488),Be=a(7722),je=a(5262),Ue=a(460),Ge=a(9183);const Ye=(0,K.A)(Ve,[["render",Qe]]),Je=Ye;j()(Ve,"components",{QTable:Ke.A,QBtn:Te.A,QTooltip:Ne.A,QInput:Pe.A,QIcon:P.A,QTr:He.A,QTh:Be.A,QTd:je.A,QCheckbox:Ue.A,QSelect:Ge.A});const Ze={key:0,id:"header"};function et(e,t,a,i,n,o){return(0,l.uX)(),(0,l.CE)("div",{ref:"graph",style:(0,s.Tr)(a.styleSize),id:"graph"},[(0,l.Lk)("div",null,["_"!=a.data.name[0]?((0,l.uX)(),(0,l.CE)("div",Ze,(0,s.v_)(a.data.name),1)):(0,l.Q3)("",!0)])],4)}var tt=a(1522),at=a(8911);var lt=a(3668),st=a.n(lt),it=a(1944),nt=a.n(it),ot=a(5793);let rt="#091159",dt={enableEdgeEvents:!0,hideEdgesOnMove:!1,hideLabelsOnMove:!1,renderLabels:!0,renderEdgeLabels:!0,enableEdgeClickEvents:!0,enableEdgeWheelEvents:!1,enableEdgeHoverEvents:!0,enableEdgeHovering:!0,allowInvalidContainer:!0,enableEdgeClickEvents:!0,enableEdgeHoverEvents:!0,defaultNodeColor:"#FCA072",defaultNodeType:"circle",defaultEdgeColor:"#888",defaultEdgeType:"arrow",labelFont:"Arial",labelSize:14,labelWeight:"normal",labelColor:{color:"#00838F",attribute:"#000"},edgeLabelFont:"Arial",edgeLabelSize:14,edgeLabelWeight:"normal",edgeLabelColor:{attribute:"color"},stagePadding:30,labelDensity:1,labelGridCellSize:100,labelRenderedSizeThreshold:6,animationsTime:1e3,borderSize:2,outerBorderSize:3,defaultNodeOuterBorderColor:"rgb(236, 81, 72)",edgeHoverHighlightNodes:"circle",sideMargin:1,edgeHoverColor:"edge",defaultEdgeHoverColor:"#062646",edgeHoverSizeRatio:1,edgeHoverExtremities:!0,scalingMode:"outside",nodeProgramClasses:{image:ot.C$}};const ct={name:"sgraph",props:{data:{type:Object,required:!0},pdata:{type:Object,required:!0},styleSize:String},data(){return{Dark:Le.A,s:null,state:{searchQuery:""},selectedNodes:[],selectedEdges:[],graph:null,fa2start:null,fa2stop:null,fa2run:null}},methods:{sendMessage(e,t){x([this.pdata["name"],this.data["name"],e,t])},refresh(){let e=this.graph();const t=nt().inferSettings(e);let a=new(st())(e,{settings:t});m&&console.log("refresh graph",this.data.name,this.pdata.name),a.isRunning()||(a.start(),setTimeout((function(){a.stop()}),1e3))},setSelectedEdges(e){this.s.selectEdges(e)},setSearchQuery(e){if(e){const t=e.toLowerCase(),a=this.graph().nodes().map((e=>({id:e,label:graph.getNodeAttribute(e,"label")}))).filter((({label:e})=>e.toLowerCase().includes(t)));if(1===a.length&&a[0].label===e){this.state.selectedNode=a[0].id,this.state.suggestions=void 0;const e=this.s.getNodeDisplayData(this.state.selectedNode);this.s.getCamera().animate(e,{duration:500})}else this.state.selectedNode=void 0,this.state.suggestions=new Set(a.map((({id:e})=>e)))}else this.state.selectedNode=void 0,this.state.suggestions=void 0;this.s.refresh()},load(e){let t=e.value;this.selectedNodes=t.nodes?t.nodes.map((e=>String(e))):[],this.selectedEdges=t.edges?t.edges.map((e=>String(e))):[];let a=e.sizing,l=e.nodes,s=this.graph(),i=[],n=[],o=new Map;for(let u=0;u<l.length;u++){if(!l[u])continue;let e=Object.assign({},l[u]);void 0==e.id&&(e.id=u),void 0!=e.name&&(e.label=e.name);let t={key:String(e.id),attributes:e};e.size=e.size?e.size:10,i.push(t),o.set(e.id,u);let a=s._nodes.get(t.key);a?(e.x=a.attributes.x,e.y=a.attributes.y):(e.x=Math.random(),e.y=Math.random()),this.selectedNodes.includes(t.key)&&(e.highlighted=!0)}let r=[],d=new Map,c=Array(i.length).fill(0);for(let u=0;u<e.edges.length;u++){let t=Object.assign({},e.edges[u]),l=o.get(t.source),s=o.get(t.target);if(void 0==l||void 0==s)continue;if(void 0==t.id&&(t.id=u),t.name&&(t.label=t.name),t.key=String(t.id),n.push(t),a){"in"!=a&&(s=o.get(t.source),l=o.get(t.target)),c[s]++,d.has(s)?d.get(s).push(l):d.set(s,[l]);let e=r.indexOf(l),i=r.indexOf(s);if(-1==e&&(e=r.length,r.push(l)),-1==i&&(i=r.length,r.push(s)),i<e){let t=r[e];r[e]=r[i],r[i]=t}}let i=t.attributes;i||(i={},t.attributes=i),i.id=t.id,i.size=t.size?t.size:5,this.selectedEdges.includes(t.key)?(i.ocolor=i.color?i.color:dt.defaultEdgeColor,i.color=rt):t.color&&(i.color=t.color),t.label&&(i.label=t.label)}if(a)for(let u=0;u<r.length;u++){let e=r[u];if(d.has(e))for(let t of d.get(e))c[e]+=c[t];i[e].attributes.size=10+c[e]}s.clear(),s.import({nodes:i,edges:n}),this.refresh()}},computed:{value(){let e=this.graph(),t=this.selectedNodes.map((t=>e._nodes.get(t).attributes.id)),a=this.selectedEdges.map((t=>e._edges.get(t).attributes.id));return{nodes:t,edges:a}}},watch:{data:{handler(e,t){m&&console.log("data update",this.data.name,this.pdata.name),this.load(e)},deep:!0},"Dark.isActive":function(e){this.s.settings.labelColor.color=e?"#00838F":"#000",this.s.refresh()}},updated(){this.s.refresh(),m&&console.log("updated",this.data.name,this.pdata.name)},mounted(){let e=new at.MultiDirectedGraph;this.graph=()=>e;let t=this.$refs.graph;this.s=new tt.Ay(e,t,dt);let a=this.s;var l=this;function s(t){t?l.state.hoveredNeighbors=new Set(e.neighbors(t)):(l.state.hoveredNode=void 0,l.state.hoveredNeighbors=void 0),a.refresh()}function i(t,a=rt){let l=e.getEdgeAttributes(t);l.color!=a&&(l.ocolor||(l.ocolor=l.color?l.color:dt.defaultEdgeColor),e.setEdgeAttribute(t,"color",a))}function n(t,a=rt){let l=e.getEdgeAttributes(t);if(l.color==a){let a=e.getEdgeAttribute(t,"ocolor");e.setEdgeAttribute(t,"color",a)}}this.s.settings.labelColor.color=Le.A.isActive?"#00838F":"#000",a.on("clickNode",(function(t){let s=t.node;if(!u.shiftKey){for(let e of l.selectedEdges)n(e);l.selectedEdges=[]}if(l.selectedNodes.includes(s))if(e.setNodeAttribute(s,"highlighted",!1),u.shiftKey){let e=l.selectedNodes.indexOf(s);-1!=e&&l.selectedNodes.array.splice(e,1)}else l.selectedNodes=[];else{if(!u.shiftKey&&l.selectedNodes.length>0){for(let t of l.selectedNodes)e.setNodeAttribute(t,"highlighted",!1);l.selectedNodes=[]}e.setNodeAttribute(s,"highlighted",!0),l.selectedNodes.push(s)}a.refresh(),l.sendMessage("changed",l.value)})),a.on("clickEdge",(function({edge:t}){if(!u.shiftKey){for(let t of l.selectedNodes)e.setNodeAttribute(t,"highlighted",!1);l.selectedNodes=[]}if(l.selectedEdges.includes(t))if(n(t),u.shiftKey){let e=l.selectedEdges.indexOf(t);-1!=e&&l.selectedEdges.array.splice(e,1)}else l.selectedEdges=[];else{if(!u.shiftKey&&l.selectedEdges.length>0){for(let e of l.selectedEdges)n(e);l.selectedEdges=[]}i(t),l.selectedEdges.push(t)}a.refresh(),l.sendMessage("changed",l.value)})),a.on("enterNode",(function({node:t}){for(let a of e.edgeEntries())a.target==t?i(a.edge,"#808000"):a.source==t&&i(a.edge,"#2F4F4F");s(t)})),a.on("leaveNode",(function({node:t}){for(let a of e.edgeEntries())a.target==t?l.selectedEdges.includes(a.edge)?e.setEdgeAttribute(a.edge,"color",rt):n(a.edge,"#808000"):a.source==t&&(l.selectedEdges.includes(a.edge)?e.setEdgeAttribute(a.edge,"color",rt):n(a.edge,"#2F4F4F"));s(void 0)})),a.on("enterEdge",(function({edge:e}){l.selectedEdges.includes(e)||i(e)})),a.on("leaveEdge",(function({edge:e}){l.selectedEdges.includes(e)||n(e)}));const o=new ResizeObserver((e=>a.refresh()));o.observe(t);let r=null,d=!1;a.on("downNode",(t=>{d=!0,r=t.node,e.setNodeAttribute(r,"highlighted",!0)})),a.getMouseCaptor().on("mousemovebody",(t=>{if(!d||!r)return;const l=a.viewportToGraph(t);e.setNodeAttribute(r,"x",l.x),e.setNodeAttribute(r,"y",l.y),t.preventSigmaDefault(),t.original.preventDefault(),t.original.stopPropagation()})),a.getMouseCaptor().on("mouseup",(()=>{r&&e.removeNodeAttribute(r,"highlighted"),d=!1,r=null})),a.getMouseCaptor().on("mousedown",(()=>{a.getCustomBBox()||a.setCustomBBox(a.getBBox())})),this.load(this.data)}},ut=(0,K.A)(ct,[["render",et],["__scopeId","data-v-419ab6c8"]]),ht=ut;function pt(e,t,a,i,n,o){const r=(0,l.g2)("v-chart");return(0,l.uX)(),(0,l.CE)("div",{style:(0,s.Tr)(a.styleSize?a.styleSize:o.currentStyle())},[(0,l.bF)(r,{ref:"chart","manual-update":!0,onClick:o.clicked,autoresize:!0},null,8,["onClick"])],4)}var gt=a(559),mt=a(6224),ft=a(596),yt=a(16),bt=a(6926),vt=a(1259),kt=a(5951),wt=a(42),At=a(6532),Ct=a(1795),xt=a(9e3),_t=a(4907);(0,vt.Y)([mt.a,ft.a,bt.a,yt.a]),(0,vt.Y)([kt.a,wt.a,At.a,Ct.a,xt.a]);let St=["","#80FFA5","#00DDFF","#37A2FF","#FF0087","#FFBF00","rgba(128, 255, 165)","rgba(77, 119, 255)"];const Et={name:"linechart",components:{VChart:gt.Ay},props:{data:Object,pdata:Object,styleSize:String},data(){const e=(0,_t.A)();return{$q:e,model:!1,animation:null,markPoint:null,options:{responsive:!0,maintainAspectRatio:!1,legend:{data:[],bottom:10,textStyle:{color:"#4DD0E1"}},tooltip:{trigger:"axis",position:function(e){return[e[0],"10%"]}},title:{left:"center",text:""},toolbox:{feature:{}},xAxis:{type:"category",boundaryGap:!1,data:null},yAxis:{type:"value",boundaryGap:[0,"100%"]},dataZoom:[{type:"inside",start:0,end:10},{start:0,end:10}],series:[]}}},computed:{fullname(){return`${this.data.name}@${this.pdata.name}`}},methods:{setOptions(){this.$refs.chart.setOption(this.options)},currentStyle(){let e=this.data.tablerect,t=e?e.width:300,a=e?e.height:200;return`width: ${t}px; height: ${a}px`},processCoord(e,t,a){let l=null;for(let s of t)if(e[0]==s.coord[0]){l=s;break}a?l?t.splice(t.indexOf(l),1):t.push({coord:e}):(t.splice(0,t.length),l||t.push({coord:e}))},clicked(e){let t=[e.dataIndex,this.options.series[e.seriesIndex].data[e.dataIndex]];this.processCoord(t,this.markPoint.data,u.shiftKey);let a=this.markPoint.data.map((e=>e.coord[0])),l=this.data;if(l.value=Array.isArray(l.value)||a.length>1?a:a.length?a[0]:null,this.animation){let e=this.options.dataZoom;e[0].start=this.animation.start,e[1].start=this.animation.start,e[0].end=this.animation.end,e[1].end=this.animation.end}this.setOptions(),x([this.pdata.name,this.data.name,"changed",this.data.value])},calcSeries(){this.options.toolbox.feature.mySwitcher={show:!0,title:"Switch view to the table",icon:"image:M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2zm15 2h-4v3h4V4zm0 4h-4v3h4V8zm0 4h-4v3h3a1 1 0 0 0 1-1v-2zm-5 3v-3H6v3h4zm-5 0v-3H1v2a1 1 0 0 0 1 1h3zm-4-4h4V8H1v3zm0-4h4V4H1v3zm5-3v3h4V4H6zm4 4H6v3h4V8z",onclick:()=>{let e=this.data;e.type="table",e.tablerect=this.$refs.chart.$el.getBoundingClientRect(),w[this.fullname].styleSize=this.currentStyle()}};let e=this.data.view,t=this.data.headers;"_"!=this.data.name[0]&&(this.options.title.text=this.data.name);let a=e.split("-"),l=a[1].split(",");l.unshift(a[0]);let s=[];for(let n=0;n<l.length;n++)l[n]="i"==l[n]?-1:parseInt(l[n]),s.push([]),n&&(this.options.series.push({name:t[l[n]],type:"line",symbol:"circle",symbolSize:10,sampling:"lttb",itemStyle:{color:St[n]},data:s[n]}),this.options.legend.data.push(t[l[n]]));this.options.xAxis.data=s[0];let i=this.data.rows;for(let n=0;n<i.length;n++)for(let e=0;e<l.length;e++)s[e].push(-1==l[e]?n:i[n][l[e]]);if(this.options.series[1]){let e=[],t=this.options.series[1].data,a=Array.isArray(this.data.value)?this.data.value:null===this.data.value?[]:[this.data.value];for(let l=0;l<a.length;l++)this.processCoord([a[l],t[a[l]]],e,!0);this.markPoint={symbol:"rect",symbolSize:10,animationDuration:300,silent:!0,label:{color:"#fff"},itemStyle:{color:"blue"},data:e},this.options.series[1].markPoint=this.markPoint}this.setOptions()}},mounted(){this.calcSeries();let e=this;this.$refs.chart.chart.on("datazoom",(function(t){(t.start||t.end)&&(e.animation=t)}))}},qt=(0,K.A)(Et,[["render",pt]]),Xt=qt;let Ft={right:"4px",borderRadius:"7px",backgroundColor:"#027be3",width:"4px",opacity:.75},Wt={right:"2px",borderRadius:"9px",backgroundColor:"#027be3",width:"8px",opacity:.2},$t=0;function zt(e){let t=new FormData;t.append("image",e);let a=new XMLHttpRequest;a.open("POST",v,!0),a.onload=function(){200===this.status?console.log(this.response):console.error(a)},a.send(t)}const Dt=(0,l.pM)({name:"element",components:{utable:Je,sgraph:ht,linechart:Xt},setup(){const e=(0,Xe.KR)($t);$t++;const t=()=>{e.value=$t,$t++};return{forceUpdate:t,key:e}},methods:{log(e){console.log(e)},showSelected(){if("tree"==this.type||"list"==this.type){let e=this.value;e&&requestAnimationFrame((()=>{requestAnimationFrame((()=>{let t=this.$refs.tree.$el,a=this.$refs.scroller.$el;for(let l of t.getElementsByTagName("div"))if(l.innerHTML==e){const{bottom:e,height:t,top:s}=l.getBoundingClientRect();if(s){const l=a.getBoundingClientRect();(s<=l.top?l.top-s<=t:e-l.bottom<=t)||this.$refs.scroller.setScrollPosition("vertical",s-l.top);break}}}))}))}},onAdded(e){0!==e.length&&(0!==this.fileArr.length?(this.$refs.uploaderRef.removeFile(this.fileArr[0]),this.fileArr.splice(0,1,e[0])):this.fileArr.push(e[0]))},sendMessage(e,t){x([this.pdata["name"],this.data["name"],e,t])},pressedEnter(){"update"in this.data&&this.sendMessage("update",this.value)},updateDom(e){let t=e.files.length;t&&this.sendMessage("changed",e.xhr.responseText)},sendValue(){this.sendMessage("changed",this.value)},switchValue(){this.value=!this.value},setValue(e){this.value=e},focus_position(){if(this.data.focus&&this.$refs.inputRef){let e=this.$refs.inputRef;e.focus(),"text"!=this.data.type&&(e=e.$el.querySelector("input")),"x"in this.data&&-1!=this.data.x&&e.querySelector&&"number"!=this.data.type&&e.setSelectionRange(this.data.x,this.data.x)}},complete(e,t,a){q(this,e,(e=>t((()=>{this.options=e}))))},lens(){u.lens(this.data)},toggleCamera(){this.isCameraOpen?(this.isCameraOpen=!1,this.isPhotoTaken=!1,this.isShotPhoto=!1,this.stopCameraStream()):(this.isCameraOpen=!0,this.createCameraElement())},createCameraElement(){this.isLoading=!0;const e=window.constraints={audio:!1,video:!0};navigator.mediaDevices.getUserMedia(e).then((e=>{this.isLoading=!1,this.$refs.camera.srcObject=e})).catch((e=>{this.isLoading=!1,alert("May the browser didn't support or there are some errors.")}))},stopCameraStream(){let e=this.$refs.camera.srcObject.getTracks();e.forEach((e=>{e.stop()}))},takePhoto(){if(!this.isPhotoTaken){this.isShotPhoto=!0;const e=50;setTimeout((()=>{this.isShotPhoto=!1}),e)}this.isPhotoTaken=!this.isPhotoTaken;const e=this.$refs.canvas.getContext("2d");e.drawImage(this.$refs.camera,0,0,450,337.5)},downloadImage(){document.getElementById("downloadPhoto"),document.getElementById("photoTaken").toBlob(zt,"image/jpeg")},rect(){let e="clientHeight"in this.$el?this.$el:this.$el.nextElementSibling;return e.getBoundingClientRect()},geom(){let e=this.type,t=this.$el;t="tree"==e||"list"==e?t.querySelector(".scroll"):"clientHeight"in t?t:t.nextElementSibling,t||(t=this.$el.previousElementSibling,t="clientHeight"in t?t:t.nextElementSibling);const a="text"==e||"graph"==e||"chart"==e?t:t.querySelector("table"==e?".scroll":".q-tree"),l=t.getBoundingClientRect();return{el:t,inner:a,left:l.left,right:l.right,top:l.top,bottom:l.bottom,scrollHeight:a.scrollHeight,scrollWidth:a.scrollWidth}}},updated(){w[this.fullname]=this,this.showSelected(),this.focus_position(),m&&console.log("updated",this.fullname)},mounted(){let e=this.data;w[this.fullname]=this,e.id&&"table"==e.type&&!e.filter&&(this.update=e.update),this.focus_position(),this.showSelected(),m&&console.log("mounted",this.fullname)},data(){return{Dark:Le.A,value:this.data.value,styleSize:_?E(this):null,has_recalc:!0,host_path:v,options:[],expandedKeys:[],thumbStyle:Ft,barStyle:Wt,updated:"#027be3sds",isCameraOpen:!1,isPhotoTaken:!1,isShotPhoto:!1,isLoading:!1,link:"#",fileArr:[]}},computed:{elemSize(){let e="";return this.data.width&&(e=`width:${this.data.width}px`),this.data.height&&(""!=e&&(e+="; "),e+=`height:${this.data.height}px`),""==e?this.styleSize:e},parent_name(){return this.pdata?this.pdata.name:null},name(){return this.data.name},fullname(){return`${this.data.name}@${this.pdata.name}`},showname(){let e=this.data.name;return e&&"_"!=e[0]},name2show(){let e=this.data.name;return e&&"_"!=e[0]?e:""},nameLabel(){return this.data.label?this.data.label:"_"!=this.data.name[0]?this.data.name:""},text(){return this.data.text},expanding(){return y.includes(this.type)},expanding_width(){return!this.data.width&&(this.expanding&&"list"!=this.type)},expanding_height(){return!this.data.height&&this.expanding},selection(){return this.data.selection},icon(){return this.data.icon},type(){return this.data.type},treeNodes(){var e=[];if("list"==this.type)return this.data.options.map((e=>({label:e,children:[]})));var t={};for(const[s,i]of Object.entries(this.data.options)){var a=t[s];if(a||(a={label:s,children:[]},t[s]=a),i){var l=t[i];l||(l={label:i,children:[]},t[i]=l),l.children.push(a)}else e.push(a)}return e}},props:{data:{type:Object,required:!0},pdata:{type:Object,required:!0}},watch:{value(e,t){"tree"!=this.type&&"list"!=this.type||(this.data.options[e]==t&&this.expandedKeys.indexOf(t)<0&&this.expandedKeys.push(t),this.showSelected()),e!==this.updated&&(m&&console.log("value changed",e,t),this.sendValue(),this.updated=e)},selection(e){m&&console.log("selection changed",e,this.$refs.inputRef),Array.isArray(e)||(e=[0,0]);let t=this.$refs.inputRef.$el;t.focus_position();let a=t.getElementsByTagName("textarea");0==a.length&&(a=t.getElementsByTagName("input")),a[0].setSelectionRange(e[0],e[1])},data(e,t){m&&console.log("data update",this.fullname,t.name),this.styleSize||(this.styleSize=null),u.screen.reload&&"tree"==this.type&&this.$refs.tree&&this.$refs.tree.expandAll();let a=this.data;this.value=a.value,this.updated=this.value,w[this.fullname]=this}}});var Qt=a(5046),Lt=a(6908),Mt=a(3954),It=a(1444),Ot=a(6939),Rt=a(8958),Vt=a(7567),Kt=a(386),Tt=a(1298),Nt=a(2157);const Pt=(0,K.A)(Dt,[["render",qe],["__scopeId","data-v-95178f22"]]),Ht=Pt;j()(Dt,"components",{QImg:Qt.A,QIcon:P.A,QSelect:Ge.A,QCheckbox:Ue.A,QToggle:Lt.A,QBadge:Mt.A,QSlider:It.A,QBtn:Te.A,QBtnToggle:Ot.A,QInput:Pe.A,QScrollArea:Rt.A,QTree:Vt.A,QSeparator:Kt.A,QUploader:Tt.A,QTooltip:Ne.A,QSpinnerIos:Nt.A});const Bt=(0,l.pM)({name:"block",components:{element:Ht},data(){return{Dark:Le.A,styleSize:null,thumbStyle:{right:"4px",borderRadius:"7px",backgroundColor:"#027be3",width:"4px",opacity:.75},barStyle:{right:"2px",borderRadius:"9px",backgroundColor:"#027be3",width:"8px",opacity:.2}}},methods:{log(){console.log(Object.keys(k).length,this.name,this.$el.getBoundingClientRect())},close(){x([this.data.name,null,"close",!0])},geom(){let e="clientHeight"in this.$el?this.$el:this.$el.nextElementSibling,t=e.querySelector(".q-scrollarea");t||(t=e);const a=t.getBoundingClientRect();return{el:e,inner:t,left:a.left,right:a.right,top:a.top,bottom:a.bottom,scrollHeight:window.innerHeight,scrollWidth:window.innerWidth}},free_right_delta4(e,t){for(let a of this.data.value)if(Array.isArray(a)){for(let l of a)if(l==e.data){let l=a[a.length-1];return l==e.data?t:f.includes(l.type)?0:w[`${l.name}@${this.name}`].$el.getBoundingClientRect().right}}else if(a===e)return t;return 0}},mounted(){k[this.data.name]=this,(this.expanding||this.data.width)&&(w[this.fullname]=this)},computed:{name(){return this.data.name},fullname(){return`${this.data.scroll?"_scroll":"_space"}@${this.name}`},icon(){return this.data.icon},type(){return this.data.type},expanding(){return this.data.scroll},expanding_width(){return this.expanding&&!this.data.width},name_elements(){if(this.expanding)return[this.fullname];let e=[];for(let t of this.data.value)if(Array.isArray(t))for(let a of t)e.push(`${a.name}@${this.name}`);else e.push(`${t.name}@${this.name}`);return e},hlevelements(){if(this.expanding)return[[w[this.fullname]]];let e=[];for(let t of this.data.value)if(Array.isArray(t)){let a=t.map((e=>w[`${e.name}@${this.name}`])).filter((e=>e.expanding));a.length&&e.push(a)}else{let a=w[`${t.name}@${this.name}`];a.expanding&&e.push([a])}return e},only_fixed_elems(){if(this.expanding)return!1;for(let e of this.data.value)if(Array.isArray(e)){for(let t of e)if(y.includes(t.type))return!1}else if(y.includes(e.type))return!1;return!0},expanding_height(){return!this.data.height&&(this.expanding||this.only_fixed_elems)},tops(){let e=this.data.value;return e.length?Array.isArray(e[0])?e[0]:[e[0]]:[]}},props:{data:{type:Object,required:!0}},watch:{data(e){m&&console.log("data update",this.name),k[this.name]=this,this.expanding&&(w[this.fullname]=this)}}});var jt=a(3316),Ut=a(3676);const Gt=(0,K.A)(Bt,[["render",oe]]),Yt=Gt;function Jt(){let e=_&&w.size==A.size;if(e)for(let[t,a]of Object.entries(w))if(!A[t]){e=!1;break}e||(I(document.documentElement.scrollWidth>window.innerWidth),(0,l.dY)((()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{u.visible(!0)}))}))})))}j()(Bt,"components",{QCard:jt.A,QIcon:P.A,QSpace:Ut.A,QBtn:Te.A,QTooltip:Ne.A,QScrollArea:Rt.A});const Zt=(0,l.pM)({name:"zone",components:{block:Yt},props:{data:Object},updated(e){(0,l.dY)((()=>{requestAnimationFrame((()=>{requestAnimationFrame(Jt)}))}))}}),ea=(0,K.A)(Zt,[["render",ee]]),ta=ea,aa={class:"row q-gutter-sm row-md"};function la(e,t,a,i,n,o){const r=(0,l.g2)("block"),d=(0,l.g2)("q-item-label"),c=(0,l.g2)("q-space"),u=(0,l.g2)("q-btn"),h=(0,l.g2)("q-card"),p=(0,l.g2)("q-dialog");return(0,l.uX)(),(0,l.Wv)(p,{ref:"dialog",onHide:o.onDialogHide,onKeyup:(0,re.jR)(o.pressedEnter,["enter"])},{default:(0,l.k6)((()=>[(0,l.bF)(h,{class:"q-dialog-plugin q-pa-md items-start q-gutter-md",bordered:"",style:(0,s.Tr)(a.data.internal?"width: 800px; max-width: 80vw;":"")},{default:(0,l.k6)((()=>[a.data?((0,l.uX)(),(0,l.Wv)(r,{key:0,data:a.data},null,8,["data"])):(0,l.Q3)("",!0),(0,l.bF)(d,{class:"text-h6"},{default:(0,l.k6)((()=>[(0,l.eW)((0,s.v_)(a.data.text?a.data.text:""),1)])),_:1}),(0,l.Lk)("div",aa,[(0,l.bF)(c),((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(a.commands,(e=>((0,l.uX)(),(0,l.Wv)(u,{class:"col-md-3",label:e,"no-caps":"",color:a.commands[0]==e?"primary":"secondary",onClick:t=>o.sendMessage(e)},null,8,["label","color","onClick"])))),256))])])),_:1},8,["style"])])),_:1},8,["onHide","onKeyup"])}const sa={props:{data:Object,commands:Array},components:{block:Yt},emits:["ok","hide"],data(){return{closed:!1}},methods:{show(){this.$refs.dialog.show(),u.dialog=this},message4(e){return[this.data["name"],null,"changed",e]},sendMessage(e){this.data.internal||x(this.message4(e)),this.closed=!0,this.hide()},hide(){this.$refs.dialog.hide(),u.dialog=null},onDialogHide(){this.$emit("hide"),this.closed||this.data.internal||x(this.message4(null))},pressedEnter(){this.sendMessage(this.commands[0])},onOKClick(){this.$emit("ok"),this.hide()},onCancelClick(){this.hide()}}};var ia=a(558);const na=(0,K.A)(sa,[["render",la]]),oa=na;j()(sa,"components",{QDialog:ia.A,QCard:jt.A,QItemLabel:H.A,QSpace:Ut.A,QBtn:Te.A});var ra=a(5022);let da="theme";try{Le.A.set(ra.A.getItem(da))}catch(Ca){}let ca=null,ua=["complete","append","get"],ha=null;const pa=(0,l.pM)({name:"MainLayout",data(){return{leftDrawerOpen:!1,Dark:Le.A,menu:[],tab:"",tooldata:{name:"toolbar"},localServer:!0,statusConnect:!1,screen:{blocks:[],toolbar:[]},visibility:!0,designCycle:0,shiftKey:!1,isListening:!1,voice_button:!0,voice_str_length:0}},components:{menubar:G,zone:ta,element:Ht},created(){C(this)},unmounted(){window.removeEventListener("resize",this.onResize),ha&&ha.stop()},computed:{left_toolbar(){return this.screen.toolbar.filter((e=>!e.right))},right_toolbar(){return this.screen.toolbar.filter((e=>e.right))}},methods:{toggleListening(){if(this.isListening=!this.isListening,this.isListening){if(!ha){const e=window.webkitSpeechRecognition;e?(ha=new e,ha.lang=this.screen.lang||"en-US",ha.continuous=!0,ha.interimResults=!0,ha.onresult=e=>{let t="";for(const l of e.results)l.isFinal&&(t+=l[0].transcript);let a=t.substring(this.voice_str_length).trim();this.voice_str_length=t.length,a&&x(["voice",null,"changed",a])},ha.onend=()=>{this.isListening&&ha.start()}):(this.error("Speech Recognition not supported by this browser."),this.voice_button=!1)}ha.start()}else ha.stop();x(["voice",null,"listen",this.isListening])},switchTheme(){Le.A.set(!Le.A.isActive),ra.A.set(da,Le.A.isActive)},toggleLeftDrawer(){this.leftDrawerOpen=!this.leftDrawerOpen},tabclick(e){x(["root",null,"changed",e])},visible(e){this.visibility!=e&&(this.$refs.page.$el.style.visibility=e?"":"hidden",this.visibility=e)},handleKeyDown(e){"Shift"==e.key&&(this.shiftKey=!0)},handleKeyUp(e){"Shift"==e.key&&(this.shiftKey=!1)},onResize(e){m&&console.log(`window has been resized w = ${window.innerWidth}, h=${window.innerHeight}`),this.designCycle=0,M()},lens(e){let t={title:"Photo lens",message:e.text,cancel:!0,persistent:!0,component:oa},{height:a,...l}=e;l.width=750;let s={name:`Picture lens of ${e.name}`,value:[[],l],internal:!0};t.componentProps={data:s,commands:["Close"]},this.$q.dialog(t)},notify(e,t){let a=t,l={message:e,type:t,position:"top",icon:a};"progress"==t?null==ca?(l={group:!1,timeout:0,spinner:!0,type:"info",message:e||"Progress..",position:"top",color:"secondary"},ca=this.$q.notify(l)):null==e?(ca(),ca=null):(l={caption:e},ca(l)):("error"==t&&l.type,this.$q.notify(l))},error(e){this.notify(e,"error")},info(e){this.notify(e,"info")},processMessage(e){if("screen"==e.type){if(this.screen.name!=e.name)S(!1),F(),m||this.visible(!1);else if(e.reload){this.designCycle=0,this.visible(!1);for(let e of Object.values(w))e.has_recalc=!0,e.styleSize=null;L()}this.screen=e,this.menu=e.menu.map((e=>({name:e[0],icon:e[1],order:e[2]}))),this.tab=this.screen.name}else if("dialog"==e.type){let t={title:e.name,message:e.text,cancel:!0,persistent:!0};t.component=oa,t.componentProps={data:e,commands:e.commands},this.$q.dialog(t)}else if(ua.includes(e.type))D(e);else if("action"==e.type)"close"!=e.value?z(e):(this.dialog&&(this.dialog.data.internal=!0),this.dialog.hide());else{let t=e.updates&&e.updates.length;t&&$(e.updates);let a=!1;["error","progress","warning","info"].includes(e.type)&&(this.notify(e.value,e.type),a=!0),a||t||(this.error("Invalid data came from the server! Look the console."),console.log(`Invalid data came from the server! ${e}`))}this.closeProgress(e)},closeProgress(e){!ca||e&&"progress"==e.type||this.notify(null,"progress")}},mounted(){window.addEventListener("resize",this.onResize);const e=new ResizeObserver((e=>{let t=document.documentElement.scrollWidth>window.innerWidth||document.documentElement.scrollHeight>window.innerHeight;t&&L(!1)}));let t=this.$refs.page.$el;e.observe(t),window.addEventListener("keydown",this.handleKeyDown),window.addEventListener("keyup",this.handleKeyUp)},beforeUnmount(){window.removeEventListener("keydown",this.handleKeyDown),window.removeEventListener("keyup",this.handleKeyUp)}});var ga=a(2008),ma=a(8416),fa=a(6914),ya=a(2980),ba=a(327),va=a(5205),ka=a(7716);const wa=(0,K.A)(pa,[["render",o]]),Aa=wa;j()(pa,"components",{QLayout:ga.A,QHeader:ma.A,QToolbar:fa.A,QBtn:Te.A,QItemLabel:H.A,QTabs:ya.A,QTab:ba.A,QSpace:Ut.A,QTooltip:Ne.A,QPageContainer:va.A,QPage:ka.A})}}]);