@kedem/okdb 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/bin/okdb.js +1 -1
  2. package/keys/public.pem +3 -0
  3. package/okdb.js +1 -1
  4. package/package.json +2 -2
  5. package/public/admin-app.js +1 -1
  6. package/public/components/admin-route-host.ok.js +1 -1
  7. package/public/components/env-picker.ok.js +1 -1
  8. package/public/components/field-path-input.ok.js +1 -1
  9. package/public/components/geo-map.ok.js +1 -1
  10. package/public/components/ok-cron-input.ok.js +1 -1
  11. package/public/components/ok-dropzone.ok.js +1 -1
  12. package/public/components/ok-js-input.ok.js +1 -1
  13. package/public/components/ok-json-input.ok.js +1 -1
  14. package/public/components/ok-text-monaco-input.ok.js +1 -1
  15. package/public/components/theme-toggle.ok.js +1 -1
  16. package/public/login-app.js +1 -1
  17. package/public/modules/ok.js +1 -1
  18. package/public/sections/api/parts/api-endpoint.ok.js +1 -1
  19. package/public/sections/auth/modals/create-token-modal.ok.js +1 -1
  20. package/public/sections/auth/modals/edit-token-modal.ok.js +1 -1
  21. package/public/sections/auth/modals/perm-info-popover.ok.js +1 -1
  22. package/public/sections/auth/parts/token-detail.ok.js +1 -1
  23. package/public/sections/auth/parts/token-list.ok.js +1 -1
  24. package/public/sections/db/modals/add-item-modal.ok.js +1 -1
  25. package/public/sections/db/modals/create-env-modal.ok.js +1 -1
  26. package/public/sections/db/modals/create-fts-modal.ok.js +1 -1
  27. package/public/sections/db/modals/create-index-modal.ok.js +1 -1
  28. package/public/sections/db/modals/create-pipeline-modal.ok.js +1 -1
  29. package/public/sections/db/modals/demo-env-modal.ok.js +1 -1
  30. package/public/sections/db/modals/remove-env-modal.ok.js +1 -1
  31. package/public/sections/db/modals/schema-edit-modal.ok.js +1 -1
  32. package/public/sections/db/parts/db-overview.ok.js +1 -1
  33. package/public/sections/db/parts/db-pipelines-panel.ok.js +1 -1
  34. package/public/sections/db/parts/edit-row.ok.js +1 -1
  35. package/public/sections/db/parts/tm-timeline.ok.js +1 -1
  36. package/public/sections/db/parts/type-changelog.ok.js +1 -1
  37. package/public/sections/db/parts/type-list.ok.js +1 -1
  38. package/public/sections/db/parts/type-pipelines-tab.ok.js +1 -1
  39. package/public/sections/db/parts/type-schema-tab.ok.js +1 -1
  40. package/public/sections/db/parts/type-viewer.ok.js +1 -1
  41. package/public/sections/db/parts/type-violations-tab.ok.js +1 -1
  42. package/public/sections/embeddings/modals/register-model-modal.ok.js +1 -1
  43. package/public/sections/embeddings/parts/embed-create-panel.ok.js +1 -1
  44. package/public/sections/embeddings/parts/embed-embedder-panel.ok.js +1 -1
  45. package/public/sections/embeddings/parts/embed-engine-declaration-editor.ok.js +1 -1
  46. package/public/sections/embeddings/parts/embed-engine-list.ok.js +1 -1
  47. package/public/sections/embeddings/parts/embed-indexer-panel.ok.js +1 -1
  48. package/public/sections/embeddings/parts/embed-lifecycle-bar.ok.js +1 -1
  49. package/public/sections/embeddings/parts/embed-model-catalog.ok.js +1 -1
  50. package/public/sections/embeddings/parts/embed-overview.ok.js +1 -1
  51. package/public/sections/embeddings/parts/embed-search-panel.ok.js +1 -1
  52. package/public/sections/embeddings/parts/embed-worker-panel.ok.js +1 -1
  53. package/public/sections/embeddings/parts/embeddings-engine-panel.ok.js +1 -1
  54. package/public/sections/embeddings/parts/engines-overview.ok.js +1 -1
  55. package/public/sections/embeddings/parts/pipeline-create-panel.ok.js +1 -1
  56. package/public/sections/engines/engine-panel-shared-style.js +1 -1
  57. package/public/sections/engines/engine-ui-utils.js +1 -1
  58. package/public/sections/engines/modals/engine-modal.ok.js +1 -1
  59. package/public/sections/engines/parts/engine-declaration-editor.ok.js +1 -1
  60. package/public/sections/engines/parts/engine-lifecycle-actions.ok.js +1 -1
  61. package/public/sections/engines/parts/engine-panel-shell.ok.js +1 -1
  62. package/public/sections/engines/parts/engine-resource-card.ok.js +1 -1
  63. package/public/sections/engines/parts/engine-row-item.ok.js +1 -1
  64. package/public/sections/engines/parts/generic-engine-panel.ok.js +1 -1
  65. package/public/sections/files/parts/files-blob-status.ok.js +1 -1
  66. package/public/sections/files/parts/files-collection-list.ok.js +1 -1
  67. package/public/sections/files/parts/files-collection-panel.ok.js +1 -1
  68. package/public/sections/files/parts/files-file-list.ok.js +1 -1
  69. package/public/sections/files/parts/files-overview.ok.js +1 -1
  70. package/public/sections/files/parts/files-path-browser.ok.js +1 -1
  71. package/public/sections/files/parts/files-upload-panel.ok.js +1 -1
  72. package/public/sections/functions/modals/function-modal.ok.js +1 -1
  73. package/public/sections/functions/parts/function-detail.ok.js +1 -1
  74. package/public/sections/functions/parts/function-logs.ok.js +1 -1
  75. package/public/sections/functions/parts/function-runner.ok.js +1 -1
  76. package/public/sections/functions/parts/functions-list.ok.js +1 -1
  77. package/public/sections/license/parts/license-panel.ok.js +1 -1
  78. package/public/sections/queue/modals/create-bucket-modal.ok.js +1 -1
  79. package/public/sections/queue/modals/edit-bucket-modal.ok.js +1 -1
  80. package/public/sections/queue/modals/edit-job-modal.ok.js +1 -1
  81. package/public/sections/queue/modals/enqueue-job-modal.ok.js +1 -1
  82. package/public/sections/queue/modals/job-type-modal.ok.js +1 -1
  83. package/public/sections/queue/parts/ok-job-form.ok.js +1 -1
  84. package/public/sections/queue/parts/queue-buckets.ok.js +1 -1
  85. package/public/sections/queue/parts/queue-job-types.ok.js +1 -1
  86. package/public/sections/queue/parts/queue-jobs.ok.js +1 -1
  87. package/public/sections/queue/parts/queue-types.ok.js +1 -1
  88. package/public/sections/queue/parts/queue-workers.ok.js +1 -1
  89. package/public/sections/sync/parts/sync-node-detail.ok.js +1 -1
  90. package/public/sections/sync/parts/sync-retention.ok.js +1 -1
  91. package/public/sections/sync/parts/sync-topology.ok.js +1 -1
  92. package/public/sections/system/modals/data-ops-modal.ok.js +1 -1
  93. package/public/sections/system/parts/system-api-panel.ok.js +1 -1
  94. package/public/sections/system/parts/system-auth-panel.ok.js +1 -1
  95. package/public/sections/system/parts/system-log-history.ok.js +1 -1
  96. package/public/sections/system/parts/system-log.ok.js +1 -1
  97. package/public/sections/system/parts/system-status.ok.js +1 -1
  98. package/public/sections/system/parts/system-sync-panel.ok.js +1 -1
  99. package/public/sections/views/modals/create-view-modal.ok.js +1 -1
  100. package/public/sections/views/parts/view-detail.ok.js +1 -1
  101. package/public/sections/views/parts/views-list.ok.js +1 -1
  102. package/public/sections/views/parts/views-overview.ok.js +1 -1
  103. package/public/setup-app.js +1 -1
  104. package/public/stores/auth-store.js +1 -1
  105. package/public/stores/events-store.js +1 -1
  106. package/public/stores/functions-store.js +1 -1
  107. package/public/stores/okdb-store.js +1 -1
  108. package/public/stores/theme-store.js +1 -1
  109. package/public/util/permissions.js +1 -1
  110. package/public/util/sift-schema.js +1 -1
  111. package/public/vendor/okjs/ok.esm.min.js +1 -2
  112. package/public/vendor/okjs/toolkit/behavior/async.ok.js +1 -1
  113. package/public/vendor/okjs/toolkit/components/ok-chart.ok.js +1 -1
  114. package/public/vendor/okjs/toolkit/components/ok-doc-viewer.ok.js +1 -1
  115. package/public/vendor/okjs/toolkit/components/ok-marked.ok.js +1 -1
  116. package/public/vendor/okjs/toolkit/components/ok-monaco.ok.js +1 -1
  117. package/public/vendor/okjs/toolkit/core/ok-layer-service.ok.js +1 -1
  118. package/public/vendor/okjs/toolkit/core/ok-layer.ok.js +1 -1
  119. package/public/vendor/okjs/toolkit/core/ok-overlay.ok.js +1 -1
  120. package/public/vendor/okjs/toolkit/core/ok-sandbox.ok.js +1 -1
  121. package/public/vendor/okjs/toolkit/core/transition.ok.js +1 -1
  122. package/public/vendor/okjs/toolkit/core/virtualized.ok.js +1 -1
  123. package/public/vendor/okjs/toolkit/devtools/ok-console-service.ok.js +1 -1
  124. package/public/vendor/okjs/toolkit/devtools/ok-console.ok.js +1 -1
  125. package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor-service.ok.js +1 -1
  126. package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor.ok.js +1 -1
  127. package/public/vendor/okjs/toolkit/devtools/ok-inspector-service.ok.js +1 -1
  128. package/public/vendor/okjs/toolkit/devtools/ok-inspector.ok.js +1 -1
  129. package/public/vendor/okjs/toolkit/devtools/ok-js-tree.ok.js +1 -1
  130. package/public/vendor/okjs/toolkit/devtools/ok-timeline-service.ok.js +1 -1
  131. package/public/vendor/okjs/toolkit/devtools/ok-timeline.ok.js +1 -1
  132. package/public/vendor/okjs/toolkit/docs/doc-viewer.ok.js +1 -1
  133. package/public/vendor/okjs/toolkit/editor/ok-live-component.ok.js +1 -1
  134. package/public/vendor/okjs/toolkit/editor/ok-live-example.ok.js +1 -1
  135. package/public/vendor/okjs/toolkit/editor/ok-live-shell.ok.js +1 -1
  136. package/public/vendor/okjs/toolkit/elements/ok-dropdown.ok.js +1 -1
  137. package/public/vendor/okjs/toolkit/elements/ok-icon.ok.js +1 -1
  138. package/public/vendor/okjs/toolkit/elements/ok-select.ok.js +1 -1
  139. package/public/vendor/okjs/toolkit/elements/ok-table.ok.js +1 -1
  140. package/public/vendor/okjs/toolkit/errors/ok-crash-boundary.ok.js +1 -1
  141. package/public/vendor/okjs/toolkit/errors/ok-crash-info.ok.js +1 -1
  142. package/public/vendor/okjs/toolkit/i18n/i18n-editor-examples.ok.js +1 -1
  143. package/public/vendor/okjs/toolkit/i18n/i18n-editor.ok.js +1 -1
  144. package/public/vendor/okjs/toolkit/i18n/i18n-key-editor-tips.ok.js +1 -1
  145. package/public/vendor/okjs/toolkit/i18n/i18n-key-editor.ok.js +1 -1
  146. package/public/vendor/okjs/toolkit/i18n/i18n-service.ok.js +1 -1
  147. package/public/vendor/okjs/toolkit/i18n/ok-i18n.js +1 -1
  148. package/public/vendor/okjs/toolkit/interaction/ok-contextmenu.ok.js +1 -1
  149. package/public/vendor/okjs/toolkit/interaction/ok-dismiss-service.ok.js +1 -1
  150. package/public/vendor/okjs/toolkit/interaction/ok-draggable.ok.js +1 -1
  151. package/public/vendor/okjs/toolkit/interaction/ok-flyover-panel.ok.js +1 -1
  152. package/public/vendor/okjs/toolkit/interaction/ok-flyover.ok.js +1 -1
  153. package/public/vendor/okjs/toolkit/interaction/ok-highlight-service.ok.js +1 -1
  154. package/public/vendor/okjs/toolkit/interaction/ok-highlight.ok.js +1 -1
  155. package/public/vendor/okjs/toolkit/interaction/ok-hotkeys-service.ok.js +1 -1
  156. package/public/vendor/okjs/toolkit/interaction/ok-picker-service.ok.js +1 -1
  157. package/public/vendor/okjs/toolkit/interaction/ok-popout-service.ok.js +1 -1
  158. package/public/vendor/okjs/toolkit/interaction/ok-popout.ok.js +1 -1
  159. package/public/vendor/okjs/toolkit/interaction/ok-portal-service.ok.js +1 -1
  160. package/public/vendor/okjs/toolkit/interaction/ok-submenu.ok.js +1 -1
  161. package/public/vendor/okjs/toolkit/layout/ok-resizer.ok.js +1 -1
  162. package/public/vendor/okjs/toolkit/manifest.js +1 -1
  163. package/public/vendor/okjs/toolkit/modals/ok-modal-service.ok.js +1 -1
  164. package/public/vendor/okjs/toolkit/modals/ok-modal.ok.js +1 -1
  165. package/public/vendor/okjs/toolkit/modals/ok-toast-service.ok.js +1 -1
  166. package/public/vendor/okjs/toolkit/modals/ok-window.ok.js +1 -1
  167. package/public/vendor/okjs/toolkit/navigation/hash-router.ok.js +1 -1
  168. package/public/vendor/okjs/toolkit/navigation/history-router.ok.js +1 -1
  169. package/public/vendor/okjs/toolkit/navigation/router.ok.js +1 -1
  170. package/public/vendor/okjs/toolkit/sync/reactive-sync-service.ok.js +1 -1
  171. package/public/vendor/okjs/toolkit/sync/reactive-sync.js +1 -1
  172. package/public/vendor/okjs/toolkit/theming/blocks/ok-design-button.css.js +1 -1
  173. package/public/vendor/okjs/toolkit/theming/blocks/ok-design-input.css.js +1 -1
  174. package/public/vendor/okjs/toolkit/theming/ok-design-style.js +1 -1
  175. package/public/vendor/okjs/toolkit/theming/ok-design-vars.js +1 -1
  176. package/public/vendor/okjs/toolkit/theming/ok-design.ok.js +1 -1
  177. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-input.ok.js +1 -1
  178. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-service.ok.js +1 -1
  179. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-style.js +1 -1
  180. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-utils.js +1 -1
  181. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-variable.ok.js +1 -1
  182. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-vm.js +1 -1
  183. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor.ok.js +1 -1
  184. package/public/vendor/okjs/toolkit/theming/ok-theme.ok.js +1 -1
  185. package/public/view-models/type-query-vm.js +1 -1
  186. package/okdb-data/default/data.mdb +0 -0
  187. package/okdb-data/default/lock.mdb +0 -0
  188. package/okdb-data/~log/data.mdb +0 -0
  189. package/okdb-data/~log/lock.mdb +0 -0
  190. package/okdb-data/~system/data.mdb +0 -0
  191. package/okdb-data/~system/lock.mdb +0 -0
  192. package/public/images/logo.png +0 -0
  193. package/public/images/logo.svg +0 -333
@@ -1 +1 @@
1
- const e=(e,t)=>{const n=t.$__init__$||performance.now(),a=e.$ok.proxy({first:n,last:n,updateLast(e){e>this.last&&(this.last=e)}}),o=new Map;function i(n){let r=o.get(n);const p=t.$ok.idToScope.get(n);if(!p)return null;if(!r){if(r=e.$ok.proxy({id:n,scope:p,_expanded:null,get expanded(){return null===this._expanded?!this.scope.$cache.cmp:this._expanded},set expanded(e){this._expanded=e},activate:p.$__init__$,mount:p.$__init__$,mounted:p.$lifecycle?.mounted.timestamp,ready:p.$lifecycle?.ready.timestamp,initialized:p.$lifecycle?.initialized.timestamp,unmount:null,unmounted:null,destroyed:null,state:p.$state,type:"unknown",label:"unknown",children:[],updateChildren(){const e=[...t.$ok.dom.range(this.scope.$el)].map(e=>e.$scope);for(const t of e)t&&i(t.$id)},updateLabel(){return p.$el.nodeType===Node.TEXT_NODE?this.label="#text":this.label=p.$cache.cmp?.def.tag||p.$el.tagName?.toLowerCase()},updateType:()=>p.$el.nodeType===Node.TEXT_NODE?"text":p.$cache.cmp?"component":"element"}),r.updateLabel(),r.type=r.updateType(),a.updateLast(performance.now()),o.set(n,r),p.$parent){const e=i(p.$parent.$id);e.children.includes(r)||e.children.push(r)}r.updateChildren()}return r}return t.$ok.on("scope@activate",e=>{const t=i(e.$id);a.updateLast(performance.now()),t.state=e.$state,t.activate=e.$__init__$}),t.$ok.on("scope@mount",e=>{const t=i(e.$id);a.updateLast(performance.now()),t.state=e.$state,t.mount=performance.now()}),t.$ok.on("scope@mounted",e=>{const t=i(e.$id);a.updateLast(performance.now()),t.state=e.$state,t.mounted=e.$lifecycle.mounted.timestamp}),t.$ok.on("scope@ready",e=>{const t=i(e.$id);t.state=e.$state,a.updateLast(performance.now()),t.ready=e.$lifecycle.ready.timestamp}),t.$ok.on("scope@initialized",e=>{const t=i(e.$id);t.state=e.$state,a.updateLast(performance.now()),t.initialized=e.$lifecycle.initialized.timestamp}),t.$ok.on("scope@unmount",e=>{const t=i(e.$id);a.updateLast(performance.now()),t.state=e.$state,t.unmount=e.$__unmount__$}),t.$ok.on("scope@unmounted",e=>{const t=i(e.$id);a.updateLast(performance.now()),t.state=e.$state,t.unmounted=e.$lifecycle.unmounted.timestamp}),{t0:n,root:i(t.$id)}};var t={tag:"ok-timeline",dependencies:[{tag:"ok-timeline-bar",attr:{row:{},t0:{}},context(e){function t(t,n,a){return null==t||null==n||n<=t?null:{left:.2*(t-e.$attr.t0),width:.2*(n-t),cls:a}}return{get bars(){const n=e.$attr.row;return[t(n.activate,n.mount,"phase-activate"),t(n.mount,n.mounted,"phase-mount"),t(n.mounted,n.ready,"phase-ready"),t(n.ready,n.initialized,"phase-init"),t(n.unmount,n.unmounted||n.unmount+1,"phase-unmount")].filter(Boolean)}}},template:'\n <div class="bar-container">\n <each :="bars" let:item="b">\n <div class="bar" :class="b.cls"\n :style="{ left: b.left + \'px\', width: b.width + \'px\' }">\n </div>\n </each>\n </div>\n ',style:"\n [tag]{\n position: relative;\n display: block;\n height: var(--row-h);\n }\n\n .bar-container {\n position: relative;\n height: 100%;\n }\n\n .bar{\n position: absolute;\n top: var(--bar-offset);\n height: var(--bar-h);\n box-shadow: inset 0 0 1px rgba(0,0,0,0.6);\n }\n\n tag.phase-activate { background: #8886; }\n .phase-mount { background: #4cf9; }\n .phase-ready { background: #8f89; }\n .phase-init { background: #f88a; }\n .phase-unmount { background: #fa84; }\n "},{tag:"ok-timeline-name",attr:{depth:{default:0}},template:'<span :class="row.state">{{ $props.row.label }}</span>',style:"[tag]{--indent:4px;position:relative;display:block;height:var(--row-h);line-height:var(--row-h);padding-left:calc(var(--depth)*var(--indent) + 4px);overflow:hidden;text-overflow:ellipsis}[tag] .initialized{color:#8f8}[tag] .ready{color:#8ff}[tag] .mounted{color:#4ff}[tag] .mounted .initialized{color:#6f8}[tag] .mounting{color:#4f4}[tag] .unmounted{color:#f88}"},{tag:"ok-timeline-item",attr:{depth:{default:0},row:{default:null}},template:'\n <slot :var:row="$props.row" :var:depth="$props.depth" />\n <if :="$props.row.expanded && $props.row.children.length > 0">\n <each :="$props.row.children" let:item="row">\n <ok-timeline-item :row :depth="$props.depth + 1" :style="{ \'--depth\': $props.depth }" let:row>\n <slot :var:row="row" :var:depth="$props.depth + 1" />\n </ok-timeline-item>\n </each>\n </if>',style:"\n [tag]{\n display: block;\n white-space: nowrap;\n }"}],context:t=>e(t,t.$attr.root),template:'\n <div class="names">\n <ok-timeline-item :row="root" let:row let:depth>\n <ok-timeline-name :row :depth @click="row.expanded = !row.expanded" />\n </ok-timeline-item>\n </div>\n\n <div class="bars">\n <ok-timeline-item :row="root" let:row let:depth>\n <ok-timeline-bar :row :depth :t0 />\n </ok-timeline-item>\n </div>\n ',style:"\n [tag] {\n --row-h: 16px;\n --bar-h: 10px;\n --bar-offset: calc((var(--row-h) - var(--bar-h)) / 2);\n --indent: 16px;\n\n display: flex;\n flex-direction: row;\n gap: 16px;\n font-family: monospace;\n font-size: 12px;\n border: 1px solid rgba(255,255,255,0.12);\n padding: 10px;\n }\n\n .names {\n flex: 1;\n overflow-x: auto;\n\n }\n\n .bars {\n flex: 3;\n overflow-x: auto;\n position: relative;\n\n background-image:\n repeating-linear-gradient(\n to right,\n rgba(255,255,255,0.04) 0,\n rgba(255,255,255,0.04) 1px,\n transparent 1px,\n transparent 20px\n ),\n repeating-linear-gradient(\n to right,\n rgba(255,255,255,0.08) 0,\n rgba(255,255,255,0.08) 2px,\n transparent 2px,\n transparent 100px\n );\n }\n "};export{t as default};
1
+ const n=e;function e(n,e){return n-=225,p()[n]}!function(){const n=e,t=p();for(;;)try{if(787693==parseInt(n(294))/1*(parseInt(n(242))/2)+parseInt(n(268))/3+-parseInt(n(293))/4+parseInt(n(266))/5+parseInt(n(288))/6*(parseInt(n(244))/7)+parseInt(n(299))/8+parseInt(n(251))/9*(-parseInt(n(298))/10))break;t.push(t.shift())}catch(n){t.push(t.shift())}}();const t=(n,t)=>{const o=e,a=t[o(274)]||performance.now(),r=n[o(283)].proxy({first:a,last:a,updateLast(n){const e=o;n>this[e(273)]&&(this[e(273)]=n)}}),i=new Map;function p(e){const a=o;let s=i[a(256)](e);const l=t[a(283)][a(254)][a(256)](e);if(!l)return null;if(!s){if(s=n.$ok[a(261)]({id:e,scope:l,_expanded:null,get expanded(){const n=a;return null===this._expanded?!this[n(286)][n(227)].cmp:this[n(230)]},set expanded(n){this[a(230)]=n},activate:l.$__init__$,mount:l.$__init__$,mounted:l[a(236)]?.[a(258)][a(250)],ready:l[a(236)]?.[a(262)][a(250)],initialized:l[a(236)]?.initialized[a(250)],unmount:null,unmounted:null,destroyed:null,state:l[a(241)],type:"unknown",label:a(292),children:[],updateChildren(){const n=a,e=[...t[n(283)][n(226)][n(247)](this[n(286)].$el)][n(237)](e=>e[n(285)]);for(const t of e)t&&p(t[n(235)])},updateLabel(){const n=a;return l[n(245)].nodeType===Node[n(297)]?this.label=n(260):this[n(279)]=l[n(227)][n(295)]?.def.tag||l[n(245)][n(243)]?.[n(271)]()},updateType(){const n=a;return l[n(245)][n(240)]===Node[n(297)]?"text":l[n(227)].cmp?n(287):"element"}}),s[a(238)](),s.type=s.updateType(),r[a(232)](performance[a(252)]()),i[a(276)](e,s),l[a(257)]){const n=p(l[a(257)][a(235)]);!n[a(275)].includes(s)&&n.children[a(253)](s)}s[a(280)]()}return s}return t[o(283)].on(o(269),n=>{const e=o,t=p(n[e(235)]);r[e(232)](performance[e(252)]()),t[e(289)]=n.$state,t.activate=n[e(274)]}),t.$ok.on(o(277),n=>{const e=o,t=p(n[e(235)]);r[e(232)](performance.now()),t[e(289)]=n[e(241)],t[e(282)]=performance.now()}),t[o(283)].on("scope@mounted",n=>{const e=o,t=p(n.$id);r[e(232)](performance.now()),t[e(289)]=n[e(241)],t.mounted=n[e(236)][e(258)][e(250)]}),t[o(283)].on(o(272),n=>{const e=o,t=p(n[e(235)]);t[e(289)]=n.$state,r.updateLast(performance[e(252)]()),t[e(262)]=n[e(236)][e(262)][e(250)]}),t[o(283)].on(o(229),n=>{const e=o,t=p(n[e(235)]);t.state=n.$state,r[e(232)](performance[e(252)]()),t[e(249)]=n[e(236)].initialized[e(250)]}),t[o(283)].on(o(259),n=>{const e=o,t=p(n[e(235)]);r[e(232)](performance.now()),t[e(289)]=n.$state,t[e(267)]=n[e(246)]}),t.$ok.on(o(264),n=>{const e=o,t=p(n[e(235)]);r[e(232)](performance[e(252)]()),t[e(289)]=n[e(241)],t[e(225)]=n[e(236)][e(225)][e(250)]}),{t0:a,root:p(t[o(235)])}},o={tag:"ok-timeline-name",attr:{depth:{default:0}},template:n(291),style:n(270)},a={tag:n(228),attr:{depth:{default:0},row:{default:null}},template:'\n <slot :var:row="$props.row" :var:depth="$props.depth" />\n <if :="$props.row.expanded && $props.row.children.length > 0">\n <each :="$props.row.children" let:item="row">\n <ok-timeline-item :row :depth="$props.depth + 1" :style="{ \'--depth\': $props.depth }" let:row>\n <slot :var:row="row" :var:depth="$props.depth + 1" />\n </ok-timeline-item>\n </each>\n </if>',style:n(263)},r={tag:"ok-timeline-bar",attr:{row:{},t0:{}},context(n){function t(t,o,a){return null==t||null==o||o<=t?null:{left:.2*(t-n[e(265)].t0),width:.2*(o-t),cls:a}}return{get bars(){const o=e,a=n[o(265)].row;return[t(a[o(281)],a[o(282)],"phase-activate"),t(a[o(282)],a[o(258)],o(296)),t(a.mounted,a[o(262)],o(284)),t(a[o(262)],a.initialized,o(255)),t(a[o(267)],a[o(225)]||a[o(267)]+1,o(290))][o(248)](Boolean)}}},template:n(278),style:"\n [tag]{\n position: relative;\n display: block;\n height: var(--row-h);\n }\n\n .bar-container {\n position: relative;\n height: 100%;\n }\n\n .bar{\n position: absolute;\n top: var(--bar-offset);\n height: var(--bar-h);\n box-shadow: inset 0 0 1px rgba(0,0,0,0.6);\n }\n\n tag.phase-activate { background: #8886; }\n .phase-mount { background: #4cf9; }\n .phase-ready { background: #8f89; }\n .phase-init { background: #f88a; }\n .phase-unmount { background: #fa84; }\n "};var i={tag:n(233),dependencies:[r,o,a],context(e){const o=n;return t(e,e[o(265)][o(234)])},template:n(239),style:n(231)};function p(){const n=["phase-ready","$scope","scope","component","584706BmzyVq","state","phase-unmount",'<span :class="row.state">{{ $props.row.label }}</span>',"unknown","3137228jAKGnI","2MlxHEu","cmp","phase-mount","TEXT_NODE","31490OKSwUg","11392720XZAImw","unmounted","dom","$cache","ok-timeline-item","scope@initialized","_expanded","\n [tag] {\n --row-h: 16px;\n --bar-h: 10px;\n --bar-offset: calc((var(--row-h) - var(--bar-h)) / 2);\n --indent: 16px;\n\n display: flex;\n flex-direction: row;\n gap: 16px;\n font-family: monospace;\n font-size: 12px;\n border: 1px solid rgba(255,255,255,0.12);\n padding: 10px;\n }\n\n .names {\n flex: 1;\n overflow-x: auto;\n\n }\n\n .bars {\n flex: 3;\n overflow-x: auto;\n position: relative;\n\n background-image:\n repeating-linear-gradient(\n to right,\n rgba(255,255,255,0.04) 0,\n rgba(255,255,255,0.04) 1px,\n transparent 1px,\n transparent 20px\n ),\n repeating-linear-gradient(\n to right,\n rgba(255,255,255,0.08) 0,\n rgba(255,255,255,0.08) 2px,\n transparent 2px,\n transparent 100px\n );\n }\n ","updateLast","ok-timeline","root","$id","$lifecycle","map","updateLabel",'\n <div class="names">\n <ok-timeline-item :row="root" let:row let:depth>\n <ok-timeline-name :row :depth @click="row.expanded = !row.expanded" />\n </ok-timeline-item>\n </div>\n\n <div class="bars">\n <ok-timeline-item :row="root" let:row let:depth>\n <ok-timeline-bar :row :depth :t0 />\n </ok-timeline-item>\n </div>\n ',"nodeType","$state","751260IcpjTb","tagName","21QUzdfY","$el","$__unmount__$","range","filter","initialized","timestamp","4410gIYSFZ","now","push","idToScope","phase-init","get","$parent","mounted","scope@unmount","#text","proxy","ready","\n [tag]{\n display: block;\n white-space: nowrap;\n }","scope@unmounted","$attr","696540AMKCPH","unmount","1523997XyVhZy","scope@activate","[tag]{--indent:4px;position:relative;display:block;height:var(--row-h);line-height:var(--row-h);padding-left:calc(var(--depth)*var(--indent) + 4px);overflow:hidden;text-overflow:ellipsis}[tag] .initialized{color:#8f8}[tag] .ready{color:#8ff}[tag] .mounted{color:#4ff}[tag] .mounted .initialized{color:#6f8}[tag] .mounting{color:#4f4}[tag] .unmounted{color:#f88}","toLowerCase","scope@ready","last","$__init__$","children","set","scope@mount",'\n <div class="bar-container">\n <each :="bars" let:item="b">\n <div class="bar" :class="b.cls"\n :style="{ left: b.left + \'px\', width: b.width + \'px\' }">\n </div>\n </each>\n </div>\n ',"label","updateChildren","activate","mount","$ok"];return(p=function(){return n})()}export{i as default};
@@ -1 +1 @@
1
- import e from"../components/ok-doc-viewer.ok.js";var t={tag:"doc-viewer",dependencies:[e],attr:{anchor:{},file:{},root:{default:"/docs/"},prefix:{default:"#/docs/"}},context:()=>({blocks:[{name:"live-example",params:{html:"html",js:["js","javascript"],css:"css"},render({params:e}){const t=document.createElement("ok-live-example");return t.setAttribute("html",e.html||""),e.js&&t.setAttribute("context",e.js),e.css&&t.setAttribute("css",e.css),t}},{name:"live-component",params:{def:["js","javascript"],dom:"html"},render({params:e}){const t=document.createElement("ok-live-component");return t.setAttribute("def",e.def||"({ tag:'my-component', template:`<h1>Hello</h1>` })"),t.setAttribute("usage",e.dom||"<my-component></my-component>"),t}}]}),template:'<ok-doc-viewer :file="$props.file" :root="$props.root" :prefix="$props.prefix" :anchor="$props.anchor" :blocks @anchor-change="$cmp.$dispatch(\'anchor-change\', $event.detail)"/>'};export{t as default};
1
+ import e from"../components/ok-doc-viewer.ok.js";function t(e,t){return e-=382,n()[e]}const o=t;function n(){const e=["html","setAttribute","({ tag:'my-component', template:`<h1>Hello</h1>` })","doc-viewer","<my-component></my-component>","#/docs/","live-component","dom","ok-live-example","css","4670876ummqyC","createElement","ok-live-component","/docs/","8TURsaZ","980KvoJVB","262308adyMVO","14876469oNvenE","1307886fiNhyq","2855886Rgdkjm","420051KpJYRv",'<ok-doc-viewer :file="$props.file" :root="$props.root" :prefix="$props.prefix" :anchor="$props.anchor" :blocks @anchor-change="$cmp.$dispatch(\'anchor-change\', $event.detail)"/>',"live-example","16876AgzxCx","javascript"];return(n=function(){return e})()}!function(){const e=t,o=n();for(;;)try{if(709521==-parseInt(e(401))/1+-parseInt(e(399))/2+-parseInt(e(403))/3+parseInt(e(406))/4*(parseInt(e(398))/5)+parseInt(e(402))/6+-parseInt(e(393))/7+-parseInt(e(397))/8*(-parseInt(e(400))/9))break;o.push(o.shift())}catch(e){o.push(o.shift())}}();var r={tag:o(386),dependencies:[e],attr:{anchor:{},file:{},root:{default:o(396)},prefix:{default:o(388)}},context(){const e=o;return{blocks:[{name:e(405),params:{html:"html",js:["js",e(382)],css:e(392)},render({params:t}){const o=e,n=document[o(394)](o(391));return n[o(384)]("html",t[o(383)]||""),t.js&&n.setAttribute("context",t.js),t[o(392)]&&n[o(384)]("css",t.css),n}},{name:e(389),params:{def:["js",e(382)],dom:"html"},render({params:t}){const o=e,n=document[o(394)](o(395));return n[o(384)]("def",t.def||o(385)),n.setAttribute("usage",t[o(390)]||o(387)),n}}]}},template:o(404)};export{r as default};
@@ -1 +1 @@
1
- import t from"./ok-live-shell.ok.js";var e={tag:"ok-live-component",dependencies:[t],unwrap:!0,attr:{tag:{default:"my-component"},def:{},usage:{}},context:t=>({args:{filename:t.$attr.filename||`live-${t.$attr.tag}.json`,tabs:[{id:"definition",label:"Definition",language:"javascript",default:t.$attr.def||`({\n\ttag: '${t.$attr.tag}',\n\ttemplate: \`${t.$attr.tag}\`\n})`},{id:"usage",label:"Usage",language:"html",default:t.$attr.usage||`<${t.$attr.tag}></${t.$attr.tag}>`}],render:async(t,e,a)=>{a.find(t=>"definition"===t.id).error=null;let n=e.get("definition")||"{}";n=t.func(n)(),t.register(n,{parentId:null,override:!0});const i=document.createElement("div");return i.innerHTML=e.get("usage"),await t.init(i),i}}}),template:"<ok-live-shell ...args/>"};export{e as default};
1
+ import e from"./ok-live-shell.ok.js";function t(e,t){return e-=193,a()[e]}const n=t;function a(){const e=["init","div","definition","`\n})","$attr","235OHGlqV","my-component","filename","',\n\ttemplate: `",".json","get","Usage","tag","3ORZzDu","html","156387PoMlgk","184MAMTlI","innerHTML","register","13998KdXYzD","328072eFxtTP","11pUrADI","<ok-live-shell ...args/>","javascript","ok-live-component","4926897pKUuVz","></","190826SJDKbn","def","usage","10sBImPv","createElement","1134120MQRrJC","17251284TKkJwh","error"];return(a=function(){return e})()}!function(){const e=t,n=a();for(;;)try{if(346027==-parseInt(e(215))/1+parseInt(e(222))/2*(-parseInt(e(208))/3)+parseInt(e(227))/4+parseInt(e(200))/5*(parseInt(e(214))/6)+parseInt(e(210))/7*(-parseInt(e(211))/8)+parseInt(e(220))/9*(-parseInt(e(225))/10)+parseInt(e(216))/11*(parseInt(e(193))/12))break;n.push(n.shift())}catch(e){n.push(n.shift())}}();var r={tag:n(219),dependencies:[e],unwrap:!0,attr:{tag:{default:n(201)},def:{},usage:{}},context(e){const t=n;return{args:{filename:e.$attr[t(202)]||"live-"+e[t(199)][t(207)]+t(204),tabs:[{id:t(197),label:"Definition",language:t(218),default:e[t(199)][t(223)]||"({\n\ttag: '"+e[t(199)][t(207)]+t(203)+e[t(199)][t(207)]+t(198)},{id:t(224),label:t(206),language:t(209),default:e.$attr.usage||"<"+e[t(199)][t(207)]+t(221)+e[t(199)][t(207)]+">"}],render:async(e,n,a)=>{const r=t;a.find(e=>e.id===r(197))[r(194)]=null;let s=n[r(205)]("definition")||"{}";s=e.func(s)(),e[r(213)](s,{parentId:null,override:!0});const i=document[r(226)](r(196));return i[r(212)]=n.get("usage"),await e[r(195)](i),i}}}},template:n(217)};export{r as default};
@@ -1 +1 @@
1
- import t from"./ok-live-shell.ok.js";var e={tag:"ok-live-example",dependencies:[t],unwrap:!0,attr:{tag:{default:"my-component"},html:{default:""},context:{default:null},css:{default:null}},context(t){const e=[{id:"html",label:"HTML",language:"html",default:t.$attr.html}];return null!==t.$attr.context&&e.push({id:"context",label:"Context",language:"javascript",default:t.$attr.context}),null!==t.$attr.css&&e.push({id:"css",label:"CSS",language:"css",default:t.$attr.css}),{args:{filename:t.$attr.filename||`live-${t.$attr.tag}.json`,tabs:e,render:async(t,e,n)=>{const l=document.createElement("div"),a=t.scope(l,{$parent:null});l.innerHTML=e.get("html");const r=n.find(t=>"context"===t.id);if(r){const n=e.get("context")||"{}";r.error=null;try{let t=a.$fn(n)(a);"function"==typeof t&&(t=t(a)),a.$innerContext=t}catch(e){throw r.error=e,t.error("BAD_CONTEXT",e)}}if(n.find(t=>"css"===t.id)){const t=document.createElement("style");t.textContent=e.get("css")||"",l.prepend(t)}return t.dom.unwrap(l),await a.$init(),l}}}},template:"<ok-live-shell ...args/>"};export{e as default};
1
+ import t from"./ok-live-shell.ok.js";function e(){const t=["tag","my-component","unwrap","html","1152712sTcjgU","13586PelFtr","$attr","72wRjasT","11132320mlosHw","59VmRnpk","find","ok-live-example","error","javascript","filename","227340msqABf","293780wOhUOB","push","get","HTML","style","11PUvLrl","692lZVUPv","div","CSS","BAD_CONTEXT","function","7ImVvjE","innerHTML","$fn","textContent",".json","context","418764jVDCqN","createElement","prepend","css","8529XbsIIp"];return(e=function(){return t})()}const n=a;function a(t,n){return t-=316,e()[t]}!function(){const t=a,n=e();for(;;)try{if(721432==parseInt(t(339))/1*(-parseInt(t(335))/2)+-parseInt(t(329))/3*(parseInt(t(352))/4)+-parseInt(t(346))/5*(-parseInt(t(337))/6)+-parseInt(t(319))/7*(parseInt(t(334))/8)+-parseInt(t(345))/9+parseInt(t(338))/10*(parseInt(t(351))/11)+-parseInt(t(325))/12)break;n.push(n.shift())}catch(t){n.push(n.shift())}}();var l={tag:n(341),dependencies:[t],unwrap:!0,attr:{tag:{default:n(331)},html:{default:""},context:{default:null},css:{default:null}},context(t){const e=n,a=[{id:e(333),label:e(349),language:e(333),default:t[e(336)][e(333)]}];return null!==t[e(336)][e(324)]&&a[e(347)]({id:e(324),label:"Context",language:e(343),default:t[e(336)][e(324)]}),null!==t[e(336)].css&&a[e(347)]({id:"css",label:e(316),language:e(328),default:t.$attr[e(328)]}),{args:{filename:t[e(336)][e(344)]||"live-"+t[e(336)][e(330)]+e(323),tabs:a,render:async(t,n,a)=>{const l=e,r=document[l(326)](l(353)),s=t.scope(r,{$parent:null});r[l(320)]=n.get("html");const o=a[l(340)](t=>t.id===l(324));if(o){const e=n.get(l(324))||"{}";o[l(342)]=null;try{let t=s[l(321)](e)(s);typeof t===l(318)&&(t=t(s)),s.$innerContext=t}catch(e){throw o[l(342)]=e,t[l(342)](l(317),e)}}if(a[l(340)](t=>t.id===l(328))){const t=document[l(326)](l(350));t[l(322)]=n[l(348)](l(328))||"",r[l(327)](t)}return t.dom[l(332)](r),await s.$init(),r}}}},template:"<ok-live-shell ...args/>"};export{l as default};
@@ -1 +1 @@
1
- const e="server-render"===globalThis.__OK_SSG__?.phase,t=e?'\n<div class="main main--ssg">\n <div class="preview preview--ssg">\n <div class="ssg-placeholder">\n <div class="ssg-placeholder__title">Interactive example</div>\n <div class="ssg-placeholder__text">This live editor becomes interactive after hydration.</div>\n </div>\n </div>\n</div>':'\n<if :="window">\n <ok-overlay style="--ok-overlay_bg: rgba(0, 0, 0, 0.5)">\n <ok-window @close="window = false" style="--ok-window_padding: 0; --ok-window_overflow: none;">\n <ok-live-shell no-resize-height @update-content="updateContent($event.detail.tab, $event.detail.content, false)" :tabs="$props.tabs" :filename="$props.filename" :render="$props.render" />\n </ok-window>\n </ok-overlay>\n</if>\n<div class="main">\n <div class="editors" style="width: 70%">\n <div class="header">\n <div class="tabs">\n <each :="tabs" let:item="tab">\n <button class="tab-button" :class="{ active : tab === selectedTab }" @click="selectedTab = tab">\n {{ tab.label }}<if :="tab.error"><span> ⚠</span></if>\n </button>\n </each>\n </div>\n <div class="editor-controls">\n <label title="Auto Update">\n <input type="checkbox" !auto @change="auto && update()" />\n <span style="vertical-align: middle; font-size: 12px;">Auto</span>\n </label>\n <button @click="update()" title="Update"><ok-icon name="play-circle" /></button>\n <button @click="save" title="Save"><ok-icon name="save" /></button>\n <label title="Import">\n <button @click="$el.nextElementSibling.click()">\n <ok-icon name="folder-open" size="16" color="currentColor" />\n </button>\n <input type="file" accept=".json" @change="load" @click:allow="$el.value = null" style="display:none" />\n </label>\n <button @click="reset" title="Reset"><ok-icon name="rotate-ccw" /></button>\n <button @click="toggleWindow" :title="window ? \'Close Window\' : \'Pop Window\'">\n <ok-icon :name="window ? \'x\' : \'external-link\'" />\n </button>\n </div>\n </div>\n\n <ok-monaco\n :language="selectedTab.language"\n :value="getContent(selectedTab)"\n :options="$props.monaco"\n @editor-change="updateContent(selectedTab, $event.detail)"\n ></ok-monaco>\n\n <if :="compileError">\n <div class="error">⚠ {{ compileErrorText }}</div>\n </if>\n </div>\n \n <ok-resizer direction="horizontal" />\n <div :ref="previewEl = $el" class="preview"></div>\n</div>\n<if :="!$props.noResizeHeight">\n <ok-resizer direction="vertical" />\n</if>';var n={tag:"ok-live-shell",attr:{noResizeHeight:{default:!1,empty:!0},filename:{default:"live-shell.json"},monaco:{default:{minimap:{enabled:!1}}},tabs:{default:[{id:"html",label:"HTML",language:"html",error:null,default:""},{id:"context",label:"Context",language:"javascript",error:null,default:"{}"}]},render:{default:async(e,t,n)=>{const o=document.createElement("div");return o.innerHTML="ok-live-shell component loaded. Please provide a render function to display content.",o},description:"Function that receives the sandbox target, should return html to render"}},context(e){let t=null,n=null,o=null;return{previewEl:null,auto:!0,compileError:null,get compileErrorText(){if(!this.compileError)return"";let e=this.compileError;for(;e.cause?.scope;)e=e.cause;return e.message+(e.cause?` because ${e.cause.message}`:"")},get tabs(){return e.$attr.tabs||[]},selectedTab:e.$attr.tabs[0]||null,content:new Map,getContent(e){const t=this.content.get(e.id);return void 0!==t?t:e.default||""},async updateContent(t,n){const o=n??"";this.content.set(t.id,o),this.auto&&await this.update(),e.$dispatch("update-content",{tab:t,content:n})},save(){const t={};for(let e of this.tabs)t[e.id]=this.getContent(e);const n=new Blob([JSON.stringify(t,null,2)],{type:"application/json"}),o=URL.createObjectURL(n),a=document.createElement("a");a.href=o,a.download=e.$attr.filename,a.click(),URL.revokeObjectURL(o)},async load(e){const t=e.target.files?.[0];if(!t)return;const n=new FileReader;return new Promise((e,o)=>{n.onload=async()=>{try{const t=JSON.parse(n.result);for(let e of this.tabs)void 0===t[e.id]?this.content.delete(e.id):this.content.set(e.id,t[e.id]);await this.update(),e()}catch(t){this.compileError=t,e()}},n.readAsText(t)})},async update(){try{this.compileError=null;const t=await e.$attr.render(o,this.content,this.tabs);for(let e of[...o.dom.range(n)]){const t=e.$scope;t&&t.$destroy&&t.$destroy()}n.innerHTML="",o.dom.append(n,t)}catch(e){this.compileError=e}},async reset(){for(let e of this.tabs)this.content.set(e.id,e.default||"");await this.update()},async init(){t||(t=this.previewEl.attachShadow({mode:"open"}),n=document.createElement("body"),n.style.margin="0",n.style.padding="0",n.style.overflow="auto",n.style.position="relative",n.style.height="100%",t.append(n),o=e.$ok.OK({env:"sandbox",head:t,body:n}),await this.reset())},window:!1,toggleWindow(t=null){const n={tabs:[],render:e.$attr.render.toString()};for(let e of this.tabs)n.tabs.push({id:e.id,label:e.label,language:e.language,default:this.getContent(e)});e.$ok.shared.popout.pop('<ok-live-shell style="padding:0;height: 100vh;" :tabs :render="(new Function(`return (${render})`))()"></ok-live-shell>',{context:n})}}},mounted(){e||this.init()},template:t,style:'[tag]{flex-grow:1;padding:8px 8px 2px;font-family:"Segoe UI","Inter",sans-serif;background:#2a2a2e;color:#ddd;border-radius:8px;box-shadow:0 2px 10px #0005}[tag] .main{display:flex;flex-grow:1;align-items:stretch;min-height:200px}[tag],[tag] .editors{display:flex;flex-direction:column}[tag] .editors{overflow:hidden;gap:8px}[tag] .header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}[tag] .tabs{display:flex;gap:0;border-bottom:1px solid #444}[tag] .editor-controls button,[tag] .tab-button{background:0 0;border:0;color:#aaa;cursor:pointer}[tag] .tab-button{border-bottom:2px solid transparent;padding:6px 12px;font-size:13px;transition:all .2s}[tag] .tab-button.active{color:#fff;border-bottom-color:#66f;font-weight:500}[tag] .editor-controls{margin-inline-start:auto;display:flex;align-items:center;gap:8px}[tag] .editor-controls button{font-size:16px;padding:4px}[tag] .editor-controls button:hover{color:#fff}[tag] .editor-controls input[type=checkbox]{margin-right:4px}[tag] .preview,[tag] ok-monaco{border:1px solid #444;border-radius:4px}[tag] ok-monaco{overflow:hidden;height:200px}[tag] .preview{flex:1;background:#111;padding:10px;overflow:auto}[tag] .main--ssg{min-height:240px}[tag] .preview--ssg{display:flex;align-items:center;justify-content:center}[tag] .ssg-placeholder{max-width:28rem;text-align:center;padding:1.5rem;border:1px solid #334;border-radius:12px;background:rgba(255,255,255,.03)}[tag] .ssg-placeholder__title{color:#fff;font-size:1rem;font-weight:600;margin-bottom:.5rem}[tag] .ssg-placeholder__text{color:#aaa;line-height:1.5}[tag] .error{color:#f66;background:#330;border:1px solid #600;padding:6px 8px;margin-top:6px;border-radius:4px;font-size:13px}'};export{n as default};
1
+ const e=a;!function(){const e=a,t=o();for(;;)try{if(162038==parseInt(e(485))/1*(parseInt(e(442))/2)+parseInt(e(436))/3*(-parseInt(e(435))/4)+-parseInt(e(484))/5*(parseInt(e(481))/6)+parseInt(e(424))/7+-parseInt(e(489))/8*(parseInt(e(477))/9)+-parseInt(e(450))/10*(-parseInt(e(460))/11)+-parseInt(e(462))/12)break;t.push(t.shift())}catch(e){t.push(t.shift())}}();const t="server-render"===globalThis[e(497)]?.phase,n=e(t?441:463);function o(){const e=["HTML","ok-live-shell component loaded. Please provide a render function to display content.","attachShadow","parse","$destroy","application/json","set","popout","open","4ECXeTK","746766JhJZwr","stringify","context","shared","pop",'\n<div class="main main--ssg">\n <div class="preview preview--ssg">\n <div class="ssg-placeholder">\n <div class="ssg-placeholder__title">Interactive example</div>\n <div class="ssg-placeholder__text">This live editor becomes interactive after hydration.</div>\n </div>\n </div>\n</div>',"24NkJDvT","div","range","target","style","click","append","delete","509650OYsEDe","files","language","readAsText","tabs","Function that receives the sandbox target, should return html to render","push","scope","javascript","content","55cSkLYX","createObjectURL","412116pmBHvd",'\n<if :="window">\n <ok-overlay style="--ok-overlay_bg: rgba(0, 0, 0, 0.5)">\n <ok-window @close="window = false" style="--ok-window_padding: 0; --ok-window_overflow: none;">\n <ok-live-shell no-resize-height @update-content="updateContent($event.detail.tab, $event.detail.content, false)" :tabs="$props.tabs" :filename="$props.filename" :render="$props.render" />\n </ok-window>\n </ok-overlay>\n</if>\n<div class="main">\n <div class="editors" style="width: 70%">\n <div class="header">\n <div class="tabs">\n <each :="tabs" let:item="tab">\n <button class="tab-button" :class="{ active : tab === selectedTab }" @click="selectedTab = tab">\n {{ tab.label }}<if :="tab.error"><span> ⚠</span></if>\n </button>\n </each>\n </div>\n <div class="editor-controls">\n <label title="Auto Update">\n <input type="checkbox" !auto @change="auto && update()" />\n <span style="vertical-align: middle; font-size: 12px;">Auto</span>\n </label>\n <button @click="update()" title="Update"><ok-icon name="play-circle" /></button>\n <button @click="save" title="Save"><ok-icon name="save" /></button>\n <label title="Import">\n <button @click="$el.nextElementSibling.click()">\n <ok-icon name="folder-open" size="16" color="currentColor" />\n </button>\n <input type="file" accept=".json" @change="load" @click:allow="$el.value = null" style="display:none" />\n </label>\n <button @click="reset" title="Reset"><ok-icon name="rotate-ccw" /></button>\n <button @click="toggleWindow" :title="window ? \'Close Window\' : \'Pop Window\'">\n <ok-icon :name="window ? \'x\' : \'external-link\'" />\n </button>\n </div>\n </div>\n\n <ok-monaco\n :language="selectedTab.language"\n :value="getContent(selectedTab)"\n :options="$props.monaco"\n @editor-change="updateContent(selectedTab, $event.detail)"\n ></ok-monaco>\n\n <if :="compileError">\n <div class="error">⚠ {{ compileErrorText }}</div>\n </if>\n </div>\n \n <ok-resizer direction="horizontal" />\n <div :ref="previewEl = $el" class="preview"></div>\n</div>\n<if :="!$props.noResizeHeight">\n <ok-resizer direction="vertical" />\n</if>',"message","compileError","height","getContent","html","relative","label","position","Context","padding","cause","sandbox","render","218007bJBhha","href","revokeObjectURL","download","12PkVkDb","margin","dom","423125fvseek","21923lImHrr","createElement","$scope","default","48upGGKU","auto","init","filename","$attr","previewEl","update-content","result","__OK_SSG__","ok-live-shell","innerHTML","update","$ok","1693930NPxVEh","reset"];return(o=function(){return e})()}function a(e,t){return e-=422,o()[e]}var i={tag:e(498),attr:{noResizeHeight:{default:!1,empty:!0},filename:{default:"live-shell.json"},monaco:{default:{minimap:{enabled:!1}}},tabs:{default:[{id:e(468),label:e(426),language:e(468),error:null,default:""},{id:e(438),label:e(472),language:e(458),error:null,default:"{}"}]},render:{default:async(t,n,o)=>{const a=e,i=document[a(486)](a(443));return i[a(499)]=a(427),i},description:e(455)}},context(t){const n=e;let o=null,i=null,r=null;return{previewEl:null,auto:!0,compileError:null,get compileErrorText(){const e=a;if(!this.compileError)return"";let t=this.compileError;for(;t[e(474)]?.[e(457)];)t=t[e(474)];return t[e(464)]+(t.cause?" because "+t[e(474)][e(464)]:"")},get tabs(){const e=a;return t[e(493)][e(454)]||[]},selectedTab:t[n(493)][n(454)][0]||null,content:new Map,getContent(e){const t=this[n(459)].get(e.id);return void 0!==t?t:e.default||""},async updateContent(e,o){const a=n,i=o??"";this[a(459)][a(432)](e.id,i),this[a(490)]&&await this.update(),t.$dispatch(a(495),{tab:e,content:o})},save(){const e=n,o={};for(let t of this[e(454)])o[t.id]=this[e(467)](t);const a=new Blob([JSON[e(437)](o,null,2)],{type:e(431)}),i=URL[e(461)](a),r=document[e(486)]("a");r[e(478)]=i,r[e(480)]=t[e(493)][e(492)],r[e(447)](),URL[e(479)](i)},async load(e){const t=n,o=e[t(445)][t(451)]?.[0];if(!o)return;const i=new FileReader;return new Promise((e,n)=>{const r=t;i.onload=async()=>{const t=a;try{const n=JSON[t(429)](i[t(496)]);for(let e of this[t(454)])void 0===n[e.id]?this[t(459)][t(449)](e.id):this.content[t(432)](e.id,n[e.id]);await this[t(422)](),e()}catch(t){this.compileError=t,e()}},i[r(453)](o)})},async update(){const e=n;try{this[e(465)]=null;const n=await t[e(493)][e(476)](r,this[e(459)],this[e(454)]);for(let t of[...r.dom[e(444)](i)]){const n=t[e(487)];n&&n[e(430)]&&n[e(430)]()}i[e(499)]="",r[e(483)].append(i,n)}catch(e){this.compileError=e}},async reset(){const e=n;for(let t of this[e(454)])this[e(459)][e(432)](t.id,t[e(488)]||"");await this[e(422)]()},async init(){const e=n;o||(o=this[e(494)][e(428)]({mode:e(434)}),i=document[e(486)]("body"),i[e(446)][e(482)]="0",i.style[e(473)]="0",i.style.overflow="auto",i[e(446)][e(471)]=e(469),i[e(446)][e(466)]="100%",o[e(448)](i),r=t.$ok.OK({env:e(475),head:o,body:i}),await this[e(425)]())},window:!1,toggleWindow(e=null){const o=n,a={tabs:[],render:t.$attr.render.toString()};for(let e of this.tabs)a[o(454)][o(456)]({id:e.id,label:e[o(470)],language:e[o(452)],default:this[o(467)](e)});t[o(423)][o(439)][o(433)][o(440)]('<ok-live-shell style="padding:0;height: 100vh;" :tabs :render="(new Function(`return (${render})`))()"></ok-live-shell>',{context:a})}}},mounted(){t||this[e(491)]()},template:n,style:'[tag]{flex-grow:1;padding:8px 8px 2px;font-family:"Segoe UI","Inter",sans-serif;background:#2a2a2e;color:#ddd;border-radius:8px;box-shadow:0 2px 10px #0005}[tag] .main{display:flex;flex-grow:1;align-items:stretch;min-height:200px}[tag],[tag] .editors{display:flex;flex-direction:column}[tag] .editors{overflow:hidden;gap:8px}[tag] .header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}[tag] .tabs{display:flex;gap:0;border-bottom:1px solid #444}[tag] .editor-controls button,[tag] .tab-button{background:0 0;border:0;color:#aaa;cursor:pointer}[tag] .tab-button{border-bottom:2px solid transparent;padding:6px 12px;font-size:13px;transition:all .2s}[tag] .tab-button.active{color:#fff;border-bottom-color:#66f;font-weight:500}[tag] .editor-controls{margin-inline-start:auto;display:flex;align-items:center;gap:8px}[tag] .editor-controls button{font-size:16px;padding:4px}[tag] .editor-controls button:hover{color:#fff}[tag] .editor-controls input[type=checkbox]{margin-right:4px}[tag] .preview,[tag] ok-monaco{border:1px solid #444;border-radius:4px}[tag] ok-monaco{overflow:hidden;height:200px}[tag] .preview{flex:1;background:#111;padding:10px;overflow:auto}[tag] .main--ssg{min-height:240px}[tag] .preview--ssg{display:flex;align-items:center;justify-content:center}[tag] .ssg-placeholder{max-width:28rem;text-align:center;padding:1.5rem;border:1px solid #334;border-radius:12px;background:rgba(255,255,255,.03)}[tag] .ssg-placeholder__title{color:#fff;font-size:1rem;font-weight:600;margin-bottom:.5rem}[tag] .ssg-placeholder__text{color:#aaa;line-height:1.5}[tag] .error{color:#f66;background:#330;border:1px solid #600;padding:6px 8px;margin-top:6px;border-radius:4px;font-size:13px}'};export{i as default};
@@ -1 +1 @@
1
- var o={tag:"ok-dropdown",attr:{open:{default:!1,empty:!0},title:{default:""},noCaret:{default:!1,empty:!0},placement:{default:"auto"},noKeyboard:{default:!1,empty:!0}},context:o=>({isOpen:!!o.$attr.open,opensUp:!1,toggle(r){const e=void 0!==r?!!r:!this.isOpen;e&&(this.opensUp=(()=>{const r=o.$attr.placement;if("top"===r)return!0;if("bottom"===r)return!1;const e=o.$el.getBoundingClientRect();return window.innerHeight-e.bottom<220})()),this.isOpen=e,o.$dispatch("toggle",{open:e})}}),mount(o){o.$el.toggle=o=>this.toggle(o),o.$el.open=()=>this.toggle(!0),o.$el.close=()=>this.toggle(!1),o.$watch(()=>o.$attr.open,o=>{!!o!==this.isOpen&&this.toggle(!!o)})},template:'<div class="ok-dropdown" :class="{ \'ok-dropdown--open\': isOpen, \'ok-dropdown--up\': opensUp }"><div class="ok-dropdown__trigger" @click="toggle()" role="button" :tabindex="$props.noKeyboard ? -1 : 0" @keydown:allow="!$props.noKeyboard && ($event.key === \'Enter\' || $event.key === \' \') && toggle()" :aria-expanded="isOpen" :aria-haspopup="true"><slot name="trigger">{{ $props.title }}</slot><if :="!$props.noCaret"><span class="ok-dropdown__caret" aria-hidden="true"><svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></span></if></div><if :="isOpen"><div class="ok-dropdown__panel" :class="{\'ok-dropdown__panel--up\': opensUp}" role="menu"><slot/></div><div class="ok-dropdown__mask" @click="toggle(false)"/></if></div>',style:"@keyframes ok-dropdown-grow{0%{opacity:0;transform:scaleY(.92) translateY(-4px)}to{opacity:1;transform:scaleY(1) translateY(0)}}@keyframes ok-dropdown-grow-up{0%{opacity:0;transform:scaleY(.92) translateY(4px)}to{opacity:1;transform:scaleY(1) translateY(0)}}[tag]{display:inline-block}.ok-dropdown{position:relative}.ok-dropdown--open{z-index:var(--ok-dropdown-z, 1001)}.ok-dropdown__trigger{display:var(--ok-dropdown-trigger-display, inline-flex);align-items:center;gap:var(--ok-dropdown-trigger-gap, 0.35em);cursor:pointer;user-select:none;padding:var(--ok-dropdown-trigger-padding, 0.35rem 0.6rem);border-radius:var(--ok-dropdown-trigger-radius, var(--ok_radius, 4px));border:var(--ok-dropdown-trigger-border, 1px solid transparent);background:var(--ok-dropdown-trigger-bg, transparent);color:var(--ok-dropdown-trigger-color, inherit);outline-offset:2px;transition:background .15s,border-color .15s}.ok-dropdown__trigger:hover{background:var(--ok-dropdown-trigger-hover-bg, color-mix(in srgb, currentColor 8%, transparent))}.ok-dropdown--open .ok-dropdown__trigger{background:var(--ok-dropdown-trigger-active-bg, color-mix(in srgb, currentColor 12%, transparent))}.ok-dropdown__caret{display:inline-flex;align-items:center;flex-shrink:0;transition:transform .2s ease;line-height:0}.ok-dropdown--open .ok-dropdown__caret{transform:rotate(180deg)}.ok-dropdown__panel{position:absolute;z-index:2;top:100%;inset-inline-start:0;min-width:100%;margin-top:var(--ok-dropdown-panel-gap, 2px);padding:var(--ok-dropdown-panel-padding, 0.25rem 0);background:var(--ok-dropdown-panel-bg, var(--ok_bg, #fff));color:var(--ok-dropdown-panel-color, var(--ok_fg, inherit));border:var(--ok-dropdown-panel-border, 1px solid color-mix(in srgb, #000 10%, transparent));border-radius:var(--ok-dropdown-panel-radius, var(--ok_radius, 6px));box-shadow:var(--ok-dropdown-panel-shadow, 0 6px 20px rgba(0,0,0,.12));white-space:nowrap;animation:ok-dropdown-grow .15s ease forwards;transform-origin:top center}.ok-dropdown__panel--up{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--ok-dropdown-panel-gap, 2px);transform-origin:bottom center;animation-name:ok-dropdown-grow-up}.ok-dropdown__mask{position:fixed;inset:0;z-index:1;background:0 0;cursor:default}[tag].pill .ok-dropdown__trigger{border:var(--ok-dropdown-pill-border, 1px solid color-mix(in srgb, currentColor 20%, transparent));border-radius:var(--ok-dropdown-pill-radius, 999px);padding:var(--ok-dropdown-pill-padding, 0.35rem 0.75rem);background:var(--ok-dropdown-pill-bg, var(--ok_bg, #fff))}[tag].pill .ok-dropdown__trigger:hover{filter:brightness(95%)}[tag].block{display:block}[tag].block .ok-dropdown__trigger{justify-content:space-between;border:var(--ok-dropdown-block-border, 1px solid color-mix(in srgb, currentColor 20%, transparent));border-radius:var(--ok-dropdown-block-radius, var(--ok_radius, 4px))}[tag].block .ok-dropdown__panel{width:100%}",plugins:{theme:{expose:{"--ok-dropdown-trigger-bg":{default:"transparent",type:"color",description:"Trigger background",category:"ok-dropdown"},"--ok-dropdown-panel-bg":{default:"var(--ok_bg, #fff)",type:"color",description:"Panel background",category:"ok-dropdown"},"--ok-dropdown-panel-radius":{default:"var(--ok_radius, 6px)",type:"length",description:"Panel border-radius",category:"ok-dropdown"},"--ok-dropdown-panel-shadow":{default:"0 6px 20px rgba(0,0,0,.12)",type:"box-shadow",description:"Panel drop shadow",category:"ok-dropdown"}}}}};export{o as default};
1
+ function o(o,r){return o-=291,n()[o]}const r=o;function n(){const o=["5425437qIheLP","0 6px 20px rgba(0,0,0,.12)","innerHeight","1563999cOfovW","getBoundingClientRect","$el","@keyframes ok-dropdown-grow{0%{opacity:0;transform:scaleY(.92) translateY(-4px)}to{opacity:1;transform:scaleY(1) translateY(0)}}@keyframes ok-dropdown-grow-up{0%{opacity:0;transform:scaleY(.92) translateY(4px)}to{opacity:1;transform:scaleY(1) translateY(0)}}[tag]{display:inline-block}.ok-dropdown{position:relative}.ok-dropdown--open{z-index:var(--ok-dropdown-z, 1001)}.ok-dropdown__trigger{display:var(--ok-dropdown-trigger-display, inline-flex);align-items:center;gap:var(--ok-dropdown-trigger-gap, 0.35em);cursor:pointer;user-select:none;padding:var(--ok-dropdown-trigger-padding, 0.35rem 0.6rem);border-radius:var(--ok-dropdown-trigger-radius, var(--ok_radius, 4px));border:var(--ok-dropdown-trigger-border, 1px solid transparent);background:var(--ok-dropdown-trigger-bg, transparent);color:var(--ok-dropdown-trigger-color, inherit);outline-offset:2px;transition:background .15s,border-color .15s}.ok-dropdown__trigger:hover{background:var(--ok-dropdown-trigger-hover-bg, color-mix(in srgb, currentColor 8%, transparent))}.ok-dropdown--open .ok-dropdown__trigger{background:var(--ok-dropdown-trigger-active-bg, color-mix(in srgb, currentColor 12%, transparent))}.ok-dropdown__caret{display:inline-flex;align-items:center;flex-shrink:0;transition:transform .2s ease;line-height:0}.ok-dropdown--open .ok-dropdown__caret{transform:rotate(180deg)}.ok-dropdown__panel{position:absolute;z-index:2;top:100%;inset-inline-start:0;min-width:100%;margin-top:var(--ok-dropdown-panel-gap, 2px);padding:var(--ok-dropdown-panel-padding, 0.25rem 0);background:var(--ok-dropdown-panel-bg, var(--ok_bg, #fff));color:var(--ok-dropdown-panel-color, var(--ok_fg, inherit));border:var(--ok-dropdown-panel-border, 1px solid color-mix(in srgb, #000 10%, transparent));border-radius:var(--ok-dropdown-panel-radius, var(--ok_radius, 6px));box-shadow:var(--ok-dropdown-panel-shadow, 0 6px 20px rgba(0,0,0,.12));white-space:nowrap;animation:ok-dropdown-grow .15s ease forwards;transform-origin:top center}.ok-dropdown__panel--up{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--ok-dropdown-panel-gap, 2px);transform-origin:bottom center;animation-name:ok-dropdown-grow-up}.ok-dropdown__mask{position:fixed;inset:0;z-index:1;background:0 0;cursor:default}[tag].pill .ok-dropdown__trigger{border:var(--ok-dropdown-pill-border, 1px solid color-mix(in srgb, currentColor 20%, transparent));border-radius:var(--ok-dropdown-pill-radius, 999px);padding:var(--ok-dropdown-pill-padding, 0.35rem 0.75rem);background:var(--ok-dropdown-pill-bg, var(--ok_bg, #fff))}[tag].pill .ok-dropdown__trigger:hover{filter:brightness(95%)}[tag].block{display:block}[tag].block .ok-dropdown__trigger{justify-content:space-between;border:var(--ok-dropdown-block-border, 1px solid color-mix(in srgb, currentColor 20%, transparent));border-radius:var(--ok-dropdown-block-radius, var(--ok_radius, 4px))}[tag].block .ok-dropdown__panel{width:100%}","bottom","length","729025xcsUXh","4UvvKKa",'<div class="ok-dropdown" :class="{ \'ok-dropdown--open\': isOpen, \'ok-dropdown--up\': opensUp }"><div class="ok-dropdown__trigger" @click="toggle()" role="button" :tabindex="$props.noKeyboard ? -1 : 0" @keydown:allow="!$props.noKeyboard && ($event.key === \'Enter\' || $event.key === \' \') && toggle()" :aria-expanded="isOpen" :aria-haspopup="true"><slot name="trigger">{{ $props.title }}</slot><if :="!$props.noCaret"><span class="ok-dropdown__caret" aria-hidden="true"><svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></span></if></div><if :="isOpen"><div class="ok-dropdown__panel" :class="{\'ok-dropdown__panel--up\': opensUp}" role="menu"><slot/></div><div class="ok-dropdown__mask" @click="toggle(false)"/></if></div>',"placement","isOpen","2664634uhjKnx","auto","Panel background","3909430ssIzMa","open","Trigger background","$attr","Panel drop shadow","Panel border-radius","opensUp","12XQVbgP","ok-dropdown","toggle","close","80ZfFMye","top","21869500beqerz","1239723lGfmst","color","$watch"];return(n=function(){return o})()}!function(){const r=o,e=n();for(;;)try{if(989807==parseInt(r(310))/1+parseInt(r(324))/2+-parseInt(r(307))/3*(parseInt(r(317))/4)+parseInt(r(316))/5*(-parseInt(r(297))/6)+parseInt(r(321))/7+-parseInt(r(301))/8*(-parseInt(r(304))/9)+-parseInt(r(303))/10)break;e.push(e.shift())}catch(o){e.push(e.shift())}}();var e={tag:r(298),attr:{open:{default:!1,empty:!0},title:{default:""},noCaret:{default:!1,empty:!0},placement:{default:r(322)},noKeyboard:{default:!1,empty:!0}},context(n){const e=r;return{isOpen:!!n[e(293)][e(291)],opensUp:!1,toggle(r){const t=e,a=void 0!==r?!!r:!this.isOpen;a&&(this[t(296)]=(()=>{const r=o,e=n[r(293)][r(319)];if(e===r(302))return!0;if(e===r(314))return!1;const t=n[r(312)][r(311)]();return window[r(309)]-t[r(314)]<220})()),this[t(320)]=a,n.$dispatch(t(299),{open:a})}}},mount(o){const n=r;o[n(312)][n(299)]=o=>this[n(299)](o),o[n(312)][n(291)]=()=>this[n(299)](!0),o[n(312)][n(300)]=()=>this[n(299)](!1),o[n(306)](()=>o[n(293)].open,o=>{const r=n;!!o!==this[r(320)]&&this[r(299)](!!o)})},template:r(318),style:r(313),plugins:{theme:{expose:{"--ok-dropdown-trigger-bg":{default:"transparent",type:r(305),description:r(292),category:r(298)},"--ok-dropdown-panel-bg":{default:"var(--ok_bg, #fff)",type:r(305),description:r(323),category:"ok-dropdown"},"--ok-dropdown-panel-radius":{default:"var(--ok_radius, 6px)",type:r(315),description:r(295),category:r(298)},"--ok-dropdown-panel-shadow":{default:r(308),type:"box-shadow",description:r(294),category:r(298)}}}}};export{e as default};
@@ -1 +1 @@
1
- const t=new Map;var e={tag:"ok-icon",attr:{name:{},set:{default:"lucide"}},context:e=>({async updateIcon(){const n=e.$attr.name;if(n)try{const n=`https://api.iconify.design/${e.$attr.set}/${e.$attr.name}.svg`;if(t.has(n))e.$el.innerHTML=t.get(n);else{e.$el.innerHTML='<span style="opacity:0.5">&nbsp;</span>';const a=await fetch(n);if(!a.ok)throw new Error("Icon not found");const s=await a.text();t.set(n,s),e.$el.innerHTML=s}}catch(t){if(e.$__unmount__$)return;e.$el.innerHTML=`\x3c!-- icon "${n}" not found --\x3e<span style="display:block;text-align:center">?</span>`}}}),mount(t){this.updateIcon(),t.$watch(()=>[t.$attr.name,t.$attr.set],()=>{this.updateIcon()})},style:"[tag]{display:inline-flex;width:1em;height:1em;line-height:1}[tag] svg{flex-grow:1;stroke:currentColor;fill:transparent;display:block}"};export{e as default};
1
+ const t=e;function n(){const t=["3430272xMTdJG","3010755CRixeK","121796minIgq","$watch","updateIcon",'\x3c!-- icon "',"7707147SGzfdP","has","get","ok-icon","https://api.iconify.design/","Icon not found","17082936khRgsP","set",".svg","[tag]{display:inline-flex;width:1em;height:1em;line-height:1}[tag] svg{flex-grow:1;stroke:currentColor;fill:transparent;display:block}","589908JgUtto",'<span style="opacity:0.5">&nbsp;</span>',"$__unmount__$","$el","$attr","2132460BqsEji","name","text","innerHTML","15ZlMUlt"];return(n=function(){return t})()}function e(t,e){return t-=468,n()[t]}!function(){const t=e,s=n();for(;;)try{if(747043==parseInt(t(492))/1*(parseInt(t(469))/2)+parseInt(t(488))/3+parseInt(t(493))/4+-parseInt(t(468))/5+-parseInt(t(483))/6+parseInt(t(473))/7+-parseInt(t(479))/8)break;s.push(s.shift())}catch(t){s.push(s.shift())}}();const s=new Map;var a={tag:t(476),attr:{name:{},set:{default:"lucide"}},context:t=>({async updateIcon(){const n=e,a=t[n(487)][n(489)];if(a)try{const e=n(477)+t.$attr[n(480)]+"/"+t[n(487)].name+n(481);if(s[n(474)](e))t[n(486)][n(491)]=s[n(475)](e);else{t.$el[n(491)]=n(484);const a=await fetch(e);if(!a.ok)throw new Error(n(478));const o=await a[n(490)]();s.set(e,o),t[n(486)][n(491)]=o}}catch(e){if(t[n(485)])return;t[n(486)][n(491)]=n(472)+a+'" not found --\x3e<span style="display:block;text-align:center">?</span>'}}}),mount(n){const e=t;this.updateIcon(),n[e(470)](()=>[n[e(487)].name,n[e(487)][e(480)]],()=>{this[e(471)]()})},style:t(482)};export{a as default};
@@ -1 +1 @@
1
- import e from"./ok-dropdown.ok.js";var o={tag:"ok-select",dependencies:[e],attr:{value:{default:null},options:{default:[]},optionText:{default:null},optionValue:{default:null},placeholder:{default:""},noSearch:{default:!1,empty:!0},placement:{default:"auto"}},context(e){let o=null,t=null,r=null;const l=o=>{if(null==o)return"";const t=e.$attr.optionText;return String("function"==typeof t?t(o):"string"==typeof t?o?.[t]??o:o)},n=o=>{if(null==o)return null;const t=e.$attr.optionValue;return"function"==typeof t?t(o):"string"==typeof t?o?.[t]??o:o},s=(e,o)=>{const t=e.filteredOptions;if(!t.length)return;const r=t.findIndex(o=>o===e.hover);e.hover=1===o?t[(r+1)%t.length]:t[(t.length+r-1)%t.length]};return{isOpen:!1,search:"",hover:null,get displayValue(){const o=e.$attr.value;if(null==o)return"";const t=(e.$attr.options??[]).find(e=>n(e)===o);return void 0!==t?l(t):""},get filteredOptions(){const o=e.$attr.options??[],t=this.search?.toLowerCase();return t?o.filter(e=>l(e).toLowerCase().includes(t)):o},getLabel:l,getValue:n,isSelected:o=>n(o)===e.$attr.value,open(){o?.toggle(!0)},close(){o?.toggle(!1)},toggle(e){(void 0!==e?e:!this.isOpen)?this.open():this.close()},onToggle(o){const l=!!o.detail?.open;if(this.isOpen=l,l){const o=this.filteredOptions;this.hover=o.find(e=>this.isSelected(e))??o[0]??null,this.search="",e.$attr.noSearch||e.$ok.nextFrame(()=>{(r??e.$el.querySelector(".ok-select__search"))?.focus()})}else this.search="",t?.focus();e.$dispatch("toggle",o.detail)},select(o){e.$dispatch("change",n(o)),this.close()},onFaceKeydown(e){if("ArrowDown"===e.key||"ArrowUp"===e.key){if(e.preventDefault(),!this.isOpen)return void this.open();s(this,"ArrowDown"===e.key?1:-1)}else if("Enter"===e.key||" "===e.key){if(e.preventDefault(),!this.isOpen)return void this.open();null!==this.hover&&this.select(this.hover)}else"Escape"===e.key&&(e.preventDefault(),this.close())},onSearchKeydown(e){"ArrowDown"===e.key||"ArrowUp"===e.key?(e.preventDefault(),s(this,"ArrowDown"===e.key?1:-1)):"Enter"===e.key?(e.preventDefault(),null!==this.hover&&this.select(this.hover)):"Escape"===e.key&&(e.preventDefault(),this.close())},setDropdownEl(e){o=e},setFaceEl(e){t=e},setSearchEl(e){r=e}}},mount(e){e.$el.toggle=o=>e.$context.toggle(o),e.$el.open=()=>e.$context.open(),e.$el.close=()=>e.$context.close()},template:'<ok-dropdown no-keyboard no-caret :placement="$props.placement" @mount="setDropdownEl($el)" @toggle="onToggle($event)"><template name="trigger"><div class="ok-select__face" @mount="setFaceEl($el)" role="combobox" tabindex="0" :aria-expanded="isOpen" aria-haspopup="listbox" @keydown:allow="onFaceKeydown($event)"><span class="ok-select__display" :class="{ \'ok-select__display--empty\': !displayValue }">{{ displayValue || $props.placeholder }} </span><span class="ok-select__caret" aria-hidden="true"><svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></span></div></template><div class="ok-select__panel"><if :="!$props.noSearch"><div class="ok-select__search-wrap"><input class="ok-select__search" @mount="setSearchEl($el)" @unmounted="setSearchEl(null)" type="text" !value="search" @keydown:allow="onSearchKeydown($event)" autocomplete="off" placeholder="Search…"></div></if><div class="ok-select__options"><each :of="filteredOptions" let:option><div class="ok-select__option" role="option" :class="{ \'ok-select__option--selected\': isSelected(option),\n \'ok-select__option--hover\': hover === option }" @click="select(option)" @mouseenter="hover = option"><slot name="option" :var:option="option">{{ getLabel(option) }}</slot></div></each><if :="!filteredOptions.length"><div class="ok-select__empty"><slot name="empty">No results</slot></div></if></div></div></ok-dropdown>',style:"[tag]{display:inline-block;--ok-dropdown-trigger-display:flex;--ok-dropdown-trigger-padding:0;--ok-dropdown-trigger-border:none;--ok-dropdown-trigger-bg:transparent;--ok-dropdown-trigger-hover-bg:transparent;--ok-dropdown-trigger-active-bg:transparent;--ok-dropdown-trigger-gap:0}.ok-select__face{display:inline-flex;align-items:center;gap:var(--ok-select-trigger-gap, 0.35em);cursor:pointer;user-select:none;width:100%;min-width:var(--ok-select-width, 160px);justify-content:space-between;padding:var(--ok-select-padding, 0.35rem 0.6rem);border-radius:var(--ok-select-radius, var(--ok_radius, 4px));border:var(--ok-select-border, 1px solid color-mix(in srgb, currentColor 20%, transparent));background:var(--ok-select-bg, var(--ok_bg, #fff));color:inherit;font-size:inherit;font-family:inherit;outline-offset:0;transition:border-color .15s;box-sizing:border-box}.ok-select__face:hover{border-color:var(--ok-select-hover-border, color-mix(in srgb, currentColor 35%, transparent))}.ok-select__face:focus,[tag] .ok-dropdown--open .ok-select__face{border-color:var(--ok-select-focus-border, var(--ok_focus-ring, currentColor));outline:1px solid var(--ok-select-focus-border, var(--ok_focus_ring, currentColor))}.ok-select__display{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start}.ok-select__display--empty{color:var(--ok-select-placeholder-color, color-mix(in srgb, currentColor 40%, transparent))}.ok-select__caret{display:inline-flex;align-items:center;flex-shrink:0;line-height:0;color:color-mix(in srgb,currentColor 55%,transparent);transition:transform .2s ease}[tag] .ok-dropdown--open .ok-select__caret{transform:rotate(180deg)}.ok-select__panel{min-width:var(--ok-select-width, 160px)}.ok-select__search-wrap{padding:.35rem .4rem .3rem;border-bottom:1px solid color-mix(in srgb,currentColor 8%,transparent)}.ok-select__search{display:block;width:100%;box-sizing:border-box;border:1px solid color-mix(in srgb,currentColor 15%,transparent);border-radius:calc(var(--ok-select-radius, var(--ok_radius, 4px)) - 1px);padding:.25rem .45rem;font-size:inherit;font-family:inherit;background:var(--ok-select-search-bg, color-mix(in srgb, currentColor 4%, transparent));color:inherit;outline:0}.ok-select__search:focus{border-color:var(--ok-select-focus-border, var(--ok_focus_ring, currentColor));outline:1px solid var(--ok-select-focus-border, var(--ok_focus_ring, currentColor));outline-offset:0}.ok-select__options{max-height:var(--ok-select-panel-height, 220px);overflow-y:auto;padding:.2rem 0}.ok-select__option{padding:.4rem .75rem;cursor:pointer;font-size:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .1s}.ok-select__option--hover,.ok-select__option--selected.ok-select__option--hover{background:var(--ok-select-option-hover-bg, color-mix(in srgb, currentColor 8%, transparent))}.ok-select__option--selected{background:var(--ok-select-option-selected-bg, color-mix(in srgb, currentColor 10%, transparent));font-weight:500}.ok-select__empty{padding:.5rem .75rem;color:color-mix(in srgb,currentColor 45%,transparent);font-style:italic;font-size:.875em}[tag].block{display:block}[tag].block .ok-select__face,[tag].block .ok-select__panel{width:100%;min-width:0}",plugins:{theme:{expose:{"--ok-select-width":{default:"160px",type:"length",description:"Minimum width of the select control",category:"ok-select"},"--ok-select-bg":{default:"var(--ok_bg, #fff)",type:"color",description:"Select trigger background",category:"ok-select"},"--ok-select-panel-height":{default:"220px",type:"length",description:"Maximum height of the scrollable options list",category:"ok-select"},"--ok-select-option-selected-bg":{default:"color-mix(in srgb, currentColor 10%, transparent)",type:"color",description:"Background of the selected option",category:"ok-select"}}}}};export{o as default};
1
+ import e from"./ok-dropdown.ok.js";const o=t;function t(e,o){return e-=114,r()[e]}function r(){const e=["length","noSearch","preventDefault","$context","detail","ok-select","focus","toggle","$dispatch","20058620KNXjNi","function","6211656HIFSzw","optionText","ArrowDown","optionValue","39641QCZyOZ",'<ok-dropdown no-keyboard no-caret :placement="$props.placement" @mount="setDropdownEl($el)" @toggle="onToggle($event)"><template name="trigger"><div class="ok-select__face" @mount="setFaceEl($el)" role="combobox" tabindex="0" :aria-expanded="isOpen" aria-haspopup="listbox" @keydown:allow="onFaceKeydown($event)"><span class="ok-select__display" :class="{ \'ok-select__display--empty\': !displayValue }">{{ displayValue || $props.placeholder }} </span><span class="ok-select__caret" aria-hidden="true"><svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></span></div></template><div class="ok-select__panel"><if :="!$props.noSearch"><div class="ok-select__search-wrap"><input class="ok-select__search" @mount="setSearchEl($el)" @unmounted="setSearchEl(null)" type="text" !value="search" @keydown:allow="onSearchKeydown($event)" autocomplete="off" placeholder="Search…"></div></if><div class="ok-select__options"><each :of="filteredOptions" let:option><div class="ok-select__option" role="option" :class="{ \'ok-select__option--selected\': isSelected(option),\n \'ok-select__option--hover\': hover === option }" @click="select(option)" @mouseenter="hover = option"><slot name="option" :var:option="option">{{ getLabel(option) }}</slot></div></each><if :="!filteredOptions.length"><div class="ok-select__empty"><slot name="empty">No results</slot></div></if></div></div></ok-dropdown>',"toLowerCase","key","Escape","404531HExKuW","Enter","[tag]{display:inline-block;--ok-dropdown-trigger-display:flex;--ok-dropdown-trigger-padding:0;--ok-dropdown-trigger-border:none;--ok-dropdown-trigger-bg:transparent;--ok-dropdown-trigger-hover-bg:transparent;--ok-dropdown-trigger-active-bg:transparent;--ok-dropdown-trigger-gap:0}.ok-select__face{display:inline-flex;align-items:center;gap:var(--ok-select-trigger-gap, 0.35em);cursor:pointer;user-select:none;width:100%;min-width:var(--ok-select-width, 160px);justify-content:space-between;padding:var(--ok-select-padding, 0.35rem 0.6rem);border-radius:var(--ok-select-radius, var(--ok_radius, 4px));border:var(--ok-select-border, 1px solid color-mix(in srgb, currentColor 20%, transparent));background:var(--ok-select-bg, var(--ok_bg, #fff));color:inherit;font-size:inherit;font-family:inherit;outline-offset:0;transition:border-color .15s;box-sizing:border-box}.ok-select__face:hover{border-color:var(--ok-select-hover-border, color-mix(in srgb, currentColor 35%, transparent))}.ok-select__face:focus,[tag] .ok-dropdown--open .ok-select__face{border-color:var(--ok-select-focus-border, var(--ok_focus-ring, currentColor));outline:1px solid var(--ok-select-focus-border, var(--ok_focus_ring, currentColor))}.ok-select__display{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start}.ok-select__display--empty{color:var(--ok-select-placeholder-color, color-mix(in srgb, currentColor 40%, transparent))}.ok-select__caret{display:inline-flex;align-items:center;flex-shrink:0;line-height:0;color:color-mix(in srgb,currentColor 55%,transparent);transition:transform .2s ease}[tag] .ok-dropdown--open .ok-select__caret{transform:rotate(180deg)}.ok-select__panel{min-width:var(--ok-select-width, 160px)}.ok-select__search-wrap{padding:.35rem .4rem .3rem;border-bottom:1px solid color-mix(in srgb,currentColor 8%,transparent)}.ok-select__search{display:block;width:100%;box-sizing:border-box;border:1px solid color-mix(in srgb,currentColor 15%,transparent);border-radius:calc(var(--ok-select-radius, var(--ok_radius, 4px)) - 1px);padding:.25rem .45rem;font-size:inherit;font-family:inherit;background:var(--ok-select-search-bg, color-mix(in srgb, currentColor 4%, transparent));color:inherit;outline:0}.ok-select__search:focus{border-color:var(--ok-select-focus-border, var(--ok_focus_ring, currentColor));outline:1px solid var(--ok-select-focus-border, var(--ok_focus_ring, currentColor));outline-offset:0}.ok-select__options{max-height:var(--ok-select-panel-height, 220px);overflow-y:auto;padding:.2rem 0}.ok-select__option{padding:.4rem .75rem;cursor:pointer;font-size:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .1s}.ok-select__option--hover,.ok-select__option--selected.ok-select__option--hover{background:var(--ok-select-option-hover-bg, color-mix(in srgb, currentColor 8%, transparent))}.ok-select__option--selected{background:var(--ok-select-option-selected-bg, color-mix(in srgb, currentColor 10%, transparent));font-weight:500}.ok-select__empty{padding:.5rem .75rem;color:color-mix(in srgb,currentColor 45%,transparent);font-style:italic;font-size:.875em}[tag].block{display:block}[tag].block .ok-select__face,[tag].block .ok-select__panel{width:100%;min-width:0}","auto","hover","filter","$el","isSelected","color-mix(in srgb, currentColor 10%, transparent)","search","2893252rLEUGQ","54NwKWEI","267845TvSCpL","2790786FdwCPl","options","Maximum height of the scrollable options list","value","2rMFzpa","Background of the selected option","1256nONgAz","Select trigger background","ArrowUp","findIndex","isOpen","var(--ok_bg, #fff)","160px","open","close","select","color","find","$attr","220px","nextFrame","querySelector"];return(r=function(){return e})()}!function(){const e=t,o=r();for(;;)try{if(473604==parseInt(e(163))/1*(parseInt(e(125))/2)+-parseInt(e(121))/3+-parseInt(e(118))/4+-parseInt(e(120))/5*(parseInt(e(119))/6)+-parseInt(e(158))/7*(-parseInt(e(127))/8)+-parseInt(e(154))/9+parseInt(e(152))/10)break;o.push(o.shift())}catch(e){o.push(o.shift())}}();var n={tag:"ok-select",dependencies:[e],attr:{value:{default:null},options:{default:[]},optionText:{default:null},optionValue:{default:null},placeholder:{default:""},noSearch:{default:!1,empty:!0},placement:{default:o(166)}},context(e){let o=null,r=null,n=null;const s=o=>{const r=t;if(null==o)return"";const n=e.$attr[r(155)];return typeof n===r(153)?String(n(o)):String("string"==typeof n?o?.[n]??o:o)},l=o=>{const r=t;if(null==o)return null;const n=e.$attr[r(157)];return"function"==typeof n?n(o):"string"==typeof n?o?.[n]??o:o},i=(e,o)=>{const r=t,n=e.filteredOptions;if(!n[r(143)])return;const s=n[r(130)](o=>o===e.hover);e[r(167)]=1===o?n[(s+1)%n[r(143)]]:n[(n[r(143)]+s-1)%n.length]};return{isOpen:!1,search:"",hover:null,get displayValue(){const o=t,r=e[o(139)][o(124)];if(null==r)return"";const n=(e.$attr.options??[])[o(138)](e=>l(e)===r);return void 0!==n?s(n):""},get filteredOptions(){const o=t,r=e[o(139)][o(122)]??[],n=this.search?.[o(160)]();return n?r[o(168)](e=>s(e)[o(160)]().includes(n)):r},getLabel:s,getValue:l,isSelected(o){const r=t;return l(o)===e[r(139)][r(124)]},open(){o?.toggle(!0)},close(){const e=t;o?.[e(150)](!1)},toggle(e){const o=t;(void 0!==e?e:!this[o(131)])?this.open():this[o(135)]()},onToggle(o){const s=t,l=!!o[s(147)]?.open;if(this[s(131)]=l,l){const o=this.filteredOptions;this[s(167)]=o[s(138)](e=>this[s(115)](e))??o[0]??null,this[s(117)]="",!e[s(139)][s(144)]&&e.$ok[s(141)](()=>{const o=s;(n??e[o(114)][o(142)](".ok-select__search"))?.[o(149)]()})}else this[s(117)]="",r?.[s(149)]();e[s(151)](s(150),o[s(147)])},select(o){const r=t;e[r(151)]("change",l(o)),this[r(135)]()},onFaceKeydown(e){const o=t;if(e[o(161)]===o(156)||e[o(161)]===o(129)){if(e.preventDefault(),!this[o(131)])return void this[o(134)]();i(this,e.key===o(156)?1:-1)}else if(e[o(161)]===o(164)||" "===e[o(161)]){if(e[o(145)](),!this[o(131)])return void this[o(134)]();null!==this[o(167)]&&this.select(this.hover)}else"Escape"===e[o(161)]&&(e[o(145)](),this[o(135)]())},onSearchKeydown(e){const o=t;e[o(161)]===o(156)||e[o(161)]===o(129)?(e[o(145)](),i(this,e[o(161)]===o(156)?1:-1)):e[o(161)]===o(164)?(e[o(145)](),null!==this[o(167)]&&this[o(136)](this[o(167)])):e[o(161)]===o(162)&&(e[o(145)](),this[o(135)]())},setDropdownEl(e){o=e},setFaceEl(e){r=e},setSearchEl(e){n=e}}},mount(e){const t=o;e[t(114)].toggle=o=>e[t(146)][t(150)](o),e.$el[t(134)]=()=>e[t(146)][t(134)](),e[t(114)][t(135)]=()=>e[t(146)].close()},template:o(159),style:o(165),plugins:{theme:{expose:{"--ok-select-width":{default:o(133),type:o(143),description:"Minimum width of the select control",category:o(148)},"--ok-select-bg":{default:o(132),type:o(137),description:o(128),category:o(148)},"--ok-select-panel-height":{default:o(140),type:o(143),description:o(123),category:"ok-select"},"--ok-select-option-selected-bg":{default:o(116),type:"color",description:o(126),category:o(148)}}}}};export{n as default};
@@ -1 +1 @@
1
- function e(e){return{prop:e.prop??null,value:e.value??null,title:e.title??null,width:e.width??null,lock:!!e.lock,noResize:e.noResize??!1,headerTemplate:e.headerTemplate??c(),cellTemplate:e.cellTemplate??s(),source:e.source??"user",computedWidth:null,setWidth:null,_n:e._n??null,_hidden:e._hidden??null,_title:e._title??null}}function t(t,l){const n=[];for(const r of t)if(r?.auto){const t=o(l.$attr.data,{...r,...r.auto});for(const l of t)if("more"===l.source){const t=e(l);t._configEntry=r,n.push(t)}else n.push(e({...l,...r}))}else n.push(e(r));const r=n[n.length-1];return r&&"more"!==r.source&&(r.width="1fr"),n}function l(e){const t=document.createElement("template");return t.innerHTML=e,t}function o(e,{width:t="min-content",headerTemplate:o,cellTemplate:n,filter:r,map:a,sort:c,max:s=null,showMoreContent:i=null,showMoreTitle:d=null,_expanded:u=!1}){const m=new Set;for(const t of e)if(t&&"object"==typeof t)for(const e of Object.keys(t))m.add(e);let h=[];for(const e of m)r&&!r(e)||h.push({prop:e,width:t,computedWidth:null,noResize:!1,headerTemplate:o,cellTemplate:n,source:"auto"});if(a&&(h=h.map(e=>({...e,...a(e)}))),c&&(h=h.sort(c)),s&&!u&&h.length>s){const e=h.slice(s),t=e.length,o="function"==typeof i?String(i(t,e)):i??`+${t}`,n="function"==typeof d?String(d(t,e)):d;h=h.slice(0,s),h.push({prop:null,value:null,title:null,width:"min-content",computedWidth:null,noResize:!0,headerTemplate:l(o),cellTemplate:null,source:"more",_n:t,_hidden:e,_title:n})}return h}function n(e){if(!e)return null;const t=document.createElement("template");t.content.append(...e.childNodes);for(const l of e.attributes)l.name.startsWith("let:")&&t.setAttribute(l.name,l.value);return t}function r(e,t){const l=e.getAttribute("width")||"min-content",o=e.hasAttribute("max")?parseInt(e.getAttribute("max"),10):null,r=Array.from(e.children).find(e=>"HEADER"===e.tagName),a=Array.from(e.children).find(e=>"CELL"===e.tagName);let c=null;e.getAttribute(":filter")&&(c=t.$fn(e.getAttribute(":filter"))(t));let s=null;e.getAttribute(":sort")&&(s=t.$fn(e.getAttribute(":sort"))(t));let i=null;e.getAttribute(":map")&&(i=t.$fn(e.getAttribute(":map"))(t));let d=e.getAttribute("show-more-content");e.getAttribute(":show-more-content")&&(d=t.$fn(e.getAttribute(":show-more-content"))(t));let u=e.getAttribute("show-more-title");return e.getAttribute(":show-more-title")&&(u=t.$fn(e.getAttribute(":show-more-title"))(t)),{auto:{filter:c,sort:s,map:i},cellTemplate:n(a),headerTemplate:n(r),width:l,max:o,showMoreContent:d,showMoreTitle:u,columnEl:e}}function a(e,t){const l=e.getAttribute("prop")||null,o=Array.from(e.children).find(e=>"HEADER"===e.tagName),r=Array.from(e.children).find(e=>"CELL"===e.tagName);return{width:e.getAttribute("width")||"1fr",noResize:e.hasAttribute("no-resize"),prop:l,headerTemplate:n(o),cellTemplate:n(r),columnEl:e}}function c(e){const t=document.createElement("template");return t.setAttribute("let:column","column"),t.innerHTML="{{ column.title || column.prop || '' }}",t}function s(e){const t=document.createElement("template");return t.setAttribute("let:row","row"),t.setAttribute("let:column","column"),t.setAttribute("let:value","value"),t.innerHTML="{{ value || '' }}",t}var i={tag:"ok-table",attr:{data:{default:[]},columns:{default:null},expand:{default:"multi"},select:{default:"none"},selected:{default:null},expanded:{default:null}},plugins:{theme:{expose:{"--ok-table_bg":{type:"color",description:"Table background",category:"Colors"},"--ok-table_header-bg":{type:"color",description:"Header background",category:"Colors"},"--ok-table_color":{type:"color",description:"Text color",category:"Colors"},"--ok-table_hover-bg":{default:"color-mix(in srgb, var(--ok_color-accent-fg) 20%, transparent)",type:"color",description:"Row hover background",category:"Colors"},"--ok-table_selected-bg":{default:"color-mix(in srgb, var(--ok_color-accent-fg, #007bff) 25%, transparent)",type:"color",description:"Selected row background",category:"Colors"},"--ok-table_border":{type:"border",description:"Cell border",category:"Layout"},"--ok-table_padding":{type:"length",description:"Cell padding",category:"Layout"},"--ok-table_font":{type:"string",description:"Table font",category:"Typography"}}}},context(e){const l=e.$cache.cmp.templates.default;var n;e.$attr.columns&&(n=l,Array.from(n?.content?.children||[]).find(e=>"COLUMNS"===e.tagName||"AUTO"===e.tagName||"COLUMN"===e.tagName));const c=e.$attr.columns||function(e,t){const l=Array.from(e?.content?.children||[]).find(e=>"COLUMNS"===e.tagName),n=[];if(!l)return o(t.$attr.data,{});for(const e of l.children)"AUTO"===e.tagName?n.push(r(e,t)):"COLUMN"===e.tagName&&n.push(a(e));return n}(l,e);c.length||c.push({auto:!0});const s=t(c,e),i=Array.from(l?.content.children??[]).find(e=>"EXPANDED"===e.tagName);if(i){const t=document.createElement("template");t.content.append(...i.childNodes);for(const e of i.attributes)e.name.startsWith("let:")&&t.setAttribute(e.name,e.value);e.$cache.cmp.templates.expanded=t}return{get expand(){return e.$attr.expand||"multi"},get select(){return e.$attr.select||"none"},get canSelect(){return"none"!==this.select},_expandedRows:new Set,_selectedRows:new Set,get expandedRows(){return e.$attr.expanded??this._expandedRows},get selectedRows(){return e.$attr.selected??this._selectedRows},columnsConfig:c,columns:s,valueOf:(e,t)=>t.value?t.value(e):t.prop?e[t.prop]:void 0,showMore(l){l._configEntry._expanded=!0,this.columns=t(this.columnsConfig,e)},get columnStyle(){if(!this.columns.length)return"1fr";const e=this.columns.map(e=>`minmax(0, ${e.setWidth||e.computedWidth||e.width||"1fr"})`),t=e.length-1;return e[t]=`minmax(${this.columns[t].setWidth||0}, auto)`,e.join(" ")},get rows(){return e.$attr.data},resizeColumn:null,expandedRow:null,hoverRow:null,get canExpand(){return e.$cache.cmp.templates.expanded},wasExpanded(e){return this.expandedRows.has(e)},toggleExpand(t,l=null){if(!this.canExpand)return;const o=this.expandedRows.has(t),n=null===l?!o:!!l;"single"===this.expand&&this.expandedRows.clear(),n?this.expandedRows.add(t):this.expandedRows.delete(t),e.$dispatch("expand-change",{expanded:this.expandedRows,row:t,action:n?"expand":"collapse"})},isSelected(e){return this.selectedRows.has(e)},toggleSelect(t,l=null){if(!this.canSelect)return;const o=this.selectedRows.has(t),n=null===l?!o:!!l;"single"===this.select&&this.selectedRows.clear(),n?this.selectedRows.add(t):this.selectedRows.delete(t),e.$dispatch("select-change",{selected:this.selectedRows,row:t,action:n?"select":"deselect"})},handleRowClick(e){this.toggleExpand(e),this.canSelect&&this.toggleSelect(e)},resize(t,l){l.preventDefault(),this.resizeColumn=t,e.$el.getBoundingClientRect();const o=e.$el.querySelectorAll(".ok-table__cell--header")[this.columns.indexOf(t)],n=l.clientX,r=o.offsetWidth;if(!t.computedWidth){const t=e.$el.querySelectorAll(".ok-table__cell--header");this.columns.forEach((e,l)=>{if(!e.computedWidth){const o=t[l];o&&(e.computedWidth=`${o.offsetWidth}px`)}})}const a=e=>{const l=e.clientX-n,o=r+l;t.setWidth=`${o}px`},c=()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",c),this.resizeColumn=null};document.addEventListener("mousemove",a),document.addEventListener("mouseup",c)}}},mounted(e){e.$watch(()=>e.$attr.data?.length,()=>{this.columns=t(this.columnsConfig,e)}),e.$el.select=(e,t)=>this.toggleSelect(e,t??!0),e.$el.deselect=e=>this.toggleSelect(e,!1),e.$el.toggleSelect=(e,t)=>this.toggleSelect(e,t??null),e.$el.clearSelection=()=>this.selectedRows.clear(),e.$el.getSelected=()=>this.selectedRows,e.$el.expand=(e,t)=>this.toggleExpand(e,t??!0),e.$el.collapse=e=>this.toggleExpand(e,!1),e.$el.toggleExpand=(e,t)=>this.toggleExpand(e,t??null),e.$el.clearExpanded=()=>this.expandedRows.clear(),e.$el.getExpanded=()=>this.expandedRows},mount(e){e.$cache.start=performance.now()},init(e){},template:'<div class="ok-table__container" :style="{ gridTemplateColumns: columnStyle }"><each :of="columns" let:item="column" let:index="columnIndex"><div class="ok-table__column ok-table__column--header"><if :="column.source === \'more\'"><div class="ok-table__cell ok-table__cell--header ok-table__cell--show-more" :title="column._title" @click="showMore(column)"><div class="ok-table__cell__inner"><slot :template="column.headerTemplate" :var:column="column"/></div></div><else><div class="ok-table__cell ok-table__cell--header"><div class="ok-table__cell__inner"><slot :template="column.headerTemplate" :var:column="column"/></div></div><if :="!column.noResize"><div class="ok-table__resizer ok-table__resizer--header" :class="{\'ok-table__resizer--resizing\': resizeColumn === column}" @mousedown="resize(column, $event)"/></if></else></if></div></each><each :of="rows" let:item="row" let:index="rowIndex"><each :of="columns" let:item="column" let:index="columnIndex"><if :="column.source === \'more\'"><div class="ok-table__cell ok-table__cell--data ok-table__cell--show-more"/><else><div class="ok-table__cell ok-table__cell--data" :class="{\n \'ok-table__cell--hover-row\': hoverRow === row,\n \'ok-table__cell--expanded\': expandedRows.has(row),\n \'ok-table__cell--selected\': selectedRows.has(row),\n \'ok-table__cell--start\': columnIndex === 0,\n \'ok-table__cell--end\': columnIndex === columns.length - 1\n }" @click="handleRowClick(row)" @mouseenter="hoverRow = row" @mouseleave="hoverRow = hoverRow === row ? null : hoverRow"><div class="ok-table__cell__inner"><slot :template="column.cellTemplate" :var:row="row" :var:column="column" :var:index="rowIndex" :var:value="valueOf(row, column)"/></div><if :="!column.noResize"><div class="ok-table__resizer ok-table__resizer--cell" :class="{ \'ok-table__resizer--resizing\': resizeColumn === column}" @mousedown="resize(column, $event)"/></if></div></else></if></each><if :="canExpand && wasExpanded(row)"><div class="ok-table__expanded_row"><slot name="expanded" :var:row="row" :var:index="rowIndex"/></div></if></each></div>',style:"[tag]{display:block;overflow:auto;max-width:100%}.ok-table__container{display:grid;grid-template-rows:auto;grid-auto-rows:auto;font-family:var(--ok-table-font);width:max-content;min-width:-webkit-fill-available}.ok-table__column--header{position:sticky;top:0;z-index:1}.ok-table__cell{color:var(--ok-table_color);border-bottom:var(--ok-table_border);white-space:nowrap;align-items:center;position:relative;background:var(--ok-table_bg);overflow:hidden;height:100%;box-sizing:border-box}.ok-table__cell__inner{padding:var(--ok-table_padding, 0.1rem 1rem);text-overflow:ellipsis;overflow:hidden}.ok-table__cell--header{font-weight:700;background:var(--ok-table_header-bg, var(--ok_bg-accent, rgba(0, 123, 255, 0.05)));border-bottom:var(--ok-table_border)}.ok-table__cell--hover-row{background:var(--ok-table_hover-bg, rgba(0, 123, 255, 0.1))}.ok-table__cell--selected{background:var(--ok-table_selected-bg, color-mix(in srgb, var(--ok_color-accent-fg, #007bff) 25%, transparent))}.ok-table__cell--expanded,.ok-table__cell--header.ok-table__cell--show-more:hover{background:var(--ok-table_hover-bg, rgba(0, 123, 255, 0.1))}.ok-table__cell--start{border-left:var(--ok-table_border)}.ok-table__cell--end{border-right:var(--ok-table_border)}.ok-table__resizer{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:col-resize;z-index:10}.ok-table__resizer--resizing,.ok-table__resizer:hover{background:var(--ok_bg-accent-hover, rgba(0, 123, 255, 0.3))}.ok-table__expanded_row{grid-column:1/-1;contain:inline-size}.ok-table__cell--header.ok-table__cell--show-more{cursor:pointer;user-select:none;opacity:.7}.ok-table__cell--header.ok-table__cell--show-more:hover{opacity:1}.ok-table__cell--data.ok-table__cell--show-more{pointer-events:none}"};export{i as default};
1
+ function e(e,t){return e-=478,a()[e]}const t=e;function o(t){const o=e;return{prop:t.prop??null,value:t[o(541)]??null,title:t.title??null,width:t[o(540)]??null,lock:!!t.lock,noResize:t[o(532)]??!1,headerTemplate:t[o(500)]??d(),cellTemplate:t[o(491)]??u(),source:t[o(539)]??"user",computedWidth:null,setWidth:null,_n:t._n??null,_hidden:t[o(574)]??null,_title:t[o(573)]??null}}function l(t,l){const n=e,a=[];for(const e of t)if(e?.[n(613)]){const t=r(l[n(484)][n(548)],{...e,...e[n(613)]});for(const l of t)if(l[n(539)]===n(508)){const t=o(l);t[n(604)]=e,a[n(597)](t)}else a[n(597)](o({...l,...e}))}else a[n(597)](o(e));const c=a[a.length-1];return c&&c[n(539)]!==n(508)&&(c[n(540)]=n(588)),a}function n(t){const o=e,l=document[o(549)](o(525));return l[o(493)]=t,l}function r(e,{width:o=t(502),headerTemplate:l,cellTemplate:r,filter:a,map:c,sort:s,max:i=null,showMoreContent:d=null,showMoreTitle:u=null,_expanded:m=!1}){const h=t,p=new Set;for(const t of e)if(t&&typeof t===h(551))for(const e of Object[h(538)](t))p[h(569)](e);let _=[];for(const e of p)a&&!a(e)||_.push({prop:e,width:o,computedWidth:null,noResize:!1,headerTemplate:l,cellTemplate:r,source:"auto"});if(c&&(_=_[h(545)](e=>({...e,...c(e)}))),s&&(_=_[h(481)](s)),i&&!m&&_[h(517)]>i){const e=_[h(480)](i),t=e[h(517)],o=typeof d===h(584)?String(d(t,e)):d??"+"+t,l=typeof u===h(584)?String(u(t,e)):u;_=_[h(480)](0,i),_[h(597)]({prop:null,value:null,title:null,width:"min-content",computedWidth:null,noResize:!0,headerTemplate:n(o),cellTemplate:null,source:h(508),_n:t,_hidden:e,_title:l})}return _}function a(){const e=["slice","sort","columns","toggleExpand","$attr","color-mix(in srgb, var(--ok_color-accent-fg, #007bff) 25%, transparent)","$fn",":sort","border","Text color","selectedRows","cellTemplate","children","innerHTML","attributes","let:column","from","startsWith","show-more-title","none","headerTemplate","70mqlkwL","min-content","mousemove","log","mouseup","minmax(","502183wgjQDQ","more","prop","templates","max","Colors",":filter","16554540YnLDjX","select","216YgUbii","length","_expanded","offsetWidth",".ok-table__cell--header","$watch","collapse","24OJHDJS","preventDefault","template","delete","cmp","name","{{ column.title || column.prop || '' }}","expandedRows","COLUMNS","noResize","content",'<div class="ok-table__container" :style="{ gridTemplateColumns: columnStyle }"><each :of="columns" let:item="column" let:index="columnIndex"><div class="ok-table__column ok-table__column--header"><if :="column.source === \'more\'"><div class="ok-table__cell ok-table__cell--header ok-table__cell--show-more" :title="column._title" @click="showMore(column)"><div class="ok-table__cell__inner"><slot :template="column.headerTemplate" :var:column="column"/></div></div><else><div class="ok-table__cell ok-table__cell--header"><div class="ok-table__cell__inner"><slot :template="column.headerTemplate" :var:column="column"/></div></div><if :="!column.noResize"><div class="ok-table__resizer ok-table__resizer--header" :class="{\'ok-table__resizer--resizing\': resizeColumn === column}" @mousedown="resize(column, $event)"/></if></else></if></div></each><each :of="rows" let:item="row" let:index="rowIndex"><each :of="columns" let:item="column" let:index="columnIndex"><if :="column.source === \'more\'"><div class="ok-table__cell ok-table__cell--data ok-table__cell--show-more"/><else><div class="ok-table__cell ok-table__cell--data" :class="{\n \'ok-table__cell--hover-row\': hoverRow === row,\n \'ok-table__cell--expanded\': expandedRows.has(row),\n \'ok-table__cell--selected\': selectedRows.has(row),\n \'ok-table__cell--start\': columnIndex === 0,\n \'ok-table__cell--end\': columnIndex === columns.length - 1\n }" @click="handleRowClick(row)" @mouseenter="hoverRow = row" @mouseleave="hoverRow = hoverRow === row ? null : hoverRow"><div class="ok-table__cell__inner"><slot :template="column.cellTemplate" :var:row="row" :var:column="column" :var:index="rowIndex" :var:value="valueOf(row, column)"/></div><if :="!column.noResize"><div class="ok-table__resizer ok-table__resizer--cell" :class="{ \'ok-table__resizer--resizing\': resizeColumn === column}" @mousedown="resize(column, $event)"/></if></div></else></if></each><if :="canExpand && wasExpanded(row)"><div class="ok-table__expanded_row"><slot name="expanded" :var:row="row" :var:index="rowIndex"/></div></if></each></div>',"find","removeEventListener",'ok-table: Both "columns" attribute and <columns> definition found. The "columns" attribute will take precedence.',"keys","source","width","value","tagName","indexOf","single","map","color",":show-more-title","data","createElement","append","object","_expandedRows","255480UMLMGU","clearExpanded","EXPANDED","show-more-content","$cache","getBoundingClientRect","has","hasAttribute","warn","column","getSelected","resizeColumn","Cell padding","5257348drcqPa","$el","toggleSelect","add","default","start",'ok-table: When "prop" is defined on <column>, <header> and <cell> will be ignored. Use "header-template" and "cell-template" attributes instead.',"_title","_hidden","CELL",":map","COLUMN","let:","computedWidth","childNodes","string","expand-change","$dispatch","function","multi","AUTO","canExpand","1fr","getExpanded","expand","getAttribute","select-change","no-resize","15210DjkVzb","HEADER","302424OlGVkN","push","let:row","5RCznuW","selected","Cell border","Header background","clear","_configEntry","let:value","{{ value || '' }}","Selected row background","now","setWidth","setAttribute","clientX","Layout","auto","Table background","Table font","[tag]{display:block;overflow:auto;max-width:100%}.ok-table__container{display:grid;grid-template-rows:auto;grid-auto-rows:auto;font-family:var(--ok-table-font);width:max-content;min-width:-webkit-fill-available}.ok-table__column--header{position:sticky;top:0;z-index:1}.ok-table__cell{color:var(--ok-table_color);border-bottom:var(--ok-table_border);white-space:nowrap;align-items:center;position:relative;background:var(--ok-table_bg);overflow:hidden;height:100%;box-sizing:border-box}.ok-table__cell__inner{padding:var(--ok-table_padding, 0.1rem 1rem);text-overflow:ellipsis;overflow:hidden}.ok-table__cell--header{font-weight:700;background:var(--ok-table_header-bg, var(--ok_bg-accent, rgba(0, 123, 255, 0.05)));border-bottom:var(--ok-table_border)}.ok-table__cell--hover-row{background:var(--ok-table_hover-bg, rgba(0, 123, 255, 0.1))}.ok-table__cell--selected{background:var(--ok-table_selected-bg, color-mix(in srgb, var(--ok_color-accent-fg, #007bff) 25%, transparent))}.ok-table__cell--expanded,.ok-table__cell--header.ok-table__cell--show-more:hover{background:var(--ok-table_hover-bg, rgba(0, 123, 255, 0.1))}.ok-table__cell--start{border-left:var(--ok-table_border)}.ok-table__cell--end{border-right:var(--ok-table_border)}.ok-table__resizer{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:col-resize;z-index:10}.ok-table__resizer--resizing,.ok-table__resizer:hover{background:var(--ok_bg-accent-hover, rgba(0, 123, 255, 0.3))}.ok-table__expanded_row{grid-column:1/-1;contain:inline-size}.ok-table__cell--header.ok-table__cell--show-more{cursor:pointer;user-select:none;opacity:.7}.ok-table__cell--header.ok-table__cell--show-more:hover{opacity:1}.ok-table__cell--data.ok-table__cell--show-more{pointer-events:none}","2486813GTPvnK",":show-more-content","64APAtvk","expanded","minmax(0, "];return(a=function(){return e})()}function c(e){const o=t;if(!e)return null;const l=document[o(549)](o(525));l[o(533)][o(550)](...e[o(580)]);for(const t of e[o(494)])t.name[o(497)](o(578))&&l[o(610)](t[o(528)],t.value);return l}function s(e,o){const l=t,n=e.getAttribute(l(540))||l(502),r=e[l(560)](l(511))?parseInt(e[l(591)](l(511)),10):null,a=Array[l(496)](e[l(492)])[l(535)](e=>e[l(542)]===l(595)),s=Array[l(496)](e[l(492)])[l(535)](e=>e[l(542)]===l(575));let i=null;e.getAttribute(l(513))&&(i=o[l(486)](e[l(591)](l(513)))(o));let d=null;e[l(591)](":sort")&&(d=o[l(486)](e[l(591)](l(487)))(o));let u=null;e.getAttribute(":map")&&(u=o[l(486)](e.getAttribute(l(576)))(o));let m=e[l(591)](l(556));e[l(591)](l(618))&&(m=o.$fn(e.getAttribute(l(618)))(o));let h=e.getAttribute(l(498));return e.getAttribute(l(547))&&(h=o[l(486)](e[l(591)](l(547)))(o)),{auto:{filter:i,sort:d,map:u},cellTemplate:c(s),headerTemplate:c(a),width:n,max:r,showMoreContent:m,showMoreTitle:h,columnEl:e}}function i(e,o){const l=t,n=e[l(591)](l(509))||null,r=Array.from(e[l(492)])[l(535)](e=>e.tagName===l(595)),a=Array[l(496)](e[l(492)])[l(535)](e=>e[l(542)]===l(575));return{width:e[l(591)]("width")||l(588),noResize:e[l(560)](l(593)),prop:n,headerTemplate:c(r),cellTemplate:c(a),columnEl:e}}function d(e){const o=t,l=document[o(549)](o(525));return l[o(610)](o(495),o(562)),l[o(493)]=o(529),l}function u(e){const o=t,l=document[o(549)](o(525));return l[o(610)](o(598),"row"),l.setAttribute(o(495),"column"),l.setAttribute(o(605),o(541)),l.innerHTML=o(606),l}!function(){const t=e,o=a();for(;;)try{if(991783==parseInt(t(553))/1+-parseInt(t(619))/2*(parseInt(t(594))/3)+parseInt(t(566))/4*(-parseInt(t(599))/5)+parseInt(t(523))/6*(parseInt(t(617))/7)+-parseInt(t(596))/8*(parseInt(t(516))/9)+parseInt(t(501))/10*(parseInt(t(507))/11)+parseInt(t(514))/12)break;o.push(o.shift())}catch(e){o.push(o.shift())}}();var m={tag:"ok-table",attr:{data:{default:[]},columns:{default:null},expand:{default:"multi"},select:{default:t(499)},selected:{default:null},expanded:{default:null}},plugins:{theme:{expose:{"--ok-table_bg":{type:t(546),description:t(614),category:"Colors"},"--ok-table_header-bg":{type:t(546),description:t(602),category:t(512)},"--ok-table_color":{type:t(546),description:t(489),category:"Colors"},"--ok-table_hover-bg":{default:"color-mix(in srgb, var(--ok_color-accent-fg) 20%, transparent)",type:t(546),description:"Row hover background",category:"Colors"},"--ok-table_selected-bg":{default:t(485),type:"color",description:t(607),category:t(512)},"--ok-table_border":{type:t(488),description:t(601),category:t(612)},"--ok-table_padding":{type:"length",description:t(565),category:"Layout"},"--ok-table_font":{type:t(581),description:t(615),category:"Typography"}}}},context(e){const o=t,n=e[o(557)].cmp[o(510)][o(570)];e[o(484)][o(482)]&&function(e){const o=t;Array.from(e?.content?.children||[])[o(535)](e=>e.tagName===o(531)||e[o(542)]===o(586)||e[o(542)]===o(577))}(n);const a=e[o(484)][o(482)]||function(e,o){const l=t,n=Array.from(e?.[l(533)]?.children||[])[l(535)](e=>"COLUMNS"===e[l(542)]),a=[];if(!n)return r(o[l(484)][l(548)],{});for(const e of n[l(492)])"AUTO"===e[l(542)]?a[l(597)](s(e,o)):e[l(542)]===l(577)&&a[l(597)](i(e));return a}(n,e);!a[o(517)]&&a[o(597)]({auto:!0});const c=l(a,e),d=Array[o(496)](n?.[o(533)][o(492)]??[])[o(535)](e=>e.tagName===o(555));if(d){const t=document[o(549)](o(525));t[o(533)][o(550)](...d[o(580)]);for(const e of d[o(494)])e.name[o(497)](o(578))&&t.setAttribute(e[o(528)],e[o(541)]);e[o(557)][o(527)].templates[o(478)]=t}return{get expand(){const t=o;return e.$attr[t(590)]||t(585)},get select(){const t=o;return e[t(484)][t(515)]||t(499)},get canSelect(){const e=o;return this[e(515)]!==e(499)},_expandedRows:new Set,_selectedRows:new Set,get expandedRows(){const t=o;return e[t(484)][t(478)]??this[t(552)]},get selectedRows(){const t=o;return e[t(484)][t(600)]??this._selectedRows},columnsConfig:a,columns:c,valueOf(e,t){const l=o;return t[l(541)]?t[l(541)](e):t[l(509)]?e[t[l(509)]]:void 0},showMore(t){const n=o;t[n(604)][n(518)]=!0,this[n(482)]=l(this.columnsConfig,e)},get columnStyle(){const e=o;if(!this[e(482)].length)return"1fr";const t=this[e(482)][e(545)](t=>e(479)+(t[e(609)]||t.computedWidth||t[e(540)]||e(588))+")"),l=t[e(517)]-1;return t[l]=e(506)+(this[e(482)][l][e(609)]||0)+", auto)",t.join(" ")},get rows(){const t=o;return e[t(484)][t(548)]},resizeColumn:null,expandedRow:null,hoverRow:null,get canExpand(){const t=o;return e.$cache[t(527)][t(510)][t(478)]},wasExpanded(e){const t=o;return this[t(530)][t(559)](e)},toggleExpand(t,l=null){const n=o;if(!this[n(587)])return;const r=this[n(530)][n(559)](t),a=null===l?!r:!!l;this[n(590)]===n(544)&&this[n(530)].clear(),a?this[n(530)][n(569)](t):this[n(530)][n(526)](t),e[n(583)](n(582),{expanded:this[n(530)],row:t,action:a?"expand":"collapse"})},isSelected(e){const t=o;return this[t(490)][t(559)](e)},toggleSelect(t,l=null){const n=o;if(!this.canSelect)return;const r=this[n(490)][n(559)](t),a=null===l?!r:!!l;this[n(515)]===n(544)&&this[n(490)][n(603)](),a?this[n(490)][n(569)](t):this[n(490)][n(526)](t),e[n(583)](n(592),{selected:this[n(490)],row:t,action:a?n(515):"deselect"})},handleRowClick(e){const t=o;this[t(483)](e),this.canSelect&&this[t(568)](e)},resize(t,l){const n=o;l[n(524)](),this[n(564)]=t,e.$el[n(558)]();const r=e.$el.querySelectorAll(".ok-table__cell--header")[this.columns[n(543)](t)],a=l[n(611)],c=r[n(519)];if(!t[n(579)]){const t=e[n(567)].querySelectorAll(n(520));this.columns.forEach((e,o)=>{const l=n;if(!e.computedWidth){const n=t[o];n&&(e[l(579)]=n.offsetWidth+"px")}})}const s=e=>{const o=e[n(611)]-a,l=c+o;t.setWidth=l+"px"},i=()=>{document[n(536)]("mousemove",s),document.removeEventListener("mouseup",i),this.resizeColumn=null};document.addEventListener(n(503),s),document.addEventListener(n(505),i)}}},mounted(e){const o=t;e[o(521)](()=>e.$attr.data?.[o(517)],()=>{this[o(482)]=l(this.columnsConfig,e)}),e[o(567)].select=(e,t)=>this[o(568)](e,t??!0),e[o(567)].deselect=e=>this[o(568)](e,!1),e.$el[o(568)]=(e,t)=>this[o(568)](e,t??null),e.$el.clearSelection=()=>this.selectedRows[o(603)](),e[o(567)][o(563)]=()=>this[o(490)],e[o(567)][o(590)]=(e,t)=>this.toggleExpand(e,t??!0),e[o(567)][o(522)]=e=>this[o(483)](e,!1),e[o(567)][o(483)]=(e,t)=>this.toggleExpand(e,t??null),e[o(567)][o(554)]=()=>this[o(530)][o(603)](),e[o(567)][o(589)]=()=>this[o(530)]},mount(e){const o=t;e[o(557)][o(571)]=performance[o(608)]()},init(e){},template:t(534),style:t(616)};export{m as default};
@@ -1 +1 @@
1
- var r={tag:"ok-crash-boundary",register(r){"dev"!==r.config.env||r.config.crash.boundary_component||(r.config.crash.boundary_component="ok-crash-boundary")},template:"<div><strong>Component Error</strong><pre>{{ $props.error?.rootCauseMessage || $props.error?.message || 'Something went wrong' }}</pre><button @click=\"$props.retry()\">Retry</button></div>",plugins:{theme:{expose:{"--ok-crash-boundary__bg":{default:"var(--ok-theme_color-error-bg, #2b0000)",type:"color",category:"Crash"},"--ok-crash-boundary_color":{default:"var(--ok-theme_color-error, #ffcfcf)",type:"color",category:"Crash"},"--ok-crash-boundary_border":{default:"1px solid var(--ok-theme_color-error-border, #ff4c4c)",type:"border",category:"Crash"},"--ok-crash-boundary_radius":{default:"var(--ok-theme_radius, 6px)",type:"length",category:"Crash"},"--ok-crash-boundary_font":{default:"monospace",type:"string",category:"Crash"},"--ok-crash-boundary_padding":{default:"var(--ok-theme_padding, 1em)",type:"length",category:"Crash"},"--ok-crash-boundary_button-bg":{default:"#440000",type:"color",category:"Crash"},"--ok-crash-boundary_button-color":{default:"var(--ok-bg, white)",type:"color",category:"Crash"},"--ok-crash-boundary_button-border":{default:"1px solid var(--ok-theme_border-color, #cc0000)",type:"border",category:"Crash"}}}},style:"[tag]{display:block;padding:var(--ok-crash-boundary_padding, 1em);background:var(--ok-crash-boundary_bg, #2b0000);color:var(--ok-crash-boundary_color, #ffcfcf);border:var(--ok-crash-boundary_border, 1px solid #ff4c4c);border-radius:var(--ok-crash-boundary_radius, 6px);font-family:var(--ok-crash-boundary_font, monospace)}[tag] button{margin-top:1em;background:var(--ok-crash-boundary_button-bg, #440000);color:var(--ok-crash-boundary_button-color, white);border:var(--ok-crash-boundary_button-border, 1px solid #cc0000);padding:.5em 1em;cursor:pointer}"};export{r as default};
1
+ function r(){var o=["dev","ok-crash-boundary","var(--ok-theme_color-error, #ffcfcf)","117546CbLExb","crash","1px solid var(--ok-theme_border-color, #cc0000)","var(--ok-bg, white)","28055ZKWtIa","color","string","Crash","env","boundary_component","border","29313tCvNVH","[tag]{display:block;padding:var(--ok-crash-boundary_padding, 1em);background:var(--ok-crash-boundary_bg, #2b0000);color:var(--ok-crash-boundary_color, #ffcfcf);border:var(--ok-crash-boundary_border, 1px solid #ff4c4c);border-radius:var(--ok-crash-boundary_radius, 6px);font-family:var(--ok-crash-boundary_font, monospace)}[tag] button{margin-top:1em;background:var(--ok-crash-boundary_button-bg, #440000);color:var(--ok-crash-boundary_button-color, white);border:var(--ok-crash-boundary_button-border, 1px solid #cc0000);padding:.5em 1em;cursor:pointer}","1692771DYHNoD","9513hEGPfj","var(--ok-theme_padding, 1em)","804zdCyxo","config","1030AKhskj","length","2456NbgvwN","22knsFDx","99860hHImmD","27616qdMitF","162pIKzoM","<div><strong>Component Error</strong><pre>{{ $props.error?.rootCauseMessage || $props.error?.message || 'Something went wrong' }}</pre><button @click=\"$props.retry()\">Retry</button></div>"];return(r=function(){return o})()}function o(o,a){return o-=424,r()[o]}var a=o;!function(){for(var a=o,e=r();;)try{if(357532==parseInt(a(438))/1*(-parseInt(a(426))/2)+parseInt(a(447))/3+parseInt(a(428))/4+-parseInt(a(427))/5*(parseInt(a(429))/6)+-parseInt(a(448))/7*(parseInt(a(425))/8)+-parseInt(a(445))/9*(-parseInt(a(452))/10)+-parseInt(a(434))/11*(-parseInt(a(450))/12))break;e.push(e.shift())}catch(r){e.push(e.shift())}}();var e={tag:a(432),register(r){var o=a;r.config[o(442)]===o(431)&&!r[o(451)][o(435)][o(443)]&&(r.config[o(435)].boundary_component=o(432))},template:a(430),plugins:{theme:{expose:{"--ok-crash-boundary__bg":{default:"var(--ok-theme_color-error-bg, #2b0000)",type:a(439),category:"Crash"},"--ok-crash-boundary_color":{default:a(433),type:a(439),category:"Crash"},"--ok-crash-boundary_border":{default:"1px solid var(--ok-theme_color-error-border, #ff4c4c)",type:a(444),category:a(441)},"--ok-crash-boundary_radius":{default:"var(--ok-theme_radius, 6px)",type:"length",category:a(441)},"--ok-crash-boundary_font":{default:"monospace",type:a(440),category:a(441)},"--ok-crash-boundary_padding":{default:a(449),type:a(424),category:a(441)},"--ok-crash-boundary_button-bg":{default:"#440000",type:a(439),category:"Crash"},"--ok-crash-boundary_button-color":{default:a(437),type:a(439),category:a(441)},"--ok-crash-boundary_button-border":{default:a(436),type:a(444),category:a(441)}}}},style:a(446)};export{e as default};
@@ -1 +1 @@
1
- import e from"../devtools/ok-js-tree.ok.js";var r={tag:"ok-crash-info",lazy:!0,dependencies:[e],attr:{noClose:{default:!1,empty:!0},error:{}},register(e){"dev"!==e.config.env||e.config.crash.component||(e.config.crash.component="ok-crash-info")},context:e=>(e.$attr.level||e.$el.classList.toggle("root"),{get error(){return"string"==typeof e.$attr.error?{message:e.$attr.error}:e.$attr.error||{}},get level(){return e.$attr.level||0},get node(){return this.error.node||this.error.scope?.$el||this.error.meta?.node},get isCmp(){return(this.error.scope||this.node.$scope)?.$cache.cmp},get cmp(){return(this.error.scope||this.node)?.$scope?.$cmp},stringify(e){try{return JSON.stringify(e,(e,r)=>"function"==typeof r?"[Function]":r,2)}catch{return"[Circular]"}},escape:e=>e,truncateOuterTag(e){if(!e)return"[NO NODE]";if(e.nodeType!==Node.ELEMENT_NODE)return e.nodeType===Node.TEXT_NODE?e.$scope?.$cache?.text?.cmd?'BOUND TEXT: "'+e.textContent.trim()+'" Expression: "'+e.$scope.$cache.text.cmd+'"':"TEXT NODE: "+e.textContent.trim():void 0;const r=e.tagName.toLowerCase(),t=Array.from(e.attributes).map(e=>`${e.name}="${e.value}"`).join(" ");return`<${r}${t?" "+t:""}>...</${r}>`},outer(e){return this.truncateOuterTag(e)},inspect(r){e.$ok.shared.highlight.show(r),(r.$scope||e).$ok.shared.inspector.inspect(r)},close(){e.$dispatch("close")},get causeChain(){return e.$memo(()=>{const e=[];let r=this.error;for(;r;){const t=r.scope,o=t?.$el.tagName||(t?.$el.nodeType===Node.TEXT_NODE?"[text]":"[unknown]");t!==e.at(-1)?.scope&&e.push({tag:o,collapsed:!0,preview:this.truncateOuterTag(t?.$el),scope:t,error:r}),r=r.cause}return e.length&&(e[0].collapsed=!1,e.at(-1).collapsed=!1),e}).value},scrollToError(e){const r=document.getElementById(e);if(!r)return;let t=r;for(;t;){if(t.classList?.contains("error-info-container")){const e=t.closest("details");e&&(e.open=!0)}t=t.parentElement}r.scrollIntoView({behavior:"smooth",block:"center"})}}),template:'<div class="error-info-container" :id="error.id"><if :="!level && !$props.noClose"><button class="error-info-close" @click="close">×</button></if><details :open="!level"><summary><strong>{{ level ? \'Cause: \' : \'\'}}{{ escape(error.name || \'Error\') }}</strong>{{ error.code ? \' [\' + escape(error.code) + \']\' : \'\' }} {{ escape(error.message) }}</summary><div :style="level ? \'margin-left:\' + (level ? 16 : 0) + \'px; padding-left:10px; border-left: 2px solid #ccc;\' : \'\'"><if :="cmp"><div class="error-info-cmp"><strong>Component:</strong> <code>{{ cmp?.$cache.cmp.def.tag }}</code><if :="cmp.$cache.cmp.def.url">(<a :href="cmp.$cache.cmp.def.url" target="_blank" class="error-info-link"> {{ cmp.$cache.cmp.def.url?.startsWith(location.origin) ? cmp.$cache.cmp.def.url?.slice(location.origin.length) : cmp.$cache.cmp.def.url }} </a>)</if></div></if><if :="!level && causeChain.length > 1"><div class="error-info-breadcrumbs"><each :of="causeChain.slice().reverse()" let:items let:item let:index><if :="item.collapsed && index === 1">→ <button class="crumb collapsed" @click="items.forEach(i => {i.collapsed = false})">…</button><else if="!item.collapsed"><if :="index > 0">→</if><span class="crumb" :title="item.preview"><a href="javascript:" @click="() => scrollToError(item.error.id)"><code>{{ item.tag }}</code></a><if :="item.scope"><button class="crumb-inspect" @click="inspect(item.scope?.$el)" title="Inspect">🔍</button></if></span></else></if></each></div></if><if :="node"><details open><summary><strong>Node</strong> <button @click="inspect(node)">Inspect</button></summary><pre style="background:#eee;padding:5px">{{ outer(node) }}</pre></details></if><if :="error.scope"><details><summary><strong>Scope</strong></summary><each :of="error.scope" let:key let:item><ok-js-tree :key :item :parent="error.scope"/></each></details></if><if :="Object.keys(error.meta || {}).length"><details open><summary><strong>Meta</strong></summary><each :of="error.meta" let:key let:item><div style="margin:4px 0;margin-left:12px;font-size:12px"><span style="display:inline-block;min-width:80px"><strong>{{ escape(key) }}:</strong></span><if :="item instanceof Node && item.nodeType === 1"><pre style="display:inline-block;margin-left:6px">{{ outer(item) }}</pre><button @click="inspect(item)">Inspect</button><else><pre style="display:inline-block;margin-left:6px">{{ escape(stringify(item)) }}</pre></else></if></div></each></details></if><if :="error.stack"><details open><summary><strong>Stack</strong></summary><pre style="font-size:12px;background:#f9f9f9;padding:5px">{{ escape(error.stack) }}</pre></details></if><if :="error.cause"><ok-crash-info :error="error.cause" :level="level + 1"/></if></div></details></div>',style:"[tag].root{display:block;background:#fff3f3;color:#333;border-left:5px solid #f44336;padding:20px;font-family:Arial,sans-serif;box-shadow:0 4px 6px rgba(0,0,0,.1);max-height:90vh;overflow:auto}[tag] .error-info-close{position:absolute;top:8px;right:12px;background:0 0;border:0;font-size:18px;line-height:1;cursor:pointer;color:#900;font-weight:700}[tag] .error-info-close:hover{color:red}[tag] .error-info-container{position:relative}[tag] .error-info-cmp{margin:10px 0;font-size:14px;color:#222}[tag] .error-info-cmp code{background:#eee;padding:2px 6px;border-radius:3px;font-size:13px}[tag] .error-info-link{color:#06c;text-decoration:underline;word-break:break-all}[tag] .error-info-link:hover{color:#00a}[tag] .crumb.collapsed{overflow:hidden;color:#aaa;width:auto;font-weight:700;padding:0 4px}"};export{r as default};
1
+ import e from"../devtools/ok-js-tree.ok.js";function t(e,t){return e-=434,o()[e]}const r=t;function o(){const e=["93JReYPK","shared","text","function","scrollIntoView","cmp","40iwVLNi","contains","$attr","24104dukiOW","[Function]","[Circular]","textContent","env","tagName",'BOUND TEXT: "',"2412NNfgaF","config","collapsed","value","root","$cmp","truncateOuterTag","from","smooth","scope","component","[tag].root{display:block;background:#fff3f3;color:#333;border-left:5px solid #f44336;padding:20px;font-family:Arial,sans-serif;box-shadow:0 4px 6px rgba(0,0,0,.1);max-height:90vh;overflow:auto}[tag] .error-info-close{position:absolute;top:8px;right:12px;background:0 0;border:0;font-size:18px;line-height:1;cursor:pointer;color:#900;font-weight:700}[tag] .error-info-close:hover{color:red}[tag] .error-info-container{position:relative}[tag] .error-info-cmp{margin:10px 0;font-size:14px;color:#222}[tag] .error-info-cmp code{background:#eee;padding:2px 6px;border-radius:3px;font-size:13px}[tag] .error-info-link{color:#06c;text-decoration:underline;word-break:break-all}[tag] .error-info-link:hover{color:#00a}[tag] .crumb.collapsed{overflow:hidden;color:#aaa;width:auto;font-weight:700;padding:0 4px}","TEXT NODE: ","cause","close","ok-crash-info","show","node","inspector",">...</","error","57756bXFoGb","[unknown]","33606705PBpvNH","nodeType","$memo","815622dVvJpa","2502857ZKuZga","name","$ok","TEXT_NODE","12bMlNjq","map","meta","$cache","566110iyrDuy","classList","highlight","level","crash","closest","toLowerCase","$el","join","[NO NODE]","stringify","13894450oVzbfB","[text]","$scope","cmd","push"];return(o=function(){return e})()}!function(){const e=t,r=o();for(;;)try{if(721744==parseInt(e(443))/1+-parseInt(e(438))/2*(-parseInt(e(468))/3)+parseInt(e(474))/4*(-parseInt(e(452))/5)+-parseInt(e(448))/6*(parseInt(e(444))/7)+-parseInt(e(477))/8*(parseInt(e(484))/9)+-parseInt(e(463))/10+parseInt(e(440))/11)break;r.push(r.shift())}catch(e){r.push(r.shift())}}();var s={tag:"ok-crash-info",lazy:!0,dependencies:[e],attr:{noClose:{default:!1,empty:!0},error:{}},register(e){const r=t;"dev"===e[r(485)][r(481)]&&!e[r(485)][r(456)][r(494)]&&(e[r(485)][r(456)][r(494)]=r(499))},context(e){const r=t;return!e[r(476)].level&&e[r(459)][r(453)].toggle(r(488)),{get error(){const t=r;return"string"==typeof e.$attr[t(437)]?{message:e[t(476)][t(437)]}:e[t(476)][t(437)]||{}},get level(){const t=r;return e.$attr[t(455)]||0},get node(){const e=r;return this[e(437)][e(434)]||this[e(437)][e(493)]?.[e(459)]||this[e(437)][e(450)]?.[e(434)]},get isCmp(){const e=r;return(this[e(437)].scope||this[e(434)][e(465)])?.[e(451)][e(473)]},get cmp(){const e=r;return(this.error.scope||this[e(434)])?.[e(465)]?.[e(489)]},stringify(e){const t=r;try{return JSON[t(462)](e,(e,r)=>typeof r===t(471)?t(478):r,2)}catch{return t(479)}},escape:e=>e,truncateOuterTag(e){const t=r;if(!e)return t(461);if(e.nodeType!==Node.ELEMENT_NODE)return e[t(441)]===Node[t(447)]?e[t(465)]?.[t(451)]?.text?.[t(466)]?t(483)+e.textContent.trim()+'" Expression: "'+e.$scope[t(451)][t(470)][t(466)]+'"':t(496)+e[t(480)].trim():void 0;const o=e[t(482)][t(458)](),s=Array[t(491)](e.attributes)[t(449)](e=>e[t(445)]+'="'+e[t(487)]+'"')[t(460)](" ");return"<"+o+(s?" "+s:"")+t(436)+o+">"},outer(e){return this.truncateOuterTag(e)},inspect(t){const o=r;e[o(446)][o(469)][o(454)][o(500)](t),(t.$scope||e)[o(446)][o(469)][o(435)].inspect(t)},close(){const t=r;e.$dispatch(t(498))},get causeChain(){const t=r;return e[t(442)](()=>{const e=t,r=[];let o=this[e(437)];for(;o;){const t=o[e(493)],s=t?.[e(459)][e(482)]||(t?.[e(459)][e(441)]===Node[e(447)]?e(464):e(439));t!==r.at(-1)?.scope&&r[e(467)]({tag:s,collapsed:!0,preview:this[e(490)](t?.$el),scope:t,error:o}),o=o[e(497)]}return r.length&&(r[0][e(486)]=!1,r.at(-1)[e(486)]=!1),r})[t(487)]},scrollToError(e){const t=r,o=document.getElementById(e);if(!o)return;let s=o;for(;s;){if(s.classList?.[t(475)]("error-info-container")){const e=s[t(457)]("details");e&&(e.open=!0)}s=s.parentElement}o[t(472)]({behavior:t(492),block:"center"})}}},template:'<div class="error-info-container" :id="error.id"><if :="!level && !$props.noClose"><button class="error-info-close" @click="close">×</button></if><details :open="!level"><summary><strong>{{ level ? \'Cause: \' : \'\'}}{{ escape(error.name || \'Error\') }}</strong>{{ error.code ? \' [\' + escape(error.code) + \']\' : \'\' }} {{ escape(error.message) }}</summary><div :style="level ? \'margin-left:\' + (level ? 16 : 0) + \'px; padding-left:10px; border-left: 2px solid #ccc;\' : \'\'"><if :="cmp"><div class="error-info-cmp"><strong>Component:</strong> <code>{{ cmp?.$cache.cmp.def.tag }}</code><if :="cmp.$cache.cmp.def.url">(<a :href="cmp.$cache.cmp.def.url" target="_blank" class="error-info-link"> {{ cmp.$cache.cmp.def.url?.startsWith(location.origin) ? cmp.$cache.cmp.def.url?.slice(location.origin.length) : cmp.$cache.cmp.def.url }} </a>)</if></div></if><if :="!level && causeChain.length > 1"><div class="error-info-breadcrumbs"><each :of="causeChain.slice().reverse()" let:items let:item let:index><if :="item.collapsed && index === 1">→ <button class="crumb collapsed" @click="items.forEach(i => {i.collapsed = false})">…</button><else if="!item.collapsed"><if :="index > 0">→</if><span class="crumb" :title="item.preview"><a href="javascript:" @click="() => scrollToError(item.error.id)"><code>{{ item.tag }}</code></a><if :="item.scope"><button class="crumb-inspect" @click="inspect(item.scope?.$el)" title="Inspect">🔍</button></if></span></else></if></each></div></if><if :="node"><details open><summary><strong>Node</strong> <button @click="inspect(node)">Inspect</button></summary><pre style="background:#eee;padding:5px">{{ outer(node) }}</pre></details></if><if :="error.scope"><details><summary><strong>Scope</strong></summary><each :of="error.scope" let:key let:item><ok-js-tree :key :item :parent="error.scope"/></each></details></if><if :="Object.keys(error.meta || {}).length"><details open><summary><strong>Meta</strong></summary><each :of="error.meta" let:key let:item><div style="margin:4px 0;margin-left:12px;font-size:12px"><span style="display:inline-block;min-width:80px"><strong>{{ escape(key) }}:</strong></span><if :="item instanceof Node && item.nodeType === 1"><pre style="display:inline-block;margin-left:6px">{{ outer(item) }}</pre><button @click="inspect(item)">Inspect</button><else><pre style="display:inline-block;margin-left:6px">{{ escape(stringify(item)) }}</pre></else></if></div></each></details></if><if :="error.stack"><details open><summary><strong>Stack</strong></summary><pre style="font-size:12px;background:#f9f9f9;padding:5px">{{ escape(error.stack) }}</pre></details></if><if :="error.cause"><ok-crash-info :error="error.cause" :level="level + 1"/></if></div></details></div>',style:r(495)};export{s as default};
@@ -1 +1 @@
1
- var e={tag:"i18n-editor-examples",template:'<div class="ast-examples-global"><details><summary>AST Format Examples</summary><div class="example-list"><div class="example"><strong>Simple text:</strong> <code>"Hello world"</code></div><div class="example"><strong>Text with variable:</strong> <code>"Hello \\{{username}}"</code></div><div class="example"><strong>Plural (string-only options):</strong> <code>{"var": "count", "format": "plural", "options": {"=0": "no items", "one": "1 item", "other": "\\{{count}} items"}}</code></div><div class="example"><strong>Select/Switch:</strong> <code>{"var": "gender", "format": "select", "options": {"male": "He likes this", "female": "She likes this", "other": "They like this"}}</code></div><div class="example"><strong>Formatted number:</strong> <code>"Price: \\{{price|currency:USD}}"</code></div><div class="example"><strong>Complex example:</strong> <code>["You have ", {"var": "count", "format": "plural", "options": {"=0": "no messages", "other": "\\{{count}} messages from \\{{sender}}"}}, " in your inbox"]</code></div></div></details></div>'};export{e as default};
1
+ function e(){var s=["717914UPsddP","1113868WKSjhA","4665GbqTwy","544016OXDMTa","600WrIIit","1380171SEHqPD","i18n-editor-examples","2855096sArzmw","22239aMzmUb","1672KJPkAV"];return(e=function(){return s})()}var s=t;function t(s,t){return s-=267,e()[s]}!function(){for(var s=t,r=e();;)try{if(390074==-parseInt(s(275))/1+parseInt(s(268))/2+-parseInt(s(270))/3+parseInt(s(272))/4+-parseInt(s(267))/5*(parseInt(s(269))/6)+parseInt(s(276))/7+-parseInt(s(274))/8*(-parseInt(s(273))/9))break;r.push(r.shift())}catch(e){r.push(r.shift())}}();var r={tag:s(271),template:'<div class="ast-examples-global"><details><summary>AST Format Examples</summary><div class="example-list"><div class="example"><strong>Simple text:</strong> <code>"Hello world"</code></div><div class="example"><strong>Text with variable:</strong> <code>"Hello \\{{username}}"</code></div><div class="example"><strong>Plural (string-only options):</strong> <code>{"var": "count", "format": "plural", "options": {"=0": "no items", "one": "1 item", "other": "\\{{count}} items"}}</code></div><div class="example"><strong>Select/Switch:</strong> <code>{"var": "gender", "format": "select", "options": {"male": "He likes this", "female": "She likes this", "other": "They like this"}}</code></div><div class="example"><strong>Formatted number:</strong> <code>"Price: \\{{price|currency:USD}}"</code></div><div class="example"><strong>Complex example:</strong> <code>["You have ", {"var": "count", "format": "plural", "options": {"=0": "no messages", "other": "\\{{count}} messages from \\{{sender}}"}}, " in your inbox"]</code></div></div></details></div>'};export{r as default};
@@ -1 +1 @@
1
- import e from"../theming/ok-design.ok.js";import t from"../modals/ok-window.ok.js";import s from"./i18n-key-editor.ok.js";import n from"./i18n-editor-examples.ok.js";var a={tag:"i18n-editor",dependencies:[e,{tag:"i18n-service"},{tag:"i18n-editor-service",dependencies:[t,{tag:"ok-hotkeys-service"}],register(e,t){e.componentRegistry.cache.has(this.tag.toUpperCase())||e.register(this),e.shared.i18nEditor||(e.proxy({}),e.shared.i18nEditor={},e.shared.hotkeys.register(["ctrl","alt","l"],{description:"Translate",keydown(s){s.repeat||e.shared.layer.toggle("i18n-editor-service",!0,{registration:t,tier:"window"})}}))},template:"<ok-window no-portal @close=\"$ok.shared.layer.toggle('i18n-editor-service', false)\"><i18n-editor/></ok-window>"},s,n],context:e=>({extracted:null,defaultLang:"en",selectedLang:null,langs:new Set,namespaces:new Set,selectedNs:null,keys:new Set,hasKey(t,s,n){if(n)return!!(e.$ok.shared.i18n.core._catalogs[n]&&e.$ok.shared.i18n.core._catalogs[n][s]&&e.$ok.shared.i18n.core._catalogs[n][s][t]);if(s){for(const n of Object.keys(e.$ok.shared.i18n.core._catalogs))if(e.$ok.shared.i18n.core._catalogs[n][s]&&e.$ok.shared.i18n.core._catalogs[n][s][t])return!0;return!1}for(const s of Object.keys(e.$ok.shared.i18n.core._catalogs))for(const n of Object.keys(e.$ok.shared.i18n.core._catalogs[s]))if(e.$ok.shared.i18n.core._catalogs[s][n]&&e.$ok.shared.i18n.core._catalogs[s][n][t])return!0;return!1},get data(){return e.$memo(()=>{const t={};for(let s of this.keys)this.hasKey(s,this.selectedNs,this.selectedLang)&&(t[s]={key:s,value:e.$ok.shared.i18n.core._catalogs[this.selectedLang]?.[this.selectedNs]?.[s],default:e.$ok.shared.i18n.core._catalogs[this.defaultLang]?.[this.selectedNs]?.[s]});return Object.values(t)}).value},init(){for(const[t,s]of Object.entries(e.$ok.shared.i18n.core._catalogs)){this.langs.add(t);for(const[s,n]of Object.entries(e.$ok.shared.i18n.core._catalogs[t])){this.namespaces.add(s);for(const e of Object.keys(n))this.keys.add(e)}}this.langs.size>0&&!this.selectedLang&&(this.selectedLang=this.langs.has(this.defaultLang)?this.defaultLang:[...this.langs][0]),this.namespaces.size>0&&!this.selectedNs&&(this.selectedNs=this.namespaces.has("default")?"default":[...this.namespaces][0]),e.$ok.proxyInstance.notify(()=>this.keys)},updateTranslation(t,s){const n=e.$ok.shared.i18n.core._catalogs;n[this.selectedLang]||(n[this.selectedLang]={}),n[this.selectedLang][this.selectedNs]||(n[this.selectedLang][this.selectedNs]={}),n[this.selectedLang][this.selectedNs][t]=s,e.$ok.proxyInstance.notify(()=>n)}}),mounted(e){this.init()},template:'\n <div class="i18n-editor">\n <div class="editor-header">\n <h3>i18n Translation Editor</h3>\n <div class="selection-controls">\n <div class="lang-selector">\n <label>Language:</label>\n <each :="langs" let:item>\n <button @click="selectedLang = item" :class="{ active: selectedLang === item }">\n {{ item }}\n </button>\n </each>\n </div>\n \n <div class="ns-selector">\n <label>Namespace:</label>\n <each :="namespaces" let:item>\n <button @click="selectedNs = item" :class="{ active: selectedNs === item }">\n {{ item }}\n </button>\n </each>\n </div>\n </div>\n </div>\n \n <i18n-editor-examples />\n \n <if :="selectedLang && selectedNs">\n <div class="editor-content">\n <div class="current-selection">\n Editing: <strong>{{ selectedLang }}/{{ selectedNs }}</strong>\n </div>\n \n <div class="keys-list">\n <each :="data" let:item>\n <i18n-key-editor \n :value="item.value"\n :default="item.default" \n :key-name="item.key"\n :defaultLang="defaultLang"\n @change="updateTranslation(item.key, $event)"\n />\n </each>\n \n <if :="data.length === 0">\n <div class="no-keys">\n No translation keys found for {{ selectedLang }}/{{ selectedNs }}\n </div>\n </if>\n </div>\n </div>\n </if>\n \n <if :="!selectedLang || !selectedNs">\n <div class="no-selection">\n Please select a language and namespace to begin editing.\n </div>\n </if>\n </div>\n '};export{a as default};
1
+ import e from"../theming/ok-design.ok.js";import t from"../modals/ok-window.ok.js";import n from"./i18n-key-editor.ok.js";import s from"./i18n-editor-examples.ok.js";const i=o;!function(){const e=o,t=r();for(;;)try{if(181818==parseInt(e(311))/1+-parseInt(e(294))/2*(-parseInt(e(326))/3)+-parseInt(e(322))/4*(-parseInt(e(302))/5)+parseInt(e(313))/6+parseInt(e(321))/7*(parseInt(e(296))/8)+-parseInt(e(320))/9+-parseInt(e(301))/10)break;t.push(t.shift())}catch(e){t.push(t.shift())}}();const a={tag:"i18n-editor-service",dependencies:[t,{tag:i(285)}],register(e,t){const n=i;!e[n(308)][n(307)].has(this[n(319)].toUpperCase())&&e[n(314)](this),e.shared.i18nEditor||(e.proxy({}),e[n(323)][n(299)]={},e.shared.hotkeys[n(314)]([n(324),n(290),"l"],{description:n(325),keydown(s){const i=n;s.repeat||e[i(323)][i(310)].toggle("i18n-editor-service",!0,{registration:t,tier:"window"})}}))},template:i(286)};function o(e,t){return e-=280,r()[e]}var c={tag:i(305),dependencies:[e,{tag:i(312)},a,n,s],context:e=>({extracted:null,defaultLang:"en",selectedLang:null,langs:new Set,namespaces:new Set,selectedNs:null,keys:new Set,hasKey(t,n,s){const i=o;if(s)return!!(e[i(293)][i(323)][i(303)][i(318)]._catalogs[s]&&e[i(293)][i(323)][i(303)][i(318)][i(304)][s][n]&&e.$ok[i(323)][i(303)][i(318)][i(304)][s][n][t]);if(n){for(const s of Object[i(292)](e[i(293)].shared[i(303)].core[i(304)]))if(e[i(293)].shared[i(303)][i(318)]._catalogs[s][n]&&e[i(293)].shared.i18n[i(318)][i(304)][s][n][t])return!0;return!1}for(const n of Object[i(292)](e[i(293)][i(323)].i18n.core[i(304)]))for(const s of Object[i(292)](e[i(293)].shared.i18n[i(318)]._catalogs[n]))if(e[i(293)][i(323)][i(303)].core[i(304)][n][s]&&e[i(293)][i(323)][i(303)][i(318)][i(304)][n][s][t])return!0;return!1},get data(){const t=o;return e[t(284)](()=>{const n=t,s={};for(let t of this.keys)this[n(288)](t,this[n(289)],this[n(298)])&&(s[t]={key:t,value:e[n(293)][n(323)][n(303)].core[n(304)][this.selectedLang]?.[this[n(289)]]?.[t],default:e[n(293)][n(323)][n(303)].core._catalogs[this[n(287)]]?.[this[n(289)]]?.[t]});return Object[n(309)](s)})[t(291)]},init(){const t=o;for(const[n,s]of Object[t(300)](e[t(293)][t(323)][t(303)][t(318)]._catalogs)){this[t(281)].add(n);for(const[s,i]of Object.entries(e[t(293)][t(323)][t(303)][t(318)]._catalogs[n])){this[t(317)][t(280)](s);for(const e of Object[t(292)](i))this.keys[t(280)](e)}}this[t(281)][t(295)]>0&&!this.selectedLang&&(this[t(298)]=this.langs[t(282)](this.defaultLang)?this[t(287)]:[...this[t(281)]][0]),this[t(317)].size>0&&!this[t(289)]&&(this.selectedNs=this[t(317)][t(282)](t(316))?t(316):[...this.namespaces][0]),e[t(293)][t(297)][t(315)](()=>this.keys)},updateTranslation(t,n){const s=o,i=e[s(293)].shared[s(303)][s(318)][s(304)];i[this[s(298)]]||(i[this.selectedLang]={}),i[this.selectedLang][this[s(289)]]||(i[this[s(298)]][this.selectedNs]={}),i[this[s(298)]][this[s(289)]][t]=n,e[s(293)].proxyInstance[s(315)](()=>i)}}),mounted(e){this[i(306)]()},template:i(283)};function r(){const e=["langs","has",'\n <div class="i18n-editor">\n <div class="editor-header">\n <h3>i18n Translation Editor</h3>\n <div class="selection-controls">\n <div class="lang-selector">\n <label>Language:</label>\n <each :="langs" let:item>\n <button @click="selectedLang = item" :class="{ active: selectedLang === item }">\n {{ item }}\n </button>\n </each>\n </div>\n \n <div class="ns-selector">\n <label>Namespace:</label>\n <each :="namespaces" let:item>\n <button @click="selectedNs = item" :class="{ active: selectedNs === item }">\n {{ item }}\n </button>\n </each>\n </div>\n </div>\n </div>\n \n <i18n-editor-examples />\n \n <if :="selectedLang && selectedNs">\n <div class="editor-content">\n <div class="current-selection">\n Editing: <strong>{{ selectedLang }}/{{ selectedNs }}</strong>\n </div>\n \n <div class="keys-list">\n <each :="data" let:item>\n <i18n-key-editor \n :value="item.value"\n :default="item.default" \n :key-name="item.key"\n :defaultLang="defaultLang"\n @change="updateTranslation(item.key, $event)"\n />\n </each>\n \n <if :="data.length === 0">\n <div class="no-keys">\n No translation keys found for {{ selectedLang }}/{{ selectedNs }}\n </div>\n </if>\n </div>\n </div>\n </if>\n \n <if :="!selectedLang || !selectedNs">\n <div class="no-selection">\n Please select a language and namespace to begin editing.\n </div>\n </if>\n </div>\n ',"$memo","ok-hotkeys-service","<ok-window no-portal @close=\"$ok.shared.layer.toggle('i18n-editor-service', false)\"><i18n-editor/></ok-window>","defaultLang","hasKey","selectedNs","alt","value","keys","$ok","148254ucziht","size","343432dwWcSn","proxyInstance","selectedLang","i18nEditor","entries","1630290OLBCwz","313315mpMCCf","i18n","_catalogs","i18n-editor","init","cache","componentRegistry","values","layer","107960kVTgaI","i18n-service","968094FOmgnj","register","notify","default","namespaces","core","tag","3193497ZZgBhd","7XYtrRc","20xmdjVh","shared","ctrl","Translate","3MIhKkj","add"];return(r=function(){return e})()}export{c as default};
@@ -1 +1 @@
1
- var e={tag:"i18n-key-editor-tips",template:'<details class="i18n-key-editor-tips"><summary>💡 AST Format Tips</summary><ul><li><strong>Simple variable:</strong> <code>{"var": "username"}</code></li><li><strong>Formatted variable:</strong> <code>{"var": "price", "format": "currency:USD"}</code></li><li><strong>Plural forms:</strong> <code>{"var": "count", "format": "plural", "options": {"=0": "no items", "one": "1 item", "other": "\\{\\{count\\}\\} items"}}</code></li><li><strong>Select/Switch:</strong> <code>{"var": "gender", "format": "select", "options": {"male": "He", "female": "She", "other": "They"}}</code></li><li><strong>Array format:</strong> <code>["You have ", {"var": "count"}, " items"]</code></li><li><strong>String-only options:</strong> Options in plural/select must be strings with \\{\\{variable\\}\\} interpolation</li></ul></details>'};export{e as default};
1
+ function t(t,r){return t-=154,e()[t]}var r=t;function e(){var t=["22048776rxqZrK","i18n-key-editor-tips","1645lRdOln","4615506BKJOyU","3464ZqGvIQ","8506680TZMZVM","1799788BqazWa","1kuYqsT",'<details class="i18n-key-editor-tips"><summary>💡 AST Format Tips</summary><ul><li><strong>Simple variable:</strong> <code>{"var": "username"}</code></li><li><strong>Formatted variable:</strong> <code>{"var": "price", "format": "currency:USD"}</code></li><li><strong>Plural forms:</strong> <code>{"var": "count", "format": "plural", "options": {"=0": "no items", "one": "1 item", "other": "\\{\\{count\\}\\} items"}}</code></li><li><strong>Select/Switch:</strong> <code>{"var": "gender", "format": "select", "options": {"male": "He", "female": "She", "other": "They"}}</code></li><li><strong>Array format:</strong> <code>["You have ", {"var": "count"}, " items"]</code></li><li><strong>String-only options:</strong> Options in plural/select must be strings with \\{\\{variable\\}\\} interpolation</li></ul></details>',"2226278VnBfpu","6652506GceyHe"];return(e=function(){return t})()}!function(){for(var r=t,o=e();;)try{if(880214==parseInt(r(164))/1*(parseInt(r(155))/2)+-parseInt(r(160))/3+-parseInt(r(163))/4+-parseInt(r(162))/5+parseInt(r(156))/6+parseInt(r(159))/7*(-parseInt(r(161))/8)+parseInt(r(157))/9)break;o.push(o.shift())}catch(t){o.push(o.shift())}}();var o={tag:r(158),template:r(154)};export{o as default};
@@ -1 +1 @@
1
- import e from"./i18n-key-editor-tips.ok.js";var t={tag:"i18n-key-editor",dependencies:[e],attr:{value:{},default:{},keyName:{type:"string",required:!0},defaultLang:{type:"string",default:"en"}},events:["change"],context:e=>({jsonMode:!1,showTips:!1,selectedIndex:null,get segments(){const t=e.$attr.value;return t?Array.isArray(t)?JSON.parse(JSON.stringify(t)):"string"==typeof t||"object"==typeof t?[t]:[]:[]},get defaultText(){const t=e.$attr.default;return t?"string"==typeof t?t:JSON.stringify(t):""},get jsonValue(){const t=e.$attr.value??"";try{return JSON.stringify(t,null,2)}catch{return'""'}},emitSegments(t){let s;s=0===t.length?"":1===t.length&&"string"==typeof t[0]?t[0]:t,e.$emit("change",s)},selectSegment(e){this.selectedIndex=e},get selectedSegment(){return null!=this.selectedIndex?this.segments[this.selectedIndex]:null},updateFromJson(t){try{const s=JSON.parse(t);e.$emit("change",s)}catch(e){}},addTextSegment(){const e=this.segments;e.push(""),this.emitSegments(e),this.selectedIndex=e.length-1},addVariableSegment(){const e=this.segments;e.push({var:"name"}),this.emitSegments(e),this.selectedIndex=e.length-1},addPluralSegment(){const e=this.segments;e.push({var:"count",format:"plural",options:{"=0":"no items",one:"1 item",other:"{{count}} items"}}),this.emitSegments(e),this.selectedIndex=e.length-1},addSelectSegment(){const e=this.segments;e.push({var:"gender",format:"select",options:{male:"He",female:"She",other:"They"}}),this.emitSegments(e),this.selectedIndex=e.length-1},removeSegment(e){const t=this.segments;e>=0&&e<t.length&&(t.splice(e,1),this.emitSegments(t),this.selectedIndex===e?this.selectedIndex=null:this.selectedIndex>e&&this.selectedIndex--)},moveSegment(e,t){const s=this.segments,n=e+t;if(n>=0&&n<s.length){const t=s.splice(e,1)[0];s.splice(n,0,t),this.emitSegments(s),this.selectedIndex===e&&(this.selectedIndex=n)}},updateTextSegment(e,t){const s=this.segments;e>=0&&e<s.length&&(s[e]=t,this.emitSegments(s))},updateVariableName(e,t){const s=this.segments,n=s[e];n&&"object"==typeof n&&(n.var=t,this.emitSegments(s))},updateVariableFormat(e,t){const s=this.segments,n=s[e];n&&"object"==typeof n&&(t?"plural"===t?(n.format="plural",n.options=n.options||{"=0":"no items",one:"1 item",other:"{{count}} items"}):"select"===t?(n.format="select",n.options=n.options||{male:"He",female:"She",other:"They"}):(n.format=t,delete n.options):(delete n.format,delete n.options),this.emitSegments(s))},updateOption(e,t,s){const n=this.segments,i=n[e];i&&i.options&&(i.options[t]=s,this.emitSegments(n))},addOption(e){const t=this.segments,s=t[e];if(s&&s.options){let e="new",n=1;for(;s.options[e];)e="new"+n++;s.options[e]="",this.emitSegments(t)}},removeOption(e,t){const s=this.segments,n=s[e];n&&n.options&&(delete n.options[t],this.emitSegments(s))},renameOptionKey(e,t,s){const n=this.segments,i=n[e];if(i&&i.options&&t!==s){const e=i.options[t];delete i.options[t],s&&!i.options[s]&&(i.options[s]=e),this.emitSegments(n)}},getSegmentType:e=>"string"==typeof e?"Text":e.format?e.format.charAt(0).toUpperCase()+e.format.slice(1):"Variable",getSegmentClass(e){return this.getSegmentType(e).toLowerCase()}}),template:'<div class="i18n-key-editor"><div class="key-header"><strong>{{ $props.keyName }}</strong><div class="header-controls"><button @click="jsonMode = !jsonMode" :class="{active: jsonMode}">{{ jsonMode ? \'Visual\' : \'JSON\' }}</button> <button @click="showTips = !showTips" :class="{active: showTips}">💡 Tips</button></div></div><if :="defaultText"><div class="default-value"><small>Default ({{ $props.defaultLang }}): {{ defaultText }}</small></div></if><if :="jsonMode"><div class="json-editor"><label>JSON AST:</label> <textarea :value="jsonValue" @input="updateFromJson($event.target.value)" rows="8" spellcheck="false" class="json-textarea"/></div></if><if :="!jsonMode"><div class="visual-editor"><div class="toolbar"><button @click="addTextSegment()">+ Text</button> <button @click="addVariableSegment()">+ Variable</button> <button @click="addPluralSegment()">+ Plural</button> <button @click="addSelectSegment()">+ Select</button></div><div class="segments-inline"><each :="segments" let:item="segment" let:index><button class="segment-chip" :class="{ selected: selectedIndex === index }" @click="selectSegment(index)"><span class="chip-type">{{ getSegmentType(segment) }}</span><if :="typeof segment === \'object\'"><span class="chip-meta">{{ segment.var }}</span></if><if :="typeof segment === \'string\'"><span class="chip-meta">"{{ segment.length > 16 ? segment.slice(0,16) + \'…\' : segment }}"</span></if></button></each><if :="segments.length === 0"><span class="empty-message">No segments. Use the toolbar to add.</span></if></div><if :="selectedSegment != null"><div class="segment-editor"><div class="editor-header"><h5>Editing: {{ getSegmentType(selectedSegment) }}</h5><div class="editor-controls"><button @click="moveSegment(selectedIndex, -1)" :disabled="selectedIndex === 0">←</button> <button @click="moveSegment(selectedIndex, 1)" :disabled="selectedIndex === segments.length - 1">→</button> <button @click="removeSegment(selectedIndex)" class="remove">Delete</button> <button @click="selectedIndex = null">Done</button></div></div><if :="typeof selectedSegment === \'string\'"><div class="text-segment"><label>Text:</label> <textarea :value="selectedSegment" @input="updateTextSegment(selectedIndex, $event.target.value)" rows="3"/></div></if><if :="typeof selectedSegment === \'object\'"><div class="variable-segment"><div class="field"><label>Variable:</label> <input type="text" :value="selectedSegment.var" @input="updateVariableName(selectedIndex, $event.target.value)" placeholder="variable name"></div><div class="field"><label>Format:</label> <select :value="selectedSegment.format || \'\'" @change="updateVariableFormat(selectedIndex, $event.target.value)"><option value="">Raw Variable</option><option value="plural">Plural</option><option value="select">Select</option><option value="number">Number</option><option value="currency:USD">Currency (USD)</option><option value="currency:EUR">Currency (EUR)</option><option value="percent">Percent</option><option value="date:short">Date (Short)</option><option value="date:medium">Date (Medium)</option><option value="date:long">Date (Long)</option><option value="time:short">Time (Short)</option><option value="time:medium">Time (Medium)</option></select></div><if :="selectedSegment?.options"><div class="options-editor"><div class="options-header"><label>Options:</label> <button @click="addOption(selectedIndex)">+ Add</button></div><div class="options-list"><each :="Object.entries(selectedSegment.options)" let:item="option"><div class="option-row"><input type="text" :value="option[0]" @input="renameOptionKey(selectedIndex, option[0], $event.target.value)" class="option-key" placeholder="key"><input type="text" :value="option[1]" @input="updateOption(selectedIndex, option[0], $event.target.value)" class="option-value" placeholder="value (strings with {{var}})"><button @click="removeOption(selectedIndex, option[0])" class="remove">×</button></div></each></div></div></if></div></if></div></if></div></if><if :="showTips"><i18n-key-editor-tips/></if></div>'};export{t as default};
1
+ import e from"./i18n-key-editor-tips.ok.js";const t=n;function s(){const e=["select","segments","5714049ufULWc","new","emitSegments","170DtehMd","9508WmmAGD","splice","195CUqWzP","length","selectedIndex","231EiQWKN","$emit","plural","toUpperCase","parse","no items","1002300iouzUH","isArray","change","object","default","string","options","200676bgvJdy","i18n-key-editor","stringify","format","$attr","1006280MgDClD","18mQxzDB",'<div class="i18n-key-editor"><div class="key-header"><strong>{{ $props.keyName }}</strong><div class="header-controls"><button @click="jsonMode = !jsonMode" :class="{active: jsonMode}">{{ jsonMode ? \'Visual\' : \'JSON\' }}</button> <button @click="showTips = !showTips" :class="{active: showTips}">💡 Tips</button></div></div><if :="defaultText"><div class="default-value"><small>Default ({{ $props.defaultLang }}): {{ defaultText }}</small></div></if><if :="jsonMode"><div class="json-editor"><label>JSON AST:</label> <textarea :value="jsonValue" @input="updateFromJson($event.target.value)" rows="8" spellcheck="false" class="json-textarea"/></div></if><if :="!jsonMode"><div class="visual-editor"><div class="toolbar"><button @click="addTextSegment()">+ Text</button> <button @click="addVariableSegment()">+ Variable</button> <button @click="addPluralSegment()">+ Plural</button> <button @click="addSelectSegment()">+ Select</button></div><div class="segments-inline"><each :="segments" let:item="segment" let:index><button class="segment-chip" :class="{ selected: selectedIndex === index }" @click="selectSegment(index)"><span class="chip-type">{{ getSegmentType(segment) }}</span><if :="typeof segment === \'object\'"><span class="chip-meta">{{ segment.var }}</span></if><if :="typeof segment === \'string\'"><span class="chip-meta">"{{ segment.length > 16 ? segment.slice(0,16) + \'…\' : segment }}"</span></if></button></each><if :="segments.length === 0"><span class="empty-message">No segments. Use the toolbar to add.</span></if></div><if :="selectedSegment != null"><div class="segment-editor"><div class="editor-header"><h5>Editing: {{ getSegmentType(selectedSegment) }}</h5><div class="editor-controls"><button @click="moveSegment(selectedIndex, -1)" :disabled="selectedIndex === 0">←</button> <button @click="moveSegment(selectedIndex, 1)" :disabled="selectedIndex === segments.length - 1">→</button> <button @click="removeSegment(selectedIndex)" class="remove">Delete</button> <button @click="selectedIndex = null">Done</button></div></div><if :="typeof selectedSegment === \'string\'"><div class="text-segment"><label>Text:</label> <textarea :value="selectedSegment" @input="updateTextSegment(selectedIndex, $event.target.value)" rows="3"/></div></if><if :="typeof selectedSegment === \'object\'"><div class="variable-segment"><div class="field"><label>Variable:</label> <input type="text" :value="selectedSegment.var" @input="updateVariableName(selectedIndex, $event.target.value)" placeholder="variable name"></div><div class="field"><label>Format:</label> <select :value="selectedSegment.format || \'\'" @change="updateVariableFormat(selectedIndex, $event.target.value)"><option value="">Raw Variable</option><option value="plural">Plural</option><option value="select">Select</option><option value="number">Number</option><option value="currency:USD">Currency (USD)</option><option value="currency:EUR">Currency (EUR)</option><option value="percent">Percent</option><option value="date:short">Date (Short)</option><option value="date:medium">Date (Medium)</option><option value="date:long">Date (Long)</option><option value="time:short">Time (Short)</option><option value="time:medium">Time (Medium)</option></select></div><if :="selectedSegment?.options"><div class="options-editor"><div class="options-header"><label>Options:</label> <button @click="addOption(selectedIndex)">+ Add</button></div><div class="options-list"><each :="Object.entries(selectedSegment.options)" let:item="option"><div class="option-row"><input type="text" :value="option[0]" @input="renameOptionKey(selectedIndex, option[0], $event.target.value)" class="option-key" placeholder="key"><input type="text" :value="option[1]" @input="updateOption(selectedIndex, option[0], $event.target.value)" class="option-value" placeholder="value (strings with {{var}})"><button @click="removeOption(selectedIndex, option[0])" class="remove">×</button></div></each></div></div></if></div></if></div></if></div></if><if :="showTips"><i18n-key-editor-tips/></if></div>',"Variable","69633GiskPY","They","She","push","2348VRTjjZ","getSegmentType"];return(s=function(){return e})()}function n(e,t){return e-=266,s()[e]}!function(){const e=n,t=s();for(;;)try{if(193590==-parseInt(e(297))/1*(-parseInt(e(287))/2)+-parseInt(e(300))/3*(parseInt(e(295))/4)+-parseInt(e(267))/5+-parseInt(e(280))/6*(-parseInt(e(274))/7)+-parseInt(e(279))/8+parseInt(e(283))/9*(-parseInt(e(294))/10)+parseInt(e(291))/11)break;t.push(t.shift())}catch(e){t.push(t.shift())}}();var i={tag:t(275),dependencies:[e],attr:{value:{},default:{},keyName:{type:t(272),required:!0},defaultLang:{type:"string",default:"en"}},events:[t(269)],context:e=>({jsonMode:!1,showTips:!1,selectedIndex:null,get segments(){const t=n,s=e[t(278)].value;return s?Array[t(268)](s)?JSON[t(304)](JSON[t(276)](s)):typeof s===t(272)||typeof s===t(270)?[s]:[]:[]},get defaultText(){const t=n,s=e[t(278)][t(271)];return s?typeof s===t(272)?s:JSON.stringify(s):""},get jsonValue(){const t=n,s=e[t(278)].value??"";try{return JSON[t(276)](s,null,2)}catch{return'""'}},emitSegments(t){const s=n;let i;i=0===t[s(298)]?"":1===t[s(298)]&&"string"==typeof t[0]?t[0]:t,e.$emit(s(269),i)},selectSegment(e){this[n(299)]=e},get selectedSegment(){const e=n;return null!=this.selectedIndex?this[e(290)][this[e(299)]]:null},updateFromJson(t){const s=n;try{const n=JSON.parse(t);e[s(301)](s(269),n)}catch(e){}},addTextSegment(){const e=n,t=this[e(290)];t.push(""),this.emitSegments(t),this[e(299)]=t.length-1},addVariableSegment(){const e=n,t=this[e(290)];t[e(286)]({var:"name"}),this[e(293)](t),this[e(299)]=t.length-1},addPluralSegment(){const e=n,t=this.segments;t[e(286)]({var:"count",format:"plural",options:{"=0":e(266),one:"1 item",other:"{{count}} items"}}),this[e(293)](t),this[e(299)]=t[e(298)]-1},addSelectSegment(){const e=n,t=this[e(290)];t[e(286)]({var:"gender",format:e(289),options:{male:"He",female:e(285),other:e(284)}}),this[e(293)](t),this[e(299)]=t[e(298)]-1},removeSegment(e){const t=n,s=this.segments;e>=0&&e<s[t(298)]&&(s[t(296)](e,1),this[t(293)](s),this[t(299)]===e?this[t(299)]=null:this.selectedIndex>e&&this[t(299)]--)},moveSegment(e,t){const s=n,i=this[s(290)],o=e+t;if(o>=0&&o<i.length){const t=i[s(296)](e,1)[0];i.splice(o,0,t),this[s(293)](i),this[s(299)]===e&&(this[s(299)]=o)}},updateTextSegment(e,t){const s=n,i=this.segments;e>=0&&e<i[s(298)]&&(i[e]=t,this[s(293)](i))},updateVariableName(e,t){const s=n,i=this[s(290)],o=i[e];o&&typeof o===s(270)&&(o.var=t,this[s(293)](i))},updateVariableFormat(e,t){const s=n,i=this[s(290)],o=i[e];o&&typeof o===s(270)&&(t?"plural"===t?(o.format=s(302),o[s(273)]=o[s(273)]||{"=0":s(266),one:"1 item",other:"{{count}} items"}):t===s(289)?(o.format=s(289),o[s(273)]=o[s(273)]||{male:"He",female:s(285),other:s(284)}):(o[s(277)]=t,delete o[s(273)]):(delete o[s(277)],delete o.options),this[s(293)](i))},updateOption(e,t,s){const i=n,o=this.segments,a=o[e];a&&a[i(273)]&&(a.options[t]=s,this[i(293)](o))},addOption(e){const t=n,s=this.segments,i=s[e];if(i&&i[t(273)]){let e=t(292),n=1;for(;i[t(273)][e];)e=t(292)+n++;i.options[e]="",this[t(293)](s)}},removeOption(e,t){const s=n,i=this[s(290)],o=i[e];o&&o[s(273)]&&(delete o[s(273)][t],this[s(293)](i))},renameOptionKey(e,t,s){const i=n,o=this[i(290)],a=o[e];if(a&&a[i(273)]&&t!==s){const e=a[i(273)][t];delete a[i(273)][t],s&&!a[i(273)][s]&&(a[i(273)][s]=e),this[i(293)](o)}},getSegmentType(e){const t=n;return"string"==typeof e?"Text":e.format?e[t(277)].charAt(0)[t(303)]()+e.format.slice(1):t(282)},getSegmentClass(e){return this[n(288)](e).toLowerCase()}}),template:t(281)};export{i as default};
@@ -1 +1 @@
1
- import{createI18n as e}from"./ok-i18n.js";var n={tag:"i18n-service",register(n){const t=e({}),a=n.proxy({lang:"en"});n.shared.i18n={core:t,get lang(){return a.lang},set lang(e){a.lang=e,t.lang=e},t:(e,n,r)=>t.t(e,n,{lang:a.lang,...r})},n.enhanceScope(e=>{Object.defineProperty(e,"$t",{get:()=>(n,t,a)=>e.$ok.shared.i18n.t(n,t,a)})})}};export{n as default};
1
+ import{createI18n as n}from"./ok-i18n.js";const t=e;function r(){const n=["shared","5124645cHeYlx","i18n","lang","31335UHKnXQ","151886JDSRfn","8voQMCR","proxy","defineProperty","3837020rcIVQr","28hdeqdr","2358165ZTizMg","i18n-service","$ok","8culaBS","107946xAGoAE","2367849SREOqK","98nQAOxa"];return(r=function(){return n})()}function e(n,t){return n-=357,r()[n]}!function(){const n=e,t=r();for(;;)try{if(588546==parseInt(n(363))/1+-parseInt(n(368))/2*(-parseInt(n(362))/3)+parseInt(n(364))/4*(parseInt(n(369))/5)+parseInt(n(373))/6*(-parseInt(n(357))/7)+parseInt(n(372))/8*(-parseInt(n(359))/9)+parseInt(n(367))/10+-parseInt(n(374))/11)break;t.push(t.shift())}catch(n){t.push(t.shift())}}();var s={tag:t(370),register(r){const e=t,s=n({}),a=r[e(365)]({lang:"en"});r[e(358)][e(360)]={core:s,get lang(){return a[e(361)]},set lang(n){const t=e;a[t(361)]=n,s[t(361)]=n},t(n,t,r){const o=e;return s.t(n,t,{lang:a[o(361)],...r})}},r.enhanceScope(n=>{const t=e;Object[t(366)](n,"$t",{get(){const r=t;return(t,e,s)=>n[r(371)].shared[r(360)].t(t,e,s)}})})}};export{s as default};