@kedem/okdb 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/okdb.js +1 -1
- package/keys/public.pem +3 -0
- package/okdb.js +1 -1
- package/package.json +2 -2
- package/public/admin-app.js +1 -1
- package/public/components/admin-route-host.ok.js +1 -1
- package/public/components/env-picker.ok.js +1 -1
- package/public/components/field-path-input.ok.js +1 -1
- package/public/components/geo-map.ok.js +1 -1
- package/public/components/ok-cron-input.ok.js +1 -1
- package/public/components/ok-dropzone.ok.js +1 -1
- package/public/components/ok-js-input.ok.js +1 -1
- package/public/components/ok-json-input.ok.js +1 -1
- package/public/components/ok-text-monaco-input.ok.js +1 -1
- package/public/components/theme-toggle.ok.js +1 -1
- package/public/login-app.js +1 -1
- package/public/modules/ok.js +1 -1
- package/public/sections/api/parts/api-endpoint.ok.js +1 -1
- package/public/sections/auth/modals/create-token-modal.ok.js +1 -1
- package/public/sections/auth/modals/edit-token-modal.ok.js +1 -1
- package/public/sections/auth/modals/perm-info-popover.ok.js +1 -1
- package/public/sections/auth/parts/token-detail.ok.js +1 -1
- package/public/sections/auth/parts/token-list.ok.js +1 -1
- package/public/sections/db/modals/add-item-modal.ok.js +1 -1
- package/public/sections/db/modals/create-env-modal.ok.js +1 -1
- package/public/sections/db/modals/create-fts-modal.ok.js +1 -1
- package/public/sections/db/modals/create-index-modal.ok.js +1 -1
- package/public/sections/db/modals/create-pipeline-modal.ok.js +1 -1
- package/public/sections/db/modals/demo-env-modal.ok.js +1 -1
- package/public/sections/db/modals/remove-env-modal.ok.js +1 -1
- package/public/sections/db/modals/schema-edit-modal.ok.js +1 -1
- package/public/sections/db/parts/db-overview.ok.js +1 -1
- package/public/sections/db/parts/db-pipelines-panel.ok.js +1 -1
- package/public/sections/db/parts/edit-row.ok.js +1 -1
- package/public/sections/db/parts/tm-timeline.ok.js +1 -1
- package/public/sections/db/parts/type-changelog.ok.js +1 -1
- package/public/sections/db/parts/type-list.ok.js +1 -1
- package/public/sections/db/parts/type-pipelines-tab.ok.js +1 -1
- package/public/sections/db/parts/type-schema-tab.ok.js +1 -1
- package/public/sections/db/parts/type-viewer.ok.js +1 -1
- package/public/sections/db/parts/type-violations-tab.ok.js +1 -1
- package/public/sections/embeddings/modals/register-model-modal.ok.js +1 -1
- package/public/sections/embeddings/parts/embed-create-panel.ok.js +1 -1
- package/public/sections/embeddings/parts/embed-embedder-panel.ok.js +1 -1
- package/public/sections/embeddings/parts/embed-engine-declaration-editor.ok.js +1 -1
- package/public/sections/embeddings/parts/embed-engine-list.ok.js +1 -1
- package/public/sections/embeddings/parts/embed-indexer-panel.ok.js +1 -1
- package/public/sections/embeddings/parts/embed-lifecycle-bar.ok.js +1 -1
- package/public/sections/embeddings/parts/embed-model-catalog.ok.js +1 -1
- package/public/sections/embeddings/parts/embed-overview.ok.js +1 -1
- package/public/sections/embeddings/parts/embed-search-panel.ok.js +1 -1
- package/public/sections/embeddings/parts/embed-worker-panel.ok.js +1 -1
- package/public/sections/embeddings/parts/embeddings-engine-panel.ok.js +1 -1
- package/public/sections/embeddings/parts/engines-overview.ok.js +1 -1
- package/public/sections/embeddings/parts/pipeline-create-panel.ok.js +1 -1
- package/public/sections/engines/engine-panel-shared-style.js +1 -1
- package/public/sections/engines/engine-ui-utils.js +1 -1
- package/public/sections/engines/modals/engine-modal.ok.js +1 -1
- package/public/sections/engines/parts/engine-declaration-editor.ok.js +1 -1
- package/public/sections/engines/parts/engine-lifecycle-actions.ok.js +1 -1
- package/public/sections/engines/parts/engine-panel-shell.ok.js +1 -1
- package/public/sections/engines/parts/engine-resource-card.ok.js +1 -1
- package/public/sections/engines/parts/engine-row-item.ok.js +1 -1
- package/public/sections/engines/parts/generic-engine-panel.ok.js +1 -1
- package/public/sections/files/parts/files-blob-status.ok.js +1 -1
- package/public/sections/files/parts/files-collection-list.ok.js +1 -1
- package/public/sections/files/parts/files-collection-panel.ok.js +1 -1
- package/public/sections/files/parts/files-file-list.ok.js +1 -1
- package/public/sections/files/parts/files-overview.ok.js +1 -1
- package/public/sections/files/parts/files-path-browser.ok.js +1 -1
- package/public/sections/files/parts/files-upload-panel.ok.js +1 -1
- package/public/sections/functions/modals/function-modal.ok.js +1 -1
- package/public/sections/functions/parts/function-detail.ok.js +1 -1
- package/public/sections/functions/parts/function-logs.ok.js +1 -1
- package/public/sections/functions/parts/function-runner.ok.js +1 -1
- package/public/sections/functions/parts/functions-list.ok.js +1 -1
- package/public/sections/license/parts/license-panel.ok.js +1 -1
- package/public/sections/queue/modals/create-bucket-modal.ok.js +1 -1
- package/public/sections/queue/modals/edit-bucket-modal.ok.js +1 -1
- package/public/sections/queue/modals/edit-job-modal.ok.js +1 -1
- package/public/sections/queue/modals/enqueue-job-modal.ok.js +1 -1
- package/public/sections/queue/modals/job-type-modal.ok.js +1 -1
- package/public/sections/queue/parts/ok-job-form.ok.js +1 -1
- package/public/sections/queue/parts/queue-buckets.ok.js +1 -1
- package/public/sections/queue/parts/queue-job-types.ok.js +1 -1
- package/public/sections/queue/parts/queue-jobs.ok.js +1 -1
- package/public/sections/queue/parts/queue-types.ok.js +1 -1
- package/public/sections/queue/parts/queue-workers.ok.js +1 -1
- package/public/sections/sync/parts/sync-node-detail.ok.js +1 -1
- package/public/sections/sync/parts/sync-retention.ok.js +1 -1
- package/public/sections/sync/parts/sync-topology.ok.js +1 -1
- package/public/sections/system/modals/data-ops-modal.ok.js +1 -1
- package/public/sections/system/parts/system-api-panel.ok.js +1 -1
- package/public/sections/system/parts/system-auth-panel.ok.js +1 -1
- package/public/sections/system/parts/system-log-history.ok.js +1 -1
- package/public/sections/system/parts/system-log.ok.js +1 -1
- package/public/sections/system/parts/system-status.ok.js +1 -1
- package/public/sections/system/parts/system-sync-panel.ok.js +1 -1
- package/public/sections/views/modals/create-view-modal.ok.js +1 -1
- package/public/sections/views/parts/view-detail.ok.js +1 -1
- package/public/sections/views/parts/views-list.ok.js +1 -1
- package/public/sections/views/parts/views-overview.ok.js +1 -1
- package/public/setup-app.js +1 -1
- package/public/stores/auth-store.js +1 -1
- package/public/stores/events-store.js +1 -1
- package/public/stores/functions-store.js +1 -1
- package/public/stores/okdb-store.js +1 -1
- package/public/stores/theme-store.js +1 -1
- package/public/util/permissions.js +1 -1
- package/public/util/sift-schema.js +1 -1
- package/public/vendor/okjs/ok.esm.min.js +1 -2
- package/public/vendor/okjs/toolkit/behavior/async.ok.js +1 -1
- package/public/vendor/okjs/toolkit/components/ok-chart.ok.js +1 -1
- package/public/vendor/okjs/toolkit/components/ok-doc-viewer.ok.js +1 -1
- package/public/vendor/okjs/toolkit/components/ok-marked.ok.js +1 -1
- package/public/vendor/okjs/toolkit/components/ok-monaco.ok.js +1 -1
- package/public/vendor/okjs/toolkit/core/ok-layer-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/core/ok-layer.ok.js +1 -1
- package/public/vendor/okjs/toolkit/core/ok-overlay.ok.js +1 -1
- package/public/vendor/okjs/toolkit/core/ok-sandbox.ok.js +1 -1
- package/public/vendor/okjs/toolkit/core/transition.ok.js +1 -1
- package/public/vendor/okjs/toolkit/core/virtualized.ok.js +1 -1
- package/public/vendor/okjs/toolkit/devtools/ok-console-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/devtools/ok-console.ok.js +1 -1
- package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor.ok.js +1 -1
- package/public/vendor/okjs/toolkit/devtools/ok-inspector-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/devtools/ok-inspector.ok.js +1 -1
- package/public/vendor/okjs/toolkit/devtools/ok-js-tree.ok.js +1 -1
- package/public/vendor/okjs/toolkit/devtools/ok-timeline-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/devtools/ok-timeline.ok.js +1 -1
- package/public/vendor/okjs/toolkit/docs/doc-viewer.ok.js +1 -1
- package/public/vendor/okjs/toolkit/editor/ok-live-component.ok.js +1 -1
- package/public/vendor/okjs/toolkit/editor/ok-live-example.ok.js +1 -1
- package/public/vendor/okjs/toolkit/editor/ok-live-shell.ok.js +1 -1
- package/public/vendor/okjs/toolkit/elements/ok-dropdown.ok.js +1 -1
- package/public/vendor/okjs/toolkit/elements/ok-icon.ok.js +1 -1
- package/public/vendor/okjs/toolkit/elements/ok-select.ok.js +1 -1
- package/public/vendor/okjs/toolkit/elements/ok-table.ok.js +1 -1
- package/public/vendor/okjs/toolkit/errors/ok-crash-boundary.ok.js +1 -1
- package/public/vendor/okjs/toolkit/errors/ok-crash-info.ok.js +1 -1
- package/public/vendor/okjs/toolkit/i18n/i18n-editor-examples.ok.js +1 -1
- package/public/vendor/okjs/toolkit/i18n/i18n-editor.ok.js +1 -1
- package/public/vendor/okjs/toolkit/i18n/i18n-key-editor-tips.ok.js +1 -1
- package/public/vendor/okjs/toolkit/i18n/i18n-key-editor.ok.js +1 -1
- package/public/vendor/okjs/toolkit/i18n/i18n-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/i18n/ok-i18n.js +1 -1
- package/public/vendor/okjs/toolkit/interaction/ok-contextmenu.ok.js +1 -1
- package/public/vendor/okjs/toolkit/interaction/ok-dismiss-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/interaction/ok-draggable.ok.js +1 -1
- package/public/vendor/okjs/toolkit/interaction/ok-flyover-panel.ok.js +1 -1
- package/public/vendor/okjs/toolkit/interaction/ok-flyover.ok.js +1 -1
- package/public/vendor/okjs/toolkit/interaction/ok-highlight-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/interaction/ok-highlight.ok.js +1 -1
- package/public/vendor/okjs/toolkit/interaction/ok-hotkeys-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/interaction/ok-picker-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/interaction/ok-popout-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/interaction/ok-popout.ok.js +1 -1
- package/public/vendor/okjs/toolkit/interaction/ok-portal-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/interaction/ok-submenu.ok.js +1 -1
- package/public/vendor/okjs/toolkit/layout/ok-resizer.ok.js +1 -1
- package/public/vendor/okjs/toolkit/manifest.js +1 -1
- package/public/vendor/okjs/toolkit/modals/ok-modal-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/modals/ok-modal.ok.js +1 -1
- package/public/vendor/okjs/toolkit/modals/ok-toast-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/modals/ok-window.ok.js +1 -1
- package/public/vendor/okjs/toolkit/navigation/hash-router.ok.js +1 -1
- package/public/vendor/okjs/toolkit/navigation/history-router.ok.js +1 -1
- package/public/vendor/okjs/toolkit/navigation/router.ok.js +1 -1
- package/public/vendor/okjs/toolkit/sync/reactive-sync-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/sync/reactive-sync.js +1 -1
- package/public/vendor/okjs/toolkit/theming/blocks/ok-design-button.css.js +1 -1
- package/public/vendor/okjs/toolkit/theming/blocks/ok-design-input.css.js +1 -1
- package/public/vendor/okjs/toolkit/theming/ok-design-style.js +1 -1
- package/public/vendor/okjs/toolkit/theming/ok-design-vars.js +1 -1
- package/public/vendor/okjs/toolkit/theming/ok-design.ok.js +1 -1
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-input.ok.js +1 -1
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-service.ok.js +1 -1
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-style.js +1 -1
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-utils.js +1 -1
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-variable.ok.js +1 -1
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-vm.js +1 -1
- package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor.ok.js +1 -1
- package/public/vendor/okjs/toolkit/theming/ok-theme.ok.js +1 -1
- package/public/view-models/type-query-vm.js +1 -1
- package/okdb-data/default/data.mdb +0 -0
- package/okdb-data/default/lock.mdb +0 -0
- package/okdb-data/~log/data.mdb +0 -0
- package/okdb-data/~log/lock.mdb +0 -0
- package/okdb-data/~system/data.mdb +0 -0
- package/okdb-data/~system/lock.mdb +0 -0
- package/public/images/logo.png +0 -0
- package/public/images/logo.svg +0 -333
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x13dc4f=_0x5def;function _0x5def(_0x47b6f7,_0x40270e){_0x47b6f7=_0x47b6f7-0xf9;const _0x513b2d=_0x513b();let _0x5def64=_0x513b2d[_0x47b6f7];return _0x5def64;}(function(_0x4b37ab,_0x270c82){const _0x3a8976=_0x5def,_0xfa1405=_0x4b37ab();while(!![]){try{const _0x548950=parseInt(_0x3a8976(0x18c))/0x1+-parseInt(_0x3a8976(0x101))/0x2*(parseInt(_0x3a8976(0x17c))/0x3)+parseInt(_0x3a8976(0x175))/0x4*(parseInt(_0x3a8976(0x158))/0x5)+-parseInt(_0x3a8976(0x10a))/0x6+-parseInt(_0x3a8976(0x15f))/0x7+parseInt(_0x3a8976(0x16a))/0x8*(-parseInt(_0x3a8976(0x156))/0x9)+parseInt(_0x3a8976(0x14a))/0xa;if(_0x548950===_0x270c82)break;else _0xfa1405['push'](_0xfa1405['shift']());}catch(_0x409706){_0xfa1405['push'](_0xfa1405['shift']());}}}(_0x513b,0xd3f72));function _0x513b(){const _0x48c45b=['keys','loadRecent','var(--okdb-sky)','join','db-overview','pipeline:delete','_unsubs','recentError','20208010KAvGVe','/env/','/time-machine/enable','toLowerCase','types','h\x20ago','Failed\x20to\x20load\x20changes','count','var(--okdb-accent)','engine:started','pipelinesError','/pipelines','9xiPJuB','replace','75265ZslxJQ','engines','reloadOverviewData','tmScanMsg','_reloadTypes','/time-machine/status','data','5382272SaMIUK','reloadTypes','indexes','open','online','\x0a<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:20px;\x20max-width:860px;\x22>\x0a\x0a\x20\x20<!--\x20Header\x20-->\x0a\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:10px;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22font-weight:600;\x20font-size:18px;\x22>Database\x20Overview</div>\x0a\x20\x20\x20\x20<if\x20:=\x22recentBusy\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.4;\x22>updating…</span>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<div\x20style=\x22margin-left:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22loadRecent()\x22\x20:disabled=\x22recentBusy\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20opacity:.75;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20↻\x20Refresh\x0a\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<!--\x20Stat\x20cards\x20row\x20-->\x0a\x20\x20<div\x20class=\x22ov-stat-row\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-stat-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-label\x22>DB\x20Size</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-value\x22\x20style=\x22color:var(--accent);\x22>{{\x20approxSize\x20}}</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-stat-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-label\x22>Clock</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-value\x22\x20style=\x22font-family:monospace;\x20font-size:18px;\x22>{{\x20fmt(info?.clock)\x20}}</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-stat-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-label\x22>User\x20Types</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-value\x22\x20style=\x22color:var(--okdb-purple);\x22>{{\x20types.length\x20}}</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-stat-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-label\x22>Total\x20Records</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-value\x22\x20style=\x22color:var(--okdb-success);\x22>{{\x20fmt(totalRecords)\x20}}</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<!--\x20Empty\x20state\x20-->\x0a\x20\x20<if\x20:=\x22types.length\x20===\x200\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:14px;\x22>\x0a\x0a\x20\x20\x20\x20\x20\x20<!--\x20Standard\x20empty\x20hint\x20-->\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-empty\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:30px;\x20margin-bottom:12px;\x22>🗄️</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-weight:600;\x20font-size:15px;\x20margin-bottom:5px;\x22>No\x20types\x20registered\x20yet</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:13px;\x20opacity:.6;\x20line-height:1.7;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Use\x20<b>Register\x20Type\x20+</b>\x20in\x20the\x20sidebar\x20to\x20create\x20your\x20first\x20collection.<br>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Types\x20are\x20strongly-typed\x20document\x20collections\x20stored\x20in\x20LMDB.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<!--\x20Demo\x20data\x20card\x20-->\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card\x22\x20@click=\x22openDemoModal()\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card__aurora\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22position:relative;\x20z-index:1;\x20display:flex;\x20flex-direction:column;\x20align-items:center;\x20gap:10px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card__sparkle\x22>✦</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card__title\x22>Generate\x20Demo\x20Environment</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card__desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Instantly\x20populate\x20a\x20new\x20environment\x20with\x20realistic\x20data,\x20indexes,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20and\x20full-text\x20search\x20—\x20ready\x20to\x20explore\x20in\x20seconds.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card__badges\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-demo-badge\x22\x20style=\x22color:var(--okdb-success);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-success)\x2020%,\x20transparent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-success)\x207%,\x20transparent);\x22>🛒\x20E-Commerce</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-demo-badge\x22\x20style=\x22color:var(--okdb-accent);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2020%,\x20transparent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x207%,\x20transparent);\x22>📊\x20Analytics</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-demo-badge\x22\x20style=\x22color:var(--okdb-purple);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-purple)\x2020%,\x20transparent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-purple)\x207%,\x20transparent);\x22>📝\x20Content\x20Hub</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-demo-badge\x22\x20style=\x22color:var(--okdb-warning);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-warning)\x2020%,\x20transparent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-warning)\x207%,\x20transparent);\x22>👥\x20Team\x20Directory</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-demo-badge\x22\x20style=\x22color:var(--okdb-orange);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-orange)\x2020%,\x20transparent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-orange)\x207%,\x20transparent);\x22>🗺️\x20City\x20Explorer</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card__cta\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>Choose\x20a\x20preset</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22margin-left:6px;\x20font-size:14px;\x22>→</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<!--\x20Types\x20table\x20-->\x0a\x20\x20<if\x20:=\x22types.length\x20>\x200\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-card-head\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-weight:600;\x20font-size:14px;\x22>Types</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.45;\x20margin-left:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20types.length\x20}}\x20user · {{\x20systemTypes.length\x20}}\x20system\x0a\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<table\x20class=\x22ov-table\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<thead>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th>Name</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20style=\x22text-align:right;\x22>Records</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20style=\x22text-align:right;\x22>Pages</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20style=\x22text-align:right;\x22>Indexes</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th></th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</thead>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<tbody>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<tr\x20as=\x22repeat\x22\x20:of=\x22types\x22\x20let:item=\x22t\x22\x20class=\x22ov-row\x22\x20@click=\x22select(t)\x22\x20title=\x22Open\x20in\x20type\x20viewer\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-family:monospace;\x20font-size:13px;\x22>{{\x20t.type\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20style=\x22text-align:right;\x20color:var(--accent);\x20font-weight:600;\x22>{{\x20fmt(t.count)\x20}}</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20style=\x22text-align:right;\x20opacity:.5;\x20font-size:12px;\x22>{{\x20fmt(typePages(t.type))\x20}}</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20style=\x22text-align:right;\x20font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22typeIndexCount(t.type)\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:1px\x207px;\x20border-radius:999px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-purple)\x2033%,\x20transparent);\x20color:var(--okdb-purple);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:11px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>{{\x20typeIndexCount(t.type)\x20}}</span>\x0a\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<if\x20:=\x22typeIndexCount(t.type)\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22opacity:.3;\x22>—</span>\x0a\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</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20style=\x22text-align:right;\x20opacity:.3;\x20font-size:11px;\x20padding-right:16px;\x22>→</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</tbody>\x0a\x20\x20\x20\x20\x20\x20</table>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<!--\x20Violations\x20summary\x20-->\x0a\x20\x20<if\x20:=\x22totalViolations\x20>\x200\x20||\x20violationsBusy\x20||\x20violationsError\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-card-head\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-weight:600;\x20font-size:14px;\x22>Schema\x20Violations</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22totalViolations\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\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>{{\x20totalViolations\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.45;\x20margin-left:auto;\x22>across\x20all\x20types\x20in\x20{{\x20envName\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22loadViolations()\x22\x20:disabled=\x22violationsBusy\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20opacity:.75;\x22>↻</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22violationsBusy\x20&&\x20violations.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:14px\x2016px;\x20font-size:12px;\x20opacity:.45;\x22>Loading…</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22violationsError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:10px\x2016px;\x20color:var(--okdb-danger);\x20font-size:12px;\x22>{{\x20violationsError\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22!violationsBusy\x20&&\x20!violationsError\x20&&\x20violationsByType.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:14px\x2016px;\x20font-size:12px;\x20opacity:.4;\x22>No\x20violations.</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22violationsByType.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22violationsByType\x22\x20let:item=\x22grp\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20type\x20group\x20header\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-viol-group\x22\x20@click=\x22toggleViolationGroup(grp.type)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-viol-arrow\x22\x20:style=\x22expandedViolationType\x20===\x20grp.type\x20?\x20\x27transform:rotate(90deg)\x27\x20:\x20\x27\x27\x22>›</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-family:monospace;\x20font-size:13px;\x20flex:1;\x22>{{\x20grp.type\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20padding:2px\x208px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent);\x20color:var(--okdb-danger);\x20background:color-mix(in\x20srgb,\x20var(--okdb-danger)\x205%,\x20transparent);\x20margin-right:8px;\x22>{{\x20grp.count\x20}}</span>\x0a\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@click:stop=\x22navigateToType(grp.type)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-size:11px;\x20padding:2px\x208px;\x20border-radius:5px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20background:transparent;\x20color:var(--okdb-sky);\x20cursor:pointer;\x20opacity:.8;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20title=\x22Open\x20Schema\x20tab\x20for\x20this\x20type\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Schema\x20→</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20expanded\x20violations\x20for\x20this\x20type\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22expandedViolationType\x20===\x20grp.type\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-viol-list\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22grp.items\x22\x20let:item=\x22v\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-viol-row\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-family:monospace;\x20font-size:11px;\x20color:var(--okdb-json-key);\x20flex:1;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>{{\x20v.key\x20}}</span>\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:11px;\x20opacity:.45;\x20white-space:nowrap;\x20margin-left:8px;\x22>{{\x20(v.errors\x20??\x20[]).length\x20||\x20(v.errorCount\x20??\x200)\x20}}\x20error(s)</span>\x0a\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</each>\x0a\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\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</if>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<!--\x20Time\x20Machine\x20card\x20-->\x0a\x20\x20<div\x20class=\x22card\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20justify-content:space-between;\x20margin-bottom:8px;\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-weight:600;\x20font-size:13px;\x22>⏱\x20Time\x20Machine</span>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22!tmStatus\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.4;\x22>loading…</span>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22tmStatus\x20&&\x20!tmBusy\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22tmStatus.enabled\x20?\x20disableTM()\x20:\x20enableTM()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22\x27font-size:11px;\x20padding:2px\x2010px;\x20color:\x27\x20+\x20(tmStatus.enabled\x20?\x20\x27var(--okdb-danger)\x27\x20:\x20\x27var(--okdb-success)\x27)\x20+\x20\x27;\x20border-color:\x27\x20+\x20(tmStatus.enabled\x20?\x20\x27color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent)\x27\x20:\x20\x27color-mix(in\x20srgb,\x20var(--okdb-success)\x2033%,\x20transparent)\x27)\x20+\x20\x27;\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20>{{\x20tmStatus.enabled\x20?\x20\x27Disable\x27\x20:\x20\x27Enable\x27\x20}}</button>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22tmBusy\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.5;\x22>{{\x20tmScanMsg\x20||\x20\x27…\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<if\x20:=\x22tmStatus\x20&&\x20tmStatus.enabled\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.7;\x20display:flex;\x20flex-direction:column;\x20gap:3px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span>tracking\x20since\x20clock\x20{{\x20tmStatus.startClock\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22tmStatus.lastProcessedClock\x20!==\x20tmStatus.envClock\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>last\x20processed:\x20{{\x20tmStatus.lastProcessedClock\x20}}\x20·\x20env\x20at:\x20{{\x20tmStatus.envClock\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22tmStatus.lastProcessedClock\x20===\x20tmStatus.envClock\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>processed\x20through\x20clock\x20{{\x20tmStatus.lastProcessedClock\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20tmStatus.headCount\x20}}\x20heads</span>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<if\x20:=\x22tmStatus\x20&&\x20!tmStatus.enabled\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.4;\x22>disabled</span>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22ov-card\x22\x20style=\x22overflow:visible;\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-card-head\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-weight:600;\x20font-size:14px;\x22>Pipelines</span>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.45;\x20margin-left:auto;\x22>overview\x20highlights\x20for\x20the\x20current\x20environment</span>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20style=\x22padding:16px;\x20display:flex;\x20flex-direction:column;\x20gap:14px;\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-pipelines-headline\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x20min-width:0;\x20flex:1;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:15px;\x20font-weight:600;\x20color:var(--okdb-app-fg);\x22>{{\x20pipelineSummaryText\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelineHealthCounts.error\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-pipeline-pill\x22\x20:style=\x22\x27color:var(--okdb-danger);border-color:var(--okdb-danger-deep-border);background:#450a0a33;\x27\x22>{{\x20pipelineHealthCounts.error\x20}}\x20error</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelineHealthCounts.degraded\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-pipeline-pill\x22\x20:style=\x22\x27color:#fcd34d;border-color:#854d0e;background:#451a0333;\x27\x22>{{\x20pipelineHealthCounts.degraded\x20}}\x20degraded</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelineHealthCounts.online\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-pipeline-pill\x22\x20:style=\x22\x27color:#86efac;border-color:#166534;background:#052e1633;\x27\x22>{{\x20pipelineHealthCounts.online\x20}}\x20online</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.6;\x20max-width:640px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20The\x20overview\x20should\x20only\x20surface\x20high-signal\x20pipeline\x20highlights.\x20Open\x20the\x20dedicated\x20workspace\x20when\x20you\x20want\x20the\x20full\x20grouped\x20pipeline\x20list\x20and\x20member\x20details.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x20flex-wrap:wrap;\x20align-items:center;\x20justify-content:flex-end;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22loadPipelines()\x22\x20:disabled=\x22pipelinesBusy\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20opacity:.75;\x22>↻\x20Refresh</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22openPipelinesWorkspace()\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-indigo)\x2033%,\x20transparent);\x20color:var(--okdb-indigo);\x22>Open\x20pipelines\x20workspace\x20→</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelinesError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-pipelines-error\x22>{{\x20pipelinesError\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelinesBusy\x20&&\x20pipelines.length\x20===\x200\x20&&\x20!pipelinesError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.45;\x22>Loading\x20pipeline\x20highlights…</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22!pipelinesBusy\x20&&\x20pipelines.length\x20===\x200\x20&&\x20!pipelinesError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-pipelines-empty\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:24px;\x20opacity:.3;\x22>⛓</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:14px;\x20font-weight:600;\x20opacity:.78;\x22>No\x20pipelines\x20in\x20{{\x20envName\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.5;\x20max-width:520px;\x20line-height:1.7;\x20text-align:center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Pipelines\x20will\x20appear\x20here\x20once\x20created\x20or\x20synced.\x20This\x20frontpage\x20intentionally\x20stays\x20compact\x20and\x20only\x20shows\x20a\x20small\x20highlight\x20list.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelineHighlights.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-pipelines-list\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22pipelineHighlights\x22\x20let:item=\x22pipeline\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22ov-pipeline-highlight\x22\x20@click=\x22openPipelinesWorkspace(pipeline)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:9px;\x20min-width:0;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22\x27width:8px;height:8px;border-radius:50%;flex-shrink:0;background:\x27\x20+\x20healthColor(pipeline.health)\x22></span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:13px;\x20font-weight:600;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>{{\x20pipelineLabel(pipeline)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22\x27font-size:11px;color:\x27\x20+\x20healthColor(pipeline.health)\x20+\x20\x27;opacity:.95;white-space:nowrap;\x27\x22>{{\x20pipeline.health\x20||\x20\x27unknown\x27\x20}}</span>\x0a\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<div\x20style=\x22display:flex;\x20gap:12px;\x20flex-wrap:wrap;\x20margin-top:6px;\x20font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span><span\x20style=\x22opacity:.6;\x22>Members:</span>\x20<span\x20style=\x22color:var(--okdb-app-fg);\x22>{{\x20fmt(pipeline.engines?.length\x20||\x200)\x20}}</span></span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipeline.status\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span><span\x20style=\x22opacity:.6;\x22>Status:</span>\x20<span\x20:style=\x22\x27color:\x27\x20+\x20statusColor(pipeline.status)\x22>{{\x20pipeline.status\x20}}</span></span>\x0a\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<span\x20style=\x22overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>{{\x20pipelineRoleSummary(pipeline)\x20}}</span>\x0a\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</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</if>\x0a\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelines.length\x20>\x20pipelineHighlights.length\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20color:var(--okdb-app-fg-muted);\x20opacity:.75;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Showing\x20{{\x20pipelineHighlights.length\x20}}\x20of\x20{{\x20pipelines.length\x20}}\x20pipelines.\x20Open\x20the\x20dedicated\x20workspace\x20for\x20the\x20full\x20inventory.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<!--\x20Recent\x20activity\x20-->\x0a\x20\x20<if\x20:=\x22recentChanges.length\x20>\x200\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-card-head\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-weight:600;\x20font-size:14px;\x22>Recent\x20Activity</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.4;\x20margin-left:auto;\x22>last\x20{{\x20recentChanges.length\x20}}\x20changes</span>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<table\x20style=\x22width:100%;\x20border-collapse:collapse;\x20font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<tbody>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<tr\x20as=\x22repeat\x22\x20:of=\x22recentChanges\x22\x20let:item=\x22ch\x22\x20class=\x22ov-row\x20ov-row--sm\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ov-ch-td\x22\x20style=\x22text-align:right;\x20width:60px;\x20font-family:monospace;\x20opacity:.4;\x20padding-left:16px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20ch.clock\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ov-ch-td\x22\x20style=\x22width:100px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22\x27font-size:10px;\x20padding:2px\x206px;\x20border-radius:3px;\x20border:1px\x20solid;\x20color:\x27+actionColor(ch.action)+\x27;\x20border-color:\x27+actionColor(ch.action)+\x2755;\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20actionLabel(ch.action)\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ov-ch-td\x22\x20style=\x22font-family:monospace;\x20font-size:11px;\x20opacity:.7;\x20max-width:110px;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20ch.type\x20||\x20\x27—\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ov-ch-td\x22\x20style=\x22font-family:monospace;\x20font-size:11px;\x20opacity:.45;\x20max-width:160px;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20ch.key\x20||\x20\x27\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ov-ch-td\x22\x20style=\x22text-align:right;\x20opacity:.35;\x20white-space:nowrap;\x20font-size:11px;\x20padding-right:16px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20relTime(ch.timestamp)\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</tbody>\x0a\x20\x20\x20\x20\x20\x20</table>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a</div>\x0a','get','tmBusy','tmStatus','index:drop','type:registered','9733384buejsm','DELETE','loadViolations','shared','message','building','\x20·\x20','index:registered','_scheduleReload','engine:uninstalled','add','440MbCMxG','pipelinesBusy','item:remove','pipeline:stop','No\x20members','role','s\x20ago','309189OYePOm','violationsBusy','isArray','envName','system:clock_change','Failed\x20to\x20load\x20violations','health','$watch','length','$dispatch','okdb','stores','recentBusy','env','meta','var(--okdb-danger)','891296LWCvPN','stopped','violationsError','all','sync:apply','var(--okdb-success)','POST','scanning…','_reloadTimer','API','apiBase','22CvpWdN','json','map','resolve','reloadEnvs','success','system:poke','engine:error','\x20pipeline','3482730sStoOQ','info','selectedEnv','pipelineLabel','error','var(--okdb-warning)','pipelineSeverity','pipeline:start','toast','item:create','/engines','push','localeCompare','filter','/changelog?limit=10','catch','type','toLocaleString','toFixed','round','/violations','idle','name','status','expandedViolationType','set','startsWith','result','pageSize','pages','$ok','lastProcessedClock','loadPipelines','label','Failed\x20to\x20load\x20pipelines','pipelines','loadTMStatus','just\x20now','reduce','degraded','slice','violations','now','default','sort','Unnamed\x20pipeline','$vars','key','reloadInfo','entries','\x20engine','includes','var(--okdb-app-fg-muted)','running','has','$router'];_0x513b=function(){return _0x48c45b;};return _0x513b();}import _0x549d2d from'../../../stores/events-store.js';import _0x2eefd5 from'../modals/demo-env-modal.ok.js';export default{'tag':_0x13dc4f(0x146),'dependencies':[_0x2eefd5],'attr':{'stats':{}},'context':_0x926488=>({'recentChanges':[],'recentBusy':!0x1,'recentError':null,'pipelines':[],'pipelinesBusy':!0x1,'pipelinesError':null,'violations':[],'violationsBusy':!0x1,'violationsError':null,'expandedViolationType':null,'tmStatus':null,'tmBusy':!0x1,'tmScanMsg':'',get 'info'(){const _0x40bb28=_0x13dc4f;return _0x926488[_0x40bb28(0x128)][_0x40bb28(0x187)][_0x40bb28(0x186)][_0x40bb28(0x10b)];},get 'types'(){const _0x4b56a8=_0x13dc4f;return(_0x926488[_0x4b56a8(0x128)][_0x4b56a8(0x187)][_0x4b56a8(0x186)][_0x4b56a8(0x14e)]||[])[_0x4b56a8(0x117)](_0x976b87=>!_0x976b87['type'][_0x4b56a8(0x124)]('~'))[_0x4b56a8(0x136)]((_0x26bb97,_0x3dceb2)=>_0x26bb97[_0x4b56a8(0x11a)][_0x4b56a8(0x116)](_0x3dceb2[_0x4b56a8(0x11a)]));},get 'systemTypes'(){const _0x39200e=_0x13dc4f;return(_0x926488[_0x39200e(0x128)][_0x39200e(0x187)][_0x39200e(0x186)][_0x39200e(0x14e)]||[])['filter'](_0x937170=>_0x937170[_0x39200e(0x11a)]['startsWith']('~'));},get 'envName'(){const _0x3c8c4b=_0x13dc4f;return _0x926488[_0x3c8c4b(0x128)][_0x3c8c4b(0x187)][_0x3c8c4b(0x186)][_0x3c8c4b(0x10c)]||_0x3c8c4b(0x135);},get 'totalRecords'(){const _0x12e899=_0x13dc4f;return(_0x926488[_0x12e899(0x128)][_0x12e899(0x187)][_0x12e899(0x186)]['types']||[])[_0x12e899(0x117)](_0x1cea3f=>!_0x1cea3f[_0x12e899(0x11a)]['startsWith']('~'))[_0x12e899(0x130)]((_0x1122aa,_0x386777)=>_0x1122aa+(_0x386777[_0x12e899(0x151)]||0x0),0x0);},get 'approxSize'(){const _0x3d2dde=_0x13dc4f,_0x13c82d=this[_0x3d2dde(0x10b)]?.['lastPageNumber'],_0x307351=this[_0x3d2dde(0x10b)]?.[_0x3d2dde(0x126)];if(!_0x13c82d||!_0x307351)return'--';let _0x4f6475=_0x13c82d*_0x307351;const _0x48f46d=['B','KB','MB','GB','TB'];let _0x46233f=0x0;for(;_0x4f6475>=0x400&&_0x46233f<_0x48f46d[_0x3d2dde(0x184)]-0x1;)_0x4f6475/=0x400,_0x46233f++;return _0x4f6475[_0x3d2dde(0x11c)](0x2)+'\x20'+_0x48f46d[_0x46233f];},'typeIndexCount'(_0x156bca){const _0x35b067=_0x13dc4f,_0xc269d9=this[_0x35b067(0x10b)]?.[_0x35b067(0x14e)]?.[_0x156bca]?.[_0x35b067(0x161)];return _0xc269d9?Object[_0x35b067(0x142)](_0xc269d9)[_0x35b067(0x184)]:0x0;},'typePages'(_0x1b20ef){const _0x30c293=_0x13dc4f;return this[_0x30c293(0x10b)]?.['types']?.[_0x1b20ef]?.[_0x30c293(0x15e)]?.[_0x30c293(0x127)]??null;},'select'(_0x2849fd){const _0x3ef11e=_0x13dc4f;_0x926488[_0x3ef11e(0x185)]('select',_0x2849fd);},async 'loadRecent'(){const _0x19738d=_0x13dc4f;this[_0x19738d(0x188)]=!0x0,this[_0x19738d(0x149)]=null;try{const _0x392dd7=await fetch(_0x926488[_0x19738d(0x128)][_0x19738d(0x187)]['okdb'][_0x19738d(0x100)]+_0x19738d(0x118));if(_0x392dd7['ok']){const _0x49f689=await _0x392dd7['json']();this['recentChanges']=_0x49f689[_0x19738d(0x15e)]??[];}}catch(_0x30667c){this['recentError']=_0x30667c?.[_0x19738d(0x16e)]||_0x19738d(0x150);}finally{this['recentBusy']=!0x1;}},'actionColor':_0x37e83f=>({'put':_0x13dc4f(0xfb),'remove':'var(--okdb-danger)','type_register':_0x13dc4f(0x152),'type_drop':_0x13dc4f(0x18b),'index_register':'var(--okdb-purple)','index_drop':'var(--okdb-warning)'}[_0x37e83f]||_0x13dc4f(0x13e)),'actionLabel':_0x575814=>(_0x575814||'')[_0x13dc4f(0x157)](/_/g,'\x20'),'relTime'(_0xcdea4){const _0xb8a06c=_0x13dc4f;if(!_0xcdea4)return'—';const _0x3464c4=Date[_0xb8a06c(0x134)]()-_0xcdea4;return _0x3464c4<0x1388?_0xb8a06c(0x12f):_0x3464c4<0xea60?Math['round'](_0x3464c4/0x3e8)+_0xb8a06c(0x17b):_0x3464c4<0x36ee80?Math[_0xb8a06c(0x11d)](_0x3464c4/0xea60)+'m\x20ago':_0x3464c4<0x5265c00?Math['round'](_0x3464c4/0x36ee80)+_0xb8a06c(0x14f):new Date(_0xcdea4)['toLocaleDateString']();},'fmt':_0x2a20c5=>null==_0x2a20c5?'--':Number(_0x2a20c5)[_0x13dc4f(0x11b)](),'healthColor':_0x3846ca=>_0x13dc4f(0x163)===_0x3846ca?_0x13dc4f(0xfb):'degraded'===_0x3846ca?_0x13dc4f(0x10f):_0x13dc4f(0x10e)===_0x3846ca?_0x13dc4f(0x18b):_0x13dc4f(0x18d)===_0x3846ca?_0x13dc4f(0x13e):_0x13dc4f(0x144),'statusColor':_0x58a4b2=>'running'===_0x58a4b2||_0x13dc4f(0x163)===_0x58a4b2?'var(--okdb-success)':_0x13dc4f(0x16f)===_0x58a4b2||_0x13dc4f(0x131)===_0x58a4b2?'var(--okdb-warning)':_0x13dc4f(0x10e)===_0x58a4b2?_0x13dc4f(0x18b):_0x13dc4f(0x18d)===_0x58a4b2||'idle'===_0x58a4b2?_0x13dc4f(0x13e):_0x13dc4f(0x144),'pipelineKey'(_0x5acd60){const _0x3f4dd4=_0x13dc4f;return(_0x5acd60?.['env']||this[_0x3f4dd4(0x17f)])+'::'+(_0x5acd60?.['name']||'');},'pipelineLabel':_0x38cf55=>_0x38cf55?.[_0x13dc4f(0x18a)]?.[_0x13dc4f(0x12b)]||_0x38cf55?.[_0x13dc4f(0x120)]||_0x13dc4f(0x137),'pipelineRoleSummary'(_0x4591a2){const _0x42d06f=_0x13dc4f,_0x2a6cac=Array[_0x42d06f(0x17e)](_0x4591a2?.[_0x42d06f(0x159)])?_0x4591a2[_0x42d06f(0x159)]:[];if(0x0===_0x2a6cac['length'])return _0x42d06f(0x179);const _0x74d43e=[];for(const _0x5c4f95 of _0x2a6cac){const _0x4b74b9=_0x5c4f95?.[_0x42d06f(0x17a)]||_0x5c4f95?.[_0x42d06f(0x11a)];if(_0x4b74b9&&!_0x74d43e[_0x42d06f(0x13d)](_0x4b74b9)&&(_0x74d43e[_0x42d06f(0x115)](_0x4b74b9),_0x74d43e[_0x42d06f(0x184)]>=0x3))break;}return _0x74d43e[_0x42d06f(0x145)](_0x42d06f(0x170));},'pipelineSeverity'(_0x441e54){const _0x40cfed=_0x13dc4f,_0x4ae47c=String(_0x441e54?.[_0x40cfed(0x182)]||'')[_0x40cfed(0x14d)](),_0x1981c6=String(_0x441e54?.[_0x40cfed(0x121)]||'')[_0x40cfed(0x14d)]();return _0x40cfed(0x10e)===_0x4ae47c||_0x40cfed(0x10e)===_0x1981c6?0x0:_0x40cfed(0x131)===_0x4ae47c||'degraded'===_0x1981c6||_0x40cfed(0x16f)===_0x1981c6?0x1:_0x40cfed(0x18d)===_0x4ae47c||_0x40cfed(0x18d)===_0x1981c6||_0x40cfed(0x11f)===_0x1981c6?0x2:_0x40cfed(0x163)===_0x4ae47c||_0x40cfed(0x13f)===_0x1981c6||_0x40cfed(0x163)===_0x1981c6?0x3:0x4;},get 'pipelineEngineCount'(){const _0x529155=_0x13dc4f,_0x218e55=new Set();for(const _0x4d23a5 of this[_0x529155(0x12d)])for(const _0x1a232b of _0x4d23a5?.[_0x529155(0x159)]||[]){const _0x430b04=_0x1a232b?.[_0x529155(0x139)]||(_0x1a232b?.[_0x529155(0x11a)]&&_0x1a232b?.[_0x529155(0x120)]?_0x1a232b[_0x529155(0x11a)]+'@'+_0x1a232b[_0x529155(0x120)]:_0x1a232b?.[_0x529155(0x120)])||null;_0x430b04&&_0x218e55[_0x529155(0x174)]((_0x4d23a5?.[_0x529155(0x189)]||this[_0x529155(0x17f)])+'::'+_0x430b04);}return _0x218e55['size'];},get 'pipelineHealthCounts'(){const _0x3f2808=_0x13dc4f,_0x129c47={'online':0x0,'degraded':0x0,'error':0x0,'stopped':0x0};for(const _0x1de4a of this['pipelines']){const _0x4f27c0=String(_0x1de4a?.[_0x3f2808(0x182)]||'')[_0x3f2808(0x14d)]();null!=_0x129c47[_0x4f27c0]&&(_0x129c47[_0x4f27c0]+=0x1);}return _0x129c47;},get 'pipelineSummaryText'(){const _0x2ffc1d=_0x13dc4f,_0x50d0c7=this[_0x2ffc1d(0x12d)][_0x2ffc1d(0x184)],_0xfb879d=this['pipelineEngineCount'];return _0x50d0c7+_0x2ffc1d(0x109)+(0x1===_0x50d0c7?'':'s')+'\x20·\x20'+_0xfb879d+_0x2ffc1d(0x13c)+(0x1===_0xfb879d?'':'s');},get 'pipelineHighlights'(){const _0x4a4824=_0x13dc4f;return[...this[_0x4a4824(0x12d)]]['sort']((_0x583a92,_0x225b25)=>{const _0x35562b=_0x4a4824,_0x9eb74b=this[_0x35562b(0x110)](_0x583a92)-this[_0x35562b(0x110)](_0x225b25);return 0x0!==_0x9eb74b?_0x9eb74b:this[_0x35562b(0x10d)](_0x583a92)[_0x35562b(0x116)](this[_0x35562b(0x10d)](_0x225b25));})[_0x4a4824(0x132)](0x0,0x4);},async 'loadPipelines'(){const _0x9f864=_0x13dc4f;this[_0x9f864(0x176)]=!0x0,this[_0x9f864(0x154)]=null;try{const _0x19ffad=await fetch(_0x926488['$ok'][_0x9f864(0x187)][_0x9f864(0x186)][_0x9f864(0x100)]+_0x9f864(0x155)),_0x2d3918=await _0x19ffad[_0x9f864(0x102)]()[_0x9f864(0x119)](()=>({}));if(!_0x19ffad['ok'])throw new Error(_0x2d3918?.['error']?.[_0x9f864(0x16e)]||_0x9f864(0x12c));this[_0x9f864(0x12d)]=_0x2d3918?.[_0x9f864(0x15e)]??_0x2d3918?.[_0x9f864(0x125)]??[];}catch(_0x5ccff7){this[_0x9f864(0x154)]=_0x5ccff7?.['message']||_0x9f864(0x12c),this['pipelines']=[];}finally{this[_0x9f864(0x176)]=!0x1;}},'openPipelinesWorkspace'(_0x84862e=null){const _0x5ee77f=_0x13dc4f,_0xca4400=_0x926488[_0x5ee77f(0x138)]?.[_0x5ee77f(0x141)];if(!_0xca4400?.[_0x5ee77f(0x104)]||!_0xca4400?.[_0x5ee77f(0x115)])return;const _0x482e47={'env':this['envName'],'mode':_0x5ee77f(0x12d)};_0x84862e?.[_0x5ee77f(0x120)]&&(_0x482e47['pipeline']=_0x84862e[_0x5ee77f(0x120)]),_0xca4400['push'](_0xca4400['resolve'](_0x5ee77f(0x114),_0x482e47));},async 'openDemoModal'(){const _0x3cd187=_0x13dc4f;await _0x926488['$ok'][_0x3cd187(0x16d)]['modal'][_0x3cd187(0x162)]({'owner':_0x926488,'title':'<span\x20style=\x22background:linear-gradient(135deg,var(--okdb-accent),var(--okdb-purple)\x2050%,var(--okdb-success));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700;font-size:15px;\x22>✦\x20Demo\x20Environment</span>','canDrag':!0x0,'content':'<demo-env-modal\x20:modal=\x22modal\x22\x20:on-done=\x22onDone\x22\x20/>','context':_0x3ca8f5=>({'modal':_0x3ca8f5,'onDone':async _0x55cbee=>{const _0x5614a0=_0x3cd187;_0x926488[_0x5614a0(0x128)][_0x5614a0(0x187)][_0x5614a0(0x186)]['selectEnv'](_0x55cbee),await _0x926488[_0x5614a0(0x128)][_0x5614a0(0x187)][_0x5614a0(0x186)][_0x5614a0(0x105)](),_0x926488[_0x5614a0(0x128)][_0x5614a0(0x16d)]?.[_0x5614a0(0x112)]?.[_0x5614a0(0x106)]?.('✦\x20Demo\x20environment\x20\x22'+_0x55cbee+'\x22\x20is\x20ready!');}})});},'_unsubs':[],'_reloadTimer':null,'_scheduleReload'(){const _0x1b08ec=_0x13dc4f;clearTimeout(this[_0x1b08ec(0xfe)]),this['_reloadTimer']=setTimeout(()=>this[_0x1b08ec(0x143)](),0x258);},async '_reloadTypes'(){const _0xa6add0=_0x13dc4f;await Promise[_0xa6add0(0xf9)]([_0x926488[_0xa6add0(0x128)][_0xa6add0(0x187)]['okdb'][_0xa6add0(0x160)](),_0x926488[_0xa6add0(0x128)][_0xa6add0(0x187)][_0xa6add0(0x186)][_0xa6add0(0x13a)]()]);},async 'loadViolations'(){const _0x5e75ee=_0x13dc4f;this[_0x5e75ee(0x17d)]=!0x0,this['violationsError']=null;try{const _0x5651ac=await fetch(_0x926488[_0x5e75ee(0x128)]['stores'][_0x5e75ee(0x186)][_0x5e75ee(0x100)]+_0x5e75ee(0x11e));if(0x194===_0x5651ac[_0x5e75ee(0x121)])return void(this[_0x5e75ee(0x133)]=[]);if(!_0x5651ac['ok']){const _0x561335=await _0x5651ac['json']()[_0x5e75ee(0x119)](()=>({}));throw new Error(_0x561335?.[_0x5e75ee(0x10e)]?.[_0x5e75ee(0x16e)]||_0x5e75ee(0x181));}const _0x1ce8db=await _0x5651ac[_0x5e75ee(0x102)]();this[_0x5e75ee(0x133)]=_0x1ce8db?.['data']?.[_0x5e75ee(0x133)]??_0x1ce8db?.[_0x5e75ee(0x125)]?.[_0x5e75ee(0x133)]??[];}catch(_0x309e5a){this[_0x5e75ee(0x18e)]=_0x309e5a?.['message']||'Failed\x20to\x20load\x20violations',this[_0x5e75ee(0x133)]=[];}finally{this[_0x5e75ee(0x17d)]=!0x1;}},get 'violationsByType'(){const _0x542111=_0x13dc4f,_0x238c3f=new Map();for(const _0x3b0fdc of this[_0x542111(0x133)]){const _0x50b8d3=_0x3b0fdc[_0x542111(0x11a)]||'?';_0x238c3f[_0x542111(0x140)](_0x50b8d3)||_0x238c3f[_0x542111(0x123)](_0x50b8d3,[]),_0x238c3f[_0x542111(0x165)](_0x50b8d3)[_0x542111(0x115)](_0x3b0fdc);}return[..._0x238c3f[_0x542111(0x13b)]()][_0x542111(0x103)](([_0x53137a,_0x239ec1])=>({'type':_0x53137a,'count':_0x239ec1[_0x542111(0x184)],'items':_0x239ec1}))[_0x542111(0x136)]((_0x489afb,_0x32ea90)=>_0x32ea90[_0x542111(0x151)]-_0x489afb[_0x542111(0x151)]);},get 'totalViolations'(){const _0x5d4a0a=_0x13dc4f;return this[_0x5d4a0a(0x133)][_0x5d4a0a(0x184)];},'toggleViolationGroup'(_0x8b6151){const _0x415ee8=_0x13dc4f;this['expandedViolationType']=this[_0x415ee8(0x122)]===_0x8b6151?null:_0x8b6151;},'navigateToType'(_0x46e0d7){const _0x3b9d95=_0x13dc4f;_0x926488[_0x3b9d95(0x185)]('select',{'type':_0x46e0d7});},async 'reloadOverviewData'(){const _0x4dc829=_0x13dc4f;await Promise['all']([this['loadRecent'](),this[_0x4dc829(0x12a)](),this[_0x4dc829(0x16c)]()]);},async 'loadTMStatus'(){const _0x4bf6e9=_0x13dc4f;try{const _0x5e902f=_0x926488[_0x4bf6e9(0x128)][_0x4bf6e9(0x187)][_0x4bf6e9(0x186)]['selectedEnv']||'default',_0xf41309=await fetch(__ENV__[_0x4bf6e9(0xff)]+'/env/'+encodeURIComponent(_0x5e902f)+_0x4bf6e9(0x15d));if(!_0xf41309['ok'])return void(this[_0x4bf6e9(0x167)]={'enabled':!0x1});const _0x5ac8aa=await _0xf41309['json']();this[_0x4bf6e9(0x167)]=_0x5ac8aa[_0x4bf6e9(0x125)]??_0x5ac8aa[_0x4bf6e9(0x15e)]??{'enabled':!0x1};}catch{this['tmStatus']={'enabled':!0x1};}},async 'enableTM'(){const _0x56590d=_0x13dc4f;if(!this[_0x56590d(0x166)]){this['tmBusy']=!0x0,this[_0x56590d(0x15b)]=_0x56590d(0xfd);try{const _0x40a34e=_0x926488[_0x56590d(0x128)][_0x56590d(0x187)][_0x56590d(0x186)][_0x56590d(0x10c)]||_0x56590d(0x135);await fetch(__ENV__[_0x56590d(0xff)]+_0x56590d(0x14b)+encodeURIComponent(_0x40a34e)+_0x56590d(0x14c),{'method':_0x56590d(0xfc)});const _0x156c90=Date[_0x56590d(0x134)]()+0x2710;for(;Date[_0x56590d(0x134)]()<_0x156c90&&(await new Promise(_0x4b6c57=>setTimeout(_0x4b6c57,0x3e8)),await this[_0x56590d(0x12e)](),!(this['tmStatus']?.[_0x56590d(0x129)]>0x0)););}catch{}this[_0x56590d(0x166)]=!0x1,this[_0x56590d(0x15b)]='';}},async 'disableTM'(){const _0x2b5a29=_0x13dc4f;if(!this[_0x2b5a29(0x166)]){this['tmBusy']=!0x0;try{const _0x1a2fb0=_0x926488[_0x2b5a29(0x128)][_0x2b5a29(0x187)][_0x2b5a29(0x186)]['selectedEnv']||_0x2b5a29(0x135);await fetch(__ENV__[_0x2b5a29(0xff)]+'/env/'+encodeURIComponent(_0x1a2fb0)+_0x2b5a29(0x14c),{'method':_0x2b5a29(0x16b)}),await this['loadTMStatus']();}catch{}this[_0x2b5a29(0x166)]=!0x1;}}}),'init'(_0x190c0d){const _0x243098=_0x13dc4f;this[_0x243098(0x12e)](),_0x190c0d[_0x243098(0x183)](()=>_0x190c0d[_0x243098(0x128)][_0x243098(0x187)][_0x243098(0x186)][_0x243098(0x10c)],()=>{const _0x48ab1e=_0x243098;this[_0x48ab1e(0x15a)](),this[_0x48ab1e(0x12e)]();});},'mount'(){const _0x246282=_0x13dc4f;this[_0x246282(0x15a)]();const _0x51e189=()=>this[_0x246282(0x12a)]();this[_0x246282(0x148)]=[_0x549d2d['on'](_0x246282(0x169),()=>this[_0x246282(0x15c)]()),_0x549d2d['on']('type:drop',()=>this[_0x246282(0x15c)]()),_0x549d2d['on'](_0x246282(0x171),()=>this[_0x246282(0x15c)]()),_0x549d2d['on'](_0x246282(0x168),()=>this['_reloadTypes']()),_0x549d2d['on'](_0x246282(0x153),_0x51e189),_0x549d2d['on']('engine:stopped',_0x51e189),_0x549d2d['on'](_0x246282(0x108),_0x51e189),_0x549d2d['on']('engine:installed',_0x51e189),_0x549d2d['on'](_0x246282(0x173),_0x51e189),_0x549d2d['on'](_0x246282(0x111),_0x51e189),_0x549d2d['on'](_0x246282(0x178),_0x51e189),_0x549d2d['on'](_0x246282(0x147),_0x51e189),_0x549d2d['on'](_0x246282(0x113),()=>this['_scheduleReload']()),_0x549d2d['on']('item:update',()=>this[_0x246282(0x172)]()),_0x549d2d['on'](_0x246282(0x177),()=>this[_0x246282(0x172)]()),_0x549d2d['on'](_0x246282(0xfa),()=>this['_scheduleReload']()),_0x549d2d['on'](_0x246282(0x180),()=>this[_0x246282(0x172)]()),_0x549d2d['on'](_0x246282(0x107),()=>this['_scheduleReload']())];},'unmount'(){const _0x5408c9=_0x13dc4f;clearTimeout(this[_0x5408c9(0xfe)]);for(const _0x2c0a97 of this['_unsubs'])_0x2c0a97();this[_0x5408c9(0x148)]=[];},'template':_0x13dc4f(0x164),'style':'\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-stat-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20grid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x20repeat(4,\x201fr);\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2012px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-stat-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2016px\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x202px\x208px\x20#0003;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-stat-label\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-transform:\x20uppercase;\x0a\x20\x20\x20\x20\x20\x20\x20\x20letter-spacing:\x20.06em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-stat-value\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2022px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20700;\x0a\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x202px\x208px\x20#0003;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-card-head\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2013px\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-table\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-collapse:\x20collapse;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-table\x20th\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x207px\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20left;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20500;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-transform:\x20uppercase;\x0a\x20\x20\x20\x20\x20\x20\x20\x20letter-spacing:\x20.05em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.4;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-table\x20td\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x209px\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-surface-2);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20background\x20.1s;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-row:hover\x20td\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#ffffff07;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-table\x20tbody\x20tr:last-child\x20td\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x20none;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-ch-td\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipelines-headline\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20space-between;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20flex-start;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-wrap:\x20wrap;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipeline-pill\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x202px\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x20999px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20white-space:\x20nowrap;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipelines-error\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2010px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-danger)\x205%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipelines-empty\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20dashed\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2024px\x2020px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipelines-list\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20grid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x20repeat(auto-fit,\x20minmax(240px,\x201fr));\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipeline-highlight\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20left;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2011px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipeline-highlight:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-app-border-strong);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20tbody\x20.ov-row--sm:last-child\x20.ov-ch-td\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x20none;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-viol-group\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x209px\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-surface-2);\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20background\x20.1s;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-viol-group:hover\x20{\x20background:\x20#ffffff07;\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-viol-arrow\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20inline-block;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20transform\x20.15s;\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-viol-list\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-surface-2);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-viol-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x2016px\x206px\x2038px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-viol-row:last-child\x20{\x20border-bottom:\x20none;\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-empty\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20dashed\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2030px\x2032px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20/*\x20──\x20Demo\x20data\x20card\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2028px\x2024px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20border-color\x20.25s,\x20box-shadow\x20.25s,\x20transform\x20.2s;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2053%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x200\x200\x201px\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2013%,\x20transparent),\x200\x208px\x2040px\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x209%,\x20transparent),\x200\x200\x2080px\x20color-mix(in\x20srgb,\x20var(--okdb-purple)\x204%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translateY(-2px);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card__aurora\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20\x20\x20inset:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20radial-gradient(ellipse\x20at\x2020%\x2050%,\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x204%,\x20transparent),\x20transparent\x2055%),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20radial-gradient(ellipse\x20at\x2080%\x2030%,\x20color-mix(in\x20srgb,\x20var(--okdb-purple)\x204%,\x20transparent),\x20transparent\x2055%),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20radial-gradient(ellipse\x20at\x2050%\x2090%,\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x204%,\x20transparent),\x20transparent\x2055%);\x0a\x20\x20\x20\x20\x20\x20\x20\x20pointer-events:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20animation:\x20ov-aurora\x208s\x20ease-in-out\x20infinite\x20alternate;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card__sparkle\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2026px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(135deg,\x20var(--okdb-accent),\x20var(--okdb-purple)\x2040%,\x20var(--okdb-success));\x0a\x20\x20\x20\x20\x20\x20\x20\x20-webkit-background-clip:\x20text;\x0a\x20\x20\x20\x20\x20\x20\x20\x20-webkit-text-fill-color:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background-clip:\x20text;\x0a\x20\x20\x20\x20\x20\x20\x20\x20animation:\x20ov-hue\x206s\x20linear\x20infinite;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card__title\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2017px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20700;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(135deg,\x20var(--okdb-app-fg-strong),\x20var(--okdb-accent));\x0a\x20\x20\x20\x20\x20\x20\x20\x20-webkit-background-clip:\x20text;\x0a\x20\x20\x20\x20\x20\x20\x20\x20-webkit-text-fill-color:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background-clip:\x20text;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card__desc\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.55;\x0a\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20380px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.65;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card__badges\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-wrap:\x20wrap;\x0a\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-badge\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x203px\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x20999px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20500;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20transform\x20.15s;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card:hover\x20.ov-demo-badge\x20{\x20transform:\x20scale(1.05);\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card__cta\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.8;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20opacity\x20.15s;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card:hover\x20.ov-demo-card__cta\x20{\x20opacity:\x201;\x20}\x0a\x20\x20\x20\x20\x20\x20@keyframes\x20ov-hue\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20from\x20{\x20filter:\x20hue-rotate(0deg);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20to\x20\x20\x20{\x20filter:\x20hue-rotate(360deg);\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20@keyframes\x20ov-aurora\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20from\x20{\x20opacity:\x20.7;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20to\x20\x20\x20{\x20opacity:\x201.3;\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20'};
|
|
1
|
+
const _0x4f20f9=_0x2677;(function(_0x4a5d77,_0x464bc5){const _0x5b7585=_0x2677,_0x52f800=_0x4a5d77();while(!![]){try{const _0x40603b=parseInt(_0x5b7585(0x214))/0x1+parseInt(_0x5b7585(0x216))/0x2*(-parseInt(_0x5b7585(0x1f5))/0x3)+parseInt(_0x5b7585(0x1a7))/0x4*(-parseInt(_0x5b7585(0x1f7))/0x5)+-parseInt(_0x5b7585(0x205))/0x6*(parseInt(_0x5b7585(0x225))/0x7)+-parseInt(_0x5b7585(0x20a))/0x8*(parseInt(_0x5b7585(0x1d9))/0x9)+-parseInt(_0x5b7585(0x1ea))/0xa*(-parseInt(_0x5b7585(0x1dd))/0xb)+-parseInt(_0x5b7585(0x1ab))/0xc*(-parseInt(_0x5b7585(0x200))/0xd);if(_0x40603b===_0x464bc5)break;else _0x52f800['push'](_0x52f800['shift']());}catch(_0x43ba89){_0x52f800['push'](_0x52f800['shift']());}}}(_0x3beb,0x9ec63));function _0x2677(_0x4eba6c,_0x15112b){_0x4eba6c=_0x4eba6c-0x19a;const _0x3beb3d=_0x3beb();let _0x267709=_0x3beb3d[_0x4eba6c];return _0x267709;}function _0x3beb(){const _0x1bdaf3=['length','var(--okdb-accent)','\x20·\x20','7491AybrIC','item:update','filter','shared','$watch','reduce','item:remove','recentBusy','error','add','type','Failed\x20to\x20load\x20violations','toLocaleDateString','15830KRHQtt','loadViolations','h\x20ago','Failed\x20to\x20load\x20changes','var(--okdb-warning)','loadPipelines','slice','tmBusy','success','\x22\x20is\x20ready!','name','54gFCJwy','pipeline:stop','1288720SfEndh','startsWith','$router','var(--okdb-purple)','var(--okdb-danger)','open','now','role','reloadTypes','26ktvByc','No\x20members','\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-stat-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20grid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x20repeat(4,\x201fr);\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2012px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-stat-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2016px\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x202px\x208px\x20#0003;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-stat-label\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-transform:\x20uppercase;\x0a\x20\x20\x20\x20\x20\x20\x20\x20letter-spacing:\x20.06em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-stat-value\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2022px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20700;\x0a\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x202px\x208px\x20#0003;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-card-head\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2013px\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-table\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-collapse:\x20collapse;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-table\x20th\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x207px\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20left;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20500;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-transform:\x20uppercase;\x0a\x20\x20\x20\x20\x20\x20\x20\x20letter-spacing:\x20.05em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.4;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-table\x20td\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x209px\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-surface-2);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20background\x20.1s;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-row:hover\x20td\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#ffffff07;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-table\x20tbody\x20tr:last-child\x20td\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x20none;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-ch-td\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipelines-headline\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20space-between;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20flex-start;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-wrap:\x20wrap;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipeline-pill\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x202px\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x20999px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20white-space:\x20nowrap;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipelines-error\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2010px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-danger)\x205%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipelines-empty\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20dashed\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2024px\x2020px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipelines-list\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20grid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x20repeat(auto-fit,\x20minmax(240px,\x201fr));\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipeline-highlight\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20left;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2011px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-pipeline-highlight:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-app-border-strong);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20tbody\x20.ov-row--sm:last-child\x20.ov-ch-td\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x20none;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-viol-group\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x209px\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-surface-2);\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20background\x20.1s;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-viol-group:hover\x20{\x20background:\x20#ffffff07;\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-viol-arrow\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20inline-block;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20transform\x20.15s;\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-viol-list\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-surface-2);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-viol-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x206px\x2016px\x206px\x2038px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-surface);\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-viol-row:last-child\x20{\x20border-bottom:\x20none;\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-empty\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20dashed\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2030px\x2032px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.7;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20/*\x20──\x20Demo\x20data\x20card\x20──\x20*/\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2028px\x2024px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20border-color\x20.25s,\x20box-shadow\x20.25s,\x20transform\x20.2s;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2053%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x200\x200\x201px\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2013%,\x20transparent),\x200\x208px\x2040px\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x209%,\x20transparent),\x200\x200\x2080px\x20color-mix(in\x20srgb,\x20var(--okdb-purple)\x204%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translateY(-2px);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card__aurora\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20\x20\x20inset:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20radial-gradient(ellipse\x20at\x2020%\x2050%,\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x204%,\x20transparent),\x20transparent\x2055%),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20radial-gradient(ellipse\x20at\x2080%\x2030%,\x20color-mix(in\x20srgb,\x20var(--okdb-purple)\x204%,\x20transparent),\x20transparent\x2055%),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20radial-gradient(ellipse\x20at\x2050%\x2090%,\x20color-mix(in\x20srgb,\x20var(--okdb-success)\x204%,\x20transparent),\x20transparent\x2055%);\x0a\x20\x20\x20\x20\x20\x20\x20\x20pointer-events:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20animation:\x20ov-aurora\x208s\x20ease-in-out\x20infinite\x20alternate;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card__sparkle\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2026px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(135deg,\x20var(--okdb-accent),\x20var(--okdb-purple)\x2040%,\x20var(--okdb-success));\x0a\x20\x20\x20\x20\x20\x20\x20\x20-webkit-background-clip:\x20text;\x0a\x20\x20\x20\x20\x20\x20\x20\x20-webkit-text-fill-color:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background-clip:\x20text;\x0a\x20\x20\x20\x20\x20\x20\x20\x20animation:\x20ov-hue\x206s\x20linear\x20infinite;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card__title\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2017px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20700;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(135deg,\x20var(--okdb-app-fg-strong),\x20var(--okdb-accent));\x0a\x20\x20\x20\x20\x20\x20\x20\x20-webkit-background-clip:\x20text;\x0a\x20\x20\x20\x20\x20\x20\x20\x20-webkit-text-fill-color:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background-clip:\x20text;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card__desc\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.55;\x0a\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20380px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.65;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card__badges\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-wrap:\x20wrap;\x0a\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-badge\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x203px\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x20999px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20500;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20transform\x20.15s;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card:hover\x20.ov-demo-badge\x20{\x20transform:\x20scale(1.05);\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card__cta\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2013px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.8;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20opacity\x20.15s;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-overview\x20.ov-demo-card:hover\x20.ov-demo-card__cta\x20{\x20opacity:\x201;\x20}\x0a\x20\x20\x20\x20\x20\x20@keyframes\x20ov-hue\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20from\x20{\x20filter:\x20hue-rotate(0deg);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20to\x20\x20\x20{\x20filter:\x20hue-rotate(360deg);\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20@keyframes\x20ov-aurora\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20from\x20{\x20opacity:\x20.7;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20to\x20\x20\x20{\x20opacity:\x201.3;\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','pipelinesError','types','390qrjYcn','all','toLowerCase','/changelog?limit=10','sync:apply','4123816nleyQq','index:registered','size','DELETE','reloadInfo','count','Failed\x20to\x20load\x20pipelines','violations','running','result','1062538MwtjYy','violationsError','110282oqvutG','/time-machine/enable','push','message','_reloadTypes','indexes','API','entries','/env/','recentChanges','item:create','var(--okdb-app-fg-muted)','loadTMStatus','pipelineLabel','engine:installed','91532tnBfVw','info','lastProcessedClock','_unsubs','engine:stopped','$ok','/engines','envName','online','scanning…','s\x20ago','engine:error','health','toFixed','has','\x0a<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:20px;\x20max-width:860px;\x22>\x0a\x0a\x20\x20<!--\x20Header\x20-->\x0a\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:10px;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22font-weight:600;\x20font-size:18px;\x22>Database\x20Overview</div>\x0a\x20\x20\x20\x20<if\x20:=\x22recentBusy\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.4;\x22>updating…</span>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<div\x20style=\x22margin-left:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22loadRecent()\x22\x20:disabled=\x22recentBusy\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20opacity:.75;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20↻\x20Refresh\x0a\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<!--\x20Stat\x20cards\x20row\x20-->\x0a\x20\x20<div\x20class=\x22ov-stat-row\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-stat-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-label\x22>DB\x20Size</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-value\x22\x20style=\x22color:var(--accent);\x22>{{\x20approxSize\x20}}</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-stat-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-label\x22>Clock</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-value\x22\x20style=\x22font-family:monospace;\x20font-size:18px;\x22>{{\x20fmt(info?.clock)\x20}}</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-stat-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-label\x22>User\x20Types</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-value\x22\x20style=\x22color:var(--okdb-purple);\x22>{{\x20types.length\x20}}</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-stat-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-label\x22>Total\x20Records</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-stat-value\x22\x20style=\x22color:var(--okdb-success);\x22>{{\x20fmt(totalRecords)\x20}}</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<!--\x20Empty\x20state\x20-->\x0a\x20\x20<if\x20:=\x22types.length\x20===\x200\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:14px;\x22>\x0a\x0a\x20\x20\x20\x20\x20\x20<!--\x20Standard\x20empty\x20hint\x20-->\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-empty\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:30px;\x20margin-bottom:12px;\x22>🗄️</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-weight:600;\x20font-size:15px;\x20margin-bottom:5px;\x22>No\x20types\x20registered\x20yet</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:13px;\x20opacity:.6;\x20line-height:1.7;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Use\x20<b>Register\x20Type\x20+</b>\x20in\x20the\x20sidebar\x20to\x20create\x20your\x20first\x20collection.<br>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Types\x20are\x20strongly-typed\x20document\x20collections\x20stored\x20in\x20LMDB.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<!--\x20Demo\x20data\x20card\x20-->\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card\x22\x20@click=\x22openDemoModal()\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card__aurora\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22position:relative;\x20z-index:1;\x20display:flex;\x20flex-direction:column;\x20align-items:center;\x20gap:10px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card__sparkle\x22>✦</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card__title\x22>Generate\x20Demo\x20Environment</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card__desc\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Instantly\x20populate\x20a\x20new\x20environment\x20with\x20realistic\x20data,\x20indexes,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20and\x20full-text\x20search\x20—\x20ready\x20to\x20explore\x20in\x20seconds.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card__badges\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-demo-badge\x22\x20style=\x22color:var(--okdb-success);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-success)\x2020%,\x20transparent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-success)\x207%,\x20transparent);\x22>🛒\x20E-Commerce</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-demo-badge\x22\x20style=\x22color:var(--okdb-accent);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-accent)\x2020%,\x20transparent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x207%,\x20transparent);\x22>📊\x20Analytics</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-demo-badge\x22\x20style=\x22color:var(--okdb-purple);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-purple)\x2020%,\x20transparent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-purple)\x207%,\x20transparent);\x22>📝\x20Content\x20Hub</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-demo-badge\x22\x20style=\x22color:var(--okdb-warning);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-warning)\x2020%,\x20transparent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-warning)\x207%,\x20transparent);\x22>👥\x20Team\x20Directory</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-demo-badge\x22\x20style=\x22color:var(--okdb-orange);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-orange)\x2020%,\x20transparent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-orange)\x207%,\x20transparent);\x22>🗺️\x20City\x20Explorer</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-demo-card__cta\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>Choose\x20a\x20preset</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22margin-left:6px;\x20font-size:14px;\x22>→</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<!--\x20Types\x20table\x20-->\x0a\x20\x20<if\x20:=\x22types.length\x20>\x200\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-card-head\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-weight:600;\x20font-size:14px;\x22>Types</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.45;\x20margin-left:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20types.length\x20}}\x20user · {{\x20systemTypes.length\x20}}\x20system\x0a\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<table\x20class=\x22ov-table\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<thead>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th>Name</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20style=\x22text-align:right;\x22>Records</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20style=\x22text-align:right;\x22>Pages</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th\x20style=\x22text-align:right;\x22>Indexes</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th></th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</thead>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<tbody>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<tr\x20as=\x22repeat\x22\x20:of=\x22types\x22\x20let:item=\x22t\x22\x20class=\x22ov-row\x22\x20@click=\x22select(t)\x22\x20title=\x22Open\x20in\x20type\x20viewer\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-family:monospace;\x20font-size:13px;\x22>{{\x20t.type\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20style=\x22text-align:right;\x20color:var(--accent);\x20font-weight:600;\x22>{{\x20fmt(t.count)\x20}}</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20style=\x22text-align:right;\x20opacity:.5;\x20font-size:12px;\x22>{{\x20fmt(typePages(t.type))\x20}}</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20style=\x22text-align:right;\x20font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22typeIndexCount(t.type)\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:1px\x207px;\x20border-radius:999px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-purple)\x2033%,\x20transparent);\x20color:var(--okdb-purple);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:11px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>{{\x20typeIndexCount(t.type)\x20}}</span>\x0a\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<if\x20:=\x22typeIndexCount(t.type)\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22opacity:.3;\x22>—</span>\x0a\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</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20style=\x22text-align:right;\x20opacity:.3;\x20font-size:11px;\x20padding-right:16px;\x22>→</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</tbody>\x0a\x20\x20\x20\x20\x20\x20</table>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<!--\x20Violations\x20summary\x20-->\x0a\x20\x20<if\x20:=\x22totalViolations\x20>\x200\x20||\x20violationsBusy\x20||\x20violationsError\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-card-head\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-weight:600;\x20font-size:14px;\x22>Schema\x20Violations</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22totalViolations\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\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>{{\x20totalViolations\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.45;\x20margin-left:auto;\x22>across\x20all\x20types\x20in\x20{{\x20envName\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22loadViolations()\x22\x20:disabled=\x22violationsBusy\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20opacity:.75;\x22>↻</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22violationsBusy\x20&&\x20violations.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:14px\x2016px;\x20font-size:12px;\x20opacity:.45;\x22>Loading…</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22violationsError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:10px\x2016px;\x20color:var(--okdb-danger);\x20font-size:12px;\x22>{{\x20violationsError\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22!violationsBusy\x20&&\x20!violationsError\x20&&\x20violationsByType.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:14px\x2016px;\x20font-size:12px;\x20opacity:.4;\x22>No\x20violations.</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22violationsByType.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22violationsByType\x22\x20let:item=\x22grp\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20type\x20group\x20header\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-viol-group\x22\x20@click=\x22toggleViolationGroup(grp.type)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-viol-arrow\x22\x20:style=\x22expandedViolationType\x20===\x20grp.type\x20?\x20\x27transform:rotate(90deg)\x27\x20:\x20\x27\x27\x22>›</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-family:monospace;\x20font-size:13px;\x20flex:1;\x22>{{\x20grp.type\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20padding:2px\x208px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent);\x20color:var(--okdb-danger);\x20background:color-mix(in\x20srgb,\x20var(--okdb-danger)\x205%,\x20transparent);\x20margin-right:8px;\x22>{{\x20grp.count\x20}}</span>\x0a\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@click:stop=\x22navigateToType(grp.type)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-size:11px;\x20padding:2px\x208px;\x20border-radius:5px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20background:transparent;\x20color:var(--okdb-sky);\x20cursor:pointer;\x20opacity:.8;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20title=\x22Open\x20Schema\x20tab\x20for\x20this\x20type\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>Schema\x20→</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20expanded\x20violations\x20for\x20this\x20type\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22expandedViolationType\x20===\x20grp.type\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-viol-list\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22grp.items\x22\x20let:item=\x22v\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-viol-row\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-family:monospace;\x20font-size:11px;\x20color:var(--okdb-json-key);\x20flex:1;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>{{\x20v.key\x20}}</span>\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:11px;\x20opacity:.45;\x20white-space:nowrap;\x20margin-left:8px;\x22>{{\x20(v.errors\x20??\x20[]).length\x20||\x20(v.errorCount\x20??\x200)\x20}}\x20error(s)</span>\x0a\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</each>\x0a\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\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</if>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<!--\x20Time\x20Machine\x20card\x20-->\x0a\x20\x20<div\x20class=\x22card\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20justify-content:space-between;\x20margin-bottom:8px;\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-weight:600;\x20font-size:13px;\x22>⏱\x20Time\x20Machine</span>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22!tmStatus\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.4;\x22>loading…</span>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22tmStatus\x20&&\x20!tmBusy\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22tmStatus.enabled\x20?\x20disableTM()\x20:\x20enableTM()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22\x27font-size:11px;\x20padding:2px\x2010px;\x20color:\x27\x20+\x20(tmStatus.enabled\x20?\x20\x27var(--okdb-danger)\x27\x20:\x20\x27var(--okdb-success)\x27)\x20+\x20\x27;\x20border-color:\x27\x20+\x20(tmStatus.enabled\x20?\x20\x27color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent)\x27\x20:\x20\x27color-mix(in\x20srgb,\x20var(--okdb-success)\x2033%,\x20transparent)\x27)\x20+\x20\x27;\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20>{{\x20tmStatus.enabled\x20?\x20\x27Disable\x27\x20:\x20\x27Enable\x27\x20}}</button>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22tmBusy\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.5;\x22>{{\x20tmScanMsg\x20||\x20\x27…\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<if\x20:=\x22tmStatus\x20&&\x20tmStatus.enabled\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.7;\x20display:flex;\x20flex-direction:column;\x20gap:3px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span>tracking\x20since\x20clock\x20{{\x20tmStatus.startClock\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22tmStatus.lastProcessedClock\x20!==\x20tmStatus.envClock\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>last\x20processed:\x20{{\x20tmStatus.lastProcessedClock\x20}}\x20·\x20env\x20at:\x20{{\x20tmStatus.envClock\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22tmStatus.lastProcessedClock\x20===\x20tmStatus.envClock\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>processed\x20through\x20clock\x20{{\x20tmStatus.lastProcessedClock\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20tmStatus.headCount\x20}}\x20heads</span>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20<if\x20:=\x22tmStatus\x20&&\x20!tmStatus.enabled\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.4;\x22>disabled</span>\x0a\x20\x20\x20\x20</if>\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20class=\x22ov-card\x22\x20style=\x22overflow:visible;\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-card-head\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-weight:600;\x20font-size:14px;\x22>Pipelines</span>\x0a\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.45;\x20margin-left:auto;\x22>overview\x20highlights\x20for\x20the\x20current\x20environment</span>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20style=\x22padding:16px;\x20display:flex;\x20flex-direction:column;\x20gap:14px;\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-pipelines-headline\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x20min-width:0;\x20flex:1;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:15px;\x20font-weight:600;\x20color:var(--okdb-app-fg);\x22>{{\x20pipelineSummaryText\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelineHealthCounts.error\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-pipeline-pill\x22\x20:style=\x22\x27color:var(--okdb-danger);border-color:var(--okdb-danger-deep-border);background:#450a0a33;\x27\x22>{{\x20pipelineHealthCounts.error\x20}}\x20error</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelineHealthCounts.degraded\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-pipeline-pill\x22\x20:style=\x22\x27color:#fcd34d;border-color:#854d0e;background:#451a0333;\x27\x22>{{\x20pipelineHealthCounts.degraded\x20}}\x20degraded</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelineHealthCounts.online\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22ov-pipeline-pill\x22\x20:style=\x22\x27color:#86efac;border-color:#166534;background:#052e1633;\x27\x22>{{\x20pipelineHealthCounts.online\x20}}\x20online</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.6;\x20max-width:640px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20The\x20overview\x20should\x20only\x20surface\x20high-signal\x20pipeline\x20highlights.\x20Open\x20the\x20dedicated\x20workspace\x20when\x20you\x20want\x20the\x20full\x20grouped\x20pipeline\x20list\x20and\x20member\x20details.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x20flex-wrap:wrap;\x20align-items:center;\x20justify-content:flex-end;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22loadPipelines()\x22\x20:disabled=\x22pipelinesBusy\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20opacity:.75;\x22>↻\x20Refresh</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22openPipelinesWorkspace()\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-indigo)\x2033%,\x20transparent);\x20color:var(--okdb-indigo);\x22>Open\x20pipelines\x20workspace\x20→</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelinesError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-pipelines-error\x22>{{\x20pipelinesError\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelinesBusy\x20&&\x20pipelines.length\x20===\x200\x20&&\x20!pipelinesError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.45;\x22>Loading\x20pipeline\x20highlights…</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22!pipelinesBusy\x20&&\x20pipelines.length\x20===\x200\x20&&\x20!pipelinesError\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-pipelines-empty\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:24px;\x20opacity:.3;\x22>⛓</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:14px;\x20font-weight:600;\x20opacity:.78;\x22>No\x20pipelines\x20in\x20{{\x20envName\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.5;\x20max-width:520px;\x20line-height:1.7;\x20text-align:center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Pipelines\x20will\x20appear\x20here\x20once\x20created\x20or\x20synced.\x20This\x20frontpage\x20intentionally\x20stays\x20compact\x20and\x20only\x20shows\x20a\x20small\x20highlight\x20list.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelineHighlights.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-pipelines-list\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22pipelineHighlights\x22\x20let:item=\x22pipeline\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22ov-pipeline-highlight\x22\x20@click=\x22openPipelinesWorkspace(pipeline)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:9px;\x20min-width:0;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22\x27width:8px;height:8px;border-radius:50%;flex-shrink:0;background:\x27\x20+\x20healthColor(pipeline.health)\x22></span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:13px;\x20font-weight:600;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>{{\x20pipelineLabel(pipeline)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22\x27font-size:11px;color:\x27\x20+\x20healthColor(pipeline.health)\x20+\x20\x27;opacity:.95;white-space:nowrap;\x27\x22>{{\x20pipeline.health\x20||\x20\x27unknown\x27\x20}}</span>\x0a\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<div\x20style=\x22display:flex;\x20gap:12px;\x20flex-wrap:wrap;\x20margin-top:6px;\x20font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span><span\x20style=\x22opacity:.6;\x22>Members:</span>\x20<span\x20style=\x22color:var(--okdb-app-fg);\x22>{{\x20fmt(pipeline.engines?.length\x20||\x200)\x20}}</span></span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipeline.status\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span><span\x20style=\x22opacity:.6;\x22>Status:</span>\x20<span\x20:style=\x22\x27color:\x27\x20+\x20statusColor(pipeline.status)\x22>{{\x20pipeline.status\x20}}</span></span>\x0a\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<span\x20style=\x22overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>{{\x20pipelineRoleSummary(pipeline)\x20}}</span>\x0a\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</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</if>\x0a\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22pipelines.length\x20>\x20pipelineHighlights.length\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20color:var(--okdb-app-fg-muted);\x20opacity:.75;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Showing\x20{{\x20pipelineHighlights.length\x20}}\x20of\x20{{\x20pipelines.length\x20}}\x20pipelines.\x20Open\x20the\x20dedicated\x20workspace\x20for\x20the\x20full\x20inventory.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<!--\x20Recent\x20activity\x20-->\x0a\x20\x20<if\x20:=\x22recentChanges.length\x20>\x200\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22ov-card\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22ov-card-head\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-weight:600;\x20font-size:14px;\x22>Recent\x20Activity</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:12px;\x20opacity:.4;\x20margin-left:auto;\x22>last\x20{{\x20recentChanges.length\x20}}\x20changes</span>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<table\x20style=\x22width:100%;\x20border-collapse:collapse;\x20font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<tbody>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<tr\x20as=\x22repeat\x22\x20:of=\x22recentChanges\x22\x20let:item=\x22ch\x22\x20class=\x22ov-row\x20ov-row--sm\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ov-ch-td\x22\x20style=\x22text-align:right;\x20width:60px;\x20font-family:monospace;\x20opacity:.4;\x20padding-left:16px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20ch.clock\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ov-ch-td\x22\x20style=\x22width:100px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22\x27font-size:10px;\x20padding:2px\x206px;\x20border-radius:3px;\x20border:1px\x20solid;\x20color:\x27+actionColor(ch.action)+\x27;\x20border-color:\x27+actionColor(ch.action)+\x2755;\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20actionLabel(ch.action)\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ov-ch-td\x22\x20style=\x22font-family:monospace;\x20font-size:11px;\x20opacity:.7;\x20max-width:110px;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20ch.type\x20||\x20\x27—\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ov-ch-td\x22\x20style=\x22font-family:monospace;\x20font-size:11px;\x20opacity:.45;\x20max-width:160px;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20ch.key\x20||\x20\x27\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20class=\x22ov-ch-td\x22\x20style=\x22text-align:right;\x20opacity:.35;\x20white-space:nowrap;\x20font-size:11px;\x20padding-right:16px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20relTime(ch.timestamp)\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</tbody>\x0a\x20\x20\x20\x20\x20\x20</table>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a</div>\x0a','reloadOverviewData','localeCompare','env','status','apiBase','Unnamed\x20pipeline','<demo-env-modal\x20:modal=\x22modal\x22\x20:on-done=\x22onDone\x22\x20/>','resolve','json','engine:uninstalled','20ktfunI','✦\x20Demo\x20environment\x20\x22','catch','pipelines','16031580CKGkWx','pipeline:delete','var(--okdb-sky)','selectEnv','map','pipelineEngineCount','tmStatus','lastPageNumber','default','recentError','selectedEnv','violationsBusy','keys','\x20engine','engines','degraded','$vars','stores','select','sort','okdb','round','$dispatch','pipeline:start','building','toLocaleString','just\x20now','expandedViolationType','_reloadTimer','label','data','type:drop','index:drop','meta','tmScanMsg','system:poke','idle','_scheduleReload','m\x20ago','var(--okdb-success)','pipelinesBusy','stopped','pipeline','set','modal','pipelineSeverity','18yXcRlv'];_0x3beb=function(){return _0x1bdaf3;};return _0x3beb();}import _0x39dd26 from'../../../stores/events-store.js';import _0x2dea8d from'../modals/demo-env-modal.ok.js';export default{'tag':'db-overview','dependencies':[_0x2dea8d],'attr':{'stats':{}},'context':_0x13454c=>({'recentChanges':[],'recentBusy':!0x1,'recentError':null,'pipelines':[],'pipelinesBusy':!0x1,'pipelinesError':null,'violations':[],'violationsBusy':!0x1,'violationsError':null,'expandedViolationType':null,'tmStatus':null,'tmBusy':!0x1,'tmScanMsg':'',get 'info'(){const _0x977f40=_0x2677;return _0x13454c[_0x977f40(0x22a)][_0x977f40(0x1bc)][_0x977f40(0x1bf)][_0x977f40(0x226)];},get 'types'(){const _0x16d6bd=_0x2677;return(_0x13454c[_0x16d6bd(0x22a)][_0x16d6bd(0x1bc)][_0x16d6bd(0x1bf)]['types']||[])[_0x16d6bd(0x1df)](_0x5736b6=>!_0x5736b6['type']['startsWith']('~'))['sort']((_0x5b8c30,_0xd6558f)=>_0x5b8c30['type'][_0x16d6bd(0x19e)](_0xd6558f[_0x16d6bd(0x1e7)]));},get 'systemTypes'(){const _0x594046=_0x2677;return(_0x13454c[_0x594046(0x22a)]['stores']['okdb'][_0x594046(0x204)]||[])['filter'](_0x5b96e7=>_0x5b96e7[_0x594046(0x1e7)][_0x594046(0x1f8)]('~'));},get 'envName'(){const _0x48ce1f=_0x2677;return _0x13454c[_0x48ce1f(0x22a)][_0x48ce1f(0x1bc)][_0x48ce1f(0x1bf)]['selectedEnv']||'default';},get 'totalRecords'(){const _0x555e59=_0x2677;return(_0x13454c[_0x555e59(0x22a)]['stores'][_0x555e59(0x1bf)][_0x555e59(0x204)]||[])['filter'](_0x3af6ed=>!_0x3af6ed[_0x555e59(0x1e7)][_0x555e59(0x1f8)]('~'))[_0x555e59(0x1e2)]((_0x13d539,_0x26ca42)=>_0x13d539+(_0x26ca42[_0x555e59(0x20f)]||0x0),0x0);},get 'approxSize'(){const _0x19054a=_0x2677,_0x388bd5=this[_0x19054a(0x226)]?.[_0x19054a(0x1b2)],_0x37e135=this['info']?.['pageSize'];if(!_0x388bd5||!_0x37e135)return'--';let _0x47aea8=_0x388bd5*_0x37e135;const _0x5e2536=['B','KB','MB','GB','TB'];let _0x3cee29=0x0;for(;_0x47aea8>=0x400&&_0x3cee29<_0x5e2536[_0x19054a(0x1da)]-0x1;)_0x47aea8/=0x400,_0x3cee29++;return _0x47aea8[_0x19054a(0x19a)](0x2)+'\x20'+_0x5e2536[_0x3cee29];},'typeIndexCount'(_0x132edf){const _0x3afe45=_0x2677,_0x1da3cf=this[_0x3afe45(0x226)]?.[_0x3afe45(0x204)]?.[_0x132edf]?.[_0x3afe45(0x21b)];return _0x1da3cf?Object[_0x3afe45(0x1b7)](_0x1da3cf)[_0x3afe45(0x1da)]:0x0;},'typePages'(_0x58b78e){const _0x2cd919=_0x2677;return this[_0x2cd919(0x226)]?.['types']?.[_0x58b78e]?.[_0x2cd919(0x1c9)]?.['pages']??null;},'select'(_0x53e861){const _0x229741=_0x2677;_0x13454c[_0x229741(0x1c1)](_0x229741(0x1bd),_0x53e861);},async 'loadRecent'(){const _0x20273a=_0x2677;this[_0x20273a(0x1e4)]=!0x0,this[_0x20273a(0x1b4)]=null;try{const _0x40c598=await fetch(_0x13454c[_0x20273a(0x22a)][_0x20273a(0x1bc)]['okdb'][_0x20273a(0x1a1)]+_0x20273a(0x208));if(_0x40c598['ok']){const _0x1ff880=await _0x40c598[_0x20273a(0x1a5)]();this[_0x20273a(0x21f)]=_0x1ff880[_0x20273a(0x1c9)]??[];}}catch(_0x56a620){this[_0x20273a(0x1b4)]=_0x56a620?.[_0x20273a(0x219)]||_0x20273a(0x1ed);}finally{this[_0x20273a(0x1e4)]=!0x1;}},'actionColor':_0x11b9a2=>({'put':'var(--okdb-success)','remove':'var(--okdb-danger)','type_register':_0x4f20f9(0x1db),'type_drop':'var(--okdb-danger)','index_register':_0x4f20f9(0x1fa),'index_drop':_0x4f20f9(0x1ee)}[_0x11b9a2]||_0x4f20f9(0x221)),'actionLabel':_0x126d9d=>(_0x126d9d||'')['replace'](/_/g,'\x20'),'relTime'(_0x466dfc){const _0x52490a=_0x4f20f9;if(!_0x466dfc)return'—';const _0x5a31b8=Date[_0x52490a(0x1fd)]()-_0x466dfc;return _0x5a31b8<0x1388?_0x52490a(0x1c5):_0x5a31b8<0xea60?Math[_0x52490a(0x1c0)](_0x5a31b8/0x3e8)+_0x52490a(0x22f):_0x5a31b8<0x36ee80?Math[_0x52490a(0x1c0)](_0x5a31b8/0xea60)+_0x52490a(0x1d1):_0x5a31b8<0x5265c00?Math['round'](_0x5a31b8/0x36ee80)+_0x52490a(0x1ec):new Date(_0x466dfc)[_0x52490a(0x1e9)]();},'fmt':_0x493360=>null==_0x493360?'--':Number(_0x493360)[_0x4f20f9(0x1c4)](),'healthColor':_0x3fa3c2=>'online'===_0x3fa3c2?'var(--okdb-success)':_0x4f20f9(0x1ba)===_0x3fa3c2?_0x4f20f9(0x1ee):_0x4f20f9(0x1e5)===_0x3fa3c2?_0x4f20f9(0x1fb):_0x4f20f9(0x1d4)===_0x3fa3c2?_0x4f20f9(0x221):_0x4f20f9(0x1ad),'statusColor':_0x5a5ffc=>_0x4f20f9(0x212)===_0x5a5ffc||'online'===_0x5a5ffc?_0x4f20f9(0x1d2):'building'===_0x5a5ffc||'degraded'===_0x5a5ffc?_0x4f20f9(0x1ee):_0x4f20f9(0x1e5)===_0x5a5ffc?_0x4f20f9(0x1fb):_0x4f20f9(0x1d4)===_0x5a5ffc||_0x4f20f9(0x1cf)===_0x5a5ffc?'var(--okdb-app-fg-muted)':_0x4f20f9(0x1ad),'pipelineKey'(_0x415fc6){const _0x1596ae=_0x4f20f9;return(_0x415fc6?.[_0x1596ae(0x19f)]||this[_0x1596ae(0x22c)])+'::'+(_0x415fc6?.['name']||'');},'pipelineLabel':_0x165b8f=>_0x165b8f?.[_0x4f20f9(0x1cc)]?.[_0x4f20f9(0x1c8)]||_0x165b8f?.[_0x4f20f9(0x1f4)]||_0x4f20f9(0x1a2),'pipelineRoleSummary'(_0x210cbc){const _0x15a5b3=_0x4f20f9,_0x3e6876=Array['isArray'](_0x210cbc?.[_0x15a5b3(0x1b9)])?_0x210cbc[_0x15a5b3(0x1b9)]:[];if(0x0===_0x3e6876[_0x15a5b3(0x1da)])return _0x15a5b3(0x201);const _0x3ba742=[];for(const _0x370de4 of _0x3e6876){const _0x356947=_0x370de4?.[_0x15a5b3(0x1fe)]||_0x370de4?.[_0x15a5b3(0x1e7)];if(_0x356947&&!_0x3ba742['includes'](_0x356947)&&(_0x3ba742[_0x15a5b3(0x218)](_0x356947),_0x3ba742[_0x15a5b3(0x1da)]>=0x3))break;}return _0x3ba742['join'](_0x15a5b3(0x1dc));},'pipelineSeverity'(_0x47ccdf){const _0x29f56f=_0x4f20f9,_0x223ba2=String(_0x47ccdf?.[_0x29f56f(0x231)]||'')[_0x29f56f(0x207)](),_0x4774a4=String(_0x47ccdf?.[_0x29f56f(0x1a0)]||'')[_0x29f56f(0x207)]();return _0x29f56f(0x1e5)===_0x223ba2||_0x29f56f(0x1e5)===_0x4774a4?0x0:_0x29f56f(0x1ba)===_0x223ba2||_0x29f56f(0x1ba)===_0x4774a4||_0x29f56f(0x1c3)===_0x4774a4?0x1:_0x29f56f(0x1d4)===_0x223ba2||'stopped'===_0x4774a4||_0x29f56f(0x1cf)===_0x4774a4?0x2:'online'===_0x223ba2||_0x29f56f(0x212)===_0x4774a4||_0x29f56f(0x22d)===_0x4774a4?0x3:0x4;},get 'pipelineEngineCount'(){const _0x13b6b3=_0x4f20f9,_0xb293aa=new Set();for(const _0x6cadf5 of this[_0x13b6b3(0x1aa)])for(const _0xcc5791 of _0x6cadf5?.[_0x13b6b3(0x1b9)]||[]){const _0x56d5f7=_0xcc5791?.['key']||(_0xcc5791?.[_0x13b6b3(0x1e7)]&&_0xcc5791?.[_0x13b6b3(0x1f4)]?_0xcc5791[_0x13b6b3(0x1e7)]+'@'+_0xcc5791[_0x13b6b3(0x1f4)]:_0xcc5791?.[_0x13b6b3(0x1f4)])||null;_0x56d5f7&&_0xb293aa[_0x13b6b3(0x1e6)]((_0x6cadf5?.[_0x13b6b3(0x19f)]||this[_0x13b6b3(0x22c)])+'::'+_0x56d5f7);}return _0xb293aa[_0x13b6b3(0x20c)];},get 'pipelineHealthCounts'(){const _0x29f498=_0x4f20f9,_0x1f9719={'online':0x0,'degraded':0x0,'error':0x0,'stopped':0x0};for(const _0x5ac2fb of this[_0x29f498(0x1aa)]){const _0x36648a=String(_0x5ac2fb?.[_0x29f498(0x231)]||'')[_0x29f498(0x207)]();null!=_0x1f9719[_0x36648a]&&(_0x1f9719[_0x36648a]+=0x1);}return _0x1f9719;},get 'pipelineSummaryText'(){const _0x53a6fd=_0x4f20f9,_0x20869d=this[_0x53a6fd(0x1aa)][_0x53a6fd(0x1da)],_0x41fb88=this[_0x53a6fd(0x1b0)];return _0x20869d+'\x20pipeline'+(0x1===_0x20869d?'':'s')+'\x20·\x20'+_0x41fb88+_0x53a6fd(0x1b8)+(0x1===_0x41fb88?'':'s');},get 'pipelineHighlights'(){const _0x3b7fa3=_0x4f20f9;return[...this['pipelines']][_0x3b7fa3(0x1be)]((_0x1b74a8,_0x584cc2)=>{const _0xd51208=_0x3b7fa3,_0x32d21e=this[_0xd51208(0x1d8)](_0x1b74a8)-this[_0xd51208(0x1d8)](_0x584cc2);return 0x0!==_0x32d21e?_0x32d21e:this[_0xd51208(0x223)](_0x1b74a8)[_0xd51208(0x19e)](this['pipelineLabel'](_0x584cc2));})[_0x3b7fa3(0x1f0)](0x0,0x4);},async 'loadPipelines'(){const _0x6a770e=_0x4f20f9;this[_0x6a770e(0x1d3)]=!0x0,this[_0x6a770e(0x203)]=null;try{const _0xd69947=await fetch(_0x13454c[_0x6a770e(0x22a)][_0x6a770e(0x1bc)][_0x6a770e(0x1bf)][_0x6a770e(0x1a1)]+'/pipelines'),_0x4742a2=await _0xd69947[_0x6a770e(0x1a5)]()[_0x6a770e(0x1a9)](()=>({}));if(!_0xd69947['ok'])throw new Error(_0x4742a2?.[_0x6a770e(0x1e5)]?.[_0x6a770e(0x219)]||_0x6a770e(0x210));this[_0x6a770e(0x1aa)]=_0x4742a2?.[_0x6a770e(0x1c9)]??_0x4742a2?.[_0x6a770e(0x213)]??[];}catch(_0xbd12bf){this[_0x6a770e(0x203)]=_0xbd12bf?.[_0x6a770e(0x219)]||'Failed\x20to\x20load\x20pipelines',this['pipelines']=[];}finally{this['pipelinesBusy']=!0x1;}},'openPipelinesWorkspace'(_0x52a2af=null){const _0x4fc534=_0x4f20f9,_0x109c75=_0x13454c[_0x4fc534(0x1bb)]?.[_0x4fc534(0x1f9)];if(!_0x109c75?.[_0x4fc534(0x1a4)]||!_0x109c75?.[_0x4fc534(0x218)])return;const _0x50ba27={'env':this['envName'],'mode':_0x4fc534(0x1aa)};_0x52a2af?.[_0x4fc534(0x1f4)]&&(_0x50ba27[_0x4fc534(0x1d5)]=_0x52a2af['name']),_0x109c75['push'](_0x109c75[_0x4fc534(0x1a4)](_0x4fc534(0x22b),_0x50ba27));},async 'openDemoModal'(){const _0x4ad28c=_0x4f20f9;await _0x13454c[_0x4ad28c(0x22a)][_0x4ad28c(0x1e0)][_0x4ad28c(0x1d7)][_0x4ad28c(0x1fc)]({'owner':_0x13454c,'title':'<span\x20style=\x22background:linear-gradient(135deg,var(--okdb-accent),var(--okdb-purple)\x2050%,var(--okdb-success));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700;font-size:15px;\x22>✦\x20Demo\x20Environment</span>','canDrag':!0x0,'content':_0x4ad28c(0x1a3),'context':_0x2e9916=>({'modal':_0x2e9916,'onDone':async _0x17a6d0=>{const _0x4d5e1e=_0x4ad28c;_0x13454c[_0x4d5e1e(0x22a)]['stores'][_0x4d5e1e(0x1bf)][_0x4d5e1e(0x1ae)](_0x17a6d0),await _0x13454c[_0x4d5e1e(0x22a)]['stores'][_0x4d5e1e(0x1bf)]['reloadEnvs'](),_0x13454c[_0x4d5e1e(0x22a)][_0x4d5e1e(0x1e0)]?.['toast']?.[_0x4d5e1e(0x1f2)]?.(_0x4d5e1e(0x1a8)+_0x17a6d0+_0x4d5e1e(0x1f3));}})});},'_unsubs':[],'_reloadTimer':null,'_scheduleReload'(){const _0x52931d=_0x4f20f9;clearTimeout(this['_reloadTimer']),this[_0x52931d(0x1c7)]=setTimeout(()=>this['loadRecent'](),0x258);},async '_reloadTypes'(){const _0x480bad=_0x4f20f9;await Promise[_0x480bad(0x206)]([_0x13454c[_0x480bad(0x22a)][_0x480bad(0x1bc)][_0x480bad(0x1bf)][_0x480bad(0x1ff)](),_0x13454c['$ok']['stores']['okdb'][_0x480bad(0x20e)]()]);},async 'loadViolations'(){const _0x40b8ed=_0x4f20f9;this['violationsBusy']=!0x0,this[_0x40b8ed(0x215)]=null;try{const _0x11dbb8=await fetch(_0x13454c['$ok'][_0x40b8ed(0x1bc)][_0x40b8ed(0x1bf)][_0x40b8ed(0x1a1)]+'/violations');if(0x194===_0x11dbb8[_0x40b8ed(0x1a0)])return void(this[_0x40b8ed(0x211)]=[]);if(!_0x11dbb8['ok']){const _0x2a2e9c=await _0x11dbb8[_0x40b8ed(0x1a5)]()['catch'](()=>({}));throw new Error(_0x2a2e9c?.[_0x40b8ed(0x1e5)]?.['message']||_0x40b8ed(0x1e8));}const _0x3bd965=await _0x11dbb8[_0x40b8ed(0x1a5)]();this[_0x40b8ed(0x211)]=_0x3bd965?.[_0x40b8ed(0x1c9)]?.[_0x40b8ed(0x211)]??_0x3bd965?.[_0x40b8ed(0x213)]?.['violations']??[];}catch(_0x5e9b3a){this[_0x40b8ed(0x215)]=_0x5e9b3a?.[_0x40b8ed(0x219)]||'Failed\x20to\x20load\x20violations',this[_0x40b8ed(0x211)]=[];}finally{this[_0x40b8ed(0x1b6)]=!0x1;}},get 'violationsByType'(){const _0x2e0395=_0x4f20f9,_0x2c1420=new Map();for(const _0x912595 of this[_0x2e0395(0x211)]){const _0x5a8009=_0x912595[_0x2e0395(0x1e7)]||'?';_0x2c1420[_0x2e0395(0x19b)](_0x5a8009)||_0x2c1420[_0x2e0395(0x1d6)](_0x5a8009,[]),_0x2c1420['get'](_0x5a8009)[_0x2e0395(0x218)](_0x912595);}return[..._0x2c1420[_0x2e0395(0x21d)]()][_0x2e0395(0x1af)](([_0x12baf3,_0xcc3a9a])=>({'type':_0x12baf3,'count':_0xcc3a9a['length'],'items':_0xcc3a9a}))[_0x2e0395(0x1be)]((_0x55734b,_0x19dbe3)=>_0x19dbe3[_0x2e0395(0x20f)]-_0x55734b[_0x2e0395(0x20f)]);},get 'totalViolations'(){const _0x3c7e1c=_0x4f20f9;return this[_0x3c7e1c(0x211)][_0x3c7e1c(0x1da)];},'toggleViolationGroup'(_0x43f506){const _0x559e18=_0x4f20f9;this[_0x559e18(0x1c6)]=this[_0x559e18(0x1c6)]===_0x43f506?null:_0x43f506;},'navigateToType'(_0x112dfb){const _0x392663=_0x4f20f9;_0x13454c[_0x392663(0x1c1)]('select',{'type':_0x112dfb});},async 'reloadOverviewData'(){const _0x4f8298=_0x4f20f9;await Promise[_0x4f8298(0x206)]([this['loadRecent'](),this[_0x4f8298(0x1ef)](),this[_0x4f8298(0x1eb)]()]);},async 'loadTMStatus'(){const _0x502585=_0x4f20f9;try{const _0x297ff6=_0x13454c[_0x502585(0x22a)][_0x502585(0x1bc)]['okdb']['selectedEnv']||_0x502585(0x1b3),_0x365848=await fetch(__ENV__['API']+_0x502585(0x21e)+encodeURIComponent(_0x297ff6)+'/time-machine/status');if(!_0x365848['ok'])return void(this['tmStatus']={'enabled':!0x1});const _0x3d84b7=await _0x365848[_0x502585(0x1a5)]();this[_0x502585(0x1b1)]=_0x3d84b7[_0x502585(0x213)]??_0x3d84b7[_0x502585(0x1c9)]??{'enabled':!0x1};}catch{this[_0x502585(0x1b1)]={'enabled':!0x1};}},async 'enableTM'(){const _0x1806aa=_0x4f20f9;if(!this['tmBusy']){this[_0x1806aa(0x1f1)]=!0x0,this[_0x1806aa(0x1cd)]=_0x1806aa(0x22e);try{const _0x29e972=_0x13454c[_0x1806aa(0x22a)][_0x1806aa(0x1bc)][_0x1806aa(0x1bf)][_0x1806aa(0x1b5)]||_0x1806aa(0x1b3);await fetch(__ENV__[_0x1806aa(0x21c)]+_0x1806aa(0x21e)+encodeURIComponent(_0x29e972)+_0x1806aa(0x217),{'method':'POST'});const _0x44f84f=Date[_0x1806aa(0x1fd)]()+0x2710;for(;Date[_0x1806aa(0x1fd)]()<_0x44f84f&&(await new Promise(_0x3e4ac5=>setTimeout(_0x3e4ac5,0x3e8)),await this[_0x1806aa(0x222)](),!(this['tmStatus']?.[_0x1806aa(0x227)]>0x0)););}catch{}this[_0x1806aa(0x1f1)]=!0x1,this[_0x1806aa(0x1cd)]='';}},async 'disableTM'(){const _0x1ff2ca=_0x4f20f9;if(!this[_0x1ff2ca(0x1f1)]){this[_0x1ff2ca(0x1f1)]=!0x0;try{const _0x285947=_0x13454c['$ok']['stores'][_0x1ff2ca(0x1bf)][_0x1ff2ca(0x1b5)]||_0x1ff2ca(0x1b3);await fetch(__ENV__['API']+_0x1ff2ca(0x21e)+encodeURIComponent(_0x285947)+'/time-machine/enable',{'method':_0x1ff2ca(0x20d)}),await this['loadTMStatus']();}catch{}this[_0x1ff2ca(0x1f1)]=!0x1;}}}),'init'(_0x5c9437){const _0x43ef4d=_0x4f20f9;this[_0x43ef4d(0x222)](),_0x5c9437[_0x43ef4d(0x1e1)](()=>_0x5c9437[_0x43ef4d(0x22a)][_0x43ef4d(0x1bc)][_0x43ef4d(0x1bf)][_0x43ef4d(0x1b5)],()=>{const _0x27ee3f=_0x43ef4d;this[_0x27ee3f(0x19d)](),this[_0x27ee3f(0x222)]();});},'mount'(){const _0x25cd67=_0x4f20f9;this[_0x25cd67(0x19d)]();const _0x56bc56=()=>this[_0x25cd67(0x1ef)]();this[_0x25cd67(0x228)]=[_0x39dd26['on']('type:registered',()=>this[_0x25cd67(0x21a)]()),_0x39dd26['on'](_0x25cd67(0x1ca),()=>this[_0x25cd67(0x21a)]()),_0x39dd26['on'](_0x25cd67(0x20b),()=>this['_reloadTypes']()),_0x39dd26['on'](_0x25cd67(0x1cb),()=>this[_0x25cd67(0x21a)]()),_0x39dd26['on']('engine:started',_0x56bc56),_0x39dd26['on'](_0x25cd67(0x229),_0x56bc56),_0x39dd26['on'](_0x25cd67(0x230),_0x56bc56),_0x39dd26['on'](_0x25cd67(0x224),_0x56bc56),_0x39dd26['on'](_0x25cd67(0x1a6),_0x56bc56),_0x39dd26['on'](_0x25cd67(0x1c2),_0x56bc56),_0x39dd26['on'](_0x25cd67(0x1f6),_0x56bc56),_0x39dd26['on'](_0x25cd67(0x1ac),_0x56bc56),_0x39dd26['on'](_0x25cd67(0x220),()=>this['_scheduleReload']()),_0x39dd26['on'](_0x25cd67(0x1de),()=>this[_0x25cd67(0x1d0)]()),_0x39dd26['on'](_0x25cd67(0x1e3),()=>this[_0x25cd67(0x1d0)]()),_0x39dd26['on'](_0x25cd67(0x209),()=>this[_0x25cd67(0x1d0)]()),_0x39dd26['on']('system:clock_change',()=>this['_scheduleReload']()),_0x39dd26['on'](_0x25cd67(0x1ce),()=>this['_scheduleReload']())];},'unmount'(){const _0x2c5aec=_0x4f20f9;clearTimeout(this[_0x2c5aec(0x1c7)]);for(const _0xf7bbc of this[_0x2c5aec(0x228)])_0xf7bbc();this['_unsubs']=[];},'template':_0x4f20f9(0x19c),'style':_0x4f20f9(0x202)};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0xe21ad8=_0x53d2;(function(_0x3cd30d,_0x43f3fb){const _0x9c2161=_0x53d2,_0x3c7f5b=_0x3cd30d();while(!![]){try{const _0x2d3fd7=parseInt(_0x9c2161(0x1be))/0x1*(parseInt(_0x9c2161(0x1b0))/0x2)+parseInt(_0x9c2161(0x1ca))/0x3*(parseInt(_0x9c2161(0x1bb))/0x4)+-parseInt(_0x9c2161(0x238))/0x5+-parseInt(_0x9c2161(0x21c))/0x6+-parseInt(_0x9c2161(0x1f5))/0x7+-parseInt(_0x9c2161(0x1e2))/0x8*(parseInt(_0x9c2161(0x1ef))/0x9)+parseInt(_0x9c2161(0x1ed))/0xa;if(_0x2d3fd7===_0x43f3fb)break;else _0x3c7f5b['push'](_0x3c7f5b['shift']());}catch(_0x22b296){_0x3c7f5b['push'](_0x3c7f5b['shift']());}}}(_0x1ccf,0xbe690));import _0x3df25a from'../../../stores/events-store.js';function _0x53d2(_0x4c119e,_0x56bbb7){_0x4c119e=_0x4c119e-0x1ae;const _0x1ccfaa=_0x1ccf();let _0x53d2a2=_0x1ccfaa[_0x4c119e];return _0x53d2a2;}function _0x1ccf(){const _0x263630=['isNaN','data','push','trim','degraded','length','env','externalSelectedPipeline','okdb','1085076MMcZys','var(--okdb-sky)','role','engines','health','type','status','selectedEnv','db-pipelines-panel','filteredPipelines','message','/pipelines/','json','stores','engine:installed','/start','Delete\x20pipeline\x20\x22<b>','object','open','owned','var(--okdb-app-fg-muted)','Stop\x20pipeline\x20\x22<b>','online','progress','store:','source_env','number','<engine-modal\x20:modal=\x22modal\x22\x20:engine=\x22engine\x22\x20:env=\x22envName\x22\x20:on-done=\x22onDone\x22\x20/>','1825760kFHVal','exists','selectedpipeline','handler:','var(--okdb-warning)','2332306VAcpSp','Failed\x20to\x20load\x20pipelines','/pipelines','actionBusy','busy','confirm','memberOwnerEnv','runtime','Stop\x20failed','Deleted\x20pipeline\x20\x22','</b>\x22?','501028GkaShZ','/db','state','1HeranT','$dispatch','Started\x20pipeline\x20\x22','result','source\x20env:','font-size:10px;padding:2px\x207px;border-radius:999px;border:1px\x20solid\x20','localeCompare','_request','info','success','</b>\x22?<br><br>','shared','30nPLUQZ','join','source_type','string','phase','pipelineKey','search','var(--okdb-success)','label','job:','Stopped\x20pipeline\x20\x22','load','$watch','toLocaleString','selectedPipeline','<br><br>Env-owned\x20members\x20will\x20be\x20removed;\x20shared\x20members\x20will\x20be\x20preserved.','$vars','meta','isAllEnvs','envName','Edit\x20Engine\x20·\x20','resolve','name','No\x20members','1434176doDDPe','toLowerCase','catch','/env/','envname','API','select','job_type','sort','<br>','var(--okdb-danger)','4913110qHXLLp','DELETE','9FzpaVC','relatedEnv','selectedKey','$ok','stopped','engine:uninstalled','9833908DUdRud','toast','true','find','flatMap','config','\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-wrap\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2014px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-head\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20space-between;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20flex-start;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-wrap:\x20wrap;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-title\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-sub\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20560px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.6;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-error\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2010px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-danger)\x205%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-empty\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20dashed\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2028px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-layout\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20grid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x20minmax(240px,\x20300px)\x20minmax(0,\x201fr);\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2014px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-list-card,\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-detail-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg);\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-list-head\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-list\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2010px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipeline-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20left;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2010px\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipeline-row:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-app-border-strong);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipeline-row--active\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x20inset\x200\x200\x200\x201px\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2013%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#10202a;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-detail-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-members\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipeline-member-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipeline-member-error\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.6;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-danger-deep-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#450a0a33;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20@media\x20(max-width:\x20860px)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-layout\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x201fr;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','$attr','some','relatedType','/stop','filter','_unsubs','includes','applyExternalSelection','storeEnv','selectEnv',';background:','modal','55;color:','pipelines','engine:stopped','has','POST','error','Delete\x20failed','map','add','type:','handler'];_0x1ccf=function(){return _0x263630;};return _0x1ccf();}import _0x21acbd from'../../engines/modals/engine-modal.ok.js';export default{'tag':_0xe21ad8(0x224),'dependencies':[_0x21acbd],'attr':{'showall':{},'envname':{},'selectedpipeline':{}},'context':_0x598328=>({'busy':!0x1,'error':null,'search':'','pipelines':[],'selectedKey':null,'actionBusy':!0x1,'_unsubs':[],get 'isAllEnvs'(){const _0x15f098=_0xe21ad8;return!0x0===_0x598328[_0x15f098(0x1fc)]['showall']||_0x15f098(0x1f7)===_0x598328['$attr']['showall'];},get 'envName'(){const _0x45baa6=_0xe21ad8;return _0x598328[_0x45baa6(0x1fc)][_0x45baa6(0x1e6)]||_0x598328[_0x45baa6(0x1f2)][_0x45baa6(0x229)][_0x45baa6(0x21b)]['selectedEnv']||'default';},get 'externalSelectedPipeline'(){const _0x40da4c=_0xe21ad8;return String(_0x598328[_0x40da4c(0x1fc)]['selectedpipeline']||'');},'pipelineKey'(_0x5bb038){const _0x5d494a=_0xe21ad8;return(_0x5bb038?.['env']||this[_0x5d494a(0x1dd)])+'::'+(_0x5bb038?.[_0x5d494a(0x1e0)]||'');},get 'filteredPipelines'(){const _0x14e2e1=_0xe21ad8,_0x5ab0a9=this[_0x14e2e1(0x1d0)][_0x14e2e1(0x216)]()[_0x14e2e1(0x1e3)](),_0x40a408=[...this['pipelines']][_0x14e2e1(0x1ea)]((_0x3fd572,_0x3fec62)=>{const _0x3eb7a1=_0x14e2e1,_0x353b85=String(_0x3fd572['env']||'')[_0x3eb7a1(0x1c4)](String(_0x3fec62[_0x3eb7a1(0x219)]||''));return 0x0!==_0x353b85?_0x353b85:_0x3fd572['name'][_0x3eb7a1(0x1c4)](_0x3fec62[_0x3eb7a1(0x1e0)]);});return _0x5ab0a9?_0x40a408[_0x14e2e1(0x200)](_0x4892e8=>[_0x4892e8[_0x14e2e1(0x219)],_0x4892e8[_0x14e2e1(0x1e0)],_0x4892e8[_0x14e2e1(0x1db)]?.[_0x14e2e1(0x1d2)],_0x4892e8[_0x14e2e1(0x222)],_0x4892e8[_0x14e2e1(0x220)],...(_0x4892e8[_0x14e2e1(0x21f)]||[])[_0x14e2e1(0x1f9)](_0x15decf=>[_0x15decf[_0x14e2e1(0x21e)],_0x15decf['type'],_0x15decf['name'],_0x15decf[_0x14e2e1(0x1bd)],_0x15decf[_0x14e2e1(0x1fa)]?.[_0x14e2e1(0x1cc)],_0x15decf[_0x14e2e1(0x1fa)]?.[_0x14e2e1(0x1e9)]])][_0x14e2e1(0x200)](Boolean)[_0x14e2e1(0x1cb)]('\x20')[_0x14e2e1(0x1e3)]()[_0x14e2e1(0x202)](_0x5ab0a9)):_0x40a408;},get 'selectedPipeline'(){const _0x56993b=_0xe21ad8;return 0x0===this[_0x56993b(0x225)]['length']?null:this['filteredPipelines'][_0x56993b(0x1f8)](_0x16ebf6=>this['pipelineKey'](_0x16ebf6)===this['selectedKey'])??this[_0x56993b(0x225)][0x0];},'applyExternalSelection'(){const _0xc4a198=_0xe21ad8,_0x30a54a=this[_0xc4a198(0x21a)][_0xc4a198(0x216)]();if(!_0x30a54a||0x0===this['pipelines'][_0xc4a198(0x218)])return;const _0x4f5435=this[_0xc4a198(0x209)]['find'](_0x3ec97f=>this['pipelineKey'](_0x3ec97f)===_0x30a54a)??this[_0xc4a198(0x209)][_0xc4a198(0x1f8)](_0x10c403=>_0x10c403?.[_0xc4a198(0x1e0)]===_0x30a54a)??null;if(_0x4f5435){const _0x5b5f10=this[_0xc4a198(0x1cf)](_0x4f5435);this[_0xc4a198(0x1f1)]!==_0x5b5f10&&(this[_0xc4a198(0x1f1)]=_0x5b5f10);}},get 'selectedRelatedTypes'(){const _0x2642cb=_0xe21ad8,_0x368d67=this[_0x2642cb(0x1d8)];if(!_0x368d67)return[];const _0xff9f59=new Set(),_0x69d81=[];for(const _0x57c26c of _0x368d67[_0x2642cb(0x21f)]||[]){const _0x36e0ce=this[_0x2642cb(0x1fe)](_0x57c26c);_0x36e0ce&&!_0xff9f59[_0x2642cb(0x20b)](_0x36e0ce)&&(_0xff9f59[_0x2642cb(0x210)](_0x36e0ce),_0x69d81[_0x2642cb(0x215)]({'type':_0x36e0ce,'env':this[_0x2642cb(0x1f0)](_0x57c26c)}));}return _0x69d81;},async 'load'(){const _0xf3c4a4=_0xe21ad8;this[_0xf3c4a4(0x1b4)]=!0x0,this[_0xf3c4a4(0x20d)]=null;try{const _0x5d27ff=this['isAllEnvs']?__ENV__['API']+_0xf3c4a4(0x1b2):__ENV__[_0xf3c4a4(0x1e7)]+'/env/'+encodeURIComponent(this[_0xf3c4a4(0x1dd)])+_0xf3c4a4(0x1b2),_0x15f13b=await fetch(_0x5d27ff),_0x50536b=await _0x15f13b[_0xf3c4a4(0x228)]()['catch'](()=>({}));if(!_0x15f13b['ok'])throw new Error(_0x50536b?.[_0xf3c4a4(0x20d)]?.[_0xf3c4a4(0x226)]||_0xf3c4a4(0x1b1));this['pipelines']=_0x50536b['data']??_0x50536b['result']??[],this[_0xf3c4a4(0x203)](),this[_0xf3c4a4(0x209)][_0xf3c4a4(0x1fd)](_0x4a917e=>this[_0xf3c4a4(0x1cf)](_0x4a917e)===this[_0xf3c4a4(0x1f1)])||(this[_0xf3c4a4(0x1f1)]=this[_0xf3c4a4(0x209)][0x0]?this[_0xf3c4a4(0x1cf)](this[_0xf3c4a4(0x209)][0x0]):null);}catch(_0x44c764){this[_0xf3c4a4(0x20d)]=_0x44c764?.[_0xf3c4a4(0x226)]||String(_0x44c764),this[_0xf3c4a4(0x209)]=[],this[_0xf3c4a4(0x1f1)]=null;}finally{this[_0xf3c4a4(0x1b4)]=!0x1;}},'selectPipeline'(_0x4311fb){const _0x443c6e=_0xe21ad8;this[_0x443c6e(0x1f1)]=this[_0x443c6e(0x1cf)](_0x4311fb),_0x598328[_0x443c6e(0x1bf)](_0x443c6e(0x1e8),_0x4311fb);},'healthColor':_0x55fa4c=>_0xe21ad8(0x232)===_0x55fa4c?'var(--okdb-success)':'degraded'===_0x55fa4c?_0xe21ad8(0x1af):_0xe21ad8(0x20d)===_0x55fa4c?_0xe21ad8(0x1ec):_0xe21ad8(0x230),'stateColor':_0x1667e3=>_0xe21ad8(0x232)===_0x1667e3?_0xe21ad8(0x1d1):_0xe21ad8(0x217)===_0x1667e3?'var(--okdb-warning)':'error'===_0x1667e3||'missing'===_0x1667e3?'var(--okdb-danger)':_0xe21ad8(0x1f3)===_0x1667e3?_0xe21ad8(0x230):_0xe21ad8(0x21d),'chipStyle':(_0x192a53,_0x5ebb64=!0x1)=>_0xe21ad8(0x1c3)+_0x192a53+_0xe21ad8(0x208)+_0x192a53+_0xe21ad8(0x206)+(_0x5ebb64?'transparent':_0x192a53+'12')+';white-space:nowrap;','summaryText'(_0x4cbe22){const _0x39d4f0=_0xe21ad8,_0x5cb08f=_0x4cbe22[_0x39d4f0(0x21f)]||[];return 0x0===_0x5cb08f['length']?_0x39d4f0(0x1e1):_0x5cb08f[_0x39d4f0(0x20f)](_0x907ec=>_0x907ec[_0x39d4f0(0x21e)]||_0x907ec['type'])[_0x39d4f0(0x1cb)]('\x20·\x20');},'formatNumber':_0x43aa6e=>null==_0x43aa6e||Number[_0xe21ad8(0x213)](Number(_0x43aa6e))?null:Number(_0x43aa6e)[_0xe21ad8(0x1d7)](),'progressLabel'(_0x44f8ac){const _0x3c3f2c=_0xe21ad8,_0x3edc83=_0x44f8ac[_0x3c3f2c(0x233)]??_0x44f8ac[_0x3c3f2c(0x1b7)]?.[_0x3c3f2c(0x233)]??null;if(null==_0x3edc83)return null;if('string'==typeof _0x3edc83||_0x3c3f2c(0x236)==typeof _0x3edc83)return String(_0x3edc83);if(_0x3c3f2c(0x22d)==typeof _0x3edc83&&_0x3c3f2c(0x1cd)==typeof _0x3edc83[_0x3c3f2c(0x1ce)])return _0x3edc83['phase'];try{return JSON['stringify'](_0x3edc83);}catch{return'progress';}},'relatedType':_0x4452da=>_0x4452da?.[_0xe21ad8(0x1fa)]?.['source_type']??_0x4452da?.[_0xe21ad8(0x1b7)]?.['source_type']??null,'relatedEnv'(_0x51d025){const _0x9d75f2=_0xe21ad8;return _0x51d025?.[_0x9d75f2(0x1fa)]?.[_0x9d75f2(0x235)]??_0x51d025?.[_0x9d75f2(0x1b7)]?.[_0x9d75f2(0x235)]??this[_0x9d75f2(0x1dd)];},'memberOwnerEnv'(_0x43b4ee){const _0x301d55=_0xe21ad8;return _0x43b4ee?.['storeEnv']??_0x43b4ee?.[_0x301d55(0x219)]??this[_0x301d55(0x1f0)](_0x43b4ee)??this[_0x301d55(0x1d8)]?.[_0x301d55(0x219)]??this[_0x301d55(0x1dd)];},'memberFacts'(_0x343735){const _0x4541f3=_0xe21ad8,_0x54655d=[];return _0x343735?.[_0x4541f3(0x1fa)]?.['job_type']&&_0x54655d[_0x4541f3(0x215)](_0x4541f3(0x1d3)+_0x343735[_0x4541f3(0x1fa)][_0x4541f3(0x1e9)]),_0x343735?.[_0x4541f3(0x1fa)]?.[_0x4541f3(0x212)]?.[_0x4541f3(0x1e0)]&&_0x54655d[_0x4541f3(0x215)](_0x4541f3(0x1ae)+_0x343735['config'][_0x4541f3(0x212)][_0x4541f3(0x1e0)]),_0x343735?.[_0x4541f3(0x1fa)]?.[_0x4541f3(0x1cc)]&&_0x54655d[_0x4541f3(0x215)](_0x4541f3(0x211)+_0x343735[_0x4541f3(0x1fa)]['source_type']),_0x343735?.[_0x4541f3(0x1fa)]?.[_0x4541f3(0x235)]&&_0x343735[_0x4541f3(0x1fa)]['source_env']!==this[_0x4541f3(0x1dd)]&&_0x54655d[_0x4541f3(0x215)](_0x4541f3(0x1c2)+_0x343735[_0x4541f3(0x1fa)][_0x4541f3(0x235)]),_0x343735?.[_0x4541f3(0x204)]&&_0x54655d[_0x4541f3(0x215)](_0x4541f3(0x234)+_0x343735[_0x4541f3(0x204)]),_0x343735?.[_0x4541f3(0x22f)]?_0x54655d[_0x4541f3(0x215)](_0x4541f3(0x22f)):_0x343735?.[_0x4541f3(0x239)]&&_0x54655d[_0x4541f3(0x215)](_0x4541f3(0x1c9)),_0x54655d;},async '_request'(_0x2a7435,_0x8be49d={}){const _0x338e38=_0xe21ad8,_0x34178b=await fetch(_0x2a7435,_0x8be49d),_0x3ecdeb=await _0x34178b[_0x338e38(0x228)]()[_0x338e38(0x1e4)](()=>({}));if(!_0x34178b['ok'])throw new Error(_0x3ecdeb?.[_0x338e38(0x20d)]?.[_0x338e38(0x226)]||'Request\x20failed\x20('+_0x34178b[_0x338e38(0x222)]+')');return _0x3ecdeb[_0x338e38(0x214)]??_0x3ecdeb[_0x338e38(0x1c1)]??null;},async 'startSelected'(){const _0x29ec5e=_0xe21ad8;if(this[_0x29ec5e(0x1d8)]&&!this[_0x29ec5e(0x1b3)]){this[_0x29ec5e(0x1b3)]=!0x0;try{const _0x58a720=this['selectedPipeline'][_0x29ec5e(0x219)]||this[_0x29ec5e(0x1dd)];await this['_request'](__ENV__['API']+_0x29ec5e(0x1e5)+encodeURIComponent(_0x58a720)+'/pipelines/'+encodeURIComponent(this[_0x29ec5e(0x1d8)][_0x29ec5e(0x1e0)])+_0x29ec5e(0x22b),{'method':_0x29ec5e(0x20c)}),_0x598328[_0x29ec5e(0x1f2)][_0x29ec5e(0x1c9)]?.[_0x29ec5e(0x1f6)]?.[_0x29ec5e(0x1c7)]?.(_0x29ec5e(0x1c0)+this[_0x29ec5e(0x1d8)][_0x29ec5e(0x1e0)]+'\x22'),await this['load']();}catch(_0x3064a8){_0x598328[_0x29ec5e(0x1f2)]['shared']?.[_0x29ec5e(0x1f6)]?.['error']?.(_0x3064a8?.[_0x29ec5e(0x226)]||'Start\x20failed');}finally{this[_0x29ec5e(0x1b3)]=!0x1;}}},async 'stopSelected'(){const _0x455486=_0xe21ad8;if(this['selectedPipeline']&&!this[_0x455486(0x1b3)]&&await _0x598328[_0x455486(0x1f2)][_0x455486(0x1c9)][_0x455486(0x207)][_0x455486(0x1b5)](_0x455486(0x231)+this[_0x455486(0x1d8)][_0x455486(0x1e0)]+_0x455486(0x1ba))){this[_0x455486(0x1b3)]=!0x0;try{const _0x1ee92b=this['selectedPipeline'][_0x455486(0x219)]||this[_0x455486(0x1dd)];await this['_request'](__ENV__[_0x455486(0x1e7)]+_0x455486(0x1e5)+encodeURIComponent(_0x1ee92b)+'/pipelines/'+encodeURIComponent(this[_0x455486(0x1d8)][_0x455486(0x1e0)])+_0x455486(0x1ff),{'method':'POST'}),_0x598328[_0x455486(0x1f2)][_0x455486(0x1c9)]?.['toast']?.[_0x455486(0x1c6)]?.(_0x455486(0x1d4)+this[_0x455486(0x1d8)][_0x455486(0x1e0)]+'\x22'),await this['load']();}catch(_0x5dc641){_0x598328['$ok']['shared']?.[_0x455486(0x1f6)]?.['error']?.(_0x5dc641?.[_0x455486(0x226)]||_0x455486(0x1b8));}finally{this['actionBusy']=!0x1;}}},async 'deleteSelected'(){const _0x545291=_0xe21ad8;if(!this[_0x545291(0x1d8)]||this[_0x545291(0x1b3)])return;const _0x3ae3cf=this[_0x545291(0x1d8)],_0x4b10cb=(_0x3ae3cf[_0x545291(0x21f)]||[])[_0x545291(0x20f)](_0x2c5293=>'•\x20'+(_0x2c5293[_0x545291(0x21e)]||_0x2c5293[_0x545291(0x221)])+':\x20'+_0x2c5293[_0x545291(0x221)]+'@'+_0x2c5293[_0x545291(0x1e0)])[_0x545291(0x1cb)](_0x545291(0x1eb));if(await _0x598328[_0x545291(0x1f2)][_0x545291(0x1c9)][_0x545291(0x207)][_0x545291(0x1b5)](_0x545291(0x22c)+_0x3ae3cf[_0x545291(0x1e0)]+_0x545291(0x1c8)+(_0x4b10cb||'No\x20members')+_0x545291(0x1d9))){this['actionBusy']=!0x0;try{const _0x3da9f4=_0x3ae3cf[_0x545291(0x219)]||this[_0x545291(0x1dd)];await this[_0x545291(0x1c5)](__ENV__['API']+_0x545291(0x1e5)+encodeURIComponent(_0x3da9f4)+_0x545291(0x227)+encodeURIComponent(_0x3ae3cf[_0x545291(0x1e0)]),{'method':_0x545291(0x1ee)}),_0x598328['$ok'][_0x545291(0x1c9)]?.['toast']?.[_0x545291(0x1c7)]?.(_0x545291(0x1b9)+_0x3ae3cf[_0x545291(0x1e0)]+'\x22'),this[_0x545291(0x1f1)]=null,await this[_0x545291(0x1d5)]();}catch(_0x15252c){_0x598328['$ok'][_0x545291(0x1c9)]?.[_0x545291(0x1f6)]?.[_0x545291(0x20d)]?.(_0x15252c?.[_0x545291(0x226)]||_0x545291(0x20e));}finally{this[_0x545291(0x1b3)]=!0x1;}}},'openType'(_0x3eb3c7){const _0x140d17=_0xe21ad8,_0x3e067e=this[_0x140d17(0x1fe)](_0x3eb3c7);if(!_0x3e067e)return;const _0x3781be=this[_0x140d17(0x1f0)](_0x3eb3c7);_0x3781be&&_0x3781be!==_0x598328[_0x140d17(0x1f2)][_0x140d17(0x229)][_0x140d17(0x21b)][_0x140d17(0x223)]&&_0x598328['$ok'][_0x140d17(0x229)]['okdb'][_0x140d17(0x205)](_0x3781be);const _0x2d07e1=_0x598328[_0x140d17(0x1da)]['$router'];_0x2d07e1?.[_0x140d17(0x215)](_0x2d07e1[_0x140d17(0x1df)](_0x140d17(0x1bc),{'env':_0x3781be,'type':_0x3e067e,'tab':'pipelines'}));},async 'openEngineModal'(_0x381802){const _0x3cb6ef=_0xe21ad8;if(!_0x381802?.[_0x3cb6ef(0x239)])return;const _0x2e09a0=this,_0x1ac68a=this[_0x3cb6ef(0x1b6)](_0x381802);await _0x598328[_0x3cb6ef(0x1f2)][_0x3cb6ef(0x1c9)][_0x3cb6ef(0x207)][_0x3cb6ef(0x22e)]({'owner':_0x598328,'title':_0x3cb6ef(0x1de)+_0x381802[_0x3cb6ef(0x1e0)],'canDrag':!0x0,'content':_0x3cb6ef(0x237),'context':_0x586063=>({'modal':_0x586063,'engine':_0x381802,'envName':_0x1ac68a,'onDone':async()=>{const _0x10660e=_0x3cb6ef;await _0x2e09a0[_0x10660e(0x1d5)]();}})});}}),async 'init'(_0x483bd5){const _0x501f9c=_0xe21ad8;_0x483bd5[_0x501f9c(0x1d6)](()=>_0x483bd5['$attr'][_0x501f9c(0x23a)],()=>this[_0x501f9c(0x203)]()),_0x483bd5[_0x501f9c(0x1d6)](()=>_0x483bd5['$ok']['stores'][_0x501f9c(0x21b)][_0x501f9c(0x223)],()=>{const _0xd441c8=_0x501f9c;this[_0xd441c8(0x1dc)]||(this[_0xd441c8(0x1f1)]=null),this[_0xd441c8(0x1d5)]();}),await this[_0x501f9c(0x1d5)]();const _0x385ad4=()=>this[_0x501f9c(0x1d5)]();this[_0x501f9c(0x201)]=[_0x3df25a['on']('engine:started',_0x385ad4),_0x3df25a['on'](_0x501f9c(0x20a),_0x385ad4),_0x3df25a['on']('engine:error',_0x385ad4),_0x3df25a['on'](_0x501f9c(0x22a),_0x385ad4),_0x3df25a['on'](_0x501f9c(0x1f4),_0x385ad4)];},'unmount'(){const _0x9c461e=_0xe21ad8;for(const _0x24ac7c of this[_0x9c461e(0x201)])_0x24ac7c();this[_0x9c461e(0x201)]=[];},'template':'\x0a<div\x20class=\x22pipelines-wrap\x22>\x0a\x20\x20<div\x20class=\x22pipelines-head\x22>\x0a\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-title\x22>{{\x20isAllEnvs\x20?\x20\x27Pipelines\x20·\x20all\x20environments\x27\x20:\x20\x27Pipelines\x27\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-sub\x22>{{\x20isAllEnvs\x20?\x20\x27Primary\x20grouped\x20lifecycle\x20management\x20across\x20opened\x20environments.\x20Open\x20DB\x20or\x20Files\x20only\x20when\x20you\x20need\x20source-specific\x20context.\x27\x20:\x20\x27Primary\x20grouped\x20lifecycle\x20management\x20for\x20the\x20selected\x20environment.\x20Open\x20DB\x20or\x20Files\x20only\x20when\x20you\x20need\x20source-specific\x20context.\x27\x20}}</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x20align-items:center;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-indigo)\x27)\x22>{{\x20pipelines.length\x20}}\x20pipeline{{\x20pipelines.length\x20!==\x201\x20?\x20\x27s\x27\x20:\x20\x27\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22load()\x22\x20:disabled=\x22busy\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20opacity:.75;\x22>↻\x20Refresh</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<if\x20:=\x22error\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22pipelines-error\x22>{{\x20error\x20}}</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22!busy\x20&&\x20pipelines.length\x20===\x200\x20&&\x20!error\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22pipelines-empty\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:30px;\x20opacity:.25;\x22>⛓</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:14px;\x20font-weight:600;\x20opacity:.75;\x22>No\x20pipelines\x20{{\x20isAllEnvs\x20?\x20\x27in\x20opened\x20environments\x27\x20:\x20\x27in\x20\x27\x20+\x20envName\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.5;\x20max-width:520px;\x20line-height:1.7;\x20text-align:center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20Pipelines\x20appear\x20here\x20once\x20created\x20or\x20synced\x20into\x20the\x20environment.\x0a\x20\x20\x20\x20\x20\x20\x20\x20This\x20view\x20preserves\x20member\x20order,\x20shows\x20aggregate\x20health,\x20and\x20exposes\x20lifecycle\x20controls.\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22pipelines.length\x20>\x200\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22pipelines-layout\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-list-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-list-head\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type=\x22text\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20placeholder=\x22Filter\x20pipelines…\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22search\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@input=\x22search\x20=\x20$event.target.value\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22width:100%;\x20box-sizing:border-box;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-list\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22filteredPipelines\x22\x20let:item=\x22pipeline\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22selectPipeline(pipeline)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22selectedPipeline\x20&&\x20pipelineKey(selectedPipeline)\x20===\x20pipelineKey(pipeline)\x20?\x20\x27pipeline-row\x20pipeline-row--active\x27\x20:\x20\x27pipeline-row\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20min-width:0;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22\x27width:8px;height:8px;border-radius:50%;flex-shrink:0;background:\x27\x20+\x20healthColor(pipeline.health)\x22></span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:13px;\x20font-weight:600;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>{{\x20pipeline.meta?.label\x20||\x20pipeline.name\x20}}</span>\x0a\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<div\x20style=\x22display:flex;\x20gap:6px;\x20flex-wrap:wrap;\x20margin-top:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22isAllEnvs\x20||\x20pipeline.env\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-indigo)\x27,\x20true)\x22>{{\x20pipeline.env\x20||\x20envName\x20}}</span>\x0a\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<span\x20:style=\x22chipStyle(healthColor(pipeline.health))\x22>{{\x20pipeline.health\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-sky)\x27,\x20true)\x22>{{\x20pipeline.status\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-app-fg-muted)\x27,\x20true)\x22>{{\x20pipeline.engines.length\x20}}\x20members</span>\x0a\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<div\x20style=\x22font-size:11px;\x20opacity:.5;\x20margin-top:7px;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20summaryText(pipeline)\x20}}\x0a\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</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22filteredPipelines.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.45;\x20padding:8px;\x22>No\x20pipelines\x20match\x20the\x20current\x20filter.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-detail-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selectedPipeline\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:14px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20justify-content:space-between;\x20gap:12px;\x20align-items:flex-start;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:8px;\x20min-width:0;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:18px;\x20font-weight:700;\x20min-width:0;\x22>{{\x20selectedPipeline.name\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(healthColor(selectedPipeline.health))\x22>{{\x20selectedPipeline.health\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-sky)\x27,\x20true)\x22>{{\x20selectedPipeline.status\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selectedPipeline.meta?.label\x20&&\x20selectedPipeline.meta.label\x20!==\x20selectedPipeline.name\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.6;\x22>{{\x20selectedPipeline.meta.label\x20}}</div>\x0a\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<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.6;\x20max-width:620px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20This\x20is\x20the\x20global\x20grouped\x20view\x20for\x20the\x20pipeline.\x20Use\x20the\x20related\x20type\x20shortcuts\x20below\x20only\x20when\x20you\x20need\x20the\x20local\x20DB\x20drill-in.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:6px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-app-fg-muted)\x27,\x20true)\x22>env:\x20{{\x20selectedPipeline.env\x20||\x20envName\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-app-fg-muted)\x27,\x20true)\x22>{{\x20selectedPipeline.engines.length\x20}}\x20ordered\x20member{{\x20selectedPipeline.engines.length\x20!==\x201\x20?\x20\x27s\x27\x20:\x20\x27\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22selectedRelatedTypes\x22\x20let:item=\x22rel\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22openType({\x20config:\x20{\x20source_type:\x20rel.type,\x20source_env:\x20rel.env\x20}\x20})\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-size:10px;\x20padding:2px\x207px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-indigo)\x2033%,\x20transparent);\x20color:var(--okdb-indigo);\x20background:color-mix(in\x20srgb,\x20var(--okdb-indigo)\x206%,\x20transparent);\x20cursor: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:title=\x22\x27Open\x20type\x20\x27\x20+\x20rel.type\x20+\x20\x27\x20in\x20env\x20\x27\x20+\x20rel.env\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>{{\x20rel.env\x20!==\x20envName\x20?\x20rel.env\x20+\x20\x27:\x27\x20:\x20\x27\x27\x20}}{{\x20rel.type\x20}}\x20→</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\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<div\x20style=\x22display:flex;\x20gap:8px;\x20flex-wrap:wrap;\x20align-items:center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22startSelected()\x22\x20:disabled=\x22actionBusy\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20color:var(--okdb-success);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-success)\x2033%,\x20transparent);\x22>▶\x20Start</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22stopSelected()\x22\x20:disabled=\x22actionBusy\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20color:var(--okdb-warning);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-warning)\x2033%,\x20transparent);\x22>⏹\x20Stop</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22deleteSelected()\x22\x20:disabled=\x22actionBusy\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20color:var(--okdb-danger);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent);\x22>🗑\x20Delete</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-members\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22selectedPipeline.engines\x22\x20let:item=\x22member\x22\x20let:index=\x22index\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipeline-member-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20justify-content:space-between;\x20gap:12px;\x20align-items:flex-start;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:8px;\x20min-width:0;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x20align-items:center;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.4;\x20min-width:18px;\x22>{{\x20index\x20+\x201\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<span\x20:style=\x22chipStyle(\x27var(--okdb-accent)\x27,\x20true)\x22>{{\x20member.role\x20||\x20member.type\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<code\x20style=\x22font-size:12px;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>{{\x20member.type\x20}}@{{\x20member.name\x20}}</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(stateColor(member.state))\x22>{{\x20member.state\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22member.status\x20&&\x20member.status\x20!==\x20member.state\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<span\x20:style=\x22chipStyle(\x27var(--okdb-app-fg-muted)\x27,\x20true)\x22>{{\x20member.status\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:6px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22memberFacts(member)\x22\x20let:item=\x22fact\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<span\x20:style=\x22chipStyle(\x27var(--okdb-app-fg-muted)\x27,\x20true)\x22>{{\x20fact\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</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22member.lag\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-warning)\x27,\x20true)\x22>lag:\x20{{\x20formatNumber(member.lag)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22progressLabel(member)\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<span\x20:style=\x22chipStyle(\x27var(--okdb-sky)\x27,\x20true)\x22>progress:\x20{{\x20progressLabel(member)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22member.cursorKey\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<span\x20:style=\x22chipStyle(\x27var(--okdb-app-fg-muted)\x27,\x20true)\x22>cursor:\x20{{\x20member.cursorKey\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x20flex-wrap:wrap;\x20align-items:center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22member.exists\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\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=\x22openEngineModal(member)\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\x20style=\x22font-size:11px;\x20padding:3px\x2010px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x20color:var(--okdb-accent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x206%,\x20transparent);\x20cursor: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\x20title=\x22Open\x20engine\x20editor\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>Edit\x20engine</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22relatedType(member)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\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=\x22openType(member)\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\x20style=\x22font-size:11px;\x20padding:3px\x2010px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-indigo)\x2033%,\x20transparent);\x20color:var(--okdb-indigo);\x20background:color-mix(in\x20srgb,\x20var(--okdb-indigo)\x206%,\x20transparent);\x20cursor: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:title=\x22\x27Open\x20type\x20\x27\x20+\x20relatedType(member)\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>Open\x20type\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</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\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22member.error\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipeline-member-error\x22>{{\x20member.error\x20}}</div>\x0a\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</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22busy\x20&&\x20pipelines.length\x20===\x200\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.45;\x20padding:4px\x200;\x22>Loading\x20pipelines…</div>\x0a\x20\x20</if>\x0a</div>','style':_0xe21ad8(0x1fb)};
|
|
1
|
+
function _0x1937(_0x3b89ff,_0x4a2887){_0x3b89ff=_0x3b89ff-0xb7;const _0x3d5b5e=_0x3d5b();let _0x19370e=_0x3d5b5e[_0x3b89ff];return _0x19370e;}const _0x6b57c5=_0x1937;(function(_0x3e2ecd,_0x43b2ea){const _0x2718fa=_0x1937,_0x188ee3=_0x3e2ecd();while(!![]){try{const _0x524999=parseInt(_0x2718fa(0x121))/0x1*(-parseInt(_0x2718fa(0xe6))/0x2)+-parseInt(_0x2718fa(0xc7))/0x3+-parseInt(_0x2718fa(0x11b))/0x4*(-parseInt(_0x2718fa(0x125))/0x5)+-parseInt(_0x2718fa(0x103))/0x6*(-parseInt(_0x2718fa(0xf9))/0x7)+-parseInt(_0x2718fa(0x139))/0x8*(parseInt(_0x2718fa(0x11e))/0x9)+-parseInt(_0x2718fa(0xd1))/0xa+parseInt(_0x2718fa(0x135))/0xb;if(_0x524999===_0x43b2ea)break;else _0x188ee3['push'](_0x188ee3['shift']());}catch(_0x3f3bfa){_0x188ee3['push'](_0x188ee3['shift']());}}}(_0x3d5b,0xb686f));import _0x174a01 from'../../../stores/events-store.js';import _0x1a61d5 from'../../engines/modals/engine-modal.ok.js';function _0x3d5b(){const _0x24a4dc=['3975759DIWMot','degraded','has','30NcglRB','var(--okdb-app-fg-muted)','selectedpipeline','state','306205vMCyvo','job_type','selectedEnv','load','memberOwnerEnv','/stop','Stopped\x20pipeline\x20\x22','true','$dispatch','data','relatedType','db-pipelines-panel','Deleted\x20pipeline\x20\x22','config','pipelineKey','type:','35281675ZszWXv','POST','name','_request','24tSLSqe','externalSelectedPipeline','env','var(--okdb-warning)','success','envName','pipelines','relatedEnv','storeEnv','toast','modal','No\x20members','flatMap','owned','/env/','push','Delete\x20failed','10818HKcbhN','stopped','\x20·\x20','type','missing','actionBusy','result','map','<engine-modal\x20:modal=\x22modal\x22\x20:engine=\x22engine\x22\x20:env=\x22envName\x22\x20:on-done=\x22onDone\x22\x20/>','filteredPipelines','6553870sZfgmP','/pipelines','role','resolve','selectedPipeline','_unsubs','transparent','<br><br>Env-owned\x20members\x20will\x20be\x20removed;\x20shared\x20members\x20will\x20be\x20preserved.','catch','isAllEnvs','message','engine:started','info','/start','source_type','status','Stop\x20pipeline\x20\x22<b>','toLocaleString','</b>\x22?<br><br>','busy','engines','90158eJWNCv','some','$router','progress','shared','join','DELETE','okdb','job:','default','localeCompare','find','handler','sort','isNaN','toLowerCase','phase','runtime','$ok','759857pEaAnf','/pipelines/','stringify','var(--okdb-success)','selectedKey','$attr','trim','handler:','envname','API','18swJKBH','applyExternalSelection','json','engine:installed','</b>\x22?','open','online','/db','number','error','add','Start\x20failed','string','Request\x20failed\x20(','var(--okdb-danger)','filter','length','label','Edit\x20Engine\x20·\x20','source_env','health',';white-space:nowrap;','stores','$watch','36YjuPYk','search','engine:uninstalled'];_0x3d5b=function(){return _0x24a4dc;};return _0x3d5b();}export default{'tag':_0x6b57c5(0x130),'dependencies':[_0x1a61d5],'attr':{'showall':{},'envname':{},'selectedpipeline':{}},'context':_0x1d7f82=>({'busy':!0x1,'error':null,'search':'','pipelines':[],'selectedKey':null,'actionBusy':!0x1,'_unsubs':[],get 'isAllEnvs'(){const _0x3c0c26=_0x6b57c5;return!0x0===_0x1d7f82[_0x3c0c26(0xfe)]['showall']||_0x3c0c26(0x12c)===_0x1d7f82[_0x3c0c26(0xfe)]['showall'];},get 'envName'(){const _0x36b48b=_0x6b57c5;return _0x1d7f82[_0x36b48b(0xfe)][_0x36b48b(0x101)]||_0x1d7f82['$ok']['stores'][_0x36b48b(0xed)][_0x36b48b(0x127)]||_0x36b48b(0xef);},get 'externalSelectedPipeline'(){const _0x3f419a=_0x6b57c5;return String(_0x1d7f82[_0x3f419a(0xfe)][_0x3f419a(0x123)]||'');},'pipelineKey'(_0x156dc0){const _0x242a98=_0x6b57c5;return(_0x156dc0?.[_0x242a98(0xb8)]||this['envName'])+'::'+(_0x156dc0?.[_0x242a98(0x137)]||'');},get 'filteredPipelines'(){const _0x329aa4=_0x6b57c5,_0x17fc87=this[_0x329aa4(0x11c)][_0x329aa4(0xff)]()[_0x329aa4(0xf5)](),_0x5890b6=[...this['pipelines']][_0x329aa4(0xf3)]((_0x29d185,_0x306448)=>{const _0x1e691e=_0x329aa4,_0x52b7ac=String(_0x29d185['env']||'')[_0x1e691e(0xf0)](String(_0x306448['env']||''));return 0x0!==_0x52b7ac?_0x52b7ac:_0x29d185['name'][_0x1e691e(0xf0)](_0x306448[_0x1e691e(0x137)]);});return _0x17fc87?_0x5890b6['filter'](_0x5c8cb3=>[_0x5c8cb3['env'],_0x5c8cb3[_0x329aa4(0x137)],_0x5c8cb3['meta']?.[_0x329aa4(0x114)],_0x5c8cb3[_0x329aa4(0xe0)],_0x5c8cb3[_0x329aa4(0x117)],...(_0x5c8cb3[_0x329aa4(0xe5)]||[])[_0x329aa4(0xc2)](_0x59749d=>[_0x59749d[_0x329aa4(0xd3)],_0x59749d[_0x329aa4(0xca)],_0x59749d[_0x329aa4(0x137)],_0x59749d[_0x329aa4(0x124)],_0x59749d['config']?.[_0x329aa4(0xdf)],_0x59749d[_0x329aa4(0x132)]?.[_0x329aa4(0x126)]])][_0x329aa4(0x112)](Boolean)[_0x329aa4(0xeb)]('\x20')[_0x329aa4(0xf5)]()['includes'](_0x17fc87)):_0x5890b6;},get 'selectedPipeline'(){const _0x371167=_0x6b57c5;return 0x0===this[_0x371167(0xd0)][_0x371167(0x113)]?null:this[_0x371167(0xd0)][_0x371167(0xf1)](_0x23f65a=>this[_0x371167(0x133)](_0x23f65a)===this[_0x371167(0xfd)])??this['filteredPipelines'][0x0];},'applyExternalSelection'(){const _0x324c22=_0x6b57c5,_0x57db50=this[_0x324c22(0xb7)][_0x324c22(0xff)]();if(!_0x57db50||0x0===this[_0x324c22(0xbc)][_0x324c22(0x113)])return;const _0x5cf033=this[_0x324c22(0xbc)][_0x324c22(0xf1)](_0x518858=>this[_0x324c22(0x133)](_0x518858)===_0x57db50)??this['pipelines'][_0x324c22(0xf1)](_0x5122d8=>_0x5122d8?.[_0x324c22(0x137)]===_0x57db50)??null;if(_0x5cf033){const _0x59da3c=this['pipelineKey'](_0x5cf033);this['selectedKey']!==_0x59da3c&&(this[_0x324c22(0xfd)]=_0x59da3c);}},get 'selectedRelatedTypes'(){const _0x726be8=_0x6b57c5,_0x19a4c6=this[_0x726be8(0xd5)];if(!_0x19a4c6)return[];const _0x1118b7=new Set(),_0x4661b9=[];for(const _0x527ca8 of _0x19a4c6[_0x726be8(0xe5)]||[]){const _0x4d0e8a=this[_0x726be8(0x12f)](_0x527ca8);_0x4d0e8a&&!_0x1118b7[_0x726be8(0x120)](_0x4d0e8a)&&(_0x1118b7[_0x726be8(0x10d)](_0x4d0e8a),_0x4661b9[_0x726be8(0xc5)]({'type':_0x4d0e8a,'env':this[_0x726be8(0xbd)](_0x527ca8)}));}return _0x4661b9;},async 'load'(){const _0x2e1951=_0x6b57c5;this[_0x2e1951(0xe4)]=!0x0,this[_0x2e1951(0x10c)]=null;try{const _0x453ff9=this[_0x2e1951(0xda)]?__ENV__[_0x2e1951(0x102)]+'/pipelines':__ENV__['API']+_0x2e1951(0xc4)+encodeURIComponent(this[_0x2e1951(0xbb)])+_0x2e1951(0xd2),_0x51dd1b=await fetch(_0x453ff9),_0x41c557=await _0x51dd1b[_0x2e1951(0x105)]()[_0x2e1951(0xd9)](()=>({}));if(!_0x51dd1b['ok'])throw new Error(_0x41c557?.[_0x2e1951(0x10c)]?.[_0x2e1951(0xdb)]||'Failed\x20to\x20load\x20pipelines');this['pipelines']=_0x41c557['data']??_0x41c557[_0x2e1951(0xcd)]??[],this[_0x2e1951(0x104)](),this['pipelines'][_0x2e1951(0xe7)](_0x2a71fd=>this['pipelineKey'](_0x2a71fd)===this[_0x2e1951(0xfd)])||(this[_0x2e1951(0xfd)]=this[_0x2e1951(0xbc)][0x0]?this[_0x2e1951(0x133)](this[_0x2e1951(0xbc)][0x0]):null);}catch(_0x246670){this['error']=_0x246670?.[_0x2e1951(0xdb)]||String(_0x246670),this[_0x2e1951(0xbc)]=[],this[_0x2e1951(0xfd)]=null;}finally{this[_0x2e1951(0xe4)]=!0x1;}},'selectPipeline'(_0x534d2f){const _0x4fb9ac=_0x6b57c5;this['selectedKey']=this[_0x4fb9ac(0x133)](_0x534d2f),_0x1d7f82[_0x4fb9ac(0x12d)]('select',_0x534d2f);},'healthColor':_0x1a1cf8=>'online'===_0x1a1cf8?_0x6b57c5(0xfc):'degraded'===_0x1a1cf8?_0x6b57c5(0xb9):_0x6b57c5(0x10c)===_0x1a1cf8?_0x6b57c5(0x111):'var(--okdb-app-fg-muted)','stateColor':_0x198591=>_0x6b57c5(0x109)===_0x198591?'var(--okdb-success)':_0x6b57c5(0x11f)===_0x198591?'var(--okdb-warning)':_0x6b57c5(0x10c)===_0x198591||_0x6b57c5(0xcb)===_0x198591?_0x6b57c5(0x111):_0x6b57c5(0xc8)===_0x198591?_0x6b57c5(0x122):'var(--okdb-sky)','chipStyle':(_0xa657b9,_0x56d126=!0x1)=>'font-size:10px;padding:2px\x207px;border-radius:999px;border:1px\x20solid\x20'+_0xa657b9+'55;color:'+_0xa657b9+';background:'+(_0x56d126?_0x6b57c5(0xd7):_0xa657b9+'12')+_0x6b57c5(0x118),'summaryText'(_0x1f100f){const _0x3a770c=_0x6b57c5,_0x29a833=_0x1f100f[_0x3a770c(0xe5)]||[];return 0x0===_0x29a833[_0x3a770c(0x113)]?_0x3a770c(0xc1):_0x29a833['map'](_0x15787f=>_0x15787f[_0x3a770c(0xd3)]||_0x15787f[_0x3a770c(0xca)])[_0x3a770c(0xeb)](_0x3a770c(0xc9));},'formatNumber':_0x693e9e=>null==_0x693e9e||Number[_0x6b57c5(0xf4)](Number(_0x693e9e))?null:Number(_0x693e9e)[_0x6b57c5(0xe2)](),'progressLabel'(_0x4407a1){const _0x1dc496=_0x6b57c5,_0x414965=_0x4407a1[_0x1dc496(0xe9)]??_0x4407a1['runtime']?.[_0x1dc496(0xe9)]??null;if(null==_0x414965)return null;if('string'==typeof _0x414965||_0x1dc496(0x10b)==typeof _0x414965)return String(_0x414965);if('object'==typeof _0x414965&&_0x1dc496(0x10f)==typeof _0x414965[_0x1dc496(0xf6)])return _0x414965[_0x1dc496(0xf6)];try{return JSON[_0x1dc496(0xfb)](_0x414965);}catch{return'progress';}},'relatedType':_0x58d54d=>_0x58d54d?.[_0x6b57c5(0x132)]?.[_0x6b57c5(0xdf)]??_0x58d54d?.[_0x6b57c5(0xf7)]?.['source_type']??null,'relatedEnv'(_0x19de0f){const _0x4aa24a=_0x6b57c5;return _0x19de0f?.[_0x4aa24a(0x132)]?.[_0x4aa24a(0x116)]??_0x19de0f?.[_0x4aa24a(0xf7)]?.[_0x4aa24a(0x116)]??this[_0x4aa24a(0xbb)];},'memberOwnerEnv'(_0xaf80a0){const _0x2923c4=_0x6b57c5;return _0xaf80a0?.['storeEnv']??_0xaf80a0?.['env']??this[_0x2923c4(0xbd)](_0xaf80a0)??this[_0x2923c4(0xd5)]?.[_0x2923c4(0xb8)]??this[_0x2923c4(0xbb)];},'memberFacts'(_0x1dc01a){const _0x2bffd9=_0x6b57c5,_0x5d6422=[];return _0x1dc01a?.[_0x2bffd9(0x132)]?.[_0x2bffd9(0x126)]&&_0x5d6422[_0x2bffd9(0xc5)](_0x2bffd9(0xee)+_0x1dc01a[_0x2bffd9(0x132)][_0x2bffd9(0x126)]),_0x1dc01a?.['config']?.[_0x2bffd9(0xf2)]?.[_0x2bffd9(0x137)]&&_0x5d6422['push'](_0x2bffd9(0x100)+_0x1dc01a[_0x2bffd9(0x132)]['handler'][_0x2bffd9(0x137)]),_0x1dc01a?.['config']?.[_0x2bffd9(0xdf)]&&_0x5d6422['push'](_0x2bffd9(0x134)+_0x1dc01a['config'][_0x2bffd9(0xdf)]),_0x1dc01a?.['config']?.[_0x2bffd9(0x116)]&&_0x1dc01a[_0x2bffd9(0x132)][_0x2bffd9(0x116)]!==this[_0x2bffd9(0xbb)]&&_0x5d6422[_0x2bffd9(0xc5)]('source\x20env:'+_0x1dc01a[_0x2bffd9(0x132)][_0x2bffd9(0x116)]),_0x1dc01a?.['storeEnv']&&_0x5d6422[_0x2bffd9(0xc5)]('store:'+_0x1dc01a[_0x2bffd9(0xbe)]),_0x1dc01a?.[_0x2bffd9(0xc3)]?_0x5d6422['push'](_0x2bffd9(0xc3)):_0x1dc01a?.['exists']&&_0x5d6422[_0x2bffd9(0xc5)]('shared'),_0x5d6422;},async '_request'(_0x2f4438,_0x1d2cf4={}){const _0x1b681d=_0x6b57c5,_0x1dc521=await fetch(_0x2f4438,_0x1d2cf4),_0x46d15b=await _0x1dc521[_0x1b681d(0x105)]()[_0x1b681d(0xd9)](()=>({}));if(!_0x1dc521['ok'])throw new Error(_0x46d15b?.[_0x1b681d(0x10c)]?.[_0x1b681d(0xdb)]||_0x1b681d(0x110)+_0x1dc521[_0x1b681d(0xe0)]+')');return _0x46d15b[_0x1b681d(0x12e)]??_0x46d15b['result']??null;},async 'startSelected'(){const _0x5c3928=_0x6b57c5;if(this[_0x5c3928(0xd5)]&&!this[_0x5c3928(0xcc)]){this['actionBusy']=!0x0;try{const _0xba3c3a=this['selectedPipeline'][_0x5c3928(0xb8)]||this['envName'];await this[_0x5c3928(0x138)](__ENV__[_0x5c3928(0x102)]+_0x5c3928(0xc4)+encodeURIComponent(_0xba3c3a)+_0x5c3928(0xfa)+encodeURIComponent(this['selectedPipeline'][_0x5c3928(0x137)])+_0x5c3928(0xde),{'method':_0x5c3928(0x136)}),_0x1d7f82[_0x5c3928(0xf8)]['shared']?.[_0x5c3928(0xbf)]?.[_0x5c3928(0xba)]?.('Started\x20pipeline\x20\x22'+this[_0x5c3928(0xd5)][_0x5c3928(0x137)]+'\x22'),await this[_0x5c3928(0x128)]();}catch(_0x48629e){_0x1d7f82[_0x5c3928(0xf8)][_0x5c3928(0xea)]?.[_0x5c3928(0xbf)]?.[_0x5c3928(0x10c)]?.(_0x48629e?.[_0x5c3928(0xdb)]||_0x5c3928(0x10e));}finally{this['actionBusy']=!0x1;}}},async 'stopSelected'(){const _0x47e776=_0x6b57c5;if(this[_0x47e776(0xd5)]&&!this[_0x47e776(0xcc)]&&await _0x1d7f82['$ok'][_0x47e776(0xea)][_0x47e776(0xc0)]['confirm'](_0x47e776(0xe1)+this[_0x47e776(0xd5)]['name']+_0x47e776(0x107))){this['actionBusy']=!0x0;try{const _0x405198=this[_0x47e776(0xd5)]['env']||this[_0x47e776(0xbb)];await this[_0x47e776(0x138)](__ENV__['API']+_0x47e776(0xc4)+encodeURIComponent(_0x405198)+_0x47e776(0xfa)+encodeURIComponent(this[_0x47e776(0xd5)][_0x47e776(0x137)])+_0x47e776(0x12a),{'method':_0x47e776(0x136)}),_0x1d7f82['$ok'][_0x47e776(0xea)]?.['toast']?.[_0x47e776(0xdd)]?.(_0x47e776(0x12b)+this[_0x47e776(0xd5)][_0x47e776(0x137)]+'\x22'),await this[_0x47e776(0x128)]();}catch(_0x67f6a4){_0x1d7f82[_0x47e776(0xf8)][_0x47e776(0xea)]?.['toast']?.[_0x47e776(0x10c)]?.(_0x67f6a4?.[_0x47e776(0xdb)]||'Stop\x20failed');}finally{this[_0x47e776(0xcc)]=!0x1;}}},async 'deleteSelected'(){const _0x3f65a1=_0x6b57c5;if(!this['selectedPipeline']||this['actionBusy'])return;const _0x31fd47=this[_0x3f65a1(0xd5)],_0x461130=(_0x31fd47['engines']||[])[_0x3f65a1(0xce)](_0x1e7277=>'•\x20'+(_0x1e7277[_0x3f65a1(0xd3)]||_0x1e7277[_0x3f65a1(0xca)])+':\x20'+_0x1e7277[_0x3f65a1(0xca)]+'@'+_0x1e7277[_0x3f65a1(0x137)])[_0x3f65a1(0xeb)]('<br>');if(await _0x1d7f82[_0x3f65a1(0xf8)][_0x3f65a1(0xea)]['modal']['confirm']('Delete\x20pipeline\x20\x22<b>'+_0x31fd47[_0x3f65a1(0x137)]+_0x3f65a1(0xe3)+(_0x461130||_0x3f65a1(0xc1))+_0x3f65a1(0xd8))){this[_0x3f65a1(0xcc)]=!0x0;try{const _0x1b7c83=_0x31fd47[_0x3f65a1(0xb8)]||this[_0x3f65a1(0xbb)];await this['_request'](__ENV__['API']+_0x3f65a1(0xc4)+encodeURIComponent(_0x1b7c83)+_0x3f65a1(0xfa)+encodeURIComponent(_0x31fd47[_0x3f65a1(0x137)]),{'method':_0x3f65a1(0xec)}),_0x1d7f82[_0x3f65a1(0xf8)][_0x3f65a1(0xea)]?.[_0x3f65a1(0xbf)]?.[_0x3f65a1(0xba)]?.(_0x3f65a1(0x131)+_0x31fd47[_0x3f65a1(0x137)]+'\x22'),this['selectedKey']=null,await this[_0x3f65a1(0x128)]();}catch(_0x3dd480){_0x1d7f82[_0x3f65a1(0xf8)][_0x3f65a1(0xea)]?.['toast']?.[_0x3f65a1(0x10c)]?.(_0x3dd480?.[_0x3f65a1(0xdb)]||_0x3f65a1(0xc6));}finally{this['actionBusy']=!0x1;}}},'openType'(_0x40f994){const _0x376371=_0x6b57c5,_0x306230=this[_0x376371(0x12f)](_0x40f994);if(!_0x306230)return;const _0x29bb27=this[_0x376371(0xbd)](_0x40f994);_0x29bb27&&_0x29bb27!==_0x1d7f82[_0x376371(0xf8)][_0x376371(0x119)][_0x376371(0xed)][_0x376371(0x127)]&&_0x1d7f82[_0x376371(0xf8)][_0x376371(0x119)][_0x376371(0xed)]['selectEnv'](_0x29bb27);const _0x32b9d7=_0x1d7f82['$vars'][_0x376371(0xe8)];_0x32b9d7?.[_0x376371(0xc5)](_0x32b9d7[_0x376371(0xd4)](_0x376371(0x10a),{'env':_0x29bb27,'type':_0x306230,'tab':_0x376371(0xbc)}));},async 'openEngineModal'(_0x29a08e){const _0x5b5e9a=_0x6b57c5;if(!_0x29a08e?.['exists'])return;const _0x129258=this,_0x15d3a3=this[_0x5b5e9a(0x129)](_0x29a08e);await _0x1d7f82[_0x5b5e9a(0xf8)][_0x5b5e9a(0xea)][_0x5b5e9a(0xc0)][_0x5b5e9a(0x108)]({'owner':_0x1d7f82,'title':_0x5b5e9a(0x115)+_0x29a08e[_0x5b5e9a(0x137)],'canDrag':!0x0,'content':_0x5b5e9a(0xcf),'context':_0x3dab4c=>({'modal':_0x3dab4c,'engine':_0x29a08e,'envName':_0x15d3a3,'onDone':async()=>{await _0x129258['load']();}})});}}),async 'init'(_0xbaa48c){const _0x414f3e=_0x6b57c5;_0xbaa48c[_0x414f3e(0x11a)](()=>_0xbaa48c['$attr'][_0x414f3e(0x123)],()=>this[_0x414f3e(0x104)]()),_0xbaa48c[_0x414f3e(0x11a)](()=>_0xbaa48c[_0x414f3e(0xf8)]['stores'][_0x414f3e(0xed)][_0x414f3e(0x127)],()=>{const _0x420cf3=_0x414f3e;this['isAllEnvs']||(this[_0x420cf3(0xfd)]=null),this['load']();}),await this['load']();const _0x2e4ff8=()=>this[_0x414f3e(0x128)]();this['_unsubs']=[_0x174a01['on'](_0x414f3e(0xdc),_0x2e4ff8),_0x174a01['on']('engine:stopped',_0x2e4ff8),_0x174a01['on']('engine:error',_0x2e4ff8),_0x174a01['on'](_0x414f3e(0x106),_0x2e4ff8),_0x174a01['on'](_0x414f3e(0x11d),_0x2e4ff8)];},'unmount'(){const _0x389f9e=_0x6b57c5;for(const _0x347df8 of this[_0x389f9e(0xd6)])_0x347df8();this[_0x389f9e(0xd6)]=[];},'template':'\x0a<div\x20class=\x22pipelines-wrap\x22>\x0a\x20\x20<div\x20class=\x22pipelines-head\x22>\x0a\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-title\x22>{{\x20isAllEnvs\x20?\x20\x27Pipelines\x20·\x20all\x20environments\x27\x20:\x20\x27Pipelines\x27\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-sub\x22>{{\x20isAllEnvs\x20?\x20\x27Primary\x20grouped\x20lifecycle\x20management\x20across\x20opened\x20environments.\x20Open\x20DB\x20or\x20Files\x20only\x20when\x20you\x20need\x20source-specific\x20context.\x27\x20:\x20\x27Primary\x20grouped\x20lifecycle\x20management\x20for\x20the\x20selected\x20environment.\x20Open\x20DB\x20or\x20Files\x20only\x20when\x20you\x20need\x20source-specific\x20context.\x27\x20}}</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x20align-items:center;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-indigo)\x27)\x22>{{\x20pipelines.length\x20}}\x20pipeline{{\x20pipelines.length\x20!==\x201\x20?\x20\x27s\x27\x20:\x20\x27\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20<button\x20@click=\x22load()\x22\x20:disabled=\x22busy\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20opacity:.75;\x22>↻\x20Refresh</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x0a\x20\x20<if\x20:=\x22error\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22pipelines-error\x22>{{\x20error\x20}}</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22!busy\x20&&\x20pipelines.length\x20===\x200\x20&&\x20!error\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22pipelines-empty\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:30px;\x20opacity:.25;\x22>⛓</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:14px;\x20font-weight:600;\x20opacity:.75;\x22>No\x20pipelines\x20{{\x20isAllEnvs\x20?\x20\x27in\x20opened\x20environments\x27\x20:\x20\x27in\x20\x27\x20+\x20envName\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.5;\x20max-width:520px;\x20line-height:1.7;\x20text-align:center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20Pipelines\x20appear\x20here\x20once\x20created\x20or\x20synced\x20into\x20the\x20environment.\x0a\x20\x20\x20\x20\x20\x20\x20\x20This\x20view\x20preserves\x20member\x20order,\x20shows\x20aggregate\x20health,\x20and\x20exposes\x20lifecycle\x20controls.\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22pipelines.length\x20>\x200\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22pipelines-layout\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-list-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-list-head\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type=\x22text\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20placeholder=\x22Filter\x20pipelines…\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22search\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@input=\x22search\x20=\x20$event.target.value\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22width:100%;\x20box-sizing:border-box;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-list\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22filteredPipelines\x22\x20let:item=\x22pipeline\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22selectPipeline(pipeline)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22selectedPipeline\x20&&\x20pipelineKey(selectedPipeline)\x20===\x20pipelineKey(pipeline)\x20?\x20\x27pipeline-row\x20pipeline-row--active\x27\x20:\x20\x27pipeline-row\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20min-width:0;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22\x27width:8px;height:8px;border-radius:50%;flex-shrink:0;background:\x27\x20+\x20healthColor(pipeline.health)\x22></span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:13px;\x20font-weight:600;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>{{\x20pipeline.meta?.label\x20||\x20pipeline.name\x20}}</span>\x0a\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<div\x20style=\x22display:flex;\x20gap:6px;\x20flex-wrap:wrap;\x20margin-top:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22isAllEnvs\x20||\x20pipeline.env\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-indigo)\x27,\x20true)\x22>{{\x20pipeline.env\x20||\x20envName\x20}}</span>\x0a\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<span\x20:style=\x22chipStyle(healthColor(pipeline.health))\x22>{{\x20pipeline.health\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-sky)\x27,\x20true)\x22>{{\x20pipeline.status\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-app-fg-muted)\x27,\x20true)\x22>{{\x20pipeline.engines.length\x20}}\x20members</span>\x0a\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<div\x20style=\x22font-size:11px;\x20opacity:.5;\x20margin-top:7px;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20summaryText(pipeline)\x20}}\x0a\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</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22filteredPipelines.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.45;\x20padding:8px;\x22>No\x20pipelines\x20match\x20the\x20current\x20filter.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-detail-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selectedPipeline\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:14px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20justify-content:space-between;\x20gap:12px;\x20align-items:flex-start;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:8px;\x20min-width:0;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:18px;\x20font-weight:700;\x20min-width:0;\x22>{{\x20selectedPipeline.name\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(healthColor(selectedPipeline.health))\x22>{{\x20selectedPipeline.health\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-sky)\x27,\x20true)\x22>{{\x20selectedPipeline.status\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selectedPipeline.meta?.label\x20&&\x20selectedPipeline.meta.label\x20!==\x20selectedPipeline.name\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.6;\x22>{{\x20selectedPipeline.meta.label\x20}}</div>\x0a\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<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.6;\x20max-width:620px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20This\x20is\x20the\x20global\x20grouped\x20view\x20for\x20the\x20pipeline.\x20Use\x20the\x20related\x20type\x20shortcuts\x20below\x20only\x20when\x20you\x20need\x20the\x20local\x20DB\x20drill-in.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:6px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-app-fg-muted)\x27,\x20true)\x22>env:\x20{{\x20selectedPipeline.env\x20||\x20envName\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-app-fg-muted)\x27,\x20true)\x22>{{\x20selectedPipeline.engines.length\x20}}\x20ordered\x20member{{\x20selectedPipeline.engines.length\x20!==\x201\x20?\x20\x27s\x27\x20:\x20\x27\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22selectedRelatedTypes\x22\x20let:item=\x22rel\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22openType({\x20config:\x20{\x20source_type:\x20rel.type,\x20source_env:\x20rel.env\x20}\x20})\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22font-size:10px;\x20padding:2px\x207px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-indigo)\x2033%,\x20transparent);\x20color:var(--okdb-indigo);\x20background:color-mix(in\x20srgb,\x20var(--okdb-indigo)\x206%,\x20transparent);\x20cursor: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:title=\x22\x27Open\x20type\x20\x27\x20+\x20rel.type\x20+\x20\x27\x20in\x20env\x20\x27\x20+\x20rel.env\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>{{\x20rel.env\x20!==\x20envName\x20?\x20rel.env\x20+\x20\x27:\x27\x20:\x20\x27\x27\x20}}{{\x20rel.type\x20}}\x20→</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\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<div\x20style=\x22display:flex;\x20gap:8px;\x20flex-wrap:wrap;\x20align-items:center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22startSelected()\x22\x20:disabled=\x22actionBusy\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20color:var(--okdb-success);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-success)\x2033%,\x20transparent);\x22>▶\x20Start</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22stopSelected()\x22\x20:disabled=\x22actionBusy\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20color:var(--okdb-warning);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-warning)\x2033%,\x20transparent);\x22>⏹\x20Stop</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22deleteSelected()\x22\x20:disabled=\x22actionBusy\x22\x20style=\x22font-size:12px;\x20padding:5px\x2012px;\x20color:var(--okdb-danger);\x20border-color:color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent);\x22>🗑\x20Delete</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipelines-members\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22selectedPipeline.engines\x22\x20let:item=\x22member\x22\x20let:index=\x22index\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipeline-member-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20justify-content:space-between;\x20gap:12px;\x20align-items:flex-start;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:8px;\x20min-width:0;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x20align-items:center;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22font-size:11px;\x20opacity:.4;\x20min-width:18px;\x22>{{\x20index\x20+\x201\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<span\x20:style=\x22chipStyle(\x27var(--okdb-accent)\x27,\x20true)\x22>{{\x20member.role\x20||\x20member.type\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<code\x20style=\x22font-size:12px;\x20overflow:hidden;\x20text-overflow:ellipsis;\x20white-space:nowrap;\x22>{{\x20member.type\x20}}@{{\x20member.name\x20}}</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(stateColor(member.state))\x22>{{\x20member.state\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22member.status\x20&&\x20member.status\x20!==\x20member.state\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<span\x20:style=\x22chipStyle(\x27var(--okdb-app-fg-muted)\x27,\x20true)\x22>{{\x20member.status\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:6px;\x20flex-wrap:wrap;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22memberFacts(member)\x22\x20let:item=\x22fact\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<span\x20:style=\x22chipStyle(\x27var(--okdb-app-fg-muted)\x27,\x20true)\x22>{{\x20fact\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</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22member.lag\x20!=\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22chipStyle(\x27var(--okdb-warning)\x27,\x20true)\x22>lag:\x20{{\x20formatNumber(member.lag)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22progressLabel(member)\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<span\x20:style=\x22chipStyle(\x27var(--okdb-sky)\x27,\x20true)\x22>progress:\x20{{\x20progressLabel(member)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22member.cursorKey\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<span\x20:style=\x22chipStyle(\x27var(--okdb-app-fg-muted)\x27,\x20true)\x22>cursor:\x20{{\x20member.cursorKey\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x20flex-wrap:wrap;\x20align-items:center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22member.exists\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\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=\x22openEngineModal(member)\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\x20style=\x22font-size:11px;\x20padding:3px\x2010px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x20color:var(--okdb-accent);\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x206%,\x20transparent);\x20cursor: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\x20title=\x22Open\x20engine\x20editor\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>Edit\x20engine</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22relatedType(member)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\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=\x22openType(member)\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\x20style=\x22font-size:11px;\x20padding:3px\x2010px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-indigo)\x2033%,\x20transparent);\x20color:var(--okdb-indigo);\x20background:color-mix(in\x20srgb,\x20var(--okdb-indigo)\x206%,\x20transparent);\x20cursor: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:title=\x22\x27Open\x20type\x20\x27\x20+\x20relatedType(member)\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>Open\x20type\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</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\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22member.error\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pipeline-member-error\x22>{{\x20member.error\x20}}</div>\x0a\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</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22busy\x20&&\x20pipelines.length\x20===\x200\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20opacity:.45;\x20padding:4px\x200;\x22>Loading\x20pipelines…</div>\x0a\x20\x20</if>\x0a</div>','style':'\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-wrap\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2014px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-head\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20space-between;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20flex-start;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-wrap:\x20wrap;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-title\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-sub\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x20.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20560px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.6;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-error\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2010px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-danger)\x2033%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20color-mix(in\x20srgb,\x20var(--okdb-danger)\x205%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-empty\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20dashed\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2028px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-layout\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20grid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x20minmax(240px,\x20300px)\x20minmax(0,\x201fr);\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2014px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-list-card,\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-detail-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg);\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-list-head\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-list\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2010px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipeline-row\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20left;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2010px\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipeline-row:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-app-border-strong);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipeline-row--active\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2033%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x20inset\x200\x200\x200\x201px\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2013%,\x20transparent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#10202a;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-detail-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-members\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipeline-member-card\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipeline-member-error\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.6;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-danger);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20var(--okdb-danger-deep-border);\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#450a0a33;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20@media\x20(max-width:\x20860px)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20db-pipelines-panel\x20.pipelines-layout\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20grid-template-columns:\x201fr;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20'};
|