@kedem/okdb 1.0.0
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.
- package/LICENSE +57 -0
- package/README.md +344 -0
- package/banner.jpg +0 -0
- package/bin/okdb.js +2 -0
- package/docs/OKDB-ARCHITECTURE.md +1036 -0
- package/docs/auth-and-sync.md +558 -0
- package/docs/auth-permissions.md +143 -0
- package/docs/change-log.md +169 -0
- package/docs/data-model.md +174 -0
- package/docs/embeddings.md +338 -0
- package/docs/files.md +131 -0
- package/docs/fts.md +139 -0
- package/docs/functions.md +514 -0
- package/docs/getting-started.md +233 -0
- package/docs/http-api.md +705 -0
- package/docs/index.md +115 -0
- package/docs/indexes.md +207 -0
- package/docs/logging.md +116 -0
- package/docs/manifest.json +38 -0
- package/docs/migration.md +154 -0
- package/docs/pipelines.md +598 -0
- package/docs/plugins.md +144 -0
- package/docs/querying.md +204 -0
- package/docs/queue.md +637 -0
- package/docs/sync.md +156 -0
- package/docs/transactions.md +140 -0
- package/docs/ttl.md +375 -0
- package/okdb.js +1 -0
- package/package.json +26 -0
- package/public/admin-app.js +1 -0
- package/public/android-chrome-192x192.png +0 -0
- package/public/android-chrome-512x512.png +0 -0
- package/public/apple-touch-icon.png +0 -0
- package/public/components/admin-route-host.ok.js +1 -0
- package/public/components/env-picker.ok.js +1 -0
- package/public/components/field-path-input.ok.js +1 -0
- package/public/components/field.html +6 -0
- package/public/components/geo-map.ok.js +1 -0
- package/public/components/ok-cron-input.ok.js +1 -0
- package/public/components/ok-dropzone.ok.js +1 -0
- package/public/components/ok-js-input.ok.js +1 -0
- package/public/components/ok-json-input.ok.js +1 -0
- package/public/components/ok-text-monaco-input.ok.js +1 -0
- package/public/components/theme-toggle.ok.js +1 -0
- package/public/favicon-16x16.png +0 -0
- package/public/favicon-32x32.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/images/logo.png +0 -0
- package/public/images/logo.svg +333 -0
- package/public/index.html +6 -0
- package/public/layouts/_default.ok.html +1 -0
- package/public/layouts/okdb-cube.ok.html +1 -0
- package/public/login-app.js +1 -0
- package/public/login.html +1 -0
- package/public/modules/ok.js +1 -0
- package/public/sections/api/index.ok.html +1 -0
- package/public/sections/api/parts/api-endpoint.ok.js +1 -0
- package/public/sections/auth/index.ok.html +1 -0
- package/public/sections/auth/modals/create-token-modal.ok.js +1 -0
- package/public/sections/auth/modals/edit-token-modal.ok.js +1 -0
- package/public/sections/auth/modals/perm-info-popover.ok.js +1 -0
- package/public/sections/auth/parts/token-detail.ok.js +1 -0
- package/public/sections/auth/parts/token-list.ok.js +1 -0
- package/public/sections/db/index.ok.html +1 -0
- package/public/sections/db/modals/add-item-modal.ok.js +1 -0
- package/public/sections/db/modals/create-env-modal.ok.js +1 -0
- package/public/sections/db/modals/create-fts-modal.ok.js +1 -0
- package/public/sections/db/modals/create-index-modal.ok.js +1 -0
- package/public/sections/db/modals/create-pipeline-modal.ok.js +1 -0
- package/public/sections/db/modals/demo-env-modal.ok.js +1 -0
- package/public/sections/db/modals/remove-env-modal.ok.js +1 -0
- package/public/sections/db/modals/schema-edit-modal.ok.js +1 -0
- package/public/sections/db/parts/db-overview.ok.js +1 -0
- package/public/sections/db/parts/db-pipelines-panel.ok.js +1 -0
- package/public/sections/db/parts/edit-row.ok.js +1 -0
- package/public/sections/db/parts/tm-timeline.ok.js +1 -0
- package/public/sections/db/parts/type-changelog.ok.js +1 -0
- package/public/sections/db/parts/type-list.ok.js +1 -0
- package/public/sections/db/parts/type-pipelines-tab.ok.js +1 -0
- package/public/sections/db/parts/type-schema-tab.ok.js +1 -0
- package/public/sections/db/parts/type-viewer.ok.js +1 -0
- package/public/sections/db/parts/type-violations-tab.ok.js +1 -0
- package/public/sections/docs/index.ok.html +1 -0
- package/public/sections/embeddings/index.ok.html +1 -0
- package/public/sections/embeddings/modals/register-model-modal.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-create-panel.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-embedder-panel.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-engine-declaration-editor.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-engine-list.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-indexer-panel.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-lifecycle-bar.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-model-catalog.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-overview.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-search-panel.ok.js +1 -0
- package/public/sections/embeddings/parts/embed-worker-panel.ok.js +1 -0
- package/public/sections/embeddings/parts/embeddings-engine-panel.ok.js +1 -0
- package/public/sections/embeddings/parts/engines-overview.ok.js +1 -0
- package/public/sections/embeddings/parts/pipeline-create-panel.ok.js +1 -0
- package/public/sections/engines/engine-panel-shared-style.js +1 -0
- package/public/sections/engines/engine-ui-utils.js +1 -0
- package/public/sections/engines/index.ok.html +1 -0
- package/public/sections/engines/modals/engine-modal.ok.js +1 -0
- package/public/sections/engines/parts/engine-declaration-editor.ok.js +1 -0
- package/public/sections/engines/parts/engine-lifecycle-actions.ok.js +1 -0
- package/public/sections/engines/parts/engine-panel-shell.ok.js +1 -0
- package/public/sections/engines/parts/engine-resource-card.ok.js +1 -0
- package/public/sections/engines/parts/engine-row-item.ok.js +1 -0
- package/public/sections/engines/parts/generic-engine-panel.ok.js +1 -0
- package/public/sections/files/index.ok.html +1 -0
- package/public/sections/files/parts/files-blob-status.ok.js +1 -0
- package/public/sections/files/parts/files-collection-list.ok.js +1 -0
- package/public/sections/files/parts/files-collection-panel.ok.js +1 -0
- package/public/sections/files/parts/files-file-list.ok.js +1 -0
- package/public/sections/files/parts/files-overview.ok.js +1 -0
- package/public/sections/files/parts/files-path-browser.ok.js +1 -0
- package/public/sections/files/parts/files-upload-panel.ok.js +1 -0
- package/public/sections/functions/index.ok.html +1 -0
- package/public/sections/functions/modals/function-modal.ok.js +1 -0
- package/public/sections/functions/parts/function-detail.ok.js +1 -0
- package/public/sections/functions/parts/function-logs.ok.js +1 -0
- package/public/sections/functions/parts/function-runner.ok.js +1 -0
- package/public/sections/functions/parts/functions-list.ok.js +1 -0
- package/public/sections/license/index.ok.html +1 -0
- package/public/sections/license/parts/license-panel.ok.js +1 -0
- package/public/sections/processors/index.ok.html +1 -0
- package/public/sections/queue/index.ok.html +1 -0
- package/public/sections/queue/modals/create-bucket-modal.ok.js +1 -0
- package/public/sections/queue/modals/edit-bucket-modal.ok.js +1 -0
- package/public/sections/queue/modals/edit-job-modal.ok.js +1 -0
- package/public/sections/queue/modals/enqueue-job-modal.ok.js +1 -0
- package/public/sections/queue/modals/job-type-modal.ok.js +1 -0
- package/public/sections/queue/parts/ok-job-form.ok.js +1 -0
- package/public/sections/queue/parts/queue-buckets.ok.js +1 -0
- package/public/sections/queue/parts/queue-job-types.ok.js +1 -0
- package/public/sections/queue/parts/queue-jobs.ok.js +1 -0
- package/public/sections/queue/parts/queue-types.ok.js +1 -0
- package/public/sections/queue/parts/queue-workers.ok.js +1 -0
- package/public/sections/sync/index.ok.html +5 -0
- package/public/sections/sync/parts/sync-node-detail.ok.js +1 -0
- package/public/sections/sync/parts/sync-retention.ok.js +1 -0
- package/public/sections/sync/parts/sync-topology.ok.js +1 -0
- package/public/sections/system/index.ok.html +1 -0
- package/public/sections/system/modals/data-ops-modal.ok.js +1 -0
- package/public/sections/system/parts/system-api-panel.ok.js +1 -0
- package/public/sections/system/parts/system-auth-panel.ok.js +1 -0
- package/public/sections/system/parts/system-log-history.ok.js +1 -0
- package/public/sections/system/parts/system-log.ok.js +1 -0
- package/public/sections/system/parts/system-status.ok.js +1 -0
- package/public/sections/system/parts/system-sync-panel.ok.js +1 -0
- package/public/sections/views/index.ok.html +1 -0
- package/public/sections/views/modals/create-view-modal.ok.js +1 -0
- package/public/sections/views/parts/view-detail.ok.js +1 -0
- package/public/sections/views/parts/views-list.ok.js +1 -0
- package/public/sections/views/parts/views-overview.ok.js +1 -0
- package/public/setup-app.js +1 -0
- package/public/setup.html +1 -0
- package/public/site.webmanifest +1 -0
- package/public/stores/auth-store.js +1 -0
- package/public/stores/events-store.js +1 -0
- package/public/stores/functions-store.js +1 -0
- package/public/stores/okdb-store.js +1 -0
- package/public/stores/theme-store.js +1 -0
- package/public/styles.css +1 -0
- package/public/test-cron-input.html +10 -0
- package/public/test-json-input.html +101 -0
- package/public/util/permissions.js +1 -0
- package/public/util/sift-schema.js +1 -0
- package/public/vendor/okjs/ok.esm.min.js +2 -0
- package/public/vendor/okjs/toolkit/behavior/async.ok.js +1 -0
- package/public/vendor/okjs/toolkit/components/ok-chart.ok.js +1 -0
- package/public/vendor/okjs/toolkit/components/ok-doc-viewer.ok.js +1 -0
- package/public/vendor/okjs/toolkit/components/ok-marked.ok.js +1 -0
- package/public/vendor/okjs/toolkit/components/ok-monaco.ok.js +1 -0
- package/public/vendor/okjs/toolkit/core/ok-layer-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/core/ok-layer.ok.js +1 -0
- package/public/vendor/okjs/toolkit/core/ok-overlay.ok.js +1 -0
- package/public/vendor/okjs/toolkit/core/ok-sandbox.ok.js +1 -0
- package/public/vendor/okjs/toolkit/core/transition.ok.js +1 -0
- package/public/vendor/okjs/toolkit/core/virtualized.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-console-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-console.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-inspector-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-inspector.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-js-tree.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-timeline-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/devtools/ok-timeline.ok.js +1 -0
- package/public/vendor/okjs/toolkit/docs/doc-viewer.ok.js +1 -0
- package/public/vendor/okjs/toolkit/editor/ok-live-component.ok.js +1 -0
- package/public/vendor/okjs/toolkit/editor/ok-live-example.ok.js +1 -0
- package/public/vendor/okjs/toolkit/editor/ok-live-shell.ok.js +1 -0
- package/public/vendor/okjs/toolkit/elements/ok-dropdown.ok.js +1 -0
- package/public/vendor/okjs/toolkit/elements/ok-icon.ok.js +1 -0
- package/public/vendor/okjs/toolkit/elements/ok-select.ok.js +1 -0
- package/public/vendor/okjs/toolkit/elements/ok-table.ok.js +1 -0
- package/public/vendor/okjs/toolkit/errors/ok-crash-boundary.ok.js +1 -0
- package/public/vendor/okjs/toolkit/errors/ok-crash-info.ok.js +1 -0
- package/public/vendor/okjs/toolkit/i18n/i18n-editor-examples.ok.js +1 -0
- package/public/vendor/okjs/toolkit/i18n/i18n-editor.ok.js +1 -0
- package/public/vendor/okjs/toolkit/i18n/i18n-key-editor-tips.ok.js +1 -0
- package/public/vendor/okjs/toolkit/i18n/i18n-key-editor.ok.js +1 -0
- package/public/vendor/okjs/toolkit/i18n/i18n-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/i18n/ok-i18n.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-contextmenu.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-dismiss-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-draggable.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-flyover-panel.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-flyover.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-highlight-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-highlight.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-hotkeys-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-picker-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-popout-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-popout.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-portal-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/interaction/ok-submenu.ok.js +1 -0
- package/public/vendor/okjs/toolkit/layout/ok-resizer.ok.js +1 -0
- package/public/vendor/okjs/toolkit/manifest.js +1 -0
- package/public/vendor/okjs/toolkit/modals/ok-modal-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/modals/ok-modal.ok.js +1 -0
- package/public/vendor/okjs/toolkit/modals/ok-toast-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/modals/ok-window.ok.js +1 -0
- package/public/vendor/okjs/toolkit/navigation/hash-router.ok.js +1 -0
- package/public/vendor/okjs/toolkit/navigation/history-router.ok.js +1 -0
- package/public/vendor/okjs/toolkit/navigation/router.ok.js +1 -0
- package/public/vendor/okjs/toolkit/sync/reactive-sync-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/sync/reactive-sync.js +1 -0
- package/public/vendor/okjs/toolkit/theming/blocks/ok-design-button.css.js +1 -0
- package/public/vendor/okjs/toolkit/theming/blocks/ok-design-input.css.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-design-style.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-design-vars.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-design.ok.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-input.ok.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-service.ok.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-style.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-utils.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-variable.ok.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-vm.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor.ok.js +1 -0
- package/public/vendor/okjs/toolkit/theming/ok-theme.ok.js +1 -0
- package/public/view-models/type-query-vm.js +1 -0
- package/types/environment.d.ts +130 -0
- package/types/errors.d.ts +98 -0
- package/types/features/admin.d.ts +4 -0
- package/types/features/api.d.ts +18 -0
- package/types/features/auth.d.ts +31 -0
- package/types/features/embeddings.d.ts +39 -0
- package/types/features/engines.d.ts +23 -0
- package/types/features/files.d.ts +29 -0
- package/types/features/fts.d.ts +25 -0
- package/types/features/functions.d.ts +23 -0
- package/types/features/mcp.d.ts +17 -0
- package/types/features/pipelines.d.ts +19 -0
- package/types/features/queue.d.ts +189 -0
- package/types/features/sync.d.ts +34 -0
- package/types/features/time-machine.d.ts +32 -0
- package/types/features/views.d.ts +16 -0
- package/types/index.d.ts +153 -0
- package/types/options.d.ts +202 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x21c942=_0x3d1b;(function(_0x5c126e,_0x2219e6){const _0x1cc2db=_0x3d1b,_0x3292e2=_0x5c126e();while(!![]){try{const _0x3e7437=parseInt(_0x1cc2db(0x72))/0x1+parseInt(_0x1cc2db(0x84))/0x2*(-parseInt(_0x1cc2db(0x77))/0x3)+-parseInt(_0x1cc2db(0x9f))/0x4+-parseInt(_0x1cc2db(0x8c))/0x5*(-parseInt(_0x1cc2db(0xab))/0x6)+parseInt(_0x1cc2db(0x6e))/0x7+-parseInt(_0x1cc2db(0x9b))/0x8+-parseInt(_0x1cc2db(0xa6))/0x9*(-parseInt(_0x1cc2db(0xa2))/0xa);if(_0x3e7437===_0x2219e6)break;else _0x3292e2['push'](_0x3292e2['shift']());}catch(_0x19ba67){_0x3292e2['push'](_0x3292e2['shift']());}}}(_0x50c6,0x4f2a9));function _0x3d1b(_0xb42faa,_0x2572f7){_0xb42faa=_0xb42faa-0x6e;const _0x50c61a=_0x50c6();let _0x3d1bc1=_0x50c61a[_0xb42faa];return _0x3d1bc1;}import _0x11b90e,{ALL_EVENTS as _0x59782f}from'../../../stores/events-store.js';const t={'info':_0x21c942(0x90),'warn':_0x21c942(0x7b),'error':'var(--okdb-danger)','debug':_0x21c942(0x89)},n={'engine':_0x21c942(0x90),'type':'var(--okdb-purple)','index':_0x21c942(0x7b),'embeddings':_0x21c942(0x9c),'system':'var(--okdb-success)','sync':_0x21c942(0x81),'queue':_0x21c942(0xa7),'processor':'#f472b6','fts':_0x21c942(0xa1),'env':_0x21c942(0x8d),'txn':_0x21c942(0x89),'item':'var(--okdb-app-fg)','relay':_0x21c942(0x82)};Object[_0x21c942(0xa5)](n);export default{'tag':_0x21c942(0x7d),'attr':{'initialSource':{}},'context':_0x20e78a=>({'source':_0x20e78a[_0x21c942(0x73)]['initialSource']||_0x21c942(0x80),'eventNs':null,'level':null,'feature':null,'env':null,'search':'','autoScroll':!0x0,'_listRef':null,'_unsubs':[],get 'connected'(){return _0x11b90e['connected'];},get 'streamError'(){return _0x11b90e['error'];},get 'entries'(){const _0x6076d7=_0x21c942;let _0x347563=_0x11b90e[_0x6076d7(0x8b)];if(_0x6076d7(0x96)===this[_0x6076d7(0x71)]&&(_0x347563=_0x347563[_0x6076d7(0xa0)](_0x3b7e3e=>'log'===_0x3b7e3e['_kind'])),_0x6076d7(0x8e)===this['source']&&(_0x347563=_0x347563[_0x6076d7(0xa0)](_0x30b501=>_0x6076d7(0x8e)===_0x30b501['_kind'])),this[_0x6076d7(0x79)]&&_0x6076d7(0x96)!==this[_0x6076d7(0x71)]&&(_0x347563=_0x347563[_0x6076d7(0xa0)](_0x4d5ea3=>_0x6076d7(0x8e)!==_0x4d5ea3[_0x6076d7(0xa9)]||(_0x4d5ea3[_0x6076d7(0x86)]??'')['startsWith'](this[_0x6076d7(0x79)]+':'))),this['level']&&_0x6076d7(0x8e)!==this[_0x6076d7(0x71)]&&(_0x347563=_0x347563[_0x6076d7(0xa0)](_0x3d8d20=>_0x6076d7(0x96)!==_0x3d8d20[_0x6076d7(0xa9)]||_0x3d8d20[_0x6076d7(0x85)]===this[_0x6076d7(0x85)])),this[_0x6076d7(0x94)]&&'event'!==this[_0x6076d7(0x71)]&&(_0x347563=_0x347563[_0x6076d7(0xa0)](_0x17ca5e=>'log'!==_0x17ca5e[_0x6076d7(0xa9)]||_0x17ca5e[_0x6076d7(0xaa)]?.['feature']===this[_0x6076d7(0x94)])),this['env']&&_0x6076d7(0x8e)!==this['source']&&(_0x347563=_0x347563[_0x6076d7(0xa0)](_0x29e5f4=>_0x6076d7(0x96)!==_0x29e5f4[_0x6076d7(0xa9)]||_0x29e5f4[_0x6076d7(0xaa)]?.['env']===this[_0x6076d7(0x99)])),this['search']){const _0x3e493e=this[_0x6076d7(0x7f)][_0x6076d7(0xa4)]();_0x347563=_0x347563[_0x6076d7(0xa0)](_0xe152ce=>_0x6076d7(0x96)===_0xe152ce[_0x6076d7(0xa9)]?(_0xe152ce['msg']??'')['toLowerCase']()['includes'](_0x3e493e)||this[_0x6076d7(0x70)](_0xe152ce[_0x6076d7(0x7c)])[_0x6076d7(0xa4)]()['includes'](_0x3e493e)||this[_0x6076d7(0x70)](_0xe152ce[_0x6076d7(0xaa)])['toLowerCase']()[_0x6076d7(0x6f)](_0x3e493e):_0x6076d7(0x8e)===_0xe152ce[_0x6076d7(0xa9)]&&((_0xe152ce[_0x6076d7(0x86)]??'')[_0x6076d7(0xa4)]()[_0x6076d7(0x6f)](_0x3e493e)||this[_0x6076d7(0x9d)](_0xe152ce)[_0x6076d7(0xa4)]()[_0x6076d7(0x6f)](_0x3e493e)));}return _0x347563;},get 'totalCount'(){const _0x133fba=_0x21c942;return _0x11b90e['activity'][_0x133fba(0x76)];},get 'filteredCount'(){const _0x7fcdd4=_0x21c942;return this['entries'][_0x7fcdd4(0x76)];},get 'hasFeatures'(){const _0xcf26f3=_0x21c942;return _0x11b90e[_0xcf26f3(0x8b)][_0xcf26f3(0x93)](_0x3d04a1=>_0xcf26f3(0x96)===_0x3d04a1[_0xcf26f3(0xa9)]&&_0x3d04a1[_0xcf26f3(0xaa)]?.['feature']);},get 'featureList'(){const _0x248569=_0x21c942;return[...new Set(_0x11b90e['activity'][_0x248569(0xa0)](_0x65bec5=>_0x248569(0x96)===_0x65bec5[_0x248569(0xa9)]&&_0x65bec5[_0x248569(0xaa)]?.[_0x248569(0x94)])[_0x248569(0x78)](_0x2c175d=>_0x2c175d['meta'][_0x248569(0x94)]))][_0x248569(0x7a)]();},get 'hasEnvs'(){const _0x44ec30=_0x21c942;return _0x11b90e[_0x44ec30(0x8b)][_0x44ec30(0x93)](_0x2e5b46=>'log'===_0x2e5b46[_0x44ec30(0xa9)]&&_0x2e5b46[_0x44ec30(0xaa)]?.[_0x44ec30(0x99)]);},get 'envList'(){const _0x4bc102=_0x21c942;return[...new Set(_0x11b90e[_0x4bc102(0x8b)][_0x4bc102(0xa0)](_0x36dda1=>_0x4bc102(0x96)===_0x36dda1[_0x4bc102(0xa9)]&&_0x36dda1['meta']?.[_0x4bc102(0x99)])[_0x4bc102(0x78)](_0x2e8a1d=>_0x2e8a1d[_0x4bc102(0xaa)][_0x4bc102(0x99)]))]['sort']();},'setSource'(_0x122a00){const _0x1fa20d=_0x21c942;this[_0x1fa20d(0x71)]=_0x122a00,_0x1fa20d(0x96)===_0x122a00&&(this[_0x1fa20d(0x79)]=null),_0x1fa20d(0x8e)===_0x122a00&&(this[_0x1fa20d(0x85)]=null,this[_0x1fa20d(0x94)]=null,this['env']=null);},'toggleNs'(_0x50990a){const _0x150686=_0x21c942;this[_0x150686(0x79)]=this[_0x150686(0x79)]===_0x50990a?null:_0x50990a;},'toggleLevel'(_0x154b6c){const _0x1e385e=_0x21c942;this[_0x1e385e(0x85)]=this['level']===_0x154b6c?null:_0x154b6c;},'toggleFeature'(_0xa4c4d5){const _0x1adf09=_0x21c942;this['feature']=this[_0x1adf09(0x94)]===_0xa4c4d5?null:_0xa4c4d5;},'toggleEnv'(_0x56718d){const _0xf2eadc=_0x21c942;this['env']=this[_0xf2eadc(0x99)]===_0x56718d?null:_0x56718d;},'clear'(){_0x11b90e['clearActivity']();},'scrollToBottom'(){const _0x40b79e=this['_listRef'];_0x40b79e&&requestAnimationFrame(()=>{const _0x269bce=_0x3d1b;_0x40b79e[_0x269bce(0x8f)]=_0x40b79e[_0x269bce(0x83)];});},'levelColor':_0xe70697=>t[_0xe70697]??'#ccc','nsColor':_0x2f5387=>function(_0x1d33aa){const _0x4fafa4=_0x21c942,_0x1fd7c3=(_0x1d33aa||'')['split'](':')[0x0];return n[_0x1fd7c3]??_0x4fafa4(0x89);}(_0x2f5387),'fmtTime'(_0x2b3a00){const _0x12f0f3=_0x21c942;if(!_0x2b3a00)return'';const _0x14febf=new Date(_0x2b3a00);return _0x14febf[_0x12f0f3(0x88)]()['slice'](0x0,0x8)+'.'+String(_0x14febf[_0x12f0f3(0xa8)]())[_0x12f0f3(0x97)](0x3,'0');},'_metaStr'(_0x613981){const _0x5009de=_0x21c942;if(null==_0x613981)return'';if('string'==typeof _0x613981)return _0x613981;try{return JSON[_0x5009de(0xac)](_0x613981);}catch{return String(_0x613981);}},'fmtMeta'(_0x595924){return this['_metaStr'](_0x595924);},'_payloadStr'(_0x5d6839){const _0x7b65a=_0x21c942;if(_0x5d6839[_0x7b65a(0x92)])return _0x5d6839[_0x7b65a(0x92)];if(_0x5d6839['type'])return _0x5d6839[_0x7b65a(0x8a)];if(_0x5d6839[_0x7b65a(0x75)])return _0x5d6839['pipeline'];if(_0x5d6839['key'])return _0x5d6839[_0x7b65a(0x91)];const _0x42fbe4=new Set([_0x7b65a(0xa9),_0x7b65a(0x86),'_ts','ts']),_0x4720dd=[];for(const [_0x20ce3b,_0x592a52]of Object[_0x7b65a(0x95)](_0x5d6839)){if(_0x42fbe4[_0x7b65a(0x98)](_0x20ce3b))continue;const _0x379c20=_0x7b65a(0x74)==typeof _0x592a52?JSON['stringify'](_0x592a52):String(_0x592a52);if(_0x4720dd['push'](_0x20ce3b+':'+_0x379c20),_0x4720dd[_0x7b65a(0x76)]>=0x2)break;}return _0x4720dd[_0x7b65a(0x87)]('\x20\x20');},'fmtPayload'(_0x116271){const _0x127ba7=_0x21c942;return this[_0x127ba7(0x9d)](_0x116271);}}),'mount'(){const _0xffc6d=_0x21c942,_0x41e86e=['log',..._0x59782f][_0xffc6d(0x78)](_0x2f278a=>_0x11b90e['on'](_0x2f278a,()=>{const _0x2ea105=_0xffc6d;this[_0x2ea105(0x9a)]&&this['scrollToBottom']();}));this[_0xffc6d(0xa3)]=_0x41e86e,this[_0xffc6d(0x9a)]&&this[_0xffc6d(0x7e)]();},'unmount'(){const _0x355020=_0x21c942;for(const _0x22bf2b of this[_0x355020(0xa3)])_0x22bf2b();this['_unsubs']=[];},'template':_0x21c942(0x9e),'style':'@keyframes\x20dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.syslog{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--okdb-app-bg-deep);border-radius:12px;overflow:hidden;border:1px\x20solid\x20var(--okdb-app-border)}.syslog__toolbar{display:flex;align-items:center;gap:6px;padding:7px\x2010px;background:var(--okdb-app-surface);border-bottom:1px\x20solid\x20var(--okdb-app-border);flex-shrink:0;flex-wrap:wrap}.syslog__toolbar--sub{padding:5px\x2010px;background:var(--okdb-app-bg-deep);border-bottom:1px\x20solid\x20var(--okdb-app-surface)}.syslog__title{font-weight:600;font-size:13px;white-space:nowrap;margin-right:2px}.syslog__sublabel{font-size:10px;opacity:.45;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;width:60px;flex-shrink:0}.syslog__spacer{flex:1}.syslog__pills{display:flex;gap:3px;flex-wrap:wrap}.syslog__search{background:var(--okdb-app-border);border:1px\x20solid\x20var(--okdb-app-border-strong);border-radius:6px;color:var(--okdb-warning);padding:3px\x208px;font-size:12px;width:110px;outline:0}.syslog__search:focus{border-color:var(--okdb-accent)}.pill,.syslog__count{font-size:11px;white-space:nowrap}.syslog__count{opacity:.4}.pill{border:1px\x20solid\x20var(--okdb-app-border);background:0\x200;padding:2px\x209px;border-radius:999px;cursor:pointer;color:var(--okdb-app-fg-faint);transition:border-color\x20.12s,color\x20.12s,background\x20.12s}.pill:hover{border-color:var(--okdb-app-fg-muted);color:var(--okdb-app-fg-muted)}.pill--on{border-color:var(--okdb-accent);background:var(--okdb-app-surface-2)}.pill--log,.pill--on{color:var(--okdb-accent)}.pill--event{color:var(--okdb-purple)}.syslog__list{flex:1;overflow-y:auto;font-family:monospace;font-size:12px;padding:2px\x200;min-height:0}.syslog__row{display:flex;gap:8px;padding:2px\x2010px;border-bottom:1px\x20solid\x20var(--okdb-app-bg-deep);align-items:baseline;min-height:20px}.syslog__row--event,.syslog__row:hover{background:var(--okdb-app-surface)}.syslog__row--event:hover{background:var(--okdb-app-surface-2)}.syslog__ts{color:var(--okdb-app-fg-muted);flex-shrink:0;font-size:11px;user-select:none;width:86px}.syslog__level{width:40px;flex-shrink:0;font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.syslog__evtag{flex-shrink:0;font-size:10px;padding:1px\x206px;border-radius:4px;border:1px\x20solid;white-space:nowrap;letter-spacing:.02em}.syslog__msg{flex:1;white-space:pre-wrap;word-break:break-word;color:var(--okdb-app-fg);min-width:0}.syslog__meta,.syslog__msg--dim{color:var(--okdb-app-fg-muted)}.syslog__meta{font-size:11px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;cursor:default}.syslog__empty{padding:24px\x2014px;opacity:.4;font-style:italic;font-size:12px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.dot--on{background:var(--okdb-success);box-shadow:0\x200\x205px\x20color-mix(in\x20srgb,var(--okdb-success)\x2040%,transparent);animation:dot-pulse\x202s\x20ease-in-out\x20infinite}.dot--off{background:var(--okdb-danger)}'};function _0x50c6(){const _0x2810a4=['5uhTbKU','#67e8f9','event','scrollTop','var(--okdb-accent)','key','engine','some','feature','entries','log','padStart','has','env','autoScroll','3306936LrduYL','#2dd4bf','_payloadStr','\x0a<div\x20class=\x22syslog\x22>\x0a\x0a\x20\x20<!--\x20Toolbar\x20row\x201:\x20title\x20+\x20source\x20toggle\x20+\x20search\x20+\x20controls\x20-->\x0a\x20\x20<div\x20class=\x22syslog__toolbar\x22>\x0a\x20\x20\x20\x20<span\x20class=\x22syslog__title\x22>Activity</span>\x0a\x0a\x20\x20\x20\x20<!--\x20Source\x20pills\x20-->\x0a\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22setSource(\x27all\x27)\x22\x20\x20\x20:class=\x22source===\x27all\x27\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>All</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22setSource(\x27log\x27)\x22\x20\x20\x20:class=\x22source===\x27log\x27\x20\x20\x20?\x20\x27pill\x20pill--on\x20pill--log\x27\x20\x20\x20:\x20\x27pill\x20pill--log\x27\x22>Logs</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22setSource(\x27event\x27)\x22\x20:class=\x22source===\x27event\x27\x20?\x20\x27pill\x20pill--on\x20pill--event\x27\x20:\x20\x27pill\x20pill--event\x27\x22>Events</button>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<div\x20class=\x22syslog__spacer\x22></div>\x0a\x0a\x20\x20\x20\x20<!--\x20Search\x20-->\x0a\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20class=\x22syslog__search\x22\x0a\x20\x20\x20\x20\x20\x20type=\x22text\x22\x0a\x20\x20\x20\x20\x20\x20placeholder=\x22Filter…\x22\x0a\x20\x20\x20\x20\x20\x20:value=\x22search\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22search\x20=\x20$event.target.value\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20\x20\x20<!--\x20Auto-scroll\x20-->\x0a\x20\x20\x20\x20<button\x20@click=\x22autoScroll\x20=\x20!autoScroll\x22\x20:class=\x22autoScroll\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20title=\x22Auto-scroll\x20to\x20newest\x22>↓\x20Auto</button>\x0a\x0a\x20\x20\x20\x20<!--\x20Clear\x20-->\x0a\x20\x20\x20\x20<button\x20@click=\x22clear()\x22\x20class=\x22pill\x20syslog__clear\x22>Clear</button>\x0a\x0a\x20\x20\x20\x20<!--\x20Count\x20-->\x0a\x20\x20\x20\x20<span\x20class=\x22syslog__count\x22>\x0a\x20\x20\x20\x20\x20\x20{{\x20filteredCount\x20}}\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22filteredCount\x20!==\x20totalCount\x22>\x20/\x20{{\x20totalCount\x20}}</if>\x0a\x20\x20\x20\x20</span>\x0a\x0a\x20\x20\x20\x20<!--\x20Stream\x20dot\x20-->\x0a\x20\x20\x20\x20<span\x20:class=\x22connected\x20?\x20\x27dot\x20dot--on\x27\x20:\x20\x27dot\x20dot--off\x27\x22\x20:title=\x22connected\x20?\x20\x27Live\x27\x20:\x20(streamError\x20||\x20\x27Disconnected\x27)\x22></span>\x0a\x20\x20</div>\x0a\x0a\x20\x20<!--\x20Toolbar\x20row\x202:\x20secondary\x20filters\x20(level\x20for\x20logs,\x20namespace\x20for\x20events)\x20-->\x0a\x20\x20<if\x20:=\x22source\x20!==\x20\x27event\x27\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22syslog__toolbar\x20syslog__toolbar--sub\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__sublabel\x22>Level</span>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(null)\x22\x20\x20\x20\x20:class=\x22level\x20==\x20null\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>All</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(\x27info\x27)\x22\x20\x20:class=\x22level===\x27info\x27\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-accent)\x22>info</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(\x27warn\x27)\x22\x20\x20:class=\x22level===\x27warn\x27\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-warning)\x22>warn</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(\x27error\x27)\x22\x20:class=\x22level===\x27error\x27\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-danger)\x22>error</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleLevel(\x27debug\x27)\x22\x20:class=\x22level===\x27debug\x27\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-app-fg-muted)\x22>debug</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<if\x20:=\x22hasFeatures\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__toolbar\x20syslog__toolbar--sub\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__sublabel\x22>Feature</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22\x20style=\x22flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleFeature(null)\x22\x20:class=\x22feature\x20==\x20null\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>all</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22featureList\x22\x20let:item=\x22s\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleFeature(s)\x22\x20:class=\x22feature\x20===\x20s\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>{{\x20s\x20}}</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<if\x20:=\x22hasEnvs\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__toolbar\x20syslog__toolbar--sub\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__sublabel\x22>Env</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22\x20style=\x22flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleEnv(null)\x22\x20:class=\x22env\x20==\x20null\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>all</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22envList\x22\x20let:item=\x22e\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleEnv(e)\x22\x20:class=\x22env\x20===\x20e\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>{{\x20e\x20}}</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22source\x20!==\x20\x27log\x27\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22syslog__toolbar\x20syslog__toolbar--sub\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__sublabel\x22>Namespace</span>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__pills\x22\x20style=\x22flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(null)\x22\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs==null\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22>all</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27engine\x27)\x22\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27engine\x27\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-accent)\x22>engine</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27type\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27type\x27\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-purple)\x22>type</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27index\x27)\x22\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27index\x27\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-warning)\x22>index</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27embeddings\x27)\x22\x20\x20:class=\x22eventNs===\x27embeddings\x27\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:#2dd4bf\x22>embeddings</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27system\x27)\x22\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27system\x27\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-success)\x22>system</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27sync\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27sync\x27\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-orange)\x22>sync</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27queue\x27)\x22\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27queue\x27\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-indigo)\x22>queue</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27processor\x27)\x22\x20\x20\x20:class=\x22eventNs===\x27processor\x27\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:#f472b6\x22>processor</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27fts\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27fts\x27\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-success)\x22>fts</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27env\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27env\x27\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:#67e8f9\x22>env</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27txn\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27txn\x27\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-app-fg-muted)\x22>txn</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22toggleNs(\x27item\x27)\x22\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22eventNs===\x27item\x27\x20\x20\x20\x20\x20\x20\x20?\x20\x27pill\x20pill--on\x27\x20:\x20\x27pill\x27\x22\x20style=\x22color:var(--okdb-app-fg)\x22>item</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<!--\x20Activity\x20list\x20-->\x0a\x20\x20<div\x20class=\x22syslog__list\x22\x20:ref=\x22_listRef\x20=\x20$el\x22>\x0a\x0a\x20\x20\x20\x20<if\x20:=\x22entries.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22syslog__empty\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!connected\x22>Connecting\x20to\x20event\x20stream…</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22connected\x20&&\x20totalCount\x20===\x200\x22>No\x20activity\x20yet.</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22connected\x20&&\x20totalCount\x20>\x200\x22>No\x20entries\x20match\x20the\x20current\x20filter.</if>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<each\x20:of=\x22entries\x22\x20let:item=\x22entry\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20:class=\x22entry._kind\x20===\x20\x27event\x27\x20?\x20\x27syslog__row\x20syslog__row--event\x27\x20:\x20\x27syslog__row\x27\x22>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Timestamp\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__ts\x22>{{\x20fmtTime(entry._ts)\x20}}</span>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20LOG\x20entry\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry._kind\x20===\x20\x27log\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__level\x22\x20:style=\x22\x27color:\x27\x20+\x20levelColor(entry.level)\x22>{{\x20entry.level\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__msg\x22>{{\x20entry.msg\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry.meta?.feature\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__meta\x22\x20style=\x22opacity:.6\x22\x20:title=\x22fmtMeta(entry.meta)\x22>{{\x20entry.meta.feature\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry.context\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__meta\x22\x20:title=\x22fmtMeta(entry.context)\x22>{{\x20fmtMeta(entry.context)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20EVENT\x20entry\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry._kind\x20===\x20\x27event\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20class=\x22syslog__evtag\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22\x27color:\x27\x20+\x20nsColor(entry._event)\x20+\x20\x27;\x20border-color:\x27\x20+\x20nsColor(entry._event)\x20+\x20\x2744\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>{{\x20entry._event\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22syslog__msg\x20syslog__msg--dim\x22>{{\x20fmtPayload(entry)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</each>\x0a\x0a\x20\x20</div>\x0a\x0a</div>\x0a','2492124BqpnYJ','filter','var(--okdb-success)','7190kXRWSp','_unsubs','toLowerCase','keys','8172ULOEnK','var(--okdb-indigo)','getMilliseconds','_kind','meta','2761746Atsrkc','stringify','2497516ctqdqb','includes','_metaStr','source','193177pfAkiz','$attr','object','pipeline','length','13959Omqxxz','map','eventNs','sort','var(--okdb-warning)','context','system-log','scrollToBottom','search','all','var(--okdb-orange)','var(--okdb-danger)','scrollHeight','130lUphlu','level','_event','join','toTimeString','var(--okdb-app-fg-muted)','type','activity'];_0x50c6=function(){return _0x2810a4;};return _0x50c6();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x40826f=_0x20f2;function _0x4112(){const _0x55e1b4=['5862024BatYkd','lastPageNumber','\x0a<div\x20class=\x22status-bar\x22>\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>DB ID</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x20status-card__value--mono\x22\x20:title=\x22dbId\x22>{{\x20dbId\x20}}</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>Size</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x22>{{\x20dbSize\x20}}</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>Types</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x22>{{\x20typeCount\x20}}</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>Clock</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x20status-card__value--mono\x22>{{\x20clock\x20}}</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22status-card\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__label\x22>Event Stream</div>\x0a\x20\x20\x20\x20<div\x20class=\x22status-card__value\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20:class=\x22connected\x20?\x20\x27dot\x20dot--on\x27\x20:\x20\x27dot\x20dot--off\x27\x22></span>\x0a\x20\x20\x20\x20\x20\x20{{\x20connected\x20?\x20\x27Live\x27\x20:\x20(streamError\x20?\x20\x27Reconnecting…\x27\x20:\x20\x27Disconnected\x27)\x20}}\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a</div>\x0a','17278CkfYsw','keys','info','connected','3825585vNmLiC','type:drop','system-status','startsWith','pageSize','index:drop','types','602712fFZAVr','16JHOECW','toFixed','23aoXTEa','length','50828540mfwkBQ','966154iacUlh','error','_unsub','4872368OfELId','system:clock_change','@keyframes\x20pulse{0%,to{opacity:1}50%{opacity:.5}}.status-bar{display:flex;flex-wrap:wrap;gap:10px;flex-shrink:0}.status-card{background:var(--okdb-app-border);border-radius:10px;padding:12px\x2016px;min-width:110px;flex:1}.status-card__label{font-size:11px;opacity:.55;margin-bottom:4px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.status-card__value{font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__value--mono{font-family:monospace;font-size:11px;letter-spacing:.03em}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dot--on{background:var(--okdb-success);box-shadow:0\x200\x206px\x20color-mix(in\x20srgb,var(--okdb-success)\x2040%,transparent);animation:pulse\x202s\x20ease-in-out\x20infinite}.dot--off{background:var(--okdb-danger)}','system:poke','90hAEEPh'];_0x4112=function(){return _0x55e1b4;};return _0x4112();}(function(_0x25955b,_0x228fd6){const _0x1e3d15=_0x20f2,_0x510884=_0x25955b();while(!![]){try{const _0x46f600=-parseInt(_0x1e3d15(0x17f))/0x1*(parseInt(_0x1e3d15(0x18d))/0x2)+-parseInt(_0x1e3d15(0x175))/0x3+-parseInt(_0x1e3d15(0x185))/0x4+parseInt(_0x1e3d15(0x189))/0x5*(-parseInt(_0x1e3d15(0x17c))/0x6)+parseInt(_0x1e3d15(0x182))/0x7*(-parseInt(_0x1e3d15(0x17d))/0x8)+parseInt(_0x1e3d15(0x18a))/0x9+parseInt(_0x1e3d15(0x181))/0xa;if(_0x46f600===_0x228fd6)break;else _0x510884['push'](_0x510884['shift']());}catch(_0x5a41b1){_0x510884['push'](_0x510884['shift']());}}}(_0x4112,0xe9e4a));import _0xbb770f from'../../../stores/events-store.js';import _0x432859 from'../../../stores/okdb-store.js';function _0x20f2(_0x450c02,_0x5a1264){_0x450c02=_0x450c02-0x174;const _0x4112a2=_0x4112();let _0x20f207=_0x4112a2[_0x450c02];return _0x20f207;}export default{'tag':_0x40826f(0x177),'context':_0x286423=>({get 'connected'(){const _0x4b9d03=_0x40826f;return _0xbb770f[_0x4b9d03(0x174)];},get 'streamError'(){const _0x475e93=_0x40826f;return _0xbb770f[_0x475e93(0x183)];},get 'dbId'(){return _0x432859['info']?.['id']??'—';},get 'dbSize'(){const _0x3b7d70=_0x40826f,_0x1437d0=_0x432859['info'];if(!_0x1437d0)return'—';const _0x3397e0=(_0x1437d0[_0x3b7d70(0x18b)]??0x0)*(_0x1437d0[_0x3b7d70(0x179)]??0x1000);if(!_0x3397e0)return'—';const _0x15a6fd=['B','KB','MB','GB'];let _0x1926e8=_0x3397e0,_0x2e3173=0x0;for(;_0x1926e8>=0x400&&_0x2e3173<_0x15a6fd[_0x3b7d70(0x180)]-0x1;)_0x1926e8/=0x400,_0x2e3173++;return _0x1926e8[_0x3b7d70(0x17e)](0x1)+'\u00a0'+_0x15a6fd[_0x2e3173];},get 'typeCount'(){const _0x2447b6=_0x40826f,_0x4a7b64=_0x432859[_0x2447b6(0x18f)]?.[_0x2447b6(0x17b)];return _0x4a7b64?Object[_0x2447b6(0x18e)](_0x4a7b64)['filter'](_0xa68515=>!_0xa68515[_0x2447b6(0x178)]('~'))[_0x2447b6(0x180)]:'—';},get 'clock'(){return _0x432859['info']?.['clock']??'—';},'_unsub':null,async '_refresh'(){await _0x432859['reloadInfo']();}}),'mount'(){const _0x280d2c=_0x40826f,_0x2ddfa1=()=>this['_refresh']();this[_0x280d2c(0x184)]=_0xbb770f['on']('type:registered',_0x2ddfa1);const _0x5860c=_0xbb770f['on'](_0x280d2c(0x176),_0x2ddfa1),_0x369daa=_0xbb770f['on']('index:registered',_0x2ddfa1),_0x2865c1=_0xbb770f['on'](_0x280d2c(0x17a),_0x2ddfa1),_0x1c365d=_0xbb770f['on'](_0x280d2c(0x186),_0x2ddfa1),_0xa071=_0xbb770f['on'](_0x280d2c(0x188),_0x2ddfa1),_0x3404ac=this[_0x280d2c(0x184)];this[_0x280d2c(0x184)]=()=>{_0x3404ac(),_0x5860c(),_0x369daa(),_0x2865c1(),_0x1c365d(),_0xa071();};},'unmount'(){const _0x4ed554=_0x40826f;this[_0x4ed554(0x184)]?.();},'template':_0x40826f(0x18c),'style':_0x40826f(0x187)};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x413a(_0x16a2ee,_0x5add5d){_0x16a2ee=_0x16a2ee-0xb4;const _0x1b225e=_0x1b22();let _0x413a42=_0x1b225e[_0x16a2ee];return _0x413a42;}function _0x1b22(){const _0x40de7e=['data','trim','52135dMjnzB','catch','selfClocks','clipboard','44ZJypdM','/sync/info','selfTagList','2120034qHTIMc','20IVoBYf','selfClock','message','4302180kTDplO','map','API','Failed\x20to\x20save\x20node\x20tags','savingSelf','application/json','selfTagsInput','tags','success','1223395rFPuKE','\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;flex-direction:column;gap:14px;height:100%;min-height:0;\x22>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Self-node\x20identity\x20header\x20bar\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selfNode\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;align-items:center;gap:14px;padding:10px\x2014px;background:var(--okdb-app-surface);border:1px\x20solid\x20var(--okdb-app-border);border-radius:10px;flex-shrink:0;flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.45;white-space:nowrap;\x22>This\x20Node</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22display:flex;align-items:center;gap:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22width:7px;height:7px;border-radius:50%;background:var(--okdb-success);flex-shrink:0;\x22></span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-weight:600;font-size:13px;\x22>{{selfNode.name\x20||\x20selfNode.id?.slice(0,8)}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selfNode.id\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-family:monospace;font-size:11px;opacity:.45;cursor:pointer;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22copyText(selfNode.id)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20title=\x22Click\x20to\x20copy\x20full\x20ID\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>{{selfNode.id?.slice(0,14)}}…\x20⎘</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selfClock\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;opacity:.45;\x22>clock:\x20<span\x20style=\x22font-family:monospace;\x22>{{selfClock}}</span></span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selfNode.address\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-family:monospace;font-size:11px;opacity:.45;white-space:nowrap;\x22>{{selfNode.address}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Inline\x20tag\x20editor\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22selfTagsInput\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@input=\x22selfTagsInput\x20=\x20$event.target.value\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@keydown.enter=\x22saveSelfTags()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20placeholder=\x22tags,\x20comma-separated\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-family:monospace;font-size:11px;width:160px;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22saveSelfTags()\x22\x20:disabled=\x22savingSelf\x22\x20style=\x22font-size:11px;padding:3px\x208px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{savingSelf\x20?\x20\x27…\x27\x20:\x20\x27Save\x20tags\x27}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22saveSelfError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;color:var(--okdb-danger);\x22>{{saveSelfError}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Sub-tabs\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;gap:2px;padding:2px;background:var(--okdb-app-surface);border-radius:8px;border:1px\x20solid\x20var(--okdb-app-border);flex-shrink:0;align-self:flex-start;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22tab=\x27topology\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22tab===\x27topology\x27?\x27background:var(--okdb-app-surface-2);color:var(--okdb-accent);border-color:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent);\x27:\x27background:transparent;border-color:transparent;opacity:.7;\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22padding:4px\x2014px;border-radius:6px;font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Topology\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22tab=\x27retention\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22tab===\x27retention\x27?\x27background:var(--okdb-app-surface-2);color:var(--okdb-accent);border-color:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent);\x27:\x27background:transparent;border-color:transparent;opacity:.7;\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22padding:4px\x2014px;border-radius:6px;font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Retention\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22tab\x20===\x20\x27topology\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<sync-topology\x20style=\x22flex:1;min-height:300px;\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22tab\x20===\x20\x27retention\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<sync-retention\x20style=\x22flex:1;min-height:300px;\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20','toast','saveSelfError','81hJxWsS','stringify','selfNode','system-sync-panel','json','clock','writeText','Node\x20tags\x20saved','103593VBEHyg','6yObKxn','node','join','filter','1539852kWEsKl','PATCH','split','5672FyMFlr','33JYITOH','loadSelf'];_0x1b22=function(){return _0x40de7e;};return _0x1b22();}const _0x1d64a0=_0x413a;(function(_0x472cbd,_0xd487b2){const _0x1c2b9b=_0x413a,_0x37064a=_0x472cbd();while(!![]){try{const _0x4f5e3d=parseInt(_0x1c2b9b(0xbc))/0x1*(parseInt(_0x1c2b9b(0xc4))/0x2)+-parseInt(_0x1c2b9b(0xdc))/0x3*(-parseInt(_0x1c2b9b(0xc0))/0x4)+-parseInt(_0x1c2b9b(0xd0))/0x5*(parseInt(_0x1c2b9b(0xdd))/0x6)+-parseInt(_0x1c2b9b(0xc3))/0x7+-parseInt(_0x1c2b9b(0xb7))/0x8*(parseInt(_0x1c2b9b(0xd4))/0x9)+parseInt(_0x1c2b9b(0xc7))/0xa+parseInt(_0x1c2b9b(0xb8))/0xb*(-parseInt(_0x1c2b9b(0xb4))/0xc);if(_0x4f5e3d===_0xd487b2)break;else _0x37064a['push'](_0x37064a['shift']());}catch(_0x2f799a){_0x37064a['push'](_0x37064a['shift']());}}}(_0x1b22,0x5fd4c));import _0x777f2f from'../../sync/parts/sync-topology.ok.js';import _0x16fe5a from'../../sync/parts/sync-retention.ok.js';export default{'tag':_0x1d64a0(0xd7),'unwrap':!0x0,'dependencies':[_0x777f2f,_0x16fe5a],'context':_0x1f30bb=>({'tab':'topology','selfNode':null,'selfClock':null,'selfClocks':{},'selfTagsInput':'','savingSelf':!0x1,'saveSelfError':null,get 'selfTagList'(){const _0x315ef4=_0x1d64a0;return(this[_0x315ef4(0xcd)]||'')[_0x315ef4(0xb6)](',')[_0x315ef4(0xc8)](_0x3edeff=>_0x3edeff[_0x315ef4(0xbb)]())[_0x315ef4(0xe0)](Boolean);},async 'loadSelf'(){const _0xb60df1=_0x1d64a0;try{const _0x5a599a=await fetch(__ENV__[_0xb60df1(0xc9)]+_0xb60df1(0xc1)),_0x36bdfd=await _0x5a599a['json']();_0x5a599a['ok']&&(this['selfNode']=_0x36bdfd[_0xb60df1(0xba)]?.[_0xb60df1(0xde)]??null,this[_0xb60df1(0xc5)]=_0x36bdfd[_0xb60df1(0xba)]?.[_0xb60df1(0xd9)]??null,this[_0xb60df1(0xbe)]=_0x36bdfd[_0xb60df1(0xba)]?.['clocks']??{},this[_0xb60df1(0xcd)]=(this['selfNode']?.[_0xb60df1(0xce)]??[])[_0xb60df1(0xdf)](',\x20'));}catch{}},async 'saveSelfTags'(){const _0x3a2b93=_0x1d64a0;if(!this[_0x3a2b93(0xcb)]){this[_0x3a2b93(0xcb)]=!0x0,this[_0x3a2b93(0xd3)]=null;try{const _0xb9d882=await fetch(__ENV__['API']+'/sync/self',{'method':_0x3a2b93(0xb5),'headers':{'Content-Type':_0x3a2b93(0xcc)},'body':JSON[_0x3a2b93(0xd5)]({'tags':this[_0x3a2b93(0xc2)]})}),_0x32cd88=await _0xb9d882[_0x3a2b93(0xd8)]();if(!_0xb9d882['ok'])throw new Error(_0x32cd88?.['error']?.['message']||_0x3a2b93(0xca));this['selfNode']=_0x32cd88[_0x3a2b93(0xba)]?.[_0x3a2b93(0xde)]??this[_0x3a2b93(0xd6)],this['selfTagsInput']=(this[_0x3a2b93(0xd6)]?.[_0x3a2b93(0xce)]??[])['join'](',\x20'),_0x1f30bb['$ok']['shared']?.[_0x3a2b93(0xd2)]?.[_0x3a2b93(0xcf)]?.(_0x3a2b93(0xdb));}catch(_0xea7ef){this[_0x3a2b93(0xd3)]=_0xea7ef?.[_0x3a2b93(0xc6)]||String(_0xea7ef);}finally{this[_0x3a2b93(0xcb)]=!0x1;}}},'copyText'(_0x30349f){const _0x5e8941=_0x1d64a0;navigator[_0x5e8941(0xbf)]?.[_0x5e8941(0xda)](_0x30349f)[_0x5e8941(0xbd)](()=>{});}}),async 'mount'(){const _0x126543=_0x1d64a0;await this[_0x126543(0xb9)]();},'template':_0x1d64a0(0xd1)};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<script type="module">import viewsList from"./parts/views-list.ok.js";import viewDetail from"./parts/view-detail.ok.js";import viewsOverview from"./parts/views-overview.ok.js";import createViewModal from"./modals/create-view-modal.ok.js";export default{tag:"views-index",unwrap:!0,dependencies:[viewsList,viewDetail,viewsOverview,createViewModal],context(e){const t={selectedView:null,listEl:null,selectView(e){this.selectedView=e??null;const t=this.listEl?.$scope?.$innerContext;t&&(t.selected=e??null)},onRemoved(){this.selectedView=null;const e=this.listEl?.$scope?.$innerContext;e&&(e.selected=null,e.load())},onStateChanged(){this.listEl?.$scope?.$innerContext?.load()},async openCreateModal(){await e.$ok.shared.modal.open({owner:e,title:"Create View",content:'<create-view-modal :modal="modal" :on-done="onDone" />',context:e=>({modal:e,onDone:e=>{const o=t.listEl?.$scope?.$innerContext;o&&o.load(),t.selectView(e)}})})}};return t},mount(e){e.$watch(()=>e.$ok.stores.okdb.selectedEnv,()=>{this.selectView(null)})}}</script><template><component import="../../layouts/_default.ok.html"><template name="sidebar"><views-list :ref="listEl = $el" :on-create="openCreateModal" @selected="selectView($event.detail)"></views-list></template><template name="default"><if :="!selectedView"><views-overview @select="selectView($event.detail)"></views-overview></if><if :="selectedView"><view-detail :name="selectedView" @removed="onRemoved()" @state-changed="onStateChanged()"></view-detail></if></template></component></template><style>views-index .views-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;background:var(--okdb-app-bg-deep)}</style>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x5471(_0x4061eb,_0x2c3e4c){_0x4061eb=_0x4061eb-0x89;const _0x5671de=_0x5671();let _0x5471fd=_0x5671de[_0x4061eb];return _0x5471fd;}const _0x5e4e27=_0x5471;(function(_0x16c854,_0x5d7a41){const _0x4de65e=_0x5471,_0x37fa9f=_0x16c854();while(!![]){try{const _0x26d273=-parseInt(_0x4de65e(0xc6))/0x1*(parseInt(_0x4de65e(0xc4))/0x2)+-parseInt(_0x4de65e(0x89))/0x3+-parseInt(_0x4de65e(0xd7))/0x4+-parseInt(_0x4de65e(0xce))/0x5+parseInt(_0x4de65e(0xd8))/0x6*(parseInt(_0x4de65e(0xe1))/0x7)+-parseInt(_0x4de65e(0xc7))/0x8+parseInt(_0x4de65e(0xa7))/0x9*(parseInt(_0x4de65e(0xc8))/0xa);if(_0x26d273===_0x5d7a41)break;else _0x37fa9f['push'](_0x37fa9f['shift']());}catch(_0x576ec3){_0x37fa9f['push'](_0x37fa9f['shift']());}}}(_0x5671,0x9a8a7));import _0x40e654 from'@toolkit/elements/ok-icon.ok.js';import _0x544b38 from'@toolkit/core/ok-overlay.ok.js';function _0x5671(){const _0x47bd06=['name','233849saPepb','refExpanded','$max','At\x20least\x20one\x20reducer\x20is\x20required','reducers','stores','trim','sort','vis_filterStr','keys','2156319BDWybM','$ref','vis_mapStr','count','stringify','close','split','filterStr','filter','$avg','deepPathsLoading','vis_reducers','refReducers','$count','apiBase','push','map','key','value','Name\x20must\x20not\x20contain\x20spaces\x20or\x20start\x20with\x20~','definitionStr','reduce','startsWith','geo','$countBy','toast','loadDeepPaths','message','data','<div\x20style=\x22position:relative;\x20width:min(820px,calc(100vw\x20-\x2060px));\x20min-width:600px;\x22><if\x20:=\x22busy\x22><ok-overlay><div\x20class=\x22loader-center\x22><ok-icon\x20name=\x22loader\x22\x20class=\x22spin\x22\x20style=\x22width:32px;height:32px;\x22/></div></ok-overlay></if><div\x20class=\x22cvm-body\x22><div\x20class=\x22cvm-row2\x22><div\x20class=\x22cvm-field\x22><label\x20class=\x22cvm-label\x22>Name</label>\x20<input\x20type=\x22text\x22\x20class=\x22cvm-input\x22\x20placeholder=\x22e.g.\x20active_users\x22\x20:value=\x22name\x22\x20@input=\x22name\x20=\x20$el.value\x22\x20:disabled=\x22busy\x22><div\x20class=\x22cvm-hint\x22>No\x20spaces\x20·\x20no\x20~\x20prefix</div></div><div\x20class=\x22cvm-field\x22><label\x20class=\x22cvm-label\x22>Source\x20Type</label><if\x20:=\x22typesLoading\x22><select\x20class=\x22cvm-select\x22\x20disabled=\x22disabled\x22><option>Loading\x20types…</option></select></if><if\x20:=\x22!typesLoading\x20&&\x20types.length\x20>\x200\x22><select\x20class=\x22cvm-select\x22\x20:value=\x22sourceType\x22\x20@change=\x22setSourceType($event.target.value)\x22\x20:disabled=\x22busy\x22><option\x20value=\x22\x22>—\x20select\x20a\x20type\x20—</option><each\x20:of=\x22types\x22\x20let:item=\x22t\x22><option\x20:value=\x22t\x22>{{\x20t\x20}}</option></each></select></if><if\x20:=\x22!typesLoading\x20&&\x20types.length\x20===\x200\x22><input\x20type=\x22text\x22\x20class=\x22cvm-input\x22\x20placeholder=\x22e.g.\x20user\x22\x20:value=\x22sourceType\x22\x20@input=\x22setSourceType($el.value)\x22\x20:disabled=\x22busy\x22></if><div\x20class=\x22cvm-hint\x22>OKDB\x20type\x20this\x20view\x20aggregates</div></div></div><div\x20class=\x22cvm-card\x22><div\x20class=\x22cvm-def-header\x22><span\x20class=\x22cvm-label\x22\x20style=\x22margin:0;\x22>Definition</span><div\x20class=\x22cvm-mode-toggle\x22><button\x20:class=\x22defMode\x20===\x20\x27visual\x27\x20?\x20\x27cvm-mode-btn\x20cvm-mode-btn--active\x27\x20:\x20\x27cvm-mode-btn\x27\x22\x20@click=\x22setDefMode(\x27visual\x27)\x22>Visual</button>\x20<button\x20:class=\x22defMode\x20===\x20\x27json\x27\x20?\x20\x27cvm-mode-btn\x20cvm-mode-btn--active\x27\x20:\x20\x27cvm-mode-btn\x27\x22\x20@click=\x22setDefMode(\x27json\x27)\x22>JSON</button></div></div><if\x20:=\x22defMode\x20===\x20\x27visual\x27\x22><div\x20class=\x22cvm-visual\x22><div><div\x20class=\x22cvm-section-hdr\x22>Reducers</div><div\x20class=\x22cvm-col-headers\x22><span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x20136px;\x22>Output\x20key</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x20106px;\x22>Operation</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:1;\x22>Field</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x2058px;\x22>Items</span>\x20<span\x20style=\x22flex:0\x200\x2022px;\x22/></div><div\x20class=\x22cvm-reducer-list\x22><each\x20:of=\x22vis_reducers\x22\x20let:item=\x22r\x22><div><div\x20class=\x22cvm-reducer-row\x22><input\x20type=\x22text\x22\x20class=\x22cvm-input\x20cvm-r-key\x22\x20placeholder=\x22key\x22\x20:value=\x22r.name\x22\x20@input=\x22setReducerProp(r,\x20\x27name\x27,\x20$el.value)\x22\x20:disabled=\x22busy\x22>\x20<select\x20class=\x22cvm-select\x20cvm-r-op\x22\x20:value=\x22r.op\x22\x20@change=\x22setReducerProp(r,\x20\x27op\x27,\x20$event.target.value)\x22\x20:disabled=\x22busy\x22><each\x20:of=\x22opOptions\x22\x20let:item=\x22o\x22><option\x20:value=\x22o.value\x22>{{\x20o.label\x20}}</option></each></select><if\x20:=\x22opNeedsField(r.op)\x22><div\x20class=\x22cvm-r-field\x22><field-path-input\x20:value=\x22r.field\x22\x20:items=\x22fieldItems\x22\x20placeholder=\x22field\x20name\x22\x20allow-custom=\x22true\x22\x20@change=\x22setReducerProp(r,\x20\x27field\x27,\x20$event.detail)\x22></div></if><if\x20:=\x22opIsRef(r.op)\x22><button\x20class=\x22cvm-r-ref-btn\x20cvm-r-field\x22\x20@click=\x22toggleRefExpand(r)\x22\x20:disabled=\x22busy\x22>{{\x20r.refExpanded\x20?\x20\x27▴\x20collapse\x27\x20:\x20\x27▾\x20configure\x20$ref\x27\x20}}</button></if><if\x20:=\x22!opNeedsField(r.op)\x20&&\x20!opIsRef(r.op)\x22><div\x20class=\x22cvm-r-field\x22\x20style=\x22padding:7px\x209px;font-size:11px;color:var(--okdb-app-fg-subtle);opacity:0.35;\x22>—</div></if><if\x20:=\x22!opIsRef(r.op)\x22><label\x20class=\x22cvm-r-items\x22\x20title=\x22Include\x20individual\x20matching\x20items\x20in\x20the\x20result\x22><input\x20type=\x22checkbox\x22\x20:checked=\x22r.items\x22\x20@change=\x22setReducerProp(r,\x20\x27items\x27,\x20$event.target.checked)\x22\x20:disabled=\x22busy\x22>\x20<span>items</span></label></if><if\x20:=\x22opIsRef(r.op)\x22><div\x20class=\x22cvm-r-spacer\x22/></if><div\x20class=\x22cvm-r-del\x22><button\x20class=\x22cvm-r-del-btn\x22\x20@click=\x22removeReducer(r)\x22\x20:disabled=\x22busy\x22\x20title=\x22Remove\x22>×</button></div></div><if\x20:=\x22opIsRef(r.op)\x20&&\x20r.refExpanded\x22><div\x20class=\x22cvm-ref-body\x22><div\x20class=\x22cvm-row2\x22><div\x20class=\x22cvm-field\x22><label\x20class=\x22cvm-label\x22>Child\x20Type</label><if\x20:=\x22types.length\x20>\x200\x22><select\x20class=\x22cvm-select\x22\x20:value=\x22r.refType\x22\x20@change=\x22setRefType(r,\x20$event.target.value)\x22\x20:disabled=\x22busy\x22><option\x20value=\x22\x22>—\x20select\x20type\x20—</option><each\x20:of=\x22types\x22\x20let:item=\x22t\x22><option\x20:value=\x22t\x22>{{\x20t\x20}}</option></each></select></if><if\x20:=\x22types.length\x20===\x200\x22><input\x20type=\x22text\x22\x20class=\x22cvm-input\x22\x20placeholder=\x22e.g.\x20order\x22\x20:value=\x22r.refType\x22\x20@input=\x22setRefType(r,\x20$el.value)\x22\x20:disabled=\x22busy\x22></if></div><div\x20class=\x22cvm-field\x22><label\x20class=\x22cvm-label\x22>Key\x20Field\x20<span\x20style=\x22font-size:10px;font-weight:400;color:var(--okdb-app-fg-subtle);margin-left:4px;\x22>on\x20child\x20·\x20fk\x20fields\x20highlighted</span></label><field-path-input\x20:value=\x22r.refKey\x22\x20:items=\x22refFieldItems(r)\x22\x20placeholder=\x22FK\x20field\x20on\x20child\x20type\x22\x20allow-custom=\x22true\x22\x20@change=\x22setRefProp(r,\x20\x27refKey\x27,\x20$event.detail)\x22><div\x20class=\x22cvm-hint\x22>Field\x20on\x20the\x20child\x20collection\x20that\x20references\x20this\x20document\x27s\x20_id</div></div></div><div\x20class=\x22cvm-ref-section\x22><div\x20class=\x22cvm-ref-section-hdr\x22>Reducers</div><div\x20class=\x22cvm-col-headers\x22><span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x20136px;\x22>Output\x20key</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x20106px;\x22>Operation</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:1;\x22>Field</span>\x20<span\x20class=\x22cvm-col-h\x22\x20style=\x22flex:0\x200\x2058px;\x22>Items</span>\x20<span\x20style=\x22flex:0\x200\x2022px;\x22/></div><div\x20class=\x22cvm-reducer-list\x22><each\x20:of=\x22r.refReducers\x22\x20let:item=\x22cr\x22><div\x20class=\x22cvm-reducer-row\x22><input\x20type=\x22text\x22\x20class=\x22cvm-input\x20cvm-r-key\x22\x20placeholder=\x22key\x22\x20:value=\x22cr.name\x22\x20@input=\x22setRefReducerProp(r,\x20cr,\x20\x27name\x27,\x20$el.value)\x22\x20:disabled=\x22busy\x22>\x20<select\x20class=\x22cvm-select\x20cvm-r-op\x22\x20:value=\x22cr.op\x22\x20@change=\x22setRefReducerProp(r,\x20cr,\x20\x27op\x27,\x20$event.target.value)\x22\x20:disabled=\x22busy\x22><each\x20:of=\x22refOpOptions\x22\x20let:item=\x22o\x22><option\x20:value=\x22o.value\x22>{{\x20o.label\x20}}</option></each></select><if\x20:=\x22opNeedsField(cr.op)\x22><div\x20class=\x22cvm-r-field\x22><field-path-input\x20:value=\x22cr.field\x22\x20:items=\x22refFieldItems(r)\x22\x20placeholder=\x22field\x20name\x22\x20allow-custom=\x22true\x22\x20@change=\x22setRefReducerProp(r,\x20cr,\x20\x27field\x27,\x20$event.detail)\x22></div></if><if\x20:=\x22!opNeedsField(cr.op)\x22><div\x20class=\x22cvm-r-field\x22\x20style=\x22padding:7px\x209px;font-size:11px;color:var(--okdb-app-fg-subtle);opacity:0.35;\x22>—</div></if><label\x20class=\x22cvm-r-items\x22\x20title=\x22Include\x20individual\x20matching\x20items\x22><input\x20type=\x22checkbox\x22\x20:checked=\x22cr.items\x22\x20@change=\x22setRefReducerProp(r,\x20cr,\x20\x27items\x27,\x20$event.target.checked)\x22\x20:disabled=\x22busy\x22>\x20<span>items</span></label><div\x20class=\x22cvm-r-del\x22><button\x20class=\x22cvm-r-del-btn\x22\x20@click=\x22removeRefReducer(r,\x20cr)\x22\x20:disabled=\x22busy\x22\x20title=\x22Remove\x22>×</button></div></div></each></div><button\x20class=\x22cvm-add-reducer-btn\x22\x20@click=\x22addRefReducer(r)\x22\x20:disabled=\x22busy\x22>+\x20Add\x20reducer</button></div><div><div\x20class=\x22cvm-optional-hdr\x22><span\x20class=\x22cvm-ref-section-hdr\x22\x20style=\x22margin:0;\x22>Filter</span>\x20<button\x20class=\x22cvm-opt-toggle\x22\x20@click=\x22setRefProp(r,\x20\x27refShowFilter\x27,\x20!r.refShowFilter)\x22>{{\x20r.refShowFilter\x20?\x20\x27hide\x27\x20:\x20(r.refFilterStr\x20?\x20\x27edit\x27\x20:\x20\x27add\x27)\x20}}</button></div><if\x20:=\x22r.refShowFilter\x22><textarea\x20class=\x22cvm-input\x20cvm-opt-textarea\x22\x20placeholder=\x27{\x20\x22status\x22:\x20\x22active\x22\x20}\x27\x20:value=\x22r.refFilterStr\x22\x20@input=\x22setRefProp(r,\x20\x27refFilterStr\x27,\x20$el.value)\x22\x20:disabled=\x22busy\x22/><div\x20class=\x22cvm-hint\x22\x20style=\x22margin-top:3px;\x22>Sift\x20query\x20—\x20filters\x20child\x20records\x20before\x20aggregation</div></if></div><div><div\x20class=\x22cvm-optional-hdr\x22><span\x20class=\x22cvm-ref-section-hdr\x22\x20style=\x22margin:0;\x22>Map</span>\x20<button\x20class=\x22cvm-opt-toggle\x22\x20@click=\x22setRefProp(r,\x20\x27refShowMap\x27,\x20!r.refShowMap)\x22>{{\x20r.refShowMap\x20?\x20\x27hide\x27\x20:\x20(r.refMapStr\x20?\x20\x27edit\x27\x20:\x20\x27add\x27)\x20}}</button></div><if\x20:=\x22r.refShowMap\x22><textarea\x20class=\x22cvm-input\x20cvm-opt-textarea\x22\x20placeholder=\x27{\x20\x22total\x22:\x20\x22$count\x22\x20}\x27\x20:value=\x22r.refMapStr\x22\x20@input=\x22setRefProp(r,\x20\x27refMapStr\x27,\x20$el.value)\x22\x20:disabled=\x22busy\x22/><div\x20class=\x22cvm-hint\x22\x20style=\x22margin-top:3px;\x22>Optional\x20value\x20transformation\x20applied\x20after\x20child\x20reduce</div></if></div></div></if></div></each></div><button\x20class=\x22cvm-add-reducer-btn\x22\x20@click=\x22addReducer()\x22\x20:disabled=\x22busy\x22>+\x20Add\x20reducer</button></div><div><div\x20class=\x22cvm-optional-hdr\x22><span\x20class=\x22cvm-section-hdr\x22\x20style=\x22margin:0;\x22>Filter</span>\x20<button\x20class=\x22cvm-opt-toggle\x22\x20@click=\x22vis_showFilter\x20=\x20!vis_showFilter\x22>{{\x20vis_showFilter\x20?\x20\x27hide\x27\x20:\x20(vis_filterStr\x20?\x20\x27edit\x27\x20:\x20\x27add\x27)\x20}}</button></div><if\x20:=\x22vis_showFilter\x22><textarea\x20class=\x22cvm-input\x20cvm-opt-textarea\x22\x20placeholder=\x27{\x20\x22status\x22:\x20\x22active\x22\x20}\x27\x20:value=\x22vis_filterStr\x22\x20@input=\x22vis_filterStr\x20=\x20$el.value\x22\x20:disabled=\x22busy\x22/><div\x20class=\x22cvm-hint\x22>Sift\x20query\x20—\x20only\x20matching\x20records\x20are\x20included\x20in\x20the\x20aggregation</div></if></div><div><div\x20class=\x22cvm-optional-hdr\x22><span\x20class=\x22cvm-section-hdr\x22\x20style=\x22margin:0;\x22>Map</span>\x20<button\x20class=\x22cvm-opt-toggle\x22\x20@click=\x22vis_showMap\x20=\x20!vis_showMap\x22>{{\x20vis_showMap\x20?\x20\x27hide\x27\x20:\x20(vis_mapStr\x20?\x20\x27edit\x27\x20:\x20\x27add\x27)\x20}}</button></div><if\x20:=\x22vis_showMap\x22><textarea\x20class=\x22cvm-input\x20cvm-opt-textarea\x22\x20placeholder=\x27{\x20\x22total\x22:\x20\x22$count\x22\x20}\x27\x20:value=\x22vis_mapStr\x22\x20@input=\x22vis_mapStr\x20=\x20$el.value\x22\x20:disabled=\x22busy\x22/><div\x20class=\x22cvm-hint\x22>Optional\x20value\x20transformation\x20applied\x20after\x20reduce</div></if></div></div></if><if\x20:=\x22defMode\x20===\x20\x27json\x27\x22><div\x20class=\x22cvm-json-wrap\x22><ok-text-monaco-input\x20style=\x22height:100%;\x22\x20language=\x22json\x22\x20:value=\x22definitionStr\x22\x20@edit=\x22definitionStr\x20=\x20$event.detail\x22/></div><div\x20class=\x22cvm-hint\x22>filter\x20·\x20reduce\x20·\x20map\x20—\x20<code>type</code>\x20is\x20injected\x20from\x20Source\x20Type\x20above</div></if></div><if\x20:=\x22error\x22><div\x20class=\x22cvm-error\x22>{{\x20error\x20}}</div></if><div\x20class=\x22cvm-actions\x22><button\x20class=\x22cvm-btn\x20cvm-btn--secondary\x22\x20@click=\x22cancel()\x22\x20:disabled=\x22busy\x22>Cancel</button>\x20<button\x20class=\x22cvm-btn\x20cvm-btn--primary\x22\x20@click=\x22create()\x22\x20:disabled=\x22busy\x20||\x20!name.trim()\x20||\x20!sourceType.trim()\x22>Create\x20View</button></div></div></div>','2857878aMWNDz','_id','needsField','pop','entries','/deep-properties','/type/','result','items','mapStr','paths','defMode','Create\x20failed','length','okdb','refKey','$sum','sourceType','{\x0a\x20\x20\x22filter\x22:\x20{},\x0a\x20\x20\x22reduce\x22:\x20{\x0a\x20\x20\x20\x20\x22count\x22:\x20{\x20\x22$count\x22:\x20true\x20}\x0a\x20\x20}\x0a}','refDeepLoading','refType','refDeepPaths','POST','parse','field','endsWith','deepPaths','error','$min','2gXJCZi','modal','401389SBIoVD','8878784iGBRRx','130Edzkxt','isRef','object','visual','test','assign','1853300sfVMMC','type','/types','$ok','$attr','Source\x20type\x20is\x20required','.cvm-body,create-view-modal{display:flex;flex-direction:column}.cvm-body{gap:14px}.cvm-row2{display:grid;grid-template-columns:1fr\x201fr;gap:12px}.cvm-field{display:flex;flex-direction:column;gap:5px}.cvm-label{font-size:11px;color:var(--okdb-app-fg-muted);text-transform:uppercase;letter-spacing:.07em;font-weight:600}.cvm-card{padding:14px;border:1px\x20solid\x20var(--okdb-app-border);border-radius:10px;background:var(--okdb-app-bg-deep);display:flex;flex-direction:column;gap:10px}.cvm-input{padding:7px\x209px}.cvm-input,.cvm-select{border:1px\x20solid\x20var(--okdb-app-border);border-radius:6px;background:var(--okdb-app-bg-deep);color:var(--okdb-app-fg);font-size:12px;font-family:inherit;box-sizing:border-box;width:100%}.cvm-input:focus,.cvm-select:focus{outline:0;border-color:var(--okdb-accent);box-shadow:0\x200\x200\x202px\x20color-mix(in\x20srgb,var(--okdb-accent)\x2012%,transparent)}.cvm-select{cursor:pointer;appearance:none;background-image:url(\x22data:image/svg+xml,%3Csvg\x20xmlns=\x27http://www.w3.org/2000/svg\x27\x20width=\x2712\x27\x20height=\x2712\x27\x20viewBox=\x270\x200\x2024\x2024\x27\x20fill=\x27none\x27\x20stroke=\x27%23888\x27\x20stroke-width=\x272\x27%3E%3Cpolyline\x20points=\x276\x209\x2012\x2015\x2018\x209\x27/%3E%3C/svg%3E\x22);background-repeat:no-repeat;background-position:right\x208px\x20center;padding:7px\x2028px\x207px\x209px}.cvm-error,.cvm-hint{font-size:11px;color:var(--okdb-app-fg-subtle);line-height:1.45}.cvm-error{font-size:12px;color:var(--okdb-danger);padding:9px\x2012px;background:color-mix(in\x20srgb,var(--okdb-danger)\x2010%,transparent);border:1px\x20solid\x20color-mix(in\x20srgb,var(--okdb-danger)\x2025%,transparent);border-radius:6px}.cvm-actions{display:flex;gap:8px;justify-content:flex-end}.cvm-btn{padding:7px\x2016px;border-radius:6px;border:1px\x20solid;background:0\x200;font-size:12px;font-weight:500;cursor:pointer;transition:all\x20.15s\x20ease}.cvm-btn--primary{border-color:var(--okdb-accent);color:var(--okdb-accent)}.cvm-btn--primary:hover{background:color-mix(in\x20srgb,var(--okdb-accent)\x2012%,transparent)}.cvm-btn--secondary{border-color:var(--okdb-app-border);color:var(--okdb-app-fg-muted)}.cvm-btn--secondary:hover{border-color:var(--okdb-accent);color:var(--okdb-app-fg);background:color-mix(in\x20srgb,var(--okdb-accent)\x206%,transparent)}.cvm-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.cvm-def-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px\x20solid\x20var(--okdb-app-border)}.cvm-mode-toggle{display:flex;border:1px\x20solid\x20var(--okdb-app-border);border-radius:5px;overflow:hidden}.cvm-mode-btn{padding:4px\x2012px;border:0;background:0\x200;color:var(--okdb-app-fg-muted);font-size:11px;font-weight:500;cursor:pointer;transition:all\x20.15s\x20ease}.cvm-mode-btn+.cvm-mode-btn{border-left:1px\x20solid\x20var(--okdb-app-border)}.cvm-mode-btn--active{background:color-mix(in\x20srgb,var(--okdb-accent)\x2014%,transparent);color:var(--okdb-accent)}.cvm-visual{display:flex;flex-direction:column;gap:12px}.cvm-section-hdr{font-size:10px;color:var(--okdb-app-fg-subtle);text-transform:uppercase;letter-spacing:.07em;font-weight:600;margin-bottom:6px}.cvm-col-headers{display:flex;gap:6px;margin-bottom:3px}.cvm-col-h{font-size:10px;color:var(--okdb-app-fg-subtle)}.cvm-reducer-list{display:flex;flex-direction:column;gap:5px}.cvm-reducer-row{display:flex;align-items:center;gap:6px}.cvm-r-key,.cvm-r-op{flex:0\x200\x20136px;min-width:0}.cvm-r-op{flex:0\x200\x20106px}.cvm-r-field{flex:1;min-width:0}.cvm-r-del,.cvm-r-items{display:flex;align-items:center}.cvm-r-items{flex:0\x200\x2058px;gap:4px;font-size:11px;color:var(--okdb-app-fg-muted);user-select:none;cursor:pointer}.cvm-r-del{flex:0\x200\x2022px;justify-content:center}.cvm-r-del-btn{background:0\x200;border:0;cursor:pointer;color:var(--okdb-app-fg-subtle);padding:3px\x204px;border-radius:3px;font-size:14px;line-height:1;transition:color\x20.12s\x20ease}.cvm-r-del-btn:hover{color:var(--okdb-danger)}.cvm-r-ref-btn{flex:1;padding:7px\x2010px;border:1px\x20dashed\x20var(--okdb-app-border);border-radius:6px;background:0\x200;color:var(--okdb-app-fg-muted);font-size:11px;cursor:pointer;text-align:left;min-width:0;transition:all\x20.12s\x20ease}.cvm-add-reducer-btn:hover,.cvm-r-ref-btn:hover{border-color:var(--okdb-accent);color:var(--okdb-accent)}.cvm-r-spacer{flex:0\x200\x2058px}.cvm-add-reducer-btn{align-self:flex-start;padding:4px\x2012px;border:1px\x20dashed\x20var(--okdb-app-border);border-radius:5px;background:0\x200;color:var(--okdb-app-fg-muted);font-size:11px;cursor:pointer;margin-top:4px;transition:all\x20.12s\x20ease}.cvm-optional-hdr{display:flex;align-items:center;gap:8px}.cvm-opt-toggle{background:0\x200;border:0;cursor:pointer;font-size:11px;color:var(--okdb-app-fg-muted);padding:0;text-decoration:underline\x20dotted;transition:color\x20.12s\x20ease}.cvm-opt-toggle:hover{color:var(--okdb-accent)}.cvm-opt-textarea{width:100%;height:64px;resize:vertical;font-size:11px;font-family:monospace;margin-top:6px}.cvm-ref-body,.cvm-ref-section{display:flex;flex-direction:column}.cvm-ref-body{margin-top:5px;padding:12px;background:color-mix(in\x20srgb,var(--okdb-accent)\x203%,var(--okdb-app-bg));border:1px\x20solid\x20var(--okdb-app-border);border-left:2px\x20solid\x20color-mix(in\x20srgb,var(--okdb-accent)\x2045%,var(--okdb-app-border));border-radius:6px;gap:10px}.cvm-ref-section{gap:6px}.cvm-ref-section-hdr{font-size:10px;color:var(--okdb-app-fg-subtle);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:4px}.cvm-json-wrap{height:260px;border:1px\x20solid\x20var(--okdb-app-border);border-radius:8px;overflow:hidden}','json','find','3978392wnstTy','18giCrJP','isArray','create-view-modal','shared','loadRefDeepPaths','string','typesData','refMapStr'];_0x5671=function(){return _0x47bd06;};return _0x5671();}import _0x437c50 from'../../../components/ok-text-monaco-input.ok.js';import _0x2b31c4 from'../../../components/field-path-input.ok.js';const i=[{'value':_0x5e4e27(0x96),'label':_0x5e4e27(0x96),'needsField':!0x1,'isRef':!0x1},{'value':_0x5e4e27(0xb7),'label':_0x5e4e27(0xb7),'needsField':!0x0,'isRef':!0x1},{'value':_0x5e4e27(0x92),'label':_0x5e4e27(0x92),'needsField':!0x0,'isRef':!0x1},{'value':'$min','label':_0x5e4e27(0xc3),'needsField':!0x0,'isRef':!0x1},{'value':_0x5e4e27(0xe3),'label':_0x5e4e27(0xe3),'needsField':!0x0,'isRef':!0x1},{'value':_0x5e4e27(0xa1),'label':_0x5e4e27(0xa1),'needsField':!0x0,'isRef':!0x1},{'value':_0x5e4e27(0x8a),'label':'$ref','needsField':!0x1,'isRef':!0x0}],a=i['filter'](_0x3871b2=>!_0x3871b2[_0x5e4e27(0xc9)]);function o(){const _0x12def3=_0x5e4e27;return{'name':_0x12def3(0x8c),'op':'$count','field':'','items':!0x1};}function d(_0x507c99){const _0x44516b=_0x5e4e27,_0x189b1d={};for(const _0x5e848d of _0x507c99[_0x44516b(0x95)]||[])_0x5e848d[_0x44516b(0xe0)]['trim']()&&(_0x44516b(0x96)===_0x5e848d['op']?(_0x189b1d[_0x5e848d[_0x44516b(0xe0)]]={'$count':!0x0},_0x5e848d[_0x44516b(0xaf)]&&(_0x189b1d[_0x5e848d['name']]['items']=!0x0)):(_0x189b1d[_0x5e848d[_0x44516b(0xe0)]]={[_0x5e848d['op']]:_0x5e848d['field'][_0x44516b(0xe7)]()||_0x44516b(0xa8)},_0x5e848d[_0x44516b(0xaf)]&&(_0x189b1d[_0x5e848d['name']][_0x44516b(0xaf)]=!0x0)));const _0x17b35a={'type':_0x507c99[_0x44516b(0xbb)]||'','key':_0x507c99[_0x44516b(0xb6)]||''};Object[_0x44516b(0xea)](_0x189b1d)[_0x44516b(0xb4)]&&(_0x17b35a[_0x44516b(0x9e)]=_0x189b1d);try{const _0x5b2a3e=(_0x507c99['refFilterStr']||'')[_0x44516b(0xe7)]();_0x5b2a3e&&(_0x17b35a[_0x44516b(0x91)]=JSON[_0x44516b(0xbe)](_0x5b2a3e));}catch{}try{const _0x42051e=(_0x507c99[_0x44516b(0xdf)]||'')[_0x44516b(0xe7)]();_0x42051e&&(_0x17b35a[_0x44516b(0x99)]=JSON['parse'](_0x42051e));}catch{}return _0x17b35a;}function c(_0x3b120d,_0x266729,_0x1f3c0a){const _0x429059=_0x5e4e27,_0xfffed4={};for(const _0x36316e of _0x3b120d)_0x36316e[_0x429059(0xe0)]['trim']()&&('$ref'===_0x36316e['op']?_0xfffed4[_0x36316e[_0x429059(0xe0)]]={'$ref':d(_0x36316e)}:_0x429059(0x96)===_0x36316e['op']?(_0xfffed4[_0x36316e[_0x429059(0xe0)]]={'$count':!0x0},_0x36316e[_0x429059(0xaf)]&&(_0xfffed4[_0x36316e[_0x429059(0xe0)]]['items']=!0x0)):(_0xfffed4[_0x36316e[_0x429059(0xe0)]]={[_0x36316e['op']]:_0x36316e[_0x429059(0xbf)][_0x429059(0xe7)]()||'_id'},_0x36316e[_0x429059(0xaf)]&&(_0xfffed4[_0x36316e['name']][_0x429059(0xaf)]=!0x0)));const _0x57b55e={'reduce':_0xfffed4};try{const _0x6d5064=_0x266729[_0x429059(0xe7)]();_0x6d5064&&(_0x57b55e['filter']=JSON[_0x429059(0xbe)](_0x6d5064));}catch{}try{const _0xc8e635=_0x1f3c0a[_0x429059(0xe7)]();_0xc8e635&&(_0x57b55e[_0x429059(0x99)]=JSON[_0x429059(0xbe)](_0xc8e635));}catch{}return _0x57b55e;}function l(_0x57548d){const _0x5cb431=_0x5e4e27,_0xb8200f=[];for(const [_0x1ec3e3,_0x17a1cf]of Object[_0x5cb431(0xab)](_0x57548d??{})){const _0x798e74=Object[_0x5cb431(0xea)](_0x17a1cf)[_0x5cb431(0xd6)](_0x2a111e=>'items'!==_0x2a111e)??_0x5cb431(0x96);_0xb8200f[_0x5cb431(0x98)]({'name':_0x1ec3e3,'op':_0x798e74,'field':_0x5cb431(0xdd)==typeof _0x17a1cf[_0x798e74]?_0x17a1cf[_0x798e74]:'','items':!!_0x17a1cf[_0x5cb431(0xaf)]});}return _0xb8200f[_0x5cb431(0xb4)]?_0xb8200f:[{'name':_0x5cb431(0x8c),'op':_0x5cb431(0x96),'field':'','items':!0x1}];}function n(_0x4db9bf){const _0x86072=_0x5e4e27,_0x156f29=_0x4db9bf[_0x86072(0x8f)]('.')[_0x86072(0xaa)]();return _0x86072(0xa8)!==_0x156f29&&(_0x156f29[_0x86072(0xc0)]('Id')||_0x156f29[_0x86072(0xc0)](_0x86072(0xa8))||_0x156f29[_0x86072(0xc0)]('ID'));}function p(_0x1bf40c){const _0x3d5b50=_0x5e4e27;return _0x1bf40c&&Object[_0x3d5b50(0xea)](_0x1bf40c)[_0x3d5b50(0xb4)]?Object[_0x3d5b50(0xab)](_0x1bf40c)[_0x3d5b50(0x99)](([_0x11fb20,_0x4b2122])=>({'path':_0x11fb20,'types':Array['isArray'](_0x4b2122)?_0x4b2122:[],'hint':n(_0x11fb20)?'fk':Array[_0x3d5b50(0xd9)](_0x4b2122)&&_0x4b2122['includes'](_0x3d5b50(0xa0))?_0x3d5b50(0xa0):null})):[];}export default{'tag':_0x5e4e27(0xda),'dependencies':[_0x544b38,_0x40e654,_0x437c50,_0x2b31c4],'attr':{'modal':{},'onDone':{}},'context':_0x3edf6e=>({'busy':!0x1,'error':null,'name':'','sourceType':'','typesData':[],'typesLoading':!0x1,'deepPaths':{},'deepPathsLoading':!0x1,get 'types'(){const _0x43140e=_0x5e4e27;return this[_0x43140e(0xde)][_0x43140e(0x99)](_0x1afcb6=>_0x1afcb6['type']??_0x1afcb6[_0x43140e(0xe0)]??String(_0x1afcb6))['filter'](_0x5a47f7=>_0x43140e(0xdd)==typeof _0x5a47f7&&!_0x5a47f7['startsWith']('~'))[_0x43140e(0xe8)]();},get 'fieldItems'(){const _0x33f721=_0x5e4e27;return p(this[_0x33f721(0xc1)]);},get 'opOptions'(){return i;},get 'refOpOptions'(){return a;},'defMode':_0x5e4e27(0xcb),'definitionStr':_0x5e4e27(0xb9),'vis_reducers':[Object[_0x5e4e27(0xcd)]({'name':'','op':_0x5e4e27(0x96),'field':'','items':!0x1,'isRef':!0x1,'refExpanded':!0x1,'refType':'','refKey':'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':[{'name':_0x5e4e27(0x8c),'op':_0x5e4e27(0x96),'field':'','items':!0x1}],'refFilterStr':'','refMapStr':'','refShowFilter':!0x1,'refShowMap':!0x1},{'name':_0x5e4e27(0x8c),'op':_0x5e4e27(0x96)})],'vis_filterStr':'','vis_mapStr':'','vis_showFilter':!0x1,'vis_showMap':!0x1,async 'loadTypes'(){const _0x538689=_0x5e4e27;this['typesLoading']=!0x0;try{const _0x4d989b=_0x3edf6e['$ok'][_0x538689(0xe6)][_0x538689(0xb5)][_0x538689(0x97)],_0x3e304f=await fetch(_0x4d989b+_0x538689(0xd0));if(!_0x3e304f['ok'])return void(this[_0x538689(0xde)]=[]);const _0x18a770=await _0x3e304f[_0x538689(0xd5)](),_0x1fd894=_0x18a770[_0x538689(0xa5)]??_0x18a770[_0x538689(0xae)]??[];this[_0x538689(0xde)]=Array['isArray'](_0x1fd894)?_0x1fd894:Object[_0x538689(0xab)](_0x1fd894)[_0x538689(0x99)](([_0x1994df,_0x25def2])=>({'type':_0x1994df,..._0x538689(0xca)==typeof _0x25def2?_0x25def2:{}}));}catch{this[_0x538689(0xde)]=[];}finally{this['typesLoading']=!0x1;}},async 'loadDeepPaths'(_0x382a6b){const _0x1c2265=_0x5e4e27;if(_0x382a6b){this[_0x1c2265(0x93)]=!0x0;try{const _0x535708=_0x3edf6e['$ok']['stores']['okdb'][_0x1c2265(0x97)],_0x371416=await fetch(_0x535708+_0x1c2265(0xad)+encodeURIComponent(_0x382a6b)+_0x1c2265(0xac));if(!_0x371416['ok'])return void(this[_0x1c2265(0xc1)]={});const _0x145dbc=await _0x371416[_0x1c2265(0xd5)]();this[_0x1c2265(0xc1)]=(_0x145dbc[_0x1c2265(0xa5)]??_0x145dbc['result'])?.['paths']??{};}catch{this['deepPaths']={};}finally{this[_0x1c2265(0x93)]=!0x1;}}else this[_0x1c2265(0xc1)]={};},async 'loadRefDeepPaths'(_0x1d563f,_0x462f56){const _0x48d4dc=_0x5e4e27;_0x1d563f[_0x48d4dc(0xba)]=!0x0,this[_0x48d4dc(0x94)]=[...this[_0x48d4dc(0x94)]];try{const _0x4915ef=_0x3edf6e[_0x48d4dc(0xd1)][_0x48d4dc(0xe6)][_0x48d4dc(0xb5)][_0x48d4dc(0x97)],_0x3da75e=await fetch(_0x4915ef+_0x48d4dc(0xad)+encodeURIComponent(_0x462f56)+_0x48d4dc(0xac));if(!_0x3da75e['ok'])return void(_0x1d563f[_0x48d4dc(0xbc)]={});const _0x220bb6=await _0x3da75e[_0x48d4dc(0xd5)]();_0x1d563f[_0x48d4dc(0xbc)]=(_0x220bb6[_0x48d4dc(0xa5)]??_0x220bb6['result'])?.[_0x48d4dc(0xb1)]??{};}catch{_0x1d563f['refDeepPaths']={};}finally{_0x1d563f[_0x48d4dc(0xba)]=!0x1,this[_0x48d4dc(0x94)]=[...this[_0x48d4dc(0x94)]];}},'setSourceType'(_0x3a42c8){const _0x3ac351=_0x5e4e27;this[_0x3ac351(0xb8)]=_0x3a42c8,_0x3a42c8?this[_0x3ac351(0xa3)](_0x3a42c8):this[_0x3ac351(0xc1)]={};},'setDefMode'(_0x3b5735){const _0x1622f4=_0x5e4e27;if(_0x3b5735!==this[_0x1622f4(0xb2)]){if(_0x1622f4(0xcb)===this[_0x1622f4(0xb2)])this[_0x1622f4(0x9d)]=JSON['stringify'](c(this[_0x1622f4(0x94)],this[_0x1622f4(0xe9)],this[_0x1622f4(0x8b)]),null,0x2);else try{const _0x28bed2=function(_0x243624){const _0x5ea1b0=_0x1622f4,_0x3669ec=[];for(const [_0x24472c,_0x13d682]of Object['entries'](_0x243624['reduce']??{}))if(_0x13d682['$ref']){const _0x336e70=_0x13d682[_0x5ea1b0(0x8a)];_0x3669ec[_0x5ea1b0(0x98)]({'name':_0x24472c,'op':_0x5ea1b0(0x8a),'field':'','items':!0x1,'isRef':!0x0,'refExpanded':!0x0,'refType':_0x336e70[_0x5ea1b0(0xcf)]||'','refKey':_0x336e70[_0x5ea1b0(0x9a)]||'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':l(_0x336e70['reduce']),'refFilterStr':_0x336e70[_0x5ea1b0(0x91)]?JSON[_0x5ea1b0(0x8d)](_0x336e70[_0x5ea1b0(0x91)],null,0x2):'','refMapStr':_0x336e70[_0x5ea1b0(0x99)]?JSON[_0x5ea1b0(0x8d)](_0x336e70[_0x5ea1b0(0x99)],null,0x2):'','refShowFilter':!!_0x336e70[_0x5ea1b0(0x91)]&&Object[_0x5ea1b0(0xea)](_0x336e70[_0x5ea1b0(0x91)])[_0x5ea1b0(0xb4)]>0x0,'refShowMap':!!_0x336e70[_0x5ea1b0(0x99)]&&Object['keys'](_0x336e70[_0x5ea1b0(0x99)])[_0x5ea1b0(0xb4)]>0x0});}else{const _0x437143=Object[_0x5ea1b0(0xea)](_0x13d682)[_0x5ea1b0(0xd6)](_0x5be5e4=>'items'!==_0x5be5e4)??_0x5ea1b0(0x96);_0x3669ec[_0x5ea1b0(0x98)]({'name':_0x24472c,'op':_0x437143,'field':'string'==typeof _0x13d682[_0x437143]?_0x13d682[_0x437143]:'','items':!!_0x13d682[_0x5ea1b0(0xaf)],'isRef':!0x1,'refExpanded':!0x1,'refType':'','refKey':'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':[o()],'refFilterStr':'','refMapStr':'','refShowFilter':!0x1,'refShowMap':!0x1});}return _0x3669ec[_0x5ea1b0(0xb4)]||_0x3669ec[_0x5ea1b0(0x98)]({'name':'','op':_0x5ea1b0(0x96),'field':'','items':!0x1,'isRef':!0x1,'refExpanded':!0x1,'refType':'','refKey':'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':[{'name':_0x5ea1b0(0x8c),'op':_0x5ea1b0(0x96),'field':'','items':!0x1}],'refFilterStr':'','refMapStr':'','refShowFilter':!0x1,'refShowMap':!0x1}),{'reducers':_0x3669ec,'filterStr':_0x243624[_0x5ea1b0(0x91)]&&Object[_0x5ea1b0(0xea)](_0x243624['filter'])['length']?JSON[_0x5ea1b0(0x8d)](_0x243624[_0x5ea1b0(0x91)],null,0x2):'','mapStr':_0x243624['map']&&Object[_0x5ea1b0(0xea)](_0x243624[_0x5ea1b0(0x99)])[_0x5ea1b0(0xb4)]?JSON[_0x5ea1b0(0x8d)](_0x243624[_0x5ea1b0(0x99)],null,0x2):''};}(JSON[_0x1622f4(0xbe)](this[_0x1622f4(0x9d)]));this[_0x1622f4(0x94)]=_0x28bed2[_0x1622f4(0xe5)],this[_0x1622f4(0xe9)]=_0x28bed2[_0x1622f4(0x90)],this['vis_mapStr']=_0x28bed2[_0x1622f4(0xb0)];for(const _0x2874b7 of this[_0x1622f4(0x94)])_0x1622f4(0x8a)===_0x2874b7['op']&&_0x2874b7[_0x1622f4(0xbb)]&&this[_0x1622f4(0xdc)](_0x2874b7,_0x2874b7[_0x1622f4(0xbb)]);}catch{}this['defMode']=_0x3b5735;}},'addReducer'(){const _0x3beb8f=_0x5e4e27;this[_0x3beb8f(0x94)]=[...this['vis_reducers'],{'name':'','op':_0x3beb8f(0x96),'field':'','items':!0x1,'isRef':!0x1,'refExpanded':!0x1,'refType':'','refKey':'','refDeepPaths':{},'refDeepLoading':!0x1,'refReducers':[{'name':'count','op':_0x3beb8f(0x96),'field':'','items':!0x1}],'refFilterStr':'','refMapStr':'','refShowFilter':!0x1,'refShowMap':!0x1}];},'removeReducer'(_0x2904a3){const _0x528457=_0x5e4e27;this[_0x528457(0x94)]=this[_0x528457(0x94)]['filter'](_0x5f50c8=>_0x5f50c8!==_0x2904a3);},'setReducerProp'(_0x574720,_0xb2654,_0x3088c4){const _0x323f41=_0x5e4e27;_0x574720[_0xb2654]=_0x3088c4,'op'===_0xb2654&&(_0x574720[_0x323f41(0xc9)]=_0x323f41(0x8a)===_0x3088c4,_0x323f41(0x8a)!==_0x3088c4?_0x574720[_0x323f41(0xe2)]=!0x1:_0x574720[_0x323f41(0xe2)]||(_0x574720['refExpanded']=!0x0)),this[_0x323f41(0x94)]=[...this[_0x323f41(0x94)]];},'toggleRefExpand'(_0x9910d1){const _0x36fd3f=_0x5e4e27;_0x9910d1[_0x36fd3f(0xe2)]=!_0x9910d1['refExpanded'],this[_0x36fd3f(0x94)]=[...this['vis_reducers']];},'setRefProp'(_0x26dcc3,_0x2796f1,_0x21c40e){const _0x1459a0=_0x5e4e27;_0x26dcc3[_0x2796f1]=_0x21c40e,this[_0x1459a0(0x94)]=[...this[_0x1459a0(0x94)]];},'setRefType'(_0xac49d,_0x1e3835){const _0x368926=_0x5e4e27;_0xac49d[_0x368926(0xbb)]=_0x1e3835,_0xac49d[_0x368926(0xb6)]='',_0xac49d[_0x368926(0xbc)]={},this[_0x368926(0x94)]=[...this[_0x368926(0x94)]],_0x1e3835&&this['loadRefDeepPaths'](_0xac49d,_0x1e3835);},'refFieldItems':_0xaadab7=>p(_0xaadab7['refDeepPaths']),'addRefReducer'(_0x3bd462){const _0x3cbc8e=_0x5e4e27;_0x3bd462['refReducers']=[..._0x3bd462[_0x3cbc8e(0x95)]||[],{'name':_0x3cbc8e(0x8c),'op':_0x3cbc8e(0x96),'field':'','items':!0x1}],this['vis_reducers']=[...this['vis_reducers']];},'removeRefReducer'(_0x224be8,_0x4ee087){const _0x5c6b54=_0x5e4e27;_0x224be8[_0x5c6b54(0x95)]=_0x224be8[_0x5c6b54(0x95)][_0x5c6b54(0x91)](_0x66e72b=>_0x66e72b!==_0x4ee087),this['vis_reducers']=[...this[_0x5c6b54(0x94)]];},'setRefReducerProp'(_0x428877,_0x43f499,_0x4174e4,_0x398b93){const _0x3cae1d=_0x5e4e27;_0x43f499[_0x4174e4]=_0x398b93,_0x428877[_0x3cae1d(0x95)]=[..._0x428877[_0x3cae1d(0x95)]],this[_0x3cae1d(0x94)]=[...this[_0x3cae1d(0x94)]];},'opNeedsField':_0x4425e4=>i[_0x5e4e27(0xd6)](_0x4309ab=>_0x4309ab[_0x5e4e27(0x9b)]===_0x4425e4)?.[_0x5e4e27(0xa9)]??!0x1,'opIsRef':_0x440a42=>_0x5e4e27(0x8a)===_0x440a42,async 'create'(){const _0x331969=_0x5e4e27;this[_0x331969(0xc2)]=null;const _0x4fc77f=this['name'][_0x331969(0xe7)]();if(!_0x4fc77f)return void(this['error']='Name\x20is\x20required');if(/\s/[_0x331969(0xcc)](_0x4fc77f)||_0x4fc77f[_0x331969(0x9f)]('~'))return void(this['error']=_0x331969(0x9c));const _0x403d4d=this[_0x331969(0xb8)]['trim']();if(!_0x403d4d)return void(this[_0x331969(0xc2)]=_0x331969(0xd3));let _0xbb5f60;if(_0x331969(0xcb)===this[_0x331969(0xb2)])_0xbb5f60=c(this[_0x331969(0x94)],this['vis_filterStr'],this[_0x331969(0x8b)]);else try{_0xbb5f60=JSON[_0x331969(0xbe)](this[_0x331969(0x9d)]);}catch(_0x5c039e){return void(this[_0x331969(0xc2)]='Invalid\x20JSON\x20in\x20definition:\x20'+_0x5c039e['message']);}if(_0xbb5f60['type']=_0x403d4d,_0xbb5f60['reduce']&&Object[_0x331969(0xea)](_0xbb5f60[_0x331969(0x9e)])[_0x331969(0xb4)]){this['busy']=!0x0;try{const _0x3bf35f=_0x3edf6e[_0x331969(0xd1)][_0x331969(0xe6)]['okdb'][_0x331969(0x97)],_0x35ef28=await fetch(_0x3bf35f+'/views',{'method':_0x331969(0xbd),'headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x4fc77f,..._0xbb5f60})});if(!_0x35ef28['ok']){const _0x833635=await _0x35ef28[_0x331969(0xd5)]()['catch'](()=>({}));throw new Error(_0x833635?.[_0x331969(0xc2)]?.[_0x331969(0xa4)]??_0x331969(0xb3));}_0x3edf6e[_0x331969(0xd2)]['onDone']?.(_0x4fc77f),_0x3edf6e['$attr'][_0x331969(0xc5)]?.[_0x331969(0x8e)]?.();}catch(_0x5001a9){this[_0x331969(0xc2)]=_0x5001a9[_0x331969(0xa4)],_0x3edf6e[_0x331969(0xd1)][_0x331969(0xdb)]?.[_0x331969(0xa2)]?.[_0x331969(0xc2)]?.(this[_0x331969(0xc2)]);}finally{this['busy']=!0x1;}}else this[_0x331969(0xc2)]=_0x331969(0xe4);},'cancel'(){const _0xfb200e=_0x5e4e27;_0x3edf6e[_0xfb200e(0xd2)][_0xfb200e(0xc5)]?.[_0xfb200e(0x8e)]?.();}}),'mount'(_0x3e8120){this['loadTypes']();},'style':_0x5e4e27(0xd4),'template':_0x5e4e27(0xa6)};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x5ae9e1=_0x3bb5;function _0x3bb5(_0x22af51,_0x4f043b){_0x22af51=_0x22af51-0xa1;const _0x3fd704=_0x3fd7();let _0x3bb527=_0x3fd704[_0x22af51];return _0x3bb527;}(function(_0x37751e,_0x5a6819){const _0x433309=_0x3bb5,_0x23ddb9=_0x37751e();while(!![]){try{const _0x1e1c2d=-parseInt(_0x433309(0xc2))/0x1*(-parseInt(_0x433309(0xc8))/0x2)+-parseInt(_0x433309(0xca))/0x3*(-parseInt(_0x433309(0xa9))/0x4)+parseInt(_0x433309(0xd1))/0x5+parseInt(_0x433309(0xc5))/0x6*(parseInt(_0x433309(0xd7))/0x7)+-parseInt(_0x433309(0xa6))/0x8*(parseInt(_0x433309(0xd4))/0x9)+-parseInt(_0x433309(0xcf))/0xa+-parseInt(_0x433309(0xb8))/0xb;if(_0x1e1c2d===_0x5a6819)break;else _0x23ddb9['push'](_0x23ddb9['shift']());}catch(_0x3c0f8c){_0x23ddb9['push'](_0x23ddb9['shift']());}}}(_0x3fd7,0x6655f));export default{'tag':_0x5ae9e1(0xd2),'attr':{'name':{}},'context':_0x51b7b6=>({'output':null,'meta':null,'definition':null,'loading':!0x0,'error':null,'actionLoading':!0x1,'showDeleteConfirm':!0x1,'showOrphanedIndexConfirm':!0x1,'orphanedIndexes':[],async 'load'(){const _0x5ad6c6=_0x5ae9e1;this[_0x5ad6c6(0xa8)]=!0x0,this[_0x5ad6c6(0xd8)]=null,this[_0x5ad6c6(0xd6)]=null,this['meta']=null,this[_0x5ad6c6(0xcc)]=null;try{const _0x555a58=_0x51b7b6[_0x5ad6c6(0xa4)]['stores'][_0x5ad6c6(0xbe)][_0x5ad6c6(0xce)],_0x43cd4a=_0x51b7b6[_0x5ad6c6(0xc4)][_0x5ad6c6(0xb7)],[_0x149828,_0x452c73,_0xa17e05]=await Promise[_0x5ad6c6(0xb4)]([fetch(_0x555a58+_0x5ad6c6(0xa2)+_0x43cd4a),fetch(_0x555a58+_0x5ad6c6(0xa2)+_0x43cd4a+_0x5ad6c6(0xad)),fetch(_0x555a58+_0x5ad6c6(0xa2)+_0x43cd4a+_0x5ad6c6(0xd0))]),_0x14305d=_0x149828['ok']?await _0x149828[_0x5ad6c6(0xc0)]():null,_0x3d48b9=_0x452c73['ok']?await _0x452c73[_0x5ad6c6(0xc0)]():null,_0x31331d=_0xa17e05['ok']?await _0xa17e05[_0x5ad6c6(0xc0)]():null;this['output']=_0x14305d?.[_0x5ad6c6(0xb1)]??_0x14305d?.[_0x5ad6c6(0xab)]??null,this['meta']=_0x3d48b9?.['data']??_0x3d48b9?.[_0x5ad6c6(0xab)]??null,this[_0x5ad6c6(0xcc)]=_0x31331d?.[_0x5ad6c6(0xb1)]??_0x31331d?.[_0x5ad6c6(0xab)]??null;}catch(_0x5788ea){this[_0x5ad6c6(0xd8)]=_0x5788ea[_0x5ad6c6(0xbf)];}finally{this[_0x5ad6c6(0xa8)]=!0x1;}},async 'doAction'(_0x379eda){const _0x372a36=_0x5ae9e1;this[_0x372a36(0xc9)]=!0x0;try{const _0x5dfb94=_0x51b7b6[_0x372a36(0xa4)][_0x372a36(0xbb)]['okdb'][_0x372a36(0xce)],_0x578a78=_0x51b7b6[_0x372a36(0xc4)][_0x372a36(0xb7)],_0x542523=await fetch(_0x5dfb94+'/views/'+_0x578a78+'/'+_0x379eda,{'method':_0x372a36(0xcd)});if(!_0x542523['ok']){const _0x85c594=await _0x542523['json']()[_0x372a36(0xbd)](()=>({}));throw new Error(_0x85c594?.['error']?.['message']??_0x379eda+_0x372a36(0xcb));}await this[_0x372a36(0xd3)](),_0x51b7b6[_0x372a36(0xb0)](_0x372a36(0xc6));}catch(_0x415b81){this[_0x372a36(0xd8)]=_0x415b81['message'];}finally{this['actionLoading']=!0x1;}},async 'deleteView'(){const _0x1b9157=_0x5ae9e1;this[_0x1b9157(0xc9)]=!0x0;try{const _0x158ae6=_0x51b7b6[_0x1b9157(0xa4)]['stores'][_0x1b9157(0xbe)]['apiBase'],_0x225ee1=_0x51b7b6[_0x1b9157(0xc4)][_0x1b9157(0xb7)],_0x35f895=await fetch(_0x158ae6+_0x1b9157(0xa2)+_0x225ee1,{'method':_0x1b9157(0xc7)});if(!_0x35f895['ok']){const _0x4d2d62=await _0x35f895[_0x1b9157(0xc0)]()[_0x1b9157(0xbd)](()=>({})),_0x5980f4=_0x4d2d62?.[_0x1b9157(0xd8)]?.['code'];if(_0x1b9157(0xc3)===_0x5980f4)return this[_0x1b9157(0xaa)]=_0x4d2d62?.[_0x1b9157(0xd8)]?.['details']?.[_0x1b9157(0xaa)]??[],this[_0x1b9157(0xa1)]=!0x1,void(this[_0x1b9157(0xa5)]=!0x0);throw new Error(_0x4d2d62?.[_0x1b9157(0xd8)]?.[_0x1b9157(0xbf)]??_0x1b9157(0xa7));}_0x51b7b6[_0x1b9157(0xb0)](_0x1b9157(0xaf));}catch(_0x386a91){this[_0x1b9157(0xd8)]=_0x386a91[_0x1b9157(0xbf)];}finally{this[_0x1b9157(0xc9)]=!0x1,this['showOrphanedIndexConfirm']||(this[_0x1b9157(0xa1)]=!0x1);}},async 'deleteViewWithIndexes'(_0x48c299){const _0x360b8=_0x5ae9e1;this['actionLoading']=!0x0;try{const _0x368cbe=_0x51b7b6[_0x360b8(0xa4)][_0x360b8(0xbb)][_0x360b8(0xbe)]['apiBase'],_0xad22fb=_0x51b7b6['$attr'][_0x360b8(0xb7)],_0x35e3d7=await fetch(_0x368cbe+_0x360b8(0xa2)+_0xad22fb,{'method':_0x360b8(0xc7),'headers':{'Content-Type':'application/json'},'body':JSON[_0x360b8(0xb3)]({'managedIndexes':_0x48c299})});if(!_0x35e3d7['ok']){const _0x5b9b69=await _0x35e3d7[_0x360b8(0xc0)]()[_0x360b8(0xbd)](()=>({}));throw new Error(_0x5b9b69?.[_0x360b8(0xd8)]?.['message']??_0x360b8(0xa7));}_0x51b7b6[_0x360b8(0xb0)](_0x360b8(0xaf));}catch(_0x4eae96){this[_0x360b8(0xd8)]=_0x4eae96[_0x360b8(0xbf)];}finally{this[_0x360b8(0xc9)]=!0x1,this[_0x360b8(0xa5)]=!0x1,this['orphanedIndexes']=[];}},'formatJson'(_0x1523ef){const _0x459ecc=_0x5ae9e1;if(null==_0x1523ef)return'';try{return JSON[_0x459ecc(0xb3)](_0x1523ef,null,0x2);}catch{return String(_0x1523ef);}},'stateColor'(_0x214a1b){const _0x204942=_0x5ae9e1;switch(_0x214a1b){case _0x204942(0xbc):return _0x204942(0xd5);case _0x204942(0xd9):case _0x204942(0xb6):return _0x204942(0xae);case'halted':return _0x204942(0xac);case'stopped':return _0x204942(0xa3);default:return _0x204942(0xb5);}},get 'state'(){const _0x3af139=_0x5ae9e1;return this['meta']?.[_0x3af139(0xb9)]??_0x3af139(0xb2);},get 'isInProgress'(){const _0x110f22=_0x5ae9e1;return'creating'===this[_0x110f22(0xb9)]||_0x110f22(0xb6)===this[_0x110f22(0xb9)];}}),'mount'(_0x69d57c){const _0x22c276=_0x5ae9e1;_0x69d57c['$watch'](()=>_0x69d57c[_0x22c276(0xc4)][_0x22c276(0xb7)],()=>{const _0x49c25f=_0x22c276;this[_0x49c25f(0xa8)]=!0x0,this[_0x49c25f(0xd6)]=null,this[_0x49c25f(0xc1)]=null,this[_0x49c25f(0xcc)]=null,this[_0x49c25f(0xa1)]=!0x1,this[_0x49c25f(0xa5)]=!0x1,this[_0x49c25f(0xaa)]=[],this['load']();}),this[_0x22c276(0xd3)]();},'style':_0x5ae9e1(0xba),'template':'<div\x20class=\x22vd\x22><if\x20:=\x22loading\x22><div\x20class=\x22vd__loading\x22>Loading…</div></if><if\x20:=\x22!loading\x22><if\x20:=\x22error\x22><div\x20class=\x22vd__error\x22>{{\x20error\x20}}</div></if><div\x20class=\x22vd__header\x22><div\x20class=\x22vd__title-row\x22><div\x20style=\x22flex:1;\x20min-width:0;\x20display:flex;\x20align-items:baseline;\x20gap:8px;\x20overflow:hidden;\x22><h2\x20class=\x22vd__name\x22>{{\x20$attr.name\x20}}</h2><if\x20:=\x22definition\x20!=\x20null\x20&&\x20definition.type\x20!=\x20null\x20&&\x20definition.type\x20!==\x20\x27\x27\x22><span\x20class=\x22vd__type-label\x22>{{\x20definition.type\x20}}</span></if></div><span\x20class=\x22vd__state-badge\x22\x20:style=\x22\x27color:\x27\x20+\x20stateColor(state)\x22><span\x20class=\x22vd__state-dot\x22\x20:style=\x22\x27background:\x27\x20+\x20stateColor(state)\x22/>\x20{{\x20state\x20}}</span></div><div\x20class=\x22vd__actions\x22><if\x20:=\x22!isInProgress\x22><if\x20:=\x22state\x20===\x20\x27ready\x27\x22><button\x20class=\x22vd__btn\x20vd__btn--warning\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22doAction(\x27stop\x27)\x22>Stop</button></if><if\x20:=\x22state\x20===\x20\x27stopped\x27\x20||\x20state\x20===\x20\x27halted\x27\x22><button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22doAction(\x27start\x27)\x22>Start</button></if><button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22doAction(\x27rebuild\x27)\x22>Rebuild</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--danger\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22showDeleteConfirm\x20=\x20true\x22>Delete</button></if><if\x20:=\x22isInProgress\x22><button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20disabled=\x22disabled\x22>Stop</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20disabled=\x22disabled\x22>Rebuild</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--danger\x22\x20disabled=\x22disabled\x22>Delete</button></if></div><if\x20:=\x22showDeleteConfirm\x22><div\x20class=\x22vd__delete-confirm\x22><span\x20class=\x22vd__delete-confirm-text\x22>Delete\x20view\x20<strong>{{\x20$attr.name\x20}}</strong>?\x20This\x20cannot\x20be\x20undone.</span><div\x20class=\x22vd__delete-confirm-actions\x22><button\x20class=\x22vd__btn\x20vd__btn--danger\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22deleteView()\x22>Confirm</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22showDeleteConfirm\x20=\x20false\x22>Cancel</button></div></div></if><if\x20:=\x22showOrphanedIndexConfirm\x22><div\x20class=\x22vd__delete-confirm\x22><span\x20class=\x22vd__delete-confirm-text\x22>Deleting\x20this\x20view\x20will\x20orphan:\x20<strong>{{\x20orphanedIndexes.join(\x27,\x20\x27)\x20}}</strong>.\x20Drop\x20or\x20keep\x20these\x20indexes?</span><div\x20class=\x22vd__delete-confirm-actions\x22><button\x20class=\x22vd__btn\x20vd__btn--danger\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22deleteViewWithIndexes(\x27drop\x27)\x22>Drop</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22deleteViewWithIndexes(\x27keep\x27)\x22>Keep</button>\x20<button\x20class=\x22vd__btn\x20vd__btn--primary\x22\x20:disabled=\x22actionLoading\x22\x20@click=\x22showOrphanedIndexConfirm\x20=\x20false\x22>Cancel</button></div></div></if></div><div\x20class=\x22vd__section\x22><div\x20class=\x22vd__section-title\x22>Output</div><if\x20:=\x22output\x20!=\x20null\x22><pre\x20class=\x22vd__pre\x22>{{\x20formatJson(output)\x20}}</pre></if><if\x20:=\x22output\x20==\x20null\x22><div\x20class=\x22vd__empty\x22>No\x20output\x20available</div></if></div><div\x20class=\x22vd__section\x22><div\x20class=\x22vd__section-title\x22>Meta</div><if\x20:=\x22meta\x22><div\x20class=\x22vd__meta-grid\x22><div\x20class=\x22vd__meta-row\x22><span\x20class=\x22vd__meta-key\x22>state</span>\x20<span\x20class=\x22vd__meta-val\x22\x20:style=\x22\x27color:\x27\x20+\x20stateColor(meta.state)\x22>{{\x20meta.state\x20??\x20\x27—\x27\x20}}</span></div><div\x20class=\x22vd__meta-row\x22><span\x20class=\x22vd__meta-key\x22>clock</span>\x20<span\x20class=\x22vd__meta-val\x22>{{\x20meta.clock\x20??\x20\x27—\x27\x20}}</span></div><if\x20:=\x22meta.error\x22><div\x20class=\x22vd__meta-row\x22><span\x20class=\x22vd__meta-key\x22>error</span>\x20<span\x20class=\x22vd__meta-val\x20vd__meta-val--error\x22>{{\x20meta.error\x20}}</span></div></if></div><if\x20:=\x22meta.refs\x20&&\x20Object.keys(meta.refs).length\x20>\x200\x22><div\x20class=\x22vd__section-title\x22\x20style=\x22margin-top:\x208px;\x22>Refs</div><div\x20class=\x22vd__refs\x22><each\x20:of=\x22Object.entries(meta.refs)\x22\x20let:item=\x22entry\x22><div\x20class=\x22vd__ref-row\x22><span\x20class=\x22vd__ref-name\x22>{{\x20entry[0]\x20}}</span>\x20<span\x20class=\x22vd__ref-state\x22>{{\x20typeof\x20entry[1]\x20===\x20\x27object\x27\x20?\x20(entry[1]?.state\x20??\x20JSON.stringify(entry[1]))\x20:\x20entry[1]\x20}}</span></div></each></div></if></if><if\x20:=\x22!meta\x22><div\x20class=\x22vd__empty\x22>No\x20meta\x20available</div></if></div><div\x20class=\x22vd__section\x22><div\x20class=\x22vd__section-title\x22>Definition</div><if\x20:=\x22definition\x20!=\x20null\x22><pre\x20class=\x22vd__pre\x22>{{\x20formatJson(definition)\x20}}</pre></if><if\x20:=\x22definition\x20==\x20null\x22><div\x20class=\x22vd__empty\x22>No\x20definition\x20available</div></if></div></if></div>'};function _0x3fd7(){const _0xbcfa6e=['105AbusqU','error','creating','showDeleteConfirm','/views/','#fbbf24','$ok','showOrphanedIndexConfirm','8MfhXAO','Delete\x20failed','loading','668296eQqtmI','orphanedIndexes','result','#f44336','/meta','#4FC1FF','removed','$dispatch','data','unknown','stringify','all','#666','resetting','name','7880070wrbAxx','state','view-detail{gap:0;height:100%;overflow-y:auto}.vd,.vd__header,view-detail{display:flex;flex-direction:column}.vd{gap:20px;padding:20px\x2024px}.vd__header{gap:10px;padding-bottom:16px;border-bottom:1px\x20solid\x20var(--okdb-app-border)}.vd__title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.vd__name,.vd__state-badge{font-weight:600;white-space:nowrap}.vd__name{font-size:20px;color:var(--okdb-app-fg-strong);margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;flex-shrink:1}.vd__state-badge{display:inline-flex;align-items:center;gap:6px;padding:3px\x208px;border-radius:999px;border:1px\x20solid\x20var(--okdb-app-border);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.vd__state-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.vd__type-label{font-size:11px;color:var(--okdb-app-fg-subtle);font-family:monospace}.vd__actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.vd__btn{padding:5px\x2012px;border-radius:4px;font-size:12px;font-weight:600;border:1px\x20solid;background:0\x200;cursor:pointer;transition:all\x20.15s\x20ease}.vd__btn--primary{border-color:var(--okdb-accent);color:var(--okdb-accent)}.vd__btn--primary:hover{background:color-mix(in\x20srgb,var(--okdb-accent)\x2010%,transparent);transform:none;box-shadow:none}.vd__btn--warning{border-color:var(--okdb-warning);color:var(--okdb-warning)}.vd__btn--warning:hover{background:color-mix(in\x20srgb,var(--okdb-warning)\x2010%,transparent);transform:none;box-shadow:none}.vd__btn--danger{border-color:var(--okdb-danger);color:var(--okdb-danger)}.vd__btn--danger:hover{background:color-mix(in\x20srgb,var(--okdb-danger)\x2010%,transparent);transform:none;box-shadow:none}.vd__btn:disabled{opacity:.4;cursor:not-allowed}.vd__delete-confirm{display:flex;align-items:center;gap:10px;padding:8px\x2012px;background:color-mix(in\x20srgb,var(--okdb-danger)\x207%,transparent);border:1px\x20solid\x20color-mix(in\x20srgb,var(--okdb-danger)\x2025%,transparent);border-radius:5px;font-size:12px;color:var(--okdb-danger);flex-wrap:wrap}.vd__delete-confirm-text{flex:1;min-width:0}.vd__delete-confirm-actions{display:flex;gap:6px}.vd__section{display:flex;flex-direction:column;gap:10px}.vd__section-title{font-size:11px;font-weight:600;color:var(--okdb-app-fg-muted);text-transform:uppercase;letter-spacing:.05em}.vd__pre{font-family:monospace;font-size:12px;background:var(--okdb-app-bg-deep);border:1px\x20solid\x20var(--okdb-app-border);border-radius:5px;padding:12px\x2014px;overflow-x:auto;color:var(--okdb-app-fg);white-space:pre;margin:0;line-height:1.5}.vd__meta-grid{display:flex;flex-direction:column;gap:6px;font-size:12px}.vd__meta-row{display:flex;gap:8px}.vd__meta-key{color:var(--okdb-app-fg-subtle);width:80px;flex-shrink:0}.vd__meta-val{color:var(--okdb-app-fg);font-family:monospace;word-break:break-all}.vd__meta-val--error{color:var(--okdb-danger)}.vd__empty,.vd__error{font-size:12px;color:var(--okdb-app-fg-subtle)}.vd__error{color:var(--okdb-danger);padding:8px;background:color-mix(in\x20srgb,var(--okdb-danger)\x207%,transparent);border:1px\x20solid\x20color-mix(in\x20srgb,var(--okdb-danger)\x2020%,transparent);border-radius:4px}.vd__loading{font-size:12px;opacity:.5;padding:40px;text-align:center}.vd__refs{display:flex;flex-direction:column;gap:4px;margin-top:4px}.vd__ref-row{display:flex;gap:8px;font-size:11px;padding:4px\x208px;background:var(--okdb-app-bg-deep);border-radius:3px;border:1px\x20solid\x20var(--okdb-app-border)}.vd__ref-name{color:var(--okdb-sky);font-family:monospace;flex:1}.vd__ref-state{color:var(--okdb-app-fg-subtle)}','stores','ready','catch','okdb','message','json','meta','148RHQeRj','VIEW_HAS_ORPHANED_INDEXES','$attr','239094fovkQn','state-changed','DELETE','5588uyYbHg','actionLoading','15qHYQee','\x20failed','definition','POST','apiBase','4308630chdWSJ','/definition','2376730boGara','view-detail','load','6800067HjnooB','#4caf50','output'];_0x3fd7=function(){return _0xbcfa6e;};return _0x3fd7();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x462ece=_0x2de5;function _0x8b82(){const _0x32f4e0=['data','onCreate','Failed\x20to\x20load\x20views','resetting','json','/views/','5708360aSmIiV','40PIZLoP','all','name','/meta','12PJKHRs','#4FC1FF','1136215JMvFde','unknown','okdb','5454112CGxcGL','apiBase','selected','views','313122fHTwhy','halted','selectedEnv','error','views-list','221660BnKfXt','2980197qIPkmN','load','loading','#fbbf24','ready','creating','$ok','<if\x20:=\x22error\x20&&\x20!loading\x22><div\x20class=\x22vl__error\x22><span>{{\x20error\x20}}</span>\x20<button\x20class=\x22vl__error-retry\x22\x20@click=\x22load()\x22\x20title=\x22Retry\x22>↺</button></div></if><button\x20class=\x22vl__item\x22\x20:class=\x22selected\x20===\x20null\x20?\x20\x27vl__item--selected\x27\x20:\x20\x27\x27\x22\x20@click=\x22selectOverview()\x22\x20style=\x22margin-bottom:4px;\x22><span\x20style=\x22font-size:13px;opacity:.6;flex-shrink:0;line-height:1;\x22>⊞</span>\x20<span\x20class=\x22vl__name\x22\x20style=\x22font-family:inherit;\x22>Overview</span></button><div\x20style=\x22height:1px;\x20background:var(--okdb-app-surface-2);\x20margin:2px\x200\x206px;\x22/><button\x20class=\x22vl__add\x22\x20@click=\x22handleCreate()\x22>+\x20Create\x20View\x20({{\x20views.length\x20}})</button><if\x20:=\x22loading\x20&&\x20views.length\x20===\x200\x22><div\x20class=\x22vl__message\x22>Loading…</div></if><each\x20:of=\x22views\x22\x20let:item=\x22v\x22><button\x20class=\x22vl__item\x22\x20:class=\x22selected\x20===\x20v.name\x20?\x20\x27vl__item--selected\x27\x20:\x20\x27\x27\x22\x20@click=\x22selectView(v)\x22\x20:title=\x22v.name\x22><span\x20class=\x22vl__name\x22>{{\x20v.name\x20}}</span>\x20<span\x20class=\x22vl__state-dot\x22\x20:style=\x22\x27background:\x27\x20+\x20stateColor(v.state)\x22/></button></each><if\x20:=\x22!loading\x20&&\x20views.length\x20===\x200\x20&&\x20!error\x22><div\x20class=\x22vl__message\x22>No\x20views</div></if>','state','/definition','stopped','$dispatch','#f44336','type','result','840052oontCS','#666','30wVHpsn','stores','$watch','map'];_0x8b82=function(){return _0x32f4e0;};return _0x8b82();}function _0x2de5(_0x5834e2,_0x5a8e9c){_0x5834e2=_0x5834e2-0xe1;const _0x8b8298=_0x8b82();let _0x2de54c=_0x8b8298[_0x5834e2];return _0x2de54c;}(function(_0x32d745,_0x734422){const _0x857e4b=_0x2de5,_0x512441=_0x32d745();while(!![]){try{const _0x2fc54b=-parseInt(_0x857e4b(0x107))/0x1+-parseInt(_0x857e4b(0xf2))/0x2+-parseInt(_0x857e4b(0x109))/0x3*(parseInt(_0x857e4b(0xf7))/0x4)+-parseInt(_0x857e4b(0xeb))/0x5*(parseInt(_0x857e4b(0xe9))/0x6)+parseInt(_0x857e4b(0xe4))/0x7+parseInt(_0x857e4b(0xee))/0x8+-parseInt(_0x857e4b(0xf8))/0x9*(-parseInt(_0x857e4b(0xe5))/0xa);if(_0x2fc54b===_0x734422)break;else _0x512441['push'](_0x512441['shift']());}catch(_0x5713a6){_0x512441['push'](_0x512441['shift']());}}}(_0x8b82,0xc758f));export default{'tag':_0x462ece(0xf6),'attr':{'onCreate':{}},'context':_0x4a9ba7=>({'views':[],'selected':null,'loading':!0x1,'error':null,async 'load'(){const _0x4a56ff=_0x462ece;this[_0x4a56ff(0xfa)]=!0x0,this[_0x4a56ff(0xf5)]=null;try{if(!_0x4a9ba7[_0x4a56ff(0xfe)][_0x4a56ff(0x10a)]['okdb'][_0x4a56ff(0xf4)])return void(this[_0x4a56ff(0xf1)]=[]);const _0xb3cc01=_0x4a9ba7[_0x4a56ff(0xfe)]['stores'][_0x4a56ff(0xed)][_0x4a56ff(0xef)],_0x1937a9=await fetch(_0xb3cc01+'/views');if(!_0x1937a9['ok'])throw new Error(_0x4a56ff(0x10f));const _0x564e5b=await _0x1937a9[_0x4a56ff(0xe2)](),_0xd3d0b9=_0x564e5b[_0x4a56ff(0x10d)]??_0x564e5b['result']??[],_0x1cf24c=await Promise[_0x4a56ff(0xe6)](_0xd3d0b9[_0x4a56ff(0x10c)](async _0x5e5587=>{const _0xe5ef6c=_0x4a56ff,[_0x439893,_0x34d683]=await Promise[_0xe5ef6c(0xe6)]([fetch(_0xb3cc01+_0xe5ef6c(0xe3)+_0x5e5587+_0xe5ef6c(0xe8)),fetch(_0xb3cc01+_0xe5ef6c(0xe3)+_0x5e5587+_0xe5ef6c(0x101))]),_0x122142=_0x439893['ok']?await _0x439893[_0xe5ef6c(0xe2)]():{},_0x3f14d8=_0x34d683['ok']?await _0x34d683[_0xe5ef6c(0xe2)]():{},_0x314b58=_0x122142[_0xe5ef6c(0x10d)]??_0x122142[_0xe5ef6c(0x106)]??{},_0x3b0cd8=_0x3f14d8[_0xe5ef6c(0x10d)]??_0x3f14d8[_0xe5ef6c(0x106)]??{};return{'name':_0x5e5587,'state':_0x314b58?.[_0xe5ef6c(0x100)]??_0xe5ef6c(0xec),'type':_0x3b0cd8?.[_0xe5ef6c(0x105)]??'?'};}));this[_0x4a56ff(0xf1)]=_0x1cf24c;}catch(_0x13b94f){this[_0x4a56ff(0xf5)]=_0x13b94f['message'];}finally{this['loading']=!0x1;}},'selectOverview'(){const _0xf40516=_0x462ece;this['selected']=null,_0x4a9ba7['$dispatch'](_0xf40516(0xf0),null);},'selectView'(_0xf919b5){const _0x1a874e=_0x462ece;this[_0x1a874e(0xf0)]=_0xf919b5[_0x1a874e(0xe7)],_0x4a9ba7[_0x1a874e(0x103)](_0x1a874e(0xf0),_0xf919b5[_0x1a874e(0xe7)]);},'handleCreate'(){const _0x474a07=_0x462ece;_0x4a9ba7['$attr'][_0x474a07(0x10e)]?.();},'stateColor'(_0x2dca79){const _0x34676a=_0x462ece;switch(_0x2dca79){case _0x34676a(0xfc):return'#4caf50';case _0x34676a(0xfd):case _0x34676a(0xe1):return _0x34676a(0xea);case _0x34676a(0xf3):return _0x34676a(0x104);case _0x34676a(0x102):return _0x34676a(0xfb);default:return _0x34676a(0x108);}}}),'mount'(_0x4c01c0){const _0xc0a66f=_0x462ece;_0x4c01c0[_0xc0a66f(0x10b)](()=>_0x4c01c0['$ok'][_0xc0a66f(0x10a)][_0xc0a66f(0xed)][_0xc0a66f(0xf4)],()=>this[_0xc0a66f(0xf9)]()),this[_0xc0a66f(0xf9)]();},'style':'views-list{position:relative;display:flex;flex-direction:column;gap:2px}views-list\x20button{text-align:left}.vl__add{font-size:12px;padding:7px\x2010px;margin-bottom:4px}.vl__item{display:flex;align-items:center;gap:6px;padding:6px\x2010px;font-size:12px;background:0\x200;border-color:transparent;color:var(--okdb-app-fg-muted);border-radius:7px;width:100%}.vl__item:hover{background:var(--okdb-app-surface-2);border-color:var(--okdb-app-border);color:var(--okdb-app-fg)}.vl__item--selected{background:var(--okdb-app-bg-deep)!important;border-color:color-mix(in\x20srgb,var(--okdb-accent)\x2027%,transparent)!important;color:var(--okdb-accent)!important}.vl__name{flex:1;font-family:monospace;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vl__state-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.vl__error{display:flex;align-items:flex-start;gap:6px;padding:8px\x2010px;font-size:11px;color:var(--okdb-danger);background:rgba(255,60,60,.06);border:1px\x20solid\x20rgba(255,60,60,.18);border-radius:6px;line-height:1.4;word-break:break-word}.vl__error\x20span{flex:1}.vl__error-retry{flex-shrink:0;background:0\x200;border:0;color:var(--okdb-danger);cursor:pointer;font-size:14px;padding:0\x202px;opacity:.7}.vl__error-retry:hover{opacity:1}.vl__message{font-size:11px;opacity:.5;padding:8px;text-align:center;color:var(--okdb-app-fg-muted)}','template':_0x462ece(0xff)};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x2effc4=_0x3667;function _0x479a(){const _0x13f167=['stopped','$watch','length','halted','$dispatch','views-overview','/meta','Failed\x20to\x20load\x20views','type','/views/','952362LothwU','129240vJaLcv','all','load','data','2593232EDamJQ','json','clock','resetting','filter','unknown','755380JNubYl','selectedEnv','<div\x20class=\x22vo-wrap\x22><div\x20style=\x22display:flex;\x20align-items:center;\x20gap:10px;\x22><div\x20style=\x22font-weight:600;\x20font-size:18px;\x22>Views\x20Overview</div><if\x20:=\x22loading\x22><span\x20style=\x22font-size:12px;\x20opacity:.4;\x22>loading…</span></if><div\x20style=\x22margin-left:auto;\x22><button\x20@click=\x22load()\x22\x20:disabled=\x22loading\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20opacity:.75;\x22>↻\x20Refresh</button></div></div><if\x20:=\x22error\x22><div\x20class=\x22vo-error-banner\x22>{{\x20error\x20}}</div></if><div\x20class=\x22vo-stat-row\x22><div\x20class=\x22vo-stat-card\x22\x20:class=\x22filterState\x20===\x20null\x20?\x20\x27vo-stat-card--active\x27\x20:\x20\x27\x27\x22\x20@click=\x22toggleFilter(null)\x22\x20title=\x22Show\x20all\x20views\x22><div\x20class=\x22vo-stat-label\x22>Total\x20Views</div><div\x20class=\x22vo-stat-value\x22\x20style=\x22color:var(--okdb-accent);\x22>{{\x20totalCount\x20}}</div></div><div\x20class=\x22vo-stat-card\x22\x20:class=\x22filterState\x20===\x20\x27ready\x27\x20?\x20\x27vo-stat-card--active\x27\x20:\x20\x27\x27\x22\x20@click=\x22toggleFilter(\x27ready\x27)\x22\x20title=\x22Filter:\x20ready\x22><div\x20class=\x22vo-stat-label\x22>Ready</div><div\x20class=\x22vo-stat-value\x22\x20style=\x22color:var(--okdb-success);\x22>{{\x20readyCount\x20}}</div></div><div\x20class=\x22vo-stat-card\x22\x20:class=\x22filterState\x20===\x20\x27halted\x27\x20?\x20\x27vo-stat-card--active\x27\x20:\x20\x27\x27\x22\x20@click=\x22toggleFilter(\x27halted\x27)\x22\x20title=\x22Filter:\x20halted\x22><div\x20class=\x22vo-stat-label\x22>Halted</div><div\x20class=\x22vo-stat-value\x22\x20style=\x22color:var(--okdb-danger);\x22>{{\x20haltedCount\x20}}</div></div><div\x20class=\x22vo-stat-card\x22\x20:class=\x22filterState\x20===\x20\x27stopped\x27\x20?\x20\x27vo-stat-card--active\x27\x20:\x20\x27\x27\x22\x20@click=\x22toggleFilter(\x27stopped\x27)\x22\x20title=\x22Filter:\x20stopped\x22><div\x20class=\x22vo-stat-label\x22>Stopped</div><div\x20class=\x22vo-stat-value\x22\x20style=\x22color:var(--okdb-warning);\x22>{{\x20stoppedCount\x20}}</div></div></div><if\x20:=\x22!loading\x20&&\x20totalCount\x20===\x200\x20&&\x20!error\x22><div\x20class=\x22vo-empty\x22><div\x20style=\x22font-size:32px;\x20opacity:.15;\x22>⊞</div><div\x20style=\x22font-weight:600;\x20font-size:15px;\x22>No\x20views\x20yet</div><div\x20style=\x22font-size:13px;\x20opacity:.55;\x20line-height:1.7;\x20max-width:320px;\x22>Views\x20are\x20materialized\x20projections\x20over\x20your\x20data.\x20Use\x20<b>+\x20Create\x20View</b>\x20in\x20the\x20sidebar\x20to\x20define\x20one.</div></div></if><if\x20:=\x22totalCount\x20>\x200\x22><div\x20class=\x22vo-card\x22><div\x20class=\x22vo-card-head\x22><span\x20style=\x22font-weight:600;\x20font-size:14px;\x22>Views</span><if\x20:=\x22inProgressCount\x20>\x200\x22><span\x20style=\x22font-size:11px;\x20padding:2px\x208px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-sky)\x2030%,\x20transparent);\x20color:var(--okdb-sky);\x20background:color-mix(in\x20srgb,\x20var(--okdb-sky)\x206%,\x20transparent);\x22>{{\x20inProgressCount\x20}}\x20in\x20progress</span></if><div\x20style=\x22margin-left:auto;\x22\x20class=\x22vo-filter-bar\x22><span\x20style=\x22font-size:11px;\x20opacity:.4;\x22>Filter:</span>\x20<button\x20class=\x22vo-filter-pill\x22\x20:class=\x22filterState\x20===\x20null\x20?\x20\x27vo-filter-pill--active\x27\x20:\x20\x27\x27\x22\x20@click=\x22toggleFilter(null)\x22>All</button>\x20<button\x20class=\x22vo-filter-pill\x22\x20:class=\x22filterState\x20===\x20\x27ready\x27\x20?\x20\x27vo-filter-pill--active\x27\x20:\x20\x27\x27\x22\x20@click=\x22toggleFilter(\x27ready\x27)\x22><span\x20class=\x22vo-state-dot\x22\x20style=\x22background:var(--okdb-success);\x22/>ready</button>\x20<button\x20class=\x22vo-filter-pill\x22\x20:class=\x22filterState\x20===\x20\x27halted\x27\x20?\x20\x27vo-filter-pill--active\x27\x20:\x20\x27\x27\x22\x20@click=\x22toggleFilter(\x27halted\x27)\x22><span\x20class=\x22vo-state-dot\x22\x20style=\x22background:var(--okdb-danger);\x22/>halted</button>\x20<button\x20class=\x22vo-filter-pill\x22\x20:class=\x22filterState\x20===\x20\x27stopped\x27\x20?\x20\x27vo-filter-pill--active\x27\x20:\x20\x27\x27\x22\x20@click=\x22toggleFilter(\x27stopped\x27)\x22><span\x20class=\x22vo-state-dot\x22\x20style=\x22background:var(--okdb-warning);\x22/>stopped</button></div></div><table\x20class=\x22vo-table\x22><thead><tr><th>Name</th><th>Type</th><th>State</th><th\x20style=\x22text-align:right;\x22>Clock</th><th>Error</th><th/></tr></thead><tbody><tr\x20as=\x22repeat\x22\x20:of=\x22filteredViews\x22\x20let:item=\x22v\x22\x20class=\x22vo-row\x22\x20@click=\x22selectView(v)\x22\x20title=\x22Open\x20view\x22><td><span\x20style=\x22font-family:monospace;\x20font-size:13px;\x20font-weight:500;\x22>{{\x20v.name\x20}}</span></td><td><span\x20style=\x22font-family:monospace;\x20font-size:12px;\x20opacity:.7;\x22>{{\x20v.type\x20}}</span></td><td><span\x20style=\x22display:inline-flex;\x20align-items:center;\x20gap:5px;\x22><span\x20class=\x22vo-state-dot\x22\x20:style=\x22\x27background:\x27\x20+\x20stateColor(v.state)\x22/>\x20<span\x20:style=\x22\x27font-size:12px;\x20color:\x27\x20+\x20stateColor(v.state)\x22>{{\x20v.state\x20}}</span></span></td><td\x20style=\x22text-align:right;\x20font-family:monospace;\x20font-size:12px;\x20opacity:.5;\x22>{{\x20fmt(v.clock)\x20}}</td><td\x20style=\x22max-width:260px;\x22><if\x20:=\x22v.error\x22><span\x20style=\x22font-size:11px;\x20color:var(--okdb-danger);\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x20display:block;\x22\x20:title=\x22v.error\x22>{{\x20v.error\x20}}</span></if></td><td\x20style=\x22text-align:right;\x20opacity:.3;\x20font-size:11px;\x20padding-right:16px;\x22>→</td></tr><if\x20:=\x22filteredViews.length\x20===\x200\x22><tr><td\x20colspan=\x226\x22\x20style=\x22text-align:center;\x20padding:20px;\x20font-size:12px;\x20opacity:.4;\x22>No\x20views\x20match\x20this\x20filter.</td></tr></if></tbody></table></div></if><if\x20:=\x22haltedWithErrors.length\x20>\x200\x22><div\x20class=\x22vo-card\x22><div\x20class=\x22vo-card-head\x22><span\x20style=\x22font-weight:600;\x20font-size:14px;\x22>Errors</span>\x20<span\x20style=\x22font-size:11px;\x20padding:2px\x2010px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent);\x20color:var(--okdb-danger);\x20background:color-mix(in\x20srgb,\x20var(--okdb-danger)\x205%,\x20transparent);\x20font-weight:600;\x22>{{\x20haltedWithErrors.length\x20}}\x20</span><span\x20style=\x22font-size:12px;\x20opacity:.4;\x20margin-left:auto;\x22>halted\x20views\x20with\x20error\x20details</span></div><div\x20style=\x22padding:14px\x2016px;\x20display:flex;\x20flex-direction:column;\x20gap:8px;\x22><each\x20:of=\x22haltedWithErrors\x22\x20let:item=\x22v\x22><div\x20class=\x22vo-error-card\x22\x20style=\x22cursor:pointer;\x22\x20@click=\x22selectView(v)\x22\x20title=\x22Open\x20view\x22><div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x22><span\x20class=\x22vo-error-name\x22>{{\x20v.name\x20}}</span><if\x20:=\x22v.type\x22><span\x20style=\x22font-size:10px;\x20font-family:monospace;\x20opacity:.5;\x22>{{\x20v.type\x20}}</span></if><span\x20style=\x22margin-left:auto;\x20font-size:11px;\x20opacity:.5;\x22>clock\x20{{\x20fmt(v.clock)\x20}}</span></div><div\x20class=\x22vo-error-msg\x22>{{\x20v.error\x20}}</div></div></each></div></div></if></div>','select','message','error','ready','apiBase','views','1050964QvhHCq','views-overview{display:block}views-overview\x20.vo-wrap{display:flex;flex-direction:column;gap:20px;max-width:860px}views-overview\x20.vo-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}views-overview\x20.vo-stat-card{background:var(--okdb-app-surface);border:1px\x20solid\x20var(--okdb-app-border);border-radius:12px;padding:16px\x2018px;display:flex;flex-direction:column;gap:6px;box-shadow:0\x202px\x208px\x20#0003;cursor:pointer;transition:border-color\x20.15s,box-shadow\x20.15s}views-overview\x20.vo-stat-card:hover{border-color:var(--okdb-app-border-strong)}views-overview\x20.vo-stat-card--active{border-color:color-mix(in\x20srgb,var(--okdb-accent)\x2050%,transparent)!important;box-shadow:0\x200\x200\x201px\x20color-mix(in\x20srgb,var(--okdb-accent)\x2015%,transparent),0\x202px\x208px\x20#0003}views-overview\x20.vo-stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;opacity:.5}views-overview\x20.vo-stat-value{font-size:22px;font-weight:700;line-height:1}views-overview\x20.vo-card{background:var(--okdb-app-surface);border:1px\x20solid\x20var(--okdb-app-border);border-radius:12px;overflow:hidden;box-shadow:0\x202px\x208px\x20#0003}views-overview\x20.vo-card-head{padding:13px\x2016px;border-bottom:1px\x20solid\x20var(--okdb-app-border);display:flex;align-items:center;gap:10px}views-overview\x20.vo-table{width:100%;border-collapse:collapse;font-size:13px}views-overview\x20.vo-table\x20th{padding:7px\x2016px;text-align:left;font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.05em;opacity:.4;border-bottom:1px\x20solid\x20var(--okdb-app-border);background:var(--okdb-app-bg)}views-overview\x20.vo-table\x20td{padding:9px\x2016px;border-bottom:1px\x20solid\x20var(--okdb-app-surface-2)}views-overview\x20.vo-row{cursor:pointer;transition:background\x20.1s}views-overview\x20.vo-row:hover\x20td{background:#ffffff07}views-overview\x20.vo-table\x20tbody\x20tr:last-child\x20td{border-bottom:none}views-overview\x20.vo-filter-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}views-overview\x20.vo-filter-pill{display:inline-flex;align-items:center;gap:5px;padding:3px\x2010px;border-radius:999px;border:1px\x20solid\x20var(--okdb-app-border);font-size:11px;cursor:pointer;background:0\x200;color:var(--okdb-app-fg-muted);transition:all\x20.15s}views-overview\x20.vo-filter-pill:hover{border-color:var(--okdb-app-border-strong);color:var(--okdb-app-fg)}views-overview\x20.vo-filter-pill--active{background:color-mix(in\x20srgb,var(--okdb-accent)\x2012%,transparent);border-color:color-mix(in\x20srgb,var(--okdb-accent)\x2040%,transparent);color:var(--okdb-accent)}views-overview\x20.vo-state-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;display:inline-block}views-overview\x20.vo-error-card{background:color-mix(in\x20srgb,var(--okdb-danger)\x205%,transparent);border:1px\x20solid\x20color-mix(in\x20srgb,var(--okdb-danger)\x2020%,transparent);border-radius:8px;padding:10px\x2014px;display:flex;flex-direction:column;gap:4px}views-overview\x20.vo-error-name{font-family:monospace;font-size:12px;font-weight:600;color:var(--okdb-danger)}views-overview\x20.vo-error-msg{font-size:12px;color:var(--okdb-app-fg-muted);line-height:1.5;word-break:break-all}views-overview\x20.vo-empty{border:1px\x20dashed\x20var(--okdb-app-border);border-radius:14px;padding:40px\x2032px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}views-overview\x20.vo-error-banner{font-size:12px;color:var(--okdb-danger);padding:10px\x2014px;background:color-mix(in\x20srgb,var(--okdb-danger)\x207%,transparent);border:1px\x20solid\x20color-mix(in\x20srgb,var(--okdb-danger)\x2020%,transparent);border-radius:8px}','result','filterState','3oiSEiv','/definition','state','creating','okdb','$ok','var(--okdb-danger)','714483deozdi','/views','refs','10614Qwyrlh','stores','loading','var(--okdb-warning)'];_0x479a=function(){return _0x13f167;};return _0x479a();}function _0x3667(_0x2d7b75,_0x2cbfdb){_0x2d7b75=_0x2d7b75-0x156;const _0x479af7=_0x479a();let _0x3667ba=_0x479af7[_0x2d7b75];return _0x3667ba;}(function(_0x1d5894,_0x369f62){const _0x23ba4d=_0x3667,_0x586bac=_0x1d5894();while(!![]){try{const _0x337173=-parseInt(_0x23ba4d(0x174))/0x1+parseInt(_0x23ba4d(0x182))/0x2+-parseInt(_0x23ba4d(0x16a))/0x3*(-parseInt(_0x23ba4d(0x166))/0x4)+-parseInt(_0x23ba4d(0x15d))/0x5+-parseInt(_0x23ba4d(0x183))/0x6+parseInt(_0x23ba4d(0x171))/0x7+-parseInt(_0x23ba4d(0x157))/0x8;if(_0x337173===_0x369f62)break;else _0x586bac['push'](_0x586bac['shift']());}catch(_0x2656e7){_0x586bac['push'](_0x586bac['shift']());}}}(_0x479a,0x51727));export default{'tag':_0x2effc4(0x17d),'context':_0xce92f4=>({'views':[],'loading':!0x1,'error':null,'filterState':null,async 'load'(){const _0x5409a4=_0x2effc4;this[_0x5409a4(0x176)]=!0x0,this['error']=null;try{const _0x25b95d=_0xce92f4[_0x5409a4(0x16f)][_0x5409a4(0x175)][_0x5409a4(0x16e)][_0x5409a4(0x164)],_0x421a15=await fetch(_0x25b95d+_0x5409a4(0x172));if(!_0x421a15['ok'])throw new Error(_0x5409a4(0x17f));const _0x513430=await _0x421a15[_0x5409a4(0x158)](),_0xe9b6aa=_0x513430[_0x5409a4(0x156)]??_0x513430[_0x5409a4(0x168)]??[],_0x144ccd=await Promise['all'](_0xe9b6aa['map'](async _0x3ceca3=>{const _0x9d4500=_0x5409a4,[_0x43209e,_0x5bdcb4]=await Promise[_0x9d4500(0x184)]([fetch(_0x25b95d+_0x9d4500(0x181)+_0x3ceca3+_0x9d4500(0x17e)),fetch(_0x25b95d+_0x9d4500(0x181)+_0x3ceca3+_0x9d4500(0x16b))]),_0x3d3948=_0x43209e['ok']?await _0x43209e[_0x9d4500(0x158)]():{},_0x4237b8=_0x5bdcb4['ok']?await _0x5bdcb4['json']():{},_0x21d849=_0x3d3948[_0x9d4500(0x156)]??_0x3d3948['result']??{},_0x591cb4=_0x4237b8[_0x9d4500(0x156)]??_0x4237b8[_0x9d4500(0x168)]??{};return{'name':_0x3ceca3,'state':_0x21d849?.['state']??_0x9d4500(0x15c),'type':_0x591cb4?.[_0x9d4500(0x180)]??'?','clock':_0x21d849?.[_0x9d4500(0x159)]??null,'error':_0x21d849?.[_0x9d4500(0x162)]??null,'refs':_0x21d849?.[_0x9d4500(0x173)]??null};}));this[_0x5409a4(0x165)]=_0x144ccd;}catch(_0x140b6a){this[_0x5409a4(0x162)]=_0x140b6a[_0x5409a4(0x161)];}finally{this[_0x5409a4(0x176)]=!0x1;}},get 'totalCount'(){const _0x4644d1=_0x2effc4;return this['views'][_0x4644d1(0x17a)];},get 'readyCount'(){const _0x5641e5=_0x2effc4;return this[_0x5641e5(0x165)][_0x5641e5(0x15b)](_0x2729b9=>_0x5641e5(0x163)===_0x2729b9[_0x5641e5(0x16c)])['length'];},get 'haltedCount'(){const _0x230b6d=_0x2effc4;return this['views'][_0x230b6d(0x15b)](_0x5b53b8=>_0x230b6d(0x17b)===_0x5b53b8[_0x230b6d(0x16c)])[_0x230b6d(0x17a)];},get 'stoppedCount'(){const _0x3db6dd=_0x2effc4;return this[_0x3db6dd(0x165)]['filter'](_0xa0a4ac=>_0x3db6dd(0x178)===_0xa0a4ac[_0x3db6dd(0x16c)])[_0x3db6dd(0x17a)];},get 'inProgressCount'(){const _0x5b696e=_0x2effc4;return this['views'][_0x5b696e(0x15b)](_0x211173=>_0x5b696e(0x16d)===_0x211173[_0x5b696e(0x16c)]||_0x5b696e(0x15a)===_0x211173[_0x5b696e(0x16c)])['length'];},get 'filteredViews'(){const _0x136ec3=_0x2effc4;return this[_0x136ec3(0x169)]?this[_0x136ec3(0x165)][_0x136ec3(0x15b)](_0x5c8ef8=>_0x5c8ef8[_0x136ec3(0x16c)]===this[_0x136ec3(0x169)]):this['views'];},get 'haltedWithErrors'(){const _0x2062ee=_0x2effc4;return this['views'][_0x2062ee(0x15b)](_0x4a9747=>_0x2062ee(0x17b)===_0x4a9747[_0x2062ee(0x16c)]&&_0x4a9747[_0x2062ee(0x162)]);},'toggleFilter'(_0x4b33e0){const _0x309f80=_0x2effc4;this[_0x309f80(0x169)]=this[_0x309f80(0x169)]===_0x4b33e0?null:_0x4b33e0;},'stateColor'(_0x42f230){const _0x56f608=_0x2effc4;switch(_0x42f230){case _0x56f608(0x163):return'var(--okdb-success)';case _0x56f608(0x16d):case _0x56f608(0x15a):return'var(--okdb-sky)';case _0x56f608(0x17b):return _0x56f608(0x170);case _0x56f608(0x178):return _0x56f608(0x177);default:return'var(--okdb-app-fg-muted)';}},'fmt':_0x5dcee4=>null==_0x5dcee4?'—':Number(_0x5dcee4)['toLocaleString'](),'selectView'(_0x23ae4b){const _0x4e9f47=_0x2effc4;_0xce92f4[_0x4e9f47(0x17c)](_0x4e9f47(0x160),_0x23ae4b['name']);}}),'mount'(_0x1aaa54){const _0x49cfbe=_0x2effc4;_0x1aaa54[_0x49cfbe(0x179)](()=>_0x1aaa54[_0x49cfbe(0x16f)][_0x49cfbe(0x175)]['okdb'][_0x49cfbe(0x15e)],()=>{const _0x1ee8fb=_0x49cfbe;this[_0x1ee8fb(0x169)]=null,this[_0x1ee8fb(0x185)]();}),this['load']();},'style':_0x2effc4(0x167),'template':_0x2effc4(0x15f)};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x2dbd(){const _0x4f8b33=['stringify','submit','createConfirm','trim','346486sTNAXJ','5923128bYkmVE','error','hidden','2258700GLIfvI','184RFNghs','getElementById','replace','location','joinError','textContent','catch','joinForm','368613olQzRB','1408805TzpDsP','Username\x20is\x20required','addEventListener','Failed\x20to\x20join\x20cluster','POST','Cluster\x20sync\x20token\x20is\x20required','28PlWqYl','313653kEovzV','Passwords\x20do\x20not\x20match','joinAddress','message','createPassword','/admin/login','createName','data','createLabel','value','/api/auth/tokens','same-origin','Password\x20is\x20required','/admin/setup/join','json','Failed\x20to\x20create\x20admin\x20token','13108131hhWjHI','preventDefault','application/json'];_0x2dbd=function(){return _0x4f8b33;};return _0x2dbd();}function _0x19db(_0x2324d7,_0x104811){_0x2324d7=_0x2324d7-0x6c;const _0x2dbd7e=_0x2dbd();let _0x19db50=_0x2dbd7e[_0x2324d7];return _0x19db50;}const _0x3267d1=_0x19db;(function(_0x5b15ba,_0x436b6a){const _0x5b3f8f=_0x19db,_0x21c2cc=_0x5b15ba();while(!![]){try{const _0x340b3c=-parseInt(_0x5b3f8f(0x79))/0x1+-parseInt(_0x5b3f8f(0x7d))/0x2+-parseInt(_0x5b3f8f(0x8e))/0x3*(-parseInt(_0x5b3f8f(0x8d))/0x4)+-parseInt(_0x5b3f8f(0x87))/0x5+-parseInt(_0x5b3f8f(0x7a))/0x6+parseInt(_0x5b3f8f(0x86))/0x7*(parseInt(_0x5b3f8f(0x7e))/0x8)+parseInt(_0x5b3f8f(0x72))/0x9;if(_0x340b3c===_0x436b6a)break;else _0x21c2cc['push'](_0x21c2cc['shift']());}catch(_0x51ae38){_0x21c2cc['push'](_0x21c2cc['shift']());}}}(_0x2dbd,0x9fd60),(document[_0x3267d1(0x7f)]('createForm')['addEventListener']('submit',async _0xa60363=>{const _0x17ac78=_0x3267d1;_0xa60363[_0x17ac78(0x73)]();const _0x371c01=document[_0x17ac78(0x7f)]('createError');_0x371c01[_0x17ac78(0x7c)]=!0x0;const _0x9d21f8=document['getElementById'](_0x17ac78(0x94))[_0x17ac78(0x97)][_0x17ac78(0x78)](),_0x409041=document[_0x17ac78(0x7f)](_0x17ac78(0x92))['value'],_0x1e8087=document[_0x17ac78(0x7f)](_0x17ac78(0x77))[_0x17ac78(0x97)],_0x1221c0=document[_0x17ac78(0x7f)](_0x17ac78(0x96))[_0x17ac78(0x97)]['trim']()||'Initial\x20admin';if(!_0x9d21f8)return _0x371c01[_0x17ac78(0x7c)]=!0x1,void(_0x371c01[_0x17ac78(0x83)]=_0x17ac78(0x88));if(!_0x409041)return _0x371c01[_0x17ac78(0x7c)]=!0x1,void(_0x371c01['textContent']=_0x17ac78(0x6e));if(_0x409041!==_0x1e8087)return _0x371c01[_0x17ac78(0x7c)]=!0x1,void(_0x371c01[_0x17ac78(0x83)]=_0x17ac78(0x8f));const _0x17922e=await fetch(_0x17ac78(0x6c),{'method':_0x17ac78(0x8b),'headers':{'content-type':'application/json'},'credentials':_0x17ac78(0x6d),'body':JSON[_0x17ac78(0x75)]({'name':_0x9d21f8,'password':_0x409041,'label':_0x1221c0,'permissions':['*']})}),_0x381373=await _0x17922e['json']()[_0x17ac78(0x84)](()=>({}));if(!_0x17922e['ok'])return _0x371c01[_0x17ac78(0x7c)]=!0x1,void(_0x371c01[_0x17ac78(0x83)]=_0x381373?.['error']?.[_0x17ac78(0x91)]||_0x381373?.[_0x17ac78(0x7b)]||_0x381373?.[_0x17ac78(0x95)]?.[_0x17ac78(0x7b)]||_0x17ac78(0x71));window[_0x17ac78(0x81)][_0x17ac78(0x80)](_0x17ac78(0x93));}),document[_0x3267d1(0x7f)](_0x3267d1(0x85))[_0x3267d1(0x89)](_0x3267d1(0x76),async _0x3ef6dc=>{const _0xf5be48=_0x3267d1;_0x3ef6dc[_0xf5be48(0x73)]();const _0x127fae=document[_0xf5be48(0x7f)](_0xf5be48(0x82));_0x127fae['hidden']=!0x0;const _0x357f48=document[_0xf5be48(0x7f)](_0xf5be48(0x90))[_0xf5be48(0x97)][_0xf5be48(0x78)](),_0x345cf0=document['getElementById']('joinToken')[_0xf5be48(0x97)][_0xf5be48(0x78)]();if(!_0x357f48)return _0x127fae[_0xf5be48(0x7c)]=!0x1,void(_0x127fae[_0xf5be48(0x83)]='Remote\x20node\x20address\x20is\x20required');if(!_0x345cf0)return _0x127fae[_0xf5be48(0x7c)]=!0x1,void(_0x127fae[_0xf5be48(0x83)]=_0xf5be48(0x8c));const _0x1f43d3=await fetch(_0xf5be48(0x6f),{'method':_0xf5be48(0x8b),'headers':{'content-type':_0xf5be48(0x74)},'credentials':_0xf5be48(0x6d),'body':JSON[_0xf5be48(0x75)]({'address':_0x357f48,'token':_0x345cf0})}),_0x2a6f46=await _0x1f43d3[_0xf5be48(0x70)]()[_0xf5be48(0x84)](()=>({}));if(!_0x1f43d3['ok'])return _0x127fae['hidden']=!0x1,void(_0x127fae[_0xf5be48(0x83)]=_0x2a6f46?.['error']?.[_0xf5be48(0x91)]||_0x2a6f46?.['error']||_0x2a6f46?.[_0xf5be48(0x95)]?.[_0xf5be48(0x7b)]||_0xf5be48(0x8a));window[_0xf5be48(0x81)][_0xf5be48(0x80)]('/admin/login');})));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" type="image/png" href="favicon.ico"><link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png"><link rel="manifest" href="site.webmanifest"><title>OKDB Setup</title><script>!function(){try{var t=localStorage.getItem("okdbTheme");"dark"!==t&&"light"!==t&&(t=window.matchMedia&&window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"),"light"===t&&document.documentElement.setAttribute("data-theme","light")}catch(t){}}()</script><style>:root{color-scheme:dark;--bg0:#071018;--bg1:#0d1722;--bg2:#142235;--line:#27415f;--text:#e8f2ff;--muted:#9ab2cc;--accent:#4fc1ff;--accent2:#7ee787}:root[data-theme=light]{color-scheme:light;--bg0:#dce8f5;--bg1:#f0f6fc;--bg2:#ffffff;--line:#b0c8e0;--text:#0d1a28;--muted:#3a5870;--accent:#1a7ab8;--accent2:#16a34a}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:radial-gradient(circle at top,#16304b 0,var(--bg0) 45%,#05090f 100%);display:flex;align-items:center;justify-content:center;padding:24px}[data-theme=light] body{background:radial-gradient(circle at top,#c8dff5 0,var(--bg0) 45%,#e8f2ff 100%)}.shell{width:min(1000px,100%);display:flex;flex-direction:column;gap:0}.header{margin-bottom:28px;text-align:center}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:rgba(79,193,255,.12);color:var(--accent);font-size:12px;letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(79,193,255,.18)}h1{font-size:32px;line-height:1.1;margin:14px 0 6px}.subtitle{color:var(--muted);font-size:15px;margin:0}.panels{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel{background:rgba(8,16,26,.86);border:1px solid rgba(79,193,255,.16);border-radius:18px;padding:28px;backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:20px}.panel-title{font-size:17px;font-weight:700;margin:0}.panel-desc{font-size:13px;color:var(--muted);margin:0;line-height:1.55}.stack{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;color:var(--muted)}.field input{width:100%;background:#0b1420;color:var(--text);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px 14px;outline:0;font-size:14px}.field input:focus{border-color:rgba(79,193,255,.45);box-shadow:0 0 0 3px rgba(79,193,255,.12)}.button{display:inline-flex;align-items:center;justify-content:center;width:100%;border:none;cursor:pointer;font-family:inherit;font-weight:700;font-size:15px;border-radius:12px;padding:14px 16px;background:linear-gradient(135deg,var(--accent),#8fdcff);color:#04111f;box-shadow:0 10px 30px rgba(79,193,255,.22)}.button:hover{filter:brightness(1.04)}.button.green{background:linear-gradient(135deg,var(--accent2),#a8f0b4);box-shadow:0 10px 30px rgba(126,231,135,.18)}.error{padding:10px 12px;border-radius:10px;background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.25);color:#fecaca;font-size:13px}.success{padding:10px 12px;border-radius:10px;background:rgba(126,231,135,.1);border:1px solid rgba(126,231,135,.25);color:#a8f0b4;font-size:13px}@media (max-width:720px){.panels{grid-template-columns:1fr}}[data-theme=light] .panel{background:rgba(255,255,255,.92);border-color:rgba(26,122,184,.2)}[data-theme=light] .field input{background:var(--bg2);border-color:var(--line)}</style></head><body><main class="shell"><header class="header"><div class="eyebrow">OKDB First-Time Setup</div><h1>Welcome to OKDB</h1><p class="subtitle">This node has no credentials yet. Create an admin token or join an existing cluster.</p></header><div class="panels"><section class="panel" id="createPanel"><div><p class="panel-title">Create first admin token</p><p class="panel-desc">Set up credentials for this node. You'll log in with these after setup.</p></div><form id="createForm" class="stack"><div class="field"><label for="createName">Username</label> <input id="createName" name="name" value="admin" autocomplete="username" placeholder="admin"></div><div class="field"><label for="createPassword">Password</label> <input id="createPassword" name="password" type="password" autocomplete="new-password" placeholder="••••••••"></div><div class="field"><label for="createConfirm">Confirm password</label> <input id="createConfirm" name="confirm" type="password" autocomplete="new-password" placeholder="••••••••"></div><div class="field"><label for="createLabel">Label <span style="color:var(--muted)">(optional)</span></label> <input id="createLabel" name="label" value="Initial admin" placeholder="Initial admin"></div><div id="createError" class="error" hidden></div><button type="submit" class="button">Create admin and continue</button></form></section><section class="panel" id="joinPanel"><div><p class="panel-title">Join an existing cluster</p><p class="panel-desc">Connect to a running OKDB node. The cluster admin provides the sync token out-of-band.</p></div><form id="joinForm" class="stack"><div class="field"><label for="joinAddress">Remote node address</label> <input id="joinAddress" name="address" placeholder="https://node-a.example.com:8484"></div><div class="field"><label for="joinToken">Cluster sync token</label> <input id="joinToken" name="token" type="password" placeholder="cluster sync token"></div><div id="joinError" class="error" hidden></div><button type="submit" class="button green">Join cluster</button></form></section></div></main><script type="module" src="setup-app.js"></script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"","short_name":"","icons":[{"src":"/admin/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/admin/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(_0x359954,_0x53d0e3){const _0x1f09b4=_0x4c0a,_0x4429cf=_0x359954();while(!![]){try{const _0x1eb5db=-parseInt(_0x1f09b4(0x88))/0x1+-parseInt(_0x1f09b4(0x76))/0x2+parseInt(_0x1f09b4(0x79))/0x3*(parseInt(_0x1f09b4(0x6d))/0x4)+parseInt(_0x1f09b4(0xaa))/0x5+parseInt(_0x1f09b4(0x77))/0x6*(-parseInt(_0x1f09b4(0xa0))/0x7)+-parseInt(_0x1f09b4(0x82))/0x8+-parseInt(_0x1f09b4(0x70))/0x9*(-parseInt(_0x1f09b4(0x85))/0xa);if(_0x1eb5db===_0x53d0e3)break;else _0x4429cf['push'](_0x4429cf['shift']());}catch(_0x4101a3){_0x4429cf['push'](_0x4429cf['shift']());}}}(_0x355d,0xd925d));import{ok as _0x6201d6}from'../modules/ok.js';import{hasPermission as _0x134fde,setImpliedBy as _0x3e3a44}from'../util/permissions.js';export default _0x6201d6['proxy']({'config':null,'session':null,'catalog':null,'loading':!0x1,'error':null,'notices':[],'noticesDismissed':!0x1,get 'mode'(){const _0x52407f=_0x4c0a;return this[_0x52407f(0xad)]?.[_0x52407f(0x71)]??'open';},get 'openAccess'(){const _0x27d944=_0x4c0a;return!!this[_0x27d944(0xad)]?.[_0x27d944(0xb6)];},get 'isAuthenticated'(){const _0x5dd4b5=_0x4c0a;return!!this[_0x5dd4b5(0x78)]?.['authenticated'];},get 'user'(){const _0xdfe52c=_0x4c0a;return this[_0xdfe52c(0x78)]?.[_0xdfe52c(0x90)]??null;},get 'grants'(){return this['session']?.['grants']??{};},get 'username'(){const _0x27aa80=_0x4c0a;return this['user']?.['username']??(this[_0x27aa80(0xb6)]?_0x27aa80(0x72):null);},get 'rolesLabel'(){const _0xbef7b7=_0x4c0a,_0xc08d73=this[_0xbef7b7(0x90)]?.[_0xbef7b7(0x99)];return Array[_0xbef7b7(0x8b)](_0xc08d73)&&_0xc08d73[_0xbef7b7(0x84)]?_0xc08d73[_0xbef7b7(0xb2)](',\x20'):'';},'can'(_0x1ffb2d){const _0x451ebc=_0x4c0a;if(this[_0x451ebc(0xb6)])return!0x0;const _0xb086d8=this[_0x451ebc(0x90)]?.[_0x451ebc(0x99)];return!!_0xb086d8&&_0x134fde(_0xb086d8,_0x1ffb2d);},'canForEnv'(_0x1c0c09,_0xd89e56){const _0x1140f6=_0x4c0a;if(this['openAccess'])return!0x0;if(this[_0x1140f6(0xa7)](_0xd89e56))return!0x0;const _0x538994=this[_0x1140f6(0x9b)][_0x1c0c09];return!(!Array[_0x1140f6(0x8b)](_0x538994)||0x0===_0x538994[_0x1140f6(0x84)])&&_0x134fde(_0x538994,_0xd89e56);},'_grantsMatchAny'(_0x2eb1f7){const _0x185050=_0x4c0a;for(const _0x65f9b5 of Object[_0x185050(0x8a)](this[_0x185050(0x9b)]))if(Array[_0x185050(0x8b)](_0x65f9b5)){for(const _0x4c9827 of _0x2eb1f7)if(_0x134fde(_0x65f9b5,_0x4c9827))return!0x0;}return!0x1;},'canAny'(_0x152ffb){const _0x13cc46=_0x4c0a;return Array[_0x13cc46(0x8b)](_0x152ffb)&&_0x152ffb[_0x13cc46(0x7d)](_0x1d3c1f=>this['can'](_0x1d3c1f));},'canSection'(_0x32f242){const _0x3fe395=_0x4c0a;if(this['openAccess'])return!0x0;switch(_0x32f242){case'db':return this[_0x3fe395(0x94)]([_0x3fe395(0x9c),_0x3fe395(0xac),_0x3fe395(0xa5)])||this[_0x3fe395(0x98)]([_0x3fe395(0x9c),'schema:read','search:query',_0x3fe395(0x83),_0x3fe395(0x7a),_0x3fe395(0x86),'*']);case _0x3fe395(0xb7):case _0x3fe395(0x72):return this[_0x3fe395(0xa7)](_0x3fe395(0x9f));case _0x3fe395(0x6f):return this[_0x3fe395(0xa7)](_0x3fe395(0x9e))||this['_grantsMatchAny'](['files:read',_0x3fe395(0x81),'*']);case _0x3fe395(0x8c):return this[_0x3fe395(0x94)]([_0x3fe395(0x9d),_0x3fe395(0xb1)])||this[_0x3fe395(0x98)]([_0x3fe395(0x9d),_0x3fe395(0xb1),_0x3fe395(0xaf),'*']);case'functions':return this[_0x3fe395(0x94)]([_0x3fe395(0xb5),_0x3fe395(0xae)])||this[_0x3fe395(0x98)]([_0x3fe395(0xb5),_0x3fe395(0xae),_0x3fe395(0x8d),'*']);case _0x3fe395(0x7f):return this[_0x3fe395(0xa7)]('auth:read');case _0x3fe395(0x74):return this[_0x3fe395(0xa7)](_0x3fe395(0xb0));default:return!0x1;}},'permTooltip'(_0x3e3a0b){const _0x21630d=_0x4c0a;return this[_0x21630d(0xa7)](_0x3e3a0b)?'':_0x21630d(0x8f)+_0x3e3a0b+_0x21630d(0x7c);},get 'modeLabel'(){const _0x4dff22=_0x4c0a;return this[_0x4dff22(0xb6)]?_0x4dff22(0xa2):_0x4dff22(0x93)===this[_0x4dff22(0x71)]?_0x4dff22(0x7e):String(this['mode']||'auth');},get 'visibleNotices'(){const _0x51891f=_0x4c0a;return this[_0x51891f(0xab)]?[]:this[_0x51891f(0xa4)]||[];},'dismissNotices'(){const _0x4d4a86=_0x4c0a;this[_0x4d4a86(0xab)]=!0x0;try{sessionStorage[_0x4d4a86(0xa9)](_0x4d4a86(0x97),'1');}catch{}},async 'loadConfig'(){const _0x4755dc=_0x4c0a,_0x6ee7af=await fetch(_0x4755dc(0xa8),{'credentials':_0x4755dc(0x87)}),_0x24cca7=await _0x6ee7af[_0x4755dc(0xb4)]()[_0x4755dc(0xa1)](()=>({}));return this[_0x4755dc(0xad)]=_0x24cca7?.[_0x4755dc(0x80)]||{},this[_0x4755dc(0xad)];},async 'loadSession'(){const _0x21c447=_0x4c0a;if(this[_0x21c447(0xb6)])return this[_0x21c447(0x78)]={'authenticated':!0x0,'user':{'username':_0x21c447(0x72),'roles':['admin']},'grants':{}},this['session'];const _0x269f73=await fetch(_0x21c447(0x6e),{'credentials':_0x21c447(0x87)});if(!_0x269f73['ok'])return this[_0x21c447(0x78)]={'authenticated':!0x1,'user':null,'grants':{}},this[_0x21c447(0x78)];const _0x214099=await _0x269f73['json']()[_0x21c447(0xa1)](()=>({})),_0x28cd10=_0x214099?.[_0x21c447(0x80)]||_0x214099?.['result']||{'authenticated':!0x1,'user':null};return this[_0x21c447(0x78)]={'grants':{},..._0x28cd10},this[_0x21c447(0x78)];},async 'loadCatalog'(){const _0x2c4676=_0x4c0a,_0x207247=await fetch(_0x2c4676(0x6b),{'credentials':_0x2c4676(0x87)});if(!_0x207247['ok'])return null;const _0x2e417d=await _0x207247[_0x2c4676(0xb4)]()[_0x2c4676(0xa1)](()=>({})),_0x2d8885=_0x2e417d?.['data']||_0x2e417d?.[_0x2c4676(0xa3)]||null;return _0x2d8885?.[_0x2c4676(0x92)]&&_0x3e3a44(_0x2d8885['implies']),this[_0x2c4676(0x8e)]=_0x2d8885,_0x2d8885;},async 'loadNotices'(){const _0x2b9c86=_0x4c0a;try{if('1'===sessionStorage[_0x2b9c86(0x95)](_0x2b9c86(0x97)))return void(this[_0x2b9c86(0xab)]=!0x0);const _0xd3c765=await fetch('./api/notices',{'credentials':'same-origin'});if(_0xd3c765['ok']){const _0x3e9355=await _0xd3c765[_0x2b9c86(0xb4)]()[_0x2b9c86(0xa1)](()=>({}));this['notices']=_0x3e9355?.['data']?.[_0x2b9c86(0xa4)]??_0x3e9355?.[_0x2b9c86(0xa3)]?.[_0x2b9c86(0xa4)]??[];}}catch{}},async 'init'(){const _0x45feff=_0x4c0a;this['loading']=!0x0,this['error']=null;try{await this[_0x45feff(0xa6)](),await this[_0x45feff(0x73)](),await this[_0x45feff(0x89)](),await this['loadNotices']();}catch(_0x11d5ce){throw this[_0x45feff(0x7b)]=_0x11d5ce?.['message']||String(_0x11d5ce),_0x11d5ce;}finally{this[_0x45feff(0xb3)]=!0x1;}},async 'logout'(){const _0x155414=_0x4c0a;await fetch(_0x155414(0x75),{'method':_0x155414(0x9a),'credentials':_0x155414(0x87),'headers':{'content-type':_0x155414(0x91)}})['catch'](()=>{}),this[_0x155414(0x78)]={'authenticated':!0x1,'user':null};const _0x82f27a=encodeURIComponent(_0x155414(0x96));window['location'][_0x155414(0x6c)]('/admin/login?redirect='+_0x82f27a);}});function _0x4c0a(_0x56faf9,_0x45786e){_0x56faf9=_0x56faf9-0x6b;const _0x355d60=_0x355d();let _0x4c0ac3=_0x355d60[_0x56faf9];return _0x4c0ac3;}function _0x355d(){const _0x41886c=['Requires\x20','user','application/json','implies','secure','canAny','getItem','/admin/index.html','okdb_notices_dismissed','_grantsMatchAny','roles','POST','grants','data:read','queue:read','files:read','system:read','2520eDYzlM','catch','Open\x20access','result','notices','search:query','loadConfig','can','./login/config','setItem','1898930qdHbil','noticesDismissed','schema:read','config','functions:run','queue:*','sync:read','queue:work','join','loading','json','functions:read','openAccess','engines','./api/auth/permissions','replace','1864348yrGBRh','./session','files','9BoCOFr','mode','system','loadSession','sync','/auth/logout','2895508HZdyAK','24414EaWiBp','session','9KhoieE','schema:*','error','\x20permission','some','Secure','auth','data','files:*','7067848nTffpp','data:*','length','35886230CYetWw','search:*','same-origin','681158hVvLct','loadCatalog','values','isArray','queue','functions:*','catalog'];_0x355d=function(){return _0x41886c;};return _0x355d();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x1b26b0=_0x4db9;(function(_0x5a57b0,_0x4517ac){const _0x50d3a9=_0x4db9,_0x6859f7=_0x5a57b0();while(!![]){try{const _0x3a1566=-parseInt(_0x50d3a9(0xaf))/0x1+-parseInt(_0x50d3a9(0x9d))/0x2+parseInt(_0x50d3a9(0x98))/0x3+-parseInt(_0x50d3a9(0x9a))/0x4+parseInt(_0x50d3a9(0x9b))/0x5*(-parseInt(_0x50d3a9(0xa1))/0x6)+parseInt(_0x50d3a9(0x94))/0x7*(-parseInt(_0x50d3a9(0x8c))/0x8)+parseInt(_0x50d3a9(0x85))/0x9;if(_0x3a1566===_0x4517ac)break;else _0x6859f7['push'](_0x6859f7['shift']());}catch(_0x5ddb32){_0x6859f7['push'](_0x6859f7['shift']());}}}(_0x38ed,0x1ae2e));function _0x4db9(_0x2616eb,_0x388a9f){_0x2616eb=_0x2616eb-0x7a;const _0x38ed09=_0x38ed();let _0x4db9e5=_0x38ed09[_0x2616eb];return _0x4db9e5;}function _0x38ed(){const _0x4f4554=['408750DrxFOd','txn:start','756160ICyZSN','20mcnJbF','embeddings:doc:status_change','196026VwlPxZ','engine:uninstalled','engine:installed','join','34158Omaheg','index:registered','now','sync:apply','embeddings:pipeline:ready','index:reset','fts:registered','add','system:ready','item:create','index:progress','embeddings:indexer:doc:failed','queue:failed','connecting','20974JuLipD','length','embeddings:indexer:doc:queued','queue:reconciled','proxy','system:stopped','item:remove','relay:error','error','slice','event','/events','system:drain','queue:removed','system:poke','close','processor:progress','txn:end','engine:started','queue:retry','index:drop','system:bus_state_change','_kind','log','type:registered','_ts','addEventListener','3810015mocoLR','embeddings:indexer:flushed','events-store\x20handler\x20error','index:ready','type:drop','Stream\x20disconnected\x20—\x20reconnecting…','data','8TOlGbj','?types=','onmessage','connected','parse','fts:drop','processor:retry','env:removed','830620SggHHs','activity','item:update','processor:error'];_0x38ed=function(){return _0x4f4554;};return _0x38ed();}import{ok as _0x335cba}from'../modules/ok.js';const t=[_0x1b26b0(0xa9),_0x1b26b0(0xb4),'system:clock_change',_0x1b26b0(0xbd),_0x1b26b0(0xbb),_0x1b26b0(0x7f),_0x1b26b0(0xaa),_0x1b26b0(0x96),_0x1b26b0(0xb5),_0x1b26b0(0xa6),_0x1b26b0(0x88),_0x1b26b0(0xab),_0x1b26b0(0x7e),_0x1b26b0(0xa2),_0x1b26b0(0xa7),_0x1b26b0(0x91),'fts:reset',_0x1b26b0(0xa4),_0x1b26b0(0x99),_0x1b26b0(0x7b),'txn:rollback',_0x1b26b0(0x82),_0x1b26b0(0x89),'env:opened',_0x1b26b0(0x93),_0x1b26b0(0x7c),'engine:stopped','engine:error',_0x1b26b0(0x9f),_0x1b26b0(0x9e),'embeddings:indexer:ready',_0x1b26b0(0x86),'embeddings:indexer:doc:done',_0x1b26b0(0xac),_0x1b26b0(0xb1),_0x1b26b0(0x9c),_0x1b26b0(0xa5),'queue:enqueued','queue:done',_0x1b26b0(0xad),_0x1b26b0(0x7d),_0x1b26b0(0xbc),_0x1b26b0(0xb2),'processor:ready',_0x1b26b0(0x7a),_0x1b26b0(0x97),'processor:paused','processor:resumed',_0x1b26b0(0x92),_0x1b26b0(0xb6)];export{t as ALL_EVENTS};let n=null;const r={};function s(_0x389159){const _0x3d1670=_0x1b26b0;try{return JSON[_0x3d1670(0x90)](_0x389159);}catch{return null;}}function o(_0x5087f7,_0x10a1a8){const _0x440757=_0x1b26b0,_0x5931bb=r[_0x5087f7];if(_0x5931bb){for(const _0x17798c of _0x5931bb)try{_0x17798c(_0x10a1a8);}catch(_0xb2328c){console[_0x440757(0xb7)](_0x440757(0x87),_0xb2328c);}}}function i(_0xf04e96,_0x313aaa){const _0x22fedf=_0x1b26b0;return[..._0xf04e96[_0x22fedf(0xb0)]>=0x1f4?_0xf04e96[_0x22fedf(0xb8)](-0x1f3):_0xf04e96,_0x313aaa];}const d=_0x335cba[_0x1b26b0(0xb3)]({'connected':!0x1,'connecting':!0x1,'error':null,'activity':[],get 'logs'(){const _0x3cc319=_0x1b26b0;return this[_0x3cc319(0x95)]['filter'](_0x3b9cca=>_0x3cc319(0x81)===_0x3b9cca[_0x3cc319(0x80)]);},'connect'(_0xc2745b=null){const _0x439dcb=_0x1b26b0;if(n||this[_0x439dcb(0xae)])return;this[_0x439dcb(0xae)]=!0x0,this['error']=null;let _0x3e1b94=__ENV__['API']+_0x439dcb(0xba);_0xc2745b?.['length']&&(_0x3e1b94+=_0x439dcb(0x8d)+encodeURIComponent(_0xc2745b[_0x439dcb(0xa0)](',')));const _0x54f900=new EventSource(_0x3e1b94);n=_0x54f900,_0x54f900[_0x439dcb(0x84)]('open',()=>{const _0x4c1363=_0x439dcb;this[_0x4c1363(0x8f)]=!0x0,this[_0x4c1363(0xae)]=!0x1,this[_0x4c1363(0xb7)]=null;}),_0x54f900[_0x439dcb(0x84)](_0x439dcb(0xb7),()=>{const _0x3b3cac=_0x439dcb;this['connected']=!0x1,this[_0x3b3cac(0xae)]=!0x1,this[_0x3b3cac(0xb7)]=_0x3b3cac(0x8a);});const _0x1766de=_0x4bdcff=>{const _0x42a2bd=_0x439dcb,_0x2e8242=s(_0x4bdcff[_0x42a2bd(0x8b)]);if(!_0x2e8242)return;const _0x2a0567={'_kind':_0x42a2bd(0x81),'_ts':_0x2e8242[_0x42a2bd(0x83)]??_0x2e8242['ts']??Date[_0x42a2bd(0xa3)](),..._0x2e8242};this[_0x42a2bd(0x95)]=i(this[_0x42a2bd(0x95)],_0x2a0567),o('log',_0x2e8242);};_0x54f900['addEventListener']('log',_0x1766de);for(const _0x2e324b of t)_0x54f900['addEventListener'](_0x2e324b,_0x14707b=>{const _0x562d47=_0x439dcb;try{const _0x417898=s(_0x14707b['data']);if(!_0x417898)return;const _0x337c5b={'_kind':_0x562d47(0xb9),'_event':_0x2e324b,'_ts':_0x417898['_ts']??Date[_0x562d47(0xa3)](),..._0x417898};this['activity']=i(this['activity'],_0x337c5b),o(_0x2e324b,_0x417898);}catch{}});_0x54f900[_0x439dcb(0x8e)]=_0x1766de;},'disconnect'(){const _0x42f0cc=_0x1b26b0;n?.[_0x42f0cc(0xbe)](),n=null,this[_0x42f0cc(0x8f)]=!0x1,this['connecting']=!0x1;},'on':(_0x7fa939,_0x1d7da2)=>(r[_0x7fa939]||(r[_0x7fa939]=new Set()),r[_0x7fa939][_0x1b26b0(0xa8)](_0x1d7da2),()=>r[_0x7fa939]?.['delete'](_0x1d7da2)),'clearActivity'(){const _0x4c3a34=_0x1b26b0;this[_0x4c3a34(0x95)]=[];},'clearLogs'(){this['clearActivity']();}});export default d;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x3d520f=_0x9c1d;(function(_0x42284f,_0x126689){const _0x2c94e0=_0x9c1d,_0x319e68=_0x42284f();while(!![]){try{const _0x5c95e3=-parseInt(_0x2c94e0(0x1d7))/0x1+-parseInt(_0x2c94e0(0x1d3))/0x2*(parseInt(_0x2c94e0(0x20e))/0x3)+-parseInt(_0x2c94e0(0x202))/0x4*(-parseInt(_0x2c94e0(0x201))/0x5)+-parseInt(_0x2c94e0(0x233))/0x6+parseInt(_0x2c94e0(0x226))/0x7+-parseInt(_0x2c94e0(0x1a6))/0x8+parseInt(_0x2c94e0(0x229))/0x9;if(_0x5c95e3===_0x126689)break;else _0x319e68['push'](_0x319e68['shift']());}catch(_0xe9d32e){_0x319e68['push'](_0x319e68['shift']());}}}(_0x3c1b,0xefb8b));import{ok as _0x40cf2c}from'../modules/ok.js';function _0x3c1b(){const _0x7a0680=['Function\x20script\x20may\x20not\x20reference\x20','setModalSourceDraft','38598147AQWMnk','meta','code','selectedRun','detail','modalDescriptionDraft','dryRunMode','status','functionName','timeoutMs','6503544bMGNsm','parsePayloadDraft','/functions','Function\x20script\x20failed\x20to\x20compile','modalDryRunMode','allowFetch','json','running','unsafe','modalPayloadDraft','set','\x20\x20//\x20Tip:\x20use\x20the\x20\x22seed\x22\x20template\x20when\x20you\x20want\x20bulk\x20inserts\x20via\x20ctx.env.txn(...)','modalPreviewLogs','Failed\x20to\x20create\x20function','resetSelection','loadRuns','persisted','select','9002616EMpOzI','{\x0a\x20\x20\x0a}','modalProcessorContextDraft','get','items','\x20\x20//\x20ctx.log\x20\x20\x20\x20\x20—\x20structured\x20logger:\x20ctx.log.info(msg,\x20data)','runId','Failed\x20to\x20delete\x20function','modalSourceDraft','edit','execution','runs','isArray','modalMaterializerContextDraft','setModalPreviewContext','modalJobContextDraft','parse','~system','string','application/json','create','modalNameDraft','reloadList','logsForRun','proxy','saving','buildModalDefinition','has','POST','modalMemoryMbDraft','sort','beginCreateDraft','latestRun','source','process','modalRunning','console','requestedAt','worker_threads','Payload\x20JSON\x20is\x20invalid','/run','Failed\x20to\x20run\x20draft','overview','selected','stringify','2977886OAHqcR','hasEnv','selectedEnv','Failed\x20to\x20load\x20functions','1581302VhvyNw','envName','info','\x20\x20return\x20{\x20ok:\x20true\x20};','sourceDraft','modalTimeoutMsDraft','overviewRuns','length','join','PUT','loadList','runtime','finishedAt','msg','FUNCTION_SCRIPT_FORBIDDEN_SYMBOL','loadOverviewRuns','import','functionsBase','FUNCTION_SCRIPT_REQUIRED','filter','payloadError','test','catch','enabled','data','modalPreviewRun','Failed\x20to\x20save\x20function','/runs','modalEnabledDraft','add','metadata','value','script','_ts','selectedName','modalUnsafeDraft','module','setModalPayloadDraft','require','exports','selectRun','modalValidation','1916105QxyndV','4ulnqrN','push','request','replace','live','map','FUNCTION_SCRIPT_TOO_LARGE','description','Function\x20script\x20exceeds\x2065536\x20bytes','/runs/','/preview','loading','3XSKcBm','\x20\x20//\x20ctx.env\x20\x20\x20\x20\x20—\x20env-scoped\x20facade:\x20put,\x20get,\x20query,\x20txn,\x20queue,\x20files,\x20...','name','error','memoryMb','trim','currentView','hydrateOverview','modalPayloadError','key','Failed\x20to\x20run\x20function','getLogsForRun','/env/','payloadDraft','isFinite','Function\x20script\x20source\x20is\x20required','logs','find','Function\x20script\x20must\x20be\x20an\x20anonymous\x20arrow\x20function\x20of\x20the\x20form\x20[async]\x20(ctx)\x20=>\x20{}','FUNCTION_SCRIPT_COMPILE_FAILED','modalMode','message','level','return\x20(','11126437jOruOO'];_0x3c1b=function(){return _0x7a0680;};return _0x3c1b();}import _0x50a982 from'./okdb-store.js';import _0x19a3c0 from'./events-store.js';function _0x9c1d(_0x5df19d,_0x41a3b0){_0x5df19d=_0x5df19d-0x19e;const _0x3c1bab=_0x3c1b();let _0x9c1d37=_0x3c1bab[_0x5df19d];return _0x9c1d37;}const a=['async\x20(ctx)\x20=>\x20{','\x20\x20//\x20ctx.payload\x20—\x20caller\x20input',_0x3d520f(0x20f),_0x3d520f(0x1ab),_0x3d520f(0x19f),'',_0x3d520f(0x1da),'}'][_0x3d520f(0x1df)]('\x0a'),r=_0x3d520f(0x1a7),i=[{'symbol':_0x3d520f(0x1fd),'pattern':/(^|[^\w$.])require\s*\(/},{'symbol':_0x3d520f(0x1e7),'pattern':/(^|[^\w$.])import\b/},{'symbol':_0x3d520f(0x1ca),'pattern':/(^|[^\w$.])console\b/},{'symbol':_0x3d520f(0x1fb),'pattern':/(^|[^\w$.])module\b/},{'symbol':_0x3d520f(0x1fe),'pattern':/(^|[^\w$.])exports\b/},{'symbol':_0x3d520f(0x1c8),'pattern':/(^|[^\w$.])process\b/},{'symbol':'child_process','pattern':/child_process/},{'symbol':_0x3d520f(0x1cc),'pattern':/worker_threads/}];function n(_0x3adae7){const _0xaf2f0=_0x3d520f;return null==_0x3adae7?_0x3adae7:JSON[_0xaf2f0(0x1b6)](JSON['stringify'](_0x3adae7));}function o(_0x887861={},_0x116953=_0x3d520f(0x1a4)){const _0x2ed0f1=_0x3d520f,_0x473a78=_0x887861?.[_0x2ed0f1(0x22a)]??null,_0x22659=_0x887861?.[_0x2ed0f1(0x1e4)]??_0x887861?.[_0x2ed0f1(0x223)]??_0x887861?.['content']??_0x887861?.['title']??'';return{'runId':_0x887861?.['runId']??_0x473a78?.[_0x2ed0f1(0x1ac)]??null,'ts':_0x887861?.['ts']??_0x887861?.[_0x2ed0f1(0x1f8)]??Date['now'](),'level':_0x887861?.['level']??_0x2ed0f1(0x1d9),'msg':_0x2ed0f1(0x1b8)==typeof _0x22659?_0x22659:JSON[_0x2ed0f1(0x1d2)](_0x22659??''),'meta':_0x473a78,'source':_0x116953};}export default _0x40cf2c[_0x3d520f(0x1be)]({'items':[],'selectedName':null,'selected':null,'runs':[],'overviewRuns':[],'selectedRun':null,'sourceDraft':'','payloadDraft':r,'currentView':_0x3d520f(0x1d0),'modalMode':'create','modalNameDraft':'','modalSourceDraft':a,'modalPayloadDraft':r,'modalJobContextDraft':null,'modalProcessorContextDraft':null,'modalMaterializerContextDraft':null,'modalDescriptionDraft':'','modalEnabledDraft':!0x0,'modalUnsafeDraft':!0x1,'modalTimeoutMsDraft':null,'modalMemoryMbDraft':null,'modalAllowFetchDraft':!0x0,'modalValidation':{'ok':!0x1,'code':_0x3d520f(0x1e9),'message':_0x3d520f(0x21d)},'modalPayloadError':null,'modalPreviewRun':null,'modalPreviewLogs':[],'modalRunning':!0x1,'modalDryRunMode':!0x1,'loading':!0x1,'saving':!0x1,'running':!0x1,'dryRunMode':!0x1,'payloadError':null,'error':null,get 'envName'(){const _0x30d628=_0x3d520f;return _0x50a982[_0x30d628(0x1d5)]||null;},get 'isGlobalScope'(){const _0x158d64=_0x3d520f;return _0x158d64(0x1b7)===this[_0x158d64(0x1d8)];},get 'hasEnv'(){const _0x3092db=_0x3d520f;return!!this[_0x3092db(0x1d8)];},get 'functionsBase'(){const _0x931f03=_0x3d520f;return this['envName']?__ENV__['API']+_0x931f03(0x21a)+encodeURIComponent(this[_0x931f03(0x1d8)])+_0x931f03(0x235):null;},get 'canOpenModal'(){const _0x55cc77=_0x3d520f;return!!this[_0x55cc77(0x1e8)];},get 'hasSelected'(){const _0x3a1ab8=_0x3d520f;return!!this[_0x3a1ab8(0x1f9)]&&!!this[_0x3a1ab8(0x1d1)];},get 'latestRun'(){const _0x1bd247=_0x3d520f;return this[_0x1bd247(0x1b1)]?.[0x0]?.[_0x1bd247(0x1f6)]||this[_0x1bd247(0x1b1)]?.[0x0]||null;},get 'activeRun'(){const _0x38fe1a=_0x3d520f;return this[_0x38fe1a(0x22c)]||this[_0x38fe1a(0x1c6)]||null;},get 'functionsOverview'(){const _0x362009=_0x3d520f,_0x26f55a=new Map();for(const _0x3e9f73 of this[_0x362009(0x1dd)]||[]){const _0x2fc06a=_0x3e9f73?.[_0x362009(0x1f6)]||_0x3e9f73,_0x56361d=_0x2fc06a?.[_0x362009(0x231)];_0x56361d&&!_0x26f55a[_0x362009(0x1c1)](_0x56361d)&&_0x26f55a[_0x362009(0x19e)](_0x56361d,_0x2fc06a);}return(this[_0x362009(0x1aa)]||[])[_0x362009(0x207)](_0x4a8ba4=>({..._0x4a8ba4,'latestRun':_0x26f55a[_0x362009(0x1a9)](_0x4a8ba4?.[_0x362009(0x217)])||null}));},get 'selectedFunctionTitle'(){const _0xbdbb51=_0x3d520f;return this[_0xbdbb51(0x1d1)]?.[_0xbdbb51(0x210)]||this[_0xbdbb51(0x1f9)]||null;},get 'selectedLogEntries'(){const _0x4526c4=_0x3d520f,_0x44e603=this[_0x4526c4(0x22c)]?.['id']||this[_0x4526c4(0x22c)]?.['runId'];if(_0x44e603)return this[_0x4526c4(0x1bd)](_0x44e603);const _0x5d0f92=this[_0x4526c4(0x1c6)]?.['id']||this[_0x4526c4(0x1c6)]?.[_0x4526c4(0x1ac)];return _0x5d0f92?this[_0x4526c4(0x1bd)](_0x5d0f92):[];},'logsForRun'(_0x21da25){const _0x33134e=_0x3d520f;if(!_0x21da25)return[];const _0x204da9=[this[_0x33134e(0x22c)],this['latestRun'],...(this[_0x33134e(0x1b1)]||[])[_0x33134e(0x207)](_0x58b907=>_0x58b907?.[_0x33134e(0x1f6)]||_0x58b907)][_0x33134e(0x21f)](_0x5565c9=>(_0x5565c9?.['id']||_0x5565c9?.[_0x33134e(0x1ac)])===_0x21da25)?.[_0x33134e(0x21e)],_0x52da24=[...Array[_0x33134e(0x1b2)](_0x204da9)?_0x204da9[_0x33134e(0x207)](_0x154d62=>o(_0x154d62,_0x33134e(0x1a4))):[],...(_0x19a3c0[_0x33134e(0x21e)]||[])[_0x33134e(0x1ea)](_0x4fedcb=>(_0x4fedcb?.[_0x33134e(0x1ac)]||_0x4fedcb?.[_0x33134e(0x22a)]?.[_0x33134e(0x1ac)])===_0x21da25)[_0x33134e(0x207)](_0x28b197=>o(_0x28b197,_0x33134e(0x206)))],_0x17a153=new Set(),_0x5aabfe=[];for(const _0x56380d of _0x52da24){const _0x4204f8=_0x56380d[_0x33134e(0x1ac)]+'|'+_0x56380d['ts']+'|'+_0x56380d[_0x33134e(0x224)]+'|'+_0x56380d[_0x33134e(0x1e4)]+'|'+JSON[_0x33134e(0x1d2)](_0x56380d[_0x33134e(0x22a)]??null);_0x17a153[_0x33134e(0x1c1)](_0x4204f8)||(_0x17a153[_0x33134e(0x1f4)](_0x4204f8),_0x5aabfe['push'](_0x56380d));}return _0x5aabfe[_0x33134e(0x1c4)]((_0x1ee7cd,_0x334cf6)=>(_0x1ee7cd['ts']??0x0)-(_0x334cf6['ts']??0x0)),_0x5aabfe;},'resetSelection'(){const _0x18704f=_0x3d520f;this[_0x18704f(0x1f9)]=null,this[_0x18704f(0x1d1)]=null,this['runs']=[],this[_0x18704f(0x1dd)]=[],this[_0x18704f(0x22c)]=null,this[_0x18704f(0x1db)]='',this['payloadDraft']=r,this[_0x18704f(0x1eb)]=null,this[_0x18704f(0x211)]=null;},'validateSource'(_0xf2bae6){const _0xbd858b=_0x3d520f,_0x2d75fd=_0xbd858b(0x1b8)==typeof _0xf2bae6?_0xf2bae6[_0xbd858b(0x205)](/\r\n/g,'\x0a')[_0xbd858b(0x213)]():'';if(!_0x2d75fd)return{'ok':!0x1,'code':_0xbd858b(0x1e9),'message':'Function\x20script\x20source\x20is\x20required'};const _0x51d21e=new TextEncoder()['encode'](_0x2d75fd)[_0xbd858b(0x1de)];if(_0x51d21e>0x10000)return{'ok':!0x1,'code':_0xbd858b(0x208),'message':_0xbd858b(0x20a)};if(!/^(async\s+)?\(\s*[A-Za-z_$][\w$]*\s*\)\s*=>/['test'](_0x2d75fd))return{'ok':!0x1,'code':'FUNCTION_SCRIPT_INVALID_SHAPE','message':_0xbd858b(0x220)};for(const {symbol:_0x2972b9,pattern:_0x130de9}of i)if(_0x130de9[_0xbd858b(0x1ec)](_0x2d75fd))return{'ok':!0x1,'code':_0xbd858b(0x1e5),'message':_0xbd858b(0x227)+_0x2972b9};try{new Function(_0xbd858b(0x225)+_0x2d75fd+');')();}catch(_0x19ef30){return{'ok':!0x1,'code':_0xbd858b(0x221),'message':_0x19ef30?.[_0xbd858b(0x223)]||_0xbd858b(0x236)};}return{'ok':!0x0,'code':null,'message':'','normalizedSource':_0x2d75fd,'bytes':_0x51d21e};},'parsePayloadDraft'(_0x239d44=this['payloadDraft']){const _0x43d4d3=_0x3d520f,_0x11a726=String(_0x239d44??'')[_0x43d4d3(0x213)]();return _0x11a726?JSON[_0x43d4d3(0x1b6)](_0x11a726):null;},'setModalSourceDraft'(_0x38f1a4){const _0x5381a0=_0x3d520f;this[_0x5381a0(0x1ae)]=_0x38f1a4??'',this[_0x5381a0(0x200)]=this['validateSource'](this[_0x5381a0(0x1ae)]);},'setModalPayloadDraft'(_0x5bc9cc){const _0x26a1ac=_0x3d520f;this[_0x26a1ac(0x23c)]=_0x5bc9cc??r;try{this[_0x26a1ac(0x234)](this[_0x26a1ac(0x23c)]),this['modalPayloadError']=null;}catch(_0x523582){this[_0x26a1ac(0x216)]=_0x523582?.[_0x26a1ac(0x223)]||_0x26a1ac(0x1cd);}},'setModalPreviewContext'({jobContext:_0x4c6f87=null,processorContext:_0x22b006=null,materializerContext:_0x2fc9cf=null}={}){const _0x28ef04=_0x3d520f;this[_0x28ef04(0x1b5)]=n(_0x4c6f87),this[_0x28ef04(0x1a8)]=n(_0x22b006),this['modalMaterializerContextDraft']=n(_0x2fc9cf);},'beginCreateDraft'(){const _0x46386e=_0x3d520f;this['modalMode']=_0x46386e(0x1ba),this['modalNameDraft']='',this[_0x46386e(0x22e)]='',this[_0x46386e(0x1f3)]=!0x0,this[_0x46386e(0x1fa)]=!0x1,this[_0x46386e(0x1dc)]=null,this[_0x46386e(0x1c3)]=null,this['modalAllowFetchDraft']=!0x0,this[_0x46386e(0x1f0)]=null,this['modalPreviewLogs']=[],this[_0x46386e(0x1b4)]({}),this[_0x46386e(0x1fc)](this[_0x46386e(0x21b)]||r),this[_0x46386e(0x228)](a);},'beginEditDraft'(){const _0x53afc1=_0x3d520f,_0x1ec1e4=this[_0x53afc1(0x1d1)];this[_0x53afc1(0x222)]=_0x53afc1(0x1af),this[_0x53afc1(0x1bb)]=_0x1ec1e4?.[_0x53afc1(0x210)]||this['selectedName']||'',this[_0x53afc1(0x22e)]=_0x1ec1e4?.[_0x53afc1(0x1f5)]?.[_0x53afc1(0x209)]||'',this[_0x53afc1(0x1f3)]=!0x1!==_0x1ec1e4?.[_0x53afc1(0x1ee)],this[_0x53afc1(0x1fa)]=!0x0===_0x1ec1e4?.[_0x53afc1(0x23b)],this['modalTimeoutMsDraft']=_0x1ec1e4?.[_0x53afc1(0x1e2)]?.[_0x53afc1(0x232)]??null,this[_0x53afc1(0x1c3)]=_0x1ec1e4?.[_0x53afc1(0x1e2)]?.[_0x53afc1(0x212)]??null,this['modalAllowFetchDraft']=!0x1!==_0x1ec1e4?.['runtime']?.['allowFetch'],this['modalPreviewRun']=null,this[_0x53afc1(0x1a0)]=[],this[_0x53afc1(0x1b4)]({}),this[_0x53afc1(0x1fc)](this[_0x53afc1(0x21b)]||r),this[_0x53afc1(0x228)](_0x1ec1e4?.['script']?.[_0x53afc1(0x1c7)]||this['sourceDraft']||a);},'buildModalDefinition'(){const _0x306569=_0x3d520f,_0x11779f={};return Number[_0x306569(0x21c)](this[_0x306569(0x1dc)])&&this[_0x306569(0x1dc)]>0x0&&(_0x11779f[_0x306569(0x232)]=this[_0x306569(0x1dc)]),Number[_0x306569(0x21c)](this[_0x306569(0x1c3)])&&this['modalMemoryMbDraft']>0x0&&(_0x11779f[_0x306569(0x212)]=this[_0x306569(0x1c3)]),_0x11779f[_0x306569(0x238)]=!0x1!==this['modalAllowFetchDraft'],{'name':String(this[_0x306569(0x1bb)]||'')[_0x306569(0x213)](),'source':this[_0x306569(0x200)]?.['normalizedSource']||String(this[_0x306569(0x1ae)]||'')[_0x306569(0x213)](),'metadata':{'description':String(this[_0x306569(0x22e)]||'')['trim']()},'enabled':!0x1!==this[_0x306569(0x1f3)],'unsafe':!0x0===this[_0x306569(0x1fa)],'runtime':_0x11779f};},get 'canSaveModal'(){const _0x47e50d=_0x3d520f;return!(!String(this[_0x47e50d(0x1bb)]||'')[_0x47e50d(0x213)]()||!this[_0x47e50d(0x200)]?.['ok']||this['modalPayloadError']||this[_0x47e50d(0x1bf)]);},async 'loadList'(){const _0x108abc=_0x3d520f;if(!this['functionsBase'])return[];this[_0x108abc(0x20d)]=!0x0,this[_0x108abc(0x211)]=null;try{const _0xbf3bb6=await fetch(this[_0x108abc(0x1e8)]),_0x3b45bb=await _0xbf3bb6[_0x108abc(0x239)]();return this[_0x108abc(0x1aa)]=_0x3b45bb?.[_0x108abc(0x1ef)]||[],this[_0x108abc(0x1f9)]&&(this[_0x108abc(0x1aa)][_0x108abc(0x21f)](_0x2a7f6a=>_0x2a7f6a[_0x108abc(0x217)]===this['selectedName'])||this[_0x108abc(0x1a2)]()),this[_0x108abc(0x1aa)];}catch(_0x877852){throw this[_0x108abc(0x211)]=_0x877852?.[_0x108abc(0x223)]||_0x108abc(0x1d6),_0x877852;}finally{this[_0x108abc(0x20d)]=!0x1;}},async 'reloadList'(){const _0x169f5f=_0x3d520f;return this[_0x169f5f(0x1aa)]=[],this[_0x169f5f(0x1e1)]();},'setView'(_0x2658b6=_0x3d520f(0x1d0)){const _0xf148d5=_0x3d520f;this[_0xf148d5(0x214)]=_0xf148d5(0x22d)===_0x2658b6?'detail':_0xf148d5(0x1d0);},async 'loadOverviewRuns'(_0x7944f0=0x18){const _0xae0d5a=_0x3d520f;if(!this[_0xae0d5a(0x1e8)])return[];const _0x2f0f67=(this[_0xae0d5a(0x1aa)]||[])[_0xae0d5a(0x207)](_0x384fb7=>_0x384fb7?.['key'])[_0xae0d5a(0x1ea)](Boolean),_0x4e94a0=[];for(const _0x54c837 of _0x2f0f67){const _0xfbf68=await fetch(this[_0xae0d5a(0x1e8)]+'/'+encodeURIComponent(_0x54c837)+_0xae0d5a(0x1f2)),_0x866a70=await _0xfbf68[_0xae0d5a(0x239)](),_0x3af589=(_0x866a70?.[_0xae0d5a(0x1ef)]||[])[_0xae0d5a(0x207)](_0x34591d=>_0x34591d?.[_0xae0d5a(0x1f6)]?_0x34591d:{'key':_0x34591d?.['id']||_0x34591d?.['runId'],'value':_0x34591d});_0x4e94a0[_0xae0d5a(0x203)](..._0x3af589);}return _0x4e94a0[_0xae0d5a(0x1c4)]((_0x33d5db,_0x5a76ce)=>{const _0xc1d18d=_0xae0d5a,_0x32df17=_0x33d5db?.[_0xc1d18d(0x1f6)]?.[_0xc1d18d(0x1b0)]?.['finishedAt']??_0x33d5db?.[_0xc1d18d(0x1f6)]?.[_0xc1d18d(0x204)]?.['requestedAt']??0x0;return(_0x5a76ce?.['value']?.[_0xc1d18d(0x1b0)]?.[_0xc1d18d(0x1e3)]??_0x5a76ce?.[_0xc1d18d(0x1f6)]?.[_0xc1d18d(0x204)]?.[_0xc1d18d(0x1cb)]??0x0)-_0x32df17;}),this['overviewRuns']=_0x4e94a0['slice'](0x0,_0x7944f0),this[_0xae0d5a(0x1dd)];},async 'hydrateOverview'(){await this['loadList'](),await this['loadOverviewRuns']();},async 'select'(_0x362333){const _0x5ecd3c=_0x3d520f;if(this[_0x5ecd3c(0x1f9)]=_0x362333||null,this[_0x5ecd3c(0x22c)]=null,this[_0x5ecd3c(0x214)]=_0x362333?_0x5ecd3c(0x22d):_0x5ecd3c(0x1d0),!_0x362333)return this[_0x5ecd3c(0x1d1)]=null,this['sourceDraft']='',this[_0x5ecd3c(0x1b1)]=[],null;const _0x43fd59=await fetch(this['functionsBase']+'/'+encodeURIComponent(_0x362333)),_0x349ac9=await _0x43fd59[_0x5ecd3c(0x239)]();if(this[_0x5ecd3c(0x1d1)]=_0x349ac9?.['data']||null,this['sourceDraft']=this[_0x5ecd3c(0x1d1)]?.[_0x5ecd3c(0x1f7)]?.['source']||'',this['payloadError']=null,await this['loadRuns'](_0x362333),!this[_0x5ecd3c(0x22c)]&&this[_0x5ecd3c(0x1b1)]?.[_0x5ecd3c(0x1de)]){const _0x3226bc=this[_0x5ecd3c(0x1b1)][0x0];this['selectedRun']=_0x3226bc?.['value']||_0x3226bc||null;}return this[_0x5ecd3c(0x1d1)];},async 'loadRuns'(_0x856320=this[_0x3d520f(0x1f9)]){const _0x54a201=_0x3d520f;if(!_0x856320)return this[_0x54a201(0x1b1)]=[],[];const _0x460a0f=await fetch(this[_0x54a201(0x1e8)]+'/'+encodeURIComponent(_0x856320)+_0x54a201(0x1f2)),_0x107117=await _0x460a0f[_0x54a201(0x239)]();if(this[_0x54a201(0x1b1)]=_0x107117?.['data']||[],this[_0x54a201(0x22c)]){const _0x523399=this['selectedRun']?.['id']||this['selectedRun']?.[_0x54a201(0x1ac)],_0x24256e=this[_0x54a201(0x1b1)]['map'](_0x2a56dd=>_0x2a56dd?.[_0x54a201(0x1f6)]||_0x2a56dd)[_0x54a201(0x21f)](_0x349af5=>(_0x349af5?.['id']||_0x349af5?.['runId'])===_0x523399);this[_0x54a201(0x22c)]=_0x24256e||null;}return this[_0x54a201(0x1b1)];},async 'refreshSelected'(){const _0x481282=_0x3d520f;if(!this['selectedName'])return null;const _0x4e2231=this[_0x481282(0x22c)]?.['id']||this[_0x481282(0x22c)]?.[_0x481282(0x1ac)];if(await this[_0x481282(0x1a5)](this[_0x481282(0x1f9)]),_0x4e2231){const _0x54c1df=this['runs'][_0x481282(0x207)](_0x2f20b9=>_0x2f20b9?.[_0x481282(0x1f6)]||_0x2f20b9)[_0x481282(0x21f)](_0x3fa900=>(_0x3fa900?.['id']||_0x3fa900?.[_0x481282(0x1ac)])===_0x4e2231);this[_0x481282(0x22c)]=_0x54c1df||this[_0x481282(0x22c)];}return await this[_0x481282(0x1e6)](),this['selected'];},'setSourceDraft'(_0x3c6ac4){const _0xc6a00a=_0x3d520f;this[_0xc6a00a(0x1db)]=_0x3c6ac4??'';},'setPayloadDraft'(_0xe956bf){const _0x3b4dc9=_0x3d520f;this[_0x3b4dc9(0x21b)]=_0xe956bf??r;try{this[_0x3b4dc9(0x234)](this[_0x3b4dc9(0x21b)]),this[_0x3b4dc9(0x1eb)]=null;}catch(_0x166e30){this[_0x3b4dc9(0x1eb)]=_0x166e30?.['message']||_0x3b4dc9(0x1cd);}},async 'create'(_0x4cae9d={}){const _0x369030=_0x3d520f;this['saving']=!0x0,this[_0x369030(0x211)]=null;try{const _0x531c63={..._0x4cae9d},_0x34420a=await fetch(this[_0x369030(0x1e8)],{'method':_0x369030(0x1c2),'headers':{'content-type':_0x369030(0x1b9)},'body':JSON['stringify'](_0x531c63)}),_0x298326=await _0x34420a[_0x369030(0x239)]();if(!_0x34420a['ok'])throw new Error(_0x298326?.[_0x369030(0x211)]?.['message']||_0x298326?.[_0x369030(0x1ef)]?.[_0x369030(0x211)]||_0x369030(0x1a1));return await this[_0x369030(0x1bc)](),await this[_0x369030(0x1a5)](_0x298326?.[_0x369030(0x1ef)]?.[_0x369030(0x210)]||_0x4cae9d[_0x369030(0x210)]),_0x298326?.['data'];}finally{this[_0x369030(0x1bf)]=!0x1;}},async 'saveSelected'(_0x331bfc={}){const _0x385358=_0x3d520f;if(!this[_0x385358(0x1f9)])return null;this[_0x385358(0x1bf)]=!0x0,this[_0x385358(0x211)]=null;try{const _0xdc828f={..._0x331bfc,'source':_0x331bfc?.[_0x385358(0x1c7)]??this['sourceDraft']},_0xf14270=await fetch(this[_0x385358(0x1e8)]+'/'+encodeURIComponent(this[_0x385358(0x1f9)]),{'method':_0x385358(0x1e0),'headers':{'content-type':_0x385358(0x1b9)},'body':JSON['stringify'](_0xdc828f)}),_0xb45bbd=await _0xf14270[_0x385358(0x239)]();if(!_0xf14270['ok'])throw new Error(_0xb45bbd?.[_0x385358(0x211)]?.[_0x385358(0x223)]||_0xb45bbd?.[_0x385358(0x1ef)]?.[_0x385358(0x211)]||_0x385358(0x1f1));return await this[_0x385358(0x1bc)](),await this[_0x385358(0x1a5)](this['selectedName']),_0xb45bbd?.['data'];}finally{this[_0x385358(0x1bf)]=!0x1;}},async 'saveModalDefinition'(){const _0x3b9a1b=_0x3d520f,_0x98c313=this[_0x3b9a1b(0x1c0)]();return _0x3b9a1b(0x1af)===this['modalMode']&&this['selectedName']?await this['saveSelected'](_0x98c313):this['create'](_0x98c313);},async 'remove'(_0x3d98f0=this[_0x3d520f(0x1f9)]){const _0x2a92d8=_0x3d520f;if(!_0x3d98f0)return!0x1;this[_0x2a92d8(0x1bf)]=!0x0,this['error']=null;try{const _0x25d205=await fetch(this['functionsBase']+'/'+encodeURIComponent(_0x3d98f0),{'method':'DELETE'});if(!_0x25d205['ok']&&0xcc!==_0x25d205[_0x2a92d8(0x230)]){const _0x4cae7e=await _0x25d205[_0x2a92d8(0x239)]()[_0x2a92d8(0x1ed)](()=>({}));throw new Error(_0x4cae7e?.[_0x2a92d8(0x211)]?.[_0x2a92d8(0x223)]||_0x4cae7e?.['data']?.[_0x2a92d8(0x211)]||_0x2a92d8(0x1ad));}return await this[_0x2a92d8(0x1bc)](),await this[_0x2a92d8(0x1e6)](),this[_0x2a92d8(0x1f9)]===_0x3d98f0&&this[_0x2a92d8(0x1a2)](),!0x0;}finally{this[_0x2a92d8(0x1bf)]=!0x1;}},async 'runSelected'(){const _0x5f307d=_0x3d520f;if(!this['selectedName'])return null;this[_0x5f307d(0x23a)]=!0x0,this[_0x5f307d(0x211)]=null;try{let _0x5195b1=null;try{_0x5195b1=this['parsePayloadDraft'](this[_0x5f307d(0x21b)]),this[_0x5f307d(0x1eb)]=null;}catch(_0x22b6e1){throw this['payloadError']=_0x22b6e1?.[_0x5f307d(0x223)]||_0x5f307d(0x1cd),_0x22b6e1;}const _0x4298d1=await fetch(this[_0x5f307d(0x1e8)]+'/'+encodeURIComponent(this[_0x5f307d(0x1f9)])+_0x5f307d(0x1ce),{'method':_0x5f307d(0x1c2),'headers':{'content-type':_0x5f307d(0x1b9)},'body':JSON[_0x5f307d(0x1d2)]({'payload':_0x5195b1,...this[_0x5f307d(0x22f)]&&{'dryRun':!0x0}})}),_0x1ebea1=await _0x4298d1[_0x5f307d(0x239)]();if(!_0x4298d1['ok']){const _0xa46f86=new Error(_0x1ebea1?.['error']?.[_0x5f307d(0x223)]||_0x1ebea1?.[_0x5f307d(0x1ef)]?.[_0x5f307d(0x211)]||'Failed\x20to\x20run\x20function');throw _0xa46f86[_0x5f307d(0x22b)]=_0x1ebea1?.['error']?.['code']||null,_0xa46f86;}return await this[_0x5f307d(0x1a3)](this[_0x5f307d(0x1f9)]),this['selectedRun']=n(_0x1ebea1?.[_0x5f307d(0x1ef)]||null),this[_0x5f307d(0x22f)]||!this[_0x5f307d(0x22c)]?.['id']&&!this[_0x5f307d(0x22c)]?.['runId']||await this[_0x5f307d(0x1ff)](this[_0x5f307d(0x22c)]['id']||this['selectedRun']['runId']),await this['loadOverviewRuns'](),this[_0x5f307d(0x22c)];}catch(_0x45f9d2){throw this[_0x5f307d(0x211)]=_0x45f9d2?.['code']?_0x45f9d2['code']+':\x20'+_0x45f9d2[_0x5f307d(0x223)]:_0x45f9d2?.[_0x5f307d(0x223)]||_0x5f307d(0x218),_0x45f9d2;}finally{this[_0x5f307d(0x23a)]=!0x1;}},async 'runModalDraft'(){const _0x4ed069=_0x3d520f,_0x5e263a=this[_0x4ed069(0x1c0)]();this['modalRunning']=!0x0,this[_0x4ed069(0x211)]=null;try{const _0x131b64=this[_0x4ed069(0x234)](this[_0x4ed069(0x23c)]);this[_0x4ed069(0x216)]=null,this[_0x4ed069(0x1f0)]=null,this[_0x4ed069(0x1a0)]=[];const _0x2d7f18=await fetch(this[_0x4ed069(0x1e8)]+_0x4ed069(0x20c),{'method':_0x4ed069(0x1c2),'headers':{'content-type':_0x4ed069(0x1b9)},'body':JSON[_0x4ed069(0x1d2)]({..._0x5e263a,'payload':_0x131b64,...this[_0x4ed069(0x237)]&&{'dryRun':!0x0},...this[_0x4ed069(0x1b5)]?{'jobContext':n(this[_0x4ed069(0x1b5)])}:{},...this[_0x4ed069(0x1a8)]?{'processorContext':n(this[_0x4ed069(0x1a8)])}:{},...this[_0x4ed069(0x1b3)]?{'materializerContext':n(this['modalMaterializerContextDraft'])}:{}})}),_0x1cadac=await _0x2d7f18['json']();if(!_0x2d7f18['ok'])throw new Error(_0x1cadac?.['error']?.[_0x4ed069(0x223)]||_0x1cadac?.[_0x4ed069(0x1ef)]?.[_0x4ed069(0x211)]||_0x4ed069(0x1cf));return this[_0x4ed069(0x1f0)]=n(_0x1cadac?.[_0x4ed069(0x1ef)]||null),this['modalPreviewLogs']=this['getLogsForRun'](this['modalPreviewRun']?.['id']||this[_0x4ed069(0x1f0)]?.['runId']),this[_0x4ed069(0x1f0)];}catch(_0x2967f4){throw _0x2967f4 instanceof SyntaxError&&(this['modalPayloadError']=_0x2967f4?.[_0x4ed069(0x223)]||_0x4ed069(0x1cd)),_0x2967f4;}finally{this[_0x4ed069(0x1c9)]=!0x1;}},'getLogsForRun':_0x1b8242=>_0x1b8242?(_0x19a3c0[_0x3d520f(0x21e)]||[])[_0x3d520f(0x1ea)](_0x515c26=>(_0x515c26?.[_0x3d520f(0x1ac)]||_0x515c26?.['meta']?.[_0x3d520f(0x1ac)])===_0x1b8242):[],'refreshModalPreviewLogs'(){const _0x5ad21d=_0x3d520f,_0xfdf618=this[_0x5ad21d(0x1f0)]?.['id']||this['modalPreviewRun']?.[_0x5ad21d(0x1ac)];return _0xfdf618?(this[_0x5ad21d(0x1a0)]=this[_0x5ad21d(0x219)](_0xfdf618),this['modalPreviewLogs']):(this['modalPreviewLogs']=[],[]);},async 'selectRun'(_0x32b80e){const _0x3b512a=_0x3d520f;if(!this[_0x3b512a(0x1f9)]||!_0x32b80e)return this[_0x3b512a(0x22c)]=null,null;const _0x531d3b=await fetch(this[_0x3b512a(0x1e8)]+'/'+encodeURIComponent(this['selectedName'])+_0x3b512a(0x20b)+encodeURIComponent(_0x32b80e)),_0x23708f=await _0x531d3b[_0x3b512a(0x239)]();return this[_0x3b512a(0x22c)]=_0x23708f?.['data']||null,this[_0x3b512a(0x22c)];},async 'onEnvChanged'(){const _0x442eb7=_0x3d520f;this[_0x442eb7(0x1a2)](),this[_0x442eb7(0x1c5)](),this[_0x442eb7(0x214)]='overview',this[_0x442eb7(0x1d4)]&&await this[_0x442eb7(0x215)]();}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x14cc(_0x32e195,_0x3c011c){_0x32e195=_0x32e195-0x1ee;const _0x32fb9b=_0x32fb();let _0x14cce1=_0x32fb9b[_0x32e195];return _0x14cce1;}const _0x435b75=_0x14cc;(function(_0x27814c,_0x33308d){const _0x4b63d2=_0x14cc,_0x41ecb1=_0x27814c();while(!![]){try{const _0x496b0f=-parseInt(_0x4b63d2(0x1ee))/0x1+-parseInt(_0x4b63d2(0x20e))/0x2+parseInt(_0x4b63d2(0x21b))/0x3*(-parseInt(_0x4b63d2(0x1f5))/0x4)+-parseInt(_0x4b63d2(0x1f3))/0x5+-parseInt(_0x4b63d2(0x20c))/0x6*(-parseInt(_0x4b63d2(0x21a))/0x7)+-parseInt(_0x4b63d2(0x211))/0x8+parseInt(_0x4b63d2(0x1f2))/0x9;if(_0x496b0f===_0x33308d)break;else _0x41ecb1['push'](_0x41ecb1['shift']());}catch(_0x15c71b){_0x41ecb1['push'](_0x41ecb1['shift']());}}}(_0x32fb,0x30343));function _0x32fb(){const _0x39b79e=['json','/envs','/env','string','default','apiBase','selectedEnv','name','proxy','message','/types','115698rYzZQC','info','86270xMDrwK','types','error','1596496siumJI','envs','loadInfo','API','then','Failed\x20to\x20fetch\x20info','_pickBestEnv','find','reloadTypes','7vMHYTt','78rwgfVL','plugins','includes','filter','187864cJsZza','orphaned','_infoPromise','selectEnv','7915878eWOAaM','1121795kjmmnW','/type/','7148RRNayq','result','loadEnvs','_envsPromise','catch','startsWith','Failed\x20to\x20load\x20types\x20(HTTP\x20','data','_typesPromise','status','_fetchInfo','loadTypes'];_0x32fb=function(){return _0x39b79e;};return _0x32fb();}import{ok as _0x134758}from'../modules/ok.js';export default _0x134758[_0x435b75(0x209)]({'selectedEnv':_0x435b75(0x205),get 'apiBase'(){const _0x3d1775=_0x435b75,_0x25831b=this['selectedEnv'];return _0x25831b?__ENV__[_0x3d1775(0x214)]+'/env/'+encodeURIComponent(_0x25831b):__ENV__['API']+_0x3d1775(0x203);},'selectEnv'(_0x136421){const _0x460bec=_0x435b75;this[_0x460bec(0x207)]!==_0x136421&&(this[_0x460bec(0x207)]=_0x136421,this[_0x460bec(0x20f)]=null,this[_0x460bec(0x1fd)]=null,this[_0x460bec(0x20d)]=null,this[_0x460bec(0x1f0)]=null);},'info':null,'_infoPromise':null,async 'loadInfo'(){const _0x2e63ca=_0x435b75;if(!this[_0x2e63ca(0x207)])return null;if(null!==this[_0x2e63ca(0x20d)])return this[_0x2e63ca(0x20d)];if(!this[_0x2e63ca(0x1f0)]){this[_0x2e63ca(0x1f0)]=this[_0x2e63ca(0x1ff)]();try{this[_0x2e63ca(0x20d)]=await this[_0x2e63ca(0x1f0)];}catch(_0x4b3a78){throw this[_0x2e63ca(0x1f0)]=null,_0x4b3a78;}}return await this[_0x2e63ca(0x1f0)],this[_0x2e63ca(0x20d)];},async 'reloadInfo'(){const _0x38ad4a=_0x435b75;return this[_0x38ad4a(0x20d)]=null,this['_infoPromise']=null,this['loadInfo']();},async '_fetchInfo'(){const _0x53dac2=_0x435b75;if(!this[_0x53dac2(0x207)])return null;const _0x401cdf=await fetch(this[_0x53dac2(0x206)]+'/info');if(_0x401cdf['ok'])return(await _0x401cdf[_0x53dac2(0x201)]())[_0x53dac2(0x1fc)];if(0x191===_0x401cdf[_0x53dac2(0x1fe)]||0x193===_0x401cdf[_0x53dac2(0x1fe)])return null;if(0x194===_0x401cdf['status'])return null;throw new Error(_0x53dac2(0x216));},'hasPlugin'(_0x316ce0){const _0x1e808b=_0x435b75;return this[_0x1e808b(0x20d)]?.[_0x1e808b(0x21c)]?.[_0x1e808b(0x21d)](_0x316ce0);},'types':null,'_typesPromise':null,async 'loadTypes'(){const _0x40b8fa=_0x435b75;if(!this[_0x40b8fa(0x207)])return[];if(this['types'])return this[_0x40b8fa(0x20f)];if(!this[_0x40b8fa(0x1fd)]){const _0x2e9d3e=this['apiBase'];this[_0x40b8fa(0x1fd)]=fetch(_0x2e9d3e+_0x40b8fa(0x20b))[_0x40b8fa(0x215)](async _0x51e091=>{const _0x3426fa=_0x40b8fa;if(!_0x51e091['ok']){const _0x801b3f=await _0x51e091[_0x3426fa(0x201)]()['catch'](()=>({})),_0x4ca3dd=_0x801b3f?.[_0x3426fa(0x210)],_0x5115dd=_0x3426fa(0x204)==typeof _0x4ca3dd?_0x4ca3dd:_0x4ca3dd?.[_0x3426fa(0x20a)]||_0x3426fa(0x1fb)+_0x51e091[_0x3426fa(0x1fe)]+')',_0x77155a=new Error(_0x5115dd);throw _0x77155a[_0x3426fa(0x1fe)]=_0x51e091['status'],_0x77155a;}const _0x3650fb=await _0x51e091['json']();return this[_0x3426fa(0x20f)]=_0x3650fb?.[_0x3426fa(0x1fc)]??_0x3650fb?.[_0x3426fa(0x1f6)]??[];})['catch'](_0x1e2d91=>{const _0x10c2ec=_0x40b8fa;throw this[_0x10c2ec(0x1fd)]=null,_0x1e2d91;});}return this[_0x40b8fa(0x1fd)];},async 'reloadTypes'(){const _0x4f2b8e=_0x435b75;return this[_0x4f2b8e(0x20f)]=null,this[_0x4f2b8e(0x1fd)]=null,this[_0x4f2b8e(0x200)]();},async 'registerType'(_0x24e5bd){const _0x457e2b=_0x435b75;await fetch(this['apiBase']+_0x457e2b(0x1f4)+encodeURIComponent(_0x24e5bd),{'method':'POST'}),await this[_0x457e2b(0x219)]();},'envs':null,'_envsPromise':null,async 'loadEnvs'(){const _0x3c61b1=_0x435b75;return this[_0x3c61b1(0x212)]?this[_0x3c61b1(0x212)]:(this[_0x3c61b1(0x1f8)]||(this['_envsPromise']=fetch(__ENV__[_0x3c61b1(0x214)]+_0x3c61b1(0x202))[_0x3c61b1(0x215)](async _0x3e14dd=>{const _0x274f6e=_0x3c61b1;if(0x191===_0x3e14dd[_0x274f6e(0x1fe)]||0x193===_0x3e14dd[_0x274f6e(0x1fe)])return this['envs']=[],this[_0x274f6e(0x207)]=null,[];const {data:_0x404c92}=await _0x3e14dd[_0x274f6e(0x201)]();return this[_0x274f6e(0x212)]=_0x404c92||[];})[_0x3c61b1(0x1f9)](_0x18b893=>{throw this['_envsPromise']=null,_0x18b893;})),this[_0x3c61b1(0x1f8)]);},async 'reloadEnvs'(){const _0x3db4f8=_0x435b75;return this['envs']=null,this[_0x3db4f8(0x1f8)]=null,this[_0x3db4f8(0x1f7)]();},'_pickBestEnv'(){const _0x548b5a=_0x435b75,_0x4e08df=(this[_0x548b5a(0x212)]||[])[_0x548b5a(0x21e)](_0x4f0037=>!_0x4f0037['name'][_0x548b5a(0x1fa)]('~')&&!_0x4f0037[_0x548b5a(0x1ef)]);return _0x4e08df[_0x548b5a(0x218)](_0x5e2507=>_0x5e2507[_0x548b5a(0x208)]===this[_0x548b5a(0x207)])?this[_0x548b5a(0x207)]:_0x4e08df[0x0]?.[_0x548b5a(0x208)]??null;},async 'init'(){const _0xff9ad8=_0x435b75;await this[_0xff9ad8(0x1f7)]();const _0x5e3953=this[_0xff9ad8(0x217)]();_0x5e3953!==this[_0xff9ad8(0x207)]&&this[_0xff9ad8(0x1f1)](_0x5e3953),this[_0xff9ad8(0x207)]&&await this[_0xff9ad8(0x213)]()['catch'](()=>{const _0x51d8d5=_0xff9ad8;this[_0x51d8d5(0x20d)]=null;});}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x2e2cf9=_0x51b9;(function(_0x3e8c42,_0x4d3848){const _0x39b0f9=_0x51b9,_0x26917d=_0x3e8c42();while(!![]){try{const _0x28c27b=-parseInt(_0x39b0f9(0x12f))/0x1*(parseInt(_0x39b0f9(0x142))/0x2)+parseInt(_0x39b0f9(0x12b))/0x3*(parseInt(_0x39b0f9(0x12e))/0x4)+-parseInt(_0x39b0f9(0x128))/0x5+parseInt(_0x39b0f9(0x138))/0x6*(-parseInt(_0x39b0f9(0x132))/0x7)+-parseInt(_0x39b0f9(0x13e))/0x8+-parseInt(_0x39b0f9(0x130))/0x9+parseInt(_0x39b0f9(0x13f))/0xa*(parseInt(_0x39b0f9(0x129))/0xb);if(_0x28c27b===_0x4d3848)break;else _0x26917d['push'](_0x26917d['shift']());}catch(_0x56cfb1){_0x26917d['push'](_0x26917d['shift']());}}}(_0x1db4,0xe32a1));function _0x51b9(_0x27c589,_0x537307){_0x27c589=_0x27c589-0x128;const _0x1db4a3=_0x1db4();let _0x51b9ee=_0x1db4a3[_0x27c589];return _0x51b9ee;}const STORAGE_KEY=_0x2e2cf9(0x131),VALID=new Set([_0x2e2cf9(0x135),'light']);function readSaved(){const _0x152801=_0x2e2cf9;try{const _0x16fc0e=localStorage[_0x152801(0x12c)](_0x152801(0x131));return VALID[_0x152801(0x133)](_0x16fc0e)?_0x16fc0e:null;}catch{return null;}}function _0x1db4(){const _0x430180=['4454775zKacAk','61184112fsZBvG','matchMedia','3nbMNcw','getItem','change','2770912BoPnIi','1802497QNxRxr','8543520ATSvuz','okdbTheme','91DdwVBq','has','removeAttribute','dark','matches','current','560526HBekuD','addEventListener','(prefers-color-scheme:\x20light)','undefined','set','delete','3738000cObJmK','10fMFBDu','data-theme','isExplicit','2uReftb','light'];_0x1db4=function(){return _0x430180;};return _0x1db4();}function detectPreferred(){const _0x2400a1=_0x2e2cf9;return'undefined'!=typeof window&&window[_0x2400a1(0x12a)]&&window[_0x2400a1(0x12a)](_0x2400a1(0x13a))['matches']?_0x2400a1(0x143):'dark';}function apply(_0x49cb69){const _0x512966=_0x2e2cf9,_0x194816=document['documentElement'];_0x512966(0x143)===_0x49cb69?_0x194816['setAttribute']('data-theme','light'):_0x194816[_0x512966(0x134)](_0x512966(0x140));}const subscribers=new Set(),themeStore={'current':readSaved()||detectPreferred(),'isExplicit':null!==readSaved(),'set'(_0x3f94dd){const _0x2b0cc5=_0x2e2cf9;if(VALID[_0x2b0cc5(0x133)](_0x3f94dd)){this[_0x2b0cc5(0x137)]=_0x3f94dd,this[_0x2b0cc5(0x141)]=!0x0;try{localStorage['setItem'](_0x2b0cc5(0x131),_0x3f94dd);}catch{}apply(_0x3f94dd);for(const _0x3509ad of subscribers)_0x3509ad(_0x3f94dd);}},'toggle'(){const _0x4eca76=_0x2e2cf9;this[_0x4eca76(0x13c)](_0x4eca76(0x135)===this['current']?_0x4eca76(0x143):_0x4eca76(0x135));},'subscribe':_0x3179b7=>(subscribers['add'](_0x3179b7),()=>subscribers[_0x2e2cf9(0x13d)](_0x3179b7))};if(apply(themeStore[_0x2e2cf9(0x137)]),_0x2e2cf9(0x13b)!=typeof window&&window[_0x2e2cf9(0x12a)]){const e=window[_0x2e2cf9(0x12a)]('(prefers-color-scheme:\x20light)'),t=_0xa395b4=>{const _0x2ed7b4=_0x2e2cf9;if(!themeStore[_0x2ed7b4(0x141)]){themeStore[_0x2ed7b4(0x137)]=_0xa395b4[_0x2ed7b4(0x136)]?_0x2ed7b4(0x143):_0x2ed7b4(0x135),apply(themeStore[_0x2ed7b4(0x137)]);for(const _0xf0bbfe of subscribers)_0xf0bbfe(themeStore[_0x2ed7b4(0x137)]);}};e[_0x2e2cf9(0x139)]?.(_0x2e2cf9(0x12d),t);}export default themeStore;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}body{background:var(--okdb-app-bg);color:var(--okdb-app-fg);font-family:"Segoe UI",Arial,sans-serif;line-height:1.5;display:flex;height:100vh;width:100vw;margin:0;font-size:13px;overflow:hidden;transition:background 200ms ease,color 200ms ease}admin-route-host,hash-router{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}var{display:contents}:root{--okdb-app-bg:#161c20;--okdb-app-bg-deep:#0f1519;--okdb-app-surface:#1a2228;--okdb-app-surface-2:#1e2630;--okdb-app-surface-3:#253040;--okdb-app-fg:#d0d8e0;--okdb-app-fg-strong:#e0e8f0;--okdb-app-fg-muted:#6a8a9a;--okdb-app-fg-subtle:#5a7a98;--okdb-app-fg-faint:#3d5060;--okdb-app-border:#2e3740;--okdb-app-border-strong:#3a4858;--okdb-app-border-subtle:#1e2e40;--okdb-accent:#4FC1FF;--okdb-accent-2:#c084fc;--okdb-accent-soft-bg:#0e2033;--okdb-accent-soft-border:#4FC1FF55;--okdb-accent-border:#4FC1FF99;--okdb-success:#4ade80;--okdb-warning:#fbbf24;--okdb-danger:#f87171;--okdb-danger-muted:#a05050;--okdb-danger-hover:#d07070;--okdb-danger-soft-bg:#261414;--okdb-danger-soft-border:#2a1a1a;--okdb-danger-deep-bg:#2a1515;--okdb-danger-deep-border:#7f1d1d;--okdb-danger-faint:#6a3838;--okdb-info:#60a5fa;--okdb-modal-bg:#1e2630;--okdb-modal-fg:#d0d8e0;--okdb-modal-border:#23292e;--okdb-modal-shadow:0 12px 40px #00000090;--okdb-modal-scrim:#00000060;--okdb-table-header-bg:#1e2630;--okdb-table-row-hover-bg:#1e3a52;--okdb-scrollbar-thumb:#3a4858;--okdb-scrollbar-thumb-hover:#4a5868;--okdb-scrollbar-thumb-active:#5a6878;--okdb-scrollbar-track:#0f1418;--okdb-focus-ring:0 0 0 2px rgba(79,193,255,0.12);--okdb-shadow-card:0 2px 10px #00000030;--okdb-shadow-card-hover:0 4px 16px #00000040;--okdb-accent-2-soft-bg:#1a1228;--okdb-accent-2-soft-border:#4a2d6a;--okdb-warning-text:#c09010;--okdb-warning-soft-bg:#2a2018;--okdb-success-muted:#3d6650;--okdb-method-default:#9ca3af;--okdb-sky:#7dd3fc;--okdb-sky-soft-bg:#1e3a4a;--okdb-sky-soft-border:#2a5a6a;--okdb-accent-muted:#7aaac0;--okdb-purple:#c084fc;--okdb-indigo:#a78bfa;--okdb-orange:#fb923c;--okdb-json-key:#FFD866;--okdb-mime-default:#4b5563;--accent:var(--okdb-accent);--accent2:var(--okdb-accent-2);--ok-table_header-bg:var(--okdb-table-header-bg);--ok-table-hover-bg:var(--okdb-table-row-hover-bg);--border:var(--okdb-app-border);--surface:var(--okdb-app-surface);--surface2:var(--okdb-app-surface-2);--ok-bg:var(--okdb-modal-bg);--ok_fg:var(--okdb-modal-fg);--ok-modal-radius:10px;--ok-modal-padding:16px 18px;--ok-modal-shadow:var(--okdb-modal-shadow);--ok-modal-border-color:var(--okdb-modal-border)}:root[data-theme=light]{--okdb-app-bg:#f7f9fb;--okdb-app-bg-deep:#eef2f6;--okdb-app-surface:#ffffff;--okdb-app-surface-2:#f3f6f9;--okdb-app-surface-3:#e8eef3;--okdb-app-fg:#101820;--okdb-app-fg-strong:#050a10;--okdb-app-fg-muted:#4a5a6a;--okdb-app-fg-subtle:#6a7a8a;--okdb-app-fg-faint:#98a4b0;--okdb-app-border:#d0d8e0;--okdb-app-border-strong:#a8b8c8;--okdb-app-border-subtle:#e2e8ee;--okdb-accent:#2095d8;--okdb-accent-2:#8b5cf6;--okdb-accent-soft-bg:#e0f2ff;--okdb-accent-soft-border:#2095d855;--okdb-accent-border:#2095d899;--okdb-success:#16a34a;--okdb-warning:#d97706;--okdb-danger:#dc2626;--okdb-danger-muted:#b91c1c;--okdb-danger-hover:#ef4444;--okdb-danger-soft-bg:#fef2f2;--okdb-danger-soft-border:#fecaca;--okdb-danger-deep-bg:#fee2e2;--okdb-danger-deep-border:#fca5a5;--okdb-danger-faint:rgba(185,28,28,0.5);--okdb-info:#2563eb;--okdb-modal-bg:#ffffff;--okdb-modal-fg:#101820;--okdb-modal-border:#d0d8e0;--okdb-modal-shadow:0 12px 40px #00000020;--okdb-modal-scrim:#00000033;--okdb-table-header-bg:#f3f6f9;--okdb-table-row-hover-bg:#e8eef3;--okdb-scrollbar-thumb:#c0c8d0;--okdb-scrollbar-thumb-hover:#a0a8b0;--okdb-scrollbar-thumb-active:#888f98;--okdb-scrollbar-track:#e8eef3;--okdb-focus-ring:0 0 0 2px rgba(32,149,216,0.18);--okdb-shadow-card:0 1px 4px #00000010;--okdb-shadow-card-hover:0 4px 12px #00000020;--okdb-accent-2-soft-bg:#f5f0ff;--okdb-accent-2-soft-border:#c4b5fd;--okdb-warning-text:#b45309;--okdb-warning-soft-bg:#fffbeb;--okdb-success-muted:#166534;--okdb-method-default:#6b7280;--okdb-sky:#0369a1;--okdb-sky-soft-bg:#e0f2fe;--okdb-sky-soft-border:#0284c7;--okdb-accent-muted:#2a6878;--okdb-purple:#9333ea;--okdb-indigo:#7c3aed;--okdb-orange:#c2410c;--okdb-json-key:#92400e;--okdb-mime-default:#6b7280}app{display:flex;flex:1;margin:10px}.card,button{border:1px solid var(--okdb-app-border)}.card{border-radius:12px;background:var(--okdb-app-surface);padding:16px 18px;box-shadow:var(--okdb-shadow-card);transition:border-color .15s,box-shadow .15s}.card:hover{border-color:var(--okdb-app-border-strong);box-shadow:var(--okdb-shadow-card-hover)}.card-title{font-weight:600;margin-bottom:12px;font-size:14px;color:var(--okdb-app-fg-strong)}.loader-center{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.spin{animation:spin .8s linear infinite}button{padding:7px 14px;border-radius:7px;background:var(--okdb-app-surface-2);color:var(--okdb-app-fg);cursor:pointer;font-size:13px;transition:background .12s,border-color .12s,color .12s,transform .1s,box-shadow .1s}button:hover:not(:disabled){background:var(--okdb-app-surface-3);border-color:var(--okdb-app-border-strong);color:var(--okdb-app-fg-strong);transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,.35)}button:active:not(:disabled){transform:translateY(0);box-shadow:none;transition-duration:.05s}button:disabled{background:var(--okdb-app-surface);border-color:var(--okdb-app-border);opacity:.45;cursor:default}button.perm-denied:disabled{cursor:not-allowed;opacity:.35}.type-list__add,button.active{color:var(--okdb-accent)}.type-list__add{background:var(--okdb-accent-soft-bg);border-color:var(--okdb-accent-soft-border);font-weight:600}.type-list__add:hover,button.active{background:var(--okdb-accent-soft-bg);border-color:var(--okdb-accent)}.type-list__item--selected{background:var(--okdb-accent-soft-bg)!important;border-color:var(--okdb-accent-soft-border)!important;color:var(--okdb-accent)!important}input:not([type]),input[type=datetime-local],input[type=number],input[type=text],select{border:1px solid var(--okdb-app-border);padding:6px 10px;border-radius:7px;background:var(--okdb-app-surface-2);color:var(--okdb-app-fg);font-size:13px;font-family:inherit;transition:background .12s,border-color .15s,box-shadow .15s;outline:0}select{appearance:none;-webkit-appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237a9ab0' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;padding-right:28px}input:not([type]):hover,input[type=datetime-local]:hover,input[type=number]:hover,input[type=text]:hover,select:hover{background:var(--okdb-app-surface-3);border-color:var(--okdb-app-border-strong);color:var(--okdb-app-fg-strong)}input:not([type]):focus,input[type=datetime-local]:focus,input[type=number]:focus,input[type=text]:focus,select:focus{border-color:var(--okdb-accent);background:var(--okdb-app-surface-3);box-shadow:var(--okdb-focus-ring)}input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.6) sepia(.2) hue-rotate(180deg);cursor:pointer;opacity:.7}input[type=datetime-local]::-webkit-calendar-picker-indicator:hover{opacity:1}.field{display:flex;flex-direction:column;gap:3px}.field>label{font-size:11px;color:var(--okdb-app-fg-muted);user-select:none;white-space:nowrap}.seg-toggle{display:inline-flex;border:1px solid var(--okdb-app-border);border-radius:7px;overflow:hidden;background:var(--okdb-app-bg)}.seg-toggle button{border:0;border-radius:0;background:0 0;padding:5px 13px}.seg-toggle button:not(:first-child){border-left:1px solid var(--okdb-app-border)}.seg-toggle button.active{background:var(--okdb-accent-soft-bg);color:var(--okdb-accent)}.seg-toggle button:hover:not(.active){background:var(--okdb-app-surface-2)}.help-toggle{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--okdb-app-border);background:var(--okdb-app-surface);color:var(--okdb-app-fg-subtle);font-size:10px;font-style:italic;font-weight:700;cursor:pointer;flex-shrink:0;user-select:none;line-height:1;transition:border-color .15s,color .15s,background .15s}.help-toggle--open,.help-toggle:hover{border-color:var(--okdb-app-border-strong);background:var(--okdb-accent-soft-bg);color:var(--okdb-app-fg-muted)}.help-accordion{background:var(--okdb-app-bg-deep);border:1px solid var(--okdb-app-border-subtle);border-radius:7px;padding:8px 12px}.ht-row{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:baseline;padding:3px 0;border-bottom:1px solid #ffffff07}.ht-row--note,.ht-row:last-child{border-bottom:none;grid-template-columns:1fr;padding-top:7px;margin-top:2px;opacity:.4;font-size:11px}.ht-row span{color:var(--okdb-app-fg-subtle);font-size:11.5px}.help-accordion code,.ht-row code{font-family:"Cascadia Code","Fira Code","Consolas",monospace;color:var(--okdb-accent);font-size:11px;background:var(--okdb-app-bg-deep);border-radius:3px;padding:1px 5px;white-space:nowrap}button.btn-primary{background:var(--okdb-accent-soft-bg);border-color:var(--okdb-accent-soft-border);color:var(--okdb-accent);font-weight:600}button.btn-primary:hover{background:var(--okdb-accent-soft-bg);border-color:var(--okdb-accent-border)}button.btn-danger,button.btn-danger:hover{color:var(--okdb-danger-muted);border-color:var(--okdb-danger-soft-border)}button.btn-danger:hover{background:var(--okdb-danger-soft-bg);color:var(--okdb-danger-hover)}button.btn-danger:disabled{color:var(--okdb-danger-faint)}button.btn-icon{display:inline-flex;align-items:center;gap:7px}button.btn-icon ok-icon{width:13px;height:13px;opacity:.7;flex-shrink:0}ok-modal .ok-modal__close{background:0 0;border:0;color:var(--okdb-app-fg-subtle);padding:2px 6px;border-radius:5px;font-size:18px;line-height:1;transition:color .12s,background .12s}ok-modal .ok-modal__close:hover{background:color-mix(in srgb,var(--okdb-app-fg) 6%,transparent);border:0;color:var(--okdb-app-fg)}ok-modal::before{content:'';position:fixed;inset:0;z-index:-1;background:var(--okdb-modal-scrim);pointer-events:none}.monaco-editor.vs-dark{--vscode-editorSuggestWidget-background:#252526;--vscode-editorSuggestWidget-foreground:#d4d4d4;--vscode-editorSuggestWidget-selectedForeground:#d4d4d4;--vscode-editorSuggestWidget-selectedBackground:#04395e;--vscode-editorSuggestWidget-highlightForeground:#18a3ff;--vscode-editorSuggestWidget-focusHighlightForeground:#18a3ff;--vscode-editorSuggestWidget-border:#454545;--vscode-list-foreground:#d4d4d4;--vscode-list-hoverBackground:#2a2d2e;--vscode-list-hoverForeground:#d4d4d4;--vscode-list-focusBackground:#062f4a;--vscode-list-focusForeground:#d4d4d4;--vscode-list-activeSelectionBackground:#04395e;--vscode-list-activeSelectionForeground:#d4d4d4;--vscode-list-inactiveSelectionBackground:#37373d;--vscode-list-inactiveSelectionForeground:#d4d4d4;--vscode-list-highlightForeground:#18a3ff;--vscode-editorHoverWidget-background:#252526;--vscode-editorHoverWidget-foreground:#d4d4d4;--vscode-editorHoverWidget-border:#454545;--vscode-editorHoverWidget-statusBarBackground:#2c2c2d}.monaco-editor.vs{--vscode-editorSuggestWidget-background:#f3f3f3;--vscode-editorSuggestWidget-foreground:#000000;--vscode-editorSuggestWidget-selectedForeground:#000000;--vscode-editorSuggestWidget-selectedBackground:#cce5ff;--vscode-editorSuggestWidget-highlightForeground:#0066bf;--vscode-editorSuggestWidget-focusHighlightForeground:#0066bf;--vscode-editorSuggestWidget-border:#c8c8c8;--vscode-list-foreground:#000000;--vscode-list-hoverBackground:#e8e8e8;--vscode-list-hoverForeground:#000000;--vscode-list-focusBackground:#cce5ff;--vscode-list-focusForeground:#000000;--vscode-list-activeSelectionBackground:#cce5ff;--vscode-list-activeSelectionForeground:#000000;--vscode-list-inactiveSelectionBackground:#e4e6f1;--vscode-list-inactiveSelectionForeground:#000000;--vscode-list-highlightForeground:#0066bf;--vscode-editorHoverWidget-background:#f3f3f3;--vscode-editorHoverWidget-foreground:#000000;--vscode-editorHoverWidget-border:#c8c8c8;--vscode-editorHoverWidget-statusBarBackground:#e7e7e7}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--okdb-scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--okdb-scrollbar-thumb);border-radius:5px;border:2px solid var(--okdb-scrollbar-track)}::-webkit-scrollbar-thumb:hover{background:var(--okdb-scrollbar-thumb-hover)}::-webkit-scrollbar-thumb:active{background:var(--okdb-scrollbar-thumb-active)}*{scrollbar-color:var(--okdb-scrollbar-thumb) var(--okdb-scrollbar-track);scrollbar-width:thin}.ok-pager{display:flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;padding:6px 0 2px;font-size:12px}.ok-pager span{opacity:.45;font-size:11px;min-width:160px;text-align:center;font-variant-numeric:tabular-nums}.ok-pager button{padding:2px 10px;font-size:13px;min-width:32px;border-color:var(--okdb-app-border);background:0 0;line-height:1.4}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><base href="./"><meta charset="UTF-8"><title>ok-cron-input test</title><link rel="stylesheet" href="styles.css"><script type="importmap">{
|
|
2
|
+
"imports": {
|
|
3
|
+
"@toolkit/": "./vendor/okjs/toolkit/",
|
|
4
|
+
"@okjs": "./vendor/okjs/ok.esm.min.js"
|
|
5
|
+
}
|
|
6
|
+
}</script><style>body{padding:40px;display:block;height:auto}.demo{max-width:500px;margin:0 auto;display:flex;flex-direction:column;gap:32px}h1{color:#4fc1ff;font-size:18px;margin:0 0 8px}.row{display:flex;flex-direction:column;gap:6px}label{font-size:12px;color:#6b8a9e}.val{font-family:monospace;font-size:12px;color:#8bb4cc;background:#12171a;padding:4px 8px;border-radius:4px;border:1px solid #2a3035;min-height:22px}</style></head><body><div class="demo"><div><h1>ok-cron-input</h1><p style="color:#89a;font-size:12px;margin:0">Click the ✏ button to open the cron editor panel.</p></div><div class="row"><label>Cron expression (empty start)</label><ok-cron-input id="c1" @change="document.getElementById('v1').textContent = $event.detail"></ok-cron-input><div class="val" id="v1"></div></div><div class="row"><label>Cron expression (pre-populated)</label><ok-cron-input id="c2" value="*/15 9-17 * * 1-5" @change="document.getElementById('v2').textContent = $event.detail"></ok-cron-input><div class="val" id="v2">*/15 9-17 * * 1-5</div></div><div class="row"><label>Cron expression (disabled)</label><ok-cron-input value="0 12 * * *" disabled="disabled"></ok-cron-input></div></div><script type="module">import OK from '@okjs';
|
|
7
|
+
import okCronInput from './components/ok-cron-input.ok.js';
|
|
8
|
+
const ok = OK({ env: 'dev' });
|
|
9
|
+
ok.register(okCronInput);
|
|
10
|
+
await ok.init(document.body);</script></body></html>
|