@kedem/okdb 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/bin/okdb.js +1 -1
  2. package/keys/public.pem +3 -0
  3. package/okdb.js +1 -1
  4. package/package.json +2 -2
  5. package/public/admin-app.js +1 -1
  6. package/public/components/admin-route-host.ok.js +1 -1
  7. package/public/components/env-picker.ok.js +1 -1
  8. package/public/components/field-path-input.ok.js +1 -1
  9. package/public/components/geo-map.ok.js +1 -1
  10. package/public/components/ok-cron-input.ok.js +1 -1
  11. package/public/components/ok-dropzone.ok.js +1 -1
  12. package/public/components/ok-js-input.ok.js +1 -1
  13. package/public/components/ok-json-input.ok.js +1 -1
  14. package/public/components/ok-text-monaco-input.ok.js +1 -1
  15. package/public/components/theme-toggle.ok.js +1 -1
  16. package/public/login-app.js +1 -1
  17. package/public/modules/ok.js +1 -1
  18. package/public/sections/api/parts/api-endpoint.ok.js +1 -1
  19. package/public/sections/auth/modals/create-token-modal.ok.js +1 -1
  20. package/public/sections/auth/modals/edit-token-modal.ok.js +1 -1
  21. package/public/sections/auth/modals/perm-info-popover.ok.js +1 -1
  22. package/public/sections/auth/parts/token-detail.ok.js +1 -1
  23. package/public/sections/auth/parts/token-list.ok.js +1 -1
  24. package/public/sections/db/modals/add-item-modal.ok.js +1 -1
  25. package/public/sections/db/modals/create-env-modal.ok.js +1 -1
  26. package/public/sections/db/modals/create-fts-modal.ok.js +1 -1
  27. package/public/sections/db/modals/create-index-modal.ok.js +1 -1
  28. package/public/sections/db/modals/create-pipeline-modal.ok.js +1 -1
  29. package/public/sections/db/modals/demo-env-modal.ok.js +1 -1
  30. package/public/sections/db/modals/remove-env-modal.ok.js +1 -1
  31. package/public/sections/db/modals/schema-edit-modal.ok.js +1 -1
  32. package/public/sections/db/parts/db-overview.ok.js +1 -1
  33. package/public/sections/db/parts/db-pipelines-panel.ok.js +1 -1
  34. package/public/sections/db/parts/edit-row.ok.js +1 -1
  35. package/public/sections/db/parts/tm-timeline.ok.js +1 -1
  36. package/public/sections/db/parts/type-changelog.ok.js +1 -1
  37. package/public/sections/db/parts/type-list.ok.js +1 -1
  38. package/public/sections/db/parts/type-pipelines-tab.ok.js +1 -1
  39. package/public/sections/db/parts/type-schema-tab.ok.js +1 -1
  40. package/public/sections/db/parts/type-viewer.ok.js +1 -1
  41. package/public/sections/db/parts/type-violations-tab.ok.js +1 -1
  42. package/public/sections/embeddings/modals/register-model-modal.ok.js +1 -1
  43. package/public/sections/embeddings/parts/embed-create-panel.ok.js +1 -1
  44. package/public/sections/embeddings/parts/embed-embedder-panel.ok.js +1 -1
  45. package/public/sections/embeddings/parts/embed-engine-declaration-editor.ok.js +1 -1
  46. package/public/sections/embeddings/parts/embed-engine-list.ok.js +1 -1
  47. package/public/sections/embeddings/parts/embed-indexer-panel.ok.js +1 -1
  48. package/public/sections/embeddings/parts/embed-lifecycle-bar.ok.js +1 -1
  49. package/public/sections/embeddings/parts/embed-model-catalog.ok.js +1 -1
  50. package/public/sections/embeddings/parts/embed-overview.ok.js +1 -1
  51. package/public/sections/embeddings/parts/embed-search-panel.ok.js +1 -1
  52. package/public/sections/embeddings/parts/embed-worker-panel.ok.js +1 -1
  53. package/public/sections/embeddings/parts/embeddings-engine-panel.ok.js +1 -1
  54. package/public/sections/embeddings/parts/engines-overview.ok.js +1 -1
  55. package/public/sections/embeddings/parts/pipeline-create-panel.ok.js +1 -1
  56. package/public/sections/engines/engine-panel-shared-style.js +1 -1
  57. package/public/sections/engines/engine-ui-utils.js +1 -1
  58. package/public/sections/engines/modals/engine-modal.ok.js +1 -1
  59. package/public/sections/engines/parts/engine-declaration-editor.ok.js +1 -1
  60. package/public/sections/engines/parts/engine-lifecycle-actions.ok.js +1 -1
  61. package/public/sections/engines/parts/engine-panel-shell.ok.js +1 -1
  62. package/public/sections/engines/parts/engine-resource-card.ok.js +1 -1
  63. package/public/sections/engines/parts/engine-row-item.ok.js +1 -1
  64. package/public/sections/engines/parts/generic-engine-panel.ok.js +1 -1
  65. package/public/sections/files/parts/files-blob-status.ok.js +1 -1
  66. package/public/sections/files/parts/files-collection-list.ok.js +1 -1
  67. package/public/sections/files/parts/files-collection-panel.ok.js +1 -1
  68. package/public/sections/files/parts/files-file-list.ok.js +1 -1
  69. package/public/sections/files/parts/files-overview.ok.js +1 -1
  70. package/public/sections/files/parts/files-path-browser.ok.js +1 -1
  71. package/public/sections/files/parts/files-upload-panel.ok.js +1 -1
  72. package/public/sections/functions/modals/function-modal.ok.js +1 -1
  73. package/public/sections/functions/parts/function-detail.ok.js +1 -1
  74. package/public/sections/functions/parts/function-logs.ok.js +1 -1
  75. package/public/sections/functions/parts/function-runner.ok.js +1 -1
  76. package/public/sections/functions/parts/functions-list.ok.js +1 -1
  77. package/public/sections/license/parts/license-panel.ok.js +1 -1
  78. package/public/sections/queue/modals/create-bucket-modal.ok.js +1 -1
  79. package/public/sections/queue/modals/edit-bucket-modal.ok.js +1 -1
  80. package/public/sections/queue/modals/edit-job-modal.ok.js +1 -1
  81. package/public/sections/queue/modals/enqueue-job-modal.ok.js +1 -1
  82. package/public/sections/queue/modals/job-type-modal.ok.js +1 -1
  83. package/public/sections/queue/parts/ok-job-form.ok.js +1 -1
  84. package/public/sections/queue/parts/queue-buckets.ok.js +1 -1
  85. package/public/sections/queue/parts/queue-job-types.ok.js +1 -1
  86. package/public/sections/queue/parts/queue-jobs.ok.js +1 -1
  87. package/public/sections/queue/parts/queue-types.ok.js +1 -1
  88. package/public/sections/queue/parts/queue-workers.ok.js +1 -1
  89. package/public/sections/sync/parts/sync-node-detail.ok.js +1 -1
  90. package/public/sections/sync/parts/sync-retention.ok.js +1 -1
  91. package/public/sections/sync/parts/sync-topology.ok.js +1 -1
  92. package/public/sections/system/modals/data-ops-modal.ok.js +1 -1
  93. package/public/sections/system/parts/system-api-panel.ok.js +1 -1
  94. package/public/sections/system/parts/system-auth-panel.ok.js +1 -1
  95. package/public/sections/system/parts/system-log-history.ok.js +1 -1
  96. package/public/sections/system/parts/system-log.ok.js +1 -1
  97. package/public/sections/system/parts/system-status.ok.js +1 -1
  98. package/public/sections/system/parts/system-sync-panel.ok.js +1 -1
  99. package/public/sections/views/modals/create-view-modal.ok.js +1 -1
  100. package/public/sections/views/parts/view-detail.ok.js +1 -1
  101. package/public/sections/views/parts/views-list.ok.js +1 -1
  102. package/public/sections/views/parts/views-overview.ok.js +1 -1
  103. package/public/setup-app.js +1 -1
  104. package/public/stores/auth-store.js +1 -1
  105. package/public/stores/events-store.js +1 -1
  106. package/public/stores/functions-store.js +1 -1
  107. package/public/stores/okdb-store.js +1 -1
  108. package/public/stores/theme-store.js +1 -1
  109. package/public/util/permissions.js +1 -1
  110. package/public/util/sift-schema.js +1 -1
  111. package/public/vendor/okjs/ok.esm.min.js +1 -2
  112. package/public/vendor/okjs/toolkit/behavior/async.ok.js +1 -1
  113. package/public/vendor/okjs/toolkit/components/ok-chart.ok.js +1 -1
  114. package/public/vendor/okjs/toolkit/components/ok-doc-viewer.ok.js +1 -1
  115. package/public/vendor/okjs/toolkit/components/ok-marked.ok.js +1 -1
  116. package/public/vendor/okjs/toolkit/components/ok-monaco.ok.js +1 -1
  117. package/public/vendor/okjs/toolkit/core/ok-layer-service.ok.js +1 -1
  118. package/public/vendor/okjs/toolkit/core/ok-layer.ok.js +1 -1
  119. package/public/vendor/okjs/toolkit/core/ok-overlay.ok.js +1 -1
  120. package/public/vendor/okjs/toolkit/core/ok-sandbox.ok.js +1 -1
  121. package/public/vendor/okjs/toolkit/core/transition.ok.js +1 -1
  122. package/public/vendor/okjs/toolkit/core/virtualized.ok.js +1 -1
  123. package/public/vendor/okjs/toolkit/devtools/ok-console-service.ok.js +1 -1
  124. package/public/vendor/okjs/toolkit/devtools/ok-console.ok.js +1 -1
  125. package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor-service.ok.js +1 -1
  126. package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor.ok.js +1 -1
  127. package/public/vendor/okjs/toolkit/devtools/ok-inspector-service.ok.js +1 -1
  128. package/public/vendor/okjs/toolkit/devtools/ok-inspector.ok.js +1 -1
  129. package/public/vendor/okjs/toolkit/devtools/ok-js-tree.ok.js +1 -1
  130. package/public/vendor/okjs/toolkit/devtools/ok-timeline-service.ok.js +1 -1
  131. package/public/vendor/okjs/toolkit/devtools/ok-timeline.ok.js +1 -1
  132. package/public/vendor/okjs/toolkit/docs/doc-viewer.ok.js +1 -1
  133. package/public/vendor/okjs/toolkit/editor/ok-live-component.ok.js +1 -1
  134. package/public/vendor/okjs/toolkit/editor/ok-live-example.ok.js +1 -1
  135. package/public/vendor/okjs/toolkit/editor/ok-live-shell.ok.js +1 -1
  136. package/public/vendor/okjs/toolkit/elements/ok-dropdown.ok.js +1 -1
  137. package/public/vendor/okjs/toolkit/elements/ok-icon.ok.js +1 -1
  138. package/public/vendor/okjs/toolkit/elements/ok-select.ok.js +1 -1
  139. package/public/vendor/okjs/toolkit/elements/ok-table.ok.js +1 -1
  140. package/public/vendor/okjs/toolkit/errors/ok-crash-boundary.ok.js +1 -1
  141. package/public/vendor/okjs/toolkit/errors/ok-crash-info.ok.js +1 -1
  142. package/public/vendor/okjs/toolkit/i18n/i18n-editor-examples.ok.js +1 -1
  143. package/public/vendor/okjs/toolkit/i18n/i18n-editor.ok.js +1 -1
  144. package/public/vendor/okjs/toolkit/i18n/i18n-key-editor-tips.ok.js +1 -1
  145. package/public/vendor/okjs/toolkit/i18n/i18n-key-editor.ok.js +1 -1
  146. package/public/vendor/okjs/toolkit/i18n/i18n-service.ok.js +1 -1
  147. package/public/vendor/okjs/toolkit/i18n/ok-i18n.js +1 -1
  148. package/public/vendor/okjs/toolkit/interaction/ok-contextmenu.ok.js +1 -1
  149. package/public/vendor/okjs/toolkit/interaction/ok-dismiss-service.ok.js +1 -1
  150. package/public/vendor/okjs/toolkit/interaction/ok-draggable.ok.js +1 -1
  151. package/public/vendor/okjs/toolkit/interaction/ok-flyover-panel.ok.js +1 -1
  152. package/public/vendor/okjs/toolkit/interaction/ok-flyover.ok.js +1 -1
  153. package/public/vendor/okjs/toolkit/interaction/ok-highlight-service.ok.js +1 -1
  154. package/public/vendor/okjs/toolkit/interaction/ok-highlight.ok.js +1 -1
  155. package/public/vendor/okjs/toolkit/interaction/ok-hotkeys-service.ok.js +1 -1
  156. package/public/vendor/okjs/toolkit/interaction/ok-picker-service.ok.js +1 -1
  157. package/public/vendor/okjs/toolkit/interaction/ok-popout-service.ok.js +1 -1
  158. package/public/vendor/okjs/toolkit/interaction/ok-popout.ok.js +1 -1
  159. package/public/vendor/okjs/toolkit/interaction/ok-portal-service.ok.js +1 -1
  160. package/public/vendor/okjs/toolkit/interaction/ok-submenu.ok.js +1 -1
  161. package/public/vendor/okjs/toolkit/layout/ok-resizer.ok.js +1 -1
  162. package/public/vendor/okjs/toolkit/manifest.js +1 -1
  163. package/public/vendor/okjs/toolkit/modals/ok-modal-service.ok.js +1 -1
  164. package/public/vendor/okjs/toolkit/modals/ok-modal.ok.js +1 -1
  165. package/public/vendor/okjs/toolkit/modals/ok-toast-service.ok.js +1 -1
  166. package/public/vendor/okjs/toolkit/modals/ok-window.ok.js +1 -1
  167. package/public/vendor/okjs/toolkit/navigation/hash-router.ok.js +1 -1
  168. package/public/vendor/okjs/toolkit/navigation/history-router.ok.js +1 -1
  169. package/public/vendor/okjs/toolkit/navigation/router.ok.js +1 -1
  170. package/public/vendor/okjs/toolkit/sync/reactive-sync-service.ok.js +1 -1
  171. package/public/vendor/okjs/toolkit/sync/reactive-sync.js +1 -1
  172. package/public/vendor/okjs/toolkit/theming/blocks/ok-design-button.css.js +1 -1
  173. package/public/vendor/okjs/toolkit/theming/blocks/ok-design-input.css.js +1 -1
  174. package/public/vendor/okjs/toolkit/theming/ok-design-style.js +1 -1
  175. package/public/vendor/okjs/toolkit/theming/ok-design-vars.js +1 -1
  176. package/public/vendor/okjs/toolkit/theming/ok-design.ok.js +1 -1
  177. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-input.ok.js +1 -1
  178. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-service.ok.js +1 -1
  179. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-style.js +1 -1
  180. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-utils.js +1 -1
  181. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-variable.ok.js +1 -1
  182. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-vm.js +1 -1
  183. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor.ok.js +1 -1
  184. package/public/vendor/okjs/toolkit/theming/ok-theme.ok.js +1 -1
  185. package/public/view-models/type-query-vm.js +1 -1
  186. package/okdb-data/default/data.mdb +0 -0
  187. package/okdb-data/default/lock.mdb +0 -0
  188. package/okdb-data/~log/data.mdb +0 -0
  189. package/okdb-data/~log/lock.mdb +0 -0
  190. package/okdb-data/~system/data.mdb +0 -0
  191. package/okdb-data/~system/lock.mdb +0 -0
  192. package/public/images/logo.png +0 -0
  193. package/public/images/logo.svg +0 -333
@@ -1 +1 @@
1
- function _0xb115(_0x65b29e,_0x35fbfe){_0x65b29e=_0x65b29e-0x1e2;const _0x3338a7=_0x3338();let _0xb11583=_0x3338a7[_0x65b29e];return _0xb11583;}function _0x3338(){const _0x320a2c=['pipeline','_unsubs','autoScroll','engine','419296zDSRNn','activity','855xMhBmm','toTimeString','toLowerCase','_event','map','59507OwAifq','#2dd4bf','log','includes','var(--okdb-success)','var(--okdb-app-fg-muted)','has','length','level','all','getMilliseconds','env','string','split','9WAHGxl','system-log','join','push','scrollTop','_kind','keys','slice','var(--okdb-danger)','sort','initialSource','_payloadStr','msg','#f472b6','event','padStart','filter','startsWith','eventNs','key','702bTsuar','#ccc','_metaStr','type','object','$attr','56739OXRpjb','entries','error','var(--okdb-purple)','1205776aBhGmM','3999980fbEzpk','_ts','feature','var(--okdb-warning)','some','source','search','10zbvFSy','2161GKkRXV','meta'];_0x3338=function(){return _0x320a2c;};return _0x3338();}const _0x43ad81=_0xb115;(function(_0x532a4d,_0x56f67e){const _0x5c1ec9=_0xb115,_0x57c7bf=_0x532a4d();while(!![]){try{const _0x5f07ad=-parseInt(_0x5c1ec9(0x206))/0x1*(parseInt(_0x5c1ec9(0x205))/0x2)+-parseInt(_0x5c1ec9(0x1f9))/0x3+-parseInt(_0x5c1ec9(0x20c))/0x4+parseInt(_0x5c1ec9(0x20e))/0x5*(parseInt(_0x5c1ec9(0x1f3))/0x6)+-parseInt(_0x5c1ec9(0x213))/0x7+-parseInt(_0x5c1ec9(0x1fd))/0x8+parseInt(_0x5c1ec9(0x221))/0x9*(parseInt(_0x5c1ec9(0x1fe))/0xa);if(_0x5f07ad===_0x56f67e)break;else _0x57c7bf['push'](_0x57c7bf['shift']());}catch(_0x26599a){_0x57c7bf['push'](_0x57c7bf['shift']());}}}(_0x3338,0x1ed20));import _0x2d53d3,{ALL_EVENTS as _0x788b97}from'../../../stores/events-store.js';const t={'info':'var(--okdb-accent)','warn':'var(--okdb-warning)','error':_0x43ad81(0x1e7),'debug':'var(--okdb-app-fg-muted)'},n={'engine':'var(--okdb-accent)','type':_0x43ad81(0x1fc),'index':_0x43ad81(0x201),'embeddings':_0x43ad81(0x214),'system':_0x43ad81(0x217),'sync':'var(--okdb-orange)','queue':'var(--okdb-indigo)','processor':_0x43ad81(0x1ec),'fts':'var(--okdb-success)','env':'#67e8f9','txn':_0x43ad81(0x218),'item':'var(--okdb-app-fg)','relay':_0x43ad81(0x1e7)};Object[_0x43ad81(0x1e5)](n);export default{'tag':_0x43ad81(0x222),'attr':{'initialSource':{}},'context':_0x48cd38=>({'source':_0x48cd38[_0x43ad81(0x1f8)][_0x43ad81(0x1e9)]||_0x43ad81(0x21c),'eventNs':null,'level':null,'feature':null,'env':null,'search':'','autoScroll':!0x0,'_listRef':null,'_unsubs':[],get 'connected'(){return _0x2d53d3['connected'];},get 'streamError'(){const _0x35b2ec=_0x43ad81;return _0x2d53d3[_0x35b2ec(0x1fb)];},get 'entries'(){const _0x5ea6a1=_0x43ad81;let _0x63ca8d=_0x2d53d3['activity'];if(_0x5ea6a1(0x215)===this[_0x5ea6a1(0x203)]&&(_0x63ca8d=_0x63ca8d[_0x5ea6a1(0x1ef)](_0x269399=>_0x5ea6a1(0x215)===_0x269399[_0x5ea6a1(0x1e4)])),_0x5ea6a1(0x1ed)===this[_0x5ea6a1(0x203)]&&(_0x63ca8d=_0x63ca8d['filter'](_0x43a22f=>_0x5ea6a1(0x1ed)===_0x43a22f[_0x5ea6a1(0x1e4)])),this[_0x5ea6a1(0x1f1)]&&_0x5ea6a1(0x215)!==this[_0x5ea6a1(0x203)]&&(_0x63ca8d=_0x63ca8d[_0x5ea6a1(0x1ef)](_0x21518a=>'event'!==_0x21518a[_0x5ea6a1(0x1e4)]||(_0x21518a[_0x5ea6a1(0x211)]??'')[_0x5ea6a1(0x1f0)](this[_0x5ea6a1(0x1f1)]+':'))),this[_0x5ea6a1(0x21b)]&&_0x5ea6a1(0x1ed)!==this[_0x5ea6a1(0x203)]&&(_0x63ca8d=_0x63ca8d[_0x5ea6a1(0x1ef)](_0x395910=>_0x5ea6a1(0x215)!==_0x395910['_kind']||_0x395910[_0x5ea6a1(0x21b)]===this[_0x5ea6a1(0x21b)])),this[_0x5ea6a1(0x200)]&&_0x5ea6a1(0x1ed)!==this[_0x5ea6a1(0x203)]&&(_0x63ca8d=_0x63ca8d[_0x5ea6a1(0x1ef)](_0x9671b1=>'log'!==_0x9671b1[_0x5ea6a1(0x1e4)]||_0x9671b1[_0x5ea6a1(0x207)]?.['feature']===this[_0x5ea6a1(0x200)])),this[_0x5ea6a1(0x21e)]&&'event'!==this[_0x5ea6a1(0x203)]&&(_0x63ca8d=_0x63ca8d['filter'](_0x4787fb=>_0x5ea6a1(0x215)!==_0x4787fb[_0x5ea6a1(0x1e4)]||_0x4787fb[_0x5ea6a1(0x207)]?.[_0x5ea6a1(0x21e)]===this[_0x5ea6a1(0x21e)])),this[_0x5ea6a1(0x204)]){const _0x517b87=this[_0x5ea6a1(0x204)][_0x5ea6a1(0x210)]();_0x63ca8d=_0x63ca8d[_0x5ea6a1(0x1ef)](_0x333873=>_0x5ea6a1(0x215)===_0x333873[_0x5ea6a1(0x1e4)]?(_0x333873[_0x5ea6a1(0x1eb)]??'')['toLowerCase']()[_0x5ea6a1(0x216)](_0x517b87)||this[_0x5ea6a1(0x1f5)](_0x333873['context'])[_0x5ea6a1(0x210)]()['includes'](_0x517b87)||this[_0x5ea6a1(0x1f5)](_0x333873[_0x5ea6a1(0x207)])[_0x5ea6a1(0x210)]()[_0x5ea6a1(0x216)](_0x517b87):_0x5ea6a1(0x1ed)===_0x333873[_0x5ea6a1(0x1e4)]&&((_0x333873[_0x5ea6a1(0x211)]??'')[_0x5ea6a1(0x210)]()[_0x5ea6a1(0x216)](_0x517b87)||this[_0x5ea6a1(0x1ea)](_0x333873)['toLowerCase']()[_0x5ea6a1(0x216)](_0x517b87)));}return _0x63ca8d;},get 'totalCount'(){const _0x5bab8f=_0x43ad81;return _0x2d53d3[_0x5bab8f(0x20d)]['length'];},get 'filteredCount'(){const _0x3751e2=_0x43ad81;return this[_0x3751e2(0x1fa)][_0x3751e2(0x21a)];},get 'hasFeatures'(){const _0x2ff34c=_0x43ad81;return _0x2d53d3[_0x2ff34c(0x20d)][_0x2ff34c(0x202)](_0x56c7b5=>_0x2ff34c(0x215)===_0x56c7b5[_0x2ff34c(0x1e4)]&&_0x56c7b5[_0x2ff34c(0x207)]?.[_0x2ff34c(0x200)]);},get 'featureList'(){const _0x47ec34=_0x43ad81;return[...new Set(_0x2d53d3[_0x47ec34(0x20d)][_0x47ec34(0x1ef)](_0x37d22d=>_0x47ec34(0x215)===_0x37d22d[_0x47ec34(0x1e4)]&&_0x37d22d[_0x47ec34(0x207)]?.[_0x47ec34(0x200)])[_0x47ec34(0x212)](_0x3b67b1=>_0x3b67b1[_0x47ec34(0x207)][_0x47ec34(0x200)]))][_0x47ec34(0x1e8)]();},get 'hasEnvs'(){const _0x18e643=_0x43ad81;return _0x2d53d3[_0x18e643(0x20d)][_0x18e643(0x202)](_0x50f6a2=>_0x18e643(0x215)===_0x50f6a2[_0x18e643(0x1e4)]&&_0x50f6a2[_0x18e643(0x207)]?.[_0x18e643(0x21e)]);},get 'envList'(){const _0x5be18f=_0x43ad81;return[...new Set(_0x2d53d3[_0x5be18f(0x20d)]['filter'](_0x2a05d0=>_0x5be18f(0x215)===_0x2a05d0[_0x5be18f(0x1e4)]&&_0x2a05d0[_0x5be18f(0x207)]?.[_0x5be18f(0x21e)])[_0x5be18f(0x212)](_0x360624=>_0x360624[_0x5be18f(0x207)][_0x5be18f(0x21e)]))]['sort']();},'setSource'(_0x23fbb1){const _0x123174=_0x43ad81;this[_0x123174(0x203)]=_0x23fbb1,_0x123174(0x215)===_0x23fbb1&&(this['eventNs']=null),'event'===_0x23fbb1&&(this[_0x123174(0x21b)]=null,this['feature']=null,this[_0x123174(0x21e)]=null);},'toggleNs'(_0x1fd01d){const _0x1f2dd1=_0x43ad81;this[_0x1f2dd1(0x1f1)]=this[_0x1f2dd1(0x1f1)]===_0x1fd01d?null:_0x1fd01d;},'toggleLevel'(_0x7fadf9){const _0x5be33d=_0x43ad81;this['level']=this[_0x5be33d(0x21b)]===_0x7fadf9?null:_0x7fadf9;},'toggleFeature'(_0x2845ec){const _0x24d101=_0x43ad81;this[_0x24d101(0x200)]=this[_0x24d101(0x200)]===_0x2845ec?null:_0x2845ec;},'toggleEnv'(_0x5b27c7){const _0x3cecab=_0x43ad81;this[_0x3cecab(0x21e)]=this[_0x3cecab(0x21e)]===_0x5b27c7?null:_0x5b27c7;},'clear'(){_0x2d53d3['clearActivity']();},'scrollToBottom'(){const _0x158286=this['_listRef'];_0x158286&&requestAnimationFrame(()=>{const _0x214408=_0xb115;_0x158286[_0x214408(0x1e3)]=_0x158286['scrollHeight'];});},'levelColor':_0x24077e=>t[_0x24077e]??_0x43ad81(0x1f4),'nsColor':_0x311435=>function(_0x6e9256){const _0x22067=_0x43ad81,_0x252d7c=(_0x6e9256||'')[_0x22067(0x220)](':')[0x0];return n[_0x252d7c]??'var(--okdb-app-fg-muted)';}(_0x311435),'fmtTime'(_0x3fd1ca){const _0x28f383=_0x43ad81;if(!_0x3fd1ca)return'';const _0x27b851=new Date(_0x3fd1ca);return _0x27b851[_0x28f383(0x20f)]()[_0x28f383(0x1e6)](0x0,0x8)+'.'+String(_0x27b851[_0x28f383(0x21d)]())[_0x28f383(0x1ee)](0x3,'0');},'_metaStr'(_0x5a5336){const _0x1b9840=_0x43ad81;if(null==_0x5a5336)return'';if(_0x1b9840(0x21f)==typeof _0x5a5336)return _0x5a5336;try{return JSON['stringify'](_0x5a5336);}catch{return String(_0x5a5336);}},'fmtMeta'(_0x1061c7){return this['_metaStr'](_0x1061c7);},'_payloadStr'(_0x3055b8){const _0x41b0a2=_0x43ad81;if(_0x3055b8['engine'])return _0x3055b8[_0x41b0a2(0x20b)];if(_0x3055b8[_0x41b0a2(0x1f6)])return _0x3055b8[_0x41b0a2(0x1f6)];if(_0x3055b8[_0x41b0a2(0x208)])return _0x3055b8['pipeline'];if(_0x3055b8[_0x41b0a2(0x1f2)])return _0x3055b8[_0x41b0a2(0x1f2)];const _0x1ae49a=new Set(['_kind',_0x41b0a2(0x211),_0x41b0a2(0x1ff),'ts']),_0xc82da=[];for(const [_0x228dfe,_0x617ab1]of Object['entries'](_0x3055b8)){if(_0x1ae49a[_0x41b0a2(0x219)](_0x228dfe))continue;const _0x334a88=_0x41b0a2(0x1f7)==typeof _0x617ab1?JSON['stringify'](_0x617ab1):String(_0x617ab1);if(_0xc82da[_0x41b0a2(0x1e2)](_0x228dfe+':'+_0x334a88),_0xc82da['length']>=0x2)break;}return _0xc82da[_0x41b0a2(0x223)]('\x20\x20');},'fmtPayload'(_0xfb5f37){const _0x183540=_0x43ad81;return this[_0x183540(0x1ea)](_0xfb5f37);}}),'mount'(){const _0x3a4fad=_0x43ad81,_0x2ccd5f=['log',..._0x788b97][_0x3a4fad(0x212)](_0x429279=>_0x2d53d3['on'](_0x429279,()=>{this['autoScroll']&&this['scrollToBottom']();}));this['_unsubs']=_0x2ccd5f,this[_0x3a4fad(0x20a)]&&this['scrollToBottom']();},'unmount'(){const _0x2d1950=_0x43ad81;for(const _0x42df3d of this[_0x2d1950(0x209)])_0x42df3d();this[_0x2d1950(0x209)]=[];},'template':'\x0a<div\x20class=\x22syslog\x22>\x0a\x0a\x20\x20<!--\x20Toolbar\x20row\x201:\x20title\x20+\x20source\x20toggle\x20+\x20search\x20+\x20controls\x20-->\x0a\x20\x20<div\x20class=\x22syslog__toolbar\x22>\x0a\x20\x20\x20\x20<span\x20class=\x22syslog__title\x22>Activity</span>\x0a\x0a\x20\x20\x20\x20<!--\x20Source\x20pills\x20-->\x0a\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22setSource(\x27all\x27)\x22\x20\x20\x20:class=\x22source===\x27all\x27\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>All</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22setSource(\x27log\x27)\x22\x20\x20\x20:class=\x22source===\x27log\x27\x20\x20\x20?\x20\x27pill\x20pill--on\x20pill--log\x27\x20\x20\x20:\x20\x27pill\x20pill--log\x27\x22>Logs</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22setSource(\x27event\x27)\x22\x20:class=\x22source===\x27event\x27\x20?\x20\x27pill\x20pill--on\x20pill--event\x27\x20:\x20\x27pill\x20pill--event\x27\x22>Events</button>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<div\x20class=\x22syslog__spacer\x22></div>\x0a\x0a\x20\x20\x20\x20<!--\x20Search\x20-->\x0a\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20class=\x22syslog__search\x22\x0a\x20\x20\x20\x20\x20\x20type=\x22text\x22\x0a\x20\x20\x20\x20\x20\x20placeholder=\x22Filter…\x22\x0a\x20\x20\x20\x20\x20\x20:value=\x22search\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22search\x20=\x20$event.target.value\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20\x20\x20<!--\x20Auto-scroll\x20-->\x0a\x20\x20\x20\x20<button\x20@click=\x22autoScroll\x20=\x20!autoScroll\x22\x20:class=\x22autoScroll\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20title=\x22Auto-scroll\x20to\x20newest\x22>↓\x20Auto</button>\x0a\x0a\x20\x20\x20\x20<!--\x20Clear\x20-->\x0a\x20\x20\x20\x20<button\x20@click=\x22clear()\x22\x20class=\x22pill\x20syslog__clear\x22>Clear</button>\x0a\x0a\x20\x20\x20\x20<!--\x20Count\x20-->\x0a\x20\x20\x20\x20<span\x20class=\x22syslog__count\x22>\x0a\x20\x20\x20\x20\x20\x20{{\x20filteredCount\x20}}\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22filteredCount\x20!==\x20totalCount\x22>\x20/\x20{{\x20totalCount\x20}}</if>\x0a\x20\x20\x20\x20</span>\x0a\x0a\x20\x20\x20\x20<!--\x20Stream\x20dot\x20-->\x0a\x20\x20\x20\x20<span\x20:class=\x22connected\x20?\x20\x27dot\x20dot--on\x27\x20:\x20\x27dot\x20dot--off\x27\x22\x20:title=\x22connected\x20?\x20\x27Live\x27\x20:\x20(streamError\x20||\x20\x27Disconnected\x27)\x22></span>\x0a\x20\x20</div>\x0a\x0a\x20\x20<!--\x20Toolbar\x20row\x202:\x20secondary\x20filters\x20(level\x20for\x20logs,\x20namespace\x20for\x20events)\x20-->\x0a\x20\x20<if\x20:=\x22source\x20!==\x20\x27event\x27\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22syslog__toolbar\x20syslog__toolbar--sub\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__sublabel\x22>Level</span>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(null)\x22\x20\x20\x20\x20:class=\x22level\x20==\x20null\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>All</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(\x27info\x27)\x22\x20\x20:class=\x22level===\x27info\x27\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-accent)\x22>info</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(\x27warn\x27)\x22\x20\x20:class=\x22level===\x27warn\x27\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-warning)\x22>warn</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(\x27error\x27)\x22\x20:class=\x22level===\x27error\x27\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-danger)\x22>error</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(\x27debug\x27)\x22\x20:class=\x22level===\x27debug\x27\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-app-fg-muted)\x22>debug</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<if\x20:=\x22hasFeatures\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__toolbar\x20syslog__toolbar--sub\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__sublabel\x22>Feature</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22\x20style=\x22flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleFeature(null)\x22\x20:class=\x22feature\x20==\x20null\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>all</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22featureList\x22\x20let:item=\x22s\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleFeature(s)\x22\x20:class=\x22feature\x20===\x20s\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>{{\x20s\x20}}</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<if\x20:=\x22hasEnvs\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__toolbar\x20syslog__toolbar--sub\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__sublabel\x22>Env</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22\x20style=\x22flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleEnv(null)\x22\x20:class=\x22env\x20==\x20null\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>all</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22envList\x22\x20let:item=\x22e\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleEnv(e)\x22\x20:class=\x22env\x20===\x20e\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>{{\x20e\x20}}</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22source\x20!==\x20\x27log\x27\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22syslog__toolbar\x20syslog__toolbar--sub\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__sublabel\x22>Namespace</span>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22\x20style=\x22flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(null)\x22\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs==null\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>all</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27engine\x27)\x22\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27engine\x27\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-accent)\x22>engine</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27type\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27type\x27\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-purple)\x22>type</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27index\x27)\x22\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27index\x27\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-warning)\x22>index</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27embeddings\x27)\x22\x20\x20:class=\x22eventNs===\x27embeddings\x27\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:#2dd4bf\x22>embeddings</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27system\x27)\x22\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27system\x27\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-success)\x22>system</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27sync\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27sync\x27\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-orange)\x22>sync</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27queue\x27)\x22\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27queue\x27\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-indigo)\x22>queue</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27processor\x27)\x22\x20\x20\x20:class=\x22eventNs===\x27processor\x27\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:#f472b6\x22>processor</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27fts\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27fts\x27\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-success)\x22>fts</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27env\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27env\x27\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:#67e8f9\x22>env</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27txn\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27txn\x27\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-app-fg-muted)\x22>txn</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27item\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27item\x27\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-app-fg)\x22>item</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<!--\x20Activity\x20list\x20-->\x0a\x20\x20<div\x20class=\x22syslog__list\x22\x20:ref=\x22_listRef\x20=\x20$el\x22>\x0a\x0a\x20\x20\x20\x20<if\x20:=\x22entries.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__empty\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!connected\x22>Connecting\x20to\x20event\x20stream…</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22connected\x20&&\x20totalCount\x20===\x200\x22>No\x20activity\x20yet.</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22connected\x20&&\x20totalCount\x20>\x200\x22>No\x20entries\x20match\x20the\x20current\x20filter.</if>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<each\x20:of=\x22entries\x22\x20let:item=\x22entry\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20:class=\x22entry._kind\x20===\x20\x27event\x27\x20?\x20\x27syslog__row\x20syslog__row--event\x27\x20:\x20\x27syslog__row\x27\x22>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Timestamp\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__ts\x22>{{\x20fmtTime(entry._ts)\x20}}</span>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20LOG\x20entry\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry._kind\x20===\x20\x27log\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__level\x22\x20:style=\x22\x27color:\x27\x20+\x20levelColor(entry.level)\x22>{{\x20entry.level\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__msg\x22>{{\x20entry.msg\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry.meta?.feature\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__meta\x22\x20style=\x22opacity:.6\x22\x20:title=\x22fmtMeta(entry.meta)\x22>{{\x20entry.meta.feature\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry.context\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__meta\x22\x20:title=\x22fmtMeta(entry.context)\x22>{{\x20fmtMeta(entry.context)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20EVENT\x20entry\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry._kind\x20===\x20\x27event\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20class=\x22syslog__evtag\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22\x27color:\x27\x20+\x20nsColor(entry._event)\x20+\x20\x27;\x20border-color:\x27\x20+\x20nsColor(entry._event)\x20+\x20\x2744\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>{{\x20entry._event\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__msg\x20syslog__msg--dim\x22>{{\x20fmtPayload(entry)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</each>\x0a\x0a\x20\x20</div>\x0a\x0a</div>\x0a','style':'@keyframes\x20dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.syslog{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--okdb-app-bg-deep);border-radius:12px;overflow:hidden;border:1px\x20solid\x20var(--okdb-app-border)}.syslog__toolbar{display:flex;align-items:center;gap:6px;padding:7px\x2010px;background:var(--okdb-app-surface);border-bottom:1px\x20solid\x20var(--okdb-app-border);flex-shrink:0;flex-wrap:wrap}.syslog__toolbar--sub{padding:5px\x2010px;background:var(--okdb-app-bg-deep);border-bottom:1px\x20solid\x20var(--okdb-app-surface)}.syslog__title{font-weight:600;font-size:13px;white-space:nowrap;margin-right:2px}.syslog__sublabel{font-size:10px;opacity:.45;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;width:60px;flex-shrink:0}.syslog__spacer{flex:1}.syslog__pills{display:flex;gap:3px;flex-wrap:wrap}.syslog__search{background:var(--okdb-app-border);border:1px\x20solid\x20var(--okdb-app-border-strong);border-radius:6px;color:var(--okdb-warning);padding:3px\x208px;font-size:12px;width:110px;outline:0}.syslog__search:focus{border-color:var(--okdb-accent)}.pill,.syslog__count{font-size:11px;white-space:nowrap}.syslog__count{opacity:.4}.pill{border:1px\x20solid\x20var(--okdb-app-border);background:0\x200;padding:2px\x209px;border-radius:999px;cursor:pointer;color:var(--okdb-app-fg-faint);transition:border-color\x20.12s,color\x20.12s,background\x20.12s}.pill:hover{border-color:var(--okdb-app-fg-muted);color:var(--okdb-app-fg-muted)}.pill--on{border-color:var(--okdb-accent);background:var(--okdb-app-surface-2)}.pill--log,.pill--on{color:var(--okdb-accent)}.pill--event{color:var(--okdb-purple)}.syslog__list{flex:1;overflow-y:auto;font-family:monospace;font-size:12px;padding:2px\x200;min-height:0}.syslog__row{display:flex;gap:8px;padding:2px\x2010px;border-bottom:1px\x20solid\x20var(--okdb-app-bg-deep);align-items:baseline;min-height:20px}.syslog__row--event,.syslog__row:hover{background:var(--okdb-app-surface)}.syslog__row--event:hover{background:var(--okdb-app-surface-2)}.syslog__ts{color:var(--okdb-app-fg-muted);flex-shrink:0;font-size:11px;user-select:none;width:86px}.syslog__level{width:40px;flex-shrink:0;font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.syslog__evtag{flex-shrink:0;font-size:10px;padding:1px\x206px;border-radius:4px;border:1px\x20solid;white-space:nowrap;letter-spacing:.02em}.syslog__msg{flex:1;white-space:pre-wrap;word-break:break-word;color:var(--okdb-app-fg);min-width:0}.syslog__meta,.syslog__msg--dim{color:var(--okdb-app-fg-muted)}.syslog__meta{font-size:11px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;cursor:default}.syslog__empty{padding:24px\x2014px;opacity:.4;font-style:italic;font-size:12px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.dot--on{background:var(--okdb-success);box-shadow:0\x200\x205px\x20color-mix(in\x20srgb,var(--okdb-success)\x2040%,transparent);animation:dot-pulse\x202s\x20ease-in-out\x20infinite}.dot--off{background:var(--okdb-danger)}'};
1
+ const _0xe73dc1=_0x4d5c;function _0x4d5c(_0x4539c3,_0x5b2b2e){_0x4539c3=_0x4539c3-0x180;const _0x143bf9=_0x143b();let _0x4d5cca=_0x143bf9[_0x4539c3];return _0x4d5cca;}(function(_0x235e94,_0x187789){const _0x1773e7=_0x4d5c,_0x4ec417=_0x235e94();while(!![]){try{const _0x3fd4f8=-parseInt(_0x1773e7(0x1bb))/0x1+parseInt(_0x1773e7(0x1b6))/0x2+parseInt(_0x1773e7(0x1aa))/0x3*(parseInt(_0x1773e7(0x1b9))/0x4)+-parseInt(_0x1773e7(0x182))/0x5+parseInt(_0x1773e7(0x1af))/0x6+-parseInt(_0x1773e7(0x19b))/0x7*(-parseInt(_0x1773e7(0x19d))/0x8)+-parseInt(_0x1773e7(0x18a))/0x9;if(_0x3fd4f8===_0x187789)break;else _0x4ec417['push'](_0x4ec417['shift']());}catch(_0x36d00c){_0x4ec417['push'](_0x4ec417['shift']());}}}(_0x143b,0x1ab31));import _0x312654,{ALL_EVENTS as _0x5a3e17}from'../../../stores/events-store.js';const t={'info':_0xe73dc1(0x184),'warn':_0xe73dc1(0x181),'error':'var(--okdb-danger)','debug':_0xe73dc1(0x18f)},n={'engine':_0xe73dc1(0x184),'type':_0xe73dc1(0x1a0),'index':_0xe73dc1(0x181),'embeddings':_0xe73dc1(0x1ac),'system':_0xe73dc1(0x183),'sync':_0xe73dc1(0x1a6),'queue':_0xe73dc1(0x1b1),'processor':_0xe73dc1(0x194),'fts':_0xe73dc1(0x183),'env':_0xe73dc1(0x1be),'txn':_0xe73dc1(0x18f),'item':_0xe73dc1(0x1bf),'relay':'var(--okdb-danger)'};Object[_0xe73dc1(0x188)](n);function _0x143b(){const _0x50bfdf=['#ccc','var(--okdb-warning)','477610XPzMlZ','var(--okdb-success)','var(--okdb-accent)','pipeline','_metaStr','clearActivity','keys','filter','295614MPrTOn','map','event','has','string','var(--okdb-app-fg-muted)','includes','autoScroll','_event','length','#f472b6','context','engine','_payloadStr','@keyframes\x20dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.syslog{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--okdb-app-bg-deep);border-radius:12px;overflow:hidden;border:1px\x20solid\x20var(--okdb-app-border)}.syslog__toolbar{display:flex;align-items:center;gap:6px;padding:7px\x2010px;background:var(--okdb-app-surface);border-bottom:1px\x20solid\x20var(--okdb-app-border);flex-shrink:0;flex-wrap:wrap}.syslog__toolbar--sub{padding:5px\x2010px;background:var(--okdb-app-bg-deep);border-bottom:1px\x20solid\x20var(--okdb-app-surface)}.syslog__title{font-weight:600;font-size:13px;white-space:nowrap;margin-right:2px}.syslog__sublabel{font-size:10px;opacity:.45;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;width:60px;flex-shrink:0}.syslog__spacer{flex:1}.syslog__pills{display:flex;gap:3px;flex-wrap:wrap}.syslog__search{background:var(--okdb-app-border);border:1px\x20solid\x20var(--okdb-app-border-strong);border-radius:6px;color:var(--okdb-warning);padding:3px\x208px;font-size:12px;width:110px;outline:0}.syslog__search:focus{border-color:var(--okdb-accent)}.pill,.syslog__count{font-size:11px;white-space:nowrap}.syslog__count{opacity:.4}.pill{border:1px\x20solid\x20var(--okdb-app-border);background:0\x200;padding:2px\x209px;border-radius:999px;cursor:pointer;color:var(--okdb-app-fg-faint);transition:border-color\x20.12s,color\x20.12s,background\x20.12s}.pill:hover{border-color:var(--okdb-app-fg-muted);color:var(--okdb-app-fg-muted)}.pill--on{border-color:var(--okdb-accent);background:var(--okdb-app-surface-2)}.pill--log,.pill--on{color:var(--okdb-accent)}.pill--event{color:var(--okdb-purple)}.syslog__list{flex:1;overflow-y:auto;font-family:monospace;font-size:12px;padding:2px\x200;min-height:0}.syslog__row{display:flex;gap:8px;padding:2px\x2010px;border-bottom:1px\x20solid\x20var(--okdb-app-bg-deep);align-items:baseline;min-height:20px}.syslog__row--event,.syslog__row:hover{background:var(--okdb-app-surface)}.syslog__row--event:hover{background:var(--okdb-app-surface-2)}.syslog__ts{color:var(--okdb-app-fg-muted);flex-shrink:0;font-size:11px;user-select:none;width:86px}.syslog__level{width:40px;flex-shrink:0;font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.syslog__evtag{flex-shrink:0;font-size:10px;padding:1px\x206px;border-radius:4px;border:1px\x20solid;white-space:nowrap;letter-spacing:.02em}.syslog__msg{flex:1;white-space:pre-wrap;word-break:break-word;color:var(--okdb-app-fg);min-width:0}.syslog__meta,.syslog__msg--dim{color:var(--okdb-app-fg-muted)}.syslog__meta{font-size:11px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;cursor:default}.syslog__empty{padding:24px\x2014px;opacity:.4;font-style:italic;font-size:12px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.dot--on{background:var(--okdb-success);box-shadow:0\x200\x205px\x20color-mix(in\x20srgb,var(--okdb-success)\x2040%,transparent);animation:dot-pulse\x202s\x20ease-in-out\x20infinite}.dot--off{background:var(--okdb-danger)}','slice','stringify','360255bExPCN','log','16zfPgNY','push','source','var(--okdb-purple)','some','_unsubs','join','feature','key','var(--okdb-orange)','sort','activity','meta','446727OPSvHB','split','#2dd4bf','toLowerCase','startsWith','4164BQpAJS','all','var(--okdb-indigo)','initialSource','padStart','entries','error','256504XNxudQ','object','$attr','4KxidNk','connected','143056HOQwdW','scrollToBottom','level','#67e8f9','var(--okdb-app-fg)','type','\x0a<div\x20class=\x22syslog\x22>\x0a\x0a\x20\x20<!--\x20Toolbar\x20row\x201:\x20title\x20+\x20source\x20toggle\x20+\x20search\x20+\x20controls\x20-->\x0a\x20\x20<div\x20class=\x22syslog__toolbar\x22>\x0a\x20\x20\x20\x20<span\x20class=\x22syslog__title\x22>Activity</span>\x0a\x0a\x20\x20\x20\x20<!--\x20Source\x20pills\x20-->\x0a\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22setSource(\x27all\x27)\x22\x20\x20\x20:class=\x22source===\x27all\x27\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>All</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22setSource(\x27log\x27)\x22\x20\x20\x20:class=\x22source===\x27log\x27\x20\x20\x20?\x20\x27pill\x20pill--on\x20pill--log\x27\x20\x20\x20:\x20\x27pill\x20pill--log\x27\x22>Logs</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22setSource(\x27event\x27)\x22\x20:class=\x22source===\x27event\x27\x20?\x20\x27pill\x20pill--on\x20pill--event\x27\x20:\x20\x27pill\x20pill--event\x27\x22>Events</button>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<div\x20class=\x22syslog__spacer\x22></div>\x0a\x0a\x20\x20\x20\x20<!--\x20Search\x20-->\x0a\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20class=\x22syslog__search\x22\x0a\x20\x20\x20\x20\x20\x20type=\x22text\x22\x0a\x20\x20\x20\x20\x20\x20placeholder=\x22Filter…\x22\x0a\x20\x20\x20\x20\x20\x20:value=\x22search\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22search\x20=\x20$event.target.value\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20\x20\x20<!--\x20Auto-scroll\x20-->\x0a\x20\x20\x20\x20<button\x20@click=\x22autoScroll\x20=\x20!autoScroll\x22\x20:class=\x22autoScroll\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20title=\x22Auto-scroll\x20to\x20newest\x22>↓\x20Auto</button>\x0a\x0a\x20\x20\x20\x20<!--\x20Clear\x20-->\x0a\x20\x20\x20\x20<button\x20@click=\x22clear()\x22\x20class=\x22pill\x20syslog__clear\x22>Clear</button>\x0a\x0a\x20\x20\x20\x20<!--\x20Count\x20-->\x0a\x20\x20\x20\x20<span\x20class=\x22syslog__count\x22>\x0a\x20\x20\x20\x20\x20\x20{{\x20filteredCount\x20}}\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22filteredCount\x20!==\x20totalCount\x22>\x20/\x20{{\x20totalCount\x20}}</if>\x0a\x20\x20\x20\x20</span>\x0a\x0a\x20\x20\x20\x20<!--\x20Stream\x20dot\x20-->\x0a\x20\x20\x20\x20<span\x20:class=\x22connected\x20?\x20\x27dot\x20dot--on\x27\x20:\x20\x27dot\x20dot--off\x27\x22\x20:title=\x22connected\x20?\x20\x27Live\x27\x20:\x20(streamError\x20||\x20\x27Disconnected\x27)\x22></span>\x0a\x20\x20</div>\x0a\x0a\x20\x20<!--\x20Toolbar\x20row\x202:\x20secondary\x20filters\x20(level\x20for\x20logs,\x20namespace\x20for\x20events)\x20-->\x0a\x20\x20<if\x20:=\x22source\x20!==\x20\x27event\x27\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22syslog__toolbar\x20syslog__toolbar--sub\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__sublabel\x22>Level</span>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(null)\x22\x20\x20\x20\x20:class=\x22level\x20==\x20null\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>All</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(\x27info\x27)\x22\x20\x20:class=\x22level===\x27info\x27\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-accent)\x22>info</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(\x27warn\x27)\x22\x20\x20:class=\x22level===\x27warn\x27\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-warning)\x22>warn</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(\x27error\x27)\x22\x20:class=\x22level===\x27error\x27\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-danger)\x22>error</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(\x27debug\x27)\x22\x20:class=\x22level===\x27debug\x27\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-app-fg-muted)\x22>debug</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<if\x20:=\x22hasFeatures\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__toolbar\x20syslog__toolbar--sub\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__sublabel\x22>Feature</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22\x20style=\x22flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleFeature(null)\x22\x20:class=\x22feature\x20==\x20null\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>all</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22featureList\x22\x20let:item=\x22s\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleFeature(s)\x22\x20:class=\x22feature\x20===\x20s\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>{{\x20s\x20}}</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<if\x20:=\x22hasEnvs\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__toolbar\x20syslog__toolbar--sub\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__sublabel\x22>Env</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22\x20style=\x22flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleEnv(null)\x22\x20:class=\x22env\x20==\x20null\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>all</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22envList\x22\x20let:item=\x22e\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleEnv(e)\x22\x20:class=\x22env\x20===\x20e\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>{{\x20e\x20}}</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22source\x20!==\x20\x27log\x27\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22syslog__toolbar\x20syslog__toolbar--sub\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__sublabel\x22>Namespace</span>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22\x20style=\x22flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(null)\x22\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs==null\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>all</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27engine\x27)\x22\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27engine\x27\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-accent)\x22>engine</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27type\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27type\x27\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-purple)\x22>type</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27index\x27)\x22\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27index\x27\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-warning)\x22>index</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27embeddings\x27)\x22\x20\x20:class=\x22eventNs===\x27embeddings\x27\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:#2dd4bf\x22>embeddings</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27system\x27)\x22\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27system\x27\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-success)\x22>system</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27sync\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27sync\x27\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-orange)\x22>sync</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27queue\x27)\x22\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27queue\x27\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-indigo)\x22>queue</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27processor\x27)\x22\x20\x20\x20:class=\x22eventNs===\x27processor\x27\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:#f472b6\x22>processor</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27fts\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27fts\x27\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-success)\x22>fts</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27env\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27env\x27\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:#67e8f9\x22>env</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27txn\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27txn\x27\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-app-fg-muted)\x22>txn</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27item\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27item\x27\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-app-fg)\x22>item</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<!--\x20Activity\x20list\x20-->\x0a\x20\x20<div\x20class=\x22syslog__list\x22\x20:ref=\x22_listRef\x20=\x20$el\x22>\x0a\x0a\x20\x20\x20\x20<if\x20:=\x22entries.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__empty\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!connected\x22>Connecting\x20to\x20event\x20stream…</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22connected\x20&&\x20totalCount\x20===\x200\x22>No\x20activity\x20yet.</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22connected\x20&&\x20totalCount\x20>\x200\x22>No\x20entries\x20match\x20the\x20current\x20filter.</if>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<each\x20:of=\x22entries\x22\x20let:item=\x22entry\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20:class=\x22entry._kind\x20===\x20\x27event\x27\x20?\x20\x27syslog__row\x20syslog__row--event\x27\x20:\x20\x27syslog__row\x27\x22>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Timestamp\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__ts\x22>{{\x20fmtTime(entry._ts)\x20}}</span>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20LOG\x20entry\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry._kind\x20===\x20\x27log\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__level\x22\x20:style=\x22\x27color:\x27\x20+\x20levelColor(entry.level)\x22>{{\x20entry.level\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__msg\x22>{{\x20entry.msg\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry.meta?.feature\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__meta\x22\x20style=\x22opacity:.6\x22\x20:title=\x22fmtMeta(entry.meta)\x22>{{\x20entry.meta.feature\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry.context\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__meta\x22\x20:title=\x22fmtMeta(entry.context)\x22>{{\x20fmtMeta(entry.context)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20EVENT\x20entry\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry._kind\x20===\x20\x27event\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20class=\x22syslog__evtag\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22\x27color:\x27\x20+\x20nsColor(entry._event)\x20+\x20\x27;\x20border-color:\x27\x20+\x20nsColor(entry._event)\x20+\x20\x2744\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>{{\x20entry._event\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__msg\x20syslog__msg--dim\x22>{{\x20fmtPayload(entry)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</each>\x0a\x0a\x20\x20</div>\x0a\x0a</div>\x0a','env','eventNs','_kind'];_0x143b=function(){return _0x50bfdf;};return _0x143b();}export default{'tag':'system-log','attr':{'initialSource':{}},'context':_0x4c7fb1=>({'source':_0x4c7fb1[_0xe73dc1(0x1b8)][_0xe73dc1(0x1b2)]||_0xe73dc1(0x1b0),'eventNs':null,'level':null,'feature':null,'env':null,'search':'','autoScroll':!0x0,'_listRef':null,'_unsubs':[],get 'connected'(){const _0x5b1508=_0xe73dc1;return _0x312654[_0x5b1508(0x1ba)];},get 'streamError'(){const _0x33295b=_0xe73dc1;return _0x312654[_0x33295b(0x1b5)];},get 'entries'(){const _0x1e6025=_0xe73dc1;let _0x33ded0=_0x312654['activity'];if(_0x1e6025(0x19c)===this[_0x1e6025(0x19f)]&&(_0x33ded0=_0x33ded0['filter'](_0x5abedc=>_0x1e6025(0x19c)===_0x5abedc[_0x1e6025(0x1c4)])),'event'===this[_0x1e6025(0x19f)]&&(_0x33ded0=_0x33ded0['filter'](_0x582d0f=>'event'===_0x582d0f[_0x1e6025(0x1c4)])),this['eventNs']&&_0x1e6025(0x19c)!==this[_0x1e6025(0x19f)]&&(_0x33ded0=_0x33ded0[_0x1e6025(0x189)](_0x13cad8=>_0x1e6025(0x18c)!==_0x13cad8[_0x1e6025(0x1c4)]||(_0x13cad8[_0x1e6025(0x192)]??'')[_0x1e6025(0x1ae)](this[_0x1e6025(0x1c3)]+':'))),this['level']&&'event'!==this[_0x1e6025(0x19f)]&&(_0x33ded0=_0x33ded0[_0x1e6025(0x189)](_0x12c0a2=>_0x1e6025(0x19c)!==_0x12c0a2['_kind']||_0x12c0a2[_0x1e6025(0x1bd)]===this['level'])),this[_0x1e6025(0x1a4)]&&_0x1e6025(0x18c)!==this[_0x1e6025(0x19f)]&&(_0x33ded0=_0x33ded0[_0x1e6025(0x189)](_0x26f168=>_0x1e6025(0x19c)!==_0x26f168['_kind']||_0x26f168[_0x1e6025(0x1a9)]?.[_0x1e6025(0x1a4)]===this[_0x1e6025(0x1a4)])),this[_0x1e6025(0x1c2)]&&'event'!==this[_0x1e6025(0x19f)]&&(_0x33ded0=_0x33ded0[_0x1e6025(0x189)](_0x25f3d9=>_0x1e6025(0x19c)!==_0x25f3d9[_0x1e6025(0x1c4)]||_0x25f3d9['meta']?.[_0x1e6025(0x1c2)]===this[_0x1e6025(0x1c2)])),this['search']){const _0x344bc0=this['search']['toLowerCase']();_0x33ded0=_0x33ded0[_0x1e6025(0x189)](_0x274ec3=>'log'===_0x274ec3[_0x1e6025(0x1c4)]?(_0x274ec3['msg']??'')[_0x1e6025(0x1ad)]()['includes'](_0x344bc0)||this[_0x1e6025(0x186)](_0x274ec3[_0x1e6025(0x195)])[_0x1e6025(0x1ad)]()[_0x1e6025(0x190)](_0x344bc0)||this[_0x1e6025(0x186)](_0x274ec3['meta'])['toLowerCase']()[_0x1e6025(0x190)](_0x344bc0):_0x1e6025(0x18c)===_0x274ec3[_0x1e6025(0x1c4)]&&((_0x274ec3['_event']??'')[_0x1e6025(0x1ad)]()[_0x1e6025(0x190)](_0x344bc0)||this[_0x1e6025(0x197)](_0x274ec3)[_0x1e6025(0x1ad)]()[_0x1e6025(0x190)](_0x344bc0)));}return _0x33ded0;},get 'totalCount'(){const _0xce20e4=_0xe73dc1;return _0x312654['activity'][_0xce20e4(0x193)];},get 'filteredCount'(){const _0x328294=_0xe73dc1;return this[_0x328294(0x1b4)]['length'];},get 'hasFeatures'(){const _0x2d31f0=_0xe73dc1;return _0x312654['activity'][_0x2d31f0(0x1a1)](_0x1a4221=>_0x2d31f0(0x19c)===_0x1a4221[_0x2d31f0(0x1c4)]&&_0x1a4221[_0x2d31f0(0x1a9)]?.[_0x2d31f0(0x1a4)]);},get 'featureList'(){const _0x20cc7f=_0xe73dc1;return[...new Set(_0x312654['activity'][_0x20cc7f(0x189)](_0x356839=>_0x20cc7f(0x19c)===_0x356839['_kind']&&_0x356839[_0x20cc7f(0x1a9)]?.['feature'])[_0x20cc7f(0x18b)](_0x4cd1ce=>_0x4cd1ce['meta']['feature']))][_0x20cc7f(0x1a7)]();},get 'hasEnvs'(){const _0x15233f=_0xe73dc1;return _0x312654[_0x15233f(0x1a8)][_0x15233f(0x1a1)](_0xd75e4f=>_0x15233f(0x19c)===_0xd75e4f[_0x15233f(0x1c4)]&&_0xd75e4f['meta']?.[_0x15233f(0x1c2)]);},get 'envList'(){const _0x51c577=_0xe73dc1;return[...new Set(_0x312654[_0x51c577(0x1a8)]['filter'](_0x485f61=>'log'===_0x485f61[_0x51c577(0x1c4)]&&_0x485f61[_0x51c577(0x1a9)]?.[_0x51c577(0x1c2)])[_0x51c577(0x18b)](_0x3b086a=>_0x3b086a[_0x51c577(0x1a9)]['env']))]['sort']();},'setSource'(_0x312b56){const _0x2bdd00=_0xe73dc1;this[_0x2bdd00(0x19f)]=_0x312b56,_0x2bdd00(0x19c)===_0x312b56&&(this[_0x2bdd00(0x1c3)]=null),_0x2bdd00(0x18c)===_0x312b56&&(this[_0x2bdd00(0x1bd)]=null,this['feature']=null,this[_0x2bdd00(0x1c2)]=null);},'toggleNs'(_0x2850ff){const _0x27e92f=_0xe73dc1;this[_0x27e92f(0x1c3)]=this['eventNs']===_0x2850ff?null:_0x2850ff;},'toggleLevel'(_0x54f5a9){const _0x516dd7=_0xe73dc1;this[_0x516dd7(0x1bd)]=this[_0x516dd7(0x1bd)]===_0x54f5a9?null:_0x54f5a9;},'toggleFeature'(_0x19dcf9){const _0x86f066=_0xe73dc1;this[_0x86f066(0x1a4)]=this[_0x86f066(0x1a4)]===_0x19dcf9?null:_0x19dcf9;},'toggleEnv'(_0x4d5323){const _0x13f73b=_0xe73dc1;this[_0x13f73b(0x1c2)]=this[_0x13f73b(0x1c2)]===_0x4d5323?null:_0x4d5323;},'clear'(){const _0x51ec09=_0xe73dc1;_0x312654[_0x51ec09(0x187)]();},'scrollToBottom'(){const _0x1a33a4=this['_listRef'];_0x1a33a4&&requestAnimationFrame(()=>{_0x1a33a4['scrollTop']=_0x1a33a4['scrollHeight'];});},'levelColor':_0xd6e866=>t[_0xd6e866]??_0xe73dc1(0x180),'nsColor':_0x376353=>function(_0x36ed24){const _0x1fd58d=_0xe73dc1,_0x46f3c7=(_0x36ed24||'')[_0x1fd58d(0x1ab)](':')[0x0];return n[_0x46f3c7]??'var(--okdb-app-fg-muted)';}(_0x376353),'fmtTime'(_0x590fb7){const _0x1674c2=_0xe73dc1;if(!_0x590fb7)return'';const _0x2c5fc4=new Date(_0x590fb7);return _0x2c5fc4['toTimeString']()[_0x1674c2(0x199)](0x0,0x8)+'.'+String(_0x2c5fc4['getMilliseconds']())[_0x1674c2(0x1b3)](0x3,'0');},'_metaStr'(_0x58f4b6){const _0x29d78f=_0xe73dc1;if(null==_0x58f4b6)return'';if(_0x29d78f(0x18e)==typeof _0x58f4b6)return _0x58f4b6;try{return JSON[_0x29d78f(0x19a)](_0x58f4b6);}catch{return String(_0x58f4b6);}},'fmtMeta'(_0x2b4c8a){const _0x4b489d=_0xe73dc1;return this[_0x4b489d(0x186)](_0x2b4c8a);},'_payloadStr'(_0xeadaa0){const _0x562ff1=_0xe73dc1;if(_0xeadaa0[_0x562ff1(0x196)])return _0xeadaa0[_0x562ff1(0x196)];if(_0xeadaa0[_0x562ff1(0x1c0)])return _0xeadaa0[_0x562ff1(0x1c0)];if(_0xeadaa0[_0x562ff1(0x185)])return _0xeadaa0[_0x562ff1(0x185)];if(_0xeadaa0['key'])return _0xeadaa0[_0x562ff1(0x1a5)];const _0x1fd872=new Set([_0x562ff1(0x1c4),_0x562ff1(0x192),'_ts','ts']),_0x53908a=[];for(const [_0x392e40,_0x161e5e]of Object[_0x562ff1(0x1b4)](_0xeadaa0)){if(_0x1fd872[_0x562ff1(0x18d)](_0x392e40))continue;const _0x493e41=_0x562ff1(0x1b7)==typeof _0x161e5e?JSON[_0x562ff1(0x19a)](_0x161e5e):String(_0x161e5e);if(_0x53908a[_0x562ff1(0x19e)](_0x392e40+':'+_0x493e41),_0x53908a[_0x562ff1(0x193)]>=0x2)break;}return _0x53908a[_0x562ff1(0x1a3)]('\x20\x20');},'fmtPayload'(_0x4d91af){const _0x4ac019=_0xe73dc1;return this[_0x4ac019(0x197)](_0x4d91af);}}),'mount'(){const _0x8cc825=_0xe73dc1,_0x43180e=[_0x8cc825(0x19c),..._0x5a3e17][_0x8cc825(0x18b)](_0x1a898a=>_0x312654['on'](_0x1a898a,()=>{const _0x461fee=_0x8cc825;this[_0x461fee(0x191)]&&this['scrollToBottom']();}));this[_0x8cc825(0x1a2)]=_0x43180e,this['autoScroll']&&this[_0x8cc825(0x1bc)]();},'unmount'(){const _0x2170c5=_0xe73dc1;for(const _0x72378e of this['_unsubs'])_0x72378e();this[_0x2170c5(0x1a2)]=[];},'template':_0xe73dc1(0x1c1),'style':_0xe73dc1(0x198)};
@@ -1 +1 @@
1
- const _0x22adf2=_0x3ad9;(function(_0x202c72,_0x5c7ea9){const _0x4e1761=_0x3ad9,_0x12fa68=_0x202c72();while(!![]){try{const _0x28fe61=-parseInt(_0x4e1761(0x1f8))/0x1+parseInt(_0x4e1761(0x200))/0x2*(parseInt(_0x4e1761(0x1ea))/0x3)+-parseInt(_0x4e1761(0x1fc))/0x4*(parseInt(_0x4e1761(0x1f7))/0x5)+-parseInt(_0x4e1761(0x1fe))/0x6*(-parseInt(_0x4e1761(0x1ec))/0x7)+-parseInt(_0x4e1761(0x1fd))/0x8*(-parseInt(_0x4e1761(0x1f2))/0x9)+-parseInt(_0x4e1761(0x1fb))/0xa+parseInt(_0x4e1761(0x1f4))/0xb*(parseInt(_0x4e1761(0x1e7))/0xc);if(_0x28fe61===_0x5c7ea9)break;else _0x12fa68['push'](_0x12fa68['shift']());}catch(_0xbb21ef){_0x12fa68['push'](_0x12fa68['shift']());}}}(_0x1f7d,0x5304b));function _0x3ad9(_0x554ab1,_0x229eaa){_0x554ab1=_0x554ab1-0x1e6;const _0x1f7d71=_0x1f7d();let _0x3ad924=_0x1f7d71[_0x554ab1];return _0x3ad924;}import _0x13e13c from'../../../stores/events-store.js';function _0x1f7d(){const _0x126f3a=['type:drop','length','4159143gcGsDL','keys','5467517lieHWT','system:clock_change','clock','458645ljBkLy','291010ZSbaDJ','toFixed','@keyframes\x20pulse{0%,to{opacity:1}50%{opacity:.5}}.status-bar{display:flex;flex-wrap:wrap;gap:10px;flex-shrink:0}.status-card{background:var(--okdb-app-border);border-radius:10px;padding:12px\x2016px;min-width:110px;flex:1}.status-card__label{font-size:11px;opacity:.55;margin-bottom:4px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.status-card__value{font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__value--mono{font-family:monospace;font-size:11px;letter-spacing:.03em}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dot--on{background:var(--okdb-success);box-shadow:0\x200\x206px\x20color-mix(in\x20srgb,var(--okdb-success)\x2040%,transparent);animation:pulse\x202s\x20ease-in-out\x20infinite}.dot--off{background:var(--okdb-danger)}','1880480kMOShn','28srYLrm','8pDHMWT','156RTAGpF','reloadInfo','335942ezZIKY','error','startsWith','lastPageNumber','_unsub','12GmXRkh','connected','type:registered','6lOShEt','filter','44716frhBQY','system-status','index:registered','info'];_0x1f7d=function(){return _0x126f3a;};return _0x1f7d();}import _0x22f859 from'../../../stores/okdb-store.js';export default{'tag':_0x22adf2(0x1ed),'context':_0x2d61e8=>({get 'connected'(){const _0x26b376=_0x22adf2;return _0x13e13c[_0x26b376(0x1e8)];},get 'streamError'(){const _0x1c9a0c=_0x22adf2;return _0x13e13c[_0x1c9a0c(0x201)];},get 'dbId'(){const _0x3232d7=_0x22adf2;return _0x22f859[_0x3232d7(0x1ef)]?.['id']??'—';},get 'dbSize'(){const _0x5b5d89=_0x22adf2,_0x5b1d82=_0x22f859[_0x5b5d89(0x1ef)];if(!_0x5b1d82)return'—';const _0x44c0c8=(_0x5b1d82[_0x5b5d89(0x203)]??0x0)*(_0x5b1d82['pageSize']??0x1000);if(!_0x44c0c8)return'—';const _0x556629=['B','KB','MB','GB'];let _0x3278f3=_0x44c0c8,_0x5a3bed=0x0;for(;_0x3278f3>=0x400&&_0x5a3bed<_0x556629[_0x5b5d89(0x1f1)]-0x1;)_0x3278f3/=0x400,_0x5a3bed++;return _0x3278f3[_0x5b5d89(0x1f9)](0x1)+'\u00a0'+_0x556629[_0x5a3bed];},get 'typeCount'(){const _0x5aabb2=_0x22adf2,_0x1328ab=_0x22f859[_0x5aabb2(0x1ef)]?.['types'];return _0x1328ab?Object[_0x5aabb2(0x1f3)](_0x1328ab)[_0x5aabb2(0x1eb)](_0x2064fa=>!_0x2064fa[_0x5aabb2(0x202)]('~'))[_0x5aabb2(0x1f1)]:'—';},get 'clock'(){const _0x531e6b=_0x22adf2;return _0x22f859[_0x531e6b(0x1ef)]?.[_0x531e6b(0x1f6)]??'—';},'_unsub':null,async '_refresh'(){const _0x37efa6=_0x22adf2;await _0x22f859[_0x37efa6(0x1ff)]();}}),'mount'(){const _0x48aace=_0x22adf2,_0x1fe4ab=()=>this['_refresh']();this[_0x48aace(0x1e6)]=_0x13e13c['on'](_0x48aace(0x1e9),_0x1fe4ab);const _0x36351d=_0x13e13c['on'](_0x48aace(0x1f0),_0x1fe4ab),_0x254708=_0x13e13c['on'](_0x48aace(0x1ee),_0x1fe4ab),_0x524794=_0x13e13c['on']('index:drop',_0x1fe4ab),_0x12af84=_0x13e13c['on'](_0x48aace(0x1f5),_0x1fe4ab),_0xa6e84e=_0x13e13c['on']('system:poke',_0x1fe4ab),_0x247133=this[_0x48aace(0x1e6)];this[_0x48aace(0x1e6)]=()=>{_0x247133(),_0x36351d(),_0x254708(),_0x524794(),_0x12af84(),_0xa6e84e();};},'unmount'(){const _0x4e2a8d=_0x22adf2;this[_0x4e2a8d(0x1e6)]?.();},'template':'\x0a<div\x20class=\x22status-bar\x22>\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>DB&nbsp;ID</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x20status-card__value--mono\x22\x20:title=\x22dbId\x22>{{\x20dbId\x20}}</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>Size</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x22>{{\x20dbSize\x20}}</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>Types</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x22>{{\x20typeCount\x20}}</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>Clock</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x20status-card__value--mono\x22>{{\x20clock\x20}}</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>Event&nbsp;Stream</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20:class=\x22connected\x20?\x20\x27dot\x20dot--on\x27\x20:\x20\x27dot\x20dot--off\x27\x22></span>\x0a\x20\x20\x20\x20\x20\x20{{\x20connected\x20?\x20\x27Live\x27\x20:\x20(streamError\x20?\x20\x27Reconnecting…\x27\x20:\x20\x27Disconnected\x27)\x20}}\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a</div>\x0a','style':_0x22adf2(0x1fa)};
1
+ const _0x524c28=_0x354f;(function(_0x204b5d,_0x2b5745){const _0x50016c=_0x354f,_0x33985e=_0x204b5d();while(!![]){try{const _0x351784=parseInt(_0x50016c(0xe2))/0x1+parseInt(_0x50016c(0xd9))/0x2*(-parseInt(_0x50016c(0xed))/0x3)+parseInt(_0x50016c(0xd6))/0x4+parseInt(_0x50016c(0xea))/0x5+-parseInt(_0x50016c(0xe4))/0x6+-parseInt(_0x50016c(0xe6))/0x7*(parseInt(_0x50016c(0xe3))/0x8)+parseInt(_0x50016c(0xd8))/0x9;if(_0x351784===_0x2b5745)break;else _0x33985e['push'](_0x33985e['shift']());}catch(_0x332cb7){_0x33985e['push'](_0x33985e['shift']());}}}(_0x32e9,0x91b2e));import _0x5b9598 from'../../../stores/events-store.js';function _0x32e9(){const _0x530646=['toFixed','7sgZoKR','system:poke','system-status','type:drop','3267845fTVTnD','lastPageNumber','info','256641ZViOew','keys','clock','_unsub','_refresh','type:registered','pageSize','1823712eZgOJb','filter','419706hzZRTj','14NpgYrw','connected','error','\x0a<div\x20class=\x22status-bar\x22>\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>DB&nbsp;ID</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x20status-card__value--mono\x22\x20:title=\x22dbId\x22>{{\x20dbId\x20}}</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>Size</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x22>{{\x20dbSize\x20}}</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>Types</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x22>{{\x20typeCount\x20}}</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>Clock</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x20status-card__value--mono\x22>{{\x20clock\x20}}</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>Event&nbsp;Stream</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20:class=\x22connected\x20?\x20\x27dot\x20dot--on\x27\x20:\x20\x27dot\x20dot--off\x27\x22></span>\x0a\x20\x20\x20\x20\x20\x20{{\x20connected\x20?\x20\x27Live\x27\x20:\x20(streamError\x20?\x20\x27Reconnecting…\x27\x20:\x20\x27Disconnected\x27)\x20}}\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a</div>\x0a','system:clock_change','startsWith','index:registered','length','index:drop','1053364qykFTA','612152ScfuFl','5624190YxgvjA'];_0x32e9=function(){return _0x530646;};return _0x32e9();}import _0x3221e7 from'../../../stores/okdb-store.js';function _0x354f(_0x4c6459,_0xb999a3){_0x4c6459=_0x4c6459-0xd0;const _0x32e924=_0x32e9();let _0x354fba=_0x32e924[_0x4c6459];return _0x354fba;}export default{'tag':_0x524c28(0xe8),'context':_0x3d0184=>({get 'connected'(){const _0x5e9760=_0x524c28;return _0x5b9598[_0x5e9760(0xda)];},get 'streamError'(){const _0x4a3c4d=_0x524c28;return _0x5b9598[_0x4a3c4d(0xdb)];},get 'dbId'(){return _0x3221e7['info']?.['id']??'—';},get 'dbSize'(){const _0x263279=_0x524c28,_0x47e432=_0x3221e7[_0x263279(0xec)];if(!_0x47e432)return'—';const _0x58a927=(_0x47e432[_0x263279(0xeb)]??0x0)*(_0x47e432[_0x263279(0xd5)]??0x1000);if(!_0x58a927)return'—';const _0x15db54=['B','KB','MB','GB'];let _0xf25987=_0x58a927,_0x6d4eb8=0x0;for(;_0xf25987>=0x400&&_0x6d4eb8<_0x15db54[_0x263279(0xe0)]-0x1;)_0xf25987/=0x400,_0x6d4eb8++;return _0xf25987[_0x263279(0xe5)](0x1)+'\u00a0'+_0x15db54[_0x6d4eb8];},get 'typeCount'(){const _0x15b482=_0x524c28,_0x11159d=_0x3221e7[_0x15b482(0xec)]?.['types'];return _0x11159d?Object[_0x15b482(0xd0)](_0x11159d)[_0x15b482(0xd7)](_0x13ab67=>!_0x13ab67[_0x15b482(0xde)]('~'))[_0x15b482(0xe0)]:'—';},get 'clock'(){const _0x3d16cc=_0x524c28;return _0x3221e7[_0x3d16cc(0xec)]?.[_0x3d16cc(0xd1)]??'—';},'_unsub':null,async '_refresh'(){await _0x3221e7['reloadInfo']();}}),'mount'(){const _0x207b17=_0x524c28,_0x2d1ec6=()=>this[_0x207b17(0xd3)]();this[_0x207b17(0xd2)]=_0x5b9598['on'](_0x207b17(0xd4),_0x2d1ec6);const _0x41c2f1=_0x5b9598['on'](_0x207b17(0xe9),_0x2d1ec6),_0x4ca15f=_0x5b9598['on'](_0x207b17(0xdf),_0x2d1ec6),_0x2fbf2c=_0x5b9598['on'](_0x207b17(0xe1),_0x2d1ec6),_0x2b5c43=_0x5b9598['on'](_0x207b17(0xdd),_0x2d1ec6),_0x5f61cb=_0x5b9598['on'](_0x207b17(0xe7),_0x2d1ec6),_0x574bc4=this[_0x207b17(0xd2)];this[_0x207b17(0xd2)]=()=>{_0x574bc4(),_0x41c2f1(),_0x4ca15f(),_0x2fbf2c(),_0x2b5c43(),_0x5f61cb();};},'unmount'(){const _0x23804e=_0x524c28;this[_0x23804e(0xd2)]?.();},'template':_0x524c28(0xdc),'style':'@keyframes\x20pulse{0%,to{opacity:1}50%{opacity:.5}}.status-bar{display:flex;flex-wrap:wrap;gap:10px;flex-shrink:0}.status-card{background:var(--okdb-app-border);border-radius:10px;padding:12px\x2016px;min-width:110px;flex:1}.status-card__label{font-size:11px;opacity:.55;margin-bottom:4px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.status-card__value{font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__value--mono{font-family:monospace;font-size:11px;letter-spacing:.03em}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dot--on{background:var(--okdb-success);box-shadow:0\x200\x206px\x20color-mix(in\x20srgb,var(--okdb-success)\x2040%,transparent);animation:pulse\x202s\x20ease-in-out\x20infinite}.dot--off{background:var(--okdb-danger)}'};
@@ -1 +1 @@
1
- const _0x2577dc=_0xec2c;function _0xec2c(_0x20cdc8,_0xc227a4){_0x20cdc8=_0x20cdc8-0xbc;const _0x3e142f=_0x3e14();let _0xec2c3a=_0x3e142f[_0x20cdc8];return _0xec2c3a;}function _0x3e14(){const _0xba99ba=['2gUyXEI','7IhISQy','selfNode','message','catch','81305yAOCLv','trim','loadSelf','3760540XBWnin','selfTagList','selfClocks','$ok','topology','282vauYfk','1423904SywXsO','tags','3447320VKUODV','shared','map','77ibcQpy','savingSelf','application/json','node','2793924WFVOPS','json','system-sync-panel','4127580CYfAyj','PATCH','API','clocks','data','saveSelfError','writeText','selfTagsInput','selfClock','toast','error','clock','clipboard','Node\x20tags\x20saved','1468692WDbkiC'];_0x3e14=function(){return _0xba99ba;};return _0x3e14();}(function(_0x4d3a85,_0xd4a10a){const _0xdbc606=_0xec2c,_0x2ca7bd=_0x4d3a85();while(!![]){try{const _0xe364ac=-parseInt(_0xdbc606(0xe4))/0x1+parseInt(_0xdbc606(0xd6))/0x2*(-parseInt(_0xdbc606(0xc4))/0x3)+parseInt(_0xdbc606(0xd5))/0x4+parseInt(_0xdbc606(0xdb))/0x5*(-parseInt(_0xdbc606(0xe3))/0x6)+-parseInt(_0xdbc606(0xd7))/0x7*(-parseInt(_0xdbc606(0xbd))/0x8)+parseInt(_0xdbc606(0xc7))/0x9+-parseInt(_0xdbc606(0xde))/0xa*(-parseInt(_0xdbc606(0xc0))/0xb);if(_0xe364ac===_0xd4a10a)break;else _0x2ca7bd['push'](_0x2ca7bd['shift']());}catch(_0x31546d){_0x2ca7bd['push'](_0x2ca7bd['shift']());}}}(_0x3e14,0xbbe47));import _0x1aa5e6 from'../../sync/parts/sync-topology.ok.js';import _0xcc66a from'../../sync/parts/sync-retention.ok.js';export default{'tag':_0x2577dc(0xc6),'unwrap':!0x0,'dependencies':[_0x1aa5e6,_0xcc66a],'context':_0x524b4b=>({'tab':_0x2577dc(0xe2),'selfNode':null,'selfClock':null,'selfClocks':{},'selfTagsInput':'','savingSelf':!0x1,'saveSelfError':null,get 'selfTagList'(){const _0x1b5908=_0x2577dc;return(this[_0x1b5908(0xce)]||'')['split'](',')[_0x1b5908(0xbf)](_0x71dd75=>_0x71dd75[_0x1b5908(0xdc)]())['filter'](Boolean);},async 'loadSelf'(){const _0x456346=_0x2577dc;try{const _0x37aded=await fetch(__ENV__[_0x456346(0xc9)]+'/sync/info'),_0x114c06=await _0x37aded[_0x456346(0xc5)]();_0x37aded['ok']&&(this[_0x456346(0xd8)]=_0x114c06[_0x456346(0xcb)]?.['node']??null,this[_0x456346(0xcf)]=_0x114c06['data']?.[_0x456346(0xd2)]??null,this[_0x456346(0xe0)]=_0x114c06[_0x456346(0xcb)]?.[_0x456346(0xca)]??{},this[_0x456346(0xce)]=(this['selfNode']?.['tags']??[])['join'](',\x20'));}catch{}},async 'saveSelfTags'(){const _0x233cef=_0x2577dc;if(!this[_0x233cef(0xc1)]){this[_0x233cef(0xc1)]=!0x0,this['saveSelfError']=null;try{const _0x564d8e=await fetch(__ENV__[_0x233cef(0xc9)]+'/sync/self',{'method':_0x233cef(0xc8),'headers':{'Content-Type':_0x233cef(0xc2)},'body':JSON['stringify']({'tags':this[_0x233cef(0xdf)]})}),_0xf90499=await _0x564d8e[_0x233cef(0xc5)]();if(!_0x564d8e['ok'])throw new Error(_0xf90499?.[_0x233cef(0xd1)]?.[_0x233cef(0xd9)]||'Failed\x20to\x20save\x20node\x20tags');this[_0x233cef(0xd8)]=_0xf90499['data']?.[_0x233cef(0xc3)]??this[_0x233cef(0xd8)],this[_0x233cef(0xce)]=(this['selfNode']?.[_0x233cef(0xbc)]??[])['join'](',\x20'),_0x524b4b[_0x233cef(0xe1)][_0x233cef(0xbe)]?.[_0x233cef(0xd0)]?.['success']?.(_0x233cef(0xd4));}catch(_0x3c3392){this[_0x233cef(0xcc)]=_0x3c3392?.['message']||String(_0x3c3392);}finally{this[_0x233cef(0xc1)]=!0x1;}}},'copyText'(_0xa5ad74){const _0x42df9b=_0x2577dc;navigator[_0x42df9b(0xd3)]?.[_0x42df9b(0xcd)](_0xa5ad74)[_0x42df9b(0xda)](()=>{});}}),async 'mount'(){const _0x2ac54e=_0x2577dc;await this[_0x2ac54e(0xdd)]();},'template':'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;flex-direction:column;gap:14px;height:100%;min-height:0;\x22>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Self-node\x20identity\x20header\x20bar\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selfNode\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;align-items:center;gap:14px;padding:10px\x2014px;background:var(--okdb-app-surface);border:1px\x20solid\x20var(--okdb-app-border);border-radius:10px;flex-shrink:0;flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.45;white-space:nowrap;\x22>This\x20Node</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22display:flex;align-items:center;gap:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22width:7px;height:7px;border-radius:50%;background:var(--okdb-success);flex-shrink:0;\x22></span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-weight:600;font-size:13px;\x22>{{selfNode.name\x20||\x20selfNode.id?.slice(0,8)}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selfNode.id\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-family:monospace;font-size:11px;opacity:.45;cursor:pointer;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22copyText(selfNode.id)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20title=\x22Click\x20to\x20copy\x20full\x20ID\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>{{selfNode.id?.slice(0,14)}}…\x20⎘</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selfClock\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;opacity:.45;\x22>clock:\x20<span\x20style=\x22font-family:monospace;\x22>{{selfClock}}</span></span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selfNode.address\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-family:monospace;font-size:11px;opacity:.45;white-space:nowrap;\x22>{{selfNode.address}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Inline\x20tag\x20editor\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22selfTagsInput\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@input=\x22selfTagsInput\x20=\x20$event.target.value\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@keydown.enter=\x22saveSelfTags()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20placeholder=\x22tags,\x20comma-separated\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-family:monospace;font-size:11px;width:160px;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22saveSelfTags()\x22\x20:disabled=\x22savingSelf\x22\x20style=\x22font-size:11px;padding:3px\x208px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{savingSelf\x20?\x20\x27…\x27\x20:\x20\x27Save\x20tags\x27}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22saveSelfError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;color:var(--okdb-danger);\x22>{{saveSelfError}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Sub-tabs\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;gap:2px;padding:2px;background:var(--okdb-app-surface);border-radius:8px;border:1px\x20solid\x20var(--okdb-app-border);flex-shrink:0;align-self:flex-start;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22tab=\x27topology\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22tab===\x27topology\x27?\x27background:var(--okdb-app-surface-2);color:var(--okdb-accent);border-color:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent);\x27:\x27background:transparent;border-color:transparent;opacity:.7;\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22padding:4px\x2014px;border-radius:6px;font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Topology\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22tab=\x27retention\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22tab===\x27retention\x27?\x27background:var(--okdb-app-surface-2);color:var(--okdb-accent);border-color:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent);\x27:\x27background:transparent;border-color:transparent;opacity:.7;\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22padding:4px\x2014px;border-radius:6px;font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Retention\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22tab\x20===\x20\x27topology\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<sync-topology\x20style=\x22flex:1;min-height:300px;\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22tab\x20===\x20\x27retention\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<sync-retention\x20style=\x22flex:1;min-height:300px;\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20'};
1
+ const _0x782ef3=_0x583b;(function(_0x64a43f,_0x7eb8f6){const _0x5b358a=_0x583b,_0x462ac2=_0x64a43f();while(!![]){try{const _0x2a9202=-parseInt(_0x5b358a(0x16e))/0x1+-parseInt(_0x5b358a(0x15f))/0x2+-parseInt(_0x5b358a(0x165))/0x3*(parseInt(_0x5b358a(0x160))/0x4)+parseInt(_0x5b358a(0x156))/0x5+-parseInt(_0x5b358a(0x15b))/0x6*(-parseInt(_0x5b358a(0x158))/0x7)+-parseInt(_0x5b358a(0x15e))/0x8+-parseInt(_0x5b358a(0x14f))/0x9*(-parseInt(_0x5b358a(0x14b))/0xa);if(_0x2a9202===_0x7eb8f6)break;else _0x462ac2['push'](_0x462ac2['shift']());}catch(_0x190ddc){_0x462ac2['push'](_0x462ac2['shift']());}}}(_0xfb30,0x57cb2));function _0xfb30(){const _0x516f48=['16723vsqvNv','join','\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;flex-direction:column;gap:14px;height:100%;min-height:0;\x22>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Self-node\x20identity\x20header\x20bar\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selfNode\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;align-items:center;gap:14px;padding:10px\x2014px;background:var(--okdb-app-surface);border:1px\x20solid\x20var(--okdb-app-border);border-radius:10px;flex-shrink:0;flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.45;white-space:nowrap;\x22>This\x20Node</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22display:flex;align-items:center;gap:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22width:7px;height:7px;border-radius:50%;background:var(--okdb-success);flex-shrink:0;\x22></span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-weight:600;font-size:13px;\x22>{{selfNode.name\x20||\x20selfNode.id?.slice(0,8)}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selfNode.id\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-family:monospace;font-size:11px;opacity:.45;cursor:pointer;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22copyText(selfNode.id)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20title=\x22Click\x20to\x20copy\x20full\x20ID\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>{{selfNode.id?.slice(0,14)}}…\x20⎘</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selfClock\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;opacity:.45;\x22>clock:\x20<span\x20style=\x22font-family:monospace;\x22>{{selfClock}}</span></span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selfNode.address\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-family:monospace;font-size:11px;opacity:.45;white-space:nowrap;\x22>{{selfNode.address}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Inline\x20tag\x20editor\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22selfTagsInput\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@input=\x22selfTagsInput\x20=\x20$event.target.value\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@keydown.enter=\x22saveSelfTags()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20placeholder=\x22tags,\x20comma-separated\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-family:monospace;font-size:11px;width:160px;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22saveSelfTags()\x22\x20:disabled=\x22savingSelf\x22\x20style=\x22font-size:11px;padding:3px\x208px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{savingSelf\x20?\x20\x27…\x27\x20:\x20\x27Save\x20tags\x27}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22saveSelfError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;color:var(--okdb-danger);\x22>{{saveSelfError}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Sub-tabs\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;gap:2px;padding:2px;background:var(--okdb-app-surface);border-radius:8px;border:1px\x20solid\x20var(--okdb-app-border);flex-shrink:0;align-self:flex-start;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22tab=\x27topology\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22tab===\x27topology\x27?\x27background:var(--okdb-app-surface-2);color:var(--okdb-accent);border-color:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent);\x27:\x27background:transparent;border-color:transparent;opacity:.7;\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22padding:4px\x2014px;border-radius:6px;font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Topology\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22tab=\x27retention\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22tab===\x27retention\x27?\x27background:var(--okdb-app-surface-2);color:var(--okdb-accent);border-color:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent);\x27:\x27background:transparent;border-color:transparent;opacity:.7;\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22padding:4px\x2014px;border-radius:6px;font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Retention\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22tab\x20===\x20\x27topology\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<sync-topology\x20style=\x22flex:1;min-height:300px;\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22tab\x20===\x20\x27retention\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<sync-retention\x20style=\x22flex:1;min-height:300px;\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20','618TkFHhf','writeText','clipboard','5609512orxMJG','146892URWBZO','22128uLfSPw','API','node','message','topology','291ZXNXVC','saveSelfError','savingSelf','stringify','application/json','filter','Node\x20tags\x20saved','selfTagList','/sync/self','83227uNMJDu','selfNode','/sync/info','system-sync-panel','100IhBhNF','map','clock','selfClocks','1181187zpnkXZ','json','shared','toast','trim','data','selfTagsInput','977855GiFrww','tags'];_0xfb30=function(){return _0x516f48;};return _0xfb30();}import _0x57d1af from'../../sync/parts/sync-topology.ok.js';function _0x583b(_0x434837,_0x16d2d1){_0x434837=_0x434837-0x14a;const _0xfb303e=_0xfb30();let _0x583b40=_0xfb303e[_0x434837];return _0x583b40;}import _0x2f4925 from'../../sync/parts/sync-retention.ok.js';export default{'tag':_0x782ef3(0x14a),'unwrap':!0x0,'dependencies':[_0x57d1af,_0x2f4925],'context':_0x513cb5=>({'tab':_0x782ef3(0x164),'selfNode':null,'selfClock':null,'selfClocks':{},'selfTagsInput':'','savingSelf':!0x1,'saveSelfError':null,get 'selfTagList'(){const _0x49c283=_0x782ef3;return(this[_0x49c283(0x155)]||'')['split'](',')[_0x49c283(0x14c)](_0x304e45=>_0x304e45[_0x49c283(0x153)]())[_0x49c283(0x16a)](Boolean);},async 'loadSelf'(){const _0x5597aa=_0x782ef3;try{const _0x37b1df=await fetch(__ENV__[_0x5597aa(0x161)]+_0x5597aa(0x170)),_0xc1f2a2=await _0x37b1df[_0x5597aa(0x150)]();_0x37b1df['ok']&&(this[_0x5597aa(0x16f)]=_0xc1f2a2[_0x5597aa(0x154)]?.[_0x5597aa(0x162)]??null,this['selfClock']=_0xc1f2a2[_0x5597aa(0x154)]?.[_0x5597aa(0x14d)]??null,this[_0x5597aa(0x14e)]=_0xc1f2a2[_0x5597aa(0x154)]?.['clocks']??{},this[_0x5597aa(0x155)]=(this[_0x5597aa(0x16f)]?.[_0x5597aa(0x157)]??[])[_0x5597aa(0x159)](',\x20'));}catch{}},async 'saveSelfTags'(){const _0x2221ef=_0x782ef3;if(!this['savingSelf']){this[_0x2221ef(0x167)]=!0x0,this[_0x2221ef(0x166)]=null;try{const _0x5ac262=await fetch(__ENV__['API']+_0x2221ef(0x16d),{'method':'PATCH','headers':{'Content-Type':_0x2221ef(0x169)},'body':JSON[_0x2221ef(0x168)]({'tags':this[_0x2221ef(0x16c)]})}),_0x598ba6=await _0x5ac262[_0x2221ef(0x150)]();if(!_0x5ac262['ok'])throw new Error(_0x598ba6?.['error']?.[_0x2221ef(0x163)]||'Failed\x20to\x20save\x20node\x20tags');this[_0x2221ef(0x16f)]=_0x598ba6[_0x2221ef(0x154)]?.[_0x2221ef(0x162)]??this['selfNode'],this[_0x2221ef(0x155)]=(this[_0x2221ef(0x16f)]?.[_0x2221ef(0x157)]??[])[_0x2221ef(0x159)](',\x20'),_0x513cb5['$ok'][_0x2221ef(0x151)]?.[_0x2221ef(0x152)]?.['success']?.(_0x2221ef(0x16b));}catch(_0x16b003){this[_0x2221ef(0x166)]=_0x16b003?.[_0x2221ef(0x163)]||String(_0x16b003);}finally{this[_0x2221ef(0x167)]=!0x1;}}},'copyText'(_0x2b895d){const _0x4ca9d8=_0x782ef3;navigator[_0x4ca9d8(0x15d)]?.[_0x4ca9d8(0x15c)](_0x2b895d)['catch'](()=>{});}}),async 'mount'(){await this['loadSelf']();},'template':_0x782ef3(0x15a)};
@@ -1 +1 @@
1
- const _0x4a6ec4=_0x4177;function _0x4177(_0x26fe7e,_0x49ae6f){_0x26fe7e=_0x26fe7e-0xdb;const _0x384f45=_0x384f();let _0x4177df=_0x384f45[_0x26fe7e];return _0x4177df;}(function(_0x3d9419,_0x5375f5){const _0x1690eb=_0x4177,_0x1d553e=_0x3d9419();while(!![]){try{const _0x1e589a=-parseInt(_0x1690eb(0x138))/0x1*(-parseInt(_0x1690eb(0x10d))/0x2)+parseInt(_0x1690eb(0x12f))/0x3+-parseInt(_0x1690eb(0x120))/0x4*(parseInt(_0x1690eb(0x128))/0x5)+parseInt(_0x1690eb(0xf4))/0x6*(parseInt(_0x1690eb(0x12d))/0x7)+-parseInt(_0x1690eb(0x10b))/0x8+-parseInt(_0x1690eb(0xde))/0x9+parseInt(_0x1690eb(0x11d))/0xa;if(_0x1e589a===_0x5375f5)break;else _0x1d553e['push'](_0x1d553e['shift']());}catch(_0x386f88){_0x1d553e['push'](_0x1d553e['shift']());}}}(_0x384f,0xf0e87));import _0x3b148e from'@toolkit/elements/ok-icon.ok.js';import _0x157863 from'@toolkit/core/ok-overlay.ok.js';import _0x25f5e6 from'../../../components/ok-text-monaco-input.ok.js';import _0x5593ea from'../../../components/field-path-input.ok.js';const i=[{'value':_0x4a6ec4(0x124),'label':_0x4a6ec4(0x124),'needsField':!0x1,'isRef':!0x1},{'value':_0x4a6ec4(0x112),'label':'$sum','needsField':!0x0,'isRef':!0x1},{'value':_0x4a6ec4(0xe4),'label':_0x4a6ec4(0xe4),'needsField':!0x0,'isRef':!0x1},{'value':_0x4a6ec4(0x107),'label':_0x4a6ec4(0x107),'needsField':!0x0,'isRef':!0x1},{'value':_0x4a6ec4(0x10f),'label':_0x4a6ec4(0x10f),'needsField':!0x0,'isRef':!0x1},{'value':_0x4a6ec4(0x129),'label':_0x4a6ec4(0x129),'needsField':!0x0,'isRef':!0x1},{'value':_0x4a6ec4(0x126),'label':'$ref','needsField':!0x1,'isRef':!0x0}],a=i[_0x4a6ec4(0x113)](_0x44df3b=>!_0x44df3b[_0x4a6ec4(0x139)]);function o(){const _0x24a9f7=_0x4a6ec4;return{'name':'count','op':_0x24a9f7(0x124),'field':'','items':!0x1};}function d(_0x49b8e7){const _0x53514f=_0x4a6ec4,_0x422356={};for(const _0x29add of _0x49b8e7[_0x53514f(0xe6)]||[])_0x29add[_0x53514f(0x123)][_0x53514f(0x103)]()&&('$count'===_0x29add['op']?(_0x422356[_0x29add['name']]={'$count':!0x0},_0x29add['items']&&(_0x422356[_0x29add[_0x53514f(0x123)]][_0x53514f(0xf6)]=!0x0)):(_0x422356[_0x29add[_0x53514f(0x123)]]={[_0x29add['op']]:_0x29add['field'][_0x53514f(0x103)]()||'_id'},_0x29add['items']&&(_0x422356[_0x29add[_0x53514f(0x123)]][_0x53514f(0xf6)]=!0x0)));const _0x4fa984={'type':_0x49b8e7[_0x53514f(0x12c)]||'','key':_0x49b8e7[_0x53514f(0xe8)]||''};Object[_0x53514f(0x108)](_0x422356)[_0x53514f(0x11f)]&&(_0x4fa984[_0x53514f(0x132)]=_0x422356);try{const _0x594b58=(_0x49b8e7[_0x53514f(0xea)]||'')['trim']();_0x594b58&&(_0x4fa984['filter']=JSON[_0x53514f(0x12a)](_0x594b58));}catch{}try{const _0x1590be=(_0x49b8e7[_0x53514f(0xdb)]||'')[_0x53514f(0x103)]();_0x1590be&&(_0x4fa984['map']=JSON[_0x53514f(0x12a)](_0x1590be));}catch{}return _0x4fa984;}function c(_0x1d54d6,_0xbdea9c,_0x5112b8){const _0xc13573=_0x4a6ec4,_0x102ea0={};for(const _0x3bcc26 of _0x1d54d6)_0x3bcc26[_0xc13573(0x123)]['trim']()&&(_0xc13573(0x126)===_0x3bcc26['op']?_0x102ea0[_0x3bcc26[_0xc13573(0x123)]]={'$ref':d(_0x3bcc26)}:'$count'===_0x3bcc26['op']?(_0x102ea0[_0x3bcc26[_0xc13573(0x123)]]={'$count':!0x0},_0x3bcc26['items']&&(_0x102ea0[_0x3bcc26[_0xc13573(0x123)]][_0xc13573(0xf6)]=!0x0)):(_0x102ea0[_0x3bcc26[_0xc13573(0x123)]]={[_0x3bcc26['op']]:_0x3bcc26[_0xc13573(0x11b)][_0xc13573(0x103)]()||_0xc13573(0xeb)},_0x3bcc26[_0xc13573(0xf6)]&&(_0x102ea0[_0x3bcc26[_0xc13573(0x123)]]['items']=!0x0)));const _0x2c559a={'reduce':_0x102ea0};try{const _0x342e84=_0xbdea9c['trim']();_0x342e84&&(_0x2c559a[_0xc13573(0x113)]=JSON[_0xc13573(0x12a)](_0x342e84));}catch{}try{const _0x559e62=_0x5112b8[_0xc13573(0x103)]();_0x559e62&&(_0x2c559a[_0xc13573(0x13c)]=JSON['parse'](_0x559e62));}catch{}return _0x2c559a;}function l(_0x18d572){const _0x2cac50=_0x4a6ec4,_0x1cd3b5=[];for(const [_0x1edec5,_0x439fc2]of Object[_0x2cac50(0xf1)](_0x18d572??{})){const _0xba78d1=Object[_0x2cac50(0x108)](_0x439fc2)[_0x2cac50(0xdf)](_0x184c2a=>'items'!==_0x184c2a)??_0x2cac50(0x124);_0x1cd3b5[_0x2cac50(0xe7)]({'name':_0x1edec5,'op':_0xba78d1,'field':_0x2cac50(0x121)==typeof _0x439fc2[_0xba78d1]?_0x439fc2[_0xba78d1]:'','items':!!_0x439fc2[_0x2cac50(0xf6)]});}return _0x1cd3b5[_0x2cac50(0x11f)]?_0x1cd3b5:[{'name':_0x2cac50(0xfd),'op':_0x2cac50(0x124),'field':'','items':!0x1}];}function n(_0x13cbbe){const _0x50df61=_0x4a6ec4,_0xef120=_0x13cbbe[_0x50df61(0x111)]('.')['pop']();return'_id'!==_0xef120&&(_0xef120[_0x50df61(0x11e)]('Id')||_0xef120['endsWith'](_0x50df61(0xeb))||_0xef120[_0x50df61(0x11e)]('ID'));}function p(_0x5dedfb){const _0x467a35=_0x4a6ec4;return _0x5dedfb&&Object[_0x467a35(0x108)](_0x5dedfb)['length']?Object[_0x467a35(0xf1)](_0x5dedfb)[_0x467a35(0x13c)](([_0x4e44db,_0x1aa924])=>({'path':_0x4e44db,'types':Array[_0x467a35(0xdd)](_0x1aa924)?_0x1aa924:[],'hint':n(_0x4e44db)?'fk':Array[_0x467a35(0xdd)](_0x1aa924)&&_0x1aa924['includes']('geo')?_0x467a35(0x116):null})):[];}export default{'tag':_0x4a6ec4(0x110),'dependencies':[_0x157863,_0x3b148e,_0x25f5e6,_0x5593ea],'attr':{'modal':{},'onDone':{}},'context':_0x16e851=>({'busy':!0x1,'error':null,'name':'','sourceType':'','typesData':[],'typesLoading':!0x1,'deepPaths':{},'deepPathsLoading':!0x1,get 'types'(){const _0x5e7a69=_0x4a6ec4;return this[_0x5e7a69(0x122)]['map'](_0x821ac8=>_0x821ac8[_0x5e7a69(0x12e)]??_0x821ac8[_0x5e7a69(0x123)]??String(_0x821ac8))[_0x5e7a69(0x113)](_0x7f44b2=>_0x5e7a69(0x121)==typeof _0x7f44b2&&!_0x7f44b2['startsWith']('~'))[_0x5e7a69(0x105)]();},get 'fieldItems'(){const _0x4e91b0=_0x4a6ec4;return p(this[_0x4e91b0(0x10e)]);},get 'opOptions'(){return i;},get 'refOpOptions'(){return a;},'defMode':'visual','definitionStr':_0x4a6ec4(0xff),'vis_reducers':[Object[_0x4a6ec4(0x127)]({'name':'','op':_0x4a6ec4(0x124),'field':'','items':!0x1,'isRef':!0x1,'refExpanded':!0x1,'refType':'','refKey':'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':[{'name':'count','op':_0x4a6ec4(0x124),'field':'','items':!0x1}],'refFilterStr':'','refMapStr':'','refShowFilter':!0x1,'refShowMap':!0x1},{'name':_0x4a6ec4(0xfd),'op':_0x4a6ec4(0x124)})],'vis_filterStr':'','vis_mapStr':'','vis_showFilter':!0x1,'vis_showMap':!0x1,async 'loadTypes'(){const _0x1c40d2=_0x4a6ec4;this[_0x1c40d2(0x114)]=!0x0;try{const _0x12f142=_0x16e851[_0x1c40d2(0x117)][_0x1c40d2(0xf2)][_0x1c40d2(0xec)][_0x1c40d2(0x12b)],_0x28740b=await fetch(_0x12f142+_0x1c40d2(0xf0));if(!_0x28740b['ok'])return void(this[_0x1c40d2(0x122)]=[]);const _0x333f85=await _0x28740b['json'](),_0x4783db=_0x333f85['data']??_0x333f85['result']??[];this[_0x1c40d2(0x122)]=Array[_0x1c40d2(0xdd)](_0x4783db)?_0x4783db:Object[_0x1c40d2(0xf1)](_0x4783db)[_0x1c40d2(0x13c)](([_0x253a90,_0x4a26b1])=>({'type':_0x253a90,..._0x1c40d2(0x101)==typeof _0x4a26b1?_0x4a26b1:{}}));}catch{this[_0x1c40d2(0x122)]=[];}finally{this[_0x1c40d2(0x114)]=!0x1;}},async 'loadDeepPaths'(_0x63779f){const _0x3570a2=_0x4a6ec4;if(_0x63779f){this[_0x3570a2(0x11c)]=!0x0;try{const _0x6339d6=_0x16e851[_0x3570a2(0x117)][_0x3570a2(0xf2)][_0x3570a2(0xec)][_0x3570a2(0x12b)],_0x612db7=await fetch(_0x6339d6+_0x3570a2(0xf7)+encodeURIComponent(_0x63779f)+_0x3570a2(0x131));if(!_0x612db7['ok'])return void(this[_0x3570a2(0x10e)]={});const _0x1041fc=await _0x612db7[_0x3570a2(0xfe)]();this[_0x3570a2(0x10e)]=(_0x1041fc['data']??_0x1041fc[_0x3570a2(0xe9)])?.[_0x3570a2(0x11a)]??{};}catch{this[_0x3570a2(0x10e)]={};}finally{this[_0x3570a2(0x11c)]=!0x1;}}else this[_0x3570a2(0x10e)]={};},async 'loadRefDeepPaths'(_0x1a1efc,_0x4fc1fa){const _0x249c0b=_0x4a6ec4;_0x1a1efc['refDeepLoading']=!0x0,this[_0x249c0b(0xf5)]=[...this[_0x249c0b(0xf5)]];try{const _0x54b9b2=_0x16e851[_0x249c0b(0x117)][_0x249c0b(0xf2)]['okdb']['apiBase'],_0x71ace4=await fetch(_0x54b9b2+_0x249c0b(0xf7)+encodeURIComponent(_0x4fc1fa)+_0x249c0b(0x131));if(!_0x71ace4['ok'])return void(_0x1a1efc[_0x249c0b(0xe0)]={});const _0x405549=await _0x71ace4[_0x249c0b(0xfe)]();_0x1a1efc['refDeepPaths']=(_0x405549['data']??_0x405549[_0x249c0b(0xe9)])?.['paths']??{};}catch{_0x1a1efc[_0x249c0b(0xe0)]={};}finally{_0x1a1efc['refDeepLoading']=!0x1,this['vis_reducers']=[...this[_0x249c0b(0xf5)]];}},'setSourceType'(_0x346a06){const _0x896592=_0x4a6ec4;this[_0x896592(0x118)]=_0x346a06,_0x346a06?this[_0x896592(0xed)](_0x346a06):this[_0x896592(0x10e)]={};},'setDefMode'(_0x43c33a){const _0x2fd841=_0x4a6ec4;if(_0x43c33a!==this[_0x2fd841(0x136)]){if(_0x2fd841(0x13a)===this[_0x2fd841(0x136)])this[_0x2fd841(0x13b)]=JSON[_0x2fd841(0xdc)](c(this[_0x2fd841(0xf5)],this['vis_filterStr'],this[_0x2fd841(0x133)]),null,0x2);else try{const _0x410a6e=function(_0x2f7a25){const _0x3e97b0=_0x2fd841,_0x12e6de=[];for(const [_0x3ca2cf,_0x289c5c]of Object[_0x3e97b0(0xf1)](_0x2f7a25[_0x3e97b0(0x132)]??{}))if(_0x289c5c[_0x3e97b0(0x126)]){const _0x41bfa1=_0x289c5c[_0x3e97b0(0x126)];_0x12e6de[_0x3e97b0(0xe7)]({'name':_0x3ca2cf,'op':_0x3e97b0(0x126),'field':'','items':!0x1,'isRef':!0x0,'refExpanded':!0x0,'refType':_0x41bfa1['type']||'','refKey':_0x41bfa1[_0x3e97b0(0xe3)]||'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':l(_0x41bfa1[_0x3e97b0(0x132)]),'refFilterStr':_0x41bfa1[_0x3e97b0(0x113)]?JSON['stringify'](_0x41bfa1['filter'],null,0x2):'','refMapStr':_0x41bfa1[_0x3e97b0(0x13c)]?JSON['stringify'](_0x41bfa1[_0x3e97b0(0x13c)],null,0x2):'','refShowFilter':!!_0x41bfa1[_0x3e97b0(0x113)]&&Object['keys'](_0x41bfa1['filter'])[_0x3e97b0(0x11f)]>0x0,'refShowMap':!!_0x41bfa1[_0x3e97b0(0x13c)]&&Object[_0x3e97b0(0x108)](_0x41bfa1[_0x3e97b0(0x13c)])[_0x3e97b0(0x11f)]>0x0});}else{const _0x25a854=Object[_0x3e97b0(0x108)](_0x289c5c)['find'](_0x1ae2ce=>_0x3e97b0(0xf6)!==_0x1ae2ce)??_0x3e97b0(0x124);_0x12e6de[_0x3e97b0(0xe7)]({'name':_0x3ca2cf,'op':_0x25a854,'field':_0x3e97b0(0x121)==typeof _0x289c5c[_0x25a854]?_0x289c5c[_0x25a854]:'','items':!!_0x289c5c[_0x3e97b0(0xf6)],'isRef':!0x1,'refExpanded':!0x1,'refType':'','refKey':'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':[o()],'refFilterStr':'','refMapStr':'','refShowFilter':!0x1,'refShowMap':!0x1});}return _0x12e6de['length']||_0x12e6de[_0x3e97b0(0xe7)]({'name':'','op':'$count','field':'','items':!0x1,'isRef':!0x1,'refExpanded':!0x1,'refType':'','refKey':'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':[{'name':_0x3e97b0(0xfd),'op':_0x3e97b0(0x124),'field':'','items':!0x1}],'refFilterStr':'','refMapStr':'','refShowFilter':!0x1,'refShowMap':!0x1}),{'reducers':_0x12e6de,'filterStr':_0x2f7a25[_0x3e97b0(0x113)]&&Object[_0x3e97b0(0x108)](_0x2f7a25[_0x3e97b0(0x113)])[_0x3e97b0(0x11f)]?JSON[_0x3e97b0(0xdc)](_0x2f7a25[_0x3e97b0(0x113)],null,0x2):'','mapStr':_0x2f7a25['map']&&Object[_0x3e97b0(0x108)](_0x2f7a25['map'])['length']?JSON[_0x3e97b0(0xdc)](_0x2f7a25[_0x3e97b0(0x13c)],null,0x2):''};}(JSON['parse'](this[_0x2fd841(0x13b)]));this[_0x2fd841(0xf5)]=_0x410a6e[_0x2fd841(0x104)],this[_0x2fd841(0xe5)]=_0x410a6e[_0x2fd841(0x115)],this[_0x2fd841(0x133)]=_0x410a6e['mapStr'];for(const _0x401389 of this[_0x2fd841(0xf5)])_0x2fd841(0x126)===_0x401389['op']&&_0x401389[_0x2fd841(0x12c)]&&this[_0x2fd841(0x102)](_0x401389,_0x401389[_0x2fd841(0x12c)]);}catch{}this[_0x2fd841(0x136)]=_0x43c33a;}},'addReducer'(){const _0x4a5930=_0x4a6ec4;this[_0x4a5930(0xf5)]=[...this[_0x4a5930(0xf5)],{'name':'','op':_0x4a5930(0x124),'field':'','items':!0x1,'isRef':!0x1,'refExpanded':!0x1,'refType':'','refKey':'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':[{'name':'count','op':'$count','field':'','items':!0x1}],'refFilterStr':'','refMapStr':'','refShowFilter':!0x1,'refShowMap':!0x1}];},'removeReducer'(_0x4414a4){const _0x296e46=_0x4a6ec4;this[_0x296e46(0xf5)]=this[_0x296e46(0xf5)][_0x296e46(0x113)](_0x209611=>_0x209611!==_0x4414a4);},'setReducerProp'(_0x2d42d5,_0x2bafb9,_0x341290){const _0xbb3812=_0x4a6ec4;_0x2d42d5[_0x2bafb9]=_0x341290,'op'===_0x2bafb9&&(_0x2d42d5[_0xbb3812(0x139)]='$ref'===_0x341290,_0xbb3812(0x126)!==_0x341290?_0x2d42d5[_0xbb3812(0x106)]=!0x1:_0x2d42d5[_0xbb3812(0x106)]||(_0x2d42d5[_0xbb3812(0x106)]=!0x0)),this['vis_reducers']=[...this[_0xbb3812(0xf5)]];},'toggleRefExpand'(_0x3a9b91){const _0x5b15d1=_0x4a6ec4;_0x3a9b91[_0x5b15d1(0x106)]=!_0x3a9b91[_0x5b15d1(0x106)],this[_0x5b15d1(0xf5)]=[...this[_0x5b15d1(0xf5)]];},'setRefProp'(_0x4cda4d,_0x3c7fbf,_0x58b4e0){const _0x54fc8a=_0x4a6ec4;_0x4cda4d[_0x3c7fbf]=_0x58b4e0,this[_0x54fc8a(0xf5)]=[...this[_0x54fc8a(0xf5)]];},'setRefType'(_0x1c27ca,_0x42cbd1){const _0xba554e=_0x4a6ec4;_0x1c27ca[_0xba554e(0x12c)]=_0x42cbd1,_0x1c27ca[_0xba554e(0xe8)]='',_0x1c27ca['refDeepPaths']={},this['vis_reducers']=[...this['vis_reducers']],_0x42cbd1&&this[_0xba554e(0x102)](_0x1c27ca,_0x42cbd1);},'refFieldItems':_0x49679f=>p(_0x49679f[_0x4a6ec4(0xe0)]),'addRefReducer'(_0x15168f){const _0x20ab23=_0x4a6ec4;_0x15168f[_0x20ab23(0xe6)]=[..._0x15168f[_0x20ab23(0xe6)]||[],{'name':_0x20ab23(0xfd),'op':_0x20ab23(0x124),'field':'','items':!0x1}],this['vis_reducers']=[...this[_0x20ab23(0xf5)]];},'removeRefReducer'(_0x57e112,_0x64d081){const _0x2ecf1e=_0x4a6ec4;_0x57e112[_0x2ecf1e(0xe6)]=_0x57e112['refReducers']['filter'](_0x239fa7=>_0x239fa7!==_0x64d081),this['vis_reducers']=[...this[_0x2ecf1e(0xf5)]];},'setRefReducerProp'(_0x4cd402,_0x40b6a8,_0x3f23c0,_0x4f6dee){const _0x576d34=_0x4a6ec4;_0x40b6a8[_0x3f23c0]=_0x4f6dee,_0x4cd402[_0x576d34(0xe6)]=[..._0x4cd402['refReducers']],this[_0x576d34(0xf5)]=[...this[_0x576d34(0xf5)]];},'opNeedsField':_0x1c702d=>i[_0x4a6ec4(0xdf)](_0x14d38f=>_0x14d38f[_0x4a6ec4(0x137)]===_0x1c702d)?.[_0x4a6ec4(0x134)]??!0x1,'opIsRef':_0x31926e=>_0x4a6ec4(0x126)===_0x31926e,async 'create'(){const _0x1342dd=_0x4a6ec4;this[_0x1342dd(0x119)]=null;const _0x14f10a=this[_0x1342dd(0x123)][_0x1342dd(0x103)]();if(!_0x14f10a)return void(this[_0x1342dd(0x119)]='Name\x20is\x20required');if(/\s/[_0x1342dd(0xee)](_0x14f10a)||_0x14f10a[_0x1342dd(0x135)]('~'))return void(this[_0x1342dd(0x119)]='Name\x20must\x20not\x20contain\x20spaces\x20or\x20start\x20with\x20~');const _0x5b38d8=this[_0x1342dd(0x118)][_0x1342dd(0x103)]();if(!_0x5b38d8)return void(this['error']=_0x1342dd(0xf8));let _0x5b06a1;if(_0x1342dd(0x13a)===this[_0x1342dd(0x136)])_0x5b06a1=c(this[_0x1342dd(0xf5)],this[_0x1342dd(0xe5)],this[_0x1342dd(0x133)]);else try{_0x5b06a1=JSON[_0x1342dd(0x12a)](this[_0x1342dd(0x13b)]);}catch(_0x3b89db){return void(this['error']=_0x1342dd(0xfc)+_0x3b89db[_0x1342dd(0x109)]);}if(_0x5b06a1['type']=_0x5b38d8,_0x5b06a1[_0x1342dd(0x132)]&&Object[_0x1342dd(0x108)](_0x5b06a1[_0x1342dd(0x132)])[_0x1342dd(0x11f)]){this[_0x1342dd(0xe2)]=!0x0;try{const _0x50f26c=_0x16e851[_0x1342dd(0x117)][_0x1342dd(0xf2)][_0x1342dd(0xec)]['apiBase'],_0x2da391=await fetch(_0x50f26c+_0x1342dd(0xe1),{'method':'POST','headers':{'Content-Type':_0x1342dd(0xf9)},'body':JSON[_0x1342dd(0xdc)]({'name':_0x14f10a,..._0x5b06a1})});if(!_0x2da391['ok']){const _0xa3aeed=await _0x2da391[_0x1342dd(0xfe)]()[_0x1342dd(0x10a)](()=>({}));throw new Error(_0xa3aeed?.[_0x1342dd(0x119)]?.['message']??_0x1342dd(0xfa));}_0x16e851[_0x1342dd(0x100)][_0x1342dd(0xfb)]?.(_0x14f10a),_0x16e851['$attr'][_0x1342dd(0x130)]?.[_0x1342dd(0x10c)]?.();}catch(_0x15994c){this[_0x1342dd(0x119)]=_0x15994c[_0x1342dd(0x109)],_0x16e851[_0x1342dd(0x117)][_0x1342dd(0x125)]?.['toast']?.[_0x1342dd(0x119)]?.(this[_0x1342dd(0x119)]);}finally{this[_0x1342dd(0xe2)]=!0x1;}}else this[_0x1342dd(0x119)]='At\x20least\x20one\x20reducer\x20is\x20required';},'cancel'(){const _0xf92802=_0x4a6ec4;_0x16e851[_0xf92802(0x100)][_0xf92802(0x130)]?.[_0xf92802(0x10c)]?.();}}),'mount'(_0x3e4424){const _0x439721=_0x4a6ec4;this[_0x439721(0xf3)]();},'style':'.cvm-body,create-view-modal{display:flex;flex-direction:column}.cvm-body{gap:14px}.cvm-row2{display:grid;grid-template-columns:1fr\x201fr;gap:12px}.cvm-field{display:flex;flex-direction:column;gap:5px}.cvm-label{font-size:11px;color:var(--okdb-app-fg-muted);text-transform:uppercase;letter-spacing:.07em;font-weight:600}.cvm-card{padding:14px;border:1px\x20solid\x20var(--okdb-app-border);border-radius:10px;background:var(--okdb-app-bg-deep);display:flex;flex-direction:column;gap:10px}.cvm-input{padding:7px\x209px}.cvm-input,.cvm-select{border:1px\x20solid\x20var(--okdb-app-border);border-radius:6px;background:var(--okdb-app-bg-deep);color:var(--okdb-app-fg);font-size:12px;font-family:inherit;box-sizing:border-box;width:100%}.cvm-input:focus,.cvm-select:focus{outline:0;border-color:var(--okdb-accent);box-shadow:0\x200\x200\x202px\x20color-mix(in\x20srgb,var(--okdb-accent)\x2012%,transparent)}.cvm-select{cursor:pointer;appearance:none;background-image:url(\x22data:image/svg+xml,%3Csvg\x20xmlns=\x27http://www.w3.org/2000/svg\x27\x20width=\x2712\x27\x20height=\x2712\x27\x20viewBox=\x270\x200\x2024\x2024\x27\x20fill=\x27none\x27\x20stroke=\x27%23888\x27\x20stroke-width=\x272\x27%3E%3Cpolyline\x20points=\x276\x209\x2012\x2015\x2018\x209\x27/%3E%3C/svg%3E\x22);background-repeat:no-repeat;background-position:right\x208px\x20center;padding:7px\x2028px\x207px\x209px}.cvm-error,.cvm-hint{font-size:11px;color:var(--okdb-app-fg-subtle);line-height:1.45}.cvm-error{font-size:12px;color:var(--okdb-danger);padding:9px\x2012px;background:color-mix(in\x20srgb,var(--okdb-danger)\x2010%,transparent);border:1px\x20solid\x20color-mix(in\x20srgb,var(--okdb-danger)\x2025%,transparent);border-radius:6px}.cvm-actions{display:flex;gap:8px;justify-content:flex-end}.cvm-btn{padding:7px\x2016px;border-radius:6px;border:1px\x20solid;background:0\x200;font-size:12px;font-weight:500;cursor:pointer;transition:all\x20.15s\x20ease}.cvm-btn--primary{border-color:var(--okdb-accent);color:var(--okdb-accent)}.cvm-btn--primary:hover{background:color-mix(in\x20srgb,var(--okdb-accent)\x2012%,transparent)}.cvm-btn--secondary{border-color:var(--okdb-app-border);color:var(--okdb-app-fg-muted)}.cvm-btn--secondary:hover{border-color:var(--okdb-accent);color:var(--okdb-app-fg);background:color-mix(in\x20srgb,var(--okdb-accent)\x206%,transparent)}.cvm-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.cvm-def-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px\x20solid\x20var(--okdb-app-border)}.cvm-mode-toggle{display:flex;border:1px\x20solid\x20var(--okdb-app-border);border-radius:5px;overflow:hidden}.cvm-mode-btn{padding:4px\x2012px;border:0;background:0\x200;color:var(--okdb-app-fg-muted);font-size:11px;font-weight:500;cursor:pointer;transition:all\x20.15s\x20ease}.cvm-mode-btn+.cvm-mode-btn{border-left:1px\x20solid\x20var(--okdb-app-border)}.cvm-mode-btn--active{background:color-mix(in\x20srgb,var(--okdb-accent)\x2014%,transparent);color:var(--okdb-accent)}.cvm-visual{display:flex;flex-direction:column;gap:12px}.cvm-section-hdr{font-size:10px;color:var(--okdb-app-fg-subtle);text-transform:uppercase;letter-spacing:.07em;font-weight:600;margin-bottom:6px}.cvm-col-headers{display:flex;gap:6px;margin-bottom:3px}.cvm-col-h{font-size:10px;color:var(--okdb-app-fg-subtle)}.cvm-reducer-list{display:flex;flex-direction:column;gap:5px}.cvm-reducer-row{display:flex;align-items:center;gap:6px}.cvm-r-key,.cvm-r-op{flex:0\x200\x20136px;min-width:0}.cvm-r-op{flex:0\x200\x20106px}.cvm-r-field{flex:1;min-width:0}.cvm-r-del,.cvm-r-items{display:flex;align-items:center}.cvm-r-items{flex:0\x200\x2058px;gap:4px;font-size:11px;color:var(--okdb-app-fg-muted);user-select:none;cursor:pointer}.cvm-r-del{flex:0\x200\x2022px;justify-content:center}.cvm-r-del-btn{background:0\x200;border:0;cursor:pointer;color:var(--okdb-app-fg-subtle);padding:3px\x204px;border-radius:3px;font-size:14px;line-height:1;transition:color\x20.12s\x20ease}.cvm-r-del-btn:hover{color:var(--okdb-danger)}.cvm-r-ref-btn{flex:1;padding:7px\x2010px;border:1px\x20dashed\x20var(--okdb-app-border);border-radius:6px;background:0\x200;color:var(--okdb-app-fg-muted);font-size:11px;cursor:pointer;text-align:left;min-width:0;transition:all\x20.12s\x20ease}.cvm-add-reducer-btn:hover,.cvm-r-ref-btn:hover{border-color:var(--okdb-accent);color:var(--okdb-accent)}.cvm-r-spacer{flex:0\x200\x2058px}.cvm-add-reducer-btn{align-self:flex-start;padding:4px\x2012px;border:1px\x20dashed\x20var(--okdb-app-border);border-radius:5px;background:0\x200;color:var(--okdb-app-fg-muted);font-size:11px;cursor:pointer;margin-top:4px;transition:all\x20.12s\x20ease}.cvm-optional-hdr{display:flex;align-items:center;gap:8px}.cvm-opt-toggle{background:0\x200;border:0;cursor:pointer;font-size:11px;color:var(--okdb-app-fg-muted);padding:0;text-decoration:underline\x20dotted;transition:color\x20.12s\x20ease}.cvm-opt-toggle:hover{color:var(--okdb-accent)}.cvm-opt-textarea{width:100%;height:64px;resize:vertical;font-size:11px;font-family:monospace;margin-top:6px}.cvm-ref-body,.cvm-ref-section{display:flex;flex-direction:column}.cvm-ref-body{margin-top:5px;padding:12px;background:color-mix(in\x20srgb,var(--okdb-accent)\x203%,var(--okdb-app-bg));border:1px\x20solid\x20var(--okdb-app-border);border-left:2px\x20solid\x20color-mix(in\x20srgb,var(--okdb-accent)\x2045%,var(--okdb-app-border));border-radius:6px;gap:10px}.cvm-ref-section{gap:6px}.cvm-ref-section-hdr{font-size:10px;color:var(--okdb-app-fg-subtle);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:4px}.cvm-json-wrap{height:260px;border:1px\x20solid\x20var(--okdb-app-border);border-radius:8px;overflow:hidden}','template':_0x4a6ec4(0xef)};function _0x384f(){const _0x1bb751=['type','1558242ORLwQf','modal','/deep-properties','reduce','vis_mapStr','needsField','startsWith','defMode','value','1953PRMvhw','isRef','visual','definitionStr','map','refMapStr','stringify','isArray','1103382UXPnUu','find','refDeepPaths','/views','busy','key','$avg','vis_filterStr','refReducers','push','refKey','result','refFilterStr','_id','okdb','loadDeepPaths','test','<div\x20style=\x22position:relative;\x20width:min(820px,calc(100vw\x20-\x2060px));\x20min-width:600px;\x22><if\x20:=\x22busy\x22><ok-overlay><div\x20class=\x22loader-center\x22><ok-icon\x20name=\x22loader\x22\x20class=\x22spin\x22\x20style=\x22width:32px;height:32px;\x22/></div></ok-overlay></if><div\x20class=\x22cvm-body\x22><div\x20class=\x22cvm-row2\x22><div\x20class=\x22cvm-field\x22><label\x20class=\x22cvm-label\x22>Name</label>\x20<input\x20type=\x22text\x22\x20class=\x22cvm-input\x22\x20placeholder=\x22e.g.\x20active_users\x22\x20:value=\x22name\x22\x20@input=\x22name\x20=\x20$el.value\x22\x20:disabled=\x22busy\x22><div\x20class=\x22cvm-hint\x22>No\x20spaces\x20·\x20no\x20~\x20prefix</div></div><div\x20class=\x22cvm-field\x22><label\x20class=\x22cvm-label\x22>Source\x20Type</label><if\x20:=\x22typesLoading\x22><select\x20class=\x22cvm-select\x22\x20disabled=\x22disabled\x22><option>Loading\x20types…</option></select></if><if\x20:=\x22!typesLoading\x20&&\x20types.length\x20>\x200\x22><select\x20class=\x22cvm-select\x22\x20:value=\x22sourceType\x22\x20@change=\x22setSourceType($event.target.value)\x22\x20:disabled=\x22busy\x22><option\x20value=\x22\x22>—\x20select\x20a\x20type\x20—</option><each\x20:of=\x22types\x22\x20let:item=\x22t\x22><option\x20:value=\x22t\x22>{{\x20t\x20}}</option></each></select></if><if\x20:=\x22!typesLoading\x20&&\x20types.length\x20===\x200\x22><input\x20type=\x22text\x22\x20class=\x22cvm-input\x22\x20placeholder=\x22e.g.\x20user\x22\x20:value=\x22sourceType\x22\x20@input=\x22setSourceType($el.value)\x22\x20:disabled=\x22busy\x22></if><div\x20class=\x22cvm-hint\x22>OKDB\x20type\x20this\x20view\x20aggregates</div></div></div><div\x20class=\x22cvm-card\x22><div\x20class=\x22cvm-def-header\x22><span\x20class=\x22cvm-label\x22\x20style=\x22margin:0;\x22>Definition</span><div\x20class=\x22cvm-mode-toggle\x22><button\x20:class=\x22defMode\x20===\x20\x27visual\x27\x20?\x20\x27cvm-mode-btn\x20cvm-mode-btn--active\x27\x20:\x20\x27cvm-mode-btn\x27\x22\x20@click=\x22setDefMode(\x27visual\x27)\x22>Visual</button>\x20<button\x20:class=\x22defMode\x20===\x20\x27json\x27\x20?\x20\x27cvm-mode-btn\x20cvm-mode-btn--active\x27\x20:\x20\x27cvm-mode-btn\x27\x22\x20@click=\x22setDefMode(\x27json\x27)\x22>JSON</button></div></div><if\x20:=\x22defMode\x20===\x20\x27visual\x27\x22><div\x20class=\x22cvm-visual\x22><div><div\x20class=\x22cvm-section-hdr\x22>Reducers</div><div\x20class=\x22cvm-col-headers\x22><span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x20136px;\x22>Output\x20key</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x20106px;\x22>Operation</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:1;\x22>Field</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x2058px;\x22>Items</span>\x20<span\x20style=\x22flex:0\x200\x2022px;\x22/></div><div\x20class=\x22cvm-reducer-list\x22><each\x20:of=\x22vis_reducers\x22\x20let:item=\x22r\x22><div><div\x20class=\x22cvm-reducer-row\x22><input\x20type=\x22text\x22\x20class=\x22cvm-input\x20cvm-r-key\x22\x20placeholder=\x22key\x22\x20:value=\x22r.name\x22\x20@input=\x22setReducerProp(r,\x20\x27name\x27,\x20$el.value)\x22\x20:disabled=\x22busy\x22>\x20<select\x20class=\x22cvm-select\x20cvm-r-op\x22\x20:value=\x22r.op\x22\x20@change=\x22setReducerProp(r,\x20\x27op\x27,\x20$event.target.value)\x22\x20:disabled=\x22busy\x22><each\x20:of=\x22opOptions\x22\x20let:item=\x22o\x22><option\x20:value=\x22o.value\x22>{{\x20o.label\x20}}</option></each></select><if\x20:=\x22opNeedsField(r.op)\x22><div\x20class=\x22cvm-r-field\x22><field-path-input\x20:value=\x22r.field\x22\x20:items=\x22fieldItems\x22\x20placeholder=\x22field\x20name\x22\x20allow-custom=\x22true\x22\x20@change=\x22setReducerProp(r,\x20\x27field\x27,\x20$event.detail)\x22></div></if><if\x20:=\x22opIsRef(r.op)\x22><button\x20class=\x22cvm-r-ref-btn\x20cvm-r-field\x22\x20@click=\x22toggleRefExpand(r)\x22\x20:disabled=\x22busy\x22>{{\x20r.refExpanded\x20?\x20\x27▴\x20collapse\x27\x20:\x20\x27▾\x20configure\x20$ref\x27\x20}}</button></if><if\x20:=\x22!opNeedsField(r.op)\x20&&\x20!opIsRef(r.op)\x22><div\x20class=\x22cvm-r-field\x22\x20style=\x22padding:7px\x209px;font-size:11px;color:var(--okdb-app-fg-subtle);opacity:0.35;\x22>—</div></if><if\x20:=\x22!opIsRef(r.op)\x22><label\x20class=\x22cvm-r-items\x22\x20title=\x22Include\x20individual\x20matching\x20items\x20in\x20the\x20result\x22><input\x20type=\x22checkbox\x22\x20:checked=\x22r.items\x22\x20@change=\x22setReducerProp(r,\x20\x27items\x27,\x20$event.target.checked)\x22\x20:disabled=\x22busy\x22>\x20<span>items</span></label></if><if\x20:=\x22opIsRef(r.op)\x22><div\x20class=\x22cvm-r-spacer\x22/></if><div\x20class=\x22cvm-r-del\x22><button\x20class=\x22cvm-r-del-btn\x22\x20@click=\x22removeReducer(r)\x22\x20:disabled=\x22busy\x22\x20title=\x22Remove\x22>×</button></div></div><if\x20:=\x22opIsRef(r.op)\x20&&\x20r.refExpanded\x22><div\x20class=\x22cvm-ref-body\x22><div\x20class=\x22cvm-row2\x22><div\x20class=\x22cvm-field\x22><label\x20class=\x22cvm-label\x22>Child\x20Type</label><if\x20:=\x22types.length\x20>\x200\x22><select\x20class=\x22cvm-select\x22\x20:value=\x22r.refType\x22\x20@change=\x22setRefType(r,\x20$event.target.value)\x22\x20:disabled=\x22busy\x22><option\x20value=\x22\x22>—\x20select\x20type\x20—</option><each\x20:of=\x22types\x22\x20let:item=\x22t\x22><option\x20:value=\x22t\x22>{{\x20t\x20}}</option></each></select></if><if\x20:=\x22types.length\x20===\x200\x22><input\x20type=\x22text\x22\x20class=\x22cvm-input\x22\x20placeholder=\x22e.g.\x20order\x22\x20:value=\x22r.refType\x22\x20@input=\x22setRefType(r,\x20$el.value)\x22\x20:disabled=\x22busy\x22></if></div><div\x20class=\x22cvm-field\x22><label\x20class=\x22cvm-label\x22>Key\x20Field\x20<span\x20style=\x22font-size:10px;font-weight:400;color:var(--okdb-app-fg-subtle);margin-left:4px;\x22>on\x20child\x20·\x20fk\x20fields\x20highlighted</span></label><field-path-input\x20:value=\x22r.refKey\x22\x20:items=\x22refFieldItems(r)\x22\x20placeholder=\x22FK\x20field\x20on\x20child\x20type\x22\x20allow-custom=\x22true\x22\x20@change=\x22setRefProp(r,\x20\x27refKey\x27,\x20$event.detail)\x22><div\x20class=\x22cvm-hint\x22>Field\x20on\x20the\x20child\x20collection\x20that\x20references\x20this\x20document\x27s\x20_id</div></div></div><div\x20class=\x22cvm-ref-section\x22><div\x20class=\x22cvm-ref-section-hdr\x22>Reducers</div><div\x20class=\x22cvm-col-headers\x22><span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x20136px;\x22>Output\x20key</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x20106px;\x22>Operation</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:1;\x22>Field</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x2058px;\x22>Items</span>\x20<span\x20style=\x22flex:0\x200\x2022px;\x22/></div><div\x20class=\x22cvm-reducer-list\x22><each\x20:of=\x22r.refReducers\x22\x20let:item=\x22cr\x22><div\x20class=\x22cvm-reducer-row\x22><input\x20type=\x22text\x22\x20class=\x22cvm-input\x20cvm-r-key\x22\x20placeholder=\x22key\x22\x20:value=\x22cr.name\x22\x20@input=\x22setRefReducerProp(r,\x20cr,\x20\x27name\x27,\x20$el.value)\x22\x20:disabled=\x22busy\x22>\x20<select\x20class=\x22cvm-select\x20cvm-r-op\x22\x20:value=\x22cr.op\x22\x20@change=\x22setRefReducerProp(r,\x20cr,\x20\x27op\x27,\x20$event.target.value)\x22\x20:disabled=\x22busy\x22><each\x20:of=\x22refOpOptions\x22\x20let:item=\x22o\x22><option\x20:value=\x22o.value\x22>{{\x20o.label\x20}}</option></each></select><if\x20:=\x22opNeedsField(cr.op)\x22><div\x20class=\x22cvm-r-field\x22><field-path-input\x20:value=\x22cr.field\x22\x20:items=\x22refFieldItems(r)\x22\x20placeholder=\x22field\x20name\x22\x20allow-custom=\x22true\x22\x20@change=\x22setRefReducerProp(r,\x20cr,\x20\x27field\x27,\x20$event.detail)\x22></div></if><if\x20:=\x22!opNeedsField(cr.op)\x22><div\x20class=\x22cvm-r-field\x22\x20style=\x22padding:7px\x209px;font-size:11px;color:var(--okdb-app-fg-subtle);opacity:0.35;\x22>—</div></if><label\x20class=\x22cvm-r-items\x22\x20title=\x22Include\x20individual\x20matching\x20items\x22><input\x20type=\x22checkbox\x22\x20:checked=\x22cr.items\x22\x20@change=\x22setRefReducerProp(r,\x20cr,\x20\x27items\x27,\x20$event.target.checked)\x22\x20:disabled=\x22busy\x22>\x20<span>items</span></label><div\x20class=\x22cvm-r-del\x22><button\x20class=\x22cvm-r-del-btn\x22\x20@click=\x22removeRefReducer(r,\x20cr)\x22\x20:disabled=\x22busy\x22\x20title=\x22Remove\x22>×</button></div></div></each></div><button\x20class=\x22cvm-add-reducer-btn\x22\x20@click=\x22addRefReducer(r)\x22\x20:disabled=\x22busy\x22>+\x20Add\x20reducer</button></div><div><div\x20class=\x22cvm-optional-hdr\x22><span\x20class=\x22cvm-ref-section-hdr\x22\x20style=\x22margin:0;\x22>Filter</span>\x20<button\x20class=\x22cvm-opt-toggle\x22\x20@click=\x22setRefProp(r,\x20\x27refShowFilter\x27,\x20!r.refShowFilter)\x22>{{\x20r.refShowFilter\x20?\x20\x27hide\x27\x20:\x20(r.refFilterStr\x20?\x20\x27edit\x27\x20:\x20\x27add\x27)\x20}}</button></div><if\x20:=\x22r.refShowFilter\x22><textarea\x20class=\x22cvm-input\x20cvm-opt-textarea\x22\x20placeholder=\x27{\x20\x22status\x22:\x20\x22active\x22\x20}\x27\x20:value=\x22r.refFilterStr\x22\x20@input=\x22setRefProp(r,\x20\x27refFilterStr\x27,\x20$el.value)\x22\x20:disabled=\x22busy\x22/><div\x20class=\x22cvm-hint\x22\x20style=\x22margin-top:3px;\x22>Sift\x20query\x20—\x20filters\x20child\x20records\x20before\x20aggregation</div></if></div><div><div\x20class=\x22cvm-optional-hdr\x22><span\x20class=\x22cvm-ref-section-hdr\x22\x20style=\x22margin:0;\x22>Map</span>\x20<button\x20class=\x22cvm-opt-toggle\x22\x20@click=\x22setRefProp(r,\x20\x27refShowMap\x27,\x20!r.refShowMap)\x22>{{\x20r.refShowMap\x20?\x20\x27hide\x27\x20:\x20(r.refMapStr\x20?\x20\x27edit\x27\x20:\x20\x27add\x27)\x20}}</button></div><if\x20:=\x22r.refShowMap\x22><textarea\x20class=\x22cvm-input\x20cvm-opt-textarea\x22\x20placeholder=\x27{\x20\x22total\x22:\x20\x22$count\x22\x20}\x27\x20:value=\x22r.refMapStr\x22\x20@input=\x22setRefProp(r,\x20\x27refMapStr\x27,\x20$el.value)\x22\x20:disabled=\x22busy\x22/><div\x20class=\x22cvm-hint\x22\x20style=\x22margin-top:3px;\x22>Optional\x20value\x20transformation\x20applied\x20after\x20child\x20reduce</div></if></div></div></if></div></each></div><button\x20class=\x22cvm-add-reducer-btn\x22\x20@click=\x22addReducer()\x22\x20:disabled=\x22busy\x22>+\x20Add\x20reducer</button></div><div><div\x20class=\x22cvm-optional-hdr\x22><span\x20class=\x22cvm-section-hdr\x22\x20style=\x22margin:0;\x22>Filter</span>\x20<button\x20class=\x22cvm-opt-toggle\x22\x20@click=\x22vis_showFilter\x20=\x20!vis_showFilter\x22>{{\x20vis_showFilter\x20?\x20\x27hide\x27\x20:\x20(vis_filterStr\x20?\x20\x27edit\x27\x20:\x20\x27add\x27)\x20}}</button></div><if\x20:=\x22vis_showFilter\x22><textarea\x20class=\x22cvm-input\x20cvm-opt-textarea\x22\x20placeholder=\x27{\x20\x22status\x22:\x20\x22active\x22\x20}\x27\x20:value=\x22vis_filterStr\x22\x20@input=\x22vis_filterStr\x20=\x20$el.value\x22\x20:disabled=\x22busy\x22/><div\x20class=\x22cvm-hint\x22>Sift\x20query\x20—\x20only\x20matching\x20records\x20are\x20included\x20in\x20the\x20aggregation</div></if></div><div><div\x20class=\x22cvm-optional-hdr\x22><span\x20class=\x22cvm-section-hdr\x22\x20style=\x22margin:0;\x22>Map</span>\x20<button\x20class=\x22cvm-opt-toggle\x22\x20@click=\x22vis_showMap\x20=\x20!vis_showMap\x22>{{\x20vis_showMap\x20?\x20\x27hide\x27\x20:\x20(vis_mapStr\x20?\x20\x27edit\x27\x20:\x20\x27add\x27)\x20}}</button></div><if\x20:=\x22vis_showMap\x22><textarea\x20class=\x22cvm-input\x20cvm-opt-textarea\x22\x20placeholder=\x27{\x20\x22total\x22:\x20\x22$count\x22\x20}\x27\x20:value=\x22vis_mapStr\x22\x20@input=\x22vis_mapStr\x20=\x20$el.value\x22\x20:disabled=\x22busy\x22/><div\x20class=\x22cvm-hint\x22>Optional\x20value\x20transformation\x20applied\x20after\x20reduce</div></if></div></div></if><if\x20:=\x22defMode\x20===\x20\x27json\x27\x22><div\x20class=\x22cvm-json-wrap\x22><ok-text-monaco-input\x20style=\x22height:100%;\x22\x20language=\x22json\x22\x20:value=\x22definitionStr\x22\x20@edit=\x22definitionStr\x20=\x20$event.detail\x22/></div><div\x20class=\x22cvm-hint\x22>filter\x20·\x20reduce\x20·\x20map\x20—\x20<code>type</code>\x20is\x20injected\x20from\x20Source\x20Type\x20above</div></if></div><if\x20:=\x22error\x22><div\x20class=\x22cvm-error\x22>{{\x20error\x20}}</div></if><div\x20class=\x22cvm-actions\x22><button\x20class=\x22cvm-btn\x20cvm-btn--secondary\x22\x20@click=\x22cancel()\x22\x20:disabled=\x22busy\x22>Cancel</button>\x20<button\x20class=\x22cvm-btn\x20cvm-btn--primary\x22\x20@click=\x22create()\x22\x20:disabled=\x22busy\x20||\x20!name.trim()\x20||\x20!sourceType.trim()\x22>Create\x20View</button></div></div></div>','/types','entries','stores','loadTypes','6DPWlHD','vis_reducers','items','/type/','Source\x20type\x20is\x20required','application/json','Create\x20failed','onDone','Invalid\x20JSON\x20in\x20definition:\x20','count','json','{\x0a\x20\x20\x22filter\x22:\x20{},\x0a\x20\x20\x22reduce\x22:\x20{\x0a\x20\x20\x20\x20\x22count\x22:\x20{\x20\x22$count\x22:\x20true\x20}\x0a\x20\x20}\x0a}','$attr','object','loadRefDeepPaths','trim','reducers','sort','refExpanded','$min','keys','message','catch','13417064OHEGtw','close','1054cSSBiS','deepPaths','$max','create-view-modal','split','$sum','filter','typesLoading','filterStr','geo','$ok','sourceType','error','paths','field','deepPathsLoading','2650980VwOWDg','endsWith','length','1276zgQFSm','string','typesData','name','$count','shared','$ref','assign','5275UJBoro','$countBy','parse','apiBase','refType','9165044kYlExK'];_0x384f=function(){return _0x1bb751;};return _0x384f();}
1
+ const _0x5623ef=_0x1e32;(function(_0x1499ef,_0x4f640b){const _0x28280e=_0x1e32,_0x327e96=_0x1499ef();while(!![]){try{const _0x1a959e=-parseInt(_0x28280e(0x198))/0x1*(parseInt(_0x28280e(0x16b))/0x2)+parseInt(_0x28280e(0x192))/0x3*(parseInt(_0x28280e(0x1a0))/0x4)+parseInt(_0x28280e(0x1b4))/0x5*(-parseInt(_0x28280e(0x1b3))/0x6)+-parseInt(_0x28280e(0x179))/0x7+-parseInt(_0x28280e(0x1c0))/0x8*(parseInt(_0x28280e(0x165))/0x9)+parseInt(_0x28280e(0x16a))/0xa*(-parseInt(_0x28280e(0x18a))/0xb)+parseInt(_0x28280e(0x1b9))/0xc;if(_0x1a959e===_0x4f640b)break;else _0x327e96['push'](_0x327e96['shift']());}catch(_0x157840){_0x327e96['push'](_0x327e96['shift']());}}}(_0x2b22,0x90a8b));import _0x36a35c from'@toolkit/elements/ok-icon.ok.js';import _0x5a4812 from'@toolkit/core/ok-overlay.ok.js';import _0x16b9dc from'../../../components/ok-text-monaco-input.ok.js';import _0x421fe4 from'../../../components/field-path-input.ok.js';const i=[{'value':_0x5623ef(0x181),'label':_0x5623ef(0x181),'needsField':!0x1,'isRef':!0x1},{'value':_0x5623ef(0x18c),'label':'$sum','needsField':!0x0,'isRef':!0x1},{'value':_0x5623ef(0x1a2),'label':'$avg','needsField':!0x0,'isRef':!0x1},{'value':_0x5623ef(0x1bc),'label':'$min','needsField':!0x0,'isRef':!0x1},{'value':_0x5623ef(0x196),'label':_0x5623ef(0x196),'needsField':!0x0,'isRef':!0x1},{'value':_0x5623ef(0x1a9),'label':'$countBy','needsField':!0x0,'isRef':!0x1},{'value':_0x5623ef(0x194),'label':_0x5623ef(0x194),'needsField':!0x1,'isRef':!0x0}],a=i[_0x5623ef(0x1b1)](_0x2d3f44=>!_0x2d3f44[_0x5623ef(0x19a)]);function o(){const _0xe15009=_0x5623ef;return{'name':'count','op':_0xe15009(0x181),'field':'','items':!0x1};}function d(_0x14c1cc){const _0x6077b0=_0x5623ef,_0x453cc9={};for(const _0x13b2c2 of _0x14c1cc[_0x6077b0(0x1b0)]||[])_0x13b2c2[_0x6077b0(0x1b8)][_0x6077b0(0x195)]()&&('$count'===_0x13b2c2['op']?(_0x453cc9[_0x13b2c2[_0x6077b0(0x1b8)]]={'$count':!0x0},_0x13b2c2[_0x6077b0(0x17e)]&&(_0x453cc9[_0x13b2c2[_0x6077b0(0x1b8)]][_0x6077b0(0x17e)]=!0x0)):(_0x453cc9[_0x13b2c2[_0x6077b0(0x1b8)]]={[_0x13b2c2['op']]:_0x13b2c2[_0x6077b0(0x197)]['trim']()||_0x6077b0(0x1a6)},_0x13b2c2['items']&&(_0x453cc9[_0x13b2c2[_0x6077b0(0x1b8)]][_0x6077b0(0x17e)]=!0x0)));const _0x1986a5={'type':_0x14c1cc[_0x6077b0(0x19e)]||'','key':_0x14c1cc[_0x6077b0(0x188)]||''};Object[_0x6077b0(0x17d)](_0x453cc9)[_0x6077b0(0x19f)]&&(_0x1986a5[_0x6077b0(0x191)]=_0x453cc9);try{const _0x190962=(_0x14c1cc['refFilterStr']||'')[_0x6077b0(0x195)]();_0x190962&&(_0x1986a5['filter']=JSON['parse'](_0x190962));}catch{}try{const _0x50a613=(_0x14c1cc['refMapStr']||'')[_0x6077b0(0x195)]();_0x50a613&&(_0x1986a5[_0x6077b0(0x1ae)]=JSON[_0x6077b0(0x166)](_0x50a613));}catch{}return _0x1986a5;}function c(_0x2fcc25,_0xe6c59f,_0x3aeee7){const _0xafed26=_0x5623ef,_0x418c3d={};for(const _0x456be7 of _0x2fcc25)_0x456be7['name']['trim']()&&(_0xafed26(0x194)===_0x456be7['op']?_0x418c3d[_0x456be7['name']]={'$ref':d(_0x456be7)}:_0xafed26(0x181)===_0x456be7['op']?(_0x418c3d[_0x456be7[_0xafed26(0x1b8)]]={'$count':!0x0},_0x456be7[_0xafed26(0x17e)]&&(_0x418c3d[_0x456be7[_0xafed26(0x1b8)]][_0xafed26(0x17e)]=!0x0)):(_0x418c3d[_0x456be7[_0xafed26(0x1b8)]]={[_0x456be7['op']]:_0x456be7[_0xafed26(0x197)]['trim']()||_0xafed26(0x1a6)},_0x456be7[_0xafed26(0x17e)]&&(_0x418c3d[_0x456be7[_0xafed26(0x1b8)]][_0xafed26(0x17e)]=!0x0)));const _0x1ab2b4={'reduce':_0x418c3d};try{const _0x58b8d5=_0xe6c59f[_0xafed26(0x195)]();_0x58b8d5&&(_0x1ab2b4['filter']=JSON['parse'](_0x58b8d5));}catch{}try{const _0x5c344d=_0x3aeee7[_0xafed26(0x195)]();_0x5c344d&&(_0x1ab2b4[_0xafed26(0x1ae)]=JSON[_0xafed26(0x166)](_0x5c344d));}catch{}return _0x1ab2b4;}function l(_0x5c8a25){const _0x2bda56=_0x5623ef,_0x435314=[];for(const [_0x2e1d34,_0x2b6c58]of Object['entries'](_0x5c8a25??{})){const _0x5adcdf=Object[_0x2bda56(0x17d)](_0x2b6c58)['find'](_0x2d1fd7=>_0x2bda56(0x17e)!==_0x2d1fd7)??_0x2bda56(0x181);_0x435314['push']({'name':_0x2e1d34,'op':_0x5adcdf,'field':_0x2bda56(0x1c3)==typeof _0x2b6c58[_0x5adcdf]?_0x2b6c58[_0x5adcdf]:'','items':!!_0x2b6c58[_0x2bda56(0x17e)]});}return _0x435314[_0x2bda56(0x19f)]?_0x435314:[{'name':_0x2bda56(0x16e),'op':_0x2bda56(0x181),'field':'','items':!0x1}];}function _0x1e32(_0x3ac152,_0x8e50b5){_0x3ac152=_0x3ac152-0x163;const _0x2b2283=_0x2b22();let _0x1e320a=_0x2b2283[_0x3ac152];return _0x1e320a;}function _0x2b22(){const _0x2e2854=['refExpanded','refDeepLoading','definitionStr','5048hYfAQz','typesData','/views','string','application/json','stringify','message','startsWith','modal','geo','mapStr','14823sxiEjt','parse','<div\x20style=\x22position:relative;\x20width:min(820px,calc(100vw\x20-\x2060px));\x20min-width:600px;\x22><if\x20:=\x22busy\x22><ok-overlay><div\x20class=\x22loader-center\x22><ok-icon\x20name=\x22loader\x22\x20class=\x22spin\x22\x20style=\x22width:32px;height:32px;\x22/></div></ok-overlay></if><div\x20class=\x22cvm-body\x22><div\x20class=\x22cvm-row2\x22><div\x20class=\x22cvm-field\x22><label\x20class=\x22cvm-label\x22>Name</label>\x20<input\x20type=\x22text\x22\x20class=\x22cvm-input\x22\x20placeholder=\x22e.g.\x20active_users\x22\x20:value=\x22name\x22\x20@input=\x22name\x20=\x20$el.value\x22\x20:disabled=\x22busy\x22><div\x20class=\x22cvm-hint\x22>No\x20spaces\x20·\x20no\x20~\x20prefix</div></div><div\x20class=\x22cvm-field\x22><label\x20class=\x22cvm-label\x22>Source\x20Type</label><if\x20:=\x22typesLoading\x22><select\x20class=\x22cvm-select\x22\x20disabled=\x22disabled\x22><option>Loading\x20types…</option></select></if><if\x20:=\x22!typesLoading\x20&&\x20types.length\x20>\x200\x22><select\x20class=\x22cvm-select\x22\x20:value=\x22sourceType\x22\x20@change=\x22setSourceType($event.target.value)\x22\x20:disabled=\x22busy\x22><option\x20value=\x22\x22>—\x20select\x20a\x20type\x20—</option><each\x20:of=\x22types\x22\x20let:item=\x22t\x22><option\x20:value=\x22t\x22>{{\x20t\x20}}</option></each></select></if><if\x20:=\x22!typesLoading\x20&&\x20types.length\x20===\x200\x22><input\x20type=\x22text\x22\x20class=\x22cvm-input\x22\x20placeholder=\x22e.g.\x20user\x22\x20:value=\x22sourceType\x22\x20@input=\x22setSourceType($el.value)\x22\x20:disabled=\x22busy\x22></if><div\x20class=\x22cvm-hint\x22>OKDB\x20type\x20this\x20view\x20aggregates</div></div></div><div\x20class=\x22cvm-card\x22><div\x20class=\x22cvm-def-header\x22><span\x20class=\x22cvm-label\x22\x20style=\x22margin:0;\x22>Definition</span><div\x20class=\x22cvm-mode-toggle\x22><button\x20:class=\x22defMode\x20===\x20\x27visual\x27\x20?\x20\x27cvm-mode-btn\x20cvm-mode-btn--active\x27\x20:\x20\x27cvm-mode-btn\x27\x22\x20@click=\x22setDefMode(\x27visual\x27)\x22>Visual</button>\x20<button\x20:class=\x22defMode\x20===\x20\x27json\x27\x20?\x20\x27cvm-mode-btn\x20cvm-mode-btn--active\x27\x20:\x20\x27cvm-mode-btn\x27\x22\x20@click=\x22setDefMode(\x27json\x27)\x22>JSON</button></div></div><if\x20:=\x22defMode\x20===\x20\x27visual\x27\x22><div\x20class=\x22cvm-visual\x22><div><div\x20class=\x22cvm-section-hdr\x22>Reducers</div><div\x20class=\x22cvm-col-headers\x22><span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x20136px;\x22>Output\x20key</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x20106px;\x22>Operation</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:1;\x22>Field</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x2058px;\x22>Items</span>\x20<span\x20style=\x22flex:0\x200\x2022px;\x22/></div><div\x20class=\x22cvm-reducer-list\x22><each\x20:of=\x22vis_reducers\x22\x20let:item=\x22r\x22><div><div\x20class=\x22cvm-reducer-row\x22><input\x20type=\x22text\x22\x20class=\x22cvm-input\x20cvm-r-key\x22\x20placeholder=\x22key\x22\x20:value=\x22r.name\x22\x20@input=\x22setReducerProp(r,\x20\x27name\x27,\x20$el.value)\x22\x20:disabled=\x22busy\x22>\x20<select\x20class=\x22cvm-select\x20cvm-r-op\x22\x20:value=\x22r.op\x22\x20@change=\x22setReducerProp(r,\x20\x27op\x27,\x20$event.target.value)\x22\x20:disabled=\x22busy\x22><each\x20:of=\x22opOptions\x22\x20let:item=\x22o\x22><option\x20:value=\x22o.value\x22>{{\x20o.label\x20}}</option></each></select><if\x20:=\x22opNeedsField(r.op)\x22><div\x20class=\x22cvm-r-field\x22><field-path-input\x20:value=\x22r.field\x22\x20:items=\x22fieldItems\x22\x20placeholder=\x22field\x20name\x22\x20allow-custom=\x22true\x22\x20@change=\x22setReducerProp(r,\x20\x27field\x27,\x20$event.detail)\x22></div></if><if\x20:=\x22opIsRef(r.op)\x22><button\x20class=\x22cvm-r-ref-btn\x20cvm-r-field\x22\x20@click=\x22toggleRefExpand(r)\x22\x20:disabled=\x22busy\x22>{{\x20r.refExpanded\x20?\x20\x27▴\x20collapse\x27\x20:\x20\x27▾\x20configure\x20$ref\x27\x20}}</button></if><if\x20:=\x22!opNeedsField(r.op)\x20&&\x20!opIsRef(r.op)\x22><div\x20class=\x22cvm-r-field\x22\x20style=\x22padding:7px\x209px;font-size:11px;color:var(--okdb-app-fg-subtle);opacity:0.35;\x22>—</div></if><if\x20:=\x22!opIsRef(r.op)\x22><label\x20class=\x22cvm-r-items\x22\x20title=\x22Include\x20individual\x20matching\x20items\x20in\x20the\x20result\x22><input\x20type=\x22checkbox\x22\x20:checked=\x22r.items\x22\x20@change=\x22setReducerProp(r,\x20\x27items\x27,\x20$event.target.checked)\x22\x20:disabled=\x22busy\x22>\x20<span>items</span></label></if><if\x20:=\x22opIsRef(r.op)\x22><div\x20class=\x22cvm-r-spacer\x22/></if><div\x20class=\x22cvm-r-del\x22><button\x20class=\x22cvm-r-del-btn\x22\x20@click=\x22removeReducer(r)\x22\x20:disabled=\x22busy\x22\x20title=\x22Remove\x22>×</button></div></div><if\x20:=\x22opIsRef(r.op)\x20&&\x20r.refExpanded\x22><div\x20class=\x22cvm-ref-body\x22><div\x20class=\x22cvm-row2\x22><div\x20class=\x22cvm-field\x22><label\x20class=\x22cvm-label\x22>Child\x20Type</label><if\x20:=\x22types.length\x20>\x200\x22><select\x20class=\x22cvm-select\x22\x20:value=\x22r.refType\x22\x20@change=\x22setRefType(r,\x20$event.target.value)\x22\x20:disabled=\x22busy\x22><option\x20value=\x22\x22>—\x20select\x20type\x20—</option><each\x20:of=\x22types\x22\x20let:item=\x22t\x22><option\x20:value=\x22t\x22>{{\x20t\x20}}</option></each></select></if><if\x20:=\x22types.length\x20===\x200\x22><input\x20type=\x22text\x22\x20class=\x22cvm-input\x22\x20placeholder=\x22e.g.\x20order\x22\x20:value=\x22r.refType\x22\x20@input=\x22setRefType(r,\x20$el.value)\x22\x20:disabled=\x22busy\x22></if></div><div\x20class=\x22cvm-field\x22><label\x20class=\x22cvm-label\x22>Key\x20Field\x20<span\x20style=\x22font-size:10px;font-weight:400;color:var(--okdb-app-fg-subtle);margin-left:4px;\x22>on\x20child\x20·\x20fk\x20fields\x20highlighted</span></label><field-path-input\x20:value=\x22r.refKey\x22\x20:items=\x22refFieldItems(r)\x22\x20placeholder=\x22FK\x20field\x20on\x20child\x20type\x22\x20allow-custom=\x22true\x22\x20@change=\x22setRefProp(r,\x20\x27refKey\x27,\x20$event.detail)\x22><div\x20class=\x22cvm-hint\x22>Field\x20on\x20the\x20child\x20collection\x20that\x20references\x20this\x20document\x27s\x20_id</div></div></div><div\x20class=\x22cvm-ref-section\x22><div\x20class=\x22cvm-ref-section-hdr\x22>Reducers</div><div\x20class=\x22cvm-col-headers\x22><span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x20136px;\x22>Output\x20key</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x20106px;\x22>Operation</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:1;\x22>Field</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x2058px;\x22>Items</span>\x20<span\x20style=\x22flex:0\x200\x2022px;\x22/></div><div\x20class=\x22cvm-reducer-list\x22><each\x20:of=\x22r.refReducers\x22\x20let:item=\x22cr\x22><div\x20class=\x22cvm-reducer-row\x22><input\x20type=\x22text\x22\x20class=\x22cvm-input\x20cvm-r-key\x22\x20placeholder=\x22key\x22\x20:value=\x22cr.name\x22\x20@input=\x22setRefReducerProp(r,\x20cr,\x20\x27name\x27,\x20$el.value)\x22\x20:disabled=\x22busy\x22>\x20<select\x20class=\x22cvm-select\x20cvm-r-op\x22\x20:value=\x22cr.op\x22\x20@change=\x22setRefReducerProp(r,\x20cr,\x20\x27op\x27,\x20$event.target.value)\x22\x20:disabled=\x22busy\x22><each\x20:of=\x22refOpOptions\x22\x20let:item=\x22o\x22><option\x20:value=\x22o.value\x22>{{\x20o.label\x20}}</option></each></select><if\x20:=\x22opNeedsField(cr.op)\x22><div\x20class=\x22cvm-r-field\x22><field-path-input\x20:value=\x22cr.field\x22\x20:items=\x22refFieldItems(r)\x22\x20placeholder=\x22field\x20name\x22\x20allow-custom=\x22true\x22\x20@change=\x22setRefReducerProp(r,\x20cr,\x20\x27field\x27,\x20$event.detail)\x22></div></if><if\x20:=\x22!opNeedsField(cr.op)\x22><div\x20class=\x22cvm-r-field\x22\x20style=\x22padding:7px\x209px;font-size:11px;color:var(--okdb-app-fg-subtle);opacity:0.35;\x22>—</div></if><label\x20class=\x22cvm-r-items\x22\x20title=\x22Include\x20individual\x20matching\x20items\x22><input\x20type=\x22checkbox\x22\x20:checked=\x22cr.items\x22\x20@change=\x22setRefReducerProp(r,\x20cr,\x20\x27items\x27,\x20$event.target.checked)\x22\x20:disabled=\x22busy\x22>\x20<span>items</span></label><div\x20class=\x22cvm-r-del\x22><button\x20class=\x22cvm-r-del-btn\x22\x20@click=\x22removeRefReducer(r,\x20cr)\x22\x20:disabled=\x22busy\x22\x20title=\x22Remove\x22>×</button></div></div></each></div><button\x20class=\x22cvm-add-reducer-btn\x22\x20@click=\x22addRefReducer(r)\x22\x20:disabled=\x22busy\x22>+\x20Add\x20reducer</button></div><div><div\x20class=\x22cvm-optional-hdr\x22><span\x20class=\x22cvm-ref-section-hdr\x22\x20style=\x22margin:0;\x22>Filter</span>\x20<button\x20class=\x22cvm-opt-toggle\x22\x20@click=\x22setRefProp(r,\x20\x27refShowFilter\x27,\x20!r.refShowFilter)\x22>{{\x20r.refShowFilter\x20?\x20\x27hide\x27\x20:\x20(r.refFilterStr\x20?\x20\x27edit\x27\x20:\x20\x27add\x27)\x20}}</button></div><if\x20:=\x22r.refShowFilter\x22><textarea\x20class=\x22cvm-input\x20cvm-opt-textarea\x22\x20placeholder=\x27{\x20\x22status\x22:\x20\x22active\x22\x20}\x27\x20:value=\x22r.refFilterStr\x22\x20@input=\x22setRefProp(r,\x20\x27refFilterStr\x27,\x20$el.value)\x22\x20:disabled=\x22busy\x22/><div\x20class=\x22cvm-hint\x22\x20style=\x22margin-top:3px;\x22>Sift\x20query\x20—\x20filters\x20child\x20records\x20before\x20aggregation</div></if></div><div><div\x20class=\x22cvm-optional-hdr\x22><span\x20class=\x22cvm-ref-section-hdr\x22\x20style=\x22margin:0;\x22>Map</span>\x20<button\x20class=\x22cvm-opt-toggle\x22\x20@click=\x22setRefProp(r,\x20\x27refShowMap\x27,\x20!r.refShowMap)\x22>{{\x20r.refShowMap\x20?\x20\x27hide\x27\x20:\x20(r.refMapStr\x20?\x20\x27edit\x27\x20:\x20\x27add\x27)\x20}}</button></div><if\x20:=\x22r.refShowMap\x22><textarea\x20class=\x22cvm-input\x20cvm-opt-textarea\x22\x20placeholder=\x27{\x20\x22total\x22:\x20\x22$count\x22\x20}\x27\x20:value=\x22r.refMapStr\x22\x20@input=\x22setRefProp(r,\x20\x27refMapStr\x27,\x20$el.value)\x22\x20:disabled=\x22busy\x22/><div\x20class=\x22cvm-hint\x22\x20style=\x22margin-top:3px;\x22>Optional\x20value\x20transformation\x20applied\x20after\x20child\x20reduce</div></if></div></div></if></div></each></div><button\x20class=\x22cvm-add-reducer-btn\x22\x20@click=\x22addReducer()\x22\x20:disabled=\x22busy\x22>+\x20Add\x20reducer</button></div><div><div\x20class=\x22cvm-optional-hdr\x22><span\x20class=\x22cvm-section-hdr\x22\x20style=\x22margin:0;\x22>Filter</span>\x20<button\x20class=\x22cvm-opt-toggle\x22\x20@click=\x22vis_showFilter\x20=\x20!vis_showFilter\x22>{{\x20vis_showFilter\x20?\x20\x27hide\x27\x20:\x20(vis_filterStr\x20?\x20\x27edit\x27\x20:\x20\x27add\x27)\x20}}</button></div><if\x20:=\x22vis_showFilter\x22><textarea\x20class=\x22cvm-input\x20cvm-opt-textarea\x22\x20placeholder=\x27{\x20\x22status\x22:\x20\x22active\x22\x20}\x27\x20:value=\x22vis_filterStr\x22\x20@input=\x22vis_filterStr\x20=\x20$el.value\x22\x20:disabled=\x22busy\x22/><div\x20class=\x22cvm-hint\x22>Sift\x20query\x20—\x20only\x20matching\x20records\x20are\x20included\x20in\x20the\x20aggregation</div></if></div><div><div\x20class=\x22cvm-optional-hdr\x22><span\x20class=\x22cvm-section-hdr\x22\x20style=\x22margin:0;\x22>Map</span>\x20<button\x20class=\x22cvm-opt-toggle\x22\x20@click=\x22vis_showMap\x20=\x20!vis_showMap\x22>{{\x20vis_showMap\x20?\x20\x27hide\x27\x20:\x20(vis_mapStr\x20?\x20\x27edit\x27\x20:\x20\x27add\x27)\x20}}</button></div><if\x20:=\x22vis_showMap\x22><textarea\x20class=\x22cvm-input\x20cvm-opt-textarea\x22\x20placeholder=\x27{\x20\x22total\x22:\x20\x22$count\x22\x20}\x27\x20:value=\x22vis_mapStr\x22\x20@input=\x22vis_mapStr\x20=\x20$el.value\x22\x20:disabled=\x22busy\x22/><div\x20class=\x22cvm-hint\x22>Optional\x20value\x20transformation\x20applied\x20after\x20reduce</div></if></div></div></if><if\x20:=\x22defMode\x20===\x20\x27json\x27\x22><div\x20class=\x22cvm-json-wrap\x22><ok-text-monaco-input\x20style=\x22height:100%;\x22\x20language=\x22json\x22\x20:value=\x22definitionStr\x22\x20@edit=\x22definitionStr\x20=\x20$event.detail\x22/></div><div\x20class=\x22cvm-hint\x22>filter\x20·\x20reduce\x20·\x20map\x20—\x20<code>type</code>\x20is\x20injected\x20from\x20Source\x20Type\x20above</div></if></div><if\x20:=\x22error\x22><div\x20class=\x22cvm-error\x22>{{\x20error\x20}}</div></if><div\x20class=\x22cvm-actions\x22><button\x20class=\x22cvm-btn\x20cvm-btn--secondary\x22\x20@click=\x22cancel()\x22\x20:disabled=\x22busy\x22>Cancel</button>\x20<button\x20class=\x22cvm-btn\x20cvm-btn--primary\x22\x20@click=\x22create()\x22\x20:disabled=\x22busy\x20||\x20!name.trim()\x20||\x20!sourceType.trim()\x22>Create\x20View</button></div></div></div>','sourceType','result','370cBYMoK','6RPpmBP','stores','apiBase','count','endsWith','deepPaths','error','okdb','push','/type/','close','/deep-properties','entries','busy','926205ULgjsg','pop','toast','loadDeepPaths','keys','items','Invalid\x20JSON\x20in\x20definition:\x20','vis_filterStr','$count','$attr','split','refDeepPaths','type','test','vis_reducers','refKey','needsField','294987CrBvKT','find','$sum','visual','Name\x20is\x20required','includes','key','reduce','87YfghCs','data','$ref','trim','$max','field','103403uQMFkk','sort','isRef','isArray','$ok','Create\x20failed','refType','length','94192gucDbw','loadRefDeepPaths','$avg','{\x0a\x20\x20\x22filter\x22:\x20{},\x0a\x20\x20\x22reduce\x22:\x20{\x0a\x20\x20\x20\x20\x22count\x22:\x20{\x20\x22$count\x22:\x20true\x20}\x0a\x20\x20}\x0a}','create-view-modal','object','_id','paths','filterStr','$countBy','catch','/types','vis_mapStr','At\x20least\x20one\x20reducer\x20is\x20required','map','Source\x20type\x20is\x20required','refReducers','filter','shared','29784Iwuzjb','885rDHZyO','typesLoading','json','deepPathsLoading','name','39147228gPFebe','defMode','loadTypes','$min'];_0x2b22=function(){return _0x2e2854;};return _0x2b22();}function n(_0xce6cc9){const _0x50c8b5=_0x5623ef,_0x5428cd=_0xce6cc9[_0x50c8b5(0x183)]('.')[_0x50c8b5(0x17a)]();return _0x50c8b5(0x1a6)!==_0x5428cd&&(_0x5428cd[_0x50c8b5(0x16f)]('Id')||_0x5428cd[_0x50c8b5(0x16f)]('_id')||_0x5428cd[_0x50c8b5(0x16f)]('ID'));}function p(_0x37d62a){const _0x792442=_0x5623ef;return _0x37d62a&&Object[_0x792442(0x17d)](_0x37d62a)['length']?Object['entries'](_0x37d62a)['map'](([_0x376860,_0x45ad9f])=>({'path':_0x376860,'types':Array[_0x792442(0x19b)](_0x45ad9f)?_0x45ad9f:[],'hint':n(_0x376860)?'fk':Array[_0x792442(0x19b)](_0x45ad9f)&&_0x45ad9f[_0x792442(0x18f)]('geo')?_0x792442(0x163):null})):[];}export default{'tag':_0x5623ef(0x1a4),'dependencies':[_0x5a4812,_0x36a35c,_0x16b9dc,_0x421fe4],'attr':{'modal':{},'onDone':{}},'context':_0x5a0608=>({'busy':!0x1,'error':null,'name':'','sourceType':'','typesData':[],'typesLoading':!0x1,'deepPaths':{},'deepPathsLoading':!0x1,get 'types'(){const _0x40eda5=_0x5623ef;return this[_0x40eda5(0x1c1)][_0x40eda5(0x1ae)](_0xed1a6b=>_0xed1a6b['type']??_0xed1a6b['name']??String(_0xed1a6b))[_0x40eda5(0x1b1)](_0x5bfee5=>_0x40eda5(0x1c3)==typeof _0x5bfee5&&!_0x5bfee5['startsWith']('~'))[_0x40eda5(0x199)]();},get 'fieldItems'(){const _0x572e65=_0x5623ef;return p(this[_0x572e65(0x170)]);},get 'opOptions'(){return i;},get 'refOpOptions'(){return a;},'defMode':_0x5623ef(0x18d),'definitionStr':_0x5623ef(0x1a3),'vis_reducers':[Object['assign']({'name':'','op':'$count','field':'','items':!0x1,'isRef':!0x1,'refExpanded':!0x1,'refType':'','refKey':'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':[{'name':'count','op':_0x5623ef(0x181),'field':'','items':!0x1}],'refFilterStr':'','refMapStr':'','refShowFilter':!0x1,'refShowMap':!0x1},{'name':'count','op':_0x5623ef(0x181)})],'vis_filterStr':'','vis_mapStr':'','vis_showFilter':!0x1,'vis_showMap':!0x1,async 'loadTypes'(){const _0x452ec2=_0x5623ef;this[_0x452ec2(0x1b5)]=!0x0;try{const _0x270a2f=_0x5a0608[_0x452ec2(0x19c)]['stores'][_0x452ec2(0x172)][_0x452ec2(0x16d)],_0x573965=await fetch(_0x270a2f+_0x452ec2(0x1ab));if(!_0x573965['ok'])return void(this['typesData']=[]);const _0x49c414=await _0x573965[_0x452ec2(0x1b6)](),_0x3a15cd=_0x49c414[_0x452ec2(0x193)]??_0x49c414['result']??[];this[_0x452ec2(0x1c1)]=Array['isArray'](_0x3a15cd)?_0x3a15cd:Object[_0x452ec2(0x177)](_0x3a15cd)['map'](([_0x61425d,_0x28c45b])=>({'type':_0x61425d,..._0x452ec2(0x1a5)==typeof _0x28c45b?_0x28c45b:{}}));}catch{this[_0x452ec2(0x1c1)]=[];}finally{this[_0x452ec2(0x1b5)]=!0x1;}},async 'loadDeepPaths'(_0x282524){const _0x4d2f7=_0x5623ef;if(_0x282524){this[_0x4d2f7(0x1b7)]=!0x0;try{const _0xf52607=_0x5a0608[_0x4d2f7(0x19c)][_0x4d2f7(0x16c)][_0x4d2f7(0x172)][_0x4d2f7(0x16d)],_0x525965=await fetch(_0xf52607+_0x4d2f7(0x174)+encodeURIComponent(_0x282524)+'/deep-properties');if(!_0x525965['ok'])return void(this[_0x4d2f7(0x170)]={});const _0xb80564=await _0x525965[_0x4d2f7(0x1b6)]();this[_0x4d2f7(0x170)]=(_0xb80564[_0x4d2f7(0x193)]??_0xb80564[_0x4d2f7(0x169)])?.['paths']??{};}catch{this[_0x4d2f7(0x170)]={};}finally{this['deepPathsLoading']=!0x1;}}else this[_0x4d2f7(0x170)]={};},async 'loadRefDeepPaths'(_0x3849c5,_0x3d8814){const _0x102571=_0x5623ef;_0x3849c5['refDeepLoading']=!0x0,this[_0x102571(0x187)]=[...this['vis_reducers']];try{const _0x1e0595=_0x5a0608[_0x102571(0x19c)]['stores']['okdb']['apiBase'],_0xe07e17=await fetch(_0x1e0595+_0x102571(0x174)+encodeURIComponent(_0x3d8814)+_0x102571(0x176));if(!_0xe07e17['ok'])return void(_0x3849c5[_0x102571(0x184)]={});const _0x798deb=await _0xe07e17[_0x102571(0x1b6)]();_0x3849c5[_0x102571(0x184)]=(_0x798deb[_0x102571(0x193)]??_0x798deb[_0x102571(0x169)])?.[_0x102571(0x1a7)]??{};}catch{_0x3849c5[_0x102571(0x184)]={};}finally{_0x3849c5[_0x102571(0x1be)]=!0x1,this[_0x102571(0x187)]=[...this[_0x102571(0x187)]];}},'setSourceType'(_0x1e8961){const _0x5f533b=_0x5623ef;this['sourceType']=_0x1e8961,_0x1e8961?this[_0x5f533b(0x17c)](_0x1e8961):this[_0x5f533b(0x170)]={};},'setDefMode'(_0x241fcc){const _0x24c469=_0x5623ef;if(_0x241fcc!==this[_0x24c469(0x1ba)]){if(_0x24c469(0x18d)===this['defMode'])this[_0x24c469(0x1bf)]=JSON[_0x24c469(0x1c5)](c(this[_0x24c469(0x187)],this[_0x24c469(0x180)],this[_0x24c469(0x1ac)]),null,0x2);else try{const _0x52265d=function(_0x16935f){const _0x2d0d93=_0x24c469,_0x434eec=[];for(const [_0xe39852,_0x2354c3]of Object[_0x2d0d93(0x177)](_0x16935f['reduce']??{}))if(_0x2354c3[_0x2d0d93(0x194)]){const _0x204187=_0x2354c3[_0x2d0d93(0x194)];_0x434eec['push']({'name':_0xe39852,'op':'$ref','field':'','items':!0x1,'isRef':!0x0,'refExpanded':!0x0,'refType':_0x204187[_0x2d0d93(0x185)]||'','refKey':_0x204187[_0x2d0d93(0x190)]||'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':l(_0x204187[_0x2d0d93(0x191)]),'refFilterStr':_0x204187['filter']?JSON[_0x2d0d93(0x1c5)](_0x204187['filter'],null,0x2):'','refMapStr':_0x204187[_0x2d0d93(0x1ae)]?JSON[_0x2d0d93(0x1c5)](_0x204187[_0x2d0d93(0x1ae)],null,0x2):'','refShowFilter':!!_0x204187[_0x2d0d93(0x1b1)]&&Object[_0x2d0d93(0x17d)](_0x204187[_0x2d0d93(0x1b1)])['length']>0x0,'refShowMap':!!_0x204187[_0x2d0d93(0x1ae)]&&Object[_0x2d0d93(0x17d)](_0x204187['map'])[_0x2d0d93(0x19f)]>0x0});}else{const _0x10cf6a=Object[_0x2d0d93(0x17d)](_0x2354c3)[_0x2d0d93(0x18b)](_0x348ded=>_0x2d0d93(0x17e)!==_0x348ded)??_0x2d0d93(0x181);_0x434eec[_0x2d0d93(0x173)]({'name':_0xe39852,'op':_0x10cf6a,'field':'string'==typeof _0x2354c3[_0x10cf6a]?_0x2354c3[_0x10cf6a]:'','items':!!_0x2354c3[_0x2d0d93(0x17e)],'isRef':!0x1,'refExpanded':!0x1,'refType':'','refKey':'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':[o()],'refFilterStr':'','refMapStr':'','refShowFilter':!0x1,'refShowMap':!0x1});}return _0x434eec[_0x2d0d93(0x19f)]||_0x434eec[_0x2d0d93(0x173)]({'name':'','op':'$count','field':'','items':!0x1,'isRef':!0x1,'refExpanded':!0x1,'refType':'','refKey':'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':[{'name':_0x2d0d93(0x16e),'op':'$count','field':'','items':!0x1}],'refFilterStr':'','refMapStr':'','refShowFilter':!0x1,'refShowMap':!0x1}),{'reducers':_0x434eec,'filterStr':_0x16935f[_0x2d0d93(0x1b1)]&&Object[_0x2d0d93(0x17d)](_0x16935f[_0x2d0d93(0x1b1)])[_0x2d0d93(0x19f)]?JSON['stringify'](_0x16935f['filter'],null,0x2):'','mapStr':_0x16935f[_0x2d0d93(0x1ae)]&&Object[_0x2d0d93(0x17d)](_0x16935f['map'])['length']?JSON[_0x2d0d93(0x1c5)](_0x16935f[_0x2d0d93(0x1ae)],null,0x2):''};}(JSON['parse'](this[_0x24c469(0x1bf)]));this[_0x24c469(0x187)]=_0x52265d['reducers'],this[_0x24c469(0x180)]=_0x52265d[_0x24c469(0x1a8)],this[_0x24c469(0x1ac)]=_0x52265d[_0x24c469(0x164)];for(const _0xb34a77 of this[_0x24c469(0x187)])_0x24c469(0x194)===_0xb34a77['op']&&_0xb34a77['refType']&&this[_0x24c469(0x1a1)](_0xb34a77,_0xb34a77[_0x24c469(0x19e)]);}catch{}this[_0x24c469(0x1ba)]=_0x241fcc;}},'addReducer'(){const _0x3da3d9=_0x5623ef;this[_0x3da3d9(0x187)]=[...this['vis_reducers'],{'name':'','op':_0x3da3d9(0x181),'field':'','items':!0x1,'isRef':!0x1,'refExpanded':!0x1,'refType':'','refKey':'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':[{'name':_0x3da3d9(0x16e),'op':_0x3da3d9(0x181),'field':'','items':!0x1}],'refFilterStr':'','refMapStr':'','refShowFilter':!0x1,'refShowMap':!0x1}];},'removeReducer'(_0x2a727b){const _0x468129=_0x5623ef;this[_0x468129(0x187)]=this[_0x468129(0x187)][_0x468129(0x1b1)](_0x508a08=>_0x508a08!==_0x2a727b);},'setReducerProp'(_0x3d9be3,_0x4ba51e,_0x4c4ca1){const _0x30fa59=_0x5623ef;_0x3d9be3[_0x4ba51e]=_0x4c4ca1,'op'===_0x4ba51e&&(_0x3d9be3['isRef']=_0x30fa59(0x194)===_0x4c4ca1,_0x30fa59(0x194)!==_0x4c4ca1?_0x3d9be3[_0x30fa59(0x1bd)]=!0x1:_0x3d9be3[_0x30fa59(0x1bd)]||(_0x3d9be3['refExpanded']=!0x0)),this[_0x30fa59(0x187)]=[...this[_0x30fa59(0x187)]];},'toggleRefExpand'(_0x355e60){const _0x3cbc81=_0x5623ef;_0x355e60['refExpanded']=!_0x355e60[_0x3cbc81(0x1bd)],this[_0x3cbc81(0x187)]=[...this['vis_reducers']];},'setRefProp'(_0x78fd59,_0x2644ce,_0x22b8fc){const _0x403624=_0x5623ef;_0x78fd59[_0x2644ce]=_0x22b8fc,this[_0x403624(0x187)]=[...this[_0x403624(0x187)]];},'setRefType'(_0x5ebc88,_0x4e1f5b){const _0x2db98d=_0x5623ef;_0x5ebc88[_0x2db98d(0x19e)]=_0x4e1f5b,_0x5ebc88[_0x2db98d(0x188)]='',_0x5ebc88['refDeepPaths']={},this[_0x2db98d(0x187)]=[...this[_0x2db98d(0x187)]],_0x4e1f5b&&this[_0x2db98d(0x1a1)](_0x5ebc88,_0x4e1f5b);},'refFieldItems':_0x5cbb7a=>p(_0x5cbb7a[_0x5623ef(0x184)]),'addRefReducer'(_0x12bf83){const _0x31ce27=_0x5623ef;_0x12bf83['refReducers']=[..._0x12bf83[_0x31ce27(0x1b0)]||[],{'name':_0x31ce27(0x16e),'op':_0x31ce27(0x181),'field':'','items':!0x1}],this[_0x31ce27(0x187)]=[...this[_0x31ce27(0x187)]];},'removeRefReducer'(_0x1b0348,_0x4ae2b7){const _0x4ced6e=_0x5623ef;_0x1b0348[_0x4ced6e(0x1b0)]=_0x1b0348[_0x4ced6e(0x1b0)][_0x4ced6e(0x1b1)](_0x4652aa=>_0x4652aa!==_0x4ae2b7),this[_0x4ced6e(0x187)]=[...this[_0x4ced6e(0x187)]];},'setRefReducerProp'(_0x5e20bd,_0x5d670e,_0x376e8c,_0x3d1732){const _0x299ddd=_0x5623ef;_0x5d670e[_0x376e8c]=_0x3d1732,_0x5e20bd[_0x299ddd(0x1b0)]=[..._0x5e20bd['refReducers']],this[_0x299ddd(0x187)]=[...this[_0x299ddd(0x187)]];},'opNeedsField':_0x37d97a=>i['find'](_0x2c9be5=>_0x2c9be5['value']===_0x37d97a)?.[_0x5623ef(0x189)]??!0x1,'opIsRef':_0x3e632a=>_0x5623ef(0x194)===_0x3e632a,async 'create'(){const _0x2a4cef=_0x5623ef;this['error']=null;const _0x34ee0b=this[_0x2a4cef(0x1b8)][_0x2a4cef(0x195)]();if(!_0x34ee0b)return void(this['error']=_0x2a4cef(0x18e));if(/\s/[_0x2a4cef(0x186)](_0x34ee0b)||_0x34ee0b[_0x2a4cef(0x1c7)]('~'))return void(this[_0x2a4cef(0x171)]='Name\x20must\x20not\x20contain\x20spaces\x20or\x20start\x20with\x20~');const _0x7e1ec1=this[_0x2a4cef(0x168)][_0x2a4cef(0x195)]();if(!_0x7e1ec1)return void(this[_0x2a4cef(0x171)]=_0x2a4cef(0x1af));let _0x2891f9;if(_0x2a4cef(0x18d)===this[_0x2a4cef(0x1ba)])_0x2891f9=c(this[_0x2a4cef(0x187)],this[_0x2a4cef(0x180)],this[_0x2a4cef(0x1ac)]);else try{_0x2891f9=JSON[_0x2a4cef(0x166)](this[_0x2a4cef(0x1bf)]);}catch(_0x4442df){return void(this['error']=_0x2a4cef(0x17f)+_0x4442df['message']);}if(_0x2891f9[_0x2a4cef(0x185)]=_0x7e1ec1,_0x2891f9[_0x2a4cef(0x191)]&&Object[_0x2a4cef(0x17d)](_0x2891f9[_0x2a4cef(0x191)])[_0x2a4cef(0x19f)]){this[_0x2a4cef(0x178)]=!0x0;try{const _0x140a7a=_0x5a0608[_0x2a4cef(0x19c)][_0x2a4cef(0x16c)][_0x2a4cef(0x172)][_0x2a4cef(0x16d)],_0x2674ea=await fetch(_0x140a7a+_0x2a4cef(0x1c2),{'method':'POST','headers':{'Content-Type':_0x2a4cef(0x1c4)},'body':JSON[_0x2a4cef(0x1c5)]({'name':_0x34ee0b,..._0x2891f9})});if(!_0x2674ea['ok']){const _0x3f719e=await _0x2674ea[_0x2a4cef(0x1b6)]()[_0x2a4cef(0x1aa)](()=>({}));throw new Error(_0x3f719e?.[_0x2a4cef(0x171)]?.[_0x2a4cef(0x1c6)]??_0x2a4cef(0x19d));}_0x5a0608[_0x2a4cef(0x182)]['onDone']?.(_0x34ee0b),_0x5a0608[_0x2a4cef(0x182)]['modal']?.[_0x2a4cef(0x175)]?.();}catch(_0x2870ee){this['error']=_0x2870ee['message'],_0x5a0608['$ok'][_0x2a4cef(0x1b2)]?.[_0x2a4cef(0x17b)]?.['error']?.(this[_0x2a4cef(0x171)]);}finally{this[_0x2a4cef(0x178)]=!0x1;}}else this[_0x2a4cef(0x171)]=_0x2a4cef(0x1ad);},'cancel'(){const _0x378bff=_0x5623ef;_0x5a0608[_0x378bff(0x182)][_0x378bff(0x1c8)]?.[_0x378bff(0x175)]?.();}}),'mount'(_0x234bc5){const _0x304950=_0x5623ef;this[_0x304950(0x1bb)]();},'style':'.cvm-body,create-view-modal{display:flex;flex-direction:column}.cvm-body{gap:14px}.cvm-row2{display:grid;grid-template-columns:1fr\x201fr;gap:12px}.cvm-field{display:flex;flex-direction:column;gap:5px}.cvm-label{font-size:11px;color:var(--okdb-app-fg-muted);text-transform:uppercase;letter-spacing:.07em;font-weight:600}.cvm-card{padding:14px;border:1px\x20solid\x20var(--okdb-app-border);border-radius:10px;background:var(--okdb-app-bg-deep);display:flex;flex-direction:column;gap:10px}.cvm-input{padding:7px\x209px}.cvm-input,.cvm-select{border:1px\x20solid\x20var(--okdb-app-border);border-radius:6px;background:var(--okdb-app-bg-deep);color:var(--okdb-app-fg);font-size:12px;font-family:inherit;box-sizing:border-box;width:100%}.cvm-input:focus,.cvm-select:focus{outline:0;border-color:var(--okdb-accent);box-shadow:0\x200\x200\x202px\x20color-mix(in\x20srgb,var(--okdb-accent)\x2012%,transparent)}.cvm-select{cursor:pointer;appearance:none;background-image:url(\x22data:image/svg+xml,%3Csvg\x20xmlns=\x27http://www.w3.org/2000/svg\x27\x20width=\x2712\x27\x20height=\x2712\x27\x20viewBox=\x270\x200\x2024\x2024\x27\x20fill=\x27none\x27\x20stroke=\x27%23888\x27\x20stroke-width=\x272\x27%3E%3Cpolyline\x20points=\x276\x209\x2012\x2015\x2018\x209\x27/%3E%3C/svg%3E\x22);background-repeat:no-repeat;background-position:right\x208px\x20center;padding:7px\x2028px\x207px\x209px}.cvm-error,.cvm-hint{font-size:11px;color:var(--okdb-app-fg-subtle);line-height:1.45}.cvm-error{font-size:12px;color:var(--okdb-danger);padding:9px\x2012px;background:color-mix(in\x20srgb,var(--okdb-danger)\x2010%,transparent);border:1px\x20solid\x20color-mix(in\x20srgb,var(--okdb-danger)\x2025%,transparent);border-radius:6px}.cvm-actions{display:flex;gap:8px;justify-content:flex-end}.cvm-btn{padding:7px\x2016px;border-radius:6px;border:1px\x20solid;background:0\x200;font-size:12px;font-weight:500;cursor:pointer;transition:all\x20.15s\x20ease}.cvm-btn--primary{border-color:var(--okdb-accent);color:var(--okdb-accent)}.cvm-btn--primary:hover{background:color-mix(in\x20srgb,var(--okdb-accent)\x2012%,transparent)}.cvm-btn--secondary{border-color:var(--okdb-app-border);color:var(--okdb-app-fg-muted)}.cvm-btn--secondary:hover{border-color:var(--okdb-accent);color:var(--okdb-app-fg);background:color-mix(in\x20srgb,var(--okdb-accent)\x206%,transparent)}.cvm-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.cvm-def-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px\x20solid\x20var(--okdb-app-border)}.cvm-mode-toggle{display:flex;border:1px\x20solid\x20var(--okdb-app-border);border-radius:5px;overflow:hidden}.cvm-mode-btn{padding:4px\x2012px;border:0;background:0\x200;color:var(--okdb-app-fg-muted);font-size:11px;font-weight:500;cursor:pointer;transition:all\x20.15s\x20ease}.cvm-mode-btn+.cvm-mode-btn{border-left:1px\x20solid\x20var(--okdb-app-border)}.cvm-mode-btn--active{background:color-mix(in\x20srgb,var(--okdb-accent)\x2014%,transparent);color:var(--okdb-accent)}.cvm-visual{display:flex;flex-direction:column;gap:12px}.cvm-section-hdr{font-size:10px;color:var(--okdb-app-fg-subtle);text-transform:uppercase;letter-spacing:.07em;font-weight:600;margin-bottom:6px}.cvm-col-headers{display:flex;gap:6px;margin-bottom:3px}.cvm-col-h{font-size:10px;color:var(--okdb-app-fg-subtle)}.cvm-reducer-list{display:flex;flex-direction:column;gap:5px}.cvm-reducer-row{display:flex;align-items:center;gap:6px}.cvm-r-key,.cvm-r-op{flex:0\x200\x20136px;min-width:0}.cvm-r-op{flex:0\x200\x20106px}.cvm-r-field{flex:1;min-width:0}.cvm-r-del,.cvm-r-items{display:flex;align-items:center}.cvm-r-items{flex:0\x200\x2058px;gap:4px;font-size:11px;color:var(--okdb-app-fg-muted);user-select:none;cursor:pointer}.cvm-r-del{flex:0\x200\x2022px;justify-content:center}.cvm-r-del-btn{background:0\x200;border:0;cursor:pointer;color:var(--okdb-app-fg-subtle);padding:3px\x204px;border-radius:3px;font-size:14px;line-height:1;transition:color\x20.12s\x20ease}.cvm-r-del-btn:hover{color:var(--okdb-danger)}.cvm-r-ref-btn{flex:1;padding:7px\x2010px;border:1px\x20dashed\x20var(--okdb-app-border);border-radius:6px;background:0\x200;color:var(--okdb-app-fg-muted);font-size:11px;cursor:pointer;text-align:left;min-width:0;transition:all\x20.12s\x20ease}.cvm-add-reducer-btn:hover,.cvm-r-ref-btn:hover{border-color:var(--okdb-accent);color:var(--okdb-accent)}.cvm-r-spacer{flex:0\x200\x2058px}.cvm-add-reducer-btn{align-self:flex-start;padding:4px\x2012px;border:1px\x20dashed\x20var(--okdb-app-border);border-radius:5px;background:0\x200;color:var(--okdb-app-fg-muted);font-size:11px;cursor:pointer;margin-top:4px;transition:all\x20.12s\x20ease}.cvm-optional-hdr{display:flex;align-items:center;gap:8px}.cvm-opt-toggle{background:0\x200;border:0;cursor:pointer;font-size:11px;color:var(--okdb-app-fg-muted);padding:0;text-decoration:underline\x20dotted;transition:color\x20.12s\x20ease}.cvm-opt-toggle:hover{color:var(--okdb-accent)}.cvm-opt-textarea{width:100%;height:64px;resize:vertical;font-size:11px;font-family:monospace;margin-top:6px}.cvm-ref-body,.cvm-ref-section{display:flex;flex-direction:column}.cvm-ref-body{margin-top:5px;padding:12px;background:color-mix(in\x20srgb,var(--okdb-accent)\x203%,var(--okdb-app-bg));border:1px\x20solid\x20var(--okdb-app-border);border-left:2px\x20solid\x20color-mix(in\x20srgb,var(--okdb-accent)\x2045%,var(--okdb-app-border));border-radius:6px;gap:10px}.cvm-ref-section{gap:6px}.cvm-ref-section-hdr{font-size:10px;color:var(--okdb-app-fg-subtle);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:4px}.cvm-json-wrap{height:260px;border:1px\x20solid\x20var(--okdb-app-border);border-radius:8px;overflow:hidden}','template':_0x5623ef(0x167)};
@@ -1 +1 @@
1
- const _0x29d8c6=_0x4999;function _0x391e(){const _0xa15840=['resetting','/meta','details','stores','stringify','DELETE','message','/views/','#4FC1FF','635KcTqyt','definition','loading','$dispatch','91111nQEXYU','585141EHBTpt','output','data','result','4085325RuCIUu','view-detail{gap:0;height:100%;overflow-y:auto}.vd,.vd__header,view-detail{display:flex;flex-direction:column}.vd{gap:20px;padding:20px\x2024px}.vd__header{gap:10px;padding-bottom:16px;border-bottom:1px\x20solid\x20var(--okdb-app-border)}.vd__title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.vd__name,.vd__state-badge{font-weight:600;white-space:nowrap}.vd__name{font-size:20px;color:var(--okdb-app-fg-strong);margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;flex-shrink:1}.vd__state-badge{display:inline-flex;align-items:center;gap:6px;padding:3px\x208px;border-radius:999px;border:1px\x20solid\x20var(--okdb-app-border);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.vd__state-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.vd__type-label{font-size:11px;color:var(--okdb-app-fg-subtle);font-family:monospace}.vd__actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.vd__btn{padding:5px\x2012px;border-radius:4px;font-size:12px;font-weight:600;border:1px\x20solid;background:0\x200;cursor:pointer;transition:all\x20.15s\x20ease}.vd__btn--primary{border-color:var(--okdb-accent);color:var(--okdb-accent)}.vd__btn--primary:hover{background:color-mix(in\x20srgb,var(--okdb-accent)\x2010%,transparent);transform:none;box-shadow:none}.vd__btn--warning{border-color:var(--okdb-warning);color:var(--okdb-warning)}.vd__btn--warning:hover{background:color-mix(in\x20srgb,var(--okdb-warning)\x2010%,transparent);transform:none;box-shadow:none}.vd__btn--danger{border-color:var(--okdb-danger);color:var(--okdb-danger)}.vd__btn--danger:hover{background:color-mix(in\x20srgb,var(--okdb-danger)\x2010%,transparent);transform:none;box-shadow:none}.vd__btn:disabled{opacity:.4;cursor:not-allowed}.vd__delete-confirm{display:flex;align-items:center;gap:10px;padding:8px\x2012px;background:color-mix(in\x20srgb,var(--okdb-danger)\x207%,transparent);border:1px\x20solid\x20color-mix(in\x20srgb,var(--okdb-danger)\x2025%,transparent);border-radius:5px;font-size:12px;color:var(--okdb-danger);flex-wrap:wrap}.vd__delete-confirm-text{flex:1;min-width:0}.vd__delete-confirm-actions{display:flex;gap:6px}.vd__section{display:flex;flex-direction:column;gap:10px}.vd__section-title{font-size:11px;font-weight:600;color:var(--okdb-app-fg-muted);text-transform:uppercase;letter-spacing:.05em}.vd__pre{font-family:monospace;font-size:12px;background:var(--okdb-app-bg-deep);border:1px\x20solid\x20var(--okdb-app-border);border-radius:5px;padding:12px\x2014px;overflow-x:auto;color:var(--okdb-app-fg);white-space:pre;margin:0;line-height:1.5}.vd__meta-grid{display:flex;flex-direction:column;gap:6px;font-size:12px}.vd__meta-row{display:flex;gap:8px}.vd__meta-key{color:var(--okdb-app-fg-subtle);width:80px;flex-shrink:0}.vd__meta-val{color:var(--okdb-app-fg);font-family:monospace;word-break:break-all}.vd__meta-val--error{color:var(--okdb-danger)}.vd__empty,.vd__error{font-size:12px;color:var(--okdb-app-fg-subtle)}.vd__error{color:var(--okdb-danger);padding:8px;background:color-mix(in\x20srgb,var(--okdb-danger)\x207%,transparent);border:1px\x20solid\x20color-mix(in\x20srgb,var(--okdb-danger)\x2020%,transparent);border-radius:4px}.vd__loading{font-size:12px;opacity:.5;padding:40px;text-align:center}.vd__refs{display:flex;flex-direction:column;gap:4px;margin-top:4px}.vd__ref-row{display:flex;gap:8px;font-size:11px;padding:4px\x208px;background:var(--okdb-app-bg-deep);border-radius:3px;border:1px\x20solid\x20var(--okdb-app-border)}.vd__ref-name{color:var(--okdb-sky);font-family:monospace;flex:1}.vd__ref-state{color:var(--okdb-app-fg-subtle)}','6333296UvpEMR','orphanedIndexes','view-detail','state-changed','name','removed','$ok','18QwLPeT','json','meta','okdb','showOrphanedIndexConfirm','9748uLXBHJ','#fbbf24','apiBase','1542wLOnDE','118090eTDpoA','actionLoading','14056CfuSGD','error','#666','halted','stopped','load','showDeleteConfirm','#4caf50','$attr','state','<div\x20class=\x22vd\x22><if\x20:=\x22loading\x22><div\x20class=\x22vd__loading\x22>Loading…</div></if><if\x20:=\x22!loading\x22><if\x20:=\x22error\x22><div\x20class=\x22vd__error\x22>{{\x20error\x20}}</div></if><div\x20class=\x22vd__header\x22><div\x20class=\x22vd__title-row\x22><div\x20style=\x22flex:1;\x20min-width:0;\x20display:flex;\x20align-items:baseline;\x20gap:8px;\x20overflow:hidden;\x22><h2\x20class=\x22vd__name\x22>{{\x20$attr.name\x20}}</h2><if\x20:=\x22definition\x20!=\x20null\x20&&\x20definition.type\x20!=\x20null\x20&&\x20definition.type\x20!==\x20\x27\x27\x22><span\x20class=\x22vd__type-label\x22>{{\x20definition.type\x20}}</span></if></div><span\x20class=\x22vd__state-badge\x22\x20:style=\x22\x27color:\x27\x20+\x20stateColor(state)\x22><span\x20class=\x22vd__state-dot\x22\x20:style=\x22\x27background:\x27\x20+\x20stateColor(state)\x22/>\x20{{\x20state\x20}}</span></div><div\x20class=\x22vd__actions\x22><if\x20:=\x22!isInProgress\x22><if\x20:=\x22state\x20===\x20\x27ready\x27\x22><button\x20class=\x22vd__btn\x20vd__btn--warning\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22doAction(\x27stop\x27)\x22>Stop</button></if><if\x20:=\x22state\x20===\x20\x27stopped\x27\x20||\x20state\x20===\x20\x27halted\x27\x22><button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22doAction(\x27start\x27)\x22>Start</button></if><button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22doAction(\x27rebuild\x27)\x22>Rebuild</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--danger\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22showDeleteConfirm\x20=\x20true\x22>Delete</button></if><if\x20:=\x22isInProgress\x22><button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20disabled=\x22disabled\x22>Stop</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20disabled=\x22disabled\x22>Rebuild</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--danger\x22\x20disabled=\x22disabled\x22>Delete</button></if></div><if\x20:=\x22showDeleteConfirm\x22><div\x20class=\x22vd__delete-confirm\x22><span\x20class=\x22vd__delete-confirm-text\x22>Delete\x20view\x20<strong>{{\x20$attr.name\x20}}</strong>?\x20This\x20cannot\x20be\x20undone.</span><div\x20class=\x22vd__delete-confirm-actions\x22><button\x20class=\x22vd__btn\x20vd__btn--danger\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22deleteView()\x22>Confirm</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22showDeleteConfirm\x20=\x20false\x22>Cancel</button></div></div></if><if\x20:=\x22showOrphanedIndexConfirm\x22><div\x20class=\x22vd__delete-confirm\x22><span\x20class=\x22vd__delete-confirm-text\x22>Deleting\x20this\x20view\x20will\x20orphan:\x20<strong>{{\x20orphanedIndexes.join(\x27,\x20\x27)\x20}}</strong>.\x20Drop\x20or\x20keep\x20these\x20indexes?</span><div\x20class=\x22vd__delete-confirm-actions\x22><button\x20class=\x22vd__btn\x20vd__btn--danger\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22deleteViewWithIndexes(\x27drop\x27)\x22>Drop</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22deleteViewWithIndexes(\x27keep\x27)\x22>Keep</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22showOrphanedIndexConfirm\x20=\x20false\x22>Cancel</button></div></div></if></div><div\x20class=\x22vd__section\x22><div\x20class=\x22vd__section-title\x22>Output</div><if\x20:=\x22output\x20!=\x20null\x22><pre\x20class=\x22vd__pre\x22>{{\x20formatJson(output)\x20}}</pre></if><if\x20:=\x22output\x20==\x20null\x22><div\x20class=\x22vd__empty\x22>No\x20output\x20available</div></if></div><div\x20class=\x22vd__section\x22><div\x20class=\x22vd__section-title\x22>Meta</div><if\x20:=\x22meta\x22><div\x20class=\x22vd__meta-grid\x22><div\x20class=\x22vd__meta-row\x22><span\x20class=\x22vd__meta-key\x22>state</span>\x20<span\x20class=\x22vd__meta-val\x22\x20:style=\x22\x27color:\x27\x20+\x20stateColor(meta.state)\x22>{{\x20meta.state\x20??\x20\x27—\x27\x20}}</span></div><div\x20class=\x22vd__meta-row\x22><span\x20class=\x22vd__meta-key\x22>clock</span>\x20<span\x20class=\x22vd__meta-val\x22>{{\x20meta.clock\x20??\x20\x27—\x27\x20}}</span></div><if\x20:=\x22meta.error\x22><div\x20class=\x22vd__meta-row\x22><span\x20class=\x22vd__meta-key\x22>error</span>\x20<span\x20class=\x22vd__meta-val\x20vd__meta-val--error\x22>{{\x20meta.error\x20}}</span></div></if></div><if\x20:=\x22meta.refs\x20&&\x20Object.keys(meta.refs).length\x20>\x200\x22><div\x20class=\x22vd__section-title\x22\x20style=\x22margin-top:\x208px;\x22>Refs</div><div\x20class=\x22vd__refs\x22><each\x20:of=\x22Object.entries(meta.refs)\x22\x20let:item=\x22entry\x22><div\x20class=\x22vd__ref-row\x22><span\x20class=\x22vd__ref-name\x22>{{\x20entry[0]\x20}}</span>\x20<span\x20class=\x22vd__ref-state\x22>{{\x20typeof\x20entry[1]\x20===\x20\x27object\x27\x20?\x20(entry[1]?.state\x20??\x20JSON.stringify(entry[1]))\x20:\x20entry[1]\x20}}</span></div></each></div></if></if><if\x20:=\x22!meta\x22><div\x20class=\x22vd__empty\x22>No\x20meta\x20available</div></if></div><div\x20class=\x22vd__section\x22><div\x20class=\x22vd__section-title\x22>Definition</div><if\x20:=\x22definition\x20!=\x20null\x22><pre\x20class=\x22vd__pre\x22>{{\x20formatJson(definition)\x20}}</pre></if><if\x20:=\x22definition\x20==\x20null\x22><div\x20class=\x22vd__empty\x22>No\x20definition\x20available</div></if></div></if></div>','all','catch','#f44336','POST','Delete\x20failed'];_0x391e=function(){return _0xa15840;};return _0x391e();}(function(_0x4e0034,_0x3a68ea){const _0x24cfcd=_0x4999,_0x2f2939=_0x4e0034();while(!![]){try{const _0x4008c8=-parseInt(_0x24cfcd(0x67))/0x1*(parseInt(_0x24cfcd(0x75))/0x2)+-parseInt(_0x24cfcd(0x68))/0x3+-parseInt(_0x24cfcd(0x7a))/0x4*(parseInt(_0x24cfcd(0x99))/0x5)+parseInt(_0x24cfcd(0x7d))/0x6*(parseInt(_0x24cfcd(0x80))/0x7)+parseInt(_0x24cfcd(0x6e))/0x8+parseInt(_0x24cfcd(0x6c))/0x9+parseInt(_0x24cfcd(0x7e))/0xa;if(_0x4008c8===_0x3a68ea)break;else _0x2f2939['push'](_0x2f2939['shift']());}catch(_0x58e47a){_0x2f2939['push'](_0x2f2939['shift']());}}}(_0x391e,0x6d98b));function _0x4999(_0x3f1ed4,_0x359165){_0x3f1ed4=_0x3f1ed4-0x66;const _0x391ed7=_0x391e();let _0x499980=_0x391ed7[_0x3f1ed4];return _0x499980;}export default{'tag':_0x29d8c6(0x70),'attr':{'name':{}},'context':_0x580abd=>({'output':null,'meta':null,'definition':null,'loading':!0x0,'error':null,'actionLoading':!0x1,'showDeleteConfirm':!0x1,'showOrphanedIndexConfirm':!0x1,'orphanedIndexes':[],async 'load'(){const _0x29ff4a=_0x29d8c6;this[_0x29ff4a(0x9b)]=!0x0,this[_0x29ff4a(0x81)]=null,this[_0x29ff4a(0x69)]=null,this[_0x29ff4a(0x77)]=null,this[_0x29ff4a(0x9a)]=null;try{const _0x401ae1=_0x580abd[_0x29ff4a(0x74)][_0x29ff4a(0x93)][_0x29ff4a(0x78)][_0x29ff4a(0x7c)],_0x214cbe=_0x580abd[_0x29ff4a(0x88)][_0x29ff4a(0x72)],[_0x9a3d68,_0x51eadf,_0x49a1d3]=await Promise[_0x29ff4a(0x8b)]([fetch(_0x401ae1+_0x29ff4a(0x97)+_0x214cbe),fetch(_0x401ae1+_0x29ff4a(0x97)+_0x214cbe+_0x29ff4a(0x91)),fetch(_0x401ae1+'/views/'+_0x214cbe+'/definition')]),_0xb1b896=_0x9a3d68['ok']?await _0x9a3d68[_0x29ff4a(0x76)]():null,_0x593177=_0x51eadf['ok']?await _0x51eadf[_0x29ff4a(0x76)]():null,_0x3dfd50=_0x49a1d3['ok']?await _0x49a1d3[_0x29ff4a(0x76)]():null;this[_0x29ff4a(0x69)]=_0xb1b896?.['data']??_0xb1b896?.[_0x29ff4a(0x6b)]??null,this[_0x29ff4a(0x77)]=_0x593177?.[_0x29ff4a(0x6a)]??_0x593177?.['result']??null,this[_0x29ff4a(0x9a)]=_0x3dfd50?.[_0x29ff4a(0x6a)]??_0x3dfd50?.[_0x29ff4a(0x6b)]??null;}catch(_0x5bf340){this[_0x29ff4a(0x81)]=_0x5bf340[_0x29ff4a(0x96)];}finally{this[_0x29ff4a(0x9b)]=!0x1;}},async 'doAction'(_0x192963){const _0x5c7600=_0x29d8c6;this['actionLoading']=!0x0;try{const _0x507a4d=_0x580abd['$ok']['stores']['okdb']['apiBase'],_0x2db12e=_0x580abd['$attr']['name'],_0x23f157=await fetch(_0x507a4d+_0x5c7600(0x97)+_0x2db12e+'/'+_0x192963,{'method':_0x5c7600(0x8e)});if(!_0x23f157['ok']){const _0x20807f=await _0x23f157[_0x5c7600(0x76)]()[_0x5c7600(0x8c)](()=>({}));throw new Error(_0x20807f?.[_0x5c7600(0x81)]?.['message']??_0x192963+'\x20failed');}await this['load'](),_0x580abd[_0x5c7600(0x66)](_0x5c7600(0x71));}catch(_0x41e428){this['error']=_0x41e428[_0x5c7600(0x96)];}finally{this[_0x5c7600(0x7f)]=!0x1;}},async 'deleteView'(){const _0x3f4e9a=_0x29d8c6;this[_0x3f4e9a(0x7f)]=!0x0;try{const _0x328ed4=_0x580abd[_0x3f4e9a(0x74)][_0x3f4e9a(0x93)][_0x3f4e9a(0x78)][_0x3f4e9a(0x7c)],_0x2e6870=_0x580abd[_0x3f4e9a(0x88)][_0x3f4e9a(0x72)],_0x574b78=await fetch(_0x328ed4+'/views/'+_0x2e6870,{'method':_0x3f4e9a(0x95)});if(!_0x574b78['ok']){const _0x3e28fa=await _0x574b78['json']()['catch'](()=>({})),_0x238513=_0x3e28fa?.[_0x3f4e9a(0x81)]?.['code'];if('VIEW_HAS_ORPHANED_INDEXES'===_0x238513)return this[_0x3f4e9a(0x6f)]=_0x3e28fa?.['error']?.[_0x3f4e9a(0x92)]?.['orphanedIndexes']??[],this['showDeleteConfirm']=!0x1,void(this[_0x3f4e9a(0x79)]=!0x0);throw new Error(_0x3e28fa?.[_0x3f4e9a(0x81)]?.['message']??_0x3f4e9a(0x8f));}_0x580abd['$dispatch']('removed');}catch(_0x69ddfa){this['error']=_0x69ddfa[_0x3f4e9a(0x96)];}finally{this['actionLoading']=!0x1,this[_0x3f4e9a(0x79)]||(this[_0x3f4e9a(0x86)]=!0x1);}},async 'deleteViewWithIndexes'(_0x31f584){const _0x38cd66=_0x29d8c6;this[_0x38cd66(0x7f)]=!0x0;try{const _0x5630e0=_0x580abd['$ok'][_0x38cd66(0x93)]['okdb']['apiBase'],_0xcabe2=_0x580abd[_0x38cd66(0x88)][_0x38cd66(0x72)],_0x1857b1=await fetch(_0x5630e0+_0x38cd66(0x97)+_0xcabe2,{'method':_0x38cd66(0x95),'headers':{'Content-Type':'application/json'},'body':JSON[_0x38cd66(0x94)]({'managedIndexes':_0x31f584})});if(!_0x1857b1['ok']){const _0x160ce7=await _0x1857b1[_0x38cd66(0x76)]()[_0x38cd66(0x8c)](()=>({}));throw new Error(_0x160ce7?.[_0x38cd66(0x81)]?.[_0x38cd66(0x96)]??_0x38cd66(0x8f));}_0x580abd[_0x38cd66(0x66)](_0x38cd66(0x73));}catch(_0x2b6c4d){this[_0x38cd66(0x81)]=_0x2b6c4d['message'];}finally{this['actionLoading']=!0x1,this['showOrphanedIndexConfirm']=!0x1,this[_0x38cd66(0x6f)]=[];}},'formatJson'(_0x72845d){const _0x4b64d8=_0x29d8c6;if(null==_0x72845d)return'';try{return JSON[_0x4b64d8(0x94)](_0x72845d,null,0x2);}catch{return String(_0x72845d);}},'stateColor'(_0x36ceb5){const _0x30724a=_0x29d8c6;switch(_0x36ceb5){case'ready':return _0x30724a(0x87);case'creating':case _0x30724a(0x90):return _0x30724a(0x98);case _0x30724a(0x83):return _0x30724a(0x8d);case _0x30724a(0x84):return _0x30724a(0x7b);default:return _0x30724a(0x82);}},get 'state'(){const _0x4f3d64=_0x29d8c6;return this[_0x4f3d64(0x77)]?.[_0x4f3d64(0x89)]??'unknown';},get 'isInProgress'(){const _0xd5026f=_0x29d8c6;return'creating'===this[_0xd5026f(0x89)]||'resetting'===this['state'];}}),'mount'(_0x2d1ab9){const _0x29d1f1=_0x29d8c6;_0x2d1ab9['$watch'](()=>_0x2d1ab9[_0x29d1f1(0x88)][_0x29d1f1(0x72)],()=>{const _0xcf1782=_0x29d1f1;this[_0xcf1782(0x9b)]=!0x0,this[_0xcf1782(0x69)]=null,this['meta']=null,this[_0xcf1782(0x9a)]=null,this[_0xcf1782(0x86)]=!0x1,this[_0xcf1782(0x79)]=!0x1,this[_0xcf1782(0x6f)]=[],this[_0xcf1782(0x85)]();}),this[_0x29d1f1(0x85)]();},'style':_0x29d8c6(0x6d),'template':_0x29d8c6(0x8a)};
1
+ function _0xf102(_0x44bd20,_0x37dd2c){_0x44bd20=_0x44bd20-0xd0;const _0x205c20=_0x205c();let _0xf1021e=_0x205c20[_0x44bd20];return _0xf1021e;}const _0x57e715=_0xf102;(function(_0x5ec6b9,_0x16816d){const _0xb6b03=_0xf102,_0x835e33=_0x5ec6b9();while(!![]){try{const _0x128323=parseInt(_0xb6b03(0xf8))/0x1+parseInt(_0xb6b03(0xef))/0x2*(parseInt(_0xb6b03(0xf2))/0x3)+parseInt(_0xb6b03(0xe9))/0x4+-parseInt(_0xb6b03(0x104))/0x5*(-parseInt(_0xb6b03(0x106))/0x6)+-parseInt(_0xb6b03(0xd1))/0x7+-parseInt(_0xb6b03(0xdb))/0x8*(-parseInt(_0xb6b03(0xfc))/0x9)+-parseInt(_0xb6b03(0xfa))/0xa*(parseInt(_0xb6b03(0xea))/0xb);if(_0x128323===_0x16816d)break;else _0x835e33['push'](_0x835e33['shift']());}catch(_0x4ba8b5){_0x835e33['push'](_0x835e33['shift']());}}}(_0x205c,0xe1ca3));export default{'tag':_0x57e715(0xdf),'attr':{'name':{}},'context':_0x1c0764=>({'output':null,'meta':null,'definition':null,'loading':!0x0,'error':null,'actionLoading':!0x1,'showDeleteConfirm':!0x1,'showOrphanedIndexConfirm':!0x1,'orphanedIndexes':[],async 'load'(){const _0x45fefc=_0x57e715;this['loading']=!0x0,this[_0x45fefc(0xdd)]=null,this['output']=null,this[_0x45fefc(0xe2)]=null,this[_0x45fefc(0xd7)]=null;try{const _0x4d7bdc=_0x1c0764[_0x45fefc(0xee)]['stores'][_0x45fefc(0xf0)][_0x45fefc(0x108)],_0x17f8a8=_0x1c0764[_0x45fefc(0x107)][_0x45fefc(0xfb)],[_0x197b09,_0x38bf67,_0xc636a3]=await Promise[_0x45fefc(0x10a)]([fetch(_0x4d7bdc+_0x45fefc(0xd3)+_0x17f8a8),fetch(_0x4d7bdc+_0x45fefc(0xd3)+_0x17f8a8+_0x45fefc(0xe7)),fetch(_0x4d7bdc+'/views/'+_0x17f8a8+_0x45fefc(0xe3))]),_0x4dd510=_0x197b09['ok']?await _0x197b09[_0x45fefc(0xf9)]():null,_0x3bef49=_0x38bf67['ok']?await _0x38bf67[_0x45fefc(0xf9)]():null,_0x262615=_0xc636a3['ok']?await _0xc636a3[_0x45fefc(0xf9)]():null;this[_0x45fefc(0xde)]=_0x4dd510?.[_0x45fefc(0xe0)]??_0x4dd510?.[_0x45fefc(0x101)]??null,this[_0x45fefc(0xe2)]=_0x3bef49?.[_0x45fefc(0xe0)]??_0x3bef49?.[_0x45fefc(0x101)]??null,this[_0x45fefc(0xd7)]=_0x262615?.[_0x45fefc(0xe0)]??_0x262615?.['result']??null;}catch(_0x5da001){this[_0x45fefc(0xdd)]=_0x5da001['message'];}finally{this[_0x45fefc(0xf6)]=!0x1;}},async 'doAction'(_0x5c95be){const _0x1f5d15=_0x57e715;this['actionLoading']=!0x0;try{const _0x53de35=_0x1c0764[_0x1f5d15(0xee)][_0x1f5d15(0xec)]['okdb'][_0x1f5d15(0x108)],_0x4bcd7f=_0x1c0764['$attr'][_0x1f5d15(0xfb)],_0x34af93=await fetch(_0x53de35+_0x1f5d15(0xd3)+_0x4bcd7f+'/'+_0x5c95be,{'method':'POST'});if(!_0x34af93['ok']){const _0x58686a=await _0x34af93[_0x1f5d15(0xf9)]()[_0x1f5d15(0xd8)](()=>({}));throw new Error(_0x58686a?.[_0x1f5d15(0xdd)]?.[_0x1f5d15(0xf4)]??_0x5c95be+_0x1f5d15(0x10b));}await this[_0x1f5d15(0x100)](),_0x1c0764['$dispatch'](_0x1f5d15(0xd6));}catch(_0x212c49){this[_0x1f5d15(0xdd)]=_0x212c49[_0x1f5d15(0xf4)];}finally{this[_0x1f5d15(0x102)]=!0x1;}},async 'deleteView'(){const _0x550810=_0x57e715;this[_0x550810(0x102)]=!0x0;try{const _0x373ff7=_0x1c0764['$ok'][_0x550810(0xec)][_0x550810(0xf0)]['apiBase'],_0x198b29=_0x1c0764[_0x550810(0x107)]['name'],_0x67a4b8=await fetch(_0x373ff7+_0x550810(0xd3)+_0x198b29,{'method':_0x550810(0xe1)});if(!_0x67a4b8['ok']){const _0x264146=await _0x67a4b8['json']()[_0x550810(0xd8)](()=>({})),_0x564874=_0x264146?.['error']?.[_0x550810(0xdc)];if(_0x550810(0x105)===_0x564874)return this[_0x550810(0x109)]=_0x264146?.[_0x550810(0xdd)]?.[_0x550810(0xf5)]?.[_0x550810(0x109)]??[],this[_0x550810(0x10c)]=!0x1,void(this[_0x550810(0xd2)]=!0x0);throw new Error(_0x264146?.['error']?.['message']??_0x550810(0xd4));}_0x1c0764[_0x550810(0xfe)]('removed');}catch(_0x143450){this[_0x550810(0xdd)]=_0x143450['message'];}finally{this['actionLoading']=!0x1,this[_0x550810(0xd2)]||(this[_0x550810(0x10c)]=!0x1);}},async 'deleteViewWithIndexes'(_0x14bf36){const _0x2f6baf=_0x57e715;this[_0x2f6baf(0x102)]=!0x0;try{const _0x17168e=_0x1c0764[_0x2f6baf(0xee)]['stores'][_0x2f6baf(0xf0)][_0x2f6baf(0x108)],_0x25954f=_0x1c0764['$attr']['name'],_0x23dcde=await fetch(_0x17168e+'/views/'+_0x25954f,{'method':_0x2f6baf(0xe1),'headers':{'Content-Type':'application/json'},'body':JSON[_0x2f6baf(0xe6)]({'managedIndexes':_0x14bf36})});if(!_0x23dcde['ok']){const _0x481f9d=await _0x23dcde['json']()[_0x2f6baf(0xd8)](()=>({}));throw new Error(_0x481f9d?.[_0x2f6baf(0xdd)]?.[_0x2f6baf(0xf4)]??_0x2f6baf(0xd4));}_0x1c0764['$dispatch'](_0x2f6baf(0xe4));}catch(_0x25063e){this[_0x2f6baf(0xdd)]=_0x25063e[_0x2f6baf(0xf4)];}finally{this[_0x2f6baf(0x102)]=!0x1,this['showOrphanedIndexConfirm']=!0x1,this[_0x2f6baf(0x109)]=[];}},'formatJson'(_0x463cce){if(null==_0x463cce)return'';try{return JSON['stringify'](_0x463cce,null,0x2);}catch{return String(_0x463cce);}},'stateColor'(_0x40b0f0){const _0x1a3b9f=_0x57e715;switch(_0x40b0f0){case _0x1a3b9f(0xff):return _0x1a3b9f(0xd5);case _0x1a3b9f(0xeb):case'resetting':return _0x1a3b9f(0xf3);case'halted':return _0x1a3b9f(0x103);case _0x1a3b9f(0xe5):return _0x1a3b9f(0xd0);default:return _0x1a3b9f(0xda);}},get 'state'(){const _0x3a34a9=_0x57e715;return this[_0x3a34a9(0xe2)]?.[_0x3a34a9(0xd9)]??_0x3a34a9(0xfd);},get 'isInProgress'(){const _0x1c0888=_0x57e715;return'creating'===this['state']||_0x1c0888(0xf1)===this[_0x1c0888(0xd9)];}}),'mount'(_0x18d255){const _0x297467=_0x57e715;_0x18d255[_0x297467(0xed)](()=>_0x18d255['$attr'][_0x297467(0xfb)],()=>{const _0x3d3af2=_0x297467;this['loading']=!0x0,this[_0x3d3af2(0xde)]=null,this[_0x3d3af2(0xe2)]=null,this[_0x3d3af2(0xd7)]=null,this[_0x3d3af2(0x10c)]=!0x1,this[_0x3d3af2(0xd2)]=!0x1,this[_0x3d3af2(0x109)]=[],this['load']();}),this[_0x297467(0x100)]();},'style':_0x57e715(0xf7),'template':_0x57e715(0xe8)};function _0x205c(){const _0x42a623=['/definition','removed','stopped','stringify','/meta','<div\x20class=\x22vd\x22><if\x20:=\x22loading\x22><div\x20class=\x22vd__loading\x22>Loading…</div></if><if\x20:=\x22!loading\x22><if\x20:=\x22error\x22><div\x20class=\x22vd__error\x22>{{\x20error\x20}}</div></if><div\x20class=\x22vd__header\x22><div\x20class=\x22vd__title-row\x22><div\x20style=\x22flex:1;\x20min-width:0;\x20display:flex;\x20align-items:baseline;\x20gap:8px;\x20overflow:hidden;\x22><h2\x20class=\x22vd__name\x22>{{\x20$attr.name\x20}}</h2><if\x20:=\x22definition\x20!=\x20null\x20&&\x20definition.type\x20!=\x20null\x20&&\x20definition.type\x20!==\x20\x27\x27\x22><span\x20class=\x22vd__type-label\x22>{{\x20definition.type\x20}}</span></if></div><span\x20class=\x22vd__state-badge\x22\x20:style=\x22\x27color:\x27\x20+\x20stateColor(state)\x22><span\x20class=\x22vd__state-dot\x22\x20:style=\x22\x27background:\x27\x20+\x20stateColor(state)\x22/>\x20{{\x20state\x20}}</span></div><div\x20class=\x22vd__actions\x22><if\x20:=\x22!isInProgress\x22><if\x20:=\x22state\x20===\x20\x27ready\x27\x22><button\x20class=\x22vd__btn\x20vd__btn--warning\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22doAction(\x27stop\x27)\x22>Stop</button></if><if\x20:=\x22state\x20===\x20\x27stopped\x27\x20||\x20state\x20===\x20\x27halted\x27\x22><button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22doAction(\x27start\x27)\x22>Start</button></if><button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22doAction(\x27rebuild\x27)\x22>Rebuild</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--danger\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22showDeleteConfirm\x20=\x20true\x22>Delete</button></if><if\x20:=\x22isInProgress\x22><button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20disabled=\x22disabled\x22>Stop</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20disabled=\x22disabled\x22>Rebuild</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--danger\x22\x20disabled=\x22disabled\x22>Delete</button></if></div><if\x20:=\x22showDeleteConfirm\x22><div\x20class=\x22vd__delete-confirm\x22><span\x20class=\x22vd__delete-confirm-text\x22>Delete\x20view\x20<strong>{{\x20$attr.name\x20}}</strong>?\x20This\x20cannot\x20be\x20undone.</span><div\x20class=\x22vd__delete-confirm-actions\x22><button\x20class=\x22vd__btn\x20vd__btn--danger\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22deleteView()\x22>Confirm</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22showDeleteConfirm\x20=\x20false\x22>Cancel</button></div></div></if><if\x20:=\x22showOrphanedIndexConfirm\x22><div\x20class=\x22vd__delete-confirm\x22><span\x20class=\x22vd__delete-confirm-text\x22>Deleting\x20this\x20view\x20will\x20orphan:\x20<strong>{{\x20orphanedIndexes.join(\x27,\x20\x27)\x20}}</strong>.\x20Drop\x20or\x20keep\x20these\x20indexes?</span><div\x20class=\x22vd__delete-confirm-actions\x22><button\x20class=\x22vd__btn\x20vd__btn--danger\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22deleteViewWithIndexes(\x27drop\x27)\x22>Drop</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22deleteViewWithIndexes(\x27keep\x27)\x22>Keep</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22showOrphanedIndexConfirm\x20=\x20false\x22>Cancel</button></div></div></if></div><div\x20class=\x22vd__section\x22><div\x20class=\x22vd__section-title\x22>Output</div><if\x20:=\x22output\x20!=\x20null\x22><pre\x20class=\x22vd__pre\x22>{{\x20formatJson(output)\x20}}</pre></if><if\x20:=\x22output\x20==\x20null\x22><div\x20class=\x22vd__empty\x22>No\x20output\x20available</div></if></div><div\x20class=\x22vd__section\x22><div\x20class=\x22vd__section-title\x22>Meta</div><if\x20:=\x22meta\x22><div\x20class=\x22vd__meta-grid\x22><div\x20class=\x22vd__meta-row\x22><span\x20class=\x22vd__meta-key\x22>state</span>\x20<span\x20class=\x22vd__meta-val\x22\x20:style=\x22\x27color:\x27\x20+\x20stateColor(meta.state)\x22>{{\x20meta.state\x20??\x20\x27—\x27\x20}}</span></div><div\x20class=\x22vd__meta-row\x22><span\x20class=\x22vd__meta-key\x22>clock</span>\x20<span\x20class=\x22vd__meta-val\x22>{{\x20meta.clock\x20??\x20\x27—\x27\x20}}</span></div><if\x20:=\x22meta.error\x22><div\x20class=\x22vd__meta-row\x22><span\x20class=\x22vd__meta-key\x22>error</span>\x20<span\x20class=\x22vd__meta-val\x20vd__meta-val--error\x22>{{\x20meta.error\x20}}</span></div></if></div><if\x20:=\x22meta.refs\x20&&\x20Object.keys(meta.refs).length\x20>\x200\x22><div\x20class=\x22vd__section-title\x22\x20style=\x22margin-top:\x208px;\x22>Refs</div><div\x20class=\x22vd__refs\x22><each\x20:of=\x22Object.entries(meta.refs)\x22\x20let:item=\x22entry\x22><div\x20class=\x22vd__ref-row\x22><span\x20class=\x22vd__ref-name\x22>{{\x20entry[0]\x20}}</span>\x20<span\x20class=\x22vd__ref-state\x22>{{\x20typeof\x20entry[1]\x20===\x20\x27object\x27\x20?\x20(entry[1]?.state\x20??\x20JSON.stringify(entry[1]))\x20:\x20entry[1]\x20}}</span></div></each></div></if></if><if\x20:=\x22!meta\x22><div\x20class=\x22vd__empty\x22>No\x20meta\x20available</div></if></div><div\x20class=\x22vd__section\x22><div\x20class=\x22vd__section-title\x22>Definition</div><if\x20:=\x22definition\x20!=\x20null\x22><pre\x20class=\x22vd__pre\x22>{{\x20formatJson(definition)\x20}}</pre></if><if\x20:=\x22definition\x20==\x20null\x22><div\x20class=\x22vd__empty\x22>No\x20definition\x20available</div></if></div></if></div>','2741312RENrgp','35934173LtZSdD','creating','stores','$watch','$ok','1007098wUuZff','okdb','resetting','9eXPLPw','#4FC1FF','message','details','loading','view-detail{gap:0;height:100%;overflow-y:auto}.vd,.vd__header,view-detail{display:flex;flex-direction:column}.vd{gap:20px;padding:20px\x2024px}.vd__header{gap:10px;padding-bottom:16px;border-bottom:1px\x20solid\x20var(--okdb-app-border)}.vd__title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.vd__name,.vd__state-badge{font-weight:600;white-space:nowrap}.vd__name{font-size:20px;color:var(--okdb-app-fg-strong);margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;flex-shrink:1}.vd__state-badge{display:inline-flex;align-items:center;gap:6px;padding:3px\x208px;border-radius:999px;border:1px\x20solid\x20var(--okdb-app-border);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.vd__state-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.vd__type-label{font-size:11px;color:var(--okdb-app-fg-subtle);font-family:monospace}.vd__actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.vd__btn{padding:5px\x2012px;border-radius:4px;font-size:12px;font-weight:600;border:1px\x20solid;background:0\x200;cursor:pointer;transition:all\x20.15s\x20ease}.vd__btn--primary{border-color:var(--okdb-accent);color:var(--okdb-accent)}.vd__btn--primary:hover{background:color-mix(in\x20srgb,var(--okdb-accent)\x2010%,transparent);transform:none;box-shadow:none}.vd__btn--warning{border-color:var(--okdb-warning);color:var(--okdb-warning)}.vd__btn--warning:hover{background:color-mix(in\x20srgb,var(--okdb-warning)\x2010%,transparent);transform:none;box-shadow:none}.vd__btn--danger{border-color:var(--okdb-danger);color:var(--okdb-danger)}.vd__btn--danger:hover{background:color-mix(in\x20srgb,var(--okdb-danger)\x2010%,transparent);transform:none;box-shadow:none}.vd__btn:disabled{opacity:.4;cursor:not-allowed}.vd__delete-confirm{display:flex;align-items:center;gap:10px;padding:8px\x2012px;background:color-mix(in\x20srgb,var(--okdb-danger)\x207%,transparent);border:1px\x20solid\x20color-mix(in\x20srgb,var(--okdb-danger)\x2025%,transparent);border-radius:5px;font-size:12px;color:var(--okdb-danger);flex-wrap:wrap}.vd__delete-confirm-text{flex:1;min-width:0}.vd__delete-confirm-actions{display:flex;gap:6px}.vd__section{display:flex;flex-direction:column;gap:10px}.vd__section-title{font-size:11px;font-weight:600;color:var(--okdb-app-fg-muted);text-transform:uppercase;letter-spacing:.05em}.vd__pre{font-family:monospace;font-size:12px;background:var(--okdb-app-bg-deep);border:1px\x20solid\x20var(--okdb-app-border);border-radius:5px;padding:12px\x2014px;overflow-x:auto;color:var(--okdb-app-fg);white-space:pre;margin:0;line-height:1.5}.vd__meta-grid{display:flex;flex-direction:column;gap:6px;font-size:12px}.vd__meta-row{display:flex;gap:8px}.vd__meta-key{color:var(--okdb-app-fg-subtle);width:80px;flex-shrink:0}.vd__meta-val{color:var(--okdb-app-fg);font-family:monospace;word-break:break-all}.vd__meta-val--error{color:var(--okdb-danger)}.vd__empty,.vd__error{font-size:12px;color:var(--okdb-app-fg-subtle)}.vd__error{color:var(--okdb-danger);padding:8px;background:color-mix(in\x20srgb,var(--okdb-danger)\x207%,transparent);border:1px\x20solid\x20color-mix(in\x20srgb,var(--okdb-danger)\x2020%,transparent);border-radius:4px}.vd__loading{font-size:12px;opacity:.5;padding:40px;text-align:center}.vd__refs{display:flex;flex-direction:column;gap:4px;margin-top:4px}.vd__ref-row{display:flex;gap:8px;font-size:11px;padding:4px\x208px;background:var(--okdb-app-bg-deep);border-radius:3px;border:1px\x20solid\x20var(--okdb-app-border)}.vd__ref-name{color:var(--okdb-sky);font-family:monospace;flex:1}.vd__ref-state{color:var(--okdb-app-fg-subtle)}','944074DxmaFY','json','10mmwPYK','name','17811vUBNEA','unknown','$dispatch','ready','load','result','actionLoading','#f44336','20780RUYgXY','VIEW_HAS_ORPHANED_INDEXES','936liBUXM','$attr','apiBase','orphanedIndexes','all','\x20failed','showDeleteConfirm','#fbbf24','5434037WSDWJA','showOrphanedIndexConfirm','/views/','Delete\x20failed','#4caf50','state-changed','definition','catch','state','#666','4768sxmuko','code','error','output','view-detail','data','DELETE','meta'];_0x205c=function(){return _0x42a623;};return _0x205c();}
@@ -1 +1 @@
1
- const _0x420ebd=_0x2170;(function(_0x40bb6d,_0x56c7c){const _0x4476b0=_0x2170,_0x3daacd=_0x40bb6d();while(!![]){try{const _0x1fd093=parseInt(_0x4476b0(0x141))/0x1*(parseInt(_0x4476b0(0x145))/0x2)+-parseInt(_0x4476b0(0x14f))/0x3+parseInt(_0x4476b0(0x15a))/0x4+-parseInt(_0x4476b0(0x169))/0x5+-parseInt(_0x4476b0(0x142))/0x6*(-parseInt(_0x4476b0(0x151))/0x7)+-parseInt(_0x4476b0(0x156))/0x8*(parseInt(_0x4476b0(0x166))/0x9)+parseInt(_0x4476b0(0x152))/0xa*(-parseInt(_0x4476b0(0x15b))/0xb);if(_0x1fd093===_0x56c7c)break;else _0x3daacd['push'](_0x3daacd['shift']());}catch(_0x470340){_0x3daacd['push'](_0x3daacd['shift']());}}}(_0x903a,0xcdf9f));function _0x2170(_0xfc2652,_0x202617){_0xfc2652=_0xfc2652-0x13f;const _0x903a98=_0x903a();let _0x2170b9=_0x903a98[_0xfc2652];return _0x2170b9;}function _0x903a(){const _0x43aacb=['all','2204997yWXKKl','onCreate','7XCpnNK','14128460zzJfbY','okdb','#666','result','8qgFbGy','stopped','views','/meta','3031888pSCHVX','11SWrHGm','$attr','unknown','stores','Failed\x20to\x20load\x20views','resetting','type','state','#4FC1FF','selected','json','2726613IAHJXA','#4caf50','message','24630ynRoBO','/views/','apiBase','$ok','4vpgmcE','6801306DcWGxs','$dispatch','<if\x20:=\x22error\x20&&\x20!loading\x22><div\x20class=\x22vl__error\x22><span>{{\x20error\x20}}</span>\x20<button\x20class=\x22vl__error-retry\x22\x20@click=\x22load()\x22\x20title=\x22Retry\x22>↺</button></div></if><button\x20class=\x22vl__item\x22\x20:class=\x22selected\x20===\x20null\x20?\x20\x27vl__item--selected\x27\x20:\x20\x27\x27\x22\x20@click=\x22selectOverview()\x22\x20style=\x22margin-bottom:4px;\x22><span\x20style=\x22font-size:13px;opacity:.6;flex-shrink:0;line-height:1;\x22>⊞</span>\x20<span\x20class=\x22vl__name\x22\x20style=\x22font-family:inherit;\x22>Overview</span></button><div\x20style=\x22height:1px;\x20background:var(--okdb-app-surface-2);\x20margin:2px\x200\x206px;\x22/><button\x20class=\x22vl__add\x22\x20@click=\x22handleCreate()\x22>+\x20Create\x20View\x20({{\x20views.length\x20}})</button><if\x20:=\x22loading\x20&&\x20views.length\x20===\x200\x22><div\x20class=\x22vl__message\x22>Loading…</div></if><each\x20:of=\x22views\x22\x20let:item=\x22v\x22><button\x20class=\x22vl__item\x22\x20:class=\x22selected\x20===\x20v.name\x20?\x20\x27vl__item--selected\x27\x20:\x20\x27\x27\x22\x20@click=\x22selectView(v)\x22\x20:title=\x22v.name\x22><span\x20class=\x22vl__name\x22>{{\x20v.name\x20}}</span>\x20<span\x20class=\x22vl__state-dot\x22\x20:style=\x22\x27background:\x27\x20+\x20stateColor(v.state)\x22/></button></each><if\x20:=\x22!loading\x20&&\x20views.length\x20===\x200\x20&&\x20!error\x22><div\x20class=\x22vl__message\x22>No\x20views</div></if>','703942IhFKNh','halted','load','$watch','name','selectedEnv','#f44336','data','loading'];_0x903a=function(){return _0x43aacb;};return _0x903a();}export default{'tag':'views-list','attr':{'onCreate':{}},'context':_0x2e75fd=>({'views':[],'selected':null,'loading':!0x1,'error':null,async 'load'(){const _0x110fb4=_0x2170;this[_0x110fb4(0x14d)]=!0x0,this['error']=null;try{if(!_0x2e75fd['$ok'][_0x110fb4(0x15e)][_0x110fb4(0x153)][_0x110fb4(0x14a)])return void(this[_0x110fb4(0x158)]=[]);const _0x58f9ca=_0x2e75fd[_0x110fb4(0x140)][_0x110fb4(0x15e)][_0x110fb4(0x153)][_0x110fb4(0x13f)],_0x1dc4f4=await fetch(_0x58f9ca+'/views');if(!_0x1dc4f4['ok'])throw new Error(_0x110fb4(0x15f));const _0xbac27f=await _0x1dc4f4[_0x110fb4(0x165)](),_0x392a30=_0xbac27f[_0x110fb4(0x14c)]??_0xbac27f[_0x110fb4(0x155)]??[],_0x43ca09=await Promise[_0x110fb4(0x14e)](_0x392a30['map'](async _0x596306=>{const _0x14cba6=_0x110fb4,[_0x146c8a,_0x219fbd]=await Promise[_0x14cba6(0x14e)]([fetch(_0x58f9ca+_0x14cba6(0x16a)+_0x596306+_0x14cba6(0x159)),fetch(_0x58f9ca+_0x14cba6(0x16a)+_0x596306+'/definition')]),_0x29b306=_0x146c8a['ok']?await _0x146c8a['json']():{},_0x2c0793=_0x219fbd['ok']?await _0x219fbd[_0x14cba6(0x165)]():{},_0x120eee=_0x29b306[_0x14cba6(0x14c)]??_0x29b306['result']??{},_0x57f349=_0x2c0793[_0x14cba6(0x14c)]??_0x2c0793[_0x14cba6(0x155)]??{};return{'name':_0x596306,'state':_0x120eee?.[_0x14cba6(0x162)]??_0x14cba6(0x15d),'type':_0x57f349?.[_0x14cba6(0x161)]??'?'};}));this[_0x110fb4(0x158)]=_0x43ca09;}catch(_0x5893a5){this['error']=_0x5893a5[_0x110fb4(0x168)];}finally{this[_0x110fb4(0x14d)]=!0x1;}},'selectOverview'(){const _0x4ebaec=_0x2170;this[_0x4ebaec(0x164)]=null,_0x2e75fd[_0x4ebaec(0x143)](_0x4ebaec(0x164),null);},'selectView'(_0x18e82a){const _0x360f1d=_0x2170;this['selected']=_0x18e82a['name'],_0x2e75fd[_0x360f1d(0x143)](_0x360f1d(0x164),_0x18e82a[_0x360f1d(0x149)]);},'handleCreate'(){const _0x3cd064=_0x2170;_0x2e75fd[_0x3cd064(0x15c)][_0x3cd064(0x150)]?.();},'stateColor'(_0x165449){const _0x136ae8=_0x2170;switch(_0x165449){case'ready':return _0x136ae8(0x167);case'creating':case _0x136ae8(0x160):return _0x136ae8(0x163);case _0x136ae8(0x146):return _0x136ae8(0x14b);case _0x136ae8(0x157):return'#fbbf24';default:return _0x136ae8(0x154);}}}),'mount'(_0x55e673){const _0x45d6d8=_0x2170;_0x55e673[_0x45d6d8(0x148)](()=>_0x55e673[_0x45d6d8(0x140)]['stores']['okdb']['selectedEnv'],()=>this[_0x45d6d8(0x147)]()),this[_0x45d6d8(0x147)]();},'style':'views-list{position:relative;display:flex;flex-direction:column;gap:2px}views-list\x20button{text-align:left}.vl__add{font-size:12px;padding:7px\x2010px;margin-bottom:4px}.vl__item{display:flex;align-items:center;gap:6px;padding:6px\x2010px;font-size:12px;background:0\x200;border-color:transparent;color:var(--okdb-app-fg-muted);border-radius:7px;width:100%}.vl__item:hover{background:var(--okdb-app-surface-2);border-color:var(--okdb-app-border);color:var(--okdb-app-fg)}.vl__item--selected{background:var(--okdb-app-bg-deep)!important;border-color:color-mix(in\x20srgb,var(--okdb-accent)\x2027%,transparent)!important;color:var(--okdb-accent)!important}.vl__name{flex:1;font-family:monospace;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vl__state-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.vl__error{display:flex;align-items:flex-start;gap:6px;padding:8px\x2010px;font-size:11px;color:var(--okdb-danger);background:rgba(255,60,60,.06);border:1px\x20solid\x20rgba(255,60,60,.18);border-radius:6px;line-height:1.4;word-break:break-word}.vl__error\x20span{flex:1}.vl__error-retry{flex-shrink:0;background:0\x200;border:0;color:var(--okdb-danger);cursor:pointer;font-size:14px;padding:0\x202px;opacity:.7}.vl__error-retry:hover{opacity:1}.vl__message{font-size:11px;opacity:.5;padding:8px;text-align:center;color:var(--okdb-app-fg-muted)}','template':_0x420ebd(0x144)};
1
+ function _0x48d4(_0x31a5f7,_0x45833f){_0x31a5f7=_0x31a5f7-0x105;const _0x3f5b4a=_0x3f5b();let _0x48d471=_0x3f5b4a[_0x31a5f7];return _0x48d471;}const _0x1d431e=_0x48d4;(function(_0x26d6b6,_0x2d546f){const _0x5d48b1=_0x48d4,_0x90ac96=_0x26d6b6();while(!![]){try{const _0x90719a=-parseInt(_0x5d48b1(0x117))/0x1+-parseInt(_0x5d48b1(0x106))/0x2+parseInt(_0x5d48b1(0x129))/0x3+-parseInt(_0x5d48b1(0x133))/0x4*(-parseInt(_0x5d48b1(0x12b))/0x5)+parseInt(_0x5d48b1(0x126))/0x6*(parseInt(_0x5d48b1(0x107))/0x7)+parseInt(_0x5d48b1(0x120))/0x8*(parseInt(_0x5d48b1(0x11f))/0x9)+-parseInt(_0x5d48b1(0x121))/0xa*(parseInt(_0x5d48b1(0x114))/0xb);if(_0x90719a===_0x2d546f)break;else _0x90ac96['push'](_0x90ac96['shift']());}catch(_0x149551){_0x90ac96['push'](_0x90ac96['shift']());}}}(_0x3f5b,0x1e797));export default{'tag':_0x1d431e(0x10c),'attr':{'onCreate':{}},'context':_0x1084d5=>({'views':[],'selected':null,'loading':!0x1,'error':null,async 'load'(){const _0x23ed76=_0x1d431e;this[_0x23ed76(0x119)]=!0x0,this['error']=null;try{if(!_0x1084d5[_0x23ed76(0x128)][_0x23ed76(0x113)][_0x23ed76(0x123)][_0x23ed76(0x12a)])return void(this[_0x23ed76(0x131)]=[]);const _0x18c767=_0x1084d5[_0x23ed76(0x128)][_0x23ed76(0x113)][_0x23ed76(0x123)][_0x23ed76(0x111)],_0x3b52aa=await fetch(_0x18c767+_0x23ed76(0x11e));if(!_0x3b52aa['ok'])throw new Error(_0x23ed76(0x11d));const _0x2c2c08=await _0x3b52aa[_0x23ed76(0x10e)](),_0x455a8f=_0x2c2c08[_0x23ed76(0x10f)]??_0x2c2c08[_0x23ed76(0x124)]??[],_0x1a23b3=await Promise['all'](_0x455a8f['map'](async _0xa06e3b=>{const _0x2eae78=_0x23ed76,[_0x5e56df,_0x260219]=await Promise[_0x2eae78(0x125)]([fetch(_0x18c767+_0x2eae78(0x108)+_0xa06e3b+_0x2eae78(0x11b)),fetch(_0x18c767+_0x2eae78(0x108)+_0xa06e3b+'/definition')]),_0x67f0a1=_0x5e56df['ok']?await _0x5e56df[_0x2eae78(0x10e)]():{},_0x541ddd=_0x260219['ok']?await _0x260219[_0x2eae78(0x10e)]():{},_0x2e5119=_0x67f0a1[_0x2eae78(0x10f)]??_0x67f0a1['result']??{},_0x2bfe6c=_0x541ddd[_0x2eae78(0x10f)]??_0x541ddd[_0x2eae78(0x124)]??{};return{'name':_0xa06e3b,'state':_0x2e5119?.[_0x2eae78(0x12c)]??_0x2eae78(0x109),'type':_0x2bfe6c?.[_0x2eae78(0x115)]??'?'};}));this[_0x23ed76(0x131)]=_0x1a23b3;}catch(_0x4e4746){this['error']=_0x4e4746[_0x23ed76(0x134)];}finally{this[_0x23ed76(0x119)]=!0x1;}},'selectOverview'(){const _0x450370=_0x1d431e;this[_0x450370(0x10a)]=null,_0x1084d5[_0x450370(0x11c)](_0x450370(0x10a),null);},'selectView'(_0x212f74){const _0x41ef33=_0x1d431e;this[_0x41ef33(0x10a)]=_0x212f74[_0x41ef33(0x12e)],_0x1084d5[_0x41ef33(0x11c)]('selected',_0x212f74[_0x41ef33(0x12e)]);},'handleCreate'(){const _0x49f4ec=_0x1d431e;_0x1084d5[_0x49f4ec(0x132)][_0x49f4ec(0x11a)]?.();},'stateColor'(_0x50d703){const _0x286b4f=_0x1d431e;switch(_0x50d703){case _0x286b4f(0x116):return _0x286b4f(0x105);case _0x286b4f(0x122):case _0x286b4f(0x10b):return _0x286b4f(0x118);case _0x286b4f(0x12d):return'#f44336';case'stopped':return _0x286b4f(0x110);default:return _0x286b4f(0x130);}}}),'mount'(_0x50ae4b){const _0x22625e=_0x1d431e;_0x50ae4b[_0x22625e(0x112)](()=>_0x50ae4b['$ok'][_0x22625e(0x113)][_0x22625e(0x123)]['selectedEnv'],()=>this[_0x22625e(0x127)]()),this['load']();},'style':_0x1d431e(0x12f),'template':_0x1d431e(0x10d)};function _0x3f5b(){const _0x3fe97c=['json','data','#fbbf24','apiBase','$watch','stores','627JLUpif','type','ready','116544EoKUPT','#4FC1FF','loading','onCreate','/meta','$dispatch','Failed\x20to\x20load\x20views','/views','9CbaWbz','1614632dDwYgb','88370oRdSEi','creating','okdb','result','all','120822GzBngV','load','$ok','687774uOGxUn','selectedEnv','6350MQHqCc','state','halted','name','views-list{position:relative;display:flex;flex-direction:column;gap:2px}views-list\x20button{text-align:left}.vl__add{font-size:12px;padding:7px\x2010px;margin-bottom:4px}.vl__item{display:flex;align-items:center;gap:6px;padding:6px\x2010px;font-size:12px;background:0\x200;border-color:transparent;color:var(--okdb-app-fg-muted);border-radius:7px;width:100%}.vl__item:hover{background:var(--okdb-app-surface-2);border-color:var(--okdb-app-border);color:var(--okdb-app-fg)}.vl__item--selected{background:var(--okdb-app-bg-deep)!important;border-color:color-mix(in\x20srgb,var(--okdb-accent)\x2027%,transparent)!important;color:var(--okdb-accent)!important}.vl__name{flex:1;font-family:monospace;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vl__state-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.vl__error{display:flex;align-items:flex-start;gap:6px;padding:8px\x2010px;font-size:11px;color:var(--okdb-danger);background:rgba(255,60,60,.06);border:1px\x20solid\x20rgba(255,60,60,.18);border-radius:6px;line-height:1.4;word-break:break-word}.vl__error\x20span{flex:1}.vl__error-retry{flex-shrink:0;background:0\x200;border:0;color:var(--okdb-danger);cursor:pointer;font-size:14px;padding:0\x202px;opacity:.7}.vl__error-retry:hover{opacity:1}.vl__message{font-size:11px;opacity:.5;padding:8px;text-align:center;color:var(--okdb-app-fg-muted)}','#666','views','$attr','524aylJap','message','#4caf50','147776xUKefB','77aEFXBe','/views/','unknown','selected','resetting','views-list','<if\x20:=\x22error\x20&&\x20!loading\x22><div\x20class=\x22vl__error\x22><span>{{\x20error\x20}}</span>\x20<button\x20class=\x22vl__error-retry\x22\x20@click=\x22load()\x22\x20title=\x22Retry\x22>↺</button></div></if><button\x20class=\x22vl__item\x22\x20:class=\x22selected\x20===\x20null\x20?\x20\x27vl__item--selected\x27\x20:\x20\x27\x27\x22\x20@click=\x22selectOverview()\x22\x20style=\x22margin-bottom:4px;\x22><span\x20style=\x22font-size:13px;opacity:.6;flex-shrink:0;line-height:1;\x22>⊞</span>\x20<span\x20class=\x22vl__name\x22\x20style=\x22font-family:inherit;\x22>Overview</span></button><div\x20style=\x22height:1px;\x20background:var(--okdb-app-surface-2);\x20margin:2px\x200\x206px;\x22/><button\x20class=\x22vl__add\x22\x20@click=\x22handleCreate()\x22>+\x20Create\x20View\x20({{\x20views.length\x20}})</button><if\x20:=\x22loading\x20&&\x20views.length\x20===\x200\x22><div\x20class=\x22vl__message\x22>Loading…</div></if><each\x20:of=\x22views\x22\x20let:item=\x22v\x22><button\x20class=\x22vl__item\x22\x20:class=\x22selected\x20===\x20v.name\x20?\x20\x27vl__item--selected\x27\x20:\x20\x27\x27\x22\x20@click=\x22selectView(v)\x22\x20:title=\x22v.name\x22><span\x20class=\x22vl__name\x22>{{\x20v.name\x20}}</span>\x20<span\x20class=\x22vl__state-dot\x22\x20:style=\x22\x27background:\x27\x20+\x20stateColor(v.state)\x22/></button></each><if\x20:=\x22!loading\x20&&\x20views.length\x20===\x200\x20&&\x20!error\x22><div\x20class=\x22vl__message\x22>No\x20views</div></if>'];_0x3f5b=function(){return _0x3fe97c;};return _0x3f5b();}