@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 _0x2565(){const _0x447169=['3817816wqkrhP','$el','6zKxbUU','Failed\x20to\x20set\x20TTL','assign','short','catch','tmCurrentIdx','/time-machine/','/type/','tmSelectedClock','ttl\x20…','1\x20hr','message','ttlInputMs','all','en-GB','loadTTL','forEach','indexOf','2VQdWqe','946096gFmGVp','2523255SVLjpG','clockOpen','tmValue','type','jsonError','$refs','parse','data','var(--okdb-app-fg-muted)','loadClock','info','var(--okdb-orange)','apiBase','edited','busyRemove','onTMClockSelect','\x0a\x20\x20\x20\x20\x20\x20\x20\x20<transition\x20name=\x22grow\x22>\x0a\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<!--\x20Clock\x20+\x20TTL\x20badges\x20row\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:6px;\x20margin-bottom:8px;\x22>\x0a\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@click=\x22toggleClock()\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\x20style=\x22font-size:10px;\x20padding:1px\x207px;\x20border-radius:4px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20background:var(--okdb-app-bg-deep);\x20color:var(--okdb-app-fg-muted);\x20cursor:pointer;\x20font-family:monospace;\x20display:flex;\x20align-items:center;\x20gap:5px;\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\x20title=\x22Show\x20change\x20history\x20for\x20this\x20record\x22\x0a\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<if\x20:=\x22clockBusy\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>clock\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</if>\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:=\x22!clockBusy\x20&&\x20latestClock\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\x20\x20\x20\x20<span>clock:\x20{{\x20latestClock\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\x20<if\x20:=\x22latestTime\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\x20\x20\x20\x20<span\x20style=\x22opacity:.55;\x20font-family:sans-serif;\x20font-size:10px;\x22>·\x20{{\x20latestTime\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\x20</if>\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=\x22opacity:.4;\x22>{{\x20clockOpen\x20?\x20\x27▲\x27\x20:\x20\x27▼\x27\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</if>\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:=\x22!clockBusy\x20&&\x20latestClock\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\x20\x20\x20\x20<span\x20style=\x22opacity:.5;\x22>no\x20clock</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</button>\x0a\x0a\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@click=\x22ttlOpen\x20=\x20!ttlOpen\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:style=\x22\x27font-size:10px;\x20padding:1px\x207px;\x20border-radius:4px;\x20border:1px\x20solid\x20\x27\x20+\x20(ttlInfo\x20?\x20ttlBadgeColor\x20+\x20\x2755\x27\x20:\x20\x27var(--okdb-app-border)\x27)\x20+\x20\x27;\x20background:var(--okdb-app-bg-deep);\x20color:\x27\x20+\x20ttlBadgeColor\x20+\x20\x27;\x20cursor:pointer;\x20font-family:monospace;\x20display:flex;\x20align-items:center;\x20gap:5px;\x27\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\x20title=\x22TTL\x20(time-to-live)\x20for\x20this\x20record\x22\x0a\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<span>{{\x20ttlBadgeText\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<if\x20:=\x22ttlInfo\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=\x22opacity:.4;\x22>{{\x20ttlOpen\x20?\x20\x27▲\x27\x20:\x20\x27▼\x27\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</if>\x0a\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</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Changelog\x20+\x20time-travel\x20panel\x20(opens\x20when\x20clock\x20badge\x20clicked)\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22clockOpen\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22margin-bottom:10px;\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<!--\x20Changelog\x20table\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<if\x20:=\x22clockEntries\x20&&\x20clockEntries.length\x20>\x200\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<div\x20style=\x22margin-bottom:8px;\x20background:var(--okdb-app-bg-deep);\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:6px;\x20overflow:hidden;\x20font-size:11px;\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\x20\x20\x20\x20<div\x20style=\x22display:grid;\x20grid-template-columns:auto\x20auto\x201fr\x20auto;\x20gap:0;\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\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:4px\x2010px;\x20opacity:.4;\x20border-bottom:1px\x20solid\x20var(--okdb-app-border);\x20font-weight:600;\x22>clock</div>\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\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:4px\x2010px;\x20opacity:.4;\x20border-bottom:1px\x20solid\x20var(--okdb-app-border);\x20font-weight:600;\x22>action</div>\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\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:4px\x2010px;\x20opacity:.4;\x20border-bottom:1px\x20solid\x20var(--okdb-app-border);\x20font-weight:600;\x22>wall\x20time</div>\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\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:4px\x2010px;\x20opacity:.4;\x20border-bottom:1px\x20solid\x20var(--okdb-app-border);\x20font-weight:600;\x22>origin</div>\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\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22clockEntries\x22\x20let:item=\x22entry\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:3px\x2010px;\x20font-family:monospace;\x20opacity:.8;\x20border-bottom:1px\x20solid\x20var(--okdb-app-surface);\x22>{{\x20entry.clock\x20??\x20\x27—\x27\x20}}</div>\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:3px\x2010px;\x20border-bottom:1px\x20solid\x20var(--okdb-app-surface);\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22\x27color:\x27\x20+\x20(entry.action\x20===\x20\x27put\x27\x20?\x20\x27var(--okdb-success)\x27\x20:\x20entry.action\x20===\x20\x27remove\x27\x20?\x20\x27var(--okdb-danger)\x27\x20:\x20\x27var(--okdb-warning)\x27)\x22>{{\x20entry.action\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:3px\x2010px;\x20opacity:.6;\x20border-bottom:1px\x20solid\x20var(--okdb-app-surface);\x20white-space:nowrap;\x22>{{\x20hlcToDate(entry.timestamp)\x20}}</div>\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:3px\x2010px;\x20font-family:monospace;\x20opacity:.35;\x20font-size:10px;\x20border-bottom:1px\x20solid\x20var(--okdb-app-surface);\x20white-space:nowrap;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20max-width:120px;\x22\x20:title=\x22entry.origin\x22>{{\x20(entry.origin\x20||\x20\x27—\x27).slice(0,\x208)\x20}}</div>\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\x20\x20\x20\x20\x20\x20\x20\x20</each>\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\x20\x20\x20\x20</div>\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</div>\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\x20\x20\x20\x20<!--\x20Time-travel\x20scrubber\x20(sits\x20outside\x20overflow:hidden\x20so\x20tooltips\x20aren\x27t\x20clipped)\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<tm-timeline\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:type=\x22type\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:item-key=\x22key\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:env=\x22$ok.stores.okdb.selectedEnv\x20||\x20\x27default\x27\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:selected-clock=\x22tmSelectedClock\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@tm-clock-select=\x22onTMClockSelect($event.detail)\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@tm-diffs-loaded=\x22tmDiffs\x20=\x20$event.detail.diffs\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</div>\x0a\x20\x20\x20\x20\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\x20\x20\x20\x20<!--\x20TTL\x20detail\x20panel\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22ttlOpen\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22margin-bottom:10px;\x20background:var(--okdb-app-bg-deep);\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:6px;\x20padding:10px;\x20font-size:11px;\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<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20margin-bottom:8px;\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-weight:600;\x20opacity:.6;\x22>Time-to-Live</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\x20<if\x20:=\x22ttlInfo\x20&&\x20ttlInfo.expiresAt\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\x20\x20\x20\x20<span\x20:style=\x22\x27color:\x27\x20+\x20ttlBadgeColor\x20+\x20\x27;\x20font-family:monospace;\x27\x22>{{\x20fmtDuration(ttlInfo.remainingMs)\x20}}\x20remaining</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\x20\x20\x20\x20\x20<span\x20style=\x22opacity:.35;\x20font-size:10px;\x22>·\x20expires\x20{{\x20new\x20Date(ttlInfo.expiresAt).toLocaleString()\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\x20</if>\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<if\x20:=\x22!ttlInfo\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\x20\x20\x20\x20<span\x20style=\x22opacity:.4;\x22>No\x20TTL\x20set\x20—\x20this\x20item\x20will\x20not\x20expire.</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\x20</if>\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</div>\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<div\x20style=\x22display:flex;\x20gap:6px;\x20align-items:center;\x20flex-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\x20\x20\x20\x20<select\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\x20\x20\x20\x20@change=\x22onTTLPresetChange($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\x20\x20\x20\x20style=\x22font-size:11px;\x20padding:2px\x206px;\x20background:var(--okdb-app-bg-deep);\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:4px;\x20color:var(--okdb-app-fg);\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>\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\x20\x20\x20\x20<option\x20value=\x22\x22>Custom…</option>\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\x20\x20\x20\x20<each\x20:of=\x22ttlPresets\x22\x20let:item=\x22p\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\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22String(p.ms)\x22\x20:selected=\x22ttlPreset\x20===\x20String(p.ms)\x22>{{\x20p.label\x20}}</option>\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\x20\x20\x20\x20</each>\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</select>\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\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\x20\x20\x20\x20type=\x22number\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\x20\x20\x20\x20!value=\x22ttlInputMs\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\x20\x20\x20\x20@input=\x22(ttlInputMs\x20=\x20$el.value,\x20ttlPreset\x20=\x20\x27\x27)\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\x20\x20\x20\x20placeholder=\x22ms\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\x20\x20\x20\x20style=\x22width:100px;\x20font-size:11px;\x20padding:2px\x206px;\x20background:var(--okdb-app-bg-deep);\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:4px;\x20color:var(--okdb-app-fg);\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/>\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<button\x20@click=\x22setItemTTL()\x22\x20:disabled=\x22ttlBusy\x20||\x20!ttlInputMs\x22\x20style=\x22font-size:11px;\x20padding:2px\x2010px;\x20color:var(--okdb-success);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-success)\x2033%,\x20transparent);\x22>Set\x20TTL</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\x20\x20\x20\x20<if\x20:=\x22ttlInfo\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\x20\x20\x20\x20<button\x20@click=\x22clearItemTTL()\x22\x20:disabled=\x22ttlBusy\x22\x20style=\x22font-size:11px;\x20padding:2px\x2010px;\x20color:var(--okdb-danger);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent);\x22>Clear\x20TTL</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\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\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22loadTTL()\x22\x20:disabled=\x22ttlBusy\x22\x20style=\x22font-size:11px;\x20padding:2px\x208px;\x20opacity:.5;\x22\x20title=\x22Refresh\x20TTL\x20info\x22>↻</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</div>\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</if>\x0a\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\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20JSON\x20header\x20with\x20historical\x20clock\x20badge\x20+\x20prev/next\x20navigation\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;\x20align-items:center;\x20gap:5px;\x20margin-bottom:4px;\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<if\x20:=\x22tmSelectedClock\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\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\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22goPrev()\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\x20\x20\x20\x20:disabled=\x22!canGoPrev\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\x20\x20\x20\x20:style=\x22\x27font-size:12px;\x20padding:0\x206px;\x20height:20px;\x20line-height:1;\x20border-radius:4px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20background:var(--okdb-app-bg-deep);\x20color:var(--okdb-app-fg-muted);\x20cursor:pointer;\x20font-family:monospace;\x20opacity:\x27\x20+\x20(canGoPrev\x20?\x20\x271\x27\x20:\x20\x27.3\x27)\x20+\x20\x27;\x20transition:opacity\x20120ms;\x27\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\x20\x20\x20\x20title=\x22Previous\x20snapshot\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>&#8592;</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\x20\x20\x20\x20<span\x20style=\x22display:inline-flex;\x20align-items:center;\x20gap:6px;\x20font-size:10px;\x20padding:1px\x208px;\x20border-radius:4px;\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2012%,\x20transparent);\x20color:var(--okdb-accent);\x20font-family:monospace;\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\x20\x20\x20\x20<span>clock\x20{{\x20tmSelectedClock\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\x20\x20\x20\x20\x20<if\x20:=\x22tmSelectedTime\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\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22opacity:.6;\x20font-family:sans-serif;\x20font-weight:400;\x22>{{\x20tmSelectedTime\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\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\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\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\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22goNext()\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\x20\x20\x20\x20:disabled=\x22!canGoNext\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\x20\x20\x20\x20:style=\x22\x27font-size:12px;\x20padding:0\x206px;\x20height:20px;\x20line-height:1;\x20border-radius:4px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20background:var(--okdb-app-bg-deep);\x20color:var(--okdb-app-fg-muted);\x20cursor:pointer;\x20font-family:monospace;\x20opacity:\x27\x20+\x20(canGoNext\x20?\x20\x271\x27\x20:\x20\x27.3\x27)\x20+\x20\x27;\x20transition:opacity\x20120ms;\x27\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\x20\x20\x20\x20title=\x22Next\x20snapshot\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>&#8594;</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>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\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\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22position:relative;\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<ok-json-input\x20ref=\x22editor\x22\x20:value=\x22tmSelectedClock\x20!==\x20null\x20?\x20tmValue\x20:\x20row\x22\x20@edit=\x22edited=$event.detail\x22\x20@parse-error=\x22jsonError=$event.detail\x22\x20style=\x22min-height:\x20300px\x22></ok-json-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<if\x20:=\x22tmFetchBusy\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<div\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\x20\x20\x20\x20style=\x22position:absolute;\x20inset:0;\x20background:var(--okdb-app-bg)88;\x20display:flex;\x20align-items:center;\x20justify-content:center;\x20border-radius:6px;\x20z-index:2;\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>\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\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.6;\x22>loading…</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\x20</div>\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\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22margin-top:8px;\x20display:flex;\x20gap:8px;\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<button\x20@click=\x22reset\x22\x20:disabled=\x22!hasEditedValue\x22>Reset</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<button\x20@click=\x22save\x22\x20:disabled=\x22!hasEditedValue\x20||\x20busySave\x22>Save</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<button\x20@click=\x22remove\x22\x20:disabled=\x22busyRemove\x22>Delete</button>\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</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</transition>\x0a\x20\x20\x20\x20','var(--okdb-success)','busySave','timestamp','Failed\x20to\x20clear\x20TTL','/ttl','7\x20days','$ok','remainingMs','Save\x20failed','DELETE','fmtDuration','tmFetchBusy','3262350bIrdwC','823499GJfzGU','value','toast','string','/changelog?limit=20','ttlPreset','numeric','5\x20min','6421257ZrkKqq','error','object','map','key','726873EXMVVi','statusText','toLocaleString','ttlBusy','find','Failed','\x20deleted','dispatchEvent','keys','stringify','/item/','stores','clockBusy','PUT','application/json','canGoPrev','$attr','30\x20days','ttlInfo','api','row','2-digit','json','TTL\x20set\x20(','shared','okdb','tmDiffs','clock','tmDiffClocks','clockEntries','floor','$watch','length','reloadTypes','24\x20hr','remove'];_0x2565=function(){return _0x447169;};return _0x2565();}const _0x41e131=_0x3bfb;(function(_0x1843c0,_0x242574){const _0x4d45ea=_0x3bfb,_0xadd0c3=_0x1843c0();while(!![]){try{const _0x3a5413=-parseInt(_0x4d45ea(0x125))/0x1*(parseInt(_0x4d45ea(0x105))/0x2)+parseInt(_0x4d45ea(0xcd))/0x3+parseInt(_0x4d45ea(0xf1))/0x4+parseInt(_0x4d45ea(0x107))/0x5*(parseInt(_0x4d45ea(0xf3))/0x6)+parseInt(_0x4d45ea(0x124))/0x7+parseInt(_0x4d45ea(0x106))/0x8+-parseInt(_0x4d45ea(0x12d))/0x9;if(_0x3a5413===_0x242574)break;else _0xadd0c3['push'](_0xadd0c3['shift']());}catch(_0x1ec7ee){_0xadd0c3['push'](_0xadd0c3['shift']());}}}(_0x2565,0xb6cc0));import _0x56789e from'../../../components/ok-json-input.ok.js';import _0x584c72 from'./tm-timeline.ok.js';function _0x3bfb(_0x1a2ae9,_0x433b97){_0x1a2ae9=_0x1a2ae9-0xca;const _0x2565f4=_0x2565();let _0x3bfb7f=_0x2565f4[_0x1a2ae9];return _0x3bfb7f;}function o(_0x514d96){const _0x12d3fd=_0x3bfb;return!!_0x514d96&&_0x12d3fd(0xca)==typeof _0x514d96&&!Array['isArray'](_0x514d96);}export default{'tag':'edit-row','dependencies':[_0x56789e,_0x584c72],'attr':{'type':{},'key':{},'row':{}},'context':_0x320a7f=>({get 'api'(){const _0xb0c805=_0x3bfb;return _0x320a7f[_0xb0c805(0x11e)][_0xb0c805(0xd8)][_0xb0c805(0xe6)][_0xb0c805(0x113)];},get 'type'(){return _0x320a7f['$attr']['type'];},get 'key'(){const _0x53b6fa=_0x3bfb;return _0x320a7f[_0x53b6fa(0xdd)][_0x53b6fa(0xcc)];},get 'row'(){const _0x4f7ad1=_0x3bfb;return _0x320a7f['$attr'][_0x4f7ad1(0xe1)];},get 'hasEditedValue'(){const _0x5f094b=_0x3bfb;return void 0x0!==this[_0x5f094b(0x114)]&&!this[_0x5f094b(0x10b)];},'edited':void 0x0,'jsonError':!0x1,'busySave':!0x1,'busyRemove':!0x1,'tmSelectedClock':null,'tmFetchBusy':!0x1,'tmValue':null,'tmDiffs':[],get 'tmDiffClocks'(){const _0x2bad37=_0x3bfb;return this[_0x2bad37(0xe7)][_0x2bad37(0xcb)](_0x37c4e8=>_0x37c4e8[_0x2bad37(0xe8)]);},get 'tmSelectedDiff'(){const _0x3c8e8a=_0x3bfb;return null===this[_0x3c8e8a(0xfb)]?null:this['tmDiffs'][_0x3c8e8a(0xd1)](_0x30583d=>_0x30583d['clock']===this[_0x3c8e8a(0xfb)])??null;},get 'tmSelectedTime'(){const _0x5dbdd7=_0x3bfb,_0x521b84=this['tmSelectedDiff']?.[_0x5dbdd7(0x11a)];return _0x521b84?new Date(_0x521b84)[_0x5dbdd7(0xcf)](_0x5dbdd7(0x101),{'day':_0x5dbdd7(0x12b),'month':_0x5dbdd7(0xf6),'year':_0x5dbdd7(0x12b),'hour':_0x5dbdd7(0xe2),'minute':_0x5dbdd7(0xe2),'second':_0x5dbdd7(0xe2)}):null;},get 'tmCurrentIdx'(){const _0x49eb03=_0x3bfb;return null===this[_0x49eb03(0xfb)]?-0x1:this[_0x49eb03(0xe9)][_0x49eb03(0x104)](this['tmSelectedClock']);},get 'canGoPrev'(){const _0x143eee=_0x3bfb;return this[_0x143eee(0xf8)]>0x0;},get 'canGoNext'(){const _0xf3b5e4=_0x3bfb;return-0x1!==this[_0xf3b5e4(0xf8)]&&this[_0xf3b5e4(0xf8)]<this['tmDiffClocks']['length']-0x1;},'goPrev'(){const _0x46d29a=_0x3bfb;this[_0x46d29a(0xdc)]&&this['onTMClockSelect']({'clock':this[_0x46d29a(0xe9)][this['tmCurrentIdx']-0x1]});},'goNext'(){const _0x5a1fb6=_0x3bfb;this['canGoNext']&&this[_0x5a1fb6(0x116)]({'clock':this[_0x5a1fb6(0xe9)][this['tmCurrentIdx']+0x1]});},'clockOpen':!0x1,'clockBusy':!0x1,'clockEntries':null,'ttlInfo':null,'ttlBusy':!0x1,'ttlOpen':!0x1,'ttlInputMs':'','ttlPreset':'','ttlPresets':[{'label':'1\x20min','ms':0xea60},{'label':_0x41e131(0x12c),'ms':0x493e0},{'label':'15\x20min','ms':0xdbba0},{'label':_0x41e131(0xfd),'ms':0x36ee80},{'label':'6\x20hr','ms':0x1499700},{'label':_0x41e131(0xef),'ms':0x5265c00},{'label':_0x41e131(0x11d),'ms':0x240c8400},{'label':_0x41e131(0xde),'ms':0x9a7ec800}],async 'loadTTL'(){const _0x3e9597=_0x41e131;if(!this[_0x3e9597(0xd0)]){this[_0x3e9597(0xd0)]=!0x0;try{const _0x4afbac=await fetch(this[_0x3e9597(0xe0)]+_0x3e9597(0xfa)+encodeURIComponent(this[_0x3e9597(0x10a)])+_0x3e9597(0xd7)+encodeURIComponent(this[_0x3e9597(0xcc)])+_0x3e9597(0x11c)),_0x2e3da7=await _0x4afbac[_0x3e9597(0xe3)](),_0xd00092=_0x2e3da7[_0x3e9597(0x10e)]??_0x2e3da7['result']??null;this[_0x3e9597(0xdf)]=_0xd00092||!0x1;}catch{this['ttlInfo']=!0x1;}finally{this[_0x3e9597(0xd0)]=!0x1;}}},async 'setItemTTL'(){const _0x35c2a2=_0x41e131,_0x46a6ef=parseInt(this[_0x35c2a2(0xff)]);if(_0x46a6ef&&!(_0x46a6ef<=0x0)){this[_0x35c2a2(0xd0)]=!0x0;try{const _0x392c55=await fetch(this['api']+_0x35c2a2(0xfa)+encodeURIComponent(this[_0x35c2a2(0x10a)])+_0x35c2a2(0xd7)+encodeURIComponent(this[_0x35c2a2(0xcc)])+'/ttl',{'method':_0x35c2a2(0xda),'headers':{'Content-Type':_0x35c2a2(0xdb)},'body':JSON[_0x35c2a2(0xd6)]({'ttl':_0x46a6ef})});if(!_0x392c55['ok']){const _0x540882=await _0x392c55[_0x35c2a2(0xe3)]()['catch'](()=>({}));throw new Error(_0x540882?.[_0x35c2a2(0x12e)]?.[_0x35c2a2(0xfe)]||_0x392c55[_0x35c2a2(0xce)]);}_0x320a7f[_0x35c2a2(0x11e)][_0x35c2a2(0xe5)]?.[_0x35c2a2(0x127)]?.[_0x35c2a2(0x111)]?.(_0x35c2a2(0xe4)+this[_0x35c2a2(0x122)](_0x46a6ef)+')'),await this[_0x35c2a2(0x102)]();}catch(_0x2c2473){_0x320a7f[_0x35c2a2(0x11e)][_0x35c2a2(0xe5)]?.[_0x35c2a2(0x127)]?.[_0x35c2a2(0x12e)]?.(_0x2c2473['message']||_0x35c2a2(0xf4));}finally{this[_0x35c2a2(0xd0)]=!0x1;}}},async 'clearItemTTL'(){const _0x150de6=_0x41e131;this[_0x150de6(0xd0)]=!0x0;try{const _0x595169=await fetch(this[_0x150de6(0xe0)]+_0x150de6(0xfa)+encodeURIComponent(this[_0x150de6(0x10a)])+'/item/'+encodeURIComponent(this[_0x150de6(0xcc)])+_0x150de6(0x11c),{'method':_0x150de6(0x121)});if(!_0x595169['ok'])throw new Error(_0x595169[_0x150de6(0xce)]);this['ttlInfo']=!0x1,this[_0x150de6(0xff)]='',this[_0x150de6(0x12a)]='',_0x320a7f[_0x150de6(0x11e)][_0x150de6(0xe5)]?.['toast']?.[_0x150de6(0x111)]?.('TTL\x20cleared');}catch(_0x9861a6){_0x320a7f[_0x150de6(0x11e)][_0x150de6(0xe5)]?.['toast']?.[_0x150de6(0x12e)]?.(_0x9861a6[_0x150de6(0xfe)]||_0x150de6(0x11b));}finally{this[_0x150de6(0xd0)]=!0x1;}},'onTTLPresetChange'(_0x583a26){const _0x59271a=_0x41e131;this['ttlPreset']=_0x583a26,_0x583a26&&(this[_0x59271a(0xff)]=_0x583a26);},'fmtDuration'(_0x3b31f0){const _0x55b14b=_0x41e131;if(null==_0x3b31f0)return'—';const _0x7b4d1f=Math['floor'](_0x3b31f0/0x3e8);return _0x7b4d1f<0x3c?_0x7b4d1f+'s':_0x7b4d1f<0xe10?Math[_0x55b14b(0xeb)](_0x7b4d1f/0x3c)+'m\x20'+_0x7b4d1f%0x3c+'s':_0x7b4d1f<0x15180?Math[_0x55b14b(0xeb)](_0x7b4d1f/0xe10)+'h\x20'+Math[_0x55b14b(0xeb)](_0x7b4d1f%0xe10/0x3c)+'m':Math[_0x55b14b(0xeb)](_0x7b4d1f/0x15180)+'d\x20'+Math[_0x55b14b(0xeb)](_0x7b4d1f%0x15180/0xe10)+'h';},get 'ttlBadgeText'(){const _0x2df51c=_0x41e131;return this['ttlBusy']?_0x2df51c(0xfc):this['ttlInfo']?this[_0x2df51c(0xdf)][_0x2df51c(0x11f)]<=0x0?'ttl:\x20expired':'ttl:\x20'+this['fmtDuration'](this['ttlInfo'][_0x2df51c(0x11f)]):'no\x20ttl';},get 'ttlBadgeColor'(){const _0xc9b16f=_0x41e131;return this[_0xc9b16f(0xdf)]?this[_0xc9b16f(0xdf)][_0xc9b16f(0x11f)]<=0x0?'var(--okdb-danger)':this[_0xc9b16f(0xdf)][_0xc9b16f(0x11f)]<0xea60?_0xc9b16f(0x112):_0xc9b16f(0x118):_0xc9b16f(0x10f);},'hlcToDate'(_0x1e3aac){const _0x53eb8f=_0x41e131,_0x24c6fb=Number(_0x1e3aac)||0x0,_0x1943fa=(_0x24c6fb-_0x24c6fb%0x400)/0x400;return _0x1943fa?new Date(_0x1943fa)[_0x53eb8f(0xcf)]():'—';},get 'latestClock'(){const _0x547c38=_0x41e131;return this['clockEntries']?.[_0x547c38(0xed)]?this[_0x547c38(0xea)][0x0][_0x547c38(0xe8)]??null:null;},get 'latestTime'(){const _0x5a844e=_0x41e131;if(!this[_0x5a844e(0xea)]?.[_0x5a844e(0xed)])return null;const _0x4471cf=this[_0x5a844e(0xea)][0x0]['timestamp'];return _0x4471cf?this['hlcToDate'](_0x4471cf):null;},async 'toggleClock'(){const _0x737661=_0x41e131;this[_0x737661(0x108)]=!this[_0x737661(0x108)];},async 'loadClock'(){const _0x129070=_0x41e131;if(!this['clockBusy']){this['clockBusy']=!0x0;try{const _0x41fca0=await fetch(this[_0x129070(0xe0)]+_0x129070(0xfa)+encodeURIComponent(this[_0x129070(0x10a)])+_0x129070(0xd7)+encodeURIComponent(this[_0x129070(0xcc)])+_0x129070(0x129)),_0x209980=await _0x41fca0[_0x129070(0xe3)]();this[_0x129070(0xea)]=_0x209980[_0x129070(0x10e)]??[];}catch{this[_0x129070(0xea)]=[];}finally{this[_0x129070(0xd9)]=!0x1;}}},async 'onTMClockSelect'({clock:_0x393335}){const _0x1fcf37=_0x41e131;if(this['tmSelectedClock']=_0x393335,null===_0x393335)return this[_0x1fcf37(0x109)]=null,this[_0x1fcf37(0x123)]=!0x1,void(this[_0x1fcf37(0x114)]=void 0x0);this[_0x1fcf37(0x123)]=!0x0;try{const _0x2c61e4=await fetch(this[_0x1fcf37(0xe0)]+_0x1fcf37(0xf9)+encodeURIComponent(this['type'])+'/'+encodeURIComponent(this[_0x1fcf37(0xcc)])+'/at/'+_0x393335),_0x100711=await _0x2c61e4[_0x1fcf37(0xe3)]();if(!_0x2c61e4['ok'])throw new Error(_0x100711?.[_0x1fcf37(0x12e)]?.[_0x1fcf37(0xfe)]||_0x1fcf37(0xd2));this[_0x1fcf37(0x109)]=_0x100711['result']?.[_0x1fcf37(0x126)]??_0x100711[_0x1fcf37(0x10e)]?.['value']??null,this[_0x1fcf37(0x114)]=JSON[_0x1fcf37(0x10d)](JSON[_0x1fcf37(0xd6)](this[_0x1fcf37(0x109)]));}catch{this[_0x1fcf37(0xfb)]=null,this[_0x1fcf37(0x109)]=null;}finally{this[_0x1fcf37(0x123)]=!0x1;}},'reset'(){const _0x3d7ec7=_0x41e131;this[_0x3d7ec7(0x114)]=void 0x0,this['jsonError']=!0x1,_0x320a7f[_0x3d7ec7(0x10c)]['editor']['reset']?.();},async 'save'(){const _0x98e582=_0x41e131;if(void 0x0!==this[_0x98e582(0x114)]&&!this[_0x98e582(0x10b)]){this[_0x98e582(0x119)]=!0x0;try{const _0x47c294=this['edited'],_0x36bf2c=await fetch(this[_0x98e582(0xe0)]+_0x98e582(0xfa)+this['type']+_0x98e582(0xd7)+this[_0x98e582(0xcc)],{'method':_0x98e582(0xda),'headers':{'Content-Type':_0x98e582(0xdb)},'body':JSON[_0x98e582(0xd6)](_0x47c294)});if(!_0x36bf2c['ok']){const _0x211de5=await _0x36bf2c['json']()[_0x98e582(0xf7)](()=>({})),_0x4889d6=_0x211de5?.['error']?.[_0x98e582(0xfe)]||_0x211de5?.[_0x98e582(0xfe)]||_0x211de5?.[_0x98e582(0x12e)]||_0x36bf2c[_0x98e582(0xce)];throw new Error(_0x98e582(0x128)==typeof _0x4889d6?_0x4889d6:_0x36bf2c['statusText']);}o(this['row'])&&o(_0x47c294)&&(Object[_0x98e582(0xd5)](this[_0x98e582(0xe1)])[_0x98e582(0x103)](_0x395bf7=>delete this[_0x98e582(0xe1)][_0x395bf7]),Object[_0x98e582(0xf5)](this['row'],_0x47c294)),_0x320a7f[_0x98e582(0xf2)]['dispatchEvent'](new CustomEvent('change',{'detail':{'key':this['key'],'value':_0x47c294}})),this[_0x98e582(0xea)]=null,await this[_0x98e582(0x110)]();}catch(_0x4c2072){console[_0x98e582(0x12e)]('Save\x20row\x20error',_0x4c2072),_0x320a7f['$ok'][_0x98e582(0xe5)]?.[_0x98e582(0x127)]?.[_0x98e582(0x12e)]?.(_0x4c2072[_0x98e582(0xfe)]||_0x98e582(0x120));}finally{this['busySave']=!0x1;}}},async 'remove'(){const _0x174dc3=_0x41e131;this['busyRemove']=!0x0;try{const _0x3fcba6=await fetch(this[_0x174dc3(0xe0)]+_0x174dc3(0xfa)+this[_0x174dc3(0x10a)]+'/item/'+this['key'],{'method':_0x174dc3(0x121)});if(!_0x3fcba6['ok'])throw new Error(_0x3fcba6['statusText']);_0x320a7f[_0x174dc3(0x11e)]['shared']['toast']?.[_0x174dc3(0x111)](this[_0x174dc3(0xcc)]+_0x174dc3(0xd3)),_0x320a7f[_0x174dc3(0xf2)][_0x174dc3(0xd4)](new CustomEvent(_0x174dc3(0xf0),{'detail':{'key':this[_0x174dc3(0xcc)],'value':this[_0x174dc3(0xe1)]}})),await _0x320a7f['$ok'][_0x174dc3(0xd8)][_0x174dc3(0xe6)][_0x174dc3(0xee)]();}catch(_0x1f2d78){console['error']('Remove\x20row\x20error',_0x1f2d78);}finally{this[_0x174dc3(0x115)]=!0x1;}}}),async 'init'(_0x3d7e4c){const _0x3083e3=_0x41e131;_0x3d7e4c[_0x3083e3(0xec)](()=>_0x3d7e4c[_0x3083e3(0xdd)][_0x3083e3(0x10a)]+'|'+_0x3d7e4c[_0x3083e3(0xdd)][_0x3083e3(0xcc)],()=>{const _0x5e3ad8=_0x3083e3;this[_0x5e3ad8(0xfb)]=null,this[_0x5e3ad8(0x109)]=null,this[_0x5e3ad8(0x123)]=!0x1,this[_0x5e3ad8(0xe7)]=[];}),await Promise[_0x3083e3(0x100)]([this['loadClock'](),this[_0x3083e3(0x102)]()]);},'template':_0x41e131(0x117)};
1
+ const _0x318bd3=_0x2017;(function(_0x34058a,_0x305263){const _0x1f7863=_0x2017,_0x547cc3=_0x34058a();while(!![]){try{const _0x46418b=-parseInt(_0x1f7863(0x17b))/0x1+parseInt(_0x1f7863(0x19b))/0x2+-parseInt(_0x1f7863(0x174))/0x3+-parseInt(_0x1f7863(0x179))/0x4+parseInt(_0x1f7863(0x1b3))/0x5+parseInt(_0x1f7863(0x1b9))/0x6+parseInt(_0x1f7863(0x1b8))/0x7*(-parseInt(_0x1f7863(0x1cf))/0x8);if(_0x46418b===_0x305263)break;else _0x547cc3['push'](_0x547cc3['shift']());}catch(_0x215366){_0x547cc3['push'](_0x547cc3['shift']());}}}(_0x1753,0x5e9d2));function _0x2017(_0x1d139f,_0x4fe8da){_0x1d139f=_0x1d139f-0x16a;const _0x17536e=_0x1753();let _0x201733=_0x17536e[_0x1d139f];return _0x201733;}import _0x1c3df9 from'../../../components/ok-json-input.ok.js';function _0x1753(){const _0x352d9c=['2-digit','jsonError','editor','clockBusy','tmSelectedClock','string','ttlBusy','info','var(--okdb-orange)','$refs','tmSelectedDiff','\x20deleted','parse','$ok','json','toLocaleString','api','2277245JKKMYB','result','onTMClockSelect','row','Failed\x20to\x20set\x20TTL','14cJcdmp','3934338jdKnrq','numeric','ttlInputMs','en-GB','30\x20days','/time-machine/','stringify','DELETE','fmtDuration','tmFetchBusy','remove','tmValue','Save\x20row\x20error','error','application/json','Save\x20failed','catch','all','tmCurrentIdx','clock','\x0a\x20\x20\x20\x20\x20\x20\x20\x20<transition\x20name=\x22grow\x22>\x0a\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<!--\x20Clock\x20+\x20TTL\x20badges\x20row\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:6px;\x20margin-bottom:8px;\x22>\x0a\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@click=\x22toggleClock()\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\x20style=\x22font-size:10px;\x20padding:1px\x207px;\x20border-radius:4px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20background:var(--okdb-app-bg-deep);\x20color:var(--okdb-app-fg-muted);\x20cursor:pointer;\x20font-family:monospace;\x20display:flex;\x20align-items:center;\x20gap:5px;\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\x20title=\x22Show\x20change\x20history\x20for\x20this\x20record\x22\x0a\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<if\x20:=\x22clockBusy\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>clock\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</if>\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:=\x22!clockBusy\x20&&\x20latestClock\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\x20\x20\x20\x20<span>clock:\x20{{\x20latestClock\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\x20<if\x20:=\x22latestTime\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\x20\x20\x20\x20<span\x20style=\x22opacity:.55;\x20font-family:sans-serif;\x20font-size:10px;\x22>·\x20{{\x20latestTime\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\x20</if>\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=\x22opacity:.4;\x22>{{\x20clockOpen\x20?\x20\x27▲\x27\x20:\x20\x27▼\x27\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</if>\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:=\x22!clockBusy\x20&&\x20latestClock\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\x20\x20\x20\x20<span\x20style=\x22opacity:.5;\x22>no\x20clock</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</button>\x0a\x0a\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@click=\x22ttlOpen\x20=\x20!ttlOpen\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:style=\x22\x27font-size:10px;\x20padding:1px\x207px;\x20border-radius:4px;\x20border:1px\x20solid\x20\x27\x20+\x20(ttlInfo\x20?\x20ttlBadgeColor\x20+\x20\x2755\x27\x20:\x20\x27var(--okdb-app-border)\x27)\x20+\x20\x27;\x20background:var(--okdb-app-bg-deep);\x20color:\x27\x20+\x20ttlBadgeColor\x20+\x20\x27;\x20cursor:pointer;\x20font-family:monospace;\x20display:flex;\x20align-items:center;\x20gap:5px;\x27\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\x20title=\x22TTL\x20(time-to-live)\x20for\x20this\x20record\x22\x0a\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<span>{{\x20ttlBadgeText\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<if\x20:=\x22ttlInfo\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=\x22opacity:.4;\x22>{{\x20ttlOpen\x20?\x20\x27▲\x27\x20:\x20\x27▼\x27\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</if>\x0a\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</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Changelog\x20+\x20time-travel\x20panel\x20(opens\x20when\x20clock\x20badge\x20clicked)\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22clockOpen\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22margin-bottom:10px;\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<!--\x20Changelog\x20table\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<if\x20:=\x22clockEntries\x20&&\x20clockEntries.length\x20>\x200\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<div\x20style=\x22margin-bottom:8px;\x20background:var(--okdb-app-bg-deep);\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:6px;\x20overflow:hidden;\x20font-size:11px;\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\x20\x20\x20\x20<div\x20style=\x22display:grid;\x20grid-template-columns:auto\x20auto\x201fr\x20auto;\x20gap:0;\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\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:4px\x2010px;\x20opacity:.4;\x20border-bottom:1px\x20solid\x20var(--okdb-app-border);\x20font-weight:600;\x22>clock</div>\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\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:4px\x2010px;\x20opacity:.4;\x20border-bottom:1px\x20solid\x20var(--okdb-app-border);\x20font-weight:600;\x22>action</div>\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\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:4px\x2010px;\x20opacity:.4;\x20border-bottom:1px\x20solid\x20var(--okdb-app-border);\x20font-weight:600;\x22>wall\x20time</div>\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\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:4px\x2010px;\x20opacity:.4;\x20border-bottom:1px\x20solid\x20var(--okdb-app-border);\x20font-weight:600;\x22>origin</div>\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\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22clockEntries\x22\x20let:item=\x22entry\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:3px\x2010px;\x20font-family:monospace;\x20opacity:.8;\x20border-bottom:1px\x20solid\x20var(--okdb-app-surface);\x22>{{\x20entry.clock\x20??\x20\x27—\x27\x20}}</div>\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:3px\x2010px;\x20border-bottom:1px\x20solid\x20var(--okdb-app-surface);\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22\x27color:\x27\x20+\x20(entry.action\x20===\x20\x27put\x27\x20?\x20\x27var(--okdb-success)\x27\x20:\x20entry.action\x20===\x20\x27remove\x27\x20?\x20\x27var(--okdb-danger)\x27\x20:\x20\x27var(--okdb-warning)\x27)\x22>{{\x20entry.action\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:3px\x2010px;\x20opacity:.6;\x20border-bottom:1px\x20solid\x20var(--okdb-app-surface);\x20white-space:nowrap;\x22>{{\x20hlcToDate(entry.timestamp)\x20}}</div>\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:3px\x2010px;\x20font-family:monospace;\x20opacity:.35;\x20font-size:10px;\x20border-bottom:1px\x20solid\x20var(--okdb-app-surface);\x20white-space:nowrap;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20max-width:120px;\x22\x20:title=\x22entry.origin\x22>{{\x20(entry.origin\x20||\x20\x27—\x27).slice(0,\x208)\x20}}</div>\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\x20\x20\x20\x20\x20\x20\x20\x20</each>\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\x20\x20\x20\x20</div>\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</div>\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\x20\x20\x20\x20<!--\x20Time-travel\x20scrubber\x20(sits\x20outside\x20overflow:hidden\x20so\x20tooltips\x20aren\x27t\x20clipped)\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<tm-timeline\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:type=\x22type\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:item-key=\x22key\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:env=\x22$ok.stores.okdb.selectedEnv\x20||\x20\x27default\x27\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:selected-clock=\x22tmSelectedClock\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@tm-clock-select=\x22onTMClockSelect($event.detail)\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@tm-diffs-loaded=\x22tmDiffs\x20=\x20$event.detail.diffs\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</div>\x0a\x20\x20\x20\x20\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\x20\x20\x20\x20<!--\x20TTL\x20detail\x20panel\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22ttlOpen\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22margin-bottom:10px;\x20background:var(--okdb-app-bg-deep);\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:6px;\x20padding:10px;\x20font-size:11px;\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<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20margin-bottom:8px;\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-weight:600;\x20opacity:.6;\x22>Time-to-Live</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\x20<if\x20:=\x22ttlInfo\x20&&\x20ttlInfo.expiresAt\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\x20\x20\x20\x20<span\x20:style=\x22\x27color:\x27\x20+\x20ttlBadgeColor\x20+\x20\x27;\x20font-family:monospace;\x27\x22>{{\x20fmtDuration(ttlInfo.remainingMs)\x20}}\x20remaining</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\x20\x20\x20\x20\x20<span\x20style=\x22opacity:.35;\x20font-size:10px;\x22>·\x20expires\x20{{\x20new\x20Date(ttlInfo.expiresAt).toLocaleString()\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\x20</if>\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<if\x20:=\x22!ttlInfo\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\x20\x20\x20\x20<span\x20style=\x22opacity:.4;\x22>No\x20TTL\x20set\x20—\x20this\x20item\x20will\x20not\x20expire.</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\x20</if>\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</div>\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<div\x20style=\x22display:flex;\x20gap:6px;\x20align-items:center;\x20flex-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\x20\x20\x20\x20<select\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\x20\x20\x20\x20@change=\x22onTTLPresetChange($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\x20\x20\x20\x20style=\x22font-size:11px;\x20padding:2px\x206px;\x20background:var(--okdb-app-bg-deep);\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:4px;\x20color:var(--okdb-app-fg);\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>\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\x20\x20\x20\x20<option\x20value=\x22\x22>Custom…</option>\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\x20\x20\x20\x20<each\x20:of=\x22ttlPresets\x22\x20let:item=\x22p\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\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22String(p.ms)\x22\x20:selected=\x22ttlPreset\x20===\x20String(p.ms)\x22>{{\x20p.label\x20}}</option>\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\x20\x20\x20\x20</each>\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</select>\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\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\x20\x20\x20\x20type=\x22number\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\x20\x20\x20\x20!value=\x22ttlInputMs\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\x20\x20\x20\x20@input=\x22(ttlInputMs\x20=\x20$el.value,\x20ttlPreset\x20=\x20\x27\x27)\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\x20\x20\x20\x20placeholder=\x22ms\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\x20\x20\x20\x20style=\x22width:100px;\x20font-size:11px;\x20padding:2px\x206px;\x20background:var(--okdb-app-bg-deep);\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:4px;\x20color:var(--okdb-app-fg);\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/>\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<button\x20@click=\x22setItemTTL()\x22\x20:disabled=\x22ttlBusy\x20||\x20!ttlInputMs\x22\x20style=\x22font-size:11px;\x20padding:2px\x2010px;\x20color:var(--okdb-success);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-success)\x2033%,\x20transparent);\x22>Set\x20TTL</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\x20\x20\x20\x20<if\x20:=\x22ttlInfo\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\x20\x20\x20\x20<button\x20@click=\x22clearItemTTL()\x22\x20:disabled=\x22ttlBusy\x22\x20style=\x22font-size:11px;\x20padding:2px\x2010px;\x20color:var(--okdb-danger);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent);\x22>Clear\x20TTL</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\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\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22loadTTL()\x22\x20:disabled=\x22ttlBusy\x22\x20style=\x22font-size:11px;\x20padding:2px\x208px;\x20opacity:.5;\x22\x20title=\x22Refresh\x20TTL\x20info\x22>↻</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</div>\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</if>\x0a\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\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20JSON\x20header\x20with\x20historical\x20clock\x20badge\x20+\x20prev/next\x20navigation\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;\x20align-items:center;\x20gap:5px;\x20margin-bottom:4px;\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<if\x20:=\x22tmSelectedClock\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\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\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22goPrev()\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\x20\x20\x20\x20:disabled=\x22!canGoPrev\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\x20\x20\x20\x20:style=\x22\x27font-size:12px;\x20padding:0\x206px;\x20height:20px;\x20line-height:1;\x20border-radius:4px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20background:var(--okdb-app-bg-deep);\x20color:var(--okdb-app-fg-muted);\x20cursor:pointer;\x20font-family:monospace;\x20opacity:\x27\x20+\x20(canGoPrev\x20?\x20\x271\x27\x20:\x20\x27.3\x27)\x20+\x20\x27;\x20transition:opacity\x20120ms;\x27\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\x20\x20\x20\x20title=\x22Previous\x20snapshot\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>&#8592;</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\x20\x20\x20\x20<span\x20style=\x22display:inline-flex;\x20align-items:center;\x20gap:6px;\x20font-size:10px;\x20padding:1px\x208px;\x20border-radius:4px;\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2012%,\x20transparent);\x20color:var(--okdb-accent);\x20font-family:monospace;\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\x20\x20\x20\x20<span>clock\x20{{\x20tmSelectedClock\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\x20\x20\x20\x20\x20<if\x20:=\x22tmSelectedTime\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\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22opacity:.6;\x20font-family:sans-serif;\x20font-weight:400;\x22>{{\x20tmSelectedTime\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\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\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\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\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22goNext()\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\x20\x20\x20\x20:disabled=\x22!canGoNext\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\x20\x20\x20\x20:style=\x22\x27font-size:12px;\x20padding:0\x206px;\x20height:20px;\x20line-height:1;\x20border-radius:4px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20background:var(--okdb-app-bg-deep);\x20color:var(--okdb-app-fg-muted);\x20cursor:pointer;\x20font-family:monospace;\x20opacity:\x27\x20+\x20(canGoNext\x20?\x20\x271\x27\x20:\x20\x27.3\x27)\x20+\x20\x27;\x20transition:opacity\x20120ms;\x27\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\x20\x20\x20\x20title=\x22Next\x20snapshot\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>&#8594;</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>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\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\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22position:relative;\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<ok-json-input\x20ref=\x22editor\x22\x20:value=\x22tmSelectedClock\x20!==\x20null\x20?\x20tmValue\x20:\x20row\x22\x20@edit=\x22edited=$event.detail\x22\x20@parse-error=\x22jsonError=$event.detail\x22\x20style=\x22min-height:\x20300px\x22></ok-json-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<if\x20:=\x22tmFetchBusy\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<div\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\x20\x20\x20\x20style=\x22position:absolute;\x20inset:0;\x20background:var(--okdb-app-bg)88;\x20display:flex;\x20align-items:center;\x20justify-content:center;\x20border-radius:6px;\x20z-index:2;\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>\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\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.6;\x22>loading…</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\x20</div>\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\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22margin-top:8px;\x20display:flex;\x20gap:8px;\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<button\x20@click=\x22reset\x22\x20:disabled=\x22!hasEditedValue\x22>Reset</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<button\x20@click=\x22save\x22\x20:disabled=\x22!hasEditedValue\x20||\x20busySave\x22>Save</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<button\x20@click=\x22remove\x22\x20:disabled=\x22busyRemove\x22>Delete</button>\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</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</transition>\x0a\x20\x20\x20\x20','reset','351752TRjuNu','ttlInfo','message','24\x20hr','no\x20ttl','dispatchEvent','toast','apiBase','Failed','data','/changelog?limit=20','reloadTypes','remainingMs','998982hxvhdy','tmDiffClocks','ttlPreset','1\x20hr','map','1959208PWZMke','indexOf','252953agBNgW','$el','length','canGoNext','var(--okdb-success)','PUT','isArray','busySave','/item/','loadClock','/ttl','loadTTL','1\x20min','edited','key','$watch','tmDiffs','TTL\x20cleared','statusText','$attr','ttl\x20…','clockEntries','shared','stores','floor','6\x20hr','find','var(--okdb-danger)','short','busyRemove','value','ttl:\x20','880106xJStgb','okdb','/type/','type','clockOpen','canGoPrev','keys'];_0x1753=function(){return _0x352d9c;};return _0x1753();}import _0x45658d from'./tm-timeline.ok.js';function o(_0x3b88d9){const _0x42b801=_0x2017;return!!_0x3b88d9&&'object'==typeof _0x3b88d9&&!Array[_0x42b801(0x181)](_0x3b88d9);}export default{'tag':'edit-row','dependencies':[_0x1c3df9,_0x45658d],'attr':{'type':{},'key':{},'row':{}},'context':_0x3fa758=>({get 'api'(){const _0x189b92=_0x2017;return _0x3fa758[_0x189b92(0x1af)]['stores'][_0x189b92(0x19c)][_0x189b92(0x16e)];},get 'type'(){const _0xf5d670=_0x2017;return _0x3fa758[_0xf5d670(0x18e)][_0xf5d670(0x19e)];},get 'key'(){const _0x470a3a=_0x2017;return _0x3fa758[_0x470a3a(0x18e)]['key'];},get 'row'(){const _0x136715=_0x2017;return _0x3fa758[_0x136715(0x18e)][_0x136715(0x1b6)];},get 'hasEditedValue'(){const _0x2578d5=_0x2017;return void 0x0!==this[_0x2578d5(0x188)]&&!this[_0x2578d5(0x1a3)];},'edited':void 0x0,'jsonError':!0x1,'busySave':!0x1,'busyRemove':!0x1,'tmSelectedClock':null,'tmFetchBusy':!0x1,'tmValue':null,'tmDiffs':[],get 'tmDiffClocks'(){const _0xda9153=_0x2017;return this[_0xda9153(0x18b)][_0xda9153(0x178)](_0x30e508=>_0x30e508[_0xda9153(0x1cc)]);},get 'tmSelectedDiff'(){const _0x275d22=_0x2017;return null===this[_0x275d22(0x1a6)]?null:this['tmDiffs'][_0x275d22(0x195)](_0x21ec17=>_0x21ec17[_0x275d22(0x1cc)]===this[_0x275d22(0x1a6)])??null;},get 'tmSelectedTime'(){const _0x415c23=_0x2017,_0x445c3e=this[_0x415c23(0x1ac)]?.['timestamp'];return _0x445c3e?new Date(_0x445c3e)[_0x415c23(0x1b1)](_0x415c23(0x1bc),{'day':_0x415c23(0x1ba),'month':_0x415c23(0x197),'year':_0x415c23(0x1ba),'hour':_0x415c23(0x1a2),'minute':_0x415c23(0x1a2),'second':_0x415c23(0x1a2)}):null;},get 'tmCurrentIdx'(){const _0xd2d152=_0x2017;return null===this[_0xd2d152(0x1a6)]?-0x1:this['tmDiffClocks'][_0xd2d152(0x17a)](this['tmSelectedClock']);},get 'canGoPrev'(){const _0x5b50d8=_0x2017;return this[_0x5b50d8(0x1cb)]>0x0;},get 'canGoNext'(){const _0x5bd5db=_0x2017;return-0x1!==this[_0x5bd5db(0x1cb)]&&this[_0x5bd5db(0x1cb)]<this['tmDiffClocks']['length']-0x1;},'goPrev'(){const _0x4dd3ad=_0x2017;this[_0x4dd3ad(0x1a0)]&&this[_0x4dd3ad(0x1b5)]({'clock':this[_0x4dd3ad(0x175)][this['tmCurrentIdx']-0x1]});},'goNext'(){const _0x5b1b7a=_0x2017;this[_0x5b1b7a(0x17e)]&&this['onTMClockSelect']({'clock':this[_0x5b1b7a(0x175)][this['tmCurrentIdx']+0x1]});},'clockOpen':!0x1,'clockBusy':!0x1,'clockEntries':null,'ttlInfo':null,'ttlBusy':!0x1,'ttlOpen':!0x1,'ttlInputMs':'','ttlPreset':'','ttlPresets':[{'label':_0x318bd3(0x187),'ms':0xea60},{'label':'5\x20min','ms':0x493e0},{'label':'15\x20min','ms':0xdbba0},{'label':_0x318bd3(0x177),'ms':0x36ee80},{'label':_0x318bd3(0x194),'ms':0x1499700},{'label':_0x318bd3(0x16a),'ms':0x5265c00},{'label':'7\x20days','ms':0x240c8400},{'label':_0x318bd3(0x1bd),'ms':0x9a7ec800}],async 'loadTTL'(){const _0xf1c9ad=_0x318bd3;if(!this[_0xf1c9ad(0x1a8)]){this['ttlBusy']=!0x0;try{const _0x180085=await fetch(this[_0xf1c9ad(0x1b2)]+_0xf1c9ad(0x19d)+encodeURIComponent(this[_0xf1c9ad(0x19e)])+_0xf1c9ad(0x183)+encodeURIComponent(this[_0xf1c9ad(0x189)])+_0xf1c9ad(0x185)),_0x4ca5c8=await _0x180085[_0xf1c9ad(0x1b0)](),_0x21057b=_0x4ca5c8['data']??_0x4ca5c8[_0xf1c9ad(0x1b4)]??null;this[_0xf1c9ad(0x1d0)]=_0x21057b||!0x1;}catch{this[_0xf1c9ad(0x1d0)]=!0x1;}finally{this['ttlBusy']=!0x1;}}},async 'setItemTTL'(){const _0x2e4311=_0x318bd3,_0x26dd8e=parseInt(this[_0x2e4311(0x1bb)]);if(_0x26dd8e&&!(_0x26dd8e<=0x0)){this[_0x2e4311(0x1a8)]=!0x0;try{const _0x83417f=await fetch(this['api']+_0x2e4311(0x19d)+encodeURIComponent(this[_0x2e4311(0x19e)])+_0x2e4311(0x183)+encodeURIComponent(this['key'])+_0x2e4311(0x185),{'method':'PUT','headers':{'Content-Type':_0x2e4311(0x1c7)},'body':JSON[_0x2e4311(0x1bf)]({'ttl':_0x26dd8e})});if(!_0x83417f['ok']){const _0x47ceb4=await _0x83417f[_0x2e4311(0x1b0)]()[_0x2e4311(0x1c9)](()=>({}));throw new Error(_0x47ceb4?.[_0x2e4311(0x1c6)]?.[_0x2e4311(0x1d1)]||_0x83417f[_0x2e4311(0x18d)]);}_0x3fa758[_0x2e4311(0x1af)]['shared']?.[_0x2e4311(0x16d)]?.[_0x2e4311(0x1a9)]?.('TTL\x20set\x20('+this[_0x2e4311(0x1c1)](_0x26dd8e)+')'),await this[_0x2e4311(0x186)]();}catch(_0x27a9cc){_0x3fa758['$ok'][_0x2e4311(0x191)]?.[_0x2e4311(0x16d)]?.[_0x2e4311(0x1c6)]?.(_0x27a9cc[_0x2e4311(0x1d1)]||_0x2e4311(0x1b7));}finally{this['ttlBusy']=!0x1;}}},async 'clearItemTTL'(){const _0x2a22b6=_0x318bd3;this[_0x2a22b6(0x1a8)]=!0x0;try{const _0x502573=await fetch(this[_0x2a22b6(0x1b2)]+_0x2a22b6(0x19d)+encodeURIComponent(this[_0x2a22b6(0x19e)])+_0x2a22b6(0x183)+encodeURIComponent(this[_0x2a22b6(0x189)])+_0x2a22b6(0x185),{'method':_0x2a22b6(0x1c0)});if(!_0x502573['ok'])throw new Error(_0x502573['statusText']);this[_0x2a22b6(0x1d0)]=!0x1,this[_0x2a22b6(0x1bb)]='',this[_0x2a22b6(0x176)]='',_0x3fa758[_0x2a22b6(0x1af)]['shared']?.[_0x2a22b6(0x16d)]?.['info']?.(_0x2a22b6(0x18c));}catch(_0x128af2){_0x3fa758['$ok'][_0x2a22b6(0x191)]?.[_0x2a22b6(0x16d)]?.[_0x2a22b6(0x1c6)]?.(_0x128af2[_0x2a22b6(0x1d1)]||'Failed\x20to\x20clear\x20TTL');}finally{this[_0x2a22b6(0x1a8)]=!0x1;}},'onTTLPresetChange'(_0x37fd15){const _0x32d084=_0x318bd3;this[_0x32d084(0x176)]=_0x37fd15,_0x37fd15&&(this['ttlInputMs']=_0x37fd15);},'fmtDuration'(_0x282146){const _0x1549fe=_0x318bd3;if(null==_0x282146)return'—';const _0x393d54=Math[_0x1549fe(0x193)](_0x282146/0x3e8);return _0x393d54<0x3c?_0x393d54+'s':_0x393d54<0xe10?Math[_0x1549fe(0x193)](_0x393d54/0x3c)+'m\x20'+_0x393d54%0x3c+'s':_0x393d54<0x15180?Math[_0x1549fe(0x193)](_0x393d54/0xe10)+'h\x20'+Math[_0x1549fe(0x193)](_0x393d54%0xe10/0x3c)+'m':Math[_0x1549fe(0x193)](_0x393d54/0x15180)+'d\x20'+Math['floor'](_0x393d54%0x15180/0xe10)+'h';},get 'ttlBadgeText'(){const _0x5a42f5=_0x318bd3;return this['ttlBusy']?_0x5a42f5(0x18f):this[_0x5a42f5(0x1d0)]?this[_0x5a42f5(0x1d0)][_0x5a42f5(0x173)]<=0x0?'ttl:\x20expired':_0x5a42f5(0x19a)+this[_0x5a42f5(0x1c1)](this['ttlInfo'][_0x5a42f5(0x173)]):_0x5a42f5(0x16b);},get 'ttlBadgeColor'(){const _0x298d43=_0x318bd3;return this[_0x298d43(0x1d0)]?this['ttlInfo'][_0x298d43(0x173)]<=0x0?_0x298d43(0x196):this['ttlInfo']['remainingMs']<0xea60?_0x298d43(0x1aa):_0x298d43(0x17f):'var(--okdb-app-fg-muted)';},'hlcToDate'(_0x951a1c){const _0xbacf2e=_0x318bd3,_0x16353b=Number(_0x951a1c)||0x0,_0x2512e0=(_0x16353b-_0x16353b%0x400)/0x400;return _0x2512e0?new Date(_0x2512e0)[_0xbacf2e(0x1b1)]():'—';},get 'latestClock'(){const _0x119ef3=_0x318bd3;return this[_0x119ef3(0x190)]?.[_0x119ef3(0x17d)]?this[_0x119ef3(0x190)][0x0][_0x119ef3(0x1cc)]??null:null;},get 'latestTime'(){const _0x257dd4=_0x318bd3;if(!this[_0x257dd4(0x190)]?.[_0x257dd4(0x17d)])return null;const _0x46b61f=this[_0x257dd4(0x190)][0x0]['timestamp'];return _0x46b61f?this['hlcToDate'](_0x46b61f):null;},async 'toggleClock'(){const _0x42c202=_0x318bd3;this[_0x42c202(0x19f)]=!this[_0x42c202(0x19f)];},async 'loadClock'(){const _0x4ffbef=_0x318bd3;if(!this[_0x4ffbef(0x1a5)]){this[_0x4ffbef(0x1a5)]=!0x0;try{const _0x4ead53=await fetch(this[_0x4ffbef(0x1b2)]+'/type/'+encodeURIComponent(this[_0x4ffbef(0x19e)])+'/item/'+encodeURIComponent(this[_0x4ffbef(0x189)])+_0x4ffbef(0x171)),_0x2d72b6=await _0x4ead53[_0x4ffbef(0x1b0)]();this['clockEntries']=_0x2d72b6[_0x4ffbef(0x170)]??[];}catch{this[_0x4ffbef(0x190)]=[];}finally{this[_0x4ffbef(0x1a5)]=!0x1;}}},async 'onTMClockSelect'({clock:_0x3adc38}){const _0x1384fe=_0x318bd3;if(this[_0x1384fe(0x1a6)]=_0x3adc38,null===_0x3adc38)return this[_0x1384fe(0x1c4)]=null,this[_0x1384fe(0x1c2)]=!0x1,void(this[_0x1384fe(0x188)]=void 0x0);this[_0x1384fe(0x1c2)]=!0x0;try{const _0x6f3bdd=await fetch(this['api']+_0x1384fe(0x1be)+encodeURIComponent(this[_0x1384fe(0x19e)])+'/'+encodeURIComponent(this[_0x1384fe(0x189)])+'/at/'+_0x3adc38),_0x3fe961=await _0x6f3bdd[_0x1384fe(0x1b0)]();if(!_0x6f3bdd['ok'])throw new Error(_0x3fe961?.[_0x1384fe(0x1c6)]?.[_0x1384fe(0x1d1)]||_0x1384fe(0x16f));this[_0x1384fe(0x1c4)]=_0x3fe961[_0x1384fe(0x1b4)]?.['value']??_0x3fe961[_0x1384fe(0x170)]?.[_0x1384fe(0x199)]??null,this[_0x1384fe(0x188)]=JSON[_0x1384fe(0x1ae)](JSON['stringify'](this[_0x1384fe(0x1c4)]));}catch{this[_0x1384fe(0x1a6)]=null,this[_0x1384fe(0x1c4)]=null;}finally{this[_0x1384fe(0x1c2)]=!0x1;}},'reset'(){const _0x5a07b=_0x318bd3;this['edited']=void 0x0,this[_0x5a07b(0x1a3)]=!0x1,_0x3fa758[_0x5a07b(0x1ab)][_0x5a07b(0x1a4)][_0x5a07b(0x1ce)]?.();},async 'save'(){const _0x48add0=_0x318bd3;if(void 0x0!==this[_0x48add0(0x188)]&&!this[_0x48add0(0x1a3)]){this['busySave']=!0x0;try{const _0x33fec5=this[_0x48add0(0x188)],_0x117874=await fetch(this[_0x48add0(0x1b2)]+'/type/'+this[_0x48add0(0x19e)]+'/item/'+this['key'],{'method':_0x48add0(0x180),'headers':{'Content-Type':_0x48add0(0x1c7)},'body':JSON[_0x48add0(0x1bf)](_0x33fec5)});if(!_0x117874['ok']){const _0x35959e=await _0x117874[_0x48add0(0x1b0)]()[_0x48add0(0x1c9)](()=>({})),_0x3ebf54=_0x35959e?.['error']?.[_0x48add0(0x1d1)]||_0x35959e?.[_0x48add0(0x1d1)]||_0x35959e?.['error']||_0x117874[_0x48add0(0x18d)];throw new Error(_0x48add0(0x1a7)==typeof _0x3ebf54?_0x3ebf54:_0x117874[_0x48add0(0x18d)]);}o(this[_0x48add0(0x1b6)])&&o(_0x33fec5)&&(Object[_0x48add0(0x1a1)](this[_0x48add0(0x1b6)])['forEach'](_0x4f8098=>delete this[_0x48add0(0x1b6)][_0x4f8098]),Object['assign'](this[_0x48add0(0x1b6)],_0x33fec5)),_0x3fa758['$el'][_0x48add0(0x16c)](new CustomEvent('change',{'detail':{'key':this[_0x48add0(0x189)],'value':_0x33fec5}})),this[_0x48add0(0x190)]=null,await this['loadClock']();}catch(_0x1c1727){console[_0x48add0(0x1c6)](_0x48add0(0x1c5),_0x1c1727),_0x3fa758[_0x48add0(0x1af)][_0x48add0(0x191)]?.[_0x48add0(0x16d)]?.['error']?.(_0x1c1727[_0x48add0(0x1d1)]||_0x48add0(0x1c8));}finally{this[_0x48add0(0x182)]=!0x1;}}},async 'remove'(){const _0x5ac6dd=_0x318bd3;this[_0x5ac6dd(0x198)]=!0x0;try{const _0x3b8c1d=await fetch(this[_0x5ac6dd(0x1b2)]+_0x5ac6dd(0x19d)+this[_0x5ac6dd(0x19e)]+_0x5ac6dd(0x183)+this['key'],{'method':_0x5ac6dd(0x1c0)});if(!_0x3b8c1d['ok'])throw new Error(_0x3b8c1d[_0x5ac6dd(0x18d)]);_0x3fa758['$ok'][_0x5ac6dd(0x191)]['toast']?.[_0x5ac6dd(0x1a9)](this[_0x5ac6dd(0x189)]+_0x5ac6dd(0x1ad)),_0x3fa758[_0x5ac6dd(0x17c)][_0x5ac6dd(0x16c)](new CustomEvent(_0x5ac6dd(0x1c3),{'detail':{'key':this[_0x5ac6dd(0x189)],'value':this[_0x5ac6dd(0x1b6)]}})),await _0x3fa758[_0x5ac6dd(0x1af)][_0x5ac6dd(0x192)][_0x5ac6dd(0x19c)][_0x5ac6dd(0x172)]();}catch(_0x334dab){console[_0x5ac6dd(0x1c6)]('Remove\x20row\x20error',_0x334dab);}finally{this[_0x5ac6dd(0x198)]=!0x1;}}}),async 'init'(_0x508235){const _0x2264f8=_0x318bd3;_0x508235[_0x2264f8(0x18a)](()=>_0x508235[_0x2264f8(0x18e)][_0x2264f8(0x19e)]+'|'+_0x508235[_0x2264f8(0x18e)][_0x2264f8(0x189)],()=>{const _0x4270f3=_0x2264f8;this[_0x4270f3(0x1a6)]=null,this['tmValue']=null,this[_0x4270f3(0x1c2)]=!0x1,this['tmDiffs']=[];}),await Promise[_0x2264f8(0x1ca)]([this[_0x2264f8(0x184)](),this[_0x2264f8(0x186)]()]);},'template':_0x318bd3(0x1cd)};
@@ -1 +1 @@
1
- const _0xd483a5=_0x8d5f;function _0x8d5f(_0x52f4d5,_0x112031){_0x52f4d5=_0x52f4d5-0x18b;const _0x749d11=_0x749d();let _0x8d5f53=_0x749d11[_0x52f4d5];return _0x8d5f53;}(function(_0x8d64e4,_0x551713){const _0x128965=_0x8d5f,_0x577aec=_0x8d64e4();while(!![]){try{const _0x195f70=-parseInt(_0x128965(0x1bb))/0x1+parseInt(_0x128965(0x1e0))/0x2+-parseInt(_0x128965(0x18e))/0x3*(-parseInt(_0x128965(0x19f))/0x4)+parseInt(_0x128965(0x1b7))/0x5+parseInt(_0x128965(0x1a6))/0x6*(-parseInt(_0x128965(0x197))/0x7)+parseInt(_0x128965(0x1e3))/0x8*(parseInt(_0x128965(0x1b6))/0x9)+-parseInt(_0x128965(0x1b5))/0xa;if(_0x195f70===_0x551713)break;else _0x577aec['push'](_0x577aec['shift']());}catch(_0x62e44b){_0x577aec['push'](_0x577aec['shift']());}}}(_0x749d,0x75b5c));import _0x510767 from'@toolkit/elements/ok-icon.ok.js';export default{'tag':'tm-timeline','components':[_0x510767],'attr':{'type':{},'itemKey':{},'env':{},'selectedClock':{}},'context':_0x5a70e9=>({'busy':!0x1,'diffs':[],'hoverClock':null,'isDragging':!0x1,'dragClock':null,get 'type'(){const _0x5f0fe1=_0x8d5f;return _0x5a70e9['$attr'][_0x5f0fe1(0x1cf)];},get 'itemKey'(){const _0x33b1a3=_0x8d5f;return _0x5a70e9[_0x33b1a3(0x1b3)][_0x33b1a3(0x1ca)];},get 'env'(){const _0x5ac1d9=_0x8d5f;return _0x5a70e9[_0x5ac1d9(0x1b3)][_0x5ac1d9(0x1b2)];},get 'selectedClock'(){const _0x2521bf=_0x8d5f,_0x1908ab=_0x5a70e9[_0x2521bf(0x1b3)]['selectedClock'];return null!=_0x1908ab?Number(_0x1908ab):null;},get '_cappedFractions'(){const _0x5387a1=_0x8d5f,_0x378fae=this[_0x5387a1(0x1de)][_0x5387a1(0x1c2)];if(0x0===_0x378fae)return new Map();if(0x1===_0x378fae)return new Map([[this[_0x5387a1(0x1de)][0x0]['clock'],0.5]]);const _0x2fa2e8=this[_0x5387a1(0x1de)]['map'](_0x44175c=>_0x44175c['clock']),_0x159719=[];for(let _0x3b31a8=0x1;_0x3b31a8<_0x378fae;_0x3b31a8++)_0x159719[_0x5387a1(0x1c3)](_0x2fa2e8[_0x3b31a8]-_0x2fa2e8[_0x3b31a8-0x1]);const _0x180115=[..._0x159719][_0x5387a1(0x1d5)]((_0x176456,_0x1c8f30)=>_0x176456-_0x1c8f30),_0x1aab96=0x4*_0x180115[Math['floor'](_0x180115[_0x5387a1(0x1c2)]/0x2)],_0x4b34c8=_0x159719[_0x5387a1(0x198)](_0x59e2e8=>Math[_0x5387a1(0x1c4)](_0x59e2e8,_0x1aab96)),_0x152cc1=[0x0];for(const _0x55249e of _0x4b34c8)_0x152cc1[_0x5387a1(0x1c3)](_0x152cc1[_0x152cc1[_0x5387a1(0x1c2)]-0x1]+_0x55249e);const _0x505d4b=_0x152cc1[_0x152cc1['length']-0x1],_0x1c734e=new Map();return _0x2fa2e8[_0x5387a1(0x194)]((_0x4b495a,_0x271fea)=>_0x1c734e[_0x5387a1(0x18d)](_0x4b495a,_0x505d4b?_0x152cc1[_0x271fea]/_0x505d4b:0x0)),_0x1c734e;},'dotFraction'(_0x204c86){const _0x259b24=_0x8d5f;return this[_0x259b24(0x191)][_0x259b24(0x1a0)](_0x204c86)??0.5;},'fieldsChanged':_0x108c55=>Object[_0xd483a5(0x1da)](_0x108c55[_0xd483a5(0x1c9)]||{})[_0xd483a5(0x1c2)]+(_0x108c55[_0xd483a5(0x1d7)]||[])[_0xd483a5(0x1c2)],'wallTime':_0x1cf9e1=>_0x1cf9e1['timestamp']?new Date(_0x1cf9e1[_0xd483a5(0x1a8)])['toLocaleString'](_0xd483a5(0x1dc),{'day':'numeric','month':_0xd483a5(0x18f),'year':_0xd483a5(0x1db),'hour':_0xd483a5(0x1ed),'minute':_0xd483a5(0x1ed),'second':_0xd483a5(0x1ed)}):null,get 'activeTooltipClock'(){const _0x1a0c7c=_0xd483a5;return this['isDragging']?this[_0x1a0c7c(0x1ae)]:this[_0x1a0c7c(0x1ec)];},async 'load'(){const _0x1ffbe0=_0xd483a5;if(this[_0x1ffbe0(0x1cf)]&&this[_0x1ffbe0(0x1ca)]&&this[_0x1ffbe0(0x1b2)]){this[_0x1ffbe0(0x1b9)]=!0x0;try{const _0x291d30=__ENV__[_0x1ffbe0(0x1d6)]+_0x1ffbe0(0x1b0)+encodeURIComponent(this[_0x1ffbe0(0x1b2)])+_0x1ffbe0(0x192)+encodeURIComponent(this[_0x1ffbe0(0x1cf)])+'/'+encodeURIComponent(this[_0x1ffbe0(0x1ca)])+_0x1ffbe0(0x1a5),_0x5386ad=await fetch(_0x291d30);if(!_0x5386ad['ok'])return void(this[_0x1ffbe0(0x1de)]=[]);const _0x56317a=await _0x5386ad[_0x1ffbe0(0x1a7)]();this[_0x1ffbe0(0x1de)]=_0x56317a[_0x1ffbe0(0x19c)]?.['diffs']||[];}catch{this[_0x1ffbe0(0x1de)]=[];}finally{this['busy']=!0x1;}_0x5a70e9['$el'][_0x1ffbe0(0x1aa)](new CustomEvent(_0x1ffbe0(0x1eb),{'detail':{'diffs':this['diffs']},'bubbles':!0x0}));}},'selectDot'(_0x1e8258){const _0x588f89=_0xd483a5;_0x5a70e9[_0x588f89(0x1b4)]['dispatchEvent'](new CustomEvent(_0x588f89(0x1c5),{'detail':{'clock':_0x1e8258},'bubbles':!0x0}));},'selectCurrent'(){const _0x212c34=_0xd483a5;_0x5a70e9[_0x212c34(0x1b4)][_0x212c34(0x1aa)](new CustomEvent(_0x212c34(0x1c5),{'detail':{'clock':null},'bubbles':!0x0}));},'nearestClockForFrac'(_0x2e6b24){const _0x121d13=_0xd483a5;if(!this[_0x121d13(0x1de)][_0x121d13(0x1c2)])return null;const _0x5ba5f3=this[_0x121d13(0x191)];let _0x12203d=this[_0x121d13(0x1de)][0x0],_0x26695d=0x1/0x0;for(const _0x15f42c of this['diffs']){const _0x4919b6=Math[_0x121d13(0x1c6)]((_0x5ba5f3[_0x121d13(0x1a0)](_0x15f42c[_0x121d13(0x1d4)])??0x0)-_0x2e6b24);_0x4919b6<_0x26695d&&(_0x26695d=_0x4919b6,_0x12203d=_0x15f42c);}return _0x12203d[_0x121d13(0x1d4)];},'fracFromEvent'(_0x2024b6){const _0x17b97b=_0xd483a5,_0x6d17f4=_0x5a70e9[_0x17b97b(0x1b4)][_0x17b97b(0x18c)](_0x17b97b(0x19a));if(!_0x6d17f4)return null;const _0x43c0b3=_0x6d17f4['getBoundingClientRect']();return Math['max'](0x0,Math['min'](0x1,(_0x2024b6[_0x17b97b(0x1af)]-_0x43c0b3[_0x17b97b(0x199)])/_0x43c0b3[_0x17b97b(0x1bd)]));},'startDrag'(_0x569251){const _0x23c4d3=_0xd483a5;_0x569251[_0x23c4d3(0x1ab)]();const _0x3216e4=this['fracFromEvent'](_0x569251);if(null===_0x3216e4)return;this[_0x23c4d3(0x1a2)]=!0x0,this['dragClock']=this[_0x23c4d3(0x1b8)](_0x3216e4);const _0x10a5cd=_0x1c5eba=>{const _0x4d7b6d=_0x23c4d3,_0x5a7fcb=this['fracFromEvent'](_0x1c5eba);null!==_0x5a7fcb&&(this[_0x4d7b6d(0x1ae)]=this[_0x4d7b6d(0x1b8)](_0x5a7fcb));},_0xede425=()=>{const _0x3f9e40=_0x23c4d3;document[_0x3f9e40(0x1be)](_0x3f9e40(0x1e7),_0x10a5cd),document['removeEventListener']('mouseup',_0xede425),this[_0x3f9e40(0x1a2)]=!0x1;const _0x584565=this['dragClock'];this[_0x3f9e40(0x1ae)]=null,null!==_0x584565&&(this[_0x3f9e40(0x1cd)](_0x584565),this[_0x3f9e40(0x1ec)]=_0x584565);};document['addEventListener'](_0x23c4d3(0x1e7),_0x10a5cd),document[_0x23c4d3(0x1a1)](_0x23c4d3(0x1e1),_0xede425);},'dotStyle'(_0x28c6ca){const _0x45348b=_0xd483a5,_0x113812=this[_0x45348b(0x1d9)](_0x28c6ca[_0x45348b(0x1d4)]),_0x163ea2=!this['isDragging']&&this[_0x45348b(0x1ec)]===_0x28c6ca['clock'],_0x5dce40=this[_0x45348b(0x1a2)]&&this[_0x45348b(0x1ae)]===_0x28c6ca[_0x45348b(0x1d4)];let _0x7a7a5b=_0x45348b(0x1d3),_0x241733=_0x45348b(0x1ac),_0x5562cc='.55';return this[_0x45348b(0x1a3)]===_0x28c6ca['clock']?(_0x7a7a5b='10px',_0x241733=_0x45348b(0x19e),_0x5562cc='1'):_0x5dce40?(_0x7a7a5b='8px',_0x241733=_0x45348b(0x19e),_0x5562cc=_0x45348b(0x1cc)):_0x163ea2&&(_0x7a7a5b=_0x45348b(0x1d2),_0x241733=_0x45348b(0x1c0),_0x5562cc='.9'),[_0x45348b(0x1e9),_0x45348b(0x1d8)+_0x113812+'\x20*\x20(100%\x20-\x2012px))',_0x45348b(0x19b),_0x45348b(0x18b),_0x45348b(0x195)+_0x7a7a5b,_0x45348b(0x19d)+_0x7a7a5b,_0x45348b(0x1ad),'background:'+_0x241733,_0x45348b(0x1e4)+_0x5562cc,_0x45348b(0x1ba),_0x45348b(0x1cb)+(this[_0x45348b(0x1a2)]?_0x45348b(0x1bc):_0x45348b(0x1c1)),_0x45348b(0x196)][_0x45348b(0x1ce)](';');},'dragRingStyle'(){const _0x18e072=_0xd483a5;return this[_0x18e072(0x1a2)]&&null!==this[_0x18e072(0x1ae)]?[_0x18e072(0x1e9),'left:calc(6px\x20+\x20'+this[_0x18e072(0x1d9)](this['dragClock'])+_0x18e072(0x1b1),'top:50%',_0x18e072(0x18b),'width:16px',_0x18e072(0x1e2),_0x18e072(0x1ad),'border:2px\x20solid\x20var(--okdb-accent)',_0x18e072(0x1d0),_0x18e072(0x1a4),'z-index:4','transition:left\x2070ms\x20cubic-bezier(0.25,0.1,0.25,1)']['join'](';'):_0x18e072(0x1e5);},'tooltipStyle'(_0x595180){const _0x49250a=_0xd483a5;return[_0x49250a(0x1e9),_0x49250a(0x1ee)+this[_0x49250a(0x1d9)](_0x595180[_0x49250a(0x1d4)])+'\x20*\x20(100%\x20-\x2012px)),\x20calc(100%\x20-\x2040px))',_0x49250a(0x1ea),_0x49250a(0x1e6),'background:var(--okdb-app-bg-deep)',_0x49250a(0x1dd),_0x49250a(0x1c8),_0x49250a(0x1d1),'font-size:11px',_0x49250a(0x1a9),_0x49250a(0x1a4),_0x49250a(0x1bf),_0x49250a(0x1c7),_0x49250a(0x193)]['join'](';');}}),async 'init'(_0x2bf4a2){const _0x4b4f97=_0xd483a5;_0x2bf4a2[_0x4b4f97(0x1e8)](()=>_0x2bf4a2[_0x4b4f97(0x1b3)]['type']+'|'+_0x2bf4a2[_0x4b4f97(0x1b3)][_0x4b4f97(0x1ca)]+'|'+_0x2bf4a2[_0x4b4f97(0x1b3)][_0x4b4f97(0x1b2)],()=>{this['diffs']=[],this['load']();}),await this[_0x4b4f97(0x190)]();},'template':_0xd483a5(0x1df),'style':''};function _0x749d(){const _0x5cd2c6=['abs','color:var(--okdb-app-fg)','border-radius:6px','put','itemKey','cursor:','.75','selectDot','join','type','background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2010%,\x20transparent)','padding:6px\x2010px','10px','6px','clock','sort','API','delete','left:calc(6px\x20+\x20','dotFraction','keys','numeric','en-GB','border:1px\x20solid\x20var(--okdb-app-border)','diffs','\x0a<if\x20:=\x22diffs.length\x20>\x200\x22>\x0a<div>\x0a\x0a\x20\x20<!--\x20Header:\x20label\x20+\x20\x22back\x20to\x20live\x22\x20button\x20-->\x0a\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20justify-content:space-between;\x20margin-bottom:7px;\x22>\x0a\x20\x20\x20\x20<span\x20style=\x22font-size:10px;\x20font-family:monospace;\x20letter-spacing:.05em;\x20text-transform:uppercase;\x20opacity:.38;\x20user-select:none;\x22>\x0a\x20\x20\x20\x20\x20\x20time\x20travel\x20&middot;\x20{{\x20diffs.length\x20}}\x20snapshot{{\x20diffs.length\x20===\x201\x20?\x20\x27\x27\x20:\x20\x27s\x27\x20}}\x0a\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20<if\x20:=\x22selectedClock\x20!==\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22selectCurrent()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-size:10px;\x20padding:1px\x208px;\x20border-radius:4px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2035%,\x20transparent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x208%,\x20transparent);\x20color:var(--okdb-accent);\x20cursor:pointer;\x20font-family:monospace;\x20line-height:1.6;\x22\x0a\x20\x20\x20\x20\x20\x20>&larr;\x20live</button>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20</div>\x0a\x0a\x20\x20<!--\x20Scrubber:\x20capped\x20width\x20so\x20it\x20never\x20fills\x20a\x20wide\x20table\x20-->\x0a\x20\x20<div\x20style=\x22max-width:480px;\x20padding-bottom:10px;\x22>\x0a\x20\x20\x20\x20<div\x0a\x20\x20\x20\x20\x20\x20data-track\x0a\x20\x20\x20\x20\x20\x20style=\x22position:relative;\x20height:26px;\x20width:100%;\x20user-select:none;\x22\x0a\x20\x20\x20\x20\x20\x20:style=\x22\x27cursor:\x27\x20+\x20(isDragging\x20?\x20\x27grabbing\x27\x20:\x20\x27ew-resize\x27)\x22\x0a\x20\x20\x20\x20\x20\x20@mousedown=\x22startDrag($event)\x22\x0a\x20\x20\x20\x20>\x0a\x0a\x20\x20\x20\x20\x20\x20<!--\x20Track\x20line\x20-->\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22position:absolute;\x20left:6px;\x20right:6px;\x20top:50%;\x20height:2px;\x20transform:translateY(-50%);\x20background:var(--okdb-app-border);\x20border-radius:1px;\x20pointer-events:none;\x22></div>\x0a\x0a\x20\x20\x20\x20\x20\x20<!--\x20Diff\x20dots\x20+\x20tooltips\x20-->\x0a\x20\x20\x20\x20\x20\x20<div\x20as=\x22repeat\x22\x20:of=\x22diffs\x22\x20let:item=\x22diff\x22>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Tooltip\x20(above\x20track,\x20shown\x20on\x20hover\x20or\x20drag-snap)\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22activeTooltipClock\x20===\x20diff.clock\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:style=\x22tooltipStyle(diff)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:5px;\x20margin-bottom:3px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-icon\x20name=\x22clock\x22\x20style=\x22width:10px;height:10px;opacity:.5;flex-shrink:0;\x22></ok-icon>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-family:monospace;\x20color:var(--okdb-accent);\x20font-size:10px;\x22>clock\x20{{\x20diff.clock\x20}}</span>\x0a\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\x20:=\x22wallTime(diff)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22opacity:.7;\x20font-size:11px;\x22>{{\x20wallTime(diff)\x20}}</div>\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<div\x20style=\x22opacity:.4;\x20margin-top:3px;\x20font-size:10px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20fieldsChanged(diff)\x20}}\x20field{{\x20fieldsChanged(diff)\x20===\x201\x20?\x20\x27\x27\x20:\x20\x27s\x27\x20}}\x20changed\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Dot\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22dotStyle(diff)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@mouseenter=\x22!isDragging\x20&&\x20(hoverClock\x20=\x20diff.clock)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@mouseleave=\x22!isDragging\x20&&\x20(hoverClock\x20=\x20null)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22!isDragging\x20&&\x20selectDot(diff.clock)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20></div>\x0a\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<!--\x20Snapping\x20ring:\x20jumps\x20to\x20nearest\x20clock\x20with\x20CSS\x20transition\x20-->\x0a\x20\x20\x20\x20\x20\x20<div\x20:style=\x22dragRingStyle()\x22\x20style=\x22pointer-events:none;\x22></div>\x0a\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a</div>\x0a</if>\x0a','1887862FkxObM','mouseup','height:16px','8hkniiw','opacity:','display:none','transform:translateX(-50%)','mousemove','$watch','position:absolute','bottom:calc(100%\x20+\x208px)','tm-diffs-loaded','hoverClock','2-digit','left:clamp(40px,\x20calc(6px\x20+\x20','transform:translate(-50%,-50%)','querySelector','set','611904OaCAkS','short','load','_cappedFractions','/time-machine/','box-shadow:0\x202px\x2010px\x20color-mix(in\x20srgb,\x20#000\x2025%,\x20transparent)','forEach','width:','z-index:3','405006lcKjWf','map','left','[data-track]','top:50%','data','height:','var(--okdb-accent)','8ebbbCM','get','addEventListener','isDragging','selectedClock','pointer-events:none','/history','84peOUal','json','timestamp','white-space:nowrap','dispatchEvent','preventDefault','var(--okdb-app-fg-muted)','border-radius:50%','dragClock','clientX','/env/','\x20*\x20(100%\x20-\x2012px))','env','$attr','$el','2230340jsqbsz','1729656LrXgNy','1597400sKXqVZ','nearestClockForFrac','busy','transition:width\x20100ms\x20ease,height\x20100ms\x20ease,background\x20100ms\x20ease,opacity\x20100ms\x20ease','348345SdXKSs','grabbing','width','removeEventListener','z-index:10','var(--okdb-app-fg)','pointer','length','push','min','tm-clock-select'];_0x749d=function(){return _0x5cd2c6;};return _0x749d();}
1
+ const _0x5be261=_0x41be;function _0x249a(){const _0x5b041a=['9739251QzDYMc','short','fracFromEvent','busy','6044MZmxPS','border-radius:6px','join','dispatchEvent','dragClock','box-shadow:0\x202px\x2010px\x20color-mix(in\x20srgb,\x20#000\x2025%,\x20transparent)','dotFraction','2-digit','background:var(--okdb-app-bg-deep)','mouseup','var(--okdb-accent)','clientX','tm-diffs-loaded','\x20*\x20(100%\x20-\x2012px))','push','addEventListener','4857TAWnrl','border-radius:50%','384xuHMJS','top:50%','1428SHgHkW','6px','$attr','left:clamp(40px,\x20calc(6px\x20+\x20','9252285Daosjx','padding:6px\x2010px','querySelector','.75','clock','/time-machine/','put','diffs','set','height:','var(--okdb-app-fg-muted)','$el','floor','map','selectDot','opacity:','isDragging','grabbing','transform:translateX(-50%)','nearestClockForFrac','itemKey','preventDefault','max','background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2010%,\x20transparent)','\x0a<if\x20:=\x22diffs.length\x20>\x200\x22>\x0a<div>\x0a\x0a\x20\x20<!--\x20Header:\x20label\x20+\x20\x22back\x20to\x20live\x22\x20button\x20-->\x0a\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20justify-content:space-between;\x20margin-bottom:7px;\x22>\x0a\x20\x20\x20\x20<span\x20style=\x22font-size:10px;\x20font-family:monospace;\x20letter-spacing:.05em;\x20text-transform:uppercase;\x20opacity:.38;\x20user-select:none;\x22>\x0a\x20\x20\x20\x20\x20\x20time\x20travel\x20&middot;\x20{{\x20diffs.length\x20}}\x20snapshot{{\x20diffs.length\x20===\x201\x20?\x20\x27\x27\x20:\x20\x27s\x27\x20}}\x0a\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20<if\x20:=\x22selectedClock\x20!==\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22selectCurrent()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-size:10px;\x20padding:1px\x208px;\x20border-radius:4px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2035%,\x20transparent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x208%,\x20transparent);\x20color:var(--okdb-accent);\x20cursor:pointer;\x20font-family:monospace;\x20line-height:1.6;\x22\x0a\x20\x20\x20\x20\x20\x20>&larr;\x20live</button>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20</div>\x0a\x0a\x20\x20<!--\x20Scrubber:\x20capped\x20width\x20so\x20it\x20never\x20fills\x20a\x20wide\x20table\x20-->\x0a\x20\x20<div\x20style=\x22max-width:480px;\x20padding-bottom:10px;\x22>\x0a\x20\x20\x20\x20<div\x0a\x20\x20\x20\x20\x20\x20data-track\x0a\x20\x20\x20\x20\x20\x20style=\x22position:relative;\x20height:26px;\x20width:100%;\x20user-select:none;\x22\x0a\x20\x20\x20\x20\x20\x20:style=\x22\x27cursor:\x27\x20+\x20(isDragging\x20?\x20\x27grabbing\x27\x20:\x20\x27ew-resize\x27)\x22\x0a\x20\x20\x20\x20\x20\x20@mousedown=\x22startDrag($event)\x22\x0a\x20\x20\x20\x20>\x0a\x0a\x20\x20\x20\x20\x20\x20<!--\x20Track\x20line\x20-->\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22position:absolute;\x20left:6px;\x20right:6px;\x20top:50%;\x20height:2px;\x20transform:translateY(-50%);\x20background:var(--okdb-app-border);\x20border-radius:1px;\x20pointer-events:none;\x22></div>\x0a\x0a\x20\x20\x20\x20\x20\x20<!--\x20Diff\x20dots\x20+\x20tooltips\x20-->\x0a\x20\x20\x20\x20\x20\x20<div\x20as=\x22repeat\x22\x20:of=\x22diffs\x22\x20let:item=\x22diff\x22>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Tooltip\x20(above\x20track,\x20shown\x20on\x20hover\x20or\x20drag-snap)\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22activeTooltipClock\x20===\x20diff.clock\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:style=\x22tooltipStyle(diff)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:5px;\x20margin-bottom:3px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-icon\x20name=\x22clock\x22\x20style=\x22width:10px;height:10px;opacity:.5;flex-shrink:0;\x22></ok-icon>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-family:monospace;\x20color:var(--okdb-accent);\x20font-size:10px;\x22>clock\x20{{\x20diff.clock\x20}}</span>\x0a\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\x20:=\x22wallTime(diff)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22opacity:.7;\x20font-size:11px;\x22>{{\x20wallTime(diff)\x20}}</div>\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<div\x20style=\x22opacity:.4;\x20margin-top:3px;\x20font-size:10px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20fieldsChanged(diff)\x20}}\x20field{{\x20fieldsChanged(diff)\x20===\x201\x20?\x20\x27\x27\x20:\x20\x27s\x27\x20}}\x20changed\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Dot\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22dotStyle(diff)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@mouseenter=\x22!isDragging\x20&&\x20(hoverClock\x20=\x20diff.clock)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@mouseleave=\x22!isDragging\x20&&\x20(hoverClock\x20=\x20null)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22!isDragging\x20&&\x20selectDot(diff.clock)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20></div>\x0a\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<!--\x20Snapping\x20ring:\x20jumps\x20to\x20nearest\x20clock\x20with\x20CSS\x20transition\x20-->\x0a\x20\x20\x20\x20\x20\x20<div\x20:style=\x22dragRingStyle()\x22\x20style=\x22pointer-events:none;\x22></div>\x0a\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a</div>\x0a</if>\x0a','left:calc(6px\x20+\x20','get','[data-track]','type','mousemove','env','10px','height:16px','z-index:10','.55','2280265CTKSTF','width','json','sort','numeric','/env/','tm-clock-select','forEach','removeEventListener','12568600tFrxjY','pointer-events:none','pointer','/history','selectedClock','cursor:','font-size:11px','load','min','8RCbRSJ','transform:translate(-50%,-50%)','color:var(--okdb-app-fg)','display:none','API','\x20*\x20(100%\x20-\x2012px)),\x20calc(100%\x20-\x2040px))','bottom:calc(100%\x20+\x208px)','z-index:3','width:16px','transition:width\x20100ms\x20ease,height\x20100ms\x20ease,background\x20100ms\x20ease,opacity\x20100ms\x20ease','6nsHJLg','length','timestamp','en-GB','1444124feyXTo','97HhHOpt','white-space:nowrap'];_0x249a=function(){return _0x5b041a;};return _0x249a();}(function(_0x2313c2,_0x6ac52f){const _0x2446f4=_0x41be,_0x3a9929=_0x2313c2();while(!![]){try{const _0x2db22f=-parseInt(_0x2446f4(0x12c))/0x1*(-parseInt(_0x2446f4(0x132))/0x2)+parseInt(_0x2446f4(0x142))/0x3*(-parseInt(_0x2446f4(0x146))/0x4)+parseInt(_0x2446f4(0x10b))/0x5*(parseInt(_0x2446f4(0x127))/0x6)+-parseInt(_0x2446f4(0x14a))/0x7*(parseInt(_0x2446f4(0x11d))/0x8)+-parseInt(_0x2446f4(0x12e))/0x9+-parseInt(_0x2446f4(0x114))/0xa+parseInt(_0x2446f4(0x12b))/0xb*(parseInt(_0x2446f4(0x144))/0xc);if(_0x2db22f===_0x6ac52f)break;else _0x3a9929['push'](_0x3a9929['shift']());}catch(_0x156f9b){_0x3a9929['push'](_0x3a9929['shift']());}}}(_0x249a,0xadb72));import _0x4b44e8 from'@toolkit/elements/ok-icon.ok.js';function _0x41be(_0x212886,_0x37578c){_0x212886=_0x212886-0xf9;const _0x249afc=_0x249a();let _0x41beaf=_0x249afc[_0x212886];return _0x41beaf;}export default{'tag':'tm-timeline','components':[_0x4b44e8],'attr':{'type':{},'itemKey':{},'env':{},'selectedClock':{}},'context':_0x20432f=>({'busy':!0x1,'diffs':[],'hoverClock':null,'isDragging':!0x1,'dragClock':null,get 'type'(){const _0x1b9ab6=_0x41be;return _0x20432f[_0x1b9ab6(0x148)][_0x1b9ab6(0x104)];},get 'itemKey'(){const _0x39aeab=_0x41be;return _0x20432f[_0x39aeab(0x148)][_0x39aeab(0xfc)];},get 'env'(){const _0x2bd0bc=_0x41be;return _0x20432f['$attr'][_0x2bd0bc(0x106)];},get 'selectedClock'(){const _0x4df212=_0x41be,_0x4a0476=_0x20432f[_0x4df212(0x148)][_0x4df212(0x118)];return null!=_0x4a0476?Number(_0x4a0476):null;},get '_cappedFractions'(){const _0x4a40ac=_0x41be,_0x24723c=this[_0x4a40ac(0x151)][_0x4a40ac(0x128)];if(0x0===_0x24723c)return new Map();if(0x1===_0x24723c)return new Map([[this[_0x4a40ac(0x151)][0x0][_0x4a40ac(0x14e)],0.5]]);const _0x4176a4=this['diffs']['map'](_0x343186=>_0x343186[_0x4a40ac(0x14e)]),_0x71951a=[];for(let _0x360568=0x1;_0x360568<_0x24723c;_0x360568++)_0x71951a[_0x4a40ac(0x140)](_0x4176a4[_0x360568]-_0x4176a4[_0x360568-0x1]);const _0x30bcd5=[..._0x71951a][_0x4a40ac(0x10e)]((_0x3eaeeb,_0x376b30)=>_0x3eaeeb-_0x376b30),_0x23773a=0x4*_0x30bcd5[Math[_0x4a40ac(0x156)](_0x30bcd5[_0x4a40ac(0x128)]/0x2)],_0x1fc3d5=_0x71951a[_0x4a40ac(0x157)](_0x3801cc=>Math[_0x4a40ac(0x11c)](_0x3801cc,_0x23773a)),_0x5ee148=[0x0];for(const _0x61e26c of _0x1fc3d5)_0x5ee148[_0x4a40ac(0x140)](_0x5ee148[_0x5ee148[_0x4a40ac(0x128)]-0x1]+_0x61e26c);const _0x36f4b1=_0x5ee148[_0x5ee148['length']-0x1],_0x43c243=new Map();return _0x4176a4[_0x4a40ac(0x112)]((_0x304e12,_0x32e63e)=>_0x43c243[_0x4a40ac(0x152)](_0x304e12,_0x36f4b1?_0x5ee148[_0x32e63e]/_0x36f4b1:0x0)),_0x43c243;},'dotFraction'(_0x4d7d0d){const _0x4a221d=_0x41be;return this['_cappedFractions'][_0x4a221d(0x102)](_0x4d7d0d)??0.5;},'fieldsChanged':_0x5ebac9=>Object['keys'](_0x5ebac9[_0x5be261(0x150)]||{})[_0x5be261(0x128)]+(_0x5ebac9['delete']||[])[_0x5be261(0x128)],'wallTime':_0x219e49=>_0x219e49[_0x5be261(0x129)]?new Date(_0x219e49['timestamp'])['toLocaleString'](_0x5be261(0x12a),{'day':'numeric','month':_0x5be261(0x12f),'year':_0x5be261(0x10f),'hour':_0x5be261(0x139),'minute':_0x5be261(0x139),'second':_0x5be261(0x139)}):null,get 'activeTooltipClock'(){const _0x1c8770=_0x5be261;return this['isDragging']?this[_0x1c8770(0x136)]:this['hoverClock'];},async 'load'(){const _0xbfb322=_0x5be261;if(this[_0xbfb322(0x104)]&&this[_0xbfb322(0xfc)]&&this[_0xbfb322(0x106)]){this[_0xbfb322(0x131)]=!0x0;try{const _0x1ccbf5=__ENV__[_0xbfb322(0x121)]+_0xbfb322(0x110)+encodeURIComponent(this[_0xbfb322(0x106)])+_0xbfb322(0x14f)+encodeURIComponent(this['type'])+'/'+encodeURIComponent(this[_0xbfb322(0xfc)])+_0xbfb322(0x117),_0x4476de=await fetch(_0x1ccbf5);if(!_0x4476de['ok'])return void(this[_0xbfb322(0x151)]=[]);const _0x5e30f3=await _0x4476de[_0xbfb322(0x10d)]();this[_0xbfb322(0x151)]=_0x5e30f3['data']?.['diffs']||[];}catch{this['diffs']=[];}finally{this[_0xbfb322(0x131)]=!0x1;}_0x20432f[_0xbfb322(0x155)][_0xbfb322(0x135)](new CustomEvent(_0xbfb322(0x13e),{'detail':{'diffs':this[_0xbfb322(0x151)]},'bubbles':!0x0}));}},'selectDot'(_0x5c32f4){const _0x483bb3=_0x5be261;_0x20432f[_0x483bb3(0x155)][_0x483bb3(0x135)](new CustomEvent(_0x483bb3(0x111),{'detail':{'clock':_0x5c32f4},'bubbles':!0x0}));},'selectCurrent'(){const _0xef1009=_0x5be261;_0x20432f[_0xef1009(0x155)][_0xef1009(0x135)](new CustomEvent(_0xef1009(0x111),{'detail':{'clock':null},'bubbles':!0x0}));},'nearestClockForFrac'(_0x1b2cdb){const _0x714bcf=_0x5be261;if(!this[_0x714bcf(0x151)][_0x714bcf(0x128)])return null;const _0x13ddca=this['_cappedFractions'];let _0x1d8e36=this[_0x714bcf(0x151)][0x0],_0x9e2981=0x1/0x0;for(const _0x5ecf88 of this[_0x714bcf(0x151)]){const _0x45f71=Math['abs']((_0x13ddca[_0x714bcf(0x102)](_0x5ecf88[_0x714bcf(0x14e)])??0x0)-_0x1b2cdb);_0x45f71<_0x9e2981&&(_0x9e2981=_0x45f71,_0x1d8e36=_0x5ecf88);}return _0x1d8e36[_0x714bcf(0x14e)];},'fracFromEvent'(_0x284fd6){const _0x2151be=_0x5be261,_0x854bb8=_0x20432f[_0x2151be(0x155)][_0x2151be(0x14c)](_0x2151be(0x103));if(!_0x854bb8)return null;const _0x3bf7a7=_0x854bb8['getBoundingClientRect']();return Math[_0x2151be(0xfe)](0x0,Math[_0x2151be(0x11c)](0x1,(_0x284fd6[_0x2151be(0x13d)]-_0x3bf7a7['left'])/_0x3bf7a7[_0x2151be(0x10c)]));},'startDrag'(_0x42b4a8){const _0x7967fb=_0x5be261;_0x42b4a8[_0x7967fb(0xfd)]();const _0x3a69c3=this[_0x7967fb(0x130)](_0x42b4a8);if(null===_0x3a69c3)return;this[_0x7967fb(0x15a)]=!0x0,this[_0x7967fb(0x136)]=this[_0x7967fb(0xfb)](_0x3a69c3);const _0x31fea7=_0x526ab1=>{const _0x426615=_0x7967fb,_0x56cc86=this[_0x426615(0x130)](_0x526ab1);null!==_0x56cc86&&(this[_0x426615(0x136)]=this[_0x426615(0xfb)](_0x56cc86));},_0x4e4351=()=>{const _0x49dbea=_0x7967fb;document[_0x49dbea(0x113)](_0x49dbea(0x105),_0x31fea7),document['removeEventListener'](_0x49dbea(0x13b),_0x4e4351),this['isDragging']=!0x1;const _0x450270=this[_0x49dbea(0x136)];this[_0x49dbea(0x136)]=null,null!==_0x450270&&(this[_0x49dbea(0x158)](_0x450270),this['hoverClock']=_0x450270);};document[_0x7967fb(0x141)]('mousemove',_0x31fea7),document[_0x7967fb(0x141)](_0x7967fb(0x13b),_0x4e4351);},'dotStyle'(_0x234967){const _0x4f16ed=_0x5be261,_0x2fe441=this[_0x4f16ed(0x138)](_0x234967[_0x4f16ed(0x14e)]),_0xb19c83=!this[_0x4f16ed(0x15a)]&&this['hoverClock']===_0x234967[_0x4f16ed(0x14e)],_0x3b2e7e=this[_0x4f16ed(0x15a)]&&this['dragClock']===_0x234967[_0x4f16ed(0x14e)];let _0x1a4d70=_0x4f16ed(0x147),_0x35db02=_0x4f16ed(0x154),_0x435eb8=_0x4f16ed(0x10a);return this[_0x4f16ed(0x118)]===_0x234967[_0x4f16ed(0x14e)]?(_0x1a4d70=_0x4f16ed(0x107),_0x35db02=_0x4f16ed(0x13c),_0x435eb8='1'):_0x3b2e7e?(_0x1a4d70='8px',_0x35db02=_0x4f16ed(0x13c),_0x435eb8=_0x4f16ed(0x14d)):_0xb19c83&&(_0x1a4d70=_0x4f16ed(0x107),_0x35db02='var(--okdb-app-fg)',_0x435eb8='.9'),['position:absolute',_0x4f16ed(0x101)+_0x2fe441+_0x4f16ed(0x13f),_0x4f16ed(0x145),_0x4f16ed(0x11e),'width:'+_0x1a4d70,_0x4f16ed(0x153)+_0x1a4d70,_0x4f16ed(0x143),'background:'+_0x35db02,_0x4f16ed(0x159)+_0x435eb8,_0x4f16ed(0x126),_0x4f16ed(0x119)+(this['isDragging']?_0x4f16ed(0xf9):_0x4f16ed(0x116)),_0x4f16ed(0x124)][_0x4f16ed(0x134)](';');},'dragRingStyle'(){const _0x21f1a3=_0x5be261;return this['isDragging']&&null!==this[_0x21f1a3(0x136)]?['position:absolute',_0x21f1a3(0x101)+this[_0x21f1a3(0x138)](this[_0x21f1a3(0x136)])+_0x21f1a3(0x13f),_0x21f1a3(0x145),_0x21f1a3(0x11e),_0x21f1a3(0x125),_0x21f1a3(0x108),_0x21f1a3(0x143),'border:2px\x20solid\x20var(--okdb-accent)',_0x21f1a3(0xff),_0x21f1a3(0x115),'z-index:4','transition:left\x2070ms\x20cubic-bezier(0.25,0.1,0.25,1)'][_0x21f1a3(0x134)](';'):_0x21f1a3(0x120);},'tooltipStyle'(_0x2ef963){const _0x19afbc=_0x5be261;return['position:absolute',_0x19afbc(0x149)+this['dotFraction'](_0x2ef963[_0x19afbc(0x14e)])+_0x19afbc(0x122),_0x19afbc(0x123),_0x19afbc(0xfa),_0x19afbc(0x13a),'border:1px\x20solid\x20var(--okdb-app-border)',_0x19afbc(0x133),_0x19afbc(0x14b),_0x19afbc(0x11a),_0x19afbc(0x12d),_0x19afbc(0x115),_0x19afbc(0x109),_0x19afbc(0x11f),_0x19afbc(0x137)][_0x19afbc(0x134)](';');}}),async 'init'(_0xe06faf){const _0x324a04=_0x5be261;_0xe06faf['$watch'](()=>_0xe06faf[_0x324a04(0x148)][_0x324a04(0x104)]+'|'+_0xe06faf[_0x324a04(0x148)][_0x324a04(0xfc)]+'|'+_0xe06faf[_0x324a04(0x148)]['env'],()=>{const _0x57457e=_0x324a04;this[_0x57457e(0x151)]=[],this[_0x57457e(0x11b)]();}),await this[_0x324a04(0x11b)]();},'template':_0x5be261(0x100),'style':''};
@@ -1 +1 @@
1
- const _0x230940=_0x4736;(function(_0x23902d,_0x8f2aa4){const _0x2d6949=_0x4736,_0x16e27e=_0x23902d();while(!![]){try{const _0x4f27f2=-parseInt(_0x2d6949(0x1c2))/0x1*(-parseInt(_0x2d6949(0x1bc))/0x2)+parseInt(_0x2d6949(0x1d4))/0x3*(-parseInt(_0x2d6949(0x1bf))/0x4)+parseInt(_0x2d6949(0x1b8))/0x5+parseInt(_0x2d6949(0x1b7))/0x6*(-parseInt(_0x2d6949(0x1aa))/0x7)+parseInt(_0x2d6949(0x1c4))/0x8*(-parseInt(_0x2d6949(0x1c9))/0x9)+parseInt(_0x2d6949(0x1a5))/0xa+parseInt(_0x2d6949(0x1df))/0xb*(parseInt(_0x2d6949(0x1ae))/0xc);if(_0x4f27f2===_0x8f2aa4)break;else _0x16e27e['push'](_0x16e27e['shift']());}catch(_0x2d9c17){_0x16e27e['push'](_0x16e27e['shift']());}}}(_0x200c,0x420c4));function _0x200c(){const _0x570693=['118461JWuaAY','$ok','.ch-th{text-align:left;font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.04em;opacity:.5}.ch-td,.ch-th{padding:5px\x208px;border-bottom:1px\x20solid\x20var(--okdb-app-border)}.ch-row:hover\x20.ch-td{background:#ffffff06}','shortKey','1541676jVZOoV','var(--okdb-accent)','$attr','var(--okdb-purple)','API','limit','/changelog?','dropFts','resetFts','36tgOJWc','916290sjKmqM','/type/','var(--okdb-orange)','default','384718ZIWsgQ','trim','round','1470548jeCjSb','m\x20ago','busy','1zqBmEX','meta','24SmMflf','registerType','timemachine','put','dropType','1007289iYqkdZ','before','Failed','h\x20ago','slice','error','clock','just\x20now','okdb','toLocaleDateString','#6ee7b7','3VNblzR','fts','var(--okdb-warning)','length','\x20$1','registerIndex','s\x20ago','var(--okdb-app-fg-muted)','$watch','type','message','33hlvQTH','now','\x0a<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:10px;\x20height:100%;\x20min-height:0;\x22>\x0a\x0a\x20\x20<!--\x20Toolbar\x20-->\x0a\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22font-size:13px;\x20opacity:.7;\x22>Change\x20log\x20for\x20<b>{{type}}</b></div>\x0a\x20\x20\x20\x20<div\x20style=\x22margin-left:auto;\x20display:flex;\x20gap:6px;\x20align-items:center;\x22>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22before\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22loadLatest()\x22\x20style=\x22font-size:12px;\x20opacity:.8;\x22>↑\x20Latest</button>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22load(before)\x22\x20:disabled=\x22busy\x22\x20style=\x22font-size:12px;\x20opacity:.8;\x22>↻</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<if\x20:=\x22error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22color:var(--okdb-danger);\x20font-size:12px;\x22>{{error}}</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22!busy\x20&&\x20changes.length\x20===\x200\x20&&\x20!error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22opacity:.5;\x20font-size:13px;\x22>No\x20changes\x20recorded\x20yet.</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<!--\x20Table\x20-->\x0a\x20\x20<div\x20style=\x22flex:1;\x20min-height:0;\x20overflow:auto;\x22>\x0a\x20\x20\x20\x20<table\x20style=\x22width:100%;\x20border-collapse:collapse;\x20font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20<thead\x20style=\x22position:sticky;\x20top:0;\x20z-index:1;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20class=\x22ch-th\x22\x20style=\x22text-align:right;\x20width:70px;\x22>Clock</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20class=\x22ch-th\x22\x20style=\x22width:110px;\x22>Action</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20class=\x22ch-th\x22>Key</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20class=\x22ch-th\x22\x20style=\x22width:90px;\x22>Origin</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20class=\x22ch-th\x22\x20style=\x22width:90px;\x20text-align:right;\x22>When</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20\x20\x20</thead>\x0a\x20\x20\x20\x20\x20\x20<tbody>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<tr\x20as=\x22repeat\x22\x20:of=\x22changes\x22\x20let:item=\x22ch\x22\x20class=\x22ch-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ch-td\x22\x20style=\x22text-align:right;\x20font-family:monospace;\x20opacity:.6;\x22>{{ch.clock}}</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ch-td\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22\x27font-size:10px;\x20padding:2px\x206px;\x20border-radius:4px;\x20border:1px\x20solid;\x20color:\x27\x20+\x20actionColor(ch.action)\x20+\x20\x27;\x20border-color:\x27\x20+\x20actionColor(ch.action)\x20+\x20\x2744;\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{actionLabel(ch.action)}}\x0a\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<if\x20:=\x22ch.tmDiff\x22>\x0a\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\x20style=\x22font-size:9px;\x20padding:1px\x205px;\x20border-radius:3px;\x20border:1px\x20solid\x20var(--okdb-accent)44;\x20color:var(--okdb-accent);\x20opacity:.7;\x20font-family:monospace;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20title=\x22Time-machine\x20snapshot\x20available\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>TM</span>\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</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ch-td\x22\x20style=\x22font-family:monospace;\x20max-width:220px;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22\x20:title=\x22ch.key\x20||\x20ch.index\x20||\x20ch.fts\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{displayKey(ch)}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ch-td\x22\x20style=\x22font-family:monospace;\x20font-size:11px;\x20opacity:.6;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22\x20:title=\x22ch.origin\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{ch.origin\x20?\x20ch.origin.slice(0,8)\x20:\x20\x27—\x27}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ch-td\x22\x20style=\x22text-align:right;\x20opacity:.6;\x20white-space:nowrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{relTime(ch.timestamp)}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20\x20\x20</tbody>\x0a\x20\x20\x20\x20</table>\x0a\x20\x20</div>\x0a\x0a\x20\x20<!--\x20Pagination\x20-->\x0a\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x20align-items:center;\x20padding-top:4px;\x20border-top:1px\x20solid\x20var(--okdb-app-border);\x22>\x0a\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.55;\x22>{{changes.length}}\x20entries</span>\x0a\x20\x20\x20\x20<if\x20:=\x22hasOlder\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22loadOlder()\x22\x20:disabled=\x22busy\x22\x20style=\x22font-size:12px;\x20margin-left:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20Load\x20older\x20▼\x0a\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20</div>\x0a\x0a</div>\x0a','oldestClock','load','registerFts','changes','replace','toUpperCase','json','key','3144340FWCWvd','dropIndex','stores','/env/','var(--okdb-danger)'];_0x200c=function(){return _0x570693;};return _0x200c();}function _0x4736(_0x2d301b,_0x1d6f92){_0x2d301b=_0x2d301b-0x1a1;const _0x200c07=_0x200c();let _0x473610=_0x200c07[_0x2d301b];return _0x473610;}export default{'tag':'type-changelog','attr':{'type':{}},'context':_0x8b667c=>({'busy':!0x1,'error':null,'changes':[],'clock':null,'limit':0x64,'before':null,get 'type'(){const _0x352d5d=_0x4736;return _0x8b667c[_0x352d5d(0x1b0)][_0x352d5d(0x1dd)];},async 'load'(_0x65e1a8=null){const _0x56ec7a=_0x4736;if(this['type']){this[_0x56ec7a(0x1c1)]=!0x0,this[_0x56ec7a(0x1ce)]=null;try{const _0x2cd215=new URLSearchParams({'limit':this[_0x56ec7a(0x1b3)],'annotate':_0x56ec7a(0x1c6)});null!=_0x65e1a8&&_0x2cd215['set'](_0x56ec7a(0x1ca),_0x65e1a8);const _0x5c2259=_0x8b667c[_0x56ec7a(0x1ab)][_0x56ec7a(0x1a7)][_0x56ec7a(0x1d1)]['selectedEnv']||_0x56ec7a(0x1bb),_0x19ae22=await fetch(__ENV__[_0x56ec7a(0x1b2)]+_0x56ec7a(0x1a8)+encodeURIComponent(_0x5c2259)+_0x56ec7a(0x1b9)+encodeURIComponent(this[_0x56ec7a(0x1dd)])+_0x56ec7a(0x1b4)+_0x2cd215),_0x2b0ddf=await _0x19ae22[_0x56ec7a(0x1a3)]();if(!_0x19ae22['ok'])throw new Error(_0x2b0ddf?.[_0x56ec7a(0x1ce)]?.[_0x56ec7a(0x1de)]||_0x56ec7a(0x1cb));this['changes']=_0x2b0ddf['data']??[],this['clock']=_0x2b0ddf[_0x56ec7a(0x1c3)]??null,this[_0x56ec7a(0x1ca)]=_0x65e1a8;}catch(_0x5d2709){this[_0x56ec7a(0x1ce)]=_0x5d2709?.['message']||String(_0x5d2709),this['changes']=[];}finally{this[_0x56ec7a(0x1c1)]=!0x1;}}},get 'hasOlder'(){const _0x1b6055=_0x4736;return this['changes'][_0x1b6055(0x1d7)]===this[_0x1b6055(0x1b3)];},get 'oldestClock'(){const _0x5d5051=_0x4736;return this['changes'][_0x5d5051(0x1d7)]?this[_0x5d5051(0x1e5)][this[_0x5d5051(0x1e5)][_0x5d5051(0x1d7)]-0x1][_0x5d5051(0x1cf)]:null;},'loadOlder'(){const _0x11df58=_0x4736;null!=this[_0x11df58(0x1e2)]&&this['load'](this[_0x11df58(0x1e2)]-0x1);},'loadLatest'(){const _0x28b0f6=_0x4736;this[_0x28b0f6(0x1e3)](null);},'actionColor'(_0x2888e6){const _0x51ea78=_0x4736;switch(_0x2888e6){case _0x51ea78(0x1c7):case _0x51ea78(0x1e4):return'var(--okdb-success)';case'remove':case _0x51ea78(0x1c8):return _0x51ea78(0x1a9);case _0x51ea78(0x1c5):return _0x51ea78(0x1af);case _0x51ea78(0x1d9):return _0x51ea78(0x1b1);case _0x51ea78(0x1a6):return _0x51ea78(0x1d6);case'resetIndex':return'var(--okdb-indigo)';case _0x51ea78(0x1b5):return _0x51ea78(0x1ba);case _0x51ea78(0x1b6):return _0x51ea78(0x1d3);default:return _0x51ea78(0x1db);}},'actionLabel':_0x3b689c=>_0x3b689c?_0x3b689c['replace'](/([A-Z])/g,_0x230940(0x1d8))[_0x230940(0x1a1)](/_/g,'\x20')[_0x230940(0x1a2)]()[_0x230940(0x1bd)]():'','displayKey'(_0x40139f){const _0x19d914=_0x230940,_0x1a7c1c=_0x40139f[_0x19d914(0x1a4)]||_0x40139f['index']||_0x40139f[_0x19d914(0x1d5)]||null;return this[_0x19d914(0x1ad)](_0x1a7c1c);},'shortKey':_0x149428=>_0x149428?_0x149428['length']<=0x18?_0x149428:_0x149428[_0x230940(0x1cd)](0x0,0xa)+'…'+_0x149428[_0x230940(0x1cd)](-0x6):'—','relTime'(_0x6b215b){const _0x530906=_0x230940;if(!_0x6b215b)return'—';const _0x4010bf=Date[_0x530906(0x1e0)]()-_0x6b215b;return _0x4010bf<0x1388?_0x530906(0x1d0):_0x4010bf<0xea60?Math['round'](_0x4010bf/0x3e8)+_0x530906(0x1da):_0x4010bf<0x36ee80?Math[_0x530906(0x1be)](_0x4010bf/0xea60)+_0x530906(0x1c0):_0x4010bf<0x5265c00?Math['round'](_0x4010bf/0x36ee80)+_0x530906(0x1cc):new Date(_0x6b215b)[_0x530906(0x1d2)]();}}),async 'init'(_0xa743f1){const _0x319dfa=_0x230940;_0xa743f1[_0x319dfa(0x1dc)](()=>_0xa743f1[_0x319dfa(0x1b0)]['type'],()=>{const _0x4762f6=_0x319dfa;this[_0x4762f6(0x1e5)]=[],this['load']();}),await this['load']();},'template':_0x230940(0x1e1),'style':_0x230940(0x1ac)};
1
+ function _0x550d(_0x1b249d,_0xefecab){_0x1b249d=_0x1b249d-0xd3;const _0x114e21=_0x114e();let _0x550d5e=_0x114e21[_0x1b249d];return _0x550d5e;}const _0x137f4b=_0x550d;(function(_0x4297ce,_0x1415bf){const _0x554c80=_0x550d,_0x4c64f1=_0x4297ce();while(!![]){try{const _0x1eddf6=parseInt(_0x554c80(0x107))/0x1*(parseInt(_0x554c80(0xf1))/0x2)+-parseInt(_0x554c80(0xe8))/0x3*(-parseInt(_0x554c80(0x108))/0x4)+parseInt(_0x554c80(0xe1))/0x5+-parseInt(_0x554c80(0xff))/0x6+parseInt(_0x554c80(0xf5))/0x7+parseInt(_0x554c80(0x100))/0x8+-parseInt(_0x554c80(0x10e))/0x9;if(_0x1eddf6===_0x1415bf)break;else _0x4c64f1['push'](_0x4c64f1['shift']());}catch(_0xb3683){_0x4c64f1['push'](_0x4c64f1['shift']());}}}(_0x114e,0x9cd91));export default{'tag':_0x137f4b(0xe2),'attr':{'type':{}},'context':_0x455493=>({'busy':!0x1,'error':null,'changes':[],'clock':null,'limit':0x64,'before':null,get 'type'(){const _0x1c1d24=_0x137f4b;return _0x455493[_0x1c1d24(0xea)][_0x1c1d24(0x10b)];},async 'load'(_0x516daf=null){const _0x203a26=_0x137f4b;if(this[_0x203a26(0x10b)]){this[_0x203a26(0xd4)]=!0x0,this[_0x203a26(0xdc)]=null;try{const _0x1393d9=new URLSearchParams({'limit':this[_0x203a26(0x112)],'annotate':'timemachine'});null!=_0x516daf&&_0x1393d9[_0x203a26(0xed)](_0x203a26(0xe7),_0x516daf);const _0xfc793c=_0x455493[_0x203a26(0xfb)][_0x203a26(0x113)][_0x203a26(0x10d)][_0x203a26(0x105)]||_0x203a26(0xf7),_0x4202b2=await fetch(__ENV__[_0x203a26(0xf3)]+_0x203a26(0xe5)+encodeURIComponent(_0xfc793c)+_0x203a26(0xf8)+encodeURIComponent(this[_0x203a26(0x10b)])+_0x203a26(0x115)+_0x1393d9),_0x398558=await _0x4202b2[_0x203a26(0x116)]();if(!_0x4202b2['ok'])throw new Error(_0x398558?.[_0x203a26(0xdc)]?.[_0x203a26(0x10a)]||_0x203a26(0x10c));this[_0x203a26(0x104)]=_0x398558[_0x203a26(0xf2)]??[],this[_0x203a26(0xf6)]=_0x398558[_0x203a26(0xfc)]??null,this[_0x203a26(0xe7)]=_0x516daf;}catch(_0x292193){this[_0x203a26(0xdc)]=_0x292193?.[_0x203a26(0x10a)]||String(_0x292193),this['changes']=[];}finally{this[_0x203a26(0xd4)]=!0x1;}}},get 'hasOlder'(){const _0x270b91=_0x137f4b;return this[_0x270b91(0x104)]['length']===this[_0x270b91(0x112)];},get 'oldestClock'(){const _0x27fbe5=_0x137f4b;return this[_0x27fbe5(0x104)][_0x27fbe5(0x10f)]?this[_0x27fbe5(0x104)][this['changes'][_0x27fbe5(0x10f)]-0x1][_0x27fbe5(0xf6)]:null;},'loadOlder'(){const _0x5d331a=_0x137f4b;null!=this[_0x5d331a(0xde)]&&this['load'](this[_0x5d331a(0xde)]-0x1);},'loadLatest'(){const _0xcac83c=_0x137f4b;this[_0xcac83c(0x102)](null);},'actionColor'(_0x591cef){const _0x46bb42=_0x137f4b;switch(_0x591cef){case'put':case _0x46bb42(0xfd):return _0x46bb42(0x111);case _0x46bb42(0xf0):case _0x46bb42(0x109):return _0x46bb42(0xef);case _0x46bb42(0x106):return _0x46bb42(0xe9);case _0x46bb42(0xd9):return'var(--okdb-purple)';case _0x46bb42(0xe4):return'var(--okdb-warning)';case _0x46bb42(0xe3):return _0x46bb42(0x103);case _0x46bb42(0xd3):return _0x46bb42(0xdb);case _0x46bb42(0xdd):return _0x46bb42(0xdf);default:return _0x46bb42(0x114);}},'actionLabel':_0xdf2b27=>_0xdf2b27?_0xdf2b27['replace'](/([A-Z])/g,_0x137f4b(0xfe))['replace'](/_/g,'\x20')[_0x137f4b(0xda)]()[_0x137f4b(0xfa)]():'','displayKey'(_0x11f786){const _0x42199a=_0x137f4b,_0xfe82e1=_0x11f786[_0x42199a(0xd8)]||_0x11f786[_0x42199a(0xe6)]||_0x11f786[_0x42199a(0xd6)]||null;return this[_0x42199a(0xf4)](_0xfe82e1);},'shortKey':_0x14e6f4=>_0x14e6f4?_0x14e6f4['length']<=0x18?_0x14e6f4:_0x14e6f4[_0x137f4b(0x110)](0x0,0xa)+'…'+_0x14e6f4[_0x137f4b(0x110)](-0x6):'—','relTime'(_0x1e0031){const _0x4f00f3=_0x137f4b;if(!_0x1e0031)return'—';const _0x16d4c8=Date[_0x4f00f3(0xd5)]()-_0x1e0031;return _0x16d4c8<0x1388?_0x4f00f3(0xee):_0x16d4c8<0xea60?Math[_0x4f00f3(0xe0)](_0x16d4c8/0x3e8)+'s\x20ago':_0x16d4c8<0x36ee80?Math[_0x4f00f3(0xe0)](_0x16d4c8/0xea60)+_0x4f00f3(0xec):_0x16d4c8<0x5265c00?Math[_0x4f00f3(0xe0)](_0x16d4c8/0x36ee80)+_0x4f00f3(0xd7):new Date(_0x1e0031)[_0x4f00f3(0xeb)]();}}),async 'init'(_0x3dc6c9){const _0x5c699d=_0x137f4b;_0x3dc6c9[_0x5c699d(0x101)](()=>_0x3dc6c9[_0x5c699d(0xea)][_0x5c699d(0x10b)],()=>{const _0x490a9a=_0x5c699d;this[_0x490a9a(0x104)]=[],this['load']();}),await this[_0x5c699d(0x102)]();},'template':_0x137f4b(0xf9),'style':'.ch-th{text-align:left;font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.04em;opacity:.5}.ch-td,.ch-th{padding:5px\x208px;border-bottom:1px\x20solid\x20var(--okdb-app-border)}.ch-row:hover\x20.ch-td{background:#ffffff06}'};function _0x114e(){const _0xed3ecd=['3778932JwSnpB','228056CaoOJr','$watch','load','var(--okdb-indigo)','changes','selectedEnv','registerType','6NCNYnL','5102804AYVRpQ','dropType','message','type','Failed','okdb','18633942jSBItm','length','slice','var(--okdb-success)','limit','stores','var(--okdb-app-fg-muted)','/changelog?','json','dropFts','busy','now','fts','h\x20ago','key','registerIndex','toUpperCase','var(--okdb-orange)','error','resetFts','oldestClock','#6ee7b7','round','3406525adpNLe','type-changelog','resetIndex','dropIndex','/env/','index','before','3orWEES','var(--okdb-accent)','$attr','toLocaleDateString','m\x20ago','set','just\x20now','var(--okdb-danger)','remove','28348vLGIyv','data','API','shortKey','8905064eSyIwx','clock','default','/type/','\x0a<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:10px;\x20height:100%;\x20min-height:0;\x22>\x0a\x0a\x20\x20<!--\x20Toolbar\x20-->\x0a\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22font-size:13px;\x20opacity:.7;\x22>Change\x20log\x20for\x20<b>{{type}}</b></div>\x0a\x20\x20\x20\x20<div\x20style=\x22margin-left:auto;\x20display:flex;\x20gap:6px;\x20align-items:center;\x22>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22before\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22loadLatest()\x22\x20style=\x22font-size:12px;\x20opacity:.8;\x22>↑\x20Latest</button>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22load(before)\x22\x20:disabled=\x22busy\x22\x20style=\x22font-size:12px;\x20opacity:.8;\x22>↻</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<if\x20:=\x22error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22color:var(--okdb-danger);\x20font-size:12px;\x22>{{error}}</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22!busy\x20&&\x20changes.length\x20===\x200\x20&&\x20!error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22opacity:.5;\x20font-size:13px;\x22>No\x20changes\x20recorded\x20yet.</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<!--\x20Table\x20-->\x0a\x20\x20<div\x20style=\x22flex:1;\x20min-height:0;\x20overflow:auto;\x22>\x0a\x20\x20\x20\x20<table\x20style=\x22width:100%;\x20border-collapse:collapse;\x20font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20<thead\x20style=\x22position:sticky;\x20top:0;\x20z-index:1;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20class=\x22ch-th\x22\x20style=\x22text-align:right;\x20width:70px;\x22>Clock</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20class=\x22ch-th\x22\x20style=\x22width:110px;\x22>Action</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20class=\x22ch-th\x22>Key</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20class=\x22ch-th\x22\x20style=\x22width:90px;\x22>Origin</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20class=\x22ch-th\x22\x20style=\x22width:90px;\x20text-align:right;\x22>When</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20\x20\x20</thead>\x0a\x20\x20\x20\x20\x20\x20<tbody>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<tr\x20as=\x22repeat\x22\x20:of=\x22changes\x22\x20let:item=\x22ch\x22\x20class=\x22ch-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ch-td\x22\x20style=\x22text-align:right;\x20font-family:monospace;\x20opacity:.6;\x22>{{ch.clock}}</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ch-td\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22\x27font-size:10px;\x20padding:2px\x206px;\x20border-radius:4px;\x20border:1px\x20solid;\x20color:\x27\x20+\x20actionColor(ch.action)\x20+\x20\x27;\x20border-color:\x27\x20+\x20actionColor(ch.action)\x20+\x20\x2744;\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{actionLabel(ch.action)}}\x0a\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<if\x20:=\x22ch.tmDiff\x22>\x0a\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\x20style=\x22font-size:9px;\x20padding:1px\x205px;\x20border-radius:3px;\x20border:1px\x20solid\x20var(--okdb-accent)44;\x20color:var(--okdb-accent);\x20opacity:.7;\x20font-family:monospace;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20title=\x22Time-machine\x20snapshot\x20available\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>TM</span>\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</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ch-td\x22\x20style=\x22font-family:monospace;\x20max-width:220px;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22\x20:title=\x22ch.key\x20||\x20ch.index\x20||\x20ch.fts\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{displayKey(ch)}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ch-td\x22\x20style=\x22font-family:monospace;\x20font-size:11px;\x20opacity:.6;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22\x20:title=\x22ch.origin\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{ch.origin\x20?\x20ch.origin.slice(0,8)\x20:\x20\x27—\x27}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ch-td\x22\x20style=\x22text-align:right;\x20opacity:.6;\x20white-space:nowrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{relTime(ch.timestamp)}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20\x20\x20</tbody>\x0a\x20\x20\x20\x20</table>\x0a\x20\x20</div>\x0a\x0a\x20\x20<!--\x20Pagination\x20-->\x0a\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x20align-items:center;\x20padding-top:4px;\x20border-top:1px\x20solid\x20var(--okdb-app-border);\x22>\x0a\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.55;\x22>{{changes.length}}\x20entries</span>\x0a\x20\x20\x20\x20<if\x20:=\x22hasOlder\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22loadOlder()\x22\x20:disabled=\x22busy\x22\x20style=\x22font-size:12px;\x20margin-left:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20Load\x20older\x20▼\x0a\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20</div>\x0a\x0a</div>\x0a','trim','$ok','meta','registerFts','\x20$1'];_0x114e=function(){return _0xed3ecd;};return _0x114e();}
@@ -1 +1 @@
1
- function _0x2940(_0x193f3f,_0x5a9c2f){_0x193f3f=_0x193f3f-0x18b;const _0x26f554=_0x26f5();let _0x29408b=_0x26f554[_0x193f3f];return _0x29408b;}const _0x286863=_0x2940;function _0x26f5(){const _0xb43ae9=['136pEFgRA','toast','$dispatch','showSystem','84747CbOphK','56700hxxfJl','items','loadError','types','load','filter','type:registered','reloadTypes','registerType\x20error','trim','$watch','selectedEnv','message','loaded','\x0a\x20\x20\x20\x20\x20\x20\x20\x20type-list\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20type-list\x20button\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20left;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__add\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x207px\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-bottom:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__item\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg-muted);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x207px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__item:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-surface-2);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__item\x20.tl-name\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20monospace;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-overflow:\x20ellipsis;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20white-space:\x20nowrap;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__item\x20.tl-count\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__item--selected\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep)\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent)\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent)\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__item--selected\x20.tl-count\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__system-toggle\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x200.45;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x203px\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__system-toggle:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x200.8;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__error\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20flex-start;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(255,60,60,.06);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(255,60,60,.18);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.4;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20word-break:\x20break-word;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__error\x20span\x20{\x20flex:\x201;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__error-retry\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__error-retry:hover\x20{\x20opacity:\x201;\x20}\x0a\x20\x20\x20\x20','error','allItems','shared','3111484YaGBsf','$ok','Type\x20name','busy','modal','index:drop','2213834CpZGMZ','find','prompt','300744FEVbCc','Register','_unsubs','Name\x20is\x20required','reloadInfo','156260FOBlAh','registerType','Failed\x20to\x20load\x20types','Register\x20Type','\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22busy\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-overlay>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22loader-center\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-icon\x20name=\x22loader\x22\x20class=\x22spin\x22\x20style=\x22width:32px;height:32px;\x22></ok-icon>\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</ok-overlay>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22loadError\x20&&\x20!busy\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22type-list__error\x22\x20:title=\x22loadError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-icon\x20name=\x22alert-circle\x22\x20style=\x22width:13px;height:13px;flex-shrink:0;opacity:.7;\x22></ok-icon>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20loadError\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22type-list__error-retry\x22\x20@click=\x22load()\x22\x20title=\x22Retry\x22>↺</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!loadError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Overview\x20shortcut\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20class=\x22type-list__item\x20type-list__overview\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22selected\x20==\x20null\x20?\x20\x27type-list__item--selected\x27\x20:\x20\x27\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22select(null)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22margin-bottom:4px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-icon\x20name=\x22home\x22\x20style=\x22width:13px;height:13px;opacity:.6;flex-shrink:0;\x22></ok-icon>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22tl-name\x22>Overview</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22height:1px;\x20background:var(--okdb-app-surface-2);\x20margin:2px\x200\x206px;\x22></div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22type-list__add\x22\x20@click=\x22openAddModal\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20+\x20Register\x20Type\x20({{\x20items.length\x20}})\x0a\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22items\x22\x20let:item=\x22t\x22>\x0a\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:class=\x22[\x27type-list__item\x27,\x20selected\x20===\x20t\x20?\x20\x27type-list__item--selected\x27\x20:\x20\x27\x27]\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22select(t)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22tl-name\x22>{{\x20t.type\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22tl-count\x22>{{\x20t.count\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22systemCount\x20>\x200\x22>\x0a\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\x20class=\x22type-list__system-toggle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22showSystem\x20=\x20!showSystem\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:title=\x22showSystem\x20?\x20\x27Hide\x20system\x20types\x27\x20:\x20\x27Show\x20system\x20types\x27\x22\x0a\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{{\x20showSystem\x20?\x20\x27▴\x20hide\x20system\x20(\x27\x20+\x20systemCount\x20+\x20\x27)\x27\x20:\x20\x27⚙\x20system\x20(\x27\x20+\x20systemCount\x20+\x20\x27)\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20','type-list','okdb','1950070sjSLMp','select','startsWith','stores','selected','16AjXQYJ','type'];_0x26f5=function(){return _0xb43ae9;};return _0x26f5();}(function(_0x4820b0,_0x77a3fd){const _0xfcbef2=_0x2940,_0x3c8824=_0x4820b0();while(!![]){try{const _0x25982e=-parseInt(_0xfcbef2(0x19a))/0x1+parseInt(_0xfcbef2(0x1a6))/0x2*(parseInt(_0xfcbef2(0x1ac))/0x3)+-parseInt(_0xfcbef2(0x18c))/0x4+parseInt(_0xfcbef2(0x1a1))/0x5+-parseInt(_0xfcbef2(0x1ad))/0x6+parseInt(_0xfcbef2(0x192))/0x7+-parseInt(_0xfcbef2(0x1a8))/0x8*(-parseInt(_0xfcbef2(0x195))/0x9);if(_0x25982e===_0x77a3fd)break;else _0x3c8824['push'](_0x3c8824['shift']());}catch(_0x40a7c5){_0x3c8824['push'](_0x3c8824['shift']());}}}(_0x26f5,0x87ed7));import _0x9b7c98 from'@toolkit/elements/ok-icon.ok.js';import _0x9ef7a6 from'@toolkit/core/ok-overlay.ok.js';import _0x47da52 from'../../../stores/events-store.js';export default{'tag':_0x286863(0x19f),'dependencies':[_0x9ef7a6,_0x9b7c98],'context':_0x3bb405=>({'busy':!0x1,'loadError':null,'showSystem':!0x1,'_unsubs':[],get 'allItems'(){const _0xfc5274=_0x286863;return _0x3bb405[_0xfc5274(0x18d)][_0xfc5274(0x1a4)][_0xfc5274(0x1a0)][_0xfc5274(0x1b0)]||[];},get 'items'(){const _0x552e66=_0x286863;return this[_0x552e66(0x1ab)]?this[_0x552e66(0x1bd)]:this[_0x552e66(0x1bd)]['filter'](_0x2081a8=>!_0x2081a8[_0x552e66(0x1a7)][_0x552e66(0x1a3)]('~'));},get 'systemCount'(){const _0x21d922=_0x286863;return this[_0x21d922(0x1bd)][_0x21d922(0x1b2)](_0x2a621b=>_0x2a621b[_0x21d922(0x1a7)][_0x21d922(0x1a3)]('~'))['length'];},'selected':null,async 'load'(){const _0x579d5e=_0x286863;this[_0x579d5e(0x1af)]=null;try{this[_0x579d5e(0x18f)]=!0x0,await _0x3bb405['$ok'][_0x579d5e(0x1a4)][_0x579d5e(0x1a0)][_0x579d5e(0x1b4)](),await _0x3bb405[_0x579d5e(0x18d)][_0x579d5e(0x1a4)][_0x579d5e(0x1a0)][_0x579d5e(0x199)]();}catch(_0x586042){this[_0x579d5e(0x1af)]=_0x586042?.[_0x579d5e(0x1b9)]||_0x579d5e(0x19c),console['error']('Error\x20fetching\x20types',_0x586042);}this['busy']=!0x1,_0x3bb405[_0x579d5e(0x1aa)](_0x579d5e(0x1ba),this[_0x579d5e(0x1ae)]);},'select'(_0x3fdfe3){const _0x280845=_0x286863;this[_0x280845(0x1a5)]=_0x3fdfe3??null,_0x3bb405['$dispatch'](_0x280845(0x1a5),_0x3fdfe3??null);},async 'openAddModal'(){const _0x2c5b80=_0x286863,_0x2d3875=await _0x3bb405[_0x2c5b80(0x18d)][_0x2c5b80(0x18b)][_0x2c5b80(0x190)][_0x2c5b80(0x194)](_0x2c5b80(0x18e),{'title':_0x2c5b80(0x19d),'placeholder':'e.g.\x20user,\x20product,\x20event','confirmText':_0x2c5b80(0x196),'validate':_0x461fa3=>!(!_0x461fa3||!_0x461fa3[_0x2c5b80(0x1b6)]())||_0x2c5b80(0x198)});if(_0x2d3875)try{await _0x3bb405['$ok'][_0x2c5b80(0x1a4)][_0x2c5b80(0x1a0)][_0x2c5b80(0x19b)](_0x2d3875['trim']());const _0x4d7c9d=this['items'][_0x2c5b80(0x193)](_0x102013=>_0x102013['type']===_0x2d3875['trim']());_0x4d7c9d&&this[_0x2c5b80(0x1a2)](_0x4d7c9d);}catch(_0x339a68){_0x3bb405[_0x2c5b80(0x18d)][_0x2c5b80(0x18b)]?.[_0x2c5b80(0x1a9)]?.[_0x2c5b80(0x1bc)]?.(_0x339a68?.['message']||'Failed\x20to\x20register\x20type'),console[_0x2c5b80(0x1bc)](_0x2c5b80(0x1b5),_0x339a68);}}}),'mount'(_0x394cf6){const _0x5bc74a=_0x286863,_0xd4e280=()=>this[_0x5bc74a(0x1b1)]();this[_0x5bc74a(0x197)]=[_0x47da52['on'](_0x5bc74a(0x1b3),_0xd4e280),_0x47da52['on']('type:drop',_0xd4e280),_0x47da52['on']('index:registered',_0xd4e280),_0x47da52['on'](_0x5bc74a(0x191),_0xd4e280)],_0x394cf6[_0x5bc74a(0x1b7)](()=>_0x394cf6[_0x5bc74a(0x18d)]['stores']['okdb'][_0x5bc74a(0x1b8)],()=>this['load']()),this[_0x5bc74a(0x1b1)]();},'unmount'(){const _0x3360b8=_0x286863;for(const _0x42499b of this[_0x3360b8(0x197)])_0x42499b();this[_0x3360b8(0x197)]=[];},'style':_0x286863(0x1bb),'template':_0x286863(0x19e)};
1
+ function _0x2aea(_0x23aa6e,_0x122e62){_0x23aa6e=_0x23aa6e-0xd9;const _0x18802c=_0x1880();let _0x2aeaec=_0x18802c[_0x23aa6e];return _0x2aeaec;}const _0x1149a9=_0x2aea;(function(_0x3773a6,_0x1281bf){const _0x3e0cde=_0x2aea,_0x4bac73=_0x3773a6();while(!![]){try{const _0x4aa79a=-parseInt(_0x3e0cde(0xef))/0x1+-parseInt(_0x3e0cde(0xe6))/0x2*(-parseInt(_0x3e0cde(0xdc))/0x3)+-parseInt(_0x3e0cde(0xf6))/0x4+parseInt(_0x3e0cde(0xde))/0x5*(parseInt(_0x3e0cde(0xeb))/0x6)+-parseInt(_0x3e0cde(0xe3))/0x7+-parseInt(_0x3e0cde(0xff))/0x8*(parseInt(_0x3e0cde(0xfe))/0x9)+parseInt(_0x3e0cde(0xe7))/0xa;if(_0x4aa79a===_0x1281bf)break;else _0x4bac73['push'](_0x4bac73['shift']());}catch(_0x1a1820){_0x4bac73['push'](_0x4bac73['shift']());}}}(_0x1880,0xa3ac3));import _0x280c56 from'@toolkit/elements/ok-icon.ok.js';function _0x1880(){const _0x57e647=['error','4678500QPFTjw','okdb','Failed\x20to\x20register\x20type','busy','registerType\x20error','modal','find','load','180wRFpfs','84608rYBcRy','Type\x20name','trim','allItems','loaded','selected','type-list','Register','$watch','index:drop','type:registered','$ok','filter','$dispatch','shared','selectedEnv','212349gCnAUE','Failed\x20to\x20load\x20types','75CYwBlf','loadError','Error\x20fetching\x20types','\x0a\x20\x20\x20\x20\x20\x20\x20\x20type-list\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20type-list\x20button\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20left;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__add\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x207px\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-bottom:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__item\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg-muted);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x207px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__item:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-surface-2);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__item\x20.tl-name\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20monospace;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-overflow:\x20ellipsis;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20white-space:\x20nowrap;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__item\x20.tl-count\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__item--selected\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep)\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent)\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent)\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__item--selected\x20.tl-count\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__system-toggle\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x200.45;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x203px\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__system-toggle:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x200.8;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__error\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20flex-start;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(255,60,60,.06);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(255,60,60,.18);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.4;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20word-break:\x20break-word;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__error\x20span\x20{\x20flex:\x201;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__error-retry\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.type-list__error-retry:hover\x20{\x20opacity:\x201;\x20}\x0a\x20\x20\x20\x20','registerType','8166501ktOost','items','prompt','10yNQGMX','35721190cOIgZA','e.g.\x20user,\x20product,\x20event','types','showSystem','185142kmfGYF','message','toast','stores','1170698bBxEDU','Name\x20is\x20required','Register\x20Type','type','startsWith','_unsubs'];_0x1880=function(){return _0x57e647;};return _0x1880();}import _0x19017b from'@toolkit/core/ok-overlay.ok.js';import _0x247e2c from'../../../stores/events-store.js';export default{'tag':_0x1149a9(0x105),'dependencies':[_0x19017b,_0x280c56],'context':_0x4e4996=>({'busy':!0x1,'loadError':null,'showSystem':!0x1,'_unsubs':[],get 'allItems'(){const _0x5c2ef2=_0x1149a9;return _0x4e4996[_0x5c2ef2(0x10a)][_0x5c2ef2(0xee)]['okdb'][_0x5c2ef2(0xe9)]||[];},get 'items'(){const _0x4af8f6=_0x1149a9;return this[_0x4af8f6(0xea)]?this['allItems']:this['allItems'][_0x4af8f6(0x10b)](_0xb9b210=>!_0xb9b210[_0x4af8f6(0xf2)][_0x4af8f6(0xf3)]('~'));},get 'systemCount'(){const _0x12b7ca=_0x1149a9;return this[_0x12b7ca(0x102)]['filter'](_0x4e8c17=>_0x4e8c17['type'][_0x12b7ca(0xf3)]('~'))['length'];},'selected':null,async 'load'(){const _0x41d180=_0x1149a9;this['loadError']=null;try{this[_0x41d180(0xf9)]=!0x0,await _0x4e4996['$ok']['stores'][_0x41d180(0xf7)]['reloadTypes'](),await _0x4e4996[_0x41d180(0x10a)][_0x41d180(0xee)]['okdb']['reloadInfo']();}catch(_0x2307ac){this[_0x41d180(0xdf)]=_0x2307ac?.[_0x41d180(0xec)]||_0x41d180(0xdd),console['error'](_0x41d180(0xe0),_0x2307ac);}this['busy']=!0x1,_0x4e4996[_0x41d180(0xd9)](_0x41d180(0x103),this[_0x41d180(0xe4)]);},'select'(_0x13a068){const _0x49565f=_0x1149a9;this[_0x49565f(0x104)]=_0x13a068??null,_0x4e4996[_0x49565f(0xd9)]('selected',_0x13a068??null);},async 'openAddModal'(){const _0x1cde4c=_0x1149a9,_0x59f93d=await _0x4e4996[_0x1cde4c(0x10a)][_0x1cde4c(0xda)][_0x1cde4c(0xfb)][_0x1cde4c(0xe5)](_0x1cde4c(0x100),{'title':_0x1cde4c(0xf1),'placeholder':_0x1cde4c(0xe8),'confirmText':_0x1cde4c(0x106),'validate':_0x5871e5=>!(!_0x5871e5||!_0x5871e5[_0x1cde4c(0x101)]())||_0x1cde4c(0xf0)});if(_0x59f93d)try{await _0x4e4996['$ok']['stores']['okdb'][_0x1cde4c(0xe2)](_0x59f93d['trim']());const _0x5c44f2=this[_0x1cde4c(0xe4)][_0x1cde4c(0xfc)](_0x39e323=>_0x39e323['type']===_0x59f93d[_0x1cde4c(0x101)]());_0x5c44f2&&this['select'](_0x5c44f2);}catch(_0x2c37ed){_0x4e4996[_0x1cde4c(0x10a)]['shared']?.[_0x1cde4c(0xed)]?.[_0x1cde4c(0xf5)]?.(_0x2c37ed?.[_0x1cde4c(0xec)]||_0x1cde4c(0xf8)),console[_0x1cde4c(0xf5)](_0x1cde4c(0xfa),_0x2c37ed);}}}),'mount'(_0x398738){const _0x1dc7fc=_0x1149a9,_0x3244fc=()=>this['load']();this['_unsubs']=[_0x247e2c['on'](_0x1dc7fc(0x109),_0x3244fc),_0x247e2c['on']('type:drop',_0x3244fc),_0x247e2c['on']('index:registered',_0x3244fc),_0x247e2c['on'](_0x1dc7fc(0x108),_0x3244fc)],_0x398738[_0x1dc7fc(0x107)](()=>_0x398738[_0x1dc7fc(0x10a)][_0x1dc7fc(0xee)]['okdb'][_0x1dc7fc(0xdb)],()=>this['load']()),this[_0x1dc7fc(0xfd)]();},'unmount'(){const _0x5aebde=_0x1149a9;for(const _0x444790 of this[_0x5aebde(0xf4)])_0x444790();this[_0x5aebde(0xf4)]=[];},'style':_0x1149a9(0xe1),'template':'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22busy\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-overlay>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22loader-center\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-icon\x20name=\x22loader\x22\x20class=\x22spin\x22\x20style=\x22width:32px;height:32px;\x22></ok-icon>\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</ok-overlay>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22loadError\x20&&\x20!busy\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22type-list__error\x22\x20:title=\x22loadError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-icon\x20name=\x22alert-circle\x22\x20style=\x22width:13px;height:13px;flex-shrink:0;opacity:.7;\x22></ok-icon>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20loadError\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22type-list__error-retry\x22\x20@click=\x22load()\x22\x20title=\x22Retry\x22>↺</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!loadError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Overview\x20shortcut\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20class=\x22type-list__item\x20type-list__overview\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22selected\x20==\x20null\x20?\x20\x27type-list__item--selected\x27\x20:\x20\x27\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22select(null)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22margin-bottom:4px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ok-icon\x20name=\x22home\x22\x20style=\x22width:13px;height:13px;opacity:.6;flex-shrink:0;\x22></ok-icon>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22tl-name\x22>Overview</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22height:1px;\x20background:var(--okdb-app-surface-2);\x20margin:2px\x200\x206px;\x22></div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22type-list__add\x22\x20@click=\x22openAddModal\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20+\x20Register\x20Type\x20({{\x20items.length\x20}})\x0a\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22items\x22\x20let:item=\x22t\x22>\x0a\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:class=\x22[\x27type-list__item\x27,\x20selected\x20===\x20t\x20?\x20\x27type-list__item--selected\x27\x20:\x20\x27\x27]\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22select(t)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22tl-name\x22>{{\x20t.type\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22tl-count\x22>{{\x20t.count\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22systemCount\x20>\x200\x22>\x0a\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\x20class=\x22type-list__system-toggle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22showSystem\x20=\x20!showSystem\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:title=\x22showSystem\x20?\x20\x27Hide\x20system\x20types\x27\x20:\x20\x27Show\x20system\x20types\x27\x22\x0a\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{{\x20showSystem\x20?\x20\x27▴\x20hide\x20system\x20(\x27\x20+\x20systemCount\x20+\x20\x27)\x27\x20:\x20\x27⚙\x20system\x20(\x27\x20+\x20systemCount\x20+\x20\x27)\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20'};
@@ -1 +1 @@
1
- const _0x310b36=_0x3a75;function _0x5ac5(){const _0x20ec38=['attention','sort','engine:installed','search','12DHmtyp','sourceType','open','value','busy','embeddings:pipeline:ready','fulfilled','message','226242IumXmR','$router','load','running','pipeline:start','envName','$attr','focusedpipeline','add','type','_anchor','then','push','2XBKyOg','\x0a<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:12px;\x20flex:1;\x20min-height:0;\x20overflow:auto;\x20padding-right:4px;\x22>\x0a\x0a\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:10px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22font-weight:600;\x20font-size:15px;\x22>Engines</div>\x0a\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20padding:2px\x208px;\x20border-radius:999px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20color:#cbd5e1;\x20background:var(--okdb-app-bg-deep);\x22>type:\x20{{\x20sourceType\x20}}</span>\x0a\x20\x20\x20\x20<if\x20:=\x22focusedPipelineName\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20padding:2px\x208px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-indigo)\x2027%,\x20transparent);\x20color:var(--okdb-indigo);\x20background:color-mix(in\x20srgb,\x20var(--okdb-indigo)\x207%,\x20transparent);\x22>pipeline:\x20{{\x20focusedPipelineName\x20}}</span>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<div\x20style=\x22margin-left:auto;\x20display:flex;\x20gap:6px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22load()\x22\x20:disabled=\x22busy\x22\x20style=\x22font-size:11px;\x20padding:3px\x2010px;\x22>↻</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22openGlobalWorkspace()\x22\x20style=\x22font-size:11px;\x20padding:3px\x2010px;\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent);\x20color:var(--okdb-accent);\x22>Open\x20Global\x20→</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22openCreatePipeline()\x22\x20style=\x22background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2013%,\x20transparent);\x20border-color:var(--okdb-accent);\x20color:var(--okdb-accent);\x20font-weight:600;\x20padding:5px\x2014px;\x20font-size:12px;\x22>+\x20Create\x20Pipeline</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x20align-items:end;\x20flex-wrap:wrap;\x20padding:10px\x2012px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x20min-width:170px;\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>View</span>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:4px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22setMode(\x27pipelines\x27)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22mode\x20===\x20\x27pipelines\x27\x20?\x20\x27flex:1;\x20font-size:11px;\x20padding:5px\x2010px;\x20border-radius:6px;\x20border:1px\x20solid\x20var(--okdb-indigo);\x20color:var(--okdb-indigo);\x20background:color-mix(in\x20srgb,\x20var(--okdb-indigo)\x207%,\x20transparent);\x20cursor:pointer;\x27\x20:\x20\x27flex:1;\x20font-size:11px;\x20padding:5px\x2010px;\x20border-radius:6px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20color:var(--okdb-app-fg-muted);\x20background:var(--okdb-app-bg-deep);\x20cursor:pointer;\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20>Pipelines</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22setMode(\x27engines\x27)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22mode\x20===\x20\x27engines\x27\x20?\x20\x27flex:1;\x20font-size:11px;\x20padding:5px\x2010px;\x20border-radius:6px;\x20border:1px\x20solid\x20var(--okdb-purple);\x20color:var(--okdb-purple);\x20background:color-mix(in\x20srgb,\x20var(--okdb-purple)\x207%,\x20transparent);\x20cursor:pointer;\x27\x20:\x20\x27flex:1;\x20font-size:11px;\x20padding:5px\x2010px;\x20border-radius:6px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20color:var(--okdb-app-fg-muted);\x20background:var(--okdb-app-bg-deep);\x20cursor:pointer;\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20>Engines</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x20min-width:200px;\x20flex:1;\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>Search</span>\x0a\x20\x20\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22search\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20@input:debounce.200=\x22setSearchTerm($event.target.value)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:placeholder=\x22mode\x20===\x20\x27engines\x27\x20?\x20\x27Search\x20engines…\x27\x20:\x20\x27Search\x20pipelines…\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20style=\x22width:100%;\x20box-sizing:border-box;\x22\x0a\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20</label>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x20min-width:150px;\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>Status</span>\x0a\x20\x20\x20\x20\x20\x20<select\x20@change=\x22setStatusFilter($event.target.value)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22all\x22\x20:selected=\x22status\x20===\x20\x27all\x27\x22>Any</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22running\x22\x20:selected=\x22status\x20===\x20\x27running\x27\x22>Running</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22attention\x22\x20:selected=\x22status\x20===\x20\x27attention\x27\x22>Needs\x20attention</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22stopped\x22\x20:selected=\x22status\x20===\x20\x27stopped\x27\x22>Stopped</option>\x0a\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20</label>\x0a\x0a\x20\x20\x20\x20<if\x20:=\x22mode\x20===\x20\x27engines\x27\x20&&\x20availableEngineTypes.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20<label\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x20min-width:170px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>Engine\x20Type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<select\x20@change=\x22setEngineTypeFilter($event.target.value)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22\x20:selected=\x22!engineType\x22>All\x20engines</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22availableEngineTypes\x22\x20let:item=\x22engineKind\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22engineKind\x22\x20:selected=\x22engineType\x20===\x20engineKind\x22>{{\x20engineKind\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20</label>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<if\x20:=\x22embedPipelines.length\x20>\x201\x22>\x0a\x20\x20\x20\x20\x20\x20<label\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x20min-width:190px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>Pipeline</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<select\x20@change=\x22updateFocusedPipeline($event.target.value)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22\x20:selected=\x22!focusedPipelineName\x22>All\x20pipelines</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22embedPipelines\x22\x20let:item=\x22pipeline\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22pipeline.name\x20||\x20pipeline.pipeline\x20||\x20pipeline.storage_key\x22\x20:selected=\x22focusedPipelineName\x20===\x20(pipeline.name\x20||\x20pipeline.pipeline\x20||\x20pipeline.storage_key)\x22>{{\x20pipeline.meta?.label\x20||\x20pipeline.meta?.pipeline\x20||\x20pipeline.pipeline\x20||\x20pipeline.name\x20||\x20pipeline.storage_key\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20</label>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<if\x20:=\x22focusedPipelineName\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22updateFocusedPipeline(\x27\x27)\x22\x20style=\x22font-size:11px;\x20padding:4px\x2010px;\x22>Clear\x20focus</button>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<if\x20:=\x22search\x20||\x20status\x20!==\x20\x27all\x27\x20||\x20engineType\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22clearFilters()\x22\x20style=\x22font-size:11px;\x20padding:4px\x2010px;\x22>Clear\x20filters</button>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20</div>\x0a\x0a\x20\x20<if\x20:=\x22error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22color:var(--okdb-danger);\x20font-size:12px;\x20padding:8px;\x20border:1px\x20solid\x20var(--okdb-danger);\x20border-radius:6px;\x22>{{\x20error\x20}}</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22!busy\x20&&\x20!hasWorkspaceData\x20&&\x20!error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22padding:22px\x2020px;\x20background:#111a1f;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20display:flex;\x20flex-direction:column;\x20gap:8px;\x20align-items:center;\x20text-align:center;\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:30px;\x20opacity:.22;\x22>⊛</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:14px;\x20font-weight:600;\x20opacity:.75;\x22>No\x20engines\x20for\x20{{\x20sourceType\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.5;\x20line-height:1.7;\x20max-width:500px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20This\x20is\x20the\x20same\x20engines\x20workspace,\x20already\x20scoped\x20to\x20this\x20type.\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22openCreatePipeline()\x22\x20style=\x22background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2013%,\x20transparent);\x20border-color:var(--okdb-accent);\x20color:var(--okdb-accent);\x20font-weight:600;\x20padding:6px\x2014px;\x20font-size:12px;\x22>+\x20Create\x20Pipeline</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22busy\x20&&\x20!hasWorkspaceData\x20&&\x20!error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.45;\x20padding:8px\x200;\x22>Loading…</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22hasWorkspaceData\x22>\x0a\x20\x20\x20\x20<engines-overview\x0a\x20\x20\x20\x20\x20\x20embedded=\x22true\x22\x0a\x20\x20\x20\x20\x20\x20filterpipeline=\x22true\x22\x0a\x20\x20\x20\x20\x20\x20:embed-engines=\x22embedEngines\x22\x0a\x20\x20\x20\x20\x20\x20:embed-pipelines=\x22embedPipelines\x22\x0a\x20\x20\x20\x20\x20\x20:file-engines=\x22emptyFileEngines\x22\x0a\x20\x20\x20\x20\x20\x20:mode=\x22mode\x22\x0a\x20\x20\x20\x20\x20\x20pipelinetype=\x22all\x22\x0a\x20\x20\x20\x20\x20\x20:enginetype=\x22engineType\x22\x0a\x20\x20\x20\x20\x20\x20:status=\x22status\x22\x0a\x20\x20\x20\x20\x20\x20:search=\x22search\x22\x0a\x20\x20\x20\x20\x20\x20:sourcetype=\x22sourceType\x22\x0a\x20\x20\x20\x20\x20\x20:selectedpipeline=\x22focusedPipelineName\x22\x0a\x20\x20\x20\x20\x20\x20@select=\x22handleOverviewSelect($event.detail)\x22\x0a\x20\x20\x20\x20\x20\x20@refresh=\x22load()\x22\x0a\x20\x20\x20\x20\x20\x20@goto-type=\x22goToType($event.detail)\x22\x0a\x20\x20\x20\x20/>\x0a\x20\x20</if>\x0a\x0a</div>','updateFocusedPipeline','pipeline','modal','catch','7158800vnHqXj','allSettled','892456oVrkst','/engines','$ok','focusedPipelineName','reason','272041pJYGRK','data','engine:stopped','shared','628668kTATWp','resolve','engineType','json','_search','env','embedEngines','okdb','_unsubs','trim','rejected','pipelines','all','embedPipelines','selectedEnv','stores','mode','9LeAVsY','pipeline:delete','length','$watch','<create-pipeline-modal\x20:modal=\x22modal\x22\x20:type=\x22type\x22\x20:env=\x22envName\x22\x20:on-done=\x22onDone\x22\x20/>','includes','engines','error','16948pCcLAb','replace','/db','name','stopped','Failed\x20to\x20load\x20env\x20pipelines','API','$vars','status','type-pipelines-tab','1402475EdoiDs','default'];_0x5ac5=function(){return _0x20ec38;};return _0x5ac5();}(function(_0x440c6f,_0xec5dc0){const _0x7b879a=_0x3a75,_0xcd7d3a=_0x440c6f();while(!![]){try{const _0x4505f3=parseInt(_0x7b879a(0x108))/0x1*(-parseInt(_0x7b879a(0xfb))/0x2)+parseInt(_0x7b879a(0xf3))/0x3*(-parseInt(_0x7b879a(0xe3))/0x4)+-parseInt(_0x7b879a(0xed))/0x5+-parseInt(_0x7b879a(0xca))/0x6+-parseInt(_0x7b879a(0xc6))/0x7+-parseInt(_0x7b879a(0xc1))/0x8*(-parseInt(_0x7b879a(0xdb))/0x9)+parseInt(_0x7b879a(0xbf))/0xa;if(_0x4505f3===_0xec5dc0)break;else _0xcd7d3a['push'](_0xcd7d3a['shift']());}catch(_0x207578){_0xcd7d3a['push'](_0xcd7d3a['shift']());}}}(_0x5ac5,0x2716f));import _0x1ee30f from'../../embeddings/parts/engines-overview.ok.js';import _0x1323f2 from'../modals/create-pipeline-modal.ok.js';function _0x3a75(_0x1525e4,_0x31e059){_0x1525e4=_0x1525e4-0xbb;const _0x5ac520=_0x5ac5();let _0x3a7581=_0x5ac520[_0x1525e4];return _0x3a7581;}import _0x24de04 from'../../../stores/events-store.js';export default{'tag':_0x310b36(0xec),'dependencies':[_0x1ee30f,_0x1323f2],'attr':{'type':{},'focusedpipeline':{},'currentmode':{}},'context':_0x141453=>({'busy':!0x1,'error':null,'embedEngines':[],'embedPipelines':[],'search':'','status':_0x310b36(0xd6),'engineType':'','emptyFileEngines':{'extractors':[],'collections':[],'workers':[]},'_unsubs':[],get 'sourceType'(){const _0x503965=_0x310b36;return _0x141453[_0x503965(0x101)][_0x503965(0x104)]||'';},get 'envName'(){const _0x37fee7=_0x310b36;return _0x141453[_0x37fee7(0xc3)][_0x37fee7(0xd9)][_0x37fee7(0xd1)][_0x37fee7(0xd8)]||_0x37fee7(0xee);},get 'mode'(){const _0x2c0956=_0x310b36;return'pipelines'===_0x141453[_0x2c0956(0x101)]['currentmode']?_0x2c0956(0xd5):_0x2c0956(0xe1);},get 'focusedPipelineName'(){const _0xc84d4f=_0x310b36;return String(_0x141453[_0xc84d4f(0x101)][_0xc84d4f(0x102)]||'')[_0xc84d4f(0xd3)]();},'normalizeStatus':_0x137728=>[_0x310b36(0xd6),_0x310b36(0xfe),_0x310b36(0xef),_0x310b36(0xe7)][_0x310b36(0xe0)](_0x137728)?_0x137728:_0x310b36(0xd6),get 'availableEngineTypes'(){const _0x1b387c=_0x310b36,_0x54189f=new Set();for(const _0x4b6dd9 of this[_0x1b387c(0xd0)]??[])_0x4b6dd9?.[_0x1b387c(0x104)]&&_0x54189f[_0x1b387c(0x103)](_0x4b6dd9['type']);return[..._0x54189f][_0x1b387c(0xf0)]();},get 'hasWorkspaceData'(){const _0x5b0805=_0x310b36;return(this[_0x5b0805(0xd0)]?.[_0x5b0805(0xdd)]??0x0)>0x0||(this[_0x5b0805(0xd7)]?.[_0x5b0805(0xdd)]??0x0)>0x0;},async 'load'(){const _0x36df80=_0x310b36;if(!this['sourceType'])return this[_0x36df80(0xd0)]=[],this[_0x36df80(0xd7)]=[],this['error']=null,void(this['busy']=!0x1);this[_0x36df80(0xf7)]=!0x0,this[_0x36df80(0xe2)]=null;try{const [_0x4734fd,_0x12308c,_0x3928db]=await Promise[_0x36df80(0xc0)]([fetch(__ENV__[_0x36df80(0xe9)]+'/env/'+encodeURIComponent(this['envName'])+_0x36df80(0xc2))['then'](async _0x4a95d2=>{const _0x583c0c=_0x36df80,_0x20a259=await _0x4a95d2[_0x583c0c(0xcd)]()[_0x583c0c(0xbe)](()=>({}));if(!_0x4a95d2['ok'])throw new Error(_0x20a259?.[_0x583c0c(0xe2)]?.['message']||'Failed\x20to\x20load\x20env\x20engines');return _0x20a259;}),fetch(__ENV__['API']+'/embeddings/embedders')[_0x36df80(0x106)](async _0x218115=>{const _0x400c7f=_0x36df80,_0x108901=await _0x218115[_0x400c7f(0xcd)]()[_0x400c7f(0xbe)](()=>({}));if(!_0x218115['ok'])throw new Error(_0x108901?.[_0x400c7f(0xe2)]?.['message']||'Failed\x20to\x20load\x20embedders');return _0x108901;}),fetch(__ENV__['API']+'/env/'+encodeURIComponent(this['envName'])+'/pipelines')[_0x36df80(0x106)](async _0x4702a4=>{const _0x828536=_0x36df80,_0x123d85=await _0x4702a4['json']()[_0x828536(0xbe)](()=>({}));if(!_0x4702a4['ok'])throw new Error(_0x123d85?.[_0x828536(0xe2)]?.[_0x828536(0xfa)]||_0x828536(0xe8));return _0x123d85;})]);if(_0x36df80(0xd4)===_0x4734fd[_0x36df80(0xeb)])throw _0x4734fd[_0x36df80(0xc5)];if(_0x36df80(0xd4)===_0x3928db['status'])throw _0x3928db['reason'];const _0xac2f4d=_0x4734fd[_0x36df80(0xf6)]?.[_0x36df80(0xc7)]??[],_0x4ab6ee=_0x36df80(0xf9)===_0x12308c[_0x36df80(0xeb)]?_0x12308c[_0x36df80(0xf6)]?.[_0x36df80(0xc7)]??[]:[],_0x813c84=_0x3928db[_0x36df80(0xf6)]?.[_0x36df80(0xc7)]??[];this[_0x36df80(0xd7)]=_0x813c84,this[_0x36df80(0xd0)]=[..._0xac2f4d,..._0x4ab6ee];}catch(_0x178f04){this[_0x36df80(0xe2)]=_0x178f04?.[_0x36df80(0xfa)]||String(_0x178f04),this[_0x36df80(0xd7)]=[],this['embedEngines']=[];}finally{this[_0x36df80(0xf7)]=!0x1;}},'setSearchTerm'(_0x209696){const _0x2bea55=_0x310b36;this[_0x2bea55(0xf2)]=String(_0x209696??'');},'setStatusFilter'(_0x34623f){const _0x5d6b4e=_0x310b36;this[_0x5d6b4e(0xeb)]=this['normalizeStatus'](_0x34623f);},'setEngineTypeFilter'(_0x4dd56c){const _0x10f887=_0x310b36;this['engineType']=String(_0x4dd56c??'')[_0x10f887(0xd3)]();},'setMode'(_0x4b4dc4){const _0x580863=_0x310b36,_0x426ee3=_0x141453[_0x580863(0xea)]?.[_0x580863(0xfc)];if(!_0x426ee3?.[_0x580863(0xcb)]||!_0x426ee3?.['replace'])return;const _0x303f63={..._0x426ee3[_0x580863(0xce)]||{},'env':this['envName'],'type':this[_0x580863(0xf4)],'tab':_0x580863(0xe1),'mode':'pipelines'===_0x4b4dc4?_0x580863(0xd5):_0x580863(0xe1)};this['focusedPipelineName']?_0x303f63[_0x580863(0xbc)]=this[_0x580863(0xc4)]:delete _0x303f63['pipeline'],_0x426ee3[_0x580863(0xe4)](_0x426ee3[_0x580863(0xcb)](_0x580863(0xe5),_0x303f63,_0x426ee3[_0x580863(0x105)]||''));},'clearFilters'(){const _0x17117d=_0x310b36;this[_0x17117d(0xf2)]='',this[_0x17117d(0xeb)]=_0x17117d(0xd6),this[_0x17117d(0xcc)]='';},'updateFocusedPipeline'(_0xba4e5b=''){const _0x390b10=_0x310b36,_0x2120a3=_0x141453[_0x390b10(0xea)]?.[_0x390b10(0xfc)];if(!_0x2120a3?.[_0x390b10(0xcb)]||!_0x2120a3?.[_0x390b10(0xe4)])return;const _0x26a181={..._0x2120a3[_0x390b10(0xce)]||{},'env':this['envName'],'type':this['sourceType'],'tab':_0x390b10(0xe1),'mode':this[_0x390b10(0xda)]},_0x9f9df2=String(_0xba4e5b||'')[_0x390b10(0xd3)]();_0x9f9df2?_0x26a181[_0x390b10(0xbc)]=_0x9f9df2:delete _0x26a181['pipeline'],_0x2120a3[_0x390b10(0xe4)](_0x2120a3['resolve'](_0x390b10(0xe5),_0x26a181,_0x2120a3[_0x390b10(0x105)]||''));},'handleOverviewSelect'(_0x48b449=null){const _0x2d3503=_0x310b36;this[_0x2d3503(0xbb)](_0x48b449?.[_0x2d3503(0xe6)]||'');},'goToType'(_0x52f546=null){const _0x1816fc=_0x310b36,_0x19d7d8=_0x52f546?.[_0x1816fc(0x104)];if(!_0x19d7d8)return;const _0x35bd20=_0x52f546?.[_0x1816fc(0xcf)]||this[_0x1816fc(0x100)],_0xaed40c=_0x141453[_0x1816fc(0xea)]?.[_0x1816fc(0xfc)];_0xaed40c?.['resolve']&&_0xaed40c?.[_0x1816fc(0x107)]&&_0xaed40c['push'](_0xaed40c[_0x1816fc(0xcb)](_0x1816fc(0xe5),{'env':_0x35bd20,'type':_0x19d7d8,'tab':_0x1816fc(0xe1),'mode':'pipelines'}));},'openGlobalWorkspace'(){const _0x4b76db=_0x310b36,_0x54add7=_0x141453['$vars']?.[_0x4b76db(0xfc)];if(!_0x54add7?.[_0x4b76db(0xcb)]||!_0x54add7?.[_0x4b76db(0x107)])return;const _0x5693aa={'env':this[_0x4b76db(0x100)],'sourceType':this['sourceType'],'mode':this[_0x4b76db(0xda)]};_0x4b76db(0xe1)===this[_0x4b76db(0xda)]&&this[_0x4b76db(0xcc)]&&(_0x5693aa['engineType']=this[_0x4b76db(0xcc)]),this['focusedPipelineName']&&(_0x5693aa[_0x4b76db(0xbc)]=this[_0x4b76db(0xc4)]),_0x4b76db(0xd6)!==this['status']&&(_0x5693aa[_0x4b76db(0xeb)]=this[_0x4b76db(0xeb)]),this['search'][_0x4b76db(0xd3)]()&&(_0x5693aa['search']=this[_0x4b76db(0xf2)][_0x4b76db(0xd3)]()),_0x54add7[_0x4b76db(0x107)](_0x54add7[_0x4b76db(0xcb)](_0x4b76db(0xc2),_0x5693aa));},async 'openCreatePipeline'(){const _0x1ccd52=_0x310b36;this['sourceType']&&await _0x141453[_0x1ccd52(0xc3)][_0x1ccd52(0xc9)][_0x1ccd52(0xbd)][_0x1ccd52(0xf5)]({'owner':_0x141453,'title':'Create\x20Pipeline\x20·\x20'+this[_0x1ccd52(0xf4)],'canDrag':!0x0,'content':_0x1ccd52(0xdf),'context':_0x37cf71=>({'modal':_0x37cf71,'type':this['sourceType'],'envName':this['envName'],'onDone':async()=>{const _0x59b578=_0x1ccd52;await this[_0x59b578(0xfd)]();}})});}}),async 'init'(_0x5ce6d1){const _0x2a3852=_0x310b36;_0x5ce6d1[_0x2a3852(0xde)](()=>_0x5ce6d1[_0x2a3852(0x101)]['type'],()=>this['load']()),_0x5ce6d1[_0x2a3852(0xde)](()=>_0x5ce6d1['$ok'][_0x2a3852(0xd9)][_0x2a3852(0xd1)][_0x2a3852(0xd8)],()=>this[_0x2a3852(0xfd)]()),await this['load']();const _0x445bb1=()=>this[_0x2a3852(0xfd)]();this[_0x2a3852(0xd2)]=[_0x24de04['on']('engine:started',_0x445bb1),_0x24de04['on'](_0x2a3852(0xc8),_0x445bb1),_0x24de04['on']('engine:error',_0x445bb1),_0x24de04['on'](_0x2a3852(0xf1),_0x445bb1),_0x24de04['on']('engine:uninstalled',_0x445bb1),_0x24de04['on'](_0x2a3852(0xf8),_0x445bb1),_0x24de04['on'](_0x2a3852(0xff),_0x445bb1),_0x24de04['on']('pipeline:stop',_0x445bb1),_0x24de04['on'](_0x2a3852(0xdc),_0x445bb1)];},'unmount'(){const _0xe683bd=_0x310b36;for(const _0x45c9cb of this[_0xe683bd(0xd2)])_0x45c9cb();this[_0xe683bd(0xd2)]=[];},'template':_0x310b36(0x109)};
1
+ function _0x5359(_0x23dad8,_0x2a2883){_0x23dad8=_0x23dad8-0xdb;const _0x1728f4=_0x1728();let _0x5359a5=_0x1728f4[_0x23dad8];return _0x5359a5;}const _0x306822=_0x5359;function _0x1728(){const _0x5dab35=['embedEngines','search','$router','engine:error','trim','<create-pipeline-modal\x20:modal=\x22modal\x22\x20:type=\x22type\x22\x20:env=\x22envName\x22\x20:on-done=\x22onDone\x22\x20/>','open','$attr','230360KzFgLy','18473WnsAcm','pipeline:delete','status','/db','engine:started','54OFCcyM','running','128682xnZXlq','all','then','envName','Failed\x20to\x20load\x20env\x20engines','value','pipeline:stop','sourceType','selectedEnv','engine:stopped','$watch','focusedPipelineName','/env/','47420zInxuW','load','embeddings:pipeline:ready','attention','catch','318rZqASd','_search','env','295VOgwhb','data','json','$vars','push','type-pipelines-tab','allSettled','/engines','3560UTRhfi','replace','normalizeStatus','length','rejected','_unsubs','732699fCZbPD','500020vYjOPA','updateFocusedPipeline','add','reason','type','resolve','currentmode','$ok','embedPipelines','pipelines','Create\x20Pipeline\x20·\x20','busy','message','okdb','engineType','/pipelines','2256518BdMqcb','fulfilled','error','pipeline','stores','modal','engine:uninstalled','engines','name','API','mode','includes','shared','_anchor'];_0x1728=function(){return _0x5dab35;};return _0x1728();}(function(_0x107f78,_0x3f1759){const _0x3b3539=_0x5359,_0x2ff17d=_0x107f78();while(!![]){try{const _0x13770f=parseInt(_0x3b3539(0x11d))/0x1+-parseInt(_0x3b3539(0xdb))/0x2+-parseInt(_0x3b3539(0x10b))/0x3*(-parseInt(_0x3b3539(0x106))/0x4)+-parseInt(_0x3b3539(0x10e))/0x5*(-parseInt(_0x3b3539(0xf9))/0x6)+-parseInt(_0x3b3539(0xf2))/0x7*(parseInt(_0x3b3539(0x116))/0x8)+-parseInt(_0x3b3539(0xf7))/0x9*(parseInt(_0x3b3539(0xf1))/0xa)+parseInt(_0x3b3539(0x11c))/0xb;if(_0x13770f===_0x3f1759)break;else _0x2ff17d['push'](_0x2ff17d['shift']());}catch(_0x13897d){_0x2ff17d['push'](_0x2ff17d['shift']());}}}(_0x1728,0x9e27a));import _0x20ffc6 from'../../embeddings/parts/engines-overview.ok.js';import _0x104c32 from'../modals/create-pipeline-modal.ok.js';import _0x231cd9 from'../../../stores/events-store.js';export default{'tag':_0x306822(0x113),'dependencies':[_0x20ffc6,_0x104c32],'attr':{'type':{},'focusedpipeline':{},'currentmode':{}},'context':_0x43332a=>({'busy':!0x1,'error':null,'embedEngines':[],'embedPipelines':[],'search':'','status':_0x306822(0xfa),'engineType':'','emptyFileEngines':{'extractors':[],'collections':[],'workers':[]},'_unsubs':[],get 'sourceType'(){const _0x166f7a=_0x306822;return _0x43332a[_0x166f7a(0xf0)][_0x166f7a(0x121)]||'';},get 'envName'(){const _0x1174b5=_0x306822;return _0x43332a[_0x1174b5(0x124)][_0x1174b5(0xdf)][_0x1174b5(0x12a)][_0x1174b5(0x101)]||'default';},get 'mode'(){const _0x5b5c13=_0x306822;return'pipelines'===_0x43332a[_0x5b5c13(0xf0)][_0x5b5c13(0x123)]?_0x5b5c13(0x126):_0x5b5c13(0xe2);},get 'focusedPipelineName'(){const _0x1c5964=_0x306822;return String(_0x43332a[_0x1c5964(0xf0)]['focusedpipeline']||'')[_0x1c5964(0xed)]();},'normalizeStatus':_0x366d6a=>[_0x306822(0xfa),_0x306822(0xf8),_0x306822(0x109),'stopped'][_0x306822(0xe6)](_0x366d6a)?_0x366d6a:'all',get 'availableEngineTypes'(){const _0x36ea2b=_0x306822,_0x20efce=new Set();for(const _0x78266a of this[_0x36ea2b(0xe9)]??[])_0x78266a?.[_0x36ea2b(0x121)]&&_0x20efce[_0x36ea2b(0x11f)](_0x78266a['type']);return[..._0x20efce]['sort']();},get 'hasWorkspaceData'(){const _0x48767a=_0x306822;return(this[_0x48767a(0xe9)]?.[_0x48767a(0x119)]??0x0)>0x0||(this[_0x48767a(0x125)]?.[_0x48767a(0x119)]??0x0)>0x0;},async 'load'(){const _0x3c6041=_0x306822;if(!this[_0x3c6041(0x100)])return this[_0x3c6041(0xe9)]=[],this[_0x3c6041(0x125)]=[],this[_0x3c6041(0xdd)]=null,void(this[_0x3c6041(0x128)]=!0x1);this[_0x3c6041(0x128)]=!0x0,this[_0x3c6041(0xdd)]=null;try{const [_0xf7f71,_0xf09495,_0x1108ad]=await Promise[_0x3c6041(0x114)]([fetch(__ENV__[_0x3c6041(0xe4)]+_0x3c6041(0x105)+encodeURIComponent(this[_0x3c6041(0xfc)])+_0x3c6041(0x115))[_0x3c6041(0xfb)](async _0x3edfac=>{const _0x3885aa=_0x3c6041,_0x2775c5=await _0x3edfac[_0x3885aa(0x110)]()[_0x3885aa(0x10a)](()=>({}));if(!_0x3edfac['ok'])throw new Error(_0x2775c5?.[_0x3885aa(0xdd)]?.[_0x3885aa(0x129)]||_0x3885aa(0xfd));return _0x2775c5;}),fetch(__ENV__[_0x3c6041(0xe4)]+'/embeddings/embedders')[_0x3c6041(0xfb)](async _0x496c3e=>{const _0x301f78=_0x3c6041,_0x3de9fc=await _0x496c3e[_0x301f78(0x110)]()[_0x301f78(0x10a)](()=>({}));if(!_0x496c3e['ok'])throw new Error(_0x3de9fc?.[_0x301f78(0xdd)]?.[_0x301f78(0x129)]||'Failed\x20to\x20load\x20embedders');return _0x3de9fc;}),fetch(__ENV__[_0x3c6041(0xe4)]+_0x3c6041(0x105)+encodeURIComponent(this[_0x3c6041(0xfc)])+_0x3c6041(0x12c))[_0x3c6041(0xfb)](async _0x51514a=>{const _0x3e2975=_0x3c6041,_0x33695b=await _0x51514a[_0x3e2975(0x110)]()[_0x3e2975(0x10a)](()=>({}));if(!_0x51514a['ok'])throw new Error(_0x33695b?.['error']?.[_0x3e2975(0x129)]||'Failed\x20to\x20load\x20env\x20pipelines');return _0x33695b;})]);if(_0x3c6041(0x11a)===_0xf7f71[_0x3c6041(0xf4)])throw _0xf7f71[_0x3c6041(0x120)];if(_0x3c6041(0x11a)===_0x1108ad['status'])throw _0x1108ad[_0x3c6041(0x120)];const _0x3aae7c=_0xf7f71[_0x3c6041(0xfe)]?.[_0x3c6041(0x10f)]??[],_0x4d7eab=_0x3c6041(0xdc)===_0xf09495[_0x3c6041(0xf4)]?_0xf09495[_0x3c6041(0xfe)]?.[_0x3c6041(0x10f)]??[]:[],_0x13446c=_0x1108ad[_0x3c6041(0xfe)]?.[_0x3c6041(0x10f)]??[];this[_0x3c6041(0x125)]=_0x13446c,this['embedEngines']=[..._0x3aae7c,..._0x4d7eab];}catch(_0x512b28){this['error']=_0x512b28?.[_0x3c6041(0x129)]||String(_0x512b28),this[_0x3c6041(0x125)]=[],this[_0x3c6041(0xe9)]=[];}finally{this['busy']=!0x1;}},'setSearchTerm'(_0x49ae8b){const _0x30433d=_0x306822;this[_0x30433d(0xea)]=String(_0x49ae8b??'');},'setStatusFilter'(_0x2e60ee){const _0x5c9357=_0x306822;this[_0x5c9357(0xf4)]=this[_0x5c9357(0x118)](_0x2e60ee);},'setEngineTypeFilter'(_0x307aac){const _0x3c0c59=_0x306822;this[_0x3c0c59(0x12b)]=String(_0x307aac??'')['trim']();},'setMode'(_0xff183e){const _0x2ea411=_0x306822,_0x32d48c=_0x43332a[_0x2ea411(0x111)]?.[_0x2ea411(0xeb)];if(!_0x32d48c?.[_0x2ea411(0x122)]||!_0x32d48c?.[_0x2ea411(0x117)])return;const _0x2e1c9c={..._0x32d48c['_search']||{},'env':this[_0x2ea411(0xfc)],'type':this['sourceType'],'tab':_0x2ea411(0xe2),'mode':_0x2ea411(0x126)===_0xff183e?_0x2ea411(0x126):_0x2ea411(0xe2)};this[_0x2ea411(0x104)]?_0x2e1c9c['pipeline']=this[_0x2ea411(0x104)]:delete _0x2e1c9c[_0x2ea411(0xde)],_0x32d48c[_0x2ea411(0x117)](_0x32d48c[_0x2ea411(0x122)](_0x2ea411(0xf5),_0x2e1c9c,_0x32d48c[_0x2ea411(0xe8)]||''));},'clearFilters'(){const _0x43176b=_0x306822;this['search']='',this[_0x43176b(0xf4)]='all',this[_0x43176b(0x12b)]='';},'updateFocusedPipeline'(_0x1bdd4e=''){const _0x245b59=_0x306822,_0x11b899=_0x43332a[_0x245b59(0x111)]?.[_0x245b59(0xeb)];if(!_0x11b899?.[_0x245b59(0x122)]||!_0x11b899?.['replace'])return;const _0x7da4bd={..._0x11b899[_0x245b59(0x10c)]||{},'env':this[_0x245b59(0xfc)],'type':this['sourceType'],'tab':'engines','mode':this[_0x245b59(0xe5)]},_0x2d327d=String(_0x1bdd4e||'')[_0x245b59(0xed)]();_0x2d327d?_0x7da4bd[_0x245b59(0xde)]=_0x2d327d:delete _0x7da4bd[_0x245b59(0xde)],_0x11b899[_0x245b59(0x117)](_0x11b899[_0x245b59(0x122)](_0x245b59(0xf5),_0x7da4bd,_0x11b899[_0x245b59(0xe8)]||''));},'handleOverviewSelect'(_0x53398e=null){const _0x33106f=_0x306822;this[_0x33106f(0x11e)](_0x53398e?.[_0x33106f(0xe3)]||'');},'goToType'(_0x35c895=null){const _0x5d57ad=_0x306822,_0x890b0b=_0x35c895?.[_0x5d57ad(0x121)];if(!_0x890b0b)return;const _0x27b8a0=_0x35c895?.[_0x5d57ad(0x10d)]||this[_0x5d57ad(0xfc)],_0x4d51fa=_0x43332a[_0x5d57ad(0x111)]?.[_0x5d57ad(0xeb)];_0x4d51fa?.['resolve']&&_0x4d51fa?.[_0x5d57ad(0x112)]&&_0x4d51fa[_0x5d57ad(0x112)](_0x4d51fa[_0x5d57ad(0x122)]('/db',{'env':_0x27b8a0,'type':_0x890b0b,'tab':'engines','mode':_0x5d57ad(0x126)}));},'openGlobalWorkspace'(){const _0x368661=_0x306822,_0x4d5406=_0x43332a[_0x368661(0x111)]?.[_0x368661(0xeb)];if(!_0x4d5406?.[_0x368661(0x122)]||!_0x4d5406?.['push'])return;const _0x1c4b8f={'env':this[_0x368661(0xfc)],'sourceType':this[_0x368661(0x100)],'mode':this[_0x368661(0xe5)]};_0x368661(0xe2)===this[_0x368661(0xe5)]&&this[_0x368661(0x12b)]&&(_0x1c4b8f[_0x368661(0x12b)]=this['engineType']),this[_0x368661(0x104)]&&(_0x1c4b8f[_0x368661(0xde)]=this[_0x368661(0x104)]),_0x368661(0xfa)!==this[_0x368661(0xf4)]&&(_0x1c4b8f[_0x368661(0xf4)]=this['status']),this['search']['trim']()&&(_0x1c4b8f[_0x368661(0xea)]=this[_0x368661(0xea)][_0x368661(0xed)]()),_0x4d5406[_0x368661(0x112)](_0x4d5406[_0x368661(0x122)](_0x368661(0x115),_0x1c4b8f));},async 'openCreatePipeline'(){const _0x120b8d=_0x306822;this[_0x120b8d(0x100)]&&await _0x43332a[_0x120b8d(0x124)][_0x120b8d(0xe7)][_0x120b8d(0xe0)][_0x120b8d(0xef)]({'owner':_0x43332a,'title':_0x120b8d(0x127)+this[_0x120b8d(0x100)],'canDrag':!0x0,'content':_0x120b8d(0xee),'context':_0x4cde4d=>({'modal':_0x4cde4d,'type':this[_0x120b8d(0x100)],'envName':this[_0x120b8d(0xfc)],'onDone':async()=>{const _0x397e1c=_0x120b8d;await this[_0x397e1c(0x107)]();}})});}}),async 'init'(_0x564198){const _0xfe34e7=_0x306822;_0x564198[_0xfe34e7(0x103)](()=>_0x564198[_0xfe34e7(0xf0)][_0xfe34e7(0x121)],()=>this[_0xfe34e7(0x107)]()),_0x564198[_0xfe34e7(0x103)](()=>_0x564198[_0xfe34e7(0x124)][_0xfe34e7(0xdf)][_0xfe34e7(0x12a)][_0xfe34e7(0x101)],()=>this['load']()),await this['load']();const _0x24e3ea=()=>this[_0xfe34e7(0x107)]();this[_0xfe34e7(0x11b)]=[_0x231cd9['on'](_0xfe34e7(0xf6),_0x24e3ea),_0x231cd9['on'](_0xfe34e7(0x102),_0x24e3ea),_0x231cd9['on'](_0xfe34e7(0xec),_0x24e3ea),_0x231cd9['on']('engine:installed',_0x24e3ea),_0x231cd9['on'](_0xfe34e7(0xe1),_0x24e3ea),_0x231cd9['on'](_0xfe34e7(0x108),_0x24e3ea),_0x231cd9['on']('pipeline:start',_0x24e3ea),_0x231cd9['on'](_0xfe34e7(0xff),_0x24e3ea),_0x231cd9['on'](_0xfe34e7(0xf3),_0x24e3ea)];},'unmount'(){const _0x310669=_0x306822;for(const _0x27a6d6 of this['_unsubs'])_0x27a6d6();this[_0x310669(0x11b)]=[];},'template':'\x0a<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:12px;\x20flex:1;\x20min-height:0;\x20overflow:auto;\x20padding-right:4px;\x22>\x0a\x0a\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:10px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22font-weight:600;\x20font-size:15px;\x22>Engines</div>\x0a\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20padding:2px\x208px;\x20border-radius:999px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20color:#cbd5e1;\x20background:var(--okdb-app-bg-deep);\x22>type:\x20{{\x20sourceType\x20}}</span>\x0a\x20\x20\x20\x20<if\x20:=\x22focusedPipelineName\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20padding:2px\x208px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-indigo)\x2027%,\x20transparent);\x20color:var(--okdb-indigo);\x20background:color-mix(in\x20srgb,\x20var(--okdb-indigo)\x207%,\x20transparent);\x22>pipeline:\x20{{\x20focusedPipelineName\x20}}</span>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<div\x20style=\x22margin-left:auto;\x20display:flex;\x20gap:6px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22load()\x22\x20:disabled=\x22busy\x22\x20style=\x22font-size:11px;\x20padding:3px\x2010px;\x22>↻</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22openGlobalWorkspace()\x22\x20style=\x22font-size:11px;\x20padding:3px\x2010px;\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent);\x20color:var(--okdb-accent);\x22>Open\x20Global\x20→</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22openCreatePipeline()\x22\x20style=\x22background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2013%,\x20transparent);\x20border-color:var(--okdb-accent);\x20color:var(--okdb-accent);\x20font-weight:600;\x20padding:5px\x2014px;\x20font-size:12px;\x22>+\x20Create\x20Pipeline</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x20align-items:end;\x20flex-wrap:wrap;\x20padding:10px\x2012px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x20min-width:170px;\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>View</span>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:4px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22setMode(\x27pipelines\x27)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22mode\x20===\x20\x27pipelines\x27\x20?\x20\x27flex:1;\x20font-size:11px;\x20padding:5px\x2010px;\x20border-radius:6px;\x20border:1px\x20solid\x20var(--okdb-indigo);\x20color:var(--okdb-indigo);\x20background:color-mix(in\x20srgb,\x20var(--okdb-indigo)\x207%,\x20transparent);\x20cursor:pointer;\x27\x20:\x20\x27flex:1;\x20font-size:11px;\x20padding:5px\x2010px;\x20border-radius:6px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20color:var(--okdb-app-fg-muted);\x20background:var(--okdb-app-bg-deep);\x20cursor:pointer;\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20>Pipelines</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22setMode(\x27engines\x27)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22mode\x20===\x20\x27engines\x27\x20?\x20\x27flex:1;\x20font-size:11px;\x20padding:5px\x2010px;\x20border-radius:6px;\x20border:1px\x20solid\x20var(--okdb-purple);\x20color:var(--okdb-purple);\x20background:color-mix(in\x20srgb,\x20var(--okdb-purple)\x207%,\x20transparent);\x20cursor:pointer;\x27\x20:\x20\x27flex:1;\x20font-size:11px;\x20padding:5px\x2010px;\x20border-radius:6px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20color:var(--okdb-app-fg-muted);\x20background:var(--okdb-app-bg-deep);\x20cursor:pointer;\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20>Engines</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x20min-width:200px;\x20flex:1;\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>Search</span>\x0a\x20\x20\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22search\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20@input:debounce.200=\x22setSearchTerm($event.target.value)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:placeholder=\x22mode\x20===\x20\x27engines\x27\x20?\x20\x27Search\x20engines…\x27\x20:\x20\x27Search\x20pipelines…\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20style=\x22width:100%;\x20box-sizing:border-box;\x22\x0a\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20</label>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x20min-width:150px;\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>Status</span>\x0a\x20\x20\x20\x20\x20\x20<select\x20@change=\x22setStatusFilter($event.target.value)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22all\x22\x20:selected=\x22status\x20===\x20\x27all\x27\x22>Any</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22running\x22\x20:selected=\x22status\x20===\x20\x27running\x27\x22>Running</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22attention\x22\x20:selected=\x22status\x20===\x20\x27attention\x27\x22>Needs\x20attention</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22stopped\x22\x20:selected=\x22status\x20===\x20\x27stopped\x27\x22>Stopped</option>\x0a\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20</label>\x0a\x0a\x20\x20\x20\x20<if\x20:=\x22mode\x20===\x20\x27engines\x27\x20&&\x20availableEngineTypes.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20<label\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x20min-width:170px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>Engine\x20Type</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<select\x20@change=\x22setEngineTypeFilter($event.target.value)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22\x20:selected=\x22!engineType\x22>All\x20engines</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22availableEngineTypes\x22\x20let:item=\x22engineKind\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22engineKind\x22\x20:selected=\x22engineType\x20===\x20engineKind\x22>{{\x20engineKind\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20</label>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<if\x20:=\x22embedPipelines.length\x20>\x201\x22>\x0a\x20\x20\x20\x20\x20\x20<label\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x20min-width:190px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>Pipeline</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<select\x20@change=\x22updateFocusedPipeline($event.target.value)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22\x22\x20:selected=\x22!focusedPipelineName\x22>All\x20pipelines</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22embedPipelines\x22\x20let:item=\x22pipeline\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20:value=\x22pipeline.name\x20||\x20pipeline.pipeline\x20||\x20pipeline.storage_key\x22\x20:selected=\x22focusedPipelineName\x20===\x20(pipeline.name\x20||\x20pipeline.pipeline\x20||\x20pipeline.storage_key)\x22>{{\x20pipeline.meta?.label\x20||\x20pipeline.meta?.pipeline\x20||\x20pipeline.pipeline\x20||\x20pipeline.name\x20||\x20pipeline.storage_key\x20}}</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</select>\x0a\x20\x20\x20\x20\x20\x20</label>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<if\x20:=\x22focusedPipelineName\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22updateFocusedPipeline(\x27\x27)\x22\x20style=\x22font-size:11px;\x20padding:4px\x2010px;\x22>Clear\x20focus</button>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<if\x20:=\x22search\x20||\x20status\x20!==\x20\x27all\x27\x20||\x20engineType\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22clearFilters()\x22\x20style=\x22font-size:11px;\x20padding:4px\x2010px;\x22>Clear\x20filters</button>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20</div>\x0a\x0a\x20\x20<if\x20:=\x22error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22color:var(--okdb-danger);\x20font-size:12px;\x20padding:8px;\x20border:1px\x20solid\x20var(--okdb-danger);\x20border-radius:6px;\x22>{{\x20error\x20}}</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22!busy\x20&&\x20!hasWorkspaceData\x20&&\x20!error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22padding:22px\x2020px;\x20background:#111a1f;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20display:flex;\x20flex-direction:column;\x20gap:8px;\x20align-items:center;\x20text-align:center;\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:30px;\x20opacity:.22;\x22>⊛</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:14px;\x20font-weight:600;\x20opacity:.75;\x22>No\x20engines\x20for\x20{{\x20sourceType\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.5;\x20line-height:1.7;\x20max-width:500px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20This\x20is\x20the\x20same\x20engines\x20workspace,\x20already\x20scoped\x20to\x20this\x20type.\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22openCreatePipeline()\x22\x20style=\x22background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2013%,\x20transparent);\x20border-color:var(--okdb-accent);\x20color:var(--okdb-accent);\x20font-weight:600;\x20padding:6px\x2014px;\x20font-size:12px;\x22>+\x20Create\x20Pipeline</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22busy\x20&&\x20!hasWorkspaceData\x20&&\x20!error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.45;\x20padding:8px\x200;\x22>Loading…</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22hasWorkspaceData\x22>\x0a\x20\x20\x20\x20<engines-overview\x0a\x20\x20\x20\x20\x20\x20embedded=\x22true\x22\x0a\x20\x20\x20\x20\x20\x20filterpipeline=\x22true\x22\x0a\x20\x20\x20\x20\x20\x20:embed-engines=\x22embedEngines\x22\x0a\x20\x20\x20\x20\x20\x20:embed-pipelines=\x22embedPipelines\x22\x0a\x20\x20\x20\x20\x20\x20:file-engines=\x22emptyFileEngines\x22\x0a\x20\x20\x20\x20\x20\x20:mode=\x22mode\x22\x0a\x20\x20\x20\x20\x20\x20pipelinetype=\x22all\x22\x0a\x20\x20\x20\x20\x20\x20:enginetype=\x22engineType\x22\x0a\x20\x20\x20\x20\x20\x20:status=\x22status\x22\x0a\x20\x20\x20\x20\x20\x20:search=\x22search\x22\x0a\x20\x20\x20\x20\x20\x20:sourcetype=\x22sourceType\x22\x0a\x20\x20\x20\x20\x20\x20:selectedpipeline=\x22focusedPipelineName\x22\x0a\x20\x20\x20\x20\x20\x20@select=\x22handleOverviewSelect($event.detail)\x22\x0a\x20\x20\x20\x20\x20\x20@refresh=\x22load()\x22\x0a\x20\x20\x20\x20\x20\x20@goto-type=\x22goToType($event.detail)\x22\x0a\x20\x20\x20\x20/>\x0a\x20\x20</if>\x0a\x0a</div>'};