unisi 0.1.18__py3-none-any.whl → 0.2.0__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/autotest.py CHANGED
@@ -158,7 +158,7 @@ def check_module(module):
158
158
  elif not isinstance(screen.name, str):
159
159
  errors.append(f"name' variable in screen file {module.__file__} {screen.name} is not a string!")
160
160
  if not isinstance(screen.blocks, list):
161
- errors.append(f"Screen file {module.__file__} does not contain 'blocks' list!")
161
+ errors.append(f"Screen file {module.__file__} 'blocks' is not a list!")
162
162
  else:
163
163
  toolbar = 'toolbar'
164
164
  block_names.add(toolbar)
unisi/common.py CHANGED
@@ -89,16 +89,18 @@ def get_default_args(func):
89
89
  defaults[name] = param.default
90
90
  return defaults
91
91
 
92
- Unishare = ArgObject(context_user = None, sessions = {})
92
+ Unishare = ArgObject(context_user = lambda: None, sessions = {})
93
93
 
94
94
  class Message:
95
- def __init__(self, *gui_objects, user = None, type = 'update'):
96
- self.type = type
97
- if gui_objects:
98
- self.updates = [{'data': gui} for gui in gui_objects]
95
+ def __init__(self, *units, user = None, type = 'update'):
96
+ self.type = type
97
+ self.set_updates(units)
99
98
  if user:
100
99
  self.fill_paths4(user)
101
100
 
101
+ def set_updates(self, units):
102
+ self.updates = [{'data': unit} for unit in units]
103
+
102
104
  def fill_paths4(self, user):
103
105
  if hasattr(self, 'updates'):
104
106
  invalid = []
@@ -114,10 +116,10 @@ class Message:
114
116
  for inv in invalid:
115
117
  self.updates.remove(inv)
116
118
 
117
- def contains(self, guiobj):
119
+ def contains(self, unit):
118
120
  if hasattr(self, 'updates'):
119
121
  for update in self.updates:
120
- if guiobj is update['data']:
122
+ if unit is update['data']:
121
123
  return True
122
124
 
123
125
  def TypeMessage(type, value, *data, user = None):
unisi/containers.py CHANGED
@@ -22,7 +22,8 @@ class ContentScaler(Range):
22
22
  return elements
23
23
 
24
24
  class Block(Unit):
25
- def __init__(self, name, *elems, **options):
25
+ def __init__(self, name, *elems, **options):
26
+ self._mark_changed = None
26
27
  self.name = name
27
28
  self.type = 'block'
28
29
  self.value = list(elems)
@@ -35,9 +36,9 @@ class Block(Unit):
35
36
  elif isinstance(self.value[0], list):
36
37
  self.value[0].append(scaler)
37
38
  else:
38
- self.value[0] = [self.value, scaler]
39
-
40
- for elem in flatten(self.value):
39
+ self.value[0] = [self.value, scaler]
40
+
41
+ for elem in flatten(self.value):
41
42
  if hasattr(elem, 'llm'):
42
43
  if elem.llm is True:
43
44
  dependencies = [obj for obj in flatten(self.value) if elem is not obj and obj.type != 'command']
@@ -64,6 +65,14 @@ class Block(Unit):
64
65
  else:
65
66
  elem.llm = None
66
67
  print(f'Empty dependency list for llm calculation for {elem.name} {elem.type}!')
68
+
69
+ self.set_reactivity(Unishare.context_user())
70
+
71
+ def set_reactivity(self, user, override = False):
72
+ if user:
73
+ super().set_reactivity(user, override)
74
+ for elem in flatten(self.value):
75
+ elem.set_reactivity(user)
67
76
 
68
77
  @property
69
78
  def compact_view(self) -> str:
@@ -80,13 +89,19 @@ class Block(Unit):
80
89
  sval = self.scaler.value
81
90
  if sval != 1:
82
91
  self.scaler.value = 1
83
- self.scaler.changed(self.scaler, sval)
92
+ self.scaler.changed(self.scaler, sval)
93
+ self.set_reactivity(Unishare.context_user())
84
94
 
85
95
  class ParamBlock(Block):
86
96
  def __init__(self, name, *args, row = 3, **params):
97
+ """ does not need reactivity so Block init is not used"""
98
+ self._mark_changed = None
87
99
  if not args:
88
100
  args = [[]]
89
- super().__init__(name, *args)
101
+ self._mark_changed = None
102
+ self.name = name
103
+ self.type = 'block'
104
+ self.value = list(args)
90
105
  self.name2elem = {}
91
106
  cnt = 0
92
107
 
unisi/dbunits.py CHANGED
@@ -3,10 +3,10 @@ from collections import defaultdict
3
3
 
4
4
  #storage id -> screen name -> [elem name, block name]
5
5
  dbshare = defaultdict(lambda: defaultdict(lambda: []))
6
- # (db id, exclude user from updating) -> update
6
+ # db id -> [update]
7
7
  dbupdates = defaultdict(lambda: [])
8
8
 
9
- def iterate(iter, times):
9
+ def at_iter(iter, times):
10
10
  for i, val in enumerate(iter):
11
11
  if i == times:
12
12
  return val
@@ -58,7 +58,7 @@ class Dblist:
58
58
  return delta_list, self.cache[delta_list:delta_list + self.limit]
59
59
 
60
60
  lst = self.delta_list.get(delta_list)
61
- if lst:
61
+ if lst is not None:
62
62
  return delta_list, lst
63
63
  lst = self.dbtable.read_rows(skip = delta_list)
64
64
  self.delta_list[delta_list] = lst
@@ -81,9 +81,8 @@ class Dblist:
81
81
  if chunk:
82
82
  chunk[index - delta_list] = value
83
83
  self.dbtable.assign_row(value)
84
- update = dict(update = 'update', index = index, data = value)
85
- dbupdates[self.dbtable.id].append(update)
86
- return update
84
+ update = dict(type = 'action', update = 'update', index = index, data = value)
85
+ dbupdates[self.dbtable.id].append(update)
87
86
 
88
87
  def clean_cache_from(self, delta_list):
89
88
  """clear dirty delta_list cache"""
@@ -93,7 +92,7 @@ class Dblist:
93
92
  delta_list, chunk = self.get_delta_chunk(index)
94
93
  if chunk:
95
94
  self.dbtable.delete_row(index)
96
- update = dict(update ='delete', index = index, exclude = True)
95
+ update = dict(type = 'action',update ='delete', index = index, exclude = True)
97
96
  dbupdates[self.dbtable.id].append(update)
98
97
  del chunk[index - delta_list]
99
98
  limit = self.dbtable.limit
@@ -102,8 +101,7 @@ class Dblist:
102
101
  next_list = self.delta_list.get(next_delta_list)
103
102
  if next_list:
104
103
  chunk.append(next_list[0])
105
- self.clean_cache_from(next_delta_list)
106
- return update
104
+ self.clean_cache_from(next_delta_list)
107
105
 
108
106
  def __len__(self):
109
107
  return len(self.cache) if self.cache is not None else self.dbtable.length
@@ -113,9 +111,9 @@ class Dblist:
113
111
  table_fields = self.dbtable.table_fields
114
112
  delta = cell_index - len(table_fields)
115
113
  if delta < 0:
116
- return True, iterate(table_fields, cell_index)
114
+ return True, at_iter(table_fields, cell_index)
117
115
  delta -= 1 #ID field
118
- return False, iterate(self.link, delta)
116
+ return False, at_iter(self.dbtable.list.link[1], delta)
119
117
 
120
118
  def update_cell(self, delta, cell, value, id = None) -> dict:
121
119
  in_node, field = self.index2node_relation(cell)
@@ -123,26 +121,28 @@ class Dblist:
123
121
  table_id = self.dbtable.id
124
122
  row_id = self[delta][len(self.dbtable.table_fields)]
125
123
  else:
126
- table_id = self.link[2]
124
+ table_id = self.dbtable.list.link[2]
127
125
  row_id = id
128
126
  self.dbtable.db.update_row(table_id, row_id, {field: value}, in_node)
129
- self[delta][cell] = value
130
- update = dict(update = 'update', index = delta, data = self[delta])
131
- dbupdates[self.dbtable.id].append(update)
132
- return update
127
+ self[delta][cell] = value
128
+ if self.cache is None:
129
+ update = dict(type = 'action', update = 'update', index = delta, data = self[delta])
130
+ dbupdates[self.dbtable.id].append(update)
131
+ return update
133
132
 
134
- def append(self, value):
133
+ def append(self, arr):
134
+ """append row to list"""
135
135
  if self.cache is not None:
136
- self.cache.append(value)
137
- return value[-1]
136
+ self.cache.append(arr)
137
+ return arr
138
138
  index = len(self)
139
- row = self.dbtable.append_row(value)
140
- list = self.get_delta_chunk(index)
141
- if list:
139
+ row = self.dbtable.append_row(arr)
140
+ delta_chunk,list = self.get_delta_chunk(index)
141
+ if list is not None:
142
142
  list.append(row)
143
- update = dict(update = 'add', index = index, data = row)
143
+ update = dict(type = 'action', update = 'add', index = index, data = row)
144
144
  dbupdates[self.dbtable.id].append(update)
145
- return update
145
+ return row
146
146
 
147
147
  def extend(self, rows) -> dict:
148
148
  delta_start = self.dbtable.length
@@ -167,9 +167,8 @@ class Dblist:
167
167
  start += can_fill
168
168
  len_rows -= can_fill
169
169
  delta, data = self.get_delta_chunk(delta_start)
170
- update = dict(update = 'updates', index = delta, data = data, length = length)
171
- dbupdates[self.dbtable.id].append(update)
172
- return update
170
+ update = dict(type = 'action', update = 'updates', index = delta, data = data, length = length)
171
+ dbupdates[self.dbtable.id].append(update)
173
172
 
174
173
  def insert(self, index, value):
175
174
  self.append(value)
@@ -183,5 +182,7 @@ class Dblist:
183
182
  del self[index]
184
183
  return value
185
184
 
186
- def clear(self):
187
- self.dbtable.clear()
185
+ def clear(self, detach = False):
186
+ self.dbtable.clear(detach)
187
+ self.delta_list = {0: None}
188
+ dbupdates[self.dbtable.id].append(dict(type = 'action', update = 'updates', length = 0))
unisi/kdb.py CHANGED
@@ -295,15 +295,24 @@ class Dbtable:
295
295
  """
296
296
  return self.db.execute(query)
297
297
 
298
+ def clear(self, detach = False):
299
+ query = f'MATCH (a:{self.id})'
300
+ if detach:
301
+ query += ' DETACH DELETE a'
302
+ else:
303
+ query += ' DELETE a'
304
+ self.length = 0
305
+ return self.db.execute(query)
306
+
298
307
  def append_row(self, row):
299
- """row can be list or dict, returns ID"""
308
+ """row can be list or dict, returns new row"""
300
309
  if isinstance(row, list):
301
310
  props = {name: value for name, value in zip(self.node_columns, row) if value is not None}
302
311
 
303
312
  answer = self.db.execute(qb().create().node(self.id, 'a', props).return_literal('a.*'))
304
313
  if answer and answer.has_next():
305
314
  self.length += 1
306
- return answer.get_next()[-1]
315
+ return answer.get_next()
307
316
 
308
317
  def append_rows(self, rows):
309
318
  """row can be list or dict"""
unisi/llmrag.py CHANGED
@@ -14,7 +14,7 @@ def setup_llmrag():
14
14
  match config.llm:
15
15
  case ['host', address]:
16
16
  model = None
17
- type = 'openai' #provider type is openai for local llms
17
+ type = 'host' #provider type is openai for local llms
18
18
  case [type, model, address]: ...
19
19
  case [type, model]: address = None
20
20
  case _:
@@ -64,9 +64,9 @@ async def get_property(name, context = '', type = 'string', options = None, atte
64
64
  messages = [
65
65
  (
66
66
  "system",
67
- f"""You are an intelligent and extremely concise assistant."""
67
+ f"""You are an intelligent and extremely smart assistant."""
68
68
  ),
69
- ("human", f"""{context} . Reason and infer the "{name}" value, which {limits}.
69
+ ("human", f"""{context} . Reason and infer {name}, which {limits}.
70
70
  Do not include any additional text or commentary in your answer, just exact the property value.""")
71
71
  ]
72
72
  ai_msg = await Unishare.llm_model.ainvoke(messages)
unisi/server.py CHANGED
@@ -57,7 +57,7 @@ async def websocket_handler(request):
57
57
  await ws.send_str(res)
58
58
 
59
59
  user.send = send
60
- await send(user.screen if status else empty_app)
60
+ await send(True if status else empty_app)
61
61
  try:
62
62
  async for msg in ws:
63
63
  if msg.type == WSMsgType.TEXT:
@@ -114,7 +114,6 @@ def start(appname = None, user_type = User, http_handlers = []):
114
114
  http_handlers += [web.static(f'/{config.upload_dir}', upload_dir),
115
115
  web.get('/{tail:.*}', static_serve), web.post('/', post_handler)]
116
116
 
117
- #print(f'Start {appname} web server..')
118
117
  app = web.Application()
119
118
  app.add_routes(http_handlers)
120
119
  web.run_app(app, port = port)
unisi/tables.py CHANGED
@@ -13,7 +13,7 @@ def get_chunk(obj, start_index):
13
13
  delta, data = obj.rows.get_delta_chunk(start_index)
14
14
  return {'update': 'updates', 'index': delta, 'data': data}
15
15
 
16
- def accept_cell_value(table, dval):
16
+ def accept_cell_value(table, dval: dict):
17
17
  value = dval['value']
18
18
  if not isinstance(value, bool):
19
19
  try:
@@ -22,17 +22,19 @@ def accept_cell_value(table, dval):
22
22
  pass
23
23
  if hasattr(table,'id'):
24
24
  dval['value'] = value
25
- table.rows.update_cell(**dval)['exclude'] = True
25
+ if update := table.rows.update_cell(**dval):
26
+ update['exclude'] = True
26
27
  else:
27
28
  table.rows[dval['delta']][dval['cell']] = value
28
29
 
29
30
  def delete_table_row(table, value):
30
31
  if table.selected_list:
31
32
  if hasattr(table, 'link') and table.filter:
32
- link_table, rel_props, rel_name = table.rows.link
33
+ link_table, rel_props, rel_name = table.rows.dbtable.list.link
33
34
  if not isinstance(value, list):
34
35
  value = [value]
35
- table.rows.dbtable.delete_links(link_table.id, link_ids = value, index_name = rel_name)
36
+ link_ids = [table.rows[index][-1] for index in value]
37
+ table.rows.dbtable.delete_links(link_table.id, link_ids = link_ids, index_name = rel_name)
36
38
  table.__link_table_selection_changed__(link_table, link_table.value)
37
39
  return table
38
40
  elif isinstance(value, list):
@@ -44,24 +46,26 @@ def delete_table_row(table, value):
44
46
  del table.rows[value]
45
47
  table.value = None
46
48
 
47
- def append_table_row(table, search_str):
49
+ def append_table_row(table, search_str = ''):
48
50
  ''' append has to return new row, value is the search string value in the table'''
49
- new_row = [None] * len(table.rows.dbtable.table_fields)
51
+ new_row = [None] * len(table.headers)
50
52
  if getattr(table,'id', None):
51
- id = table.rows.dbtable.list.append(new_row)
52
- new_row.append(id)
53
+ new_row = table.rows.dbtable.list.append(new_row)
53
54
  if hasattr(table, 'link') and table.filter:
54
- link_table, _, rel_name = table.rows.link
55
+ link_table, _, rel_name = table.rows.dbtable.list.link
55
56
  for linked_id in link_table.selected_list:
56
- relation = table.rows.dbtable.add_link(id, link_table.id, linked_id, link_index_name = rel_name)
57
+ relation = table.rows.dbtable.add_link(new_row[-1], link_table.id,
58
+ linked_id, link_index_name = rel_name)
57
59
  new_row.extend(relation)
58
- break
59
- table.rows.append(new_row)
60
+ break
61
+ else:
62
+ table.rows.append(new_row)
60
63
  return new_row
61
64
 
62
65
  class Table(Unit):
63
66
  def __init__(self, *args, panda = None, **kwargs):
64
67
  if panda is not None:
68
+ self._mark_changed = None
65
69
  self.mutate(PandaTable(*args, panda=panda, **kwargs))
66
70
  else:
67
71
  super().__init__(*args, **kwargs)
@@ -169,6 +173,11 @@ class Table(Unit):
169
173
  self.value = [] if isinstance(self.value,tuple | list) else None
170
174
  return self
171
175
 
176
+ @property
177
+ def panda(self):
178
+ if gp := getattr(self,'__panda__',None):
179
+ return gp()
180
+
172
181
  def calc_headers(self):
173
182
  """only for persistent"""
174
183
  table_fields = self.rows.dbtable.table_fields
@@ -223,43 +232,56 @@ class Table(Unit):
223
232
  dbtable = self.rows.dbtable
224
233
  return dbtable.list is self.rows
225
234
 
226
- def delete_panda_row(table, row_num):
227
- df = table.__panda__
228
- if row_num < 0 or row_num >= len(df):
229
- raise ValueError("Row number is out of range")
230
- pt = table.__panda__
231
- pt.drop(index = row_num, inplace=True)
232
- pt.reset_index(inplace=True)
233
- delete_table_row(table, row_num)
235
+ def delete_panda_row(table, value):
236
+ pt = table.panda
237
+ def delete_in_panda(row_index):
238
+ if row_index < 0 or row_index >= len(pt):
239
+ raise ValueError("Row number is out of range")
240
+ pt.drop(index = row_index, inplace=True)
234
241
 
235
- def accept_panda_cell(table, value_pos):
236
- value, position = value_pos
237
- row_num, col_num = position
238
- table.__panda__.iloc[row_num,col_num] = value
242
+ if isinstance(value, list | tuple):
243
+ value.sort(reverse=True)
244
+ for row_index in value:
245
+ delete_in_panda(row_index)
246
+ else:
247
+ delete_in_panda(value)
248
+
249
+ #pt.reset_index(inplace=True)
250
+ delete_table_row(table, value)
251
+
252
+ def accept_panda_cell(table, value_pos: dict):
253
+ value = value_pos['value']
254
+ if not isinstance(value, bool):
255
+ try:
256
+ value = float(value)
257
+ except:
258
+ pass
259
+ row_index, col_index = value_pos['delta'], value_pos['cell']
260
+ table.panda.iat[row_index,col_index] = value
239
261
  accept_cell_value(table, value_pos)
240
262
 
241
- def append_panda_row(table, row_num):
242
- df = table.__panda__
243
- new_row = append_table_row(table, row_num)
263
+ def append_panda_row(table, row_index):
264
+ df = table.panda
265
+ new_row = append_table_row(table, row_index)
244
266
  df.loc[len(df), df.columns] = new_row
245
267
  return new_row
246
268
 
247
269
  class PandaTable(Table):
248
270
  """ panda = opened panda table"""
249
- def __init__(self, *args, panda = None, fix_headers = True, **kwargs):
250
- super().__init__(*args, **kwargs)
271
+ def __init__(self, name, *args, panda = None, fix_headers = True, **kwargs):
272
+ Unit.__init__(self, name, *args, **kwargs)
273
+ self.set_reactivity(None)
274
+ set_defaults(self, dict(type = 'table', value = None, editing = False, dense = True))
251
275
  if panda is None:
252
276
  raise Exception('PandaTable has to get panda = pandaTable as an argument.')
253
277
  self.headers = panda.columns.tolist()
254
278
  if fix_headers:
255
279
  self.headers = [pretty4(header) for header in self.headers]
256
280
  self.rows = panda.values.tolist()
257
- self.__panda__ = panda
281
+ self.__panda__ = lambda: panda
258
282
 
259
283
  if getattr(self,'edit', True):
260
284
  set_defaults(self,{'delete': delete_panda_row, 'append': append_panda_row,
261
285
  'modify': accept_panda_cell})
262
- @property
263
- def panda(self):
264
- return getattr(self,'__panda__',None)
286
+
265
287
 
unisi/units.py CHANGED
@@ -1,21 +1,93 @@
1
1
  from .common import *
2
2
  from .llmrag import get_property
3
3
 
4
- class Unit:
5
- def __init__(self, name, *args, **kwargs):
4
+ atomics = (int, float, complex, bool, str, bytes, type(None))
5
+
6
+ class ChangedProxy:
7
+ MODIFYING_METHODS = {
8
+ 'append', 'extend', 'insert', 'remove', 'pop', 'clear', 'sort', 'reverse',
9
+ 'update', 'popitem', 'setdefault', '__setitem__', '__delitem__'
10
+ }
11
+ def __init__(self, obj, unit):
12
+ self._obj = obj
13
+ self._unit = unit
14
+
15
+ def __getattribute__(self, name):
16
+ if name == '_obj' or name == '_unit' or name == '__getstate__':
17
+ return super().__getattribute__(name)
18
+ obj = super().__getattribute__('_obj')
19
+ value = getattr(obj, name)
20
+ if isinstance(value, ChangedProxy):
21
+ value = value._obj
22
+ if name in ChangedProxy.MODIFYING_METHODS:
23
+ super().__getattribute__('_unit')._mark_changed()
24
+ elif not callable(value) and not isinstance(value, atomics):
25
+ return ChangedProxy(value, self)
26
+ return value
27
+
28
+ def __setitem__(self, key, value):
29
+ self._obj[key] = value
30
+ self._unit._mark_changed ()
31
+
32
+ def __getitem__(self, key):
33
+ return self._obj[key]
34
+
35
+ def __delitem__(self, key):
36
+ del self._obj[key]
37
+ self._unit._mark_changed ()
38
+
39
+ def __iter__(self):
40
+ return iter(self._obj)
41
+
42
+ def __len__(self):
43
+ return len(self._obj)
44
+
45
+ def __getstate__(self):
46
+ return self._obj
47
+
48
+ class Unit:
49
+ def __init__(self, name, *args, **kwargs):
50
+ self._mark_changed = None
6
51
  self.name = name
7
52
  la = len(args)
8
53
  if la:
9
54
  self.value = args[0]
10
55
  if la > 1:
11
56
  self.changed = args[1]
12
- self.add(kwargs)
13
-
57
+ self.add(kwargs)
58
+
59
+ def set_reactivity(self, user, override = False):
60
+ if user:
61
+ if not hasattr(self, 'id') and (override or not self._mark_changed):
62
+ def changed_call(property = None, value = None):
63
+ user.register_changed_unit(self, property, value)
64
+ else:
65
+ changed_call = None
66
+ super().__setattr__('_mark_changed', changed_call)
67
+
14
68
  def add(self, kwargs):
15
- self.__dict__.update(kwargs)
69
+ for key, value in kwargs.items():
70
+ setattr(self, key, value)
16
71
 
17
72
  def mutate(self, obj):
18
73
  self.__dict__ = obj.__dict__
74
+ if self._mark_changed:
75
+ self._mark_changed()
76
+
77
+ def __setattr__(self, name, value):
78
+ #it is correct condition order
79
+ if name != "_mark_changed" and self._mark_changed:
80
+ if name != "__dict__" and not isinstance(value, atomics) and not callable(value):
81
+ value = ChangedProxy(value, self)
82
+ self._mark_changed(name, value)
83
+ super().__setattr__(name, value)
84
+
85
+ def mutate(self, obj):
86
+ self.__dict__.clear()
87
+ for key, value in obj.__dict__.items():
88
+ setattr(self, key, value)
89
+ if self._mark_changed:
90
+ self._mark_changed()
19
91
 
20
92
  def accept(self, value):
21
93
  if hasattr(self, 'changed'):
@@ -92,6 +164,7 @@ class Range(Unit):
92
164
 
93
165
  class Button(Unit):
94
166
  def __init__(self, name, handler = None, **kwargs):
167
+ self._mark_changed = None
95
168
  self.name = name
96
169
  self.value = None
97
170
  self.add(kwargs)
unisi/users.py CHANGED
@@ -6,6 +6,7 @@ from .multimon import notify_monitor, logging_lock, run_external_process
6
6
  from .kdb import Database
7
7
  from .dbunits import dbshare, dbupdates
8
8
  import sys, asyncio, logging, importlib
9
+ from collections.abc import Iterable
9
10
 
10
11
  class User:
11
12
  last_user = None
@@ -16,6 +17,7 @@ class User:
16
17
  self.session = session
17
18
  self.active_dialog = None
18
19
  self.last_message = None
20
+ self.changed_units = set()
19
21
 
20
22
  if share:
21
23
  self.screens = share.screens
@@ -80,7 +82,8 @@ class User:
80
82
  #set system vars
81
83
  for var, val in screen.defaults.items():
82
84
  setattr(screen, var, getattr(module, var, val))
83
-
85
+ if not isinstance(screen.blocks, list):
86
+ screen.blocks = [screen.blocks]
84
87
  if screen.toolbar:
85
88
  screen.toolbar += User.toolbar
86
89
  else:
@@ -171,6 +174,14 @@ class User:
171
174
  if notify_monitor:
172
175
  await notify_monitor('-', self.session, None)
173
176
  return result
177
+
178
+ def register_changed_unit(self, unit, property = None, value = None):
179
+ """add unit to changed_units if it is changed outside of message"""
180
+ if property == 'value':
181
+ property = 'changed'
182
+ m = self.last_message
183
+ if unit.name != m.element or property != m.event or value != m.value:
184
+ self.changed_units.add(unit)
174
185
 
175
186
  @property
176
187
  def blocks(self):
@@ -207,12 +218,25 @@ class User:
207
218
  raw = self.screen
208
219
  raw.reload = raw == Redesign
209
220
  else:
210
- if isinstance(raw, Message):
211
- raw.fill_paths4(self)
212
- elif isinstance(raw,Unit):
213
- raw = Message(raw, user = self)
214
- elif isinstance(raw, (list, tuple)):
215
- raw = Message(*raw, user = self)
221
+ match raw:
222
+ case None:
223
+ if self.changed_units:
224
+ raw = Message(*self.changed_units, user = self)
225
+ case Message():
226
+ if self.changed_units:
227
+ message_units = [x['data'] for x in raw.updates]
228
+ self.changed_units.update(message_units)
229
+ raw.set_updates(self.changed_units)
230
+ raw.fill_paths4(self)
231
+ case Unit():
232
+ self.changed_units.add(raw)
233
+ raw = Message(*self.changed_units, user = self)
234
+ case list() | tuple(): #raw is *unit
235
+ self.changed_units.update(raw)
236
+ raw = Message(*self.changed_units, user = self)
237
+ case _: ...
238
+
239
+ self.changed_units.clear()
216
240
  return raw
217
241
 
218
242
  async def process(self, message):
@@ -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)}body[data-v-763052dd]{display:flex;justify-content:center}.custom-caption[data-v-763052dd]{padding:5px!important}.web-camera-container[data-v-763052dd]{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-763052dd]{margin-bottom:2rem}.web-camera-container .camera-box .camera-shutter[data-v-763052dd]{background-color:#fff;height:337.5px;opacity:0;position:absolute;width:450px}.web-camera-container .camera-box .camera-shutter.flash[data-v-763052dd]{opacity:1}.web-camera-container .camera-shoot[data-v-763052dd]{margin:1rem 0}.web-camera-container .camera-shoot button[data-v-763052dd]{align-items:center;border-radius:100%;display:flex;height:60px;justify-content:center;width:60px}.web-camera-container .camera-shoot button img[data-v-763052dd]{height:35px;object-fit:cover}.web-camera-container .camera-loading[data-v-763052dd]{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-763052dd]{height:100%;margin:0;position:absolute;width:100%;z-index:999999}.web-camera-container .camera-loading .loader-circle[data-v-763052dd]{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-763052dd]{animation:preload-763052dd 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-763052dd]:nth-child(2){animation-delay:.2s}.web-camera-container .camera-loading .loader-circle li[data-v-763052dd]:nth-child(3){animation-delay:.4s}@keyframes preload-763052dd{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.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)}body[data-v-62845b3d]{display:flex;justify-content:center}.custom-caption[data-v-62845b3d]{padding:5px!important}.web-camera-container[data-v-62845b3d]{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-62845b3d]{margin-bottom:2rem}.web-camera-container .camera-box .camera-shutter[data-v-62845b3d]{background-color:#fff;height:337.5px;opacity:0;position:absolute;width:450px}.web-camera-container .camera-box .camera-shutter.flash[data-v-62845b3d]{opacity:1}.web-camera-container .camera-shoot[data-v-62845b3d]{margin:1rem 0}.web-camera-container .camera-shoot button[data-v-62845b3d]{align-items:center;border-radius:100%;display:flex;height:60px;justify-content:center;width:60px}.web-camera-container .camera-shoot button img[data-v-62845b3d]{height:35px;object-fit:cover}.web-camera-container .camera-loading[data-v-62845b3d]{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-62845b3d]{height:100%;margin:0;position:absolute;width:100%;z-index:999999}.web-camera-container .camera-loading .loader-circle[data-v-62845b3d]{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-62845b3d]{animation:preload-62845b3d 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-62845b3d]:nth-child(2){animation-delay:.2s}.web-camera-container .camera-loading .loader-circle li[data-v-62845b3d]:nth-child(3){animation-delay:.4s}@keyframes preload-62845b3d{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.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.eab68489.js></script><script defer src=/js/app.3ca810a2.js></script><link href=/css/vendor.9ed7638d.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.eab68489.js></script><script defer src=/js/app.760c4dd6.js></script><link href=/css/vendor.9ed7638d.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([[596],{3596:(e,t,a)=>{a.r(t),a.d(t,{default:()=>ka});var l=a(3673),s=a(2323);const i=(0,l._)("div",{class:"q-pa-md"},null,-1),n=(0,l._)("div",{class:"q-pa-md"},null,-1);function o(e,t,a,o,d,r){const c=(0,l.up)("q-item-label"),h=(0,l.up)("element"),u=(0,l.up)("q-tab"),p=(0,l.up)("q-tabs"),g=(0,l.up)("q-space"),m=(0,l.up)("q-tooltip"),f=(0,l.up)("q-btn"),y=(0,l.up)("q-toolbar"),w=(0,l.up)("q-header"),b=(0,l.up)("zone"),v=(0,l.up)("q-page"),k=(0,l.up)("q-page-container"),x=(0,l.up)("q-layout");return(0,l.wg)(),(0,l.j4)(x,{view:"lHh Lpr lFf"},{default:(0,l.w5)((()=>[(0,l.Wm)(w,{elevated:"",class:(0,s.C_)({"bg-deep-purple-9":e.Dark.isActive})},{default:(0,l.w5)((()=>[(0,l.Wm)(y,null,{default:(0,l.w5)((()=>[(0,l.Wm)(c,{class:"text-h5"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.screen.header?e.screen.header:""),1)])),_:1}),i,((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.left_toolbar,(t=>((0,l.wg)(),(0,l.j4)(h,{class:(0,s.C_)(["q-ma-xs",{"bg-blue-grey-7":e.Dark.isActive,"bg-blue-5":!e.Dark.isActive}]),data:t,pdata:e.tooldata},null,8,["class","data","pdata"])))),256)),n,(0,l.Wm)(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.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.menu,(t=>((0,l.wg)(),(0,l.iD)("div",null,[t.icon?((0,l.wg)(),(0,l.j4)(u,{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.kq)("",!0),t.icon?(0,l.kq)("",!0):((0,l.wg)(),(0,l.j4)(u,{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.Wm)(g),((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.right_toolbar,(t=>((0,l.wg)(),(0,l.j4)(h,{class:(0,s.C_)(["q-ma-xs",{"bg-blue-grey-7":e.Dark.isActive,"bg-blue-5":!e.Dark.isActive}]),data:t,pdata:e.tooldata},null,8,["class","data","pdata"])))),256)),(0,l.Wm)(f,{class:(0,s.C_)(["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.w5)((()=>[(0,l.Wm)(m,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Dark/Light mode")])),_:1})])),_:1},8,["class","icon","onClick"])])),_:1})])),_:1},8,["class"]),(0,l.Wm)(k,{class:"content"},{default:(0,l.w5)((()=>[(0,l.Wm)(v,{class:"flex justify-center centers"},{default:(0,l.w5)((()=>[(0,l.Wm)(b,{data:e.screen.blocks,ref:"page"},null,8,["data"])])),_:1})])),_:1})])),_:1})}function d(e,t,a,i,n,o){const d=(0,l.up)("q-icon"),r=(0,l.up)("q-item-section"),c=(0,l.up)("q-item-label"),h=(0,l.up)("q-item");return(0,l.wg)(),(0,l.j4)(h,{clickable:"",tag:"a",target:"_blank",onClick:e.send},{default:(0,l.w5)((()=>[(0,l.Wm)(r,{avatar:""},{default:(0,l.w5)((()=>[(0,l.Wm)(d,{name:e.icon},null,8,["name"])])),_:1}),(0,l.Wm)(r,null,{default:(0,l.w5)((()=>[(0,l.Wm)(c,null,{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.name),1)])),_:1})])),_:1})])),_:1},8,["onClick"])}a(71);var r=a(698),c=a(8603);let h=null,u={};var p;const g=!1;let m=g;const f=["graph","chart","block","text"],y=["tree","table","list","text","graph","chart"];const w=window.location.host,b=`${window.location.protocol}//${w}`;let v={},k={},x={};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://${w}/ws`;l&&(s+="?"+l),p=new WebSocket(s),p.onopen=()=>e.statusConnect=!0,p.onmessage=t=>{m&&console.log("incoming message",t.data),h.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)},h=e}function _(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 A=!0;function q(e){A=e,e||(x={})}function S(e){if(A){let t=x[e.fullname];if(t)return t.styleSize;A=!1}return null}function D(e,t,a,l="complete"){let s=[e.pdata.name,e.data.name,l,t];_(s),u[s.toString()]=a}function z(e,t,a,l,s){let i=[e,t,s,a];_(i),u[i.toString()]=l}function j(){v={},x=k,A=!0,k={}}function $(e,t){Object.assign(e.data,t),e.updated=t.value,e.value=t.value}function E(e){for(let t of e){let e=t.path;if(e.length>1){e.reverse();let a=e.join("@"),l=k[a];$(l,t.data)}else{let a=v[e[0]];Object.assign(a.data,t.data)}}}function Z(e){let t=`${e.element}@${e.block}`,a=k[t];a.update?a.update(e):console.error()}function M(e){let t=[e.message.block,e.message.element,e.type,e.message.value].toString();if("string"==typeof e.value)h.error(e.value);else if(u[t]){let a=u[t];delete u[t],a(e.value,e.message)}else h.error(t+" doesnt exist in queryMap!")}function O(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 W(e=!1){V(document.documentElement.scrollWidth>window.innerWidth)}let N=(0,c.debounce)(W,50);function V(e){if(h.designCycle>=1)return;m&&console.log(`------------------recalc design ${h.designCycle}`),h.designCycle++;const t=H(e),a=K(e);for(let[l,s]of Object.entries(t)){let e=k[l],t=a[l];const[i,n]=t||[0,1];let o,d=e.geom(),r=d.el,c=e.pdata?e.pdata.name:e.name,h=v[c];for(let a of h.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=k[t];break}}else if(a.name==e.data.name){o=e;break}let u=i;u/=n;let p=e.only_fixed_elems?"":`width:${Math.ceil(r.clientWidth+u)}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 H(e){const t=h.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?O(o):[[o]],d={};for(let[a,l]of Object.entries(v)){let e=l.$el.getBoundingClientRect(),t=e.bottom;d[a]=t-e.top}for(let a of n){let e=0,t=!0;for(let l of a)e+=d[l.name],v[l.name].only_fixed_elems||(t=!1);if(t){let e=v[a.slice(-1)[0].name];k[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,r.hu)(Array.isArray(t));const l=[];for(let[e,a]of Object.entries(k))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,d]of n)d in l?(l[o]=l[d],k[o].he=k[d].he):(l[d]=l[o],k[d].he=k[o].he);return l}function K(e){let t=null;const a=t?[t]:h.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=v[l.name].$el.getBoundingClientRect();e+=t.right-t.left+5}let t=l-e,a=[[]];for(let l of o){let e=[];for(let t of v[l.name].hlevelements)for(let l of a)e.push([...l,...t]);a=e}for(let l of a)n.push([t,l])}n.sort(((e,t)=>t[1].length-e[1].length));for(let[o,d]of n){let t=new Map;for(let e=0;e<d.length;e++){let a=d[e],l=a.parent_name,s=l||a.name,n=a.geom(),r=(a.data.width?a.data.width:n.scrollWidth)-(n.right-n.left);if(r>1&&!f.includes(a.type)&&o>0&&!i[a.fullname]){let e=o>r?r:o;o-=e,i[a.fullname]=[e,1]}if(s=a.parent_name,s){let e=v[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 d)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 d)i[e.fullname]||(i[e.fullname]=[0,1])}return i}const F=(0,l.aZ)({name:"menubar",methods:{send(){_(["root",null,"changed",this.name])}},props:{name:{type:String,required:!0},icon:{type:String,default:""}}});var Q=a(4260),I=a(3414),U=a(2035),R=a(4554),T=a(2350),P=a(7518),L=a.n(P);const B=(0,Q.Z)(F,[["render",d]]),Y=B;L()(F,"components",{QItem:I.Z,QItemSection:U.Z,QIcon:R.Z,QItemLabel:T.Z});const G={key:0,class:"row q-col-gutter-xs q-py-xs"},J={class:"q-col-gutter-xs"},X={key:0,class:"column q-col-gutter-xs"};function ee(e,t,a,s,i,n){const o=(0,l.up)("zone",!0),d=(0,l.up)("block");return e.data instanceof Array?((0,l.wg)(),(0,l.iD)("div",G,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.data,(e=>((0,l.wg)(),(0,l.iD)("div",J,[e instanceof Array?((0,l.wg)(),(0,l.iD)("div",X,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e,(e=>((0,l.wg)(),(0,l.j4)(o,{class:"q-col-gutter-xs q-py-xs",data:e},null,8,["data"])))),256))])):((0,l.wg)(),(0,l.j4)(d,{key:1,data:e},null,8,["data"]))])))),256))])):((0,l.wg)(),(0,l.j4)(d,{key:1,data:e.data},null,8,["data"]))}const te={class:"row no-wrap"},ae=["data","pdata"],le={key:0,class:"row"},se=["data","pdata"],ie={key:0,class:"row no-wrap"};function ne(e,t,a,i,n,o){const d=(0,l.up)("element"),r=(0,l.up)("q-icon"),c=(0,l.up)("q-scroll-area"),h=(0,l.up)("q-card");return(0,l.wg)(),(0,l.j4)(h,{class:"my-card q-ma-xs",style:(0,s.j5)(e.only_fixed_elems?e.styleSize:null),key:e.name},{default:(0,l.w5)((()=>[(0,l._)("div",te,[e.data.logo?((0,l.wg)(),(0,l.j4)(d,{key:0,class:"q-ma-sm",data:e.data.logo,pdata:e.data},null,8,["data","pdata"])):e.data.icon?((0,l.wg)(),(0,l.j4)(r,{key:1,class:"q-mt-sm q-ml-sm",style:{"padding-top":"6px"},size:"sm",name:e.data.icon},null,8,["name"])):(0,l.kq)("",!0),"_"!=e.name[0]?((0,l.wg)(),(0,l.iD)("p",{key:2,class:(0,s.C_)(["q-ma-sm",{"text-info":e.Dark.isActive,"text-cyan-10":!e.Dark.isActive}]),style:{"padding-top":"6px","font-size":"18px"}},(0,s.zw)(e.name),3)):(0,l.kq)("",!0),((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.tops,(t=>((0,l.wg)(),(0,l.j4)(d,{class:"q-ma-sm",data:t,pdata:e.data},null,8,["data","pdata"])))),256))]),e.data.scroll?((0,l.wg)(),(0,l.j4)(c,{key:0,style:(0,s.j5)(e.styleSize),"thumb-style":e.thumbStyle,"bar-style":e.barStyle},{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.data.value.slice(1),(t=>((0,l.wg)(),(0,l.iD)("div",{class:"column",data:t,pdata:e.data},[t instanceof Array?((0,l.wg)(),(0,l.iD)("div",le,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(t,(t=>((0,l.wg)(),(0,l.j4)(d,{class:"q-ma-xs",data:t,pdata:e.data},null,8,["data","pdata"])))),256))])):((0,l.wg)(),(0,l.j4)(d,{key:1,class:"q-ma-xs",data:t,pdata:e.data},null,8,["data","pdata"]))],8,ae)))),256))])),_:1},8,["style","thumb-style","bar-style"])):((0,l.wg)(!0),(0,l.iD)(l.HY,{key:1},(0,l.Ko)(e.data.value.slice(1),(t=>((0,l.wg)(),(0,l.iD)("div",{class:"column",data:t,pdata:e.data},[t instanceof Array?((0,l.wg)(),(0,l.iD)("div",ie,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(t,(t=>((0,l.wg)(),(0,l.j4)(d,{class:"q-ma-xs",data:t,pdata:e.data},null,8,["data","pdata"])))),256))])):((0,l.wg)(),(0,l.j4)(d,{key:1,class:"q-ma-xs",data:t,pdata:e.data},null,8,["data","pdata"]))],8,se)))),256))])),_:1},8,["style"])}var oe=a(8880);const de=e=>((0,l.dD)("data-v-62845b3d"),e=e(),(0,l.Cn)(),e),re={key:4},ce={key:5,class:"{'bg-blue-grey-9': Dark.isActive}"},he={key:9},ue={key:12},pe={key:13},ge=["width","height"],me=["src"],fe={key:19,class:"web-camera-container"},ye={class:"camera-button"},we={key:0},be={key:1},ve={class:"camera-loading"},ke=de((()=>(0,l._)("ul",{class:"loader-circle"},[(0,l._)("li"),(0,l._)("li"),(0,l._)("li")],-1))),xe=[ke],Ce=["height"],_e=["height"],Ae={key:1,class:"camera-shoot"},qe=de((()=>(0,l._)("img",{src:"https://img.icons8.com/material-outlined/50/000000/camera--v2.png"},null,-1))),Se=[qe],De={key:2,class:"camera-download"},ze={key:20};function je(e,t,a,i,n,o){const d=(0,l.up)("q-icon"),r=(0,l.up)("q-img"),c=(0,l.up)("q-select"),h=(0,l.up)("q-checkbox"),u=(0,l.up)("q-toggle"),p=(0,l.up)("q-badge"),g=(0,l.up)("q-slider"),m=(0,l.up)("q-btn"),f=(0,l.up)("q-btn-toggle"),y=(0,l.up)("utable"),w=(0,l.up)("linechart"),b=(0,l.up)("q-input"),v=(0,l.up)("q-tree"),k=(0,l.up)("q-scroll-area"),x=(0,l.up)("q-separator"),C=(0,l.up)("q-uploader"),_=(0,l.up)("sgraph"),A=(0,l.up)("q-tooltip"),q=(0,l.up)("q-spinner-ios");return"image"==e.type?((0,l.wg)(),(0,l.j4)(r,{key:0,src:e.data.url,"spinner-color":"blue",onClick:(0,oe.iM)(e.switchValue,["stop"]),fit:"cover",style:(0,s.j5)(e.elemSize)},{default:(0,l.w5)((()=>[e.data.label?((0,l.wg)(),(0,l.iD)("div",{key:0,class:"absolute-bottom-right text-subtitle2 custom-caption",onClick:t[0]||(t[0]=(0,oe.iM)(((...t)=>e.lens&&e.lens(...t)),["stop"]))},(0,s.zw)(e.data.label),1)):(0,l.kq)("",!0),e.value?((0,l.wg)(),(0,l.j4)(d,{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.kq)("",!0)])),_:1},8,["src","onClick","style"])):"select"==e.type?((0,l.wg)(),(0,l.j4)(c,{key:1,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.Nv)({_:2},[e.showname?{name:"prepend",fn:(0,l.w5)((()=>[(0,l._)("p",{class:(0,s.C_)(["text-subtitle1 q-ma-sm",{white:e.Dark.isActive,black:!e.Dark.isActive}])},(0,s.zw)(e.name),3)])),key:"0"}:void 0]),1032,["readonly","modelValue","options"])):"check"==e.type?((0,l.wg)(),(0,l.j4)(h,{key:2,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.wg)(),(0,l.j4)(u,{key:3,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.wg)(),(0,l.iD)("div",re,[(0,l.Wm)(p,{outline:"",dense:"",color:e.Dark.isActive?"blue-3":"blue-9"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.name)+": "+(0,s.zw)(e.value)+" ("+(0,s.zw)(e.data.options[0])+" to "+(0,s.zw)(e.data.options[1])+", Δ "+(0,s.zw)(e.data.options[2])+")",1)])),_:1},8,["color"]),(0,l.Wm)(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.wg)(),(0,l.iD)("div",ce,[e.showname?((0,l.wg)(),(0,l.j4)(m,{key:0,ripple:!1,color:"indigo-10",disable:"",label:e.name,"no-caps":""},null,8,["label"])):(0,l.kq)("",!0),(0,l.Wm)(f,{ref:"inputRef",modelValue:e.value,"onUpdate:modelValue":t[5]||(t[5]=t=>e.value=t),readonly:0==e.data.edit,class:(0,s.C_)({"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.wg)(),(0,l.j4)(y,{key:6,data:e.data,pdata:e.pdata,styleSize:e.styleSize},null,8,["data","pdata","styleSize"])):"chart"==e.type?((0,l.wg)(),(0,l.j4)(w,{key:7,data:e.data,pdata:e.pdata,styleSize:e.styleSize},null,8,["data","pdata","styleSize"])):"string"==e.type&&e.data.hasOwnProperty("complete")?((0,l.wg)(),(0,l.j4)(c,{key:8,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,oe.D2)(e.pressedEnter,["enter"])},null,8,["readonly","modelValue","options","onFilter","label","onKeydown"])):"string"==e.type&&0==e.data.edit?((0,l.wg)(),(0,l.iD)("div",he,[(0,l._)("p",{class:(0,s.C_)(["q-ma-sm",{white:e.Dark.isActive,black:!e.Dark.isActive}])},(0,s.zw)(e.value),3)])):"string"==e.type?((0,l.wg)(),(0,l.j4)(b,{key:10,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,oe.D2)(e.pressedEnter,["enter"]),readonly:0==e.data.edit},null,8,["modelValue","label","autogrow","onKeydown","readonly"])):"number"==e.type?((0,l.wg)(),(0,l.j4)(b,{key:11,modelValue:e.value,"onUpdate:modelValue":t[8]||(t[8]=t=>e.value=t),modelModifiers:{number:!0},label:e.name2show,ref:"inputRef",dense:"",onKeydown:(0,oe.D2)(e.pressedEnter,["enter"]),type:"number",readonly:0==e.data.edit},null,8,["modelValue","label","onKeydown","readonly"])):"tree"==e.type||"list"==e.type?((0,l.wg)(),(0,l.iD)("div",ue,[e.showname?((0,l.wg)(),(0,l.iD)("p",{key:0,class:(0,s.C_)(["text-subtitle1 q-ma-sm text-grey-7",{"text-white":e.Dark.isActive,"text-indigo-10":!e.Dark.isActive}])},(0,s.zw)(e.name),3)):(0,l.kq)("",!0),(0,l.Wm)(k,{style:(0,s.j5)(e.styleSize),"thumb-style":e.thumbStyle,"bar-style":e.barStyle,ref:"scroller"},{default:(0,l.w5)((()=>[(0,l.Wm)(v,{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.wg)(),(0,l.iD)("div",pe,[e.showname?((0,l.wg)(),(0,l.iD)("p",{key:0,class:(0,s.C_)(["text-subtitle1 q-ma-sm",{"text-white":e.Dark.isActive,"text-indigo-10":!e.Dark.isActive}])},(0,s.zw)(e.name),3)):(0,l.kq)("",!0),(0,l.wy)((0,l._)("textarea",{class:(0,s.C_)(["textarea",{"bg-grey-10":e.Dark.isActive,"text-white":e.Dark.isActive}]),"onUpdate:modelValue":t[11]||(t[11]=t=>e.value=t),filled:"",type:"textarea",style:(0,s.j5)(e.elemSize),onKeydown:t[12]||(t[12]=(0,oe.D2)(((...t)=>e.pressedEnter&&e.pressedEnter(...t)),["enter"]))},null,38),[[oe.nr,e.value]])])):"line"==e.type?((0,l.wg)(),(0,l.j4)(x,{key:14,color:"green"})):"video"==e.type?((0,l.wg)(),(0,l.iD)("video",{key:e.fullname,controls:"",width:e.data.width,height:e.data.height},[(0,l._)("source",{src:e.data.url,type:"video/mp4"},null,8,me)],8,ge)):"uploader"==e.type?((0,l.wg)(),(0,l.j4)(C,{key:16,label:e.name,"auto-upload":"",thumbnails:"",url:e.host_path,onUploaded:e.updateDom,onAdded:e.onAdded,style:(0,s.j5)(e.elemSize),ref:"uploaderRef",flat:"",class:(0,s.C_)({"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.wg)(),(0,l.j4)(C,{key:17,label:e.name,"auto-upload":"",thumbnails:"",url:e.host_path,onUploaded:e.updateDom,onAdded:e.onAdded,ref:"uploaderRef",flat:"",class:(0,s.C_)({"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.wg)(),(0,l.j4)(_,{key:18,data:e.data,pdata:e.pdata,styleSize:e.elemSize},null,8,["data","pdata","styleSize"])):"camera"==e.type?((0,l.wg)(),(0,l.iD)("div",fe,[(0,l._)("div",ye,[(0,l._)("button",{class:(0,s.C_)(["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.wg)(),(0,l.iD)("span",be,"Close Camera")):((0,l.wg)(),(0,l.iD)("span",we,"Open Camera"))],2)]),(0,l.wy)((0,l._)("div",ve,xe,512),[[oe.F8,e.isCameraOpen&&e.isLoading]]),e.isCameraOpen?(0,l.wy)(((0,l.wg)(),(0,l.iD)("div",{key:0,class:(0,s.C_)(["camera-box",{flash:e.isShotPhoto}])},[(0,l._)("div",{class:(0,s.C_)(["camera-shutter",{flash:e.isShotPhoto}])},null,2),(0,l.wy)((0,l._)("video",{ref:"camera",width:450,height:337.5,autoplay:""},null,8,Ce),[[oe.F8,!e.isPhotoTaken]]),(0,l.wy)((0,l._)("canvas",{id:"photoTaken",ref:"canvas",width:450,height:337.5},null,8,_e),[[oe.F8,e.isPhotoTaken]])],2)),[[oe.F8,!e.isLoading]]):(0,l.kq)("",!0),e.isCameraOpen&&!e.isLoading?((0,l.wg)(),(0,l.iD)("div",Ae,[(0,l._)("button",{class:"button",type:"button",onClick:t[14]||(t[14]=(...t)=>e.takePhoto&&e.takePhoto(...t))},Se)])):(0,l.kq)("",!0),e.isPhotoTaken&&e.isCameraOpen?((0,l.wg)(),(0,l.iD)("div",De,[(0,l.Wm)(m,{onClick:e.downloadImage,label:"Send"},null,8,["onClick"])])):(0,l.kq)("",!0)])):""!=e.showname?((0,l.wg)(),(0,l.iD)("div",ze,[(0,l.Wm)(m,{ref:"inputRef","no-caps":"",disable:0==e.data.edit,class:(0,s.C_)({"bg-blue-grey-8":e.Dark.isActive}),label:e.name,icon:e.data.icon,onClick:e.sendValue},{default:(0,l.w5)((()=>[e.data.tooltip?((0,l.wg)(),(0,l.j4)(A,{key:0,class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.data.tooltip),1)])),_:1})):(0,l.kq)("",!0)])),_:1},8,["disable","class","label","icon","onClick"])])):e.data.spinner?((0,l.wg)(),(0,l.j4)(m,{key:22,ref:"inputRef","no-caps":"",dense:"",disable:0==e.data.edit,round:"",class:(0,s.C_)({"bg-blue-grey-8":e.Dark.isActive}),onClick:e.sendValue},{default:(0,l.w5)((()=>[(0,l.Wm)(q,{color:e.Dark.isActive?"white":"black"},null,8,["color"]),e.data.tooltip?((0,l.wg)(),(0,l.j4)(A,{key:0,class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.data.tooltip),1)])),_:1})):(0,l.kq)("",!0)])),_:1},8,["disable","class","onClick"])):((0,l.wg)(),(0,l.j4)(m,{key:21,ref:"inputRef","no-caps":"",disable:0==e.data.edit,dense:"",round:"",class:(0,s.C_)({"bg-blue-grey-8":e.Dark.isActive}),icon:e.data.icon,onClick:e.sendValue},{default:(0,l.w5)((()=>[e.data.tooltip?((0,l.wg)(),(0,l.j4)(A,{key:0,class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.data.tooltip),1)])),_:1})):(0,l.kq)("",!0)])),_:1},8,["disable","class","icon","onClick"]))}const $e={class:"text-h6"},Ee={key:0},Ze={class:"row"},Me=["onClick"],Oe=["onClick"];function We(e,t,a,i,n,o){const d=(0,l.up)("q-tooltip"),r=(0,l.up)("q-btn"),c=(0,l.up)("q-icon"),h=(0,l.up)("q-input"),u=(0,l.up)("q-th"),p=(0,l.up)("q-tr"),g=(0,l.up)("q-checkbox"),m=(0,l.up)("q-select"),f=(0,l.up)("q-td"),y=(0,l.up)("q-table");return(0,l.wg)(),(0,l.j4)(y,{"virtual-scroll":"",dense:e.data.dense,style:(0,s.j5)(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.w5)((()=>["link"in e.data?((0,l.wg)(),(0,l.j4)(r,{key:0,class:(0,s.C_)(["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.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.data.filter?"Turn off filter":"Turn on filter"),1)])),_:1})])),_:1},8,["class","icon","onClick"])):(0,l.kq)("",!0),(0,l._)("div",$e,(0,s.zw)(e.name),1)])),"top-right":(0,l.w5)((()=>[!1!==e.data.tools?((0,l.wg)(),(0,l.iD)("div",Ee,[(0,l._)("div",Ze,[(0,l.Wm)(h,{modelValue:e.search,"onUpdate:modelValue":t[1]||(t[1]=t=>e.search=t),label:"Search",dense:"",ref:"searchField"},(0,l.Nv)({append:(0,l.w5)((()=>[""!=e.search?((0,l.wg)(),(0,l.j4)(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.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Reset search ")])),_:1})])),_:1})):(0,l.kq)("",!0)])),_:2},[""==e.search?{name:"prepend",fn:(0,l.w5)((()=>[(0,l.Wm)(c,{name:"search",size:"xs"})])),key:"0"}:void 0]),1032,["modelValue"]),(0,l._)("div",null,[(0,l.Wm)(r,{class:(0,s.C_)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"select_all","no-caps":"",onClick:e.showSelected},{default:(0,l.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Show selected ")])),_:1})])),_:1},8,["class","onClick"]),(0,l.Wm)(r,{class:(0,s.C_)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"deselect","no-caps":"",onClick:e.deselectAll},{default:(0,l.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Deselect all")])),_:1})])),_:1},8,["class","onClick"]),!1!==e.data.multimode?((0,l.wg)(),(0,l.j4)(r,{key:0,class:(0,s.C_)(["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.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Multi-single select mode ")])),_:1})])),_:1},8,["class","icon","onClick"])):(0,l.kq)("",!0),e.editable?((0,l.wg)(),(0,l.j4)(r,{key:1,class:(0,s.C_)(["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.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Edit mode")])),_:1})])),_:1},8,["class","icon","onClick"])):(0,l.kq)("",!0),e.editable&&"append"in e.data?((0,l.wg)(),(0,l.j4)(r,{key:2,class:(0,s.C_)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"add","no-caps":"",onClick:e.append},{default:(0,l.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.data.filter?"Add a new entity+link":"Add a new row"),1)])),_:1})])),_:1},8,["class","onClick"])):(0,l.kq)("",!0),"delete"in e.data?((0,l.wg)(),(0,l.j4)(r,{key:3,class:(0,s.C_)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"delete_forever","no-caps":"",onClick:e.delSelected},{default:(0,l.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Delete selected ")])),_:1})])),_:1},8,["class","onClick"])):(0,l.kq)("",!0),"view"in e.data?((0,l.wg)(),(0,l.j4)(r,{key:4,class:(0,s.C_)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"insights","no-caps":"",onClick:e.chart},{default:(0,l.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Draw the chart")])),_:1})])),_:1},8,["class","onClick"])):(0,l.kq)("",!0)])])])):(0,l.kq)("",!0)])),header:(0,l.w5)((t=>[(0,l.Wm)(p,{props:t},{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(t.cols,(a=>((0,l.wg)(),(0,l.j4)(u,{class:(0,s.C_)(["text-italic",{"text-grey-9":!e.Dark.isActive,"text-teal-3":e.Dark.isActive}]),key:a.name,props:t},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(a.label),1)])),_:2},1032,["class","props"])))),128))])),_:2},1032,["props"])])),body:(0,l.w5)((t=>[(0,l.Wm)(p,{props:t,onClick:e=>t.selected=!t.selected},{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.columns,((a,i)=>((0,l.wg)(),(0,l.j4)(f,{key:a.name,props:t},{default:(0,l.w5)((()=>["boolean"==typeof t.row[a.name]?((0,l.wg)(),(0,l.j4)(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.wg)(),(0,l.j4)(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.wg)(),(0,l.j4)(h,{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.wg)(),(0,l.iD)("div",{key:3,onClick:a=>e.select(t.row,i)},"-- ",8,Me)):((0,l.wg)(),(0,l.iD)("div",{key:4,onClick:a=>e.select(t.row,i)},(0,s.zw)(t.row[a.name]),9,Oe))])),_:2},1032,["props"])))),128))])),_:2},1032,["props","onClick"])])),_:1},8,["dense","style","filter","title","rows","columns","selection","selected"])}var Ne=a(1959),Ve=a(9058);function He(e,t){return e.length===t.length&&e.every(((e,a)=>t[a]&&e.iiid==t[a].iiid))}let Ke="✘";function Fe(e,t){let a=[];const l=e.headers,s=l.length,i=t.length;for(var n=0;n<i;n++){const i={},d=t[n];for(var o=0;o<s;o++)null!=d[o]&&void 0!=d[o]&&(i[l[o]]=d[o]);let r=d.length;i.iiid=s<r||e.id?d[r-1]:n,a.push(i)}return a}function Qe(e,t){let a=[],{limit:l,length:s,data:i}=t.rows;s&&a.splice(0,0,...Fe(t,i)),a.length=s,a=(0,Ne.qj)(a);let n=[];function o(l,s){switch(l.update){case"update":a[l.index]=Fe(t,[l.data])[0];break;case"updates":if(l.data){let e=l.data.length;a.splice(l.index,e,...Fe(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&&z(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]=Fe(t,[l.data])[0],this.length++;break;case"adds":a.splice(l.index,0,...Fe(t,l.data)),this.length+=l.data.length}}function d(a){-1==n.indexOf(a)&&(n.length>5&&n.splice(0,1),n.push(a),1==n.length&&z(e,t.name,a,o,"get"))}t.update=o;let r=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]||d(a)}return Array.prototype.slice.apply(e,a)};if(e[t]||isNaN(t))return e[t];{let e=(t/l|0)*l;return void d(e)}}});return r}const Ie=(0,l.aZ)({name:"utable",setup(e){const{data:t,pdata:a}=(0,Ne.BK)(e);let s=t.value,i=(0,Ne.iH)(s.id?Qe(a.value.name,s):Fe(s,s.rows));(0,l.m0)((()=>{i=(0,Ne.iH)(s.id?Qe(a.value.name,s):Fe(s,s.rows))}));let n=()=>{let e=t.value,a=null===e.value||0==i.value.length?[]:Array.isArray(e.value)?i.value.filter((t=>e.value.includes(t.iiid))):i.value.filter((t=>e.value==t.iiid));return a},o=n(),d=(0,Ne.iH)(o),r=(0,Ne.iH)(o),c=(0,Ne.iH)(!Array.isArray(t.value.value)),h=(e,l)=>{_([a.value.name,t.value.name,e,l])},u=(0,l.Fl)((()=>t.value.value));return(0,l.YP)(i,((e,t)=>{r.value=n(),d.value=r.value})),(0,l.YP)(t,((e,a)=>{m&&console.log("data update",a.name),r.value=n(),d.value=r.value,c.value=!Array.isArray(t.value.value)})),{rows:i,selected:r,singleMode:c,sendMessage:h,datavalue:u,updated:d}},data(){return{Dark:Ve.Z,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){D(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&&D(this,this.search,(function(l){if(!Array.isArray(l))return h.error(l);m&&console.log("added row",l),a.search="",l=Fe(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=>(null===e||void 0===e?void 0: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.Y3)((()=>{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(),k[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 h.error("Rows are not selected!")}},watch:{selected(e){const t=this.data;He(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(Ke)))},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 Ue=a(9267),Re=a(2165),Te=a(8870),Pe=a(4842),Le=a(8186),Be=a(2414),Ye=a(3884),Ge=a(5735),Je=a(7208);const Xe=(0,Q.Z)(Ie,[["render",We]]),et=Xe;function tt(e,t,a,i,n,o){return(0,l.wg)(),(0,l.iD)("div",{ref:"graph",style:(0,s.j5)(a.styleSize),id:"graph"},null,4)}L()(Ie,"components",{QTable:Ue.Z,QBtn:Re.Z,QTooltip:Te.Z,QInput:Pe.Z,QIcon:R.Z,QTr:Le.Z,QTh:Be.Z,QTd:Ye.Z,QCheckbox:Ge.Z,QSelect:Je.Z});var at=a(130),lt=a.n(at),st=a(309);var it=a(5154),nt=a.n(it),ot=a(4150),dt=a.n(ot);let rt="#091159",ct={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"};const ht={name:"sgraph",props:{data:{type:Object,required:!0},pdata:{type:Object,required:!0},styleSize:String},data(){return{Dark:Ve.Z,s:null,state:{searchQuery:""},selectedNodes:[],selectedEdges:[],graph:null,fa2start:null,fa2stop:null,fa2run:null}},methods:{sendMessage(e,t){_([this.pdata["name"],this.data["name"],e,t])},refresh(){let e=this.graph();const t=dt().inferSettings(e);let a=new(nt())(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 h=0;h<l.length;h++){if(!l[h])continue;let e=Object.assign({},l[h]);void 0==e.id&&(e.id=h),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,h);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 d=[],r=new Map,c=Array(i.length).fill(0);for(let h=0;h<e.edges.length;h++){let t=Object.assign({},e.edges[h]),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=h),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]++,r.has(s)?r.get(s).push(l):r.set(s,[l]);let e=d.indexOf(l),i=d.indexOf(s);if(-1==e&&(e=d.length,d.push(l)),-1==i&&(i=d.length,d.push(s)),i<e){let t=d[e];d[e]=d[i],d[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:ct.defaultEdgeColor,i.color=rt):t.color&&(i.color=t.color),t.label&&(i.label=t.label)}if(a)for(let h=0;h<d.length;h++){let e=d[h];if(r.has(e))for(let t of r.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 st.MultiDirectedGraph;this.graph=()=>e;let t=this.$refs.graph;this.s=new(lt())(e,t,ct);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:ct.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=Ve.Z.isActive?"#00838F":"#000",a.on("clickNode",(function(t){let s=t.node;if(!h.shiftKey){for(let e of l.selectedEdges)n(e);l.selectedEdges=[]}if(l.selectedNodes.includes(s))if(e.setNodeAttribute(s,"highlighted",!1),h.shiftKey){let e=l.selectedNodes.indexOf(s);-1!=e&&l.selectedNodes.array.splice(e,1)}else l.selectedNodes=[];else{if(!h.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(!h.shiftKey){for(let t of l.selectedNodes)e.setNodeAttribute(t,"highlighted",!1);l.selectedNodes=[]}if(l.selectedEdges.includes(t))if(n(t),h.shiftKey){let e=l.selectedEdges.indexOf(t);-1!=e&&l.selectedEdges.array.splice(e,1)}else l.selectedEdges=[];else{if(!h.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 d=null,r=!1;a.on("downNode",(t=>{r=!0,d=t.node,e.setNodeAttribute(d,"highlighted",!0)})),a.getMouseCaptor().on("mousemovebody",(t=>{if(!r||!d)return;const l=a.viewportToGraph(t);e.setNodeAttribute(d,"x",l.x),e.setNodeAttribute(d,"y",l.y),t.preventSigmaDefault(),t.original.preventDefault(),t.original.stopPropagation()})),a.getMouseCaptor().on("mouseup",(()=>{d&&e.removeNodeAttribute(d,"highlighted"),r=!1,d=null})),a.getMouseCaptor().on("mousedown",(()=>{a.getCustomBBox()||a.setCustomBBox(a.getBBox())})),this.load(this.data)}},ut=(0,Q.Z)(ht,[["render",tt]]),pt=ut;function gt(e,t,a,i,n,o){const d=(0,l.up)("v-chart");return(0,l.wg)(),(0,l.iD)("div",{style:(0,s.j5)(a.styleSize?a.styleSize:o.currentStyle())},[(0,l.Wm)(d,{ref:"chart","manual-update":!0,onClick:o.clicked,autoresize:!0},null,8,["onClick"])],4)}var mt=a(9642),ft=a(6938),yt=a(1006),wt=a(6080),bt=a(3526),vt=a(763),kt=a(546),xt=a(6902),Ct=a(2826),_t=a(5256),At=a(3825),qt=a(8825);(0,vt.D)([ft.N,yt.N,bt.N,wt.N]),(0,vt.D)([kt.N,xt.N,Ct.N,_t.N,At.N]);let St=["","#80FFA5","#00DDFF","#37A2FF","#FF0087","#FFBF00","rgba(128, 255, 165)","rgba(77, 119, 255)"];const Dt={name:"linechart",components:{VChart:mt.ZP},props:{data:Object,pdata:Object,styleSize:String},data(){const e=(0,qt.Z)();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,h.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(),_([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(),k[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)}))}},zt=(0,Q.Z)(Dt,[["render",gt]]),jt=zt;let $t={right:"4px",borderRadius:"7px",backgroundColor:"#027be3",width:"4px",opacity:.75},Et={right:"2px",borderRadius:"9px",backgroundColor:"#027be3",width:"8px",opacity:.2};function Zt(e){let t=new FormData;t.append("image",e);let a=new XMLHttpRequest;a.open("POST",b,!0),a.onload=function(){200===this.status?console.log(this.response):console.error(a)},a.send(t)}const Mt=(0,l.aZ)({name:"element",components:{utable:et,sgraph:pt,linechart:jt},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){_([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},complete(e,t,a){D(this,e,(e=>t((()=>{this.options=e}))))},lens(){h.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(){k[this.fullname]=this,this.showSelected(),m&&console.log("updated",this.fullname)},mounted(){let e=this.data;k[this.fullname]=this,e.id&&"table"==e.type&&!e.filter&&(this.update=e.update),e.focus&&this.$refs.inputRef.$el.focus(),this.showSelected(),m&&console.log("mounted",this.fullname)},data(){return{Dark:Ve.Z,value:this.data.value,styleSize:A?S(this):null,has_recalc:!0,host_path:b,options:[],expandedKeys:[],thumbStyle:$t,barStyle:Et,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},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();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),h.screen.reload&&"tree"==this.type&&this.$refs.tree&&this.$refs.tree.expandAll();let a=this.data;this.value=a.value,this.updated=this.value,k[this.fullname]=this}}});var Ot=a(4027),Wt=a(8886),Nt=a(9721),Vt=a(2064),Ht=a(8761),Kt=a(7704),Ft=a(5551),Qt=a(5869),It=a(1745),Ut=a(8506);const Rt=(0,Q.Z)(Mt,[["render",je],["__scopeId","data-v-62845b3d"]]),Tt=Rt;L()(Mt,"components",{QImg:Ot.Z,QIcon:R.Z,QSelect:Je.Z,QCheckbox:Ge.Z,QToggle:Wt.Z,QBadge:Nt.Z,QSlider:Vt.Z,QBtn:Re.Z,QBtnToggle:Ht.Z,QInput:Pe.Z,QScrollArea:Kt.Z,QTree:Ft.Z,QSeparator:Qt.Z,QUploader:It.Z,QTooltip:Te.Z,QSpinnerIos:Ut.Z});const Pt=(0,l.aZ)({name:"block",components:{element:Tt},data(){return{Dark:Ve.Z,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(v).length,this.name,this.$el.getBoundingClientRect())},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:k[`${l.name}@${this.name}`].$el.getBoundingClientRect().right}}else if(a===e)return t;return 0}},mounted(){v[this.data.name]=this,(this.expanding||this.data.width)&&(k[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[[k[this.fullname]]];let e=[];for(let t of this.data.value)if(Array.isArray(t)){let a=t.map((e=>k[`${e.name}@${this.name}`])).filter((e=>e.expanding));a.length&&e.push(a)}else{let a=k[`${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),v[this.name]=this,this.expanding&&(k[this.fullname]=this)}}});var Lt=a(151);const Bt=(0,Q.Z)(Pt,[["render",ne]]),Yt=Bt;function Gt(){let e=A&&k.size==x.size;if(e)for(let[t,a]of Object.entries(k))if(!x[t]){e=!1;break}e||(V(document.documentElement.scrollWidth>window.innerWidth),(0,l.Y3)((()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{h.visible(!0)}))}))})))}L()(Pt,"components",{QCard:Lt.Z,QIcon:R.Z,QScrollArea:Kt.Z});const Jt=(0,l.aZ)({name:"zone",components:{block:Yt},props:{data:Object},updated(e){(0,l.Y3)((()=>{requestAnimationFrame((()=>{requestAnimationFrame(Gt)}))}))}}),Xt=(0,Q.Z)(Jt,[["render",ee]]),ea=Xt,ta={class:"row q-gutter-sm row-md"};function aa(e,t,a,i,n,o){const d=(0,l.up)("block"),r=(0,l.up)("q-item-label"),c=(0,l.up)("q-space"),h=(0,l.up)("q-btn"),u=(0,l.up)("q-card"),p=(0,l.up)("q-dialog");return(0,l.wg)(),(0,l.j4)(p,{ref:"dialog",onHide:o.onDialogHide,onKeyup:(0,oe.D2)(o.pressedEnter,["enter"])},{default:(0,l.w5)((()=>[(0,l.Wm)(u,{class:"q-dialog-plugin q-pa-md items-start q-gutter-md",bordered:"",style:(0,s.j5)(a.data.internal?"width: 800px; max-width: 80vw;":"")},{default:(0,l.w5)((()=>[a.data?((0,l.wg)(),(0,l.j4)(d,{key:0,data:a.data},null,8,["data"])):(0,l.kq)("",!0),(0,l.Wm)(r,{class:"text-h6"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(a.data.text?a.data.text:""),1)])),_:1}),(0,l._)("div",ta,[(0,l.Wm)(c),((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(a.commands,(e=>((0,l.wg)(),(0,l.j4)(h,{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 la={props:{data:Object,commands:Array},components:{block:Yt},emits:["ok","hide"],data(){return{closed:!1}},methods:{show(){this.$refs.dialog.show(),h.dialog=this},message4(e){return[this.data["name"],null,"changed",e]},sendMessage(e){this.data.internal||_(this.message4(e)),this.closed=!0,this.hide()},hide(){this.$refs.dialog.hide(),h.dialog=null},onDialogHide(){this.$emit("hide"),this.closed||this.data.internal||_(this.message4(null))},pressedEnter(){this.sendMessage(this.commands[0])},onOKClick(){this.$emit("ok"),this.hide()},onCancelClick(){this.hide()}}};var sa=a(5926),ia=a(2025);const na=(0,Q.Z)(la,[["render",aa]]),oa=na;L()(la,"components",{QDialog:sa.Z,QCard:Lt.Z,QItemLabel:T.Z,QSpace:ia.Z,QBtn:Re.Z});var da=a(589);let ra="theme";try{Ve.Z.set(da.Z.getItem(ra))}catch(xa){}let ca=null,ha=["complete","append","get"];const ua=(0,l.aZ)({name:"MainLayout",data(){return{leftDrawerOpen:!1,Dark:Ve.Z,menu:[],tab:"",tooldata:{name:"toolbar"},localServer:!0,statusConnect:!1,screen:{blocks:[],toolbar:[]},visibility:!0,designCycle:0,shiftKey:!1}},components:{menubar:Y,zone:ea,element:Tt},created(){C(this)},unmounted(){window.removeEventListener("resize",this.onResize)},computed:{left_toolbar(){return this.screen.toolbar.filter((e=>!e.right))},right_toolbar(){return this.screen.toolbar.filter((e=>e.right))}},methods:{switchTheme(){Ve.Z.set(!Ve.Z.isActive),da.Z.set(ra,Ve.Z.isActive)},toggleLeftDrawer(){this.leftDrawerOpen=!this.leftDrawerOpen},tabclick(e){_(["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,N()},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)j(),this.screen.name!=e.name?(q(!1),m||this.visible(!1)):e.reload&&q(!1),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("action"==e.type)Z(e);else if(ha.includes(e.type))M(e);else if("action"==e.type&&"close"==e.value)this.dialog&&(this.dialog.data.internal=!0),this.dialog.hide();else{let t=e.updates&&e.updates.length;t&&E(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&&W(!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 pa=a(9214),ga=a(3812),ma=a(9570),fa=a(7547),ya=a(3269),wa=a(2652),ba=a(4379);const va=(0,Q.Z)(ua,[["render",o]]),ka=va;L()(ua,"components",{QLayout:pa.Z,QHeader:ga.Z,QToolbar:ma.Z,QBtn:Re.Z,QItemLabel:T.Z,QTabs:fa.Z,QTab:ya.Z,QSpace:ia.Z,QTooltip:Te.Z,QPageContainer:wa.Z,QPage:ba.Z})}}]);
@@ -1 +1 @@
1
- (()=>{"use strict";var e={653:(e,t,r)=>{r(5363),r(71);var n=r(8880),o=r(9592),a=r(3673);const i={id:"q-app"};function l(e,t,r,n,o,l){const s=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",i,[(0,a.Wm)(s)])}const s=(0,a.aZ)({name:"App"});var u=r(4260);const c=(0,u.Z)(s,[["render",l]]),d=c;var p=r(3340),f=r(8339);const h=[{path:"/",component:()=>Promise.all([r.e(736),r.e(885)]).then(r.bind(r,5885)),children:[{path:"",component:()=>Promise.all([r.e(736),r.e(430)]).then(r.bind(r,6430))}]},{path:"/:catchAll(.*)*",component:()=>Promise.all([r.e(736),r.e(193)]).then(r.bind(r,2193))}],v=h,m=(0,p.BC)((function(){const e=f.PO,t=(0,f.p7)({scrollBehavior:()=>({left:0,top:0}),routes:v,history:e("/")});return t}));async function b(e,t){const r="function"===typeof m?await m({}):m,n=e(d);return n.use(o.Z,t),{app:n,router:r}}var g=r(6417),y=r(5597),w=r(589),O=r(7153);const k={config:{notify:{}},plugins:{Notify:g.Z,Dialog:y.Z,LocalStorage:w.Z,SessionStorage:O.Z}},C="/";async function P({app:e,router:t},r){let n=!1;const o=e=>{try{return t.resolve(e).href}catch(r){}return Object(e)===e?null:e},a=e=>{if(n=!0,"string"===typeof e&&/^https?:\/\//.test(e))return void(window.location.href=e);const t=o(e);null!==t&&(window.location.href=t)},i=window.location.href.replace(window.location.origin,"");for(let s=0;!1===n&&s<r.length;s++)try{await r[s]({app:e,router:t,ssrContext:null,redirect:a,urlPath:i,publicPath:C})}catch(l){return l&&l.url?void a(l.url):void console.error("[Quasar] boot error:",l)}!0!==n&&(e.use(t),e.mount("#q-app"))}b(n.ri,k).then((e=>Promise.all([Promise.resolve().then(r.bind(r,2390))]).then((t=>{const r=t.map((e=>e.default)).filter((e=>"function"===typeof e));P(e,r)}))))},2390:(e,t,r)=>{r.r(t),r.d(t,{default:()=>o});var n=r(3340);const o=(0,n.xr)((async({app:e})=>{}))}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=e,(()=>{var e=[];r.O=(t,n,o,a)=>{if(!n){var i=1/0;for(c=0;c<e.length;c++){for(var[n,o,a]=e[c],l=!0,s=0;s<n.length;s++)(!1&a||i>=a)&&Object.keys(r.O).every((e=>r.O[e](n[s])))?n.splice(s--,1):(l=!1,a<i&&(i=a));if(l){e.splice(c--,1);var u=o();void 0!==u&&(t=u)}}return t}a=a||0;for(var c=e.length;c>0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[n,o,a]}})(),(()=>{r.n=e=>{var t=e&&e.__esModule?()=>e["default"]:()=>e;return r.d(t,{a:t}),t}})(),(()=>{r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}})(),(()=>{r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((t,n)=>(r.f[n](e,t),t)),[]))})(),(()=>{r.u=e=>"js/"+e+"."+{193:"283445be",430:"591e9a73",885:"90550ab6"}[e]+".js"})(),(()=>{r.miniCssF=e=>"css/"+({143:"app",736:"vendor"}[e]||e)+"."+{143:"31d6cfe0",736:"9ed7638d",885:"880242b5"}[e]+".css"})(),(()=>{r.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()})(),(()=>{r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{var e={},t="uniqua:";r.l=(n,o,a,i)=>{if(e[n])e[n].push(o);else{var l,s;if(void 0!==a)for(var u=document.getElementsByTagName("script"),c=0;c<u.length;c++){var d=u[c];if(d.getAttribute("src")==n||d.getAttribute("data-webpack")==t+a){l=d;break}}l||(s=!0,l=document.createElement("script"),l.charset="utf-8",l.timeout=120,r.nc&&l.setAttribute("nonce",r.nc),l.setAttribute("data-webpack",t+a),l.src=n),e[n]=[o];var p=(t,r)=>{l.onerror=l.onload=null,clearTimeout(f);var o=e[n];if(delete e[n],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach((e=>e(r))),t)return t(r)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),s&&document.head.appendChild(l)}}})(),(()=>{r.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})(),(()=>{r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e)})(),(()=>{r.p="/"})(),(()=>{var e=(e,t,r,n)=>{var o=document.createElement("link");o.rel="stylesheet",o.type="text/css";var a=a=>{if(o.onerror=o.onload=null,"load"===a.type)r();else{var i=a&&("load"===a.type?"missing":a.type),l=a&&a.target&&a.target.href||t,s=new Error("Loading CSS chunk "+e+" failed.\n("+l+")");s.code="CSS_CHUNK_LOAD_FAILED",s.type=i,s.request=l,o.parentNode.removeChild(o),n(s)}};return o.onerror=o.onload=a,o.href=t,document.head.appendChild(o),o},t=(e,t)=>{for(var r=document.getElementsByTagName("link"),n=0;n<r.length;n++){var o=r[n],a=o.getAttribute("data-href")||o.getAttribute("href");if("stylesheet"===o.rel&&(a===e||a===t))return o}var i=document.getElementsByTagName("style");for(n=0;n<i.length;n++){o=i[n],a=o.getAttribute("data-href");if(a===e||a===t)return o}},n=n=>new Promise(((o,a)=>{var i=r.miniCssF(n),l=r.p+i;if(t(i,l))return o();e(n,l,o,a)})),o={143:0};r.f.miniCss=(e,t)=>{var r={885:1};o[e]?t.push(o[e]):0!==o[e]&&r[e]&&t.push(o[e]=n(e).then((()=>{o[e]=0}),(t=>{throw delete o[e],t})))}})(),(()=>{var e={143:0};r.f.j=(t,n)=>{var o=r.o(e,t)?e[t]:void 0;if(0!==o)if(o)n.push(o[2]);else{var a=new Promise(((r,n)=>o=e[t]=[r,n]));n.push(o[2]=a);var i=r.p+r.u(t),l=new Error,s=n=>{if(r.o(e,t)&&(o=e[t],0!==o&&(e[t]=void 0),o)){var a=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;l.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",l.name="ChunkLoadError",l.type=a,l.request=i,o[1](l)}};r.l(i,s,"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,n)=>{var o,a,[i,l,s]=n,u=0;if(i.some((t=>0!==e[t]))){for(o in l)r.o(l,o)&&(r.m[o]=l[o]);if(s)var c=s(r)}for(t&&t(n);u<i.length;u++)a=i[u],r.o(e,a)&&e[a]&&e[a][0](),e[i[u]]=0;return r.O(c)},n=globalThis["webpackChunkuniqua"]=globalThis["webpackChunkuniqua"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})();var n=r.O(void 0,[736],(()=>r(653)));n=r.O(n)})();
1
+ (()=>{"use strict";var e={653:(e,t,r)=>{r(5363),r(71);var n=r(8880),o=r(9592),a=r(3673);const i={id:"q-app"};function l(e,t,r,n,o,l){const s=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",i,[(0,a.Wm)(s)])}const s=(0,a.aZ)({name:"App"});var u=r(4260);const c=(0,u.Z)(s,[["render",l]]),d=c;var p=r(3340),f=r(8339);const h=[{path:"/",component:()=>Promise.all([r.e(736),r.e(596)]).then(r.bind(r,3596)),children:[{path:"",component:()=>Promise.all([r.e(736),r.e(430)]).then(r.bind(r,6430))}]},{path:"/:catchAll(.*)*",component:()=>Promise.all([r.e(736),r.e(193)]).then(r.bind(r,2193))}],v=h,m=(0,p.BC)((function(){const e=f.PO,t=(0,f.p7)({scrollBehavior:()=>({left:0,top:0}),routes:v,history:e("/")});return t}));async function g(e,t){const r="function"===typeof m?await m({}):m,n=e(d);return n.use(o.Z,t),{app:n,router:r}}var b=r(6417),y=r(5597),w=r(589),O=r(7153);const k={config:{notify:{}},plugins:{Notify:b.Z,Dialog:y.Z,LocalStorage:w.Z,SessionStorage:O.Z}},C="/";async function P({app:e,router:t},r){let n=!1;const o=e=>{try{return t.resolve(e).href}catch(r){}return Object(e)===e?null:e},a=e=>{if(n=!0,"string"===typeof e&&/^https?:\/\//.test(e))return void(window.location.href=e);const t=o(e);null!==t&&(window.location.href=t)},i=window.location.href.replace(window.location.origin,"");for(let s=0;!1===n&&s<r.length;s++)try{await r[s]({app:e,router:t,ssrContext:null,redirect:a,urlPath:i,publicPath:C})}catch(l){return l&&l.url?void a(l.url):void console.error("[Quasar] boot error:",l)}!0!==n&&(e.use(t),e.mount("#q-app"))}g(n.ri,k).then((e=>Promise.all([Promise.resolve().then(r.bind(r,2390))]).then((t=>{const r=t.map((e=>e.default)).filter((e=>"function"===typeof e));P(e,r)}))))},2390:(e,t,r)=>{r.r(t),r.d(t,{default:()=>o});var n=r(3340);const o=(0,n.xr)((async({app:e})=>{}))}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=e,(()=>{var e=[];r.O=(t,n,o,a)=>{if(!n){var i=1/0;for(c=0;c<e.length;c++){for(var[n,o,a]=e[c],l=!0,s=0;s<n.length;s++)(!1&a||i>=a)&&Object.keys(r.O).every((e=>r.O[e](n[s])))?n.splice(s--,1):(l=!1,a<i&&(i=a));if(l){e.splice(c--,1);var u=o();void 0!==u&&(t=u)}}return t}a=a||0;for(var c=e.length;c>0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[n,o,a]}})(),(()=>{r.n=e=>{var t=e&&e.__esModule?()=>e["default"]:()=>e;return r.d(t,{a:t}),t}})(),(()=>{r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}})(),(()=>{r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((t,n)=>(r.f[n](e,t),t)),[]))})(),(()=>{r.u=e=>"js/"+e+"."+{193:"283445be",430:"591e9a73",596:"1ddb4cde"}[e]+".js"})(),(()=>{r.miniCssF=e=>"css/"+({143:"app",736:"vendor"}[e]||e)+"."+{143:"31d6cfe0",596:"b849c5e5",736:"9ed7638d"}[e]+".css"})(),(()=>{r.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()})(),(()=>{r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{var e={},t="uniqua:";r.l=(n,o,a,i)=>{if(e[n])e[n].push(o);else{var l,s;if(void 0!==a)for(var u=document.getElementsByTagName("script"),c=0;c<u.length;c++){var d=u[c];if(d.getAttribute("src")==n||d.getAttribute("data-webpack")==t+a){l=d;break}}l||(s=!0,l=document.createElement("script"),l.charset="utf-8",l.timeout=120,r.nc&&l.setAttribute("nonce",r.nc),l.setAttribute("data-webpack",t+a),l.src=n),e[n]=[o];var p=(t,r)=>{l.onerror=l.onload=null,clearTimeout(f);var o=e[n];if(delete e[n],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach((e=>e(r))),t)return t(r)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),s&&document.head.appendChild(l)}}})(),(()=>{r.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})(),(()=>{r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e)})(),(()=>{r.p="/"})(),(()=>{var e=(e,t,r,n)=>{var o=document.createElement("link");o.rel="stylesheet",o.type="text/css";var a=a=>{if(o.onerror=o.onload=null,"load"===a.type)r();else{var i=a&&("load"===a.type?"missing":a.type),l=a&&a.target&&a.target.href||t,s=new Error("Loading CSS chunk "+e+" failed.\n("+l+")");s.code="CSS_CHUNK_LOAD_FAILED",s.type=i,s.request=l,o.parentNode.removeChild(o),n(s)}};return o.onerror=o.onload=a,o.href=t,document.head.appendChild(o),o},t=(e,t)=>{for(var r=document.getElementsByTagName("link"),n=0;n<r.length;n++){var o=r[n],a=o.getAttribute("data-href")||o.getAttribute("href");if("stylesheet"===o.rel&&(a===e||a===t))return o}var i=document.getElementsByTagName("style");for(n=0;n<i.length;n++){o=i[n],a=o.getAttribute("data-href");if(a===e||a===t)return o}},n=n=>new Promise(((o,a)=>{var i=r.miniCssF(n),l=r.p+i;if(t(i,l))return o();e(n,l,o,a)})),o={143:0};r.f.miniCss=(e,t)=>{var r={596:1};o[e]?t.push(o[e]):0!==o[e]&&r[e]&&t.push(o[e]=n(e).then((()=>{o[e]=0}),(t=>{throw delete o[e],t})))}})(),(()=>{var e={143:0};r.f.j=(t,n)=>{var o=r.o(e,t)?e[t]:void 0;if(0!==o)if(o)n.push(o[2]);else{var a=new Promise(((r,n)=>o=e[t]=[r,n]));n.push(o[2]=a);var i=r.p+r.u(t),l=new Error,s=n=>{if(r.o(e,t)&&(o=e[t],0!==o&&(e[t]=void 0),o)){var a=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;l.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",l.name="ChunkLoadError",l.type=a,l.request=i,o[1](l)}};r.l(i,s,"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,n)=>{var o,a,[i,l,s]=n,u=0;if(i.some((t=>0!==e[t]))){for(o in l)r.o(l,o)&&(r.m[o]=l[o]);if(s)var c=s(r)}for(t&&t(n);u<i.length;u++)a=i[u],r.o(e,a)&&e[a]&&e[a][0](),e[i[u]]=0;return r.O(c)},n=globalThis["webpackChunkuniqua"]=globalThis["webpackChunkuniqua"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})();var n=r.O(void 0,[736],(()=>r(653)));n=r.O(n)})();
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unisi
3
- Version: 0.1.18
3
+ Version: 0.2.0
4
4
  Summary: Unified System Interface, GUI and Remote API
5
5
  Author-Email: UNISI Tech <g.dernovoy@gmail.com>
6
6
  License: Apache-2.0
@@ -29,7 +29,8 @@ UNified System Interface, GUI and Remote API
29
29
  UNISI technology provides a unified system interface and advanced program functionality, eliminating the need for front-end and most back-end programming. It automates common tasks, as well as unique ones, significantly reducing the necessity for manual programming and effort.
30
30
 
31
31
  ### Provided functionality without programming ###
32
- - Automatic WEB GUI
32
+ - Automatic WEB GUI Client
33
+ - Client-server data synchronization
33
34
  - Unified Remote API
34
35
  - Automatic configuring
35
36
  - Auto logging
@@ -103,10 +104,10 @@ Connect a browser to localhast:8000 which are by default and will see:
103
104
  ### Handling events ###
104
105
  All handlers are functions which have a signature
105
106
  ```
106
- def handler_x(gui_object, value_x) #or
107
- async def handler_x(gui_object, value_x)
107
+ def handler_x(unit : Unit, value_x) #or
108
+ async def handler_x(unit : Unit, value_x)
108
109
  ```
109
- where gui_object is a Python object the user interacted with and value for the event.
110
+ where unit is a Python object the user interacted with and value for the event.
110
111
 
111
112
  #### UNISI supports synchronous and asynchronous handlers automatically adopting them for using. ####
112
113
 
@@ -117,23 +118,21 @@ When a user changes the value of the Unit object or presses Button, the server c
117
118
  ```
118
119
  def clean_table(_, value):
119
120
  table.rows = []
120
- return table
121
+
121
122
  clean_button = Button('Clean the table’, clean_table)
122
123
  ```
123
124
 
124
125
  | Handler returns | Description |
125
126
  | :---: | :---: |
126
- | Unit object | Object to update |
127
- | Unit object array or tuple | Objects to update |
128
- | None | Nothing to update, Ok |
127
+ | None | Automatically update, Ok |
129
128
  | Error(...), Warning(...), Info(...) | Show to user info about a state. |
130
129
  | True | Update whole screen |
131
130
  | Redesign | Update and redesign whole screen |
132
131
  | Dialog(..) | Open a dialog with parameters |
133
132
 
134
- Unisi synchronizes GUI state on frontend-end automatically after calling a handler.
133
+ Unisi synchronizes units on frontend-end automatically after calling a handler.
135
134
 
136
- If a Unit object doesn't have 'changed' handler the object accepts incoming value automatically to the 'value' variable of gui object.
135
+ If a Unit object doesn't have 'changed' handler the object accepts incoming value automatically to the 'value' variable of a unit.
137
136
 
138
137
  If 'value' is not acceptable instead of returning an object possible to return Error or Warning or Info. That functions can update a object list passed after the message argument.
139
138
 
@@ -142,7 +141,7 @@ def changed(elem, value):
142
141
  if value == 4:
143
142
  return Error(f‘The value can not be 4!', elem)
144
143
  #accept value othewise
145
- elem.value = value
144
+ elem.accept(value)
146
145
 
147
146
  edit = Edit('Involving', 0.6, changed)
148
147
  ```
@@ -156,14 +155,14 @@ For example above interception of select_mode changed event will be:
156
155
  def do_not_select_mode_x(selector, value):
157
156
  if value == 'Mode X':
158
157
  return Error('Do not select Mode X in this context', selector) # send old value for update select_mode to the previous state
159
- return _.accept(value) #otherwise accept the value
158
+ return selector.accept(value) #otherwise accept the value
160
159
  ```
161
160
 
162
161
  ### Block details ###
163
162
  The width and height of blocks is calculated automatically depending on their children. It is possible to set the block width, or make it scrollable , for example for images list. Possible to add MD icon to the header, if required. width, scroll, height, icon are optional.
164
163
  ```
165
164
  #Block(name, *children, **options)
166
- block = Block(‘Pictures’,add_button, images, width = 500, scroll = True,icon = 'api')
165
+ block = Block(‘Pictures’,add_button, images)
167
166
  ```
168
167
 
169
168
  The first Block child is a widget(s) which are drawn in the block header just after its name.
@@ -184,7 +183,7 @@ Using a shared block in some screen:
184
183
  ```
185
184
  from blocks.tblock import concept_block
186
185
  ...
187
- blocks = [.., concept_block]
186
+ blocks = [xblock, concept_block]
188
187
  ```
189
188
 
190
189
  #### Layout of blocks. ####
@@ -246,7 +245,7 @@ Button('_Check', changed = None, icon = None)
246
245
  ```
247
246
 
248
247
  ### Load to server Button ###
249
- Special button provides file loading from user device or computer to the Unisi server.
248
+ Special button provides file loading from user device or computer to a Unisi system.
250
249
  ```
251
250
  UploadButton('Load', handler_when_loading_finish, icon = 'photo_library')
252
251
  ```
@@ -387,8 +386,8 @@ Graph can handle invalid edges and null nodes in the nodes array.
387
386
  ```
388
387
  Dialog(question, dialog_callback, commands = ['Ok', 'Cancel'], *content)
389
388
  ```
390
- where buttons is a list of the dialog button names,
391
- Dialog callback has the signature as other with a pushed button name value
389
+ where buttons is a list of the dialog command names,
390
+ Dialog callback has the signature as others with a pushed button name value
392
391
  ```
393
392
  def dialog_callback(current_dialog, command_button_name):
394
393
  if command_button_name == 'Ok':
@@ -405,7 +404,7 @@ Info(info_message, *UnitforUpdades)
405
404
  Warning(warning_message, *UnitforUpdades)
406
405
  Error(error_message, *UnitforUpdades)
407
406
  ```
408
- They are returned by handlers and cause appearing on the top screen colored rectangles window for 3 second. UnitforUpdades is optional Unit enumeration for updating on GUI client side.
407
+ They are returned by handlers and cause appearing on the top screen colored rectangle window for 3 second. UnitforUpdades is optional Unit enumeration for updating on GUI client side.
409
408
 
410
409
  For long time processes it is possible to create Progress window. It is just call user.progress in any async handler.
411
410
  Open window
@@ -499,6 +498,8 @@ A link to another persistent table can be established using the 'link' option. T
499
498
  - A tuple containing a table variable and link properties (name to type dictionary).
500
499
  - A tuple containing a table variable, link properties, and the index name in the database.
501
500
 
501
+ UNISI synchronizes all database changes between users, allowing them to see real-time updates made by others on persistent units.
502
+
502
503
  Link properties are defined as a dictionary, where the keys are property names and the values are property values. These values are necessary for type detection.
503
504
  UNISI supports now the following data types for persistent tables and links:
504
505
  - Boolean (bool)
@@ -1,27 +1,28 @@
1
- unisi-0.1.18.dist-info/METADATA,sha256=HkgpyApEcDRK81nMSvYcIKwaDrCpBAsAyb_GGHZ8WuQ,24353
2
- unisi-0.1.18.dist-info/WHEEL,sha256=rSwsxJWe3vzyR5HCwjWXQruDgschpei4h_giTm0dJVE,90
3
- unisi-0.1.18.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1
+ unisi-0.2.0.dist-info/METADATA,sha256=qTUNV8J5V1vjPj1JXJ7CO6vBOkT_5Zo_jNn1oz9zaGA,24388
2
+ unisi-0.2.0.dist-info/WHEEL,sha256=Vza3XR51HW1KmFP0iIMUVYIvz0uQuKJpIXKYOBGQyFQ,90
3
+ unisi-0.2.0.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
4
+ unisi-0.2.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
4
5
  unisi/__init__.py,sha256=a4I_tbvmIh5STXoirJiP0v_HSlOnzRY4bN4nViR7uZw,257
5
- unisi/autotest.py,sha256=jNgcy1K13hAh6bWVaGxVuJ1ZBAFCn36KF13WxQ-8HwQ,8724
6
- unisi/common.py,sha256=UjFtua5nZjz7gKc3ExkLgLRud3foHxgaGxp5xiVxj24,4360
7
- unisi/containers.py,sha256=N0UOECelnLnbRpZeBtijH-ZkpG2TDA9Ft3iOG8g0z8o,5959
8
- unisi/dbunits.py,sha256=k4nkrTb2QdSOxYRTFBKse2KdwOJhkQeVHJ3Kv3I9cX0,7082
6
+ unisi/autotest.py,sha256=BpHrib08cP0EMBVQACr4CsFI3DTxXLn3Ou555lupzgk,8716
7
+ unisi/common.py,sha256=YF1e0eRjk5udMvZpHmPpD2foVeSlto9wASusz0gOwVU,4401
8
+ unisi/containers.py,sha256=Po4JTUdNVCUB9fWccw3NnsHOWZ5zZ9cx17vGvp-6AV4,6540
9
+ unisi/dbunits.py,sha256=EHirfmuEnuAfUrsHtFDkwZelrDCnCAQizXwTJSRBE_Q,7370
9
10
  unisi/jsoncomparison/__init__.py,sha256=lsWkYEuL6v3Qol-lwSUvB6y63tm6AKcCMUd4DZDx3Cg,350
10
11
  unisi/jsoncomparison/compare.py,sha256=qPDaxd9n0GgiNd2SgrcRWvRDoXGg7NStViP9PHk2tlQ,6152
11
12
  unisi/jsoncomparison/config.py,sha256=LbdLJE1KIebFq_tX7zcERhPvopKhnzcTqMCnS3jN124,381
12
13
  unisi/jsoncomparison/errors.py,sha256=wqphE1Xn7K6n16uvUhDC45m2BxbsMUhIF2olPbhqf4o,1192
13
14
  unisi/jsoncomparison/ignore.py,sha256=xfF0a_BBEyGdZBoq-ovpCpawgcX8SRwwp7IrGnu1c2w,2634
14
- unisi/kdb.py,sha256=jMtC8zcGd1_oQ4ckuDA3tR29J8wP_4RYRcJDoCShk8c,13318
15
- unisi/llmrag.py,sha256=Gv6BM8v5HgDMtwVPnj-BF8UaZdCKRuIA9jWRTOrPvaA,3444
15
+ unisi/kdb.py,sha256=mkT7m9h2HGfTuukjoLPiYOACohIgDP0SBiukT68cOEg,13568
16
+ unisi/llmrag.py,sha256=CZOxiZx8pNHi9a95xfD7BZEr0MkQxp6GCQxd6t2ZGIs,3428
16
17
  unisi/multimon.py,sha256=5xgzR_dbJWr10IttgdgRA1llRHOArQtyt2YEvuHyoE4,4007
17
18
  unisi/proxy.py,sha256=aFZXMaCIy43r-TbR0Ff9NNDwmpg_SZ27oS5Y4p5c_uY,7697
18
19
  unisi/reloader.py,sha256=ZKWBR30Ho-cwbuWX4x05XRryBqA6YcVccBQf4xmJyw0,6585
19
- unisi/server.py,sha256=O8wLTJpfDniOynG7bNUB2CVR4EQw4HF7ChOPNppgoBk,4466
20
- unisi/tables.py,sha256=JhG4ByojQafn7qletM_tXVTBCYQ1-OGFeqspaoMMi4E,12947
21
- unisi/units.py,sha256=5gN_-vCcB2Ud5o4UEqwT9-IQFnQhOfK2ftplAnjfUW4,6679
22
- unisi/users.py,sha256=eyAflXY1DsuaxvnNHa9c3X58sBQti17agoHAKyJMrNc,15118
20
+ unisi/server.py,sha256=-Z8jjcitf6vxZoO97_0CvvIjAuyB0zbFytuLigiU4WI,4411
21
+ unisi/tables.py,sha256=My0xz5j9HhzvDiFwwyIK62YbJb7-0KXIm68xSGvC1u8,13766
22
+ unisi/units.py,sha256=ny0oCYnBJ3GAVQ2dA6rzK1vaBcsAm9aeKmd88BeU_m0,9286
23
+ unisi/users.py,sha256=sh0sDT0R0D-zzyYFqSwOWdWaNAQ6bvALiy0zVeTlJ6w,16289
23
24
  unisi/utils.py,sha256=o1t9N7GMVUy9Le2570PK0hVEsjxS5-aMKiwhvhRwZOg,2491
24
- unisi/web/css/885.880242b5.css,sha256=Ozm-q1ciBu593NcEYkG0RC4zutNdfzCgtmHjkQ3C6R8,2691
25
+ unisi/web/css/596.b849c5e5.css,sha256=XIal3jcbcHaqtGZdFWHWFZlkjkqa40vv-Q9bcGqPwPE,2691
25
26
  unisi/web/css/app.31d6cfe0.css,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
27
  unisi/web/css/vendor.9ed7638d.css,sha256=p_6HvcTaHu2zmOmfGxEGiGu5TIFZ75_XKHJZWA0eGCE,220597
27
28
  unisi/web/favicon.ico,sha256=2ZcJaY_4le4w5NSBzWjaj3yk1faLAX0XqioI-Tjscbs,64483
@@ -37,10 +38,10 @@ unisi/web/icons/favicon-128x128.png,sha256=zmGg0n6RZ5OM4gg-E5HeHuUUtA2KD1w2AqegT
37
38
  unisi/web/icons/favicon-16x16.png,sha256=3ynBFHJjwaUFKcZVC2rBs27b82r64dmcvfFzEo52-sU,859
38
39
  unisi/web/icons/favicon-32x32.png,sha256=lhGXZOqIhjcKDymmbKyo4mrVmKY055LMD5GO9eW2Qjk,2039
39
40
  unisi/web/icons/favicon-96x96.png,sha256=0PbP5YF01VHbwwP8z7z8jjltQ0q343C1wpjxWjj47rY,9643
40
- unisi/web/index.html,sha256=GVi3aN7RqJ1mydk21hGFFJlEzYXU57iRD-nE5zlL2L4,923
41
+ unisi/web/index.html,sha256=tbTBtLESbCcM8_TXC83aZn5t3yPbRsbjDifn3ZTxQm4,923
41
42
  unisi/web/js/193.283445be.js,sha256=FID-PRjvjbe_OHxm7L2NC92Cj_5V7AtDQ2WvKxLZ0lw,763
42
43
  unisi/web/js/430.591e9a73.js,sha256=7S1CJTwGdE2EKXzeFRcaYuTrn0QteoVI03Hykz8qh3s,6560
43
- unisi/web/js/885.90550ab6.js,sha256=f3FcB27JMKmRZuaR5_a8-vjERgHlTRA5JFWEgr8jDh0,60285
44
- unisi/web/js/app.3ca810a2.js,sha256=uHru1lBJerc7X74ePT3yBTNLnYgjfjWAJOMg-LfgiGE,5901
44
+ unisi/web/js/596.1ddb4cde.js,sha256=91IChca1QUoAEcDH3qrTcmF3MHZz1VVxd9AUATm25WY,60432
45
+ unisi/web/js/app.760c4dd6.js,sha256=ZYuOaB2SwUZ-0-j-bG5-bwA8loc-x7M21dSY8p0Y0kQ,5901
45
46
  unisi/web/js/vendor.eab68489.js,sha256=kf7Bf302l1D1kmnVoG2888ZwR7boc9qLeiEOoxa_UA0,1279366
46
- unisi-0.1.18.dist-info/RECORD,,
47
+ unisi-0.2.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: pdm-backend (2.3.3)
2
+ Generator: pdm-backend (2.4.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+
3
+ [gui_scripts]
4
+
@@ -1 +0,0 @@
1
- "use strict";(globalThis["webpackChunkuniqua"]=globalThis["webpackChunkuniqua"]||[]).push([[885],{5885:(e,t,a)=>{a.r(t),a.d(t,{default:()=>va});var l=a(3673),s=a(2323);const i=(0,l._)("div",{class:"q-pa-md"},null,-1),n=(0,l._)("div",{class:"q-pa-md"},null,-1);function o(e,t,a,o,d,r){const c=(0,l.up)("q-item-label"),h=(0,l.up)("element"),u=(0,l.up)("q-tab"),p=(0,l.up)("q-tabs"),g=(0,l.up)("q-space"),m=(0,l.up)("q-tooltip"),f=(0,l.up)("q-btn"),y=(0,l.up)("q-toolbar"),w=(0,l.up)("q-header"),b=(0,l.up)("zone"),v=(0,l.up)("q-page"),k=(0,l.up)("q-page-container"),x=(0,l.up)("q-layout");return(0,l.wg)(),(0,l.j4)(x,{view:"lHh Lpr lFf"},{default:(0,l.w5)((()=>[(0,l.Wm)(w,{elevated:"",class:(0,s.C_)({"bg-deep-purple-9":e.Dark.isActive})},{default:(0,l.w5)((()=>[(0,l.Wm)(y,null,{default:(0,l.w5)((()=>[(0,l.Wm)(c,{class:"text-h5"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.screen.header?e.screen.header:""),1)])),_:1}),i,((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.left_toolbar,(t=>((0,l.wg)(),(0,l.j4)(h,{class:(0,s.C_)(["q-ma-xs",{"bg-blue-grey-7":e.Dark.isActive,"bg-blue-5":!e.Dark.isActive}]),data:t,pdata:e.tooldata},null,8,["class","data","pdata"])))),256)),n,(0,l.Wm)(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.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.menu,(t=>((0,l.wg)(),(0,l.iD)("div",null,[t.icon?((0,l.wg)(),(0,l.j4)(u,{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.kq)("",!0),t.icon?(0,l.kq)("",!0):((0,l.wg)(),(0,l.j4)(u,{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.Wm)(g),((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.right_toolbar,(t=>((0,l.wg)(),(0,l.j4)(h,{class:(0,s.C_)(["q-ma-xs",{"bg-blue-grey-7":e.Dark.isActive,"bg-blue-5":!e.Dark.isActive}]),data:t,pdata:e.tooldata},null,8,["class","data","pdata"])))),256)),(0,l.Wm)(f,{class:(0,s.C_)(["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.w5)((()=>[(0,l.Wm)(m,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Dark/Light mode")])),_:1})])),_:1},8,["class","icon","onClick"])])),_:1})])),_:1},8,["class"]),(0,l.Wm)(k,{class:"content"},{default:(0,l.w5)((()=>[(0,l.Wm)(v,{class:"flex justify-center centers"},{default:(0,l.w5)((()=>[(0,l.Wm)(b,{data:e.screen.blocks,ref:"page"},null,8,["data"])])),_:1})])),_:1})])),_:1})}function d(e,t,a,i,n,o){const d=(0,l.up)("q-icon"),r=(0,l.up)("q-item-section"),c=(0,l.up)("q-item-label"),h=(0,l.up)("q-item");return(0,l.wg)(),(0,l.j4)(h,{clickable:"",tag:"a",target:"_blank",onClick:e.send},{default:(0,l.w5)((()=>[(0,l.Wm)(r,{avatar:""},{default:(0,l.w5)((()=>[(0,l.Wm)(d,{name:e.icon},null,8,["name"])])),_:1}),(0,l.Wm)(r,null,{default:(0,l.w5)((()=>[(0,l.Wm)(c,null,{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.name),1)])),_:1})])),_:1})])),_:1},8,["onClick"])}a(71);var r=a(698),c=a(8603);let h=null,u={};var p;const g=!1;let m=g;const f=["graph","chart","block","text"],y=["tree","table","list","text","graph","chart"];const w=window.location.host,b=`${window.location.protocol}//${w}`;let v={},k={},x={};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://${w}/ws`;l&&(s+="?"+l),p=new WebSocket(s),p.onopen=()=>e.statusConnect=!0,p.onmessage=t=>{m&&console.log("incoming message",t.data),h.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)},h=e}function _(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 A=!0;function q(e){A=e,e||(x={})}function S(e){if(A){let t=x[e.fullname];if(t)return t.styleSize;A=!1}return null}function D(e,t,a,l="complete"){let s=[e.pdata.name,e.data.name,l,t];_(s),u[s.toString()]=a}function z(e,t,a,l,s){let i=[e,t,s,a];_(i),u[i.toString()]=l}function j(){v={},x=k,A=!0,k={}}function $(e,t){Object.assign(e.data,t),e.updated=t.value,e.value=t.value}function E(e){for(let t of e){let e=t.path;if(e.length>1){e.reverse();let a=e.join("@"),l=k[a];$(l,t.data)}else{let a=v[e[0]];Object.assign(a.data,t.data)}}}function Z(e){let t=`${e.element}@${e.block}`,a=k[t];a.update?a.update(e):console.error()}function O(e){let t=[e.message.block,e.message.element,e.type,e.message.value].toString();if("string"==typeof e.value)h.error(e.value);else if(u[t]){let a=u[t];delete u[t],a(e.value,e.message)}else h.error(t+" doesnt exist in queryMap!")}function M(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 W(e=!1){V(document.documentElement.scrollWidth>window.innerWidth)}let N=(0,c.debounce)(W,50);function V(e){if(h.designCycle>=1)return;m&&console.log(`------------------recalc design ${h.designCycle}`),h.designCycle++;const t=H(e),a=K(e);for(let[l,s]of Object.entries(t)){let e=k[l],t=a[l];const[i,n]=t||[0,1];let o,d=e.geom(),r=d.el,c=e.pdata?e.pdata.name:e.name,h=v[c];for(let a of h.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=k[t];break}}else if(a.name==e.data.name){o=e;break}let u=i;u/=n;let p=e.only_fixed_elems?"":`width:${Math.ceil(r.clientWidth+u)}px`,g=`height:${Math.floor(s+e.he)}px;${p}`;g!=e.styleSize&&(e.styleSize=g),e.has_recalc=!1}}function H(e){const t=h.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?M(o):[[o]],d={};for(let[a,l]of Object.entries(v)){let e=l.$el.getBoundingClientRect(),t=e.bottom;d[a]=t-e.top}for(let a of n){let e=0,t=!0;for(let l of a)e+=d[l.name],v[l.name].only_fixed_elems||(t=!1);if(t){let e=v[a.slice(-1)[0].name];k[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,r.hu)(Array.isArray(t));const l=[];for(let[e,a]of Object.entries(k))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,d]of n)d in l?(l[o]=l[d],k[o].he=k[d].he):(l[d]=l[o],k[d].he=k[o].he);return l}function K(e){let t=null;const a=t?[t]:h.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=v[l.name].$el.getBoundingClientRect();e+=t.right-t.left+5}let t=l-e,a=[[]];for(let l of o){let e=[];for(let t of v[l.name].hlevelements)for(let l of a)e.push([...l,...t]);a=e}for(let l of a)n.push([t,l])}n.sort(((e,t)=>t[1].length-e[1].length));for(let[o,d]of n){let t=new Map;for(let e=0;e<d.length;e++){let a=d[e],l=a.parent_name,s=l||a.name,n=a.geom(),r=(a.data.width?a.data.width:n.scrollWidth)-(n.right-n.left);if(r>1&&!f.includes(a.type)&&o>0&&!i[a.fullname]){let e=o>r?r:o;o-=e,i[a.fullname]=[e,1]}if(s=a.parent_name,s){let e=v[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 d)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 d)i[e.fullname]||(i[e.fullname]=[0,1])}return i}const F=(0,l.aZ)({name:"menubar",methods:{send(){_(["root",null,"changed",this.name])}},props:{name:{type:String,required:!0},icon:{type:String,default:""}}});var Q=a(4260),U=a(3414),I=a(2035),R=a(4554),T=a(2350),P=a(7518),L=a.n(P);const B=(0,Q.Z)(F,[["render",d]]),Y=B;L()(F,"components",{QItem:U.Z,QItemSection:I.Z,QIcon:R.Z,QItemLabel:T.Z});const G={key:0,class:"row q-col-gutter-xs q-py-xs"},J={class:"q-col-gutter-xs"},X={key:0,class:"column q-col-gutter-xs"};function ee(e,t,a,s,i,n){const o=(0,l.up)("zone",!0),d=(0,l.up)("block");return e.data instanceof Array?((0,l.wg)(),(0,l.iD)("div",G,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.data,(e=>((0,l.wg)(),(0,l.iD)("div",J,[e instanceof Array?((0,l.wg)(),(0,l.iD)("div",X,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e,(e=>((0,l.wg)(),(0,l.j4)(o,{class:"q-col-gutter-xs q-py-xs",data:e},null,8,["data"])))),256))])):((0,l.wg)(),(0,l.j4)(d,{key:1,data:e},null,8,["data"]))])))),256))])):((0,l.wg)(),(0,l.j4)(d,{key:1,data:e.data},null,8,["data"]))}const te={class:"row no-wrap"},ae=["data","pdata"],le={key:0,class:"row"},se=["data","pdata"],ie={key:0,class:"row no-wrap"};function ne(e,t,a,i,n,o){const d=(0,l.up)("element"),r=(0,l.up)("q-icon"),c=(0,l.up)("q-scroll-area"),h=(0,l.up)("q-card");return(0,l.wg)(),(0,l.j4)(h,{class:"my-card q-ma-xs",style:(0,s.j5)(e.only_fixed_elems?e.styleSize:null),key:e.name},{default:(0,l.w5)((()=>[(0,l._)("div",te,[e.data.logo?((0,l.wg)(),(0,l.j4)(d,{key:0,class:"q-ma-sm",data:e.data.logo,pdata:e.data},null,8,["data","pdata"])):e.data.icon?((0,l.wg)(),(0,l.j4)(r,{key:1,class:"q-mt-sm q-ml-sm",style:{"padding-top":"6px"},size:"sm",name:e.data.icon},null,8,["name"])):(0,l.kq)("",!0),"_"!=e.name[0]?((0,l.wg)(),(0,l.iD)("p",{key:2,class:(0,s.C_)(["q-ma-sm",{"text-info":e.Dark.isActive,"text-cyan-10":!e.Dark.isActive}]),style:{"padding-top":"6px","font-size":"18px"}},(0,s.zw)(e.name),3)):(0,l.kq)("",!0),((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.tops,(t=>((0,l.wg)(),(0,l.j4)(d,{class:"q-ma-sm",data:t,pdata:e.data},null,8,["data","pdata"])))),256))]),e.data.scroll?((0,l.wg)(),(0,l.j4)(c,{key:0,style:(0,s.j5)(e.styleSize),"thumb-style":e.thumbStyle,"bar-style":e.barStyle},{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.data.value.slice(1),(t=>((0,l.wg)(),(0,l.iD)("div",{class:"column",data:t,pdata:e.data},[t instanceof Array?((0,l.wg)(),(0,l.iD)("div",le,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(t,(t=>((0,l.wg)(),(0,l.j4)(d,{class:"q-ma-xs",data:t,pdata:e.data},null,8,["data","pdata"])))),256))])):((0,l.wg)(),(0,l.j4)(d,{key:1,class:"q-ma-xs",data:t,pdata:e.data},null,8,["data","pdata"]))],8,ae)))),256))])),_:1},8,["style","thumb-style","bar-style"])):((0,l.wg)(!0),(0,l.iD)(l.HY,{key:1},(0,l.Ko)(e.data.value.slice(1),(t=>((0,l.wg)(),(0,l.iD)("div",{class:"column",data:t,pdata:e.data},[t instanceof Array?((0,l.wg)(),(0,l.iD)("div",ie,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(t,(t=>((0,l.wg)(),(0,l.j4)(d,{class:"q-ma-xs",data:t,pdata:e.data},null,8,["data","pdata"])))),256))])):((0,l.wg)(),(0,l.j4)(d,{key:1,class:"q-ma-xs",data:t,pdata:e.data},null,8,["data","pdata"]))],8,se)))),256))])),_:1},8,["style"])}var oe=a(8880);const de=e=>((0,l.dD)("data-v-763052dd"),e=e(),(0,l.Cn)(),e),re={key:4},ce={key:5,class:"{'bg-blue-grey-9': Dark.isActive}"},he={key:9},ue={key:12},pe=["width","height"],ge=["src"],me={key:19,class:"web-camera-container"},fe={class:"camera-button"},ye={key:0},we={key:1},be={class:"camera-loading"},ve=de((()=>(0,l._)("ul",{class:"loader-circle"},[(0,l._)("li"),(0,l._)("li"),(0,l._)("li")],-1))),ke=[ve],xe=["height"],Ce=["height"],_e={key:1,class:"camera-shoot"},Ae=de((()=>(0,l._)("img",{src:"https://img.icons8.com/material-outlined/50/000000/camera--v2.png"},null,-1))),qe=[Ae],Se={key:2,class:"camera-download"},De={key:20};function ze(e,t,a,i,n,o){const d=(0,l.up)("q-icon"),r=(0,l.up)("q-img"),c=(0,l.up)("q-select"),h=(0,l.up)("q-checkbox"),u=(0,l.up)("q-toggle"),p=(0,l.up)("q-badge"),g=(0,l.up)("q-slider"),m=(0,l.up)("q-btn"),f=(0,l.up)("q-btn-toggle"),y=(0,l.up)("utable"),w=(0,l.up)("linechart"),b=(0,l.up)("q-input"),v=(0,l.up)("q-tree"),k=(0,l.up)("q-scroll-area"),x=(0,l.up)("q-separator"),C=(0,l.up)("q-uploader"),_=(0,l.up)("sgraph"),A=(0,l.up)("q-tooltip"),q=(0,l.up)("q-spinner-ios");return"image"==e.type?((0,l.wg)(),(0,l.j4)(r,{key:0,src:e.data.url,"spinner-color":"blue",onClick:(0,oe.iM)(e.switchValue,["stop"]),fit:"cover",style:(0,s.j5)(e.elemSize)},{default:(0,l.w5)((()=>[e.data.label?((0,l.wg)(),(0,l.iD)("div",{key:0,class:"absolute-bottom-right text-subtitle2 custom-caption",onClick:t[0]||(t[0]=(0,oe.iM)(((...t)=>e.lens&&e.lens(...t)),["stop"]))},(0,s.zw)(e.data.label),1)):(0,l.kq)("",!0),e.value?((0,l.wg)(),(0,l.j4)(d,{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.kq)("",!0)])),_:1},8,["src","onClick","style"])):"select"==e.type?((0,l.wg)(),(0,l.j4)(c,{key:1,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.Nv)({_:2},[e.showname?{name:"prepend",fn:(0,l.w5)((()=>[(0,l._)("p",{class:(0,s.C_)(["text-subtitle1 q-ma-sm",{white:e.Dark.isActive,black:!e.Dark.isActive}])},(0,s.zw)(e.name),3)])),key:"0"}:void 0]),1032,["readonly","modelValue","options"])):"check"==e.type?((0,l.wg)(),(0,l.j4)(h,{key:2,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.wg)(),(0,l.j4)(u,{key:3,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.wg)(),(0,l.iD)("div",re,[(0,l.Wm)(p,{outline:"",dense:"",color:e.Dark.isActive?"blue-3":"blue-9"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.name)+": "+(0,s.zw)(e.value)+" ("+(0,s.zw)(e.data.options[0])+" to "+(0,s.zw)(e.data.options[1])+", Δ "+(0,s.zw)(e.data.options[2])+")",1)])),_:1},8,["color"]),(0,l.Wm)(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.wg)(),(0,l.iD)("div",ce,[e.showname?((0,l.wg)(),(0,l.j4)(m,{key:0,ripple:!1,color:"indigo-10",disable:"",label:e.name,"no-caps":""},null,8,["label"])):(0,l.kq)("",!0),(0,l.Wm)(f,{ref:"inputRef",modelValue:e.value,"onUpdate:modelValue":t[5]||(t[5]=t=>e.value=t),readonly:0==e.data.edit,class:(0,s.C_)({"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.wg)(),(0,l.j4)(y,{key:6,data:e.data,pdata:e.pdata,styleSize:e.styleSize},null,8,["data","pdata","styleSize"])):"chart"==e.type?((0,l.wg)(),(0,l.j4)(w,{key:7,data:e.data,pdata:e.pdata,styleSize:e.styleSize},null,8,["data","pdata","styleSize"])):"string"==e.type&&e.data.hasOwnProperty("complete")?((0,l.wg)(),(0,l.j4)(c,{key:8,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,oe.D2)(e.pressedEnter,["enter"])},null,8,["readonly","modelValue","options","onFilter","label","onKeydown"])):"string"==e.type&&0==e.data.edit?((0,l.wg)(),(0,l.iD)("div",he,[(0,l._)("p",{class:(0,s.C_)(["q-ma-sm",{white:e.Dark.isActive,black:!e.Dark.isActive}])},(0,s.zw)(e.value),3)])):"string"==e.type?((0,l.wg)(),(0,l.j4)(b,{key:10,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,oe.D2)(e.pressedEnter,["enter"]),readonly:0==e.data.edit},null,8,["modelValue","label","autogrow","onKeydown","readonly"])):"number"==e.type?((0,l.wg)(),(0,l.j4)(b,{key:11,modelValue:e.value,"onUpdate:modelValue":t[8]||(t[8]=t=>e.value=t),modelModifiers:{number:!0},label:e.name2show,ref:"inputRef",dense:"",onKeydown:(0,oe.D2)(e.pressedEnter,["enter"]),type:"number",readonly:0==e.data.edit},null,8,["modelValue","label","onKeydown","readonly"])):"tree"==e.type||"list"==e.type?((0,l.wg)(),(0,l.iD)("div",ue,[e.showname?((0,l.wg)(),(0,l.iD)("p",{key:0,class:(0,s.C_)(["text-subtitle1 q-ma-sm text-grey-7",{"text-white":e.Dark.isActive,"text-indigo-10":!e.Dark.isActive}])},(0,s.zw)(e.name),3)):(0,l.kq)("",!0),(0,l.Wm)(k,{style:(0,s.j5)(e.styleSize),"thumb-style":e.thumbStyle,"bar-style":e.barStyle,ref:"scroller"},{default:(0,l.w5)((()=>[(0,l.Wm)(v,{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.wy)(((0,l.wg)(),(0,l.iD)("textarea",{key:13,class:(0,s.C_)(["textarea",{"bg-grey-10":e.Dark.isActive,"text-white":e.Dark.isActive}]),"onUpdate:modelValue":t[11]||(t[11]=t=>e.value=t),filled:"",type:"textarea",style:(0,s.j5)(e.elemSize),onKeydown:t[12]||(t[12]=(0,oe.D2)(((...t)=>e.pressedEnter&&e.pressedEnter(...t)),["enter"]))},null,38)),[[oe.nr,e.value]]):"line"==e.type?((0,l.wg)(),(0,l.j4)(x,{key:14,color:"green"})):"video"==e.type?((0,l.wg)(),(0,l.iD)("video",{key:e.fullname,controls:"",width:e.data.width,height:e.data.height},[(0,l._)("source",{src:e.data.url,type:"video/mp4"},null,8,ge)],8,pe)):"uploader"==e.type?((0,l.wg)(),(0,l.j4)(C,{key:16,label:e.name,"auto-upload":"",thumbnails:"",url:e.host_path,onUploaded:e.updateDom,onAdded:e.onAdded,style:(0,s.j5)(e.elemSize),ref:"uploaderRef",flat:"",class:(0,s.C_)({"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.wg)(),(0,l.j4)(C,{key:17,label:e.name,"auto-upload":"",thumbnails:"",url:e.host_path,onUploaded:e.updateDom,onAdded:e.onAdded,ref:"uploaderRef",flat:"",class:(0,s.C_)({"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.wg)(),(0,l.j4)(_,{key:18,data:e.data,pdata:e.pdata,styleSize:e.elemSize},null,8,["data","pdata","styleSize"])):"camera"==e.type?((0,l.wg)(),(0,l.iD)("div",me,[(0,l._)("div",fe,[(0,l._)("button",{class:(0,s.C_)(["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.wg)(),(0,l.iD)("span",we,"Close Camera")):((0,l.wg)(),(0,l.iD)("span",ye,"Open Camera"))],2)]),(0,l.wy)((0,l._)("div",be,ke,512),[[oe.F8,e.isCameraOpen&&e.isLoading]]),e.isCameraOpen?(0,l.wy)(((0,l.wg)(),(0,l.iD)("div",{key:0,class:(0,s.C_)(["camera-box",{flash:e.isShotPhoto}])},[(0,l._)("div",{class:(0,s.C_)(["camera-shutter",{flash:e.isShotPhoto}])},null,2),(0,l.wy)((0,l._)("video",{ref:"camera",width:450,height:337.5,autoplay:""},null,8,xe),[[oe.F8,!e.isPhotoTaken]]),(0,l.wy)((0,l._)("canvas",{id:"photoTaken",ref:"canvas",width:450,height:337.5},null,8,Ce),[[oe.F8,e.isPhotoTaken]])],2)),[[oe.F8,!e.isLoading]]):(0,l.kq)("",!0),e.isCameraOpen&&!e.isLoading?((0,l.wg)(),(0,l.iD)("div",_e,[(0,l._)("button",{class:"button",type:"button",onClick:t[14]||(t[14]=(...t)=>e.takePhoto&&e.takePhoto(...t))},qe)])):(0,l.kq)("",!0),e.isPhotoTaken&&e.isCameraOpen?((0,l.wg)(),(0,l.iD)("div",Se,[(0,l.Wm)(m,{onClick:e.downloadImage,label:"Send"},null,8,["onClick"])])):(0,l.kq)("",!0)])):""!=e.showname?((0,l.wg)(),(0,l.iD)("div",De,[(0,l.Wm)(m,{ref:"inputRef","no-caps":"",disable:0==e.data.edit,class:(0,s.C_)({"bg-blue-grey-8":e.Dark.isActive}),label:e.name,icon:e.data.icon,onClick:e.sendValue},{default:(0,l.w5)((()=>[e.data.tooltip?((0,l.wg)(),(0,l.j4)(A,{key:0,class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.data.tooltip),1)])),_:1})):(0,l.kq)("",!0)])),_:1},8,["disable","class","label","icon","onClick"])])):e.data.spinner?((0,l.wg)(),(0,l.j4)(m,{key:22,ref:"inputRef","no-caps":"",dense:"",disable:0==e.data.edit,round:"",class:(0,s.C_)({"bg-blue-grey-8":e.Dark.isActive}),onClick:e.sendValue},{default:(0,l.w5)((()=>[(0,l.Wm)(q,{color:e.Dark.isActive?"white":"black"},null,8,["color"]),e.data.tooltip?((0,l.wg)(),(0,l.j4)(A,{key:0,class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.data.tooltip),1)])),_:1})):(0,l.kq)("",!0)])),_:1},8,["disable","class","onClick"])):((0,l.wg)(),(0,l.j4)(m,{key:21,ref:"inputRef","no-caps":"",disable:0==e.data.edit,dense:"",round:"",class:(0,s.C_)({"bg-blue-grey-8":e.Dark.isActive}),icon:e.data.icon,onClick:e.sendValue},{default:(0,l.w5)((()=>[e.data.tooltip?((0,l.wg)(),(0,l.j4)(A,{key:0,class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.data.tooltip),1)])),_:1})):(0,l.kq)("",!0)])),_:1},8,["disable","class","icon","onClick"]))}const je={class:"text-h6"},$e={key:0},Ee={class:"row"},Ze=["onClick"],Oe=["onClick"];function Me(e,t,a,i,n,o){const d=(0,l.up)("q-tooltip"),r=(0,l.up)("q-btn"),c=(0,l.up)("q-icon"),h=(0,l.up)("q-input"),u=(0,l.up)("q-th"),p=(0,l.up)("q-tr"),g=(0,l.up)("q-checkbox"),m=(0,l.up)("q-select"),f=(0,l.up)("q-td"),y=(0,l.up)("q-table");return(0,l.wg)(),(0,l.j4)(y,{"virtual-scroll":"",dense:e.data.dense,style:(0,s.j5)(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.w5)((()=>["link"in e.data?((0,l.wg)(),(0,l.j4)(r,{key:0,class:(0,s.C_)(["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.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.data.filter?"Turn off filter":"Turn on filter"),1)])),_:1})])),_:1},8,["class","icon","onClick"])):(0,l.kq)("",!0),(0,l._)("div",je,(0,s.zw)(e.name),1)])),"top-right":(0,l.w5)((()=>[!1!==e.data.tools?((0,l.wg)(),(0,l.iD)("div",$e,[(0,l._)("div",Ee,[(0,l.Wm)(h,{modelValue:e.search,"onUpdate:modelValue":t[1]||(t[1]=t=>e.search=t),label:"Search",dense:"",ref:"searchField"},(0,l.Nv)({append:(0,l.w5)((()=>[""!=e.search?((0,l.wg)(),(0,l.j4)(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.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Reset search ")])),_:1})])),_:1})):(0,l.kq)("",!0)])),_:2},[""==e.search?{name:"prepend",fn:(0,l.w5)((()=>[(0,l.Wm)(c,{name:"search",size:"xs"})])),key:"0"}:void 0]),1032,["modelValue"]),(0,l._)("div",null,[(0,l.Wm)(r,{class:(0,s.C_)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"select_all","no-caps":"",onClick:e.showSelected},{default:(0,l.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Show selected ")])),_:1})])),_:1},8,["class","onClick"]),(0,l.Wm)(r,{class:(0,s.C_)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"deselect","no-caps":"",onClick:e.deselectAll},{default:(0,l.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Deselect all")])),_:1})])),_:1},8,["class","onClick"]),!1!==e.data.multimode?((0,l.wg)(),(0,l.j4)(r,{key:0,class:(0,s.C_)(["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.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Multi-single select mode ")])),_:1})])),_:1},8,["class","icon","onClick"])):(0,l.kq)("",!0),e.editable?((0,l.wg)(),(0,l.j4)(r,{key:1,class:(0,s.C_)(["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.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Edit mode")])),_:1})])),_:1},8,["class","icon","onClick"])):(0,l.kq)("",!0),e.editable&&"append"in e.data?((0,l.wg)(),(0,l.j4)(r,{key:2,class:(0,s.C_)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"add","no-caps":"",onClick:e.append},{default:(0,l.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(e.data.filter?"Add a new entity+link":"Add a new row"),1)])),_:1})])),_:1},8,["class","onClick"])):(0,l.kq)("",!0),"delete"in e.data?((0,l.wg)(),(0,l.j4)(r,{key:3,class:(0,s.C_)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"delete_forever","no-caps":"",onClick:e.delSelected},{default:(0,l.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Delete selected ")])),_:1})])),_:1},8,["class","onClick"])):(0,l.kq)("",!0),"view"in e.data?((0,l.wg)(),(0,l.j4)(r,{key:4,class:(0,s.C_)(["q-ml-xs",{"bg-blue-grey-8":e.Dark.isActive}]),dense:"",rounded:"",icon:"insights","no-caps":"",onClick:e.chart},{default:(0,l.w5)((()=>[(0,l.Wm)(d,{class:"text-body2"},{default:(0,l.w5)((()=>[(0,l.Uk)("Draw the chart")])),_:1})])),_:1},8,["class","onClick"])):(0,l.kq)("",!0)])])])):(0,l.kq)("",!0)])),header:(0,l.w5)((t=>[(0,l.Wm)(p,{props:t},{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(t.cols,(a=>((0,l.wg)(),(0,l.j4)(u,{class:(0,s.C_)(["text-italic",{"text-grey-9":!e.Dark.isActive,"text-teal-3":e.Dark.isActive}]),key:a.name,props:t},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(a.label),1)])),_:2},1032,["class","props"])))),128))])),_:2},1032,["props"])])),body:(0,l.w5)((t=>[(0,l.Wm)(p,{props:t,onClick:e=>t.selected=!t.selected},{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.columns,((a,i)=>((0,l.wg)(),(0,l.j4)(f,{key:a.name,props:t},{default:(0,l.w5)((()=>["boolean"==typeof t.row[a.name]?((0,l.wg)(),(0,l.j4)(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.wg)(),(0,l.j4)(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.wg)(),(0,l.j4)(h,{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.wg)(),(0,l.iD)("div",{key:3,onClick:a=>e.select(t.row,i)},"-- ",8,Ze)):((0,l.wg)(),(0,l.iD)("div",{key:4,onClick:a=>e.select(t.row,i)},(0,s.zw)(t.row[a.name]),9,Oe))])),_:2},1032,["props"])))),128))])),_:2},1032,["props","onClick"])])),_:1},8,["dense","style","filter","title","rows","columns","selection","selected"])}var We=a(1959),Ne=a(9058);function Ve(e,t){return e.length===t.length&&e.every(((e,a)=>t[a]&&e.iiid==t[a].iiid))}let He="✘";function Ke(e,t){let a=[];const l=e.headers,s=l.length,i=t.length;for(var n=0;n<i;n++){const i={},d=t[n];for(var o=0;o<s;o++)null!=d[o]&&void 0!=d[o]&&(i[l[o]]=d[o]);let r=d.length;i.iiid=s<r||e.id?d[r-1]:n,a.push(i)}return a}function Fe(e,t){let a=[],{limit:l,length:s,data:i}=t.rows;s&&a.splice(0,0,...Ke(t,i)),a.length=s,a=(0,We.qj)(a);let n=[];function o(l,s){switch(l.update){case"update":a[l.index]=Ke(t,[l.data])[0];break;case"updates":if(l.data){let e=l.data.length;a.splice(l.index,e,...Ke(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&&z(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]=Ke(t,[l.data])[0],this.length++;break;case"adds":a.splice(l.index,0,...Ke(t,l.data)),this.length+=l.data.length}}function d(a){-1==n.indexOf(a)&&(n.length>5&&n.splice(0,1),n.push(a),1==n.length&&z(e,t.name,a,o,"get"))}h.update=o;let r=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]||d(a)}return Array.prototype.slice.apply(e,a)};if(e[t]||isNaN(t))return e[t];{let e=(t/l|0)*l;return void d(e)}}});return r}const Qe=(0,l.aZ)({name:"utable",setup(e){const{data:t,pdata:a}=(0,We.BK)(e);let s=(0,l.Fl)((()=>{let e=t.value;return e.id?Fe(a.value.name,e):Ke(e,e.rows)})),i=()=>{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},n=i(),o=(0,We.iH)(n),d=(0,We.iH)(n),r=(0,We.iH)(!Array.isArray(t.value.value)),c=(e,l)=>{_([a.value.name,t.value.name,e,l])},h=(0,l.Fl)((()=>t.value.value));return(0,l.YP)(s,((e,t)=>{d.value=i(),o.value=d.value})),(0,l.YP)(t,((e,a)=>{m&&console.log("data update",a.name),d.value=i(),o.value=d.value,r.value=!Array.isArray(t.value.value)})),{rows:s,selected:d,singleMode:r,sendMessage:c,datavalue:h,updated:o}},data(){return{Dark:Ne.Z,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(console.log(e,t,a,e[t]),this.data.editing){let l=this.data.headers.indexOf(t);this.cedit=a,e[t]=!e[t],this.sendMessage("modify",{value:e[t],id:e.iiid,delta:this.rows.indexOf(e),cell:l})}},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;let s=this.rows.indexOf(l);s<0&&console.log("Losted row in rows!"),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){D(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&&D(this,this.search,(function(l){if(!Array.isArray(l))return h.error(l);m&&console.log("added row",l),a.search="",l=Ke(a.data,[l])[0],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=>(null===e||void 0===e?void 0: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=Object.keys(t).find((e=>{var a;return(null===(a=t[e])||void 0===a?void 0:a.iiid)===s}));e.scrollTo(i),(0,l.Y3)((()=>{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(),k[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)return void h.error("Rows are not selected!");this.sendMessage("delete",this.value);let e=this.rows;if(this.singleMode){let t=this.selected[0].iiid;this.data.id&&(t=e.findIndex((e=>e.iiid==t))),this.selected=[],e.splice(t,1)}else{this.selected.length>1&&this.selected.sort(((e,t)=>t.iiid-e.iiid));let t=this.selected.map((t=>e.findIndex((e=>e.iiid==t.iiid))));this.selected=[];for(let a of t)e.splice(a,1)}}},watch:{selected(e){const t=this.data;Ve(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(He)))},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 Ue=a(9267),Ie=a(2165),Re=a(8870),Te=a(4842),Pe=a(8186),Le=a(2414),Be=a(3884),Ye=a(5735),Ge=a(7208);const Je=(0,Q.Z)(Qe,[["render",Me]]),Xe=Je;function et(e,t,a,i,n,o){return(0,l.wg)(),(0,l.iD)("div",{ref:"graph",style:(0,s.j5)(a.styleSize),id:"graph"},null,4)}L()(Qe,"components",{QTable:Ue.Z,QBtn:Ie.Z,QTooltip:Re.Z,QInput:Te.Z,QIcon:R.Z,QTr:Pe.Z,QTh:Le.Z,QTd:Be.Z,QCheckbox:Ye.Z,QSelect:Ge.Z});var tt=a(130),at=a.n(tt),lt=a(309);var st=a(5154),it=a.n(st),nt=a(4150),ot=a.n(nt);let dt="#091159",rt={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"};const ct={name:"sgraph",props:{data:{type:Object,required:!0},pdata:{type:Object,required:!0},styleSize:String},data(){return{Dark:Ne.Z,s:null,state:{searchQuery:""},selectedNodes:[],selectedEdges:[],graph:null,fa2start:null,fa2stop:null,fa2run:null}},methods:{sendMessage(e,t){_([this.pdata["name"],this.data["name"],e,t])},refresh(){let e=this.graph();const t=ot().inferSettings(e);let a=new(it())(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 h=0;h<l.length;h++){if(!l[h])continue;let e=Object.assign({},l[h]);void 0==e.id&&(e.id=h),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,h);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 d=[],r=new Map,c=Array(i.length).fill(0);for(let h=0;h<e.edges.length;h++){let t=Object.assign({},e.edges[h]),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=h),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]++,r.has(s)?r.get(s).push(l):r.set(s,[l]);let e=d.indexOf(l),i=d.indexOf(s);if(-1==e&&(e=d.length,d.push(l)),-1==i&&(i=d.length,d.push(s)),i<e){let t=d[e];d[e]=d[i],d[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:rt.defaultEdgeColor,i.color=dt):t.color&&(i.color=t.color),t.label&&(i.label=t.label)}if(a)for(let h=0;h<d.length;h++){let e=d[h];if(r.has(e))for(let t of r.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 lt.MultiDirectedGraph;this.graph=()=>e;let t=this.$refs.graph;this.s=new(at())(e,t,rt);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=dt){let l=e.getEdgeAttributes(t);l.color!=a&&(l.ocolor||(l.ocolor=l.color?l.color:rt.defaultEdgeColor),e.setEdgeAttribute(t,"color",a))}function n(t,a=dt){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=Ne.Z.isActive?"#00838F":"#000",a.on("clickNode",(function(t){let s=t.node;if(!h.shiftKey){for(let e of l.selectedEdges)n(e);l.selectedEdges=[]}if(l.selectedNodes.includes(s))if(e.setNodeAttribute(s,"highlighted",!1),h.shiftKey){let e=l.selectedNodes.indexOf(s);-1!=e&&l.selectedNodes.array.splice(e,1)}else l.selectedNodes=[];else{if(!h.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(!h.shiftKey){for(let t of l.selectedNodes)e.setNodeAttribute(t,"highlighted",!1);l.selectedNodes=[]}if(l.selectedEdges.includes(t))if(n(t),h.shiftKey){let e=l.selectedEdges.indexOf(t);-1!=e&&l.selectedEdges.array.splice(e,1)}else l.selectedEdges=[];else{if(!h.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",dt):n(a.edge,"#808000"):a.source==t&&(l.selectedEdges.includes(a.edge)?e.setEdgeAttribute(a.edge,"color",dt):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 d=null,r=!1;a.on("downNode",(t=>{r=!0,d=t.node,e.setNodeAttribute(d,"highlighted",!0)})),a.getMouseCaptor().on("mousemovebody",(t=>{if(!r||!d)return;const l=a.viewportToGraph(t);e.setNodeAttribute(d,"x",l.x),e.setNodeAttribute(d,"y",l.y),t.preventSigmaDefault(),t.original.preventDefault(),t.original.stopPropagation()})),a.getMouseCaptor().on("mouseup",(()=>{d&&e.removeNodeAttribute(d,"highlighted"),r=!1,d=null})),a.getMouseCaptor().on("mousedown",(()=>{a.getCustomBBox()||a.setCustomBBox(a.getBBox())})),this.load(this.data)}},ht=(0,Q.Z)(ct,[["render",et]]),ut=ht;function pt(e,t,a,i,n,o){const d=(0,l.up)("v-chart");return(0,l.wg)(),(0,l.iD)("div",{style:(0,s.j5)(a.styleSize?a.styleSize:o.currentStyle())},[(0,l.Wm)(d,{ref:"chart","manual-update":!0,onClick:o.clicked,autoresize:!0},null,8,["onClick"])],4)}var gt=a(9642),mt=a(6938),ft=a(1006),yt=a(6080),wt=a(3526),bt=a(763),vt=a(546),kt=a(6902),xt=a(2826),Ct=a(5256),_t=a(3825),At=a(8825);(0,bt.D)([mt.N,ft.N,wt.N,yt.N]),(0,bt.D)([vt.N,kt.N,xt.N,Ct.N,_t.N]);let qt=["","#80FFA5","#00DDFF","#37A2FF","#FF0087","#FFBF00","rgba(128, 255, 165)","rgba(77, 119, 255)"];const St={name:"linechart",components:{VChart:gt.ZP},props:{data:Object,pdata:Object,styleSize:String},data(){const e=(0,At.Z)();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,h.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(),_([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(),k[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:qt[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)}))}},Dt=(0,Q.Z)(St,[["render",pt]]),zt=Dt;let jt={right:"4px",borderRadius:"7px",backgroundColor:"#027be3",width:"4px",opacity:.75},$t={right:"2px",borderRadius:"9px",backgroundColor:"#027be3",width:"8px",opacity:.2};function Et(e){let t=new FormData;t.append("image",e);let a=new XMLHttpRequest;a.open("POST",b,!0),a.onload=function(){200===this.status?console.log(this.response):console.error(a)},a.send(t)}const Zt=(0,l.aZ)({name:"element",components:{utable:Xe,sgraph:ut,linechart:zt},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){_([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},complete(e,t,a){D(this,e,(e=>t((()=>{this.options=e}))))},lens(){h.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(Et,"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(){k[this.fullname]=this,this.showSelected(),m&&console.log("updated",this.fullname)},mounted(){let e=this.data;k[this.fullname]=this,e.id&&"table"==e.type&&!e.filter&&(this.update=h.update),e.focus&&this.$refs.inputRef.$el.focus(),this.showSelected(),m&&console.log("mounted",this.fullname)},data(){return{Dark:Ne.Z,value:this.data.value,styleSize:A?S(this):null,has_recalc:!0,host_path:b,options:[],expandedKeys:[],thumbStyle:jt,barStyle:$t,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},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();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),h.screen.reload&&"tree"==this.type&&this.$refs.tree&&this.$refs.tree.expandAll();let a=this.data;this.value=a.value,this.updated=this.value,k[this.fullname]=this}}});var Ot=a(4027),Mt=a(8886),Wt=a(9721),Nt=a(2064),Vt=a(8761),Ht=a(7704),Kt=a(5551),Ft=a(5869),Qt=a(1745),Ut=a(8506);const It=(0,Q.Z)(Zt,[["render",ze],["__scopeId","data-v-763052dd"]]),Rt=It;L()(Zt,"components",{QImg:Ot.Z,QIcon:R.Z,QSelect:Ge.Z,QCheckbox:Ye.Z,QToggle:Mt.Z,QBadge:Wt.Z,QSlider:Nt.Z,QBtn:Ie.Z,QBtnToggle:Vt.Z,QInput:Te.Z,QScrollArea:Ht.Z,QTree:Kt.Z,QSeparator:Ft.Z,QUploader:Qt.Z,QTooltip:Re.Z,QSpinnerIos:Ut.Z});const Tt=(0,l.aZ)({name:"block",components:{element:Rt},data(){return{Dark:Ne.Z,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(v).length,this.name,this.$el.getBoundingClientRect())},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:k[`${l.name}@${this.name}`].$el.getBoundingClientRect().right}}else if(a===e)return t;return 0}},mounted(){v[this.data.name]=this,(this.expanding||this.data.width)&&(k[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},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[[k[this.fullname]]];let e=[];for(let t of this.data.value)if(Array.isArray(t)){let a=t.map((e=>k[`${e.name}@${this.name}`])).filter((e=>e.expanding));a.length&&e.push(a)}else{let a=k[`${t.name}@${this.name}`];a.expanding&&e.push([a])}return e},only_fixed_elems(){if(this.data.scroll)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),v[this.name]=this,this.expanding&&(k[this.fullname]=this)}}});var Pt=a(151);const Lt=(0,Q.Z)(Tt,[["render",ne]]),Bt=Lt;function Yt(){let e=A&&k.size==x.size;if(e)for(let[t,a]of Object.entries(k))if(!x[t]){e=!1;break}e||(V(document.documentElement.scrollWidth>window.innerWidth),(0,l.Y3)((()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{h.visible(!0)}))}))})))}L()(Tt,"components",{QCard:Pt.Z,QIcon:R.Z,QScrollArea:Ht.Z});const Gt=(0,l.aZ)({name:"zone",components:{block:Bt},props:{data:Object},updated(e){(0,l.Y3)((()=>{requestAnimationFrame((()=>{requestAnimationFrame(Yt)}))}))}}),Jt=(0,Q.Z)(Gt,[["render",ee]]),Xt=Jt,ea={class:"row q-gutter-sm row-md"};function ta(e,t,a,i,n,o){const d=(0,l.up)("block"),r=(0,l.up)("q-item-label"),c=(0,l.up)("q-space"),h=(0,l.up)("q-btn"),u=(0,l.up)("q-card"),p=(0,l.up)("q-dialog");return(0,l.wg)(),(0,l.j4)(p,{ref:"dialog",onHide:o.onDialogHide,onKeyup:(0,oe.D2)(o.pressedEnter,["enter"])},{default:(0,l.w5)((()=>[(0,l.Wm)(u,{class:"q-dialog-plugin q-pa-md items-start q-gutter-md",bordered:"",style:(0,s.j5)(a.data.internal?"width: 800px; max-width: 80vw;":"")},{default:(0,l.w5)((()=>[a.data?((0,l.wg)(),(0,l.j4)(d,{key:0,data:a.data},null,8,["data"])):(0,l.kq)("",!0),(0,l.Wm)(r,{class:"text-h6"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,s.zw)(a.data.text?a.data.text:""),1)])),_:1}),(0,l._)("div",ea,[(0,l.Wm)(c),((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(a.commands,(e=>((0,l.wg)(),(0,l.j4)(h,{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 aa={props:{data:Object,commands:Array},components:{block:Bt},emits:["ok","hide"],data(){return{closed:!1}},methods:{show(){this.$refs.dialog.show(),h.dialog=this},message4(e){return[this.data["name"],null,"changed",e]},sendMessage(e){this.data.internal||_(this.message4(e)),this.closed=!0,this.hide()},hide(){this.$refs.dialog.hide(),h.dialog=null},onDialogHide(){this.$emit("hide"),this.closed||this.data.internal||_(this.message4(null))},pressedEnter(){this.sendMessage(this.commands[0])},onOKClick(){this.$emit("ok"),this.hide()},onCancelClick(){this.hide()}}};var la=a(5926),sa=a(2025);const ia=(0,Q.Z)(aa,[["render",ta]]),na=ia;L()(aa,"components",{QDialog:la.Z,QCard:Pt.Z,QItemLabel:T.Z,QSpace:sa.Z,QBtn:Ie.Z});var oa=a(589);let da="theme";try{Ne.Z.set(oa.Z.getItem(da))}catch(ka){}let ra=null,ca=["complete","append","get"];const ha=(0,l.aZ)({name:"MainLayout",data(){return{leftDrawerOpen:!1,Dark:Ne.Z,menu:[],tab:"",tooldata:{name:"toolbar"},localServer:!0,statusConnect:!1,screen:{blocks:[],toolbar:[]},visibility:!0,designCycle:0,shiftKey:!1}},components:{menubar:Y,zone:Xt,element:Rt},created(){C(this)},unmounted(){window.removeEventListener("resize",this.onResize)},computed:{left_toolbar(){return this.screen.toolbar.filter((e=>!e.right))},right_toolbar(){return this.screen.toolbar.filter((e=>e.right))}},methods:{switchTheme(){Ne.Z.set(!Ne.Z.isActive),oa.Z.set(da,Ne.Z.isActive)},toggleLeftDrawer(){this.leftDrawerOpen=!this.leftDrawerOpen},tabclick(e){_(["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,N()},lens(e){let t={title:"Photo lens",message:e.text,cancel:!0,persistent:!0,component:na},{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==ra?(l={group:!1,timeout:0,spinner:!0,type:"info",message:e||"Progress..",position:"top",color:"secondary"},ra=this.$q.notify(l)):null==e?(ra(),ra=null):(l={caption:e},ra(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)j(),this.screen.name!=e.name?(q(!1),m||this.visible(!1)):e.reload&&q(!1),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=na,t.componentProps={data:e,commands:e.commands},this.$q.dialog(t)}else if(e.update)Z(e);else if(ca.includes(e.type))O(e);else if("action"==e.type&&"close"==e.value)this.dialog&&(this.dialog.data.internal=!0),this.dialog.hide();else{let t=e.updates&&e.updates.length;t&&E(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){!ra||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&&W(!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 ua=a(9214),pa=a(3812),ga=a(9570),ma=a(7547),fa=a(3269),ya=a(2652),wa=a(4379);const ba=(0,Q.Z)(ha,[["render",o]]),va=ba;L()(ha,"components",{QLayout:ua.Z,QHeader:pa.Z,QToolbar:ga.Z,QBtn:Ie.Z,QItemLabel:T.Z,QTabs:ma.Z,QTab:fa.Z,QSpace:sa.Z,QTooltip:Re.Z,QPageContainer:ya.Z,QPage:wa.Z})}}]);