@coffer-org/web 3.1.0 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{ExtendReasonInfo-B31k6BsF.js → ExtendReasonInfo-BzZpWUHE.js} +1 -1
- package/dist/assets/{NewRecordView-mNprEZ0M.js → NewRecordView-BHlVWRhQ.js} +1 -1
- package/dist/assets/{PluginSettingsPage-BL5aCWl2.js → PluginSettingsPage-Bq8C_quH.js} +1 -1
- package/dist/assets/{SettingsForm-DTwZW55p.js → SettingsForm-D-ShSS9N.js} +1 -1
- package/dist/assets/Toolbar-BEXmRzxZ.js +2 -0
- package/dist/assets/{extend-GfHImqfk.js → extend-C60kAlp4.js} +1 -1
- package/dist/assets/{index-IYmIwBta.js → index-IodIfVI7.js} +5 -5
- package/dist/assets/shelf-CdaVoMG2.js +1 -0
- package/dist/assets/showcase-g9KGsIJf.js +1 -0
- package/dist/assets/{src-CvbH8j2P.js → src-B7ofKuzW.js} +1 -1
- package/dist/assets/src-BZxKxK4W.js +1 -0
- package/dist/assets/{src-_uT5vgXn.js → src-CIbjpG2X.js} +1 -1
- package/dist/assets/{src-DJtarzEL.js → src-COCbzSN_.js} +1 -1
- package/dist/assets/{src-DOEz01aN.js → src-COMSWH4j.js} +1 -1
- package/dist/assets/{src-DjzEQC_y.js → src-COfhPliI.js} +1 -1
- package/dist/assets/{src-B8jSrOBs.js → src-CalRvEpR.js} +1 -1
- package/dist/assets/{src-DzN1nufP.js → src-Db-cqkZV.js} +1 -1
- package/dist/assets/{src-DzHYG-f3.js → src-Df0q1za7.js} +1 -1
- package/dist/assets/{src-CyzuwYGO.js → src-I0D69wPd.js} +1 -1
- package/dist/assets/{src-DmKtZ8vC.js → src-KsFUvYvh.js} +1 -1
- package/dist/assets/{src-bmJr-fWH.js → src-Wss-Pefj.js} +1 -1
- package/dist/assets/src-Yyqpiun8.js +1 -0
- package/dist/assets/{src-DwFrbaFj.js → src-eQsb3BL8.js} +1 -1
- package/dist/assets/{src-Dl65oXdT.js → src-migt9nqy.js} +1 -1
- package/dist/assets/{src-DBOfP_Or.js → src-oxroY989.js} +1 -1
- package/dist/assets/{ui-CKp0RWbv.js → ui-Cv58OO9B.js} +1 -1
- package/dist/index.html +6 -6
- package/package.json +2 -2
- package/dist/assets/Toolbar-CCy7c-VI.js +0 -2
- package/dist/assets/shelf-CbIOYmgm.js +0 -1
- package/dist/assets/showcase-DpT_hVOy.js +0 -1
- package/dist/assets/src-1MSAycRt.js +0 -1
- package/dist/assets/src-MUOjunVs.js +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coffer-org/web",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=24"
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"prepack": "npm run build"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@coffer-org/core": "3.
|
|
22
|
+
"@coffer-org/core": "3.2.0",
|
|
23
23
|
"dompurify": "^3.2.5",
|
|
24
24
|
"marked": "^15.0.0",
|
|
25
25
|
"micromark": "^4.0.2",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{t as r}from"./react-vendor-BskHO5hY.js";import{r as i}from"./x-CzSVfh-E.js";import{c as a,d as o,g as s,p as c,u as l}from"./chrome-CAIO8mia.js";import{T as u,d,f,g as p,h as m,l as h,m as g,n as _,o as v,p as y,s as b}from"./fields-DA2uwuWg.js";import{C as x,S,f as ee,o as C,y as w}from"./shelf-CbIOYmgm.js";import{n as T,o as E,t as D}from"./src-HtNjG36u.js";import{i as O,n as te,r as ne}from"./field-frame-89mXkY0h.js";import{n as re}from"./extend-GfHImqfk.js";import{t as ie}from"./plugin-q1oOYqt7.js";import{f as ae}from"./api-DsJ6cAbe.js";import{r as oe,t as k}from"./development-olQNibq5.js";import{_ as A,a as se,b as j,g as ce,h as le,i as ue,l as M,m as de,n as fe,p as pe,r as N,t as me,v as P,y as F}from"./micromark-extension-gfm-BUw6_ZLT.js";var he=i(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),I=e(t(),1);function ge(e,t={}){let n=t.disabled??new Set,r=e.filter(e=>!n.has(e.id)),i=new Map;for(let e of r){for(let t of e.libraries??[])for(let n of t.shelves)i.set(`${n.library}/${n.shelf}`,e.id);for(let t of e.libraryShelves??[])i.set(`${t.library}/${t.shelf}`,e.id)}let a=(e,t)=>i.get(`${e}/${t}`);for(let e of r)for(let t of e.dependsOn)if(n.has(t))throw Error(`[plugin] '${e.id}' is enabled, but its dependency '${t}' is disabled`);let{order:o,libraries:s,shelves:c,extends_:l}=ie(r),u=new Map;for(let e of r)for(let t of e.fieldContribs??[]){let e=`${t.library}/${t.shelf}/${t.field}`,n=u.get(e)??{options:[],suggestions:[]};t.options&&n.options.push(...t.options),t.suggestions&&n.suggestions.push(...t.suggestions),u.set(e,n)}let d=(e,t)=>{if(t.options.length){let n=new Set((e.options??[]).map(e=>e.value));e.options=[...e.options??[],...t.options.filter(e=>!n.has(e.value))]}if(t.suggestions.length){let n=e.hints.suggestions??[],r=new Set(n);e.hints.suggestions=[...n,...t.suggestions.filter(e=>!r.has(e))]}},f=new Map;for(let e of r)for(let t of e.optionLists??[])f.set(t.name,t.options);let p=e=>f.get(e)??[];for(let e of c)for(let[t,n]of C(e.fields)){let r=u.get(`${e.library}/${e.shelf}/${t}`);r&&d(n,r)}for(let e of r)for(let[t,n]of e.settings?C(e.settings.fields):[]){let r=u.get(`_settings/${e.id}/${t}`);r&&(d(n,r),n.prim===`select`&&n.options?.length&&_(n,n.options.map(e=>e.value)))}let m=new Map;for(let e of c)for(let[t,n]of C(e.fields)){let r=n.hints.source,i=n.options??[],a=r?f.get(r)??[]:[],o=new Set(i.map(e=>e.value)),s=[...i,...a.filter(e=>!o.has(e.value))];n.prim===`select`&&s.length&&_(n,s.map(e=>e.value)),s.length&&(n.options=s,m.set(`${e.library}/${e.shelf}/${t}`,s))}let h=(e,t,n,r)=>{let i=e[t];if(!i)throw Error(n);if(i.virtual)throw Error(r);return i},v=[];for(let e of r)for(let t of e.showcases??[]){let e=c.find(e=>e.library===t.source.library&&e.shelf===t.source.shelf);if(!e)throw Error(`[showcase] ${t.library}/${t.id}: unknown source shelf ${t.source.library}/${t.source.shelf}`);let n=Object.fromEntries(C(e.fields));for(let e of w(t.filter)){let r=h(n,e,`[showcase] ${t.library}/${t.id}: filter field '${e}' is not in ${t.source.library}/${t.source.shelf}`,`[showcase] ${t.library}/${t.id}: filter field '${e}' is virtual`);if(g(r))throw Error(`[showcase] ${t.library}/${t.id}: filter field '${e}' is stored as JSON`);if(r.columns)throw Error(`[showcase] ${t.library}/${t.id}: filter field '${e}' is a composite scalar stored across sub-columns`)}let r=ee(e);for(let e of t.columns){if(!n[e])throw Error(`[showcase] ${t.library}/${t.id}: column '${e}' is not in ${t.source.library}/${t.source.shelf}`);if(!r.includes(e))throw Error(`[showcase] ${t.library}/${t.id}: column '${e}' is outside ${t.source.library}/${t.source.shelf}'s list projection (views.list/groupBy/inline) and would render blank`)}if(v.some(e=>e.library===t.library&&e.id===t.id))throw Error(`[showcase] duplicate ${t.library}/${t.id}`);v.push(t)}let y=[...c.map(e=>({label:`${e.library}/${e.shelf}`,fields:e.fields})),...l.map(e=>({label:`extend '${e.id}'`,fields:e.fields}))];for(let{label:e,fields:t}of y)for(let[n,r]of C(t)){let t=r.relation;if(!t)continue;let i=c.find(e=>e.library===t.library&&e.shelf===t.shelf);if(!i)throw Error(`[relation] ${e}.${n}: unknown target shelf ${t.library}/${t.shelf}`);if(!t.filter)continue;let a=Object.fromEntries(C(i.fields));for(let r of w(t.filter))h(a,r,`[relation] ${e}.${n}: filter key '${r}' is not in ${t.library}/${t.shelf}`,`[relation] ${e}.${n}: filter key '${r}' is virtual`)}return{order:o,libraries:s,shelves:c,extends_:l,showcases:v,getShowcase:(e,t)=>v.find(n=>n.library===e&&n.id===t),getShowcasesFor:e=>v.filter(t=>t.library===e),getShelf:(e,t)=>c.find(n=>n.library===e&&n.shelf===t),getLibrary:e=>s.find(t=>t.meta.id===e),getExtendsFor:(e,t)=>l.filter(n=>re(n,e,t)),getFieldOptions:(e,t,n)=>m.get(`${e}/${t}/${n}`)??[],getOptionList:p,getShelfOwner:a}}var L=null;function _e(e){L=ge(e)}function R(){if(!L)throw Error(`[registry] not initialized — call initRegistry() in the boot loader`);return L}var ve=(e,t)=>R().getShelf(e,t),ye=(e,t)=>R().getExtendsFor(e,t),z=e=>R().getOptionList(e),be=(e,t)=>R().getShelfOwner(e,t),xe=(e,t)=>R().getShowcase(e,t),Se=e=>R().getShowcasesFor(e),Ce=()=>R().libraries,we=()=>R().shelves,Te=()=>R().extends_,B=()=>R().order,V=r(),H=(0,I.createContext)(()=>void 0),Ee=()=>(0,I.useContext)(H),De=e=>e.join(`.`);function U(e){return(t,n)=>t===`pattern`&&n?.messageKey?e(String(n.messageKey)):e(`validation.${t}`,n)}function Oe(e,t){let n={};for(let r of e){let e=De(r.path?.length?r.path:[r.field]);n[e]||(n[e]=t(r.code,r.params))}return n}function W(e,t){let n={};for(let[r,i]of Object.entries(e))r===t||r.startsWith(t+`.`)||(n[r]=i);return n}var ke=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/computed-ctx.tsx`,G={settings:{},global:{}},K=(0,I.createContext)(G),Ae=()=>(0,I.useContext)(K);function q(e,t){return{record:e.values??{},settings:t.settings,global:t.global,meta:{library:e.recordCtx.library,shelf:e.recordCtx.shelf}}}async function J(e){return B().find(t=>t.id===e)?.settings?.fields.length?ae(`/api/plugins/${e}/settings`).catch(()=>({})):{}}function je({library:e,shelf:t,children:n}){let[r,i]=(0,I.useState)(G),a=be(e,t);return(0,I.useEffect)(()=>{let e=!0;return Promise.all([a?J(a):Promise.resolve({}),J(`core`)]).then(([t,n])=>{e&&i({settings:t,global:n})}),()=>{e=!1}},[a]),(0,V.jsxDEV)(K.Provider,{value:r,children:n},void 0,!1,{fileName:ke,lineNumber:66,columnNumber:10},this)}var Me={}.hasOwnProperty,Ne=/^(https?|ircs?|mailto|xmpp)$/i,Pe=/^https?$/i;function Fe(e){let t=e||{},n=!0,r={},i=[[]],a=[],o=[],s=ce([{enter:{blockQuote:te,codeFenced:ae,codeFencedFenceInfo:h,codeFencedFenceMeta:h,codeIndented:fe,codeText:Ie,content:B,definition:be,definitionDestinationString:Se,definitionLabelString:h,definitionTitleString:h,emphasis:je,htmlFlow:Ae,htmlText:J,image:me,label:h,link:he,listItemMarker:T,listItemValue:w,listOrdered:ee,listUnordered:C,paragraph:re,reference:h,resource:_e,resourceDestinationString:R,resourceTitleString:h,setextHeading:H,strong:Fe},exit:{atxHeading:De,atxHeadingSequence:V,autolinkEmail:ze,autolinkProtocol:$,blockQuote:ne,characterEscapeValue:W,characterReferenceMarkerHexadecimal:Z,characterReferenceMarkerNumeric:Z,characterReferenceValue:Q,codeFenced:N,codeFencedFence:ue,codeFencedFenceInfo:se,codeFencedFenceMeta:S,codeFlowValue:G,codeIndented:N,codeText:Le,codeTextData:W,data:W,definition:Te,definitionDestinationString:Ce,definitionLabelString:xe,definitionTitleString:we,emphasis:Re,hardBreakEscape:K,hardBreakTrailing:K,htmlFlow:q,htmlFlowData:W,htmlText:q,htmlTextData:W,image:z,label:ge,labelText:I,lineEnding:ke,link:z,listOrdered:E,listUnordered:D,paragraph:ie,reference:S,referenceString:L,resource:S,resourceDestinationString:ve,resourceTitleString:ye,setextHeading:Oe,setextHeadingLineSequence:U,setextHeadingText:Ee,strong:Y,thematicBreak:X}},...t.htmlExtensions||[]]),c={definitions:r,tightStack:o},l={buffer:h,encode:x,getData:m,lineEndingIfNeeded:b,options:t,raw:v,resume:g,setData:p,tag:_},u=t.defaultLineEnding;return d;function d(e){let t=-1,n=0,r=[],a=[],o=[];for(;++t<e.length;)!u&&(e[t][1].type===P.lineEnding||e[t][1].type===P.lineEndingBlank)&&(u=e[t][2].sliceSerialize(e[t][1])),(e[t][1].type===P.listOrdered||e[t][1].type===P.listUnordered)&&(e[t][0]===`enter`?r.push(t):f(e.slice(r.pop(),t))),e[t][1].type===P.definition&&(e[t][0]===`enter`?(o=A(o,e.slice(n,t)),n=t):(a=A(a,e.slice(n,t+1)),n=t+1));a=A(a,o),a=A(a,e.slice(n)),t=-1;let c=a;for(s.enter.null&&s.enter.null.call(l);++t<e.length;){let e=s[c[t][0]],n=c[t][1].type,r=e[n];Me.call(e,n)&&r&&r.call({sliceSerialize:c[t][2].sliceSerialize,...l},c[t][1])}return s.exit.null&&s.exit.null.call(l),i[0].join(``)}function f(e){let t=e.length,n=0,r=0,i=!1,a;for(;++n<t;){let t=e[n];if(t[1]._container)a=void 0,t[0]===`enter`?r++:r--;else switch(t[1].type){case P.listItemPrefix:t[0]===`exit`&&(a=!0);break;case P.linePrefix:break;case P.lineEndingBlank:t[0]===`enter`&&!r&&(a?a=void 0:i=!0);break;default:a=void 0}}e[0][1]._loose=i}function p(e,t){c[e]=t}function m(e){return c[e]}function h(){i.push([])}function g(){let e=i.pop();return k(e!==void 0,`Cannot resume w/o buffer`),e.join(``)}function _(e){n&&(p(`lastWasTag`,!0),i[i.length-1].push(e))}function v(e){p(`lastWasTag`),i[i.length-1].push(e)}function y(){v(u||`
|
|
2
|
-
`)}function b(){let e=i[i.length-1],t=e[e.length-1],n=t?t.charCodeAt(t.length-1):j.eof;n===j.lf||n===j.cr||n===j.eof||y()}function x(e){return m(`ignoreEncode`)?e:de(e)}function S(){g()}function ee(e){o.push(!e._loose),b(),_(`<ol`),p(`expectFirstItem`,!0)}function C(e){o.push(!e._loose),b(),_(`<ul`),p(`expectFirstItem`,!0)}function w(e){if(m(`expectFirstItem`)){let t=Number.parseInt(this.sliceSerialize(e),F.numericBaseDecimal);t!==1&&_(` start="`+x(String(t))+`"`)}}function T(){m(`expectFirstItem`)?_(`>`):O(),b(),_(`<li>`),p(`expectFirstItem`),p(`lastWasTag`)}function E(){O(),o.pop(),y(),_(`</ol>`)}function D(){O(),o.pop(),y(),_(`</ul>`)}function O(){m(`lastWasTag`)&&!m(`slurpAllLineEndings`)&&b(),_(`</li>`),p(`slurpAllLineEndings`)}function te(){o.push(!1),b(),_(`<blockquote>`)}function ne(){o.pop(),b(),_(`</blockquote>`),p(`slurpAllLineEndings`)}function re(){o[o.length-1]||(b(),_(`<p>`)),p(`slurpAllLineEndings`)}function ie(){o[o.length-1]?p(`slurpAllLineEndings`,!0):_(`</p>`)}function ae(){b(),_(`<pre><code`),p(`fencesCount`,0)}function se(){_(` class="language-`+g()+`"`)}function ue(){let e=m(`fencesCount`)||0;e||(_(`>`),p(`slurpOneLineEnding`,!0)),p(`fencesCount`,e+1)}function fe(){b(),_(`<pre><code>`)}function N(){let e=m(`fencesCount`);e!==void 0&&e<2&&c.tightStack.length>0&&!m(`lastWasTag`)&&y(),m(`flowCodeSeenData`)&&b(),_(`</code></pre>`),e!==void 0&&e<2&&b(),p(`flowCodeSeenData`),p(`fencesCount`),p(`slurpOneLineEnding`)}function me(){a.push({image:!0}),n=void 0}function he(){a.push({})}function I(e){a[a.length-1].labelId=this.sliceSerialize(e)}function ge(){a[a.length-1].label=g()}function L(e){a[a.length-1].referenceId=this.sliceSerialize(e)}function _e(){h(),a[a.length-1].destination=``}function R(){h(),p(`ignoreEncode`,!0)}function ve(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function ye(){a[a.length-1].title=g()}function z(){let e=a.length-1,i=a[e],o=i.referenceId||i.labelId;k(o!==void 0,"media should have `referenceId` or `labelId`"),k(i.label!==void 0,"media should have `label`");let s=i.destination===void 0?r[pe(o)]:i;for(n=!0;e--;)if(a[e].image){n=void 0;break}i.image?(_(`<img src="`+M(s.destination,t.allowDangerousProtocol?void 0:Pe)+`" alt="`),v(i.label),_(`"`)):_(`<a href="`+M(s.destination,t.allowDangerousProtocol?void 0:Ne)+`"`),_(s.title?` title="`+s.title+`"`:``),i.image?_(` />`):(_(`>`),v(i.label),_(`</a>`)),a.pop()}function be(){h(),a.push({})}function xe(e){g(),a[a.length-1].labelId=this.sliceSerialize(e)}function Se(){h(),p(`ignoreEncode`,!0)}function Ce(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function we(){a[a.length-1].title=g()}function Te(){let e=a[a.length-1];k(e.labelId!==void 0,"media should have `labelId`");let t=pe(e.labelId);g(),Me.call(r,t)||(r[t]=a[a.length-1]),a.pop()}function B(){p(`slurpAllLineEndings`,!0)}function V(e){m(`headingRank`)||(p(`headingRank`,this.sliceSerialize(e).length),b(),_(`<h`+m(`headingRank`)+`>`))}function H(){h(),p(`slurpAllLineEndings`)}function Ee(){p(`slurpAllLineEndings`,!0)}function De(){_(`</h`+m(`headingRank`)+`>`),p(`headingRank`)}function U(e){p(`headingRank`,this.sliceSerialize(e).charCodeAt(0)===j.equalsTo?1:2)}function Oe(){let e=g();b(),_(`<h`+m(`headingRank`)+`>`),v(e),_(`</h`+m(`headingRank`)+`>`),p(`slurpAllLineEndings`),p(`headingRank`)}function W(e){v(x(this.sliceSerialize(e)))}function ke(e){if(!m(`slurpAllLineEndings`)){if(m(`slurpOneLineEnding`)){p(`slurpOneLineEnding`);return}if(m(`inCodeText`)){v(` `);return}v(x(this.sliceSerialize(e)))}}function G(e){v(x(this.sliceSerialize(e))),p(`flowCodeSeenData`,!0)}function K(){_(`<br />`)}function Ae(){b(),J()}function q(){p(`ignoreEncode`)}function J(){t.allowDangerousHtml&&p(`ignoreEncode`,!0)}function je(){_(`<em>`)}function Fe(){_(`<strong>`)}function Ie(){p(`inCodeText`,!0),_(`<code>`)}function Le(){p(`inCodeText`),_(`</code>`)}function Re(){_(`</em>`)}function Y(){_(`</strong>`)}function X(){b(),_(`<hr />`)}function Z(e){p(`characterReferenceType`,e.type)}function Q(e){let t=this.sliceSerialize(e);v(x(m(`characterReferenceType`)?le(t,m(`characterReferenceType`)===P.characterReferenceMarkerNumeric?F.numericBaseDecimal:F.numericBaseHexadecimal):oe(t))),p(`characterReferenceType`)}function $(e){let n=this.sliceSerialize(e);_(`<a href="`+M(n,t.allowDangerousProtocol?void 0:Ne)+`">`),v(x(n)),_(`</a>`)}function ze(e){let t=this.sliceSerialize(e);_(`<a href="`+M(`mailto:`+t)+`">`),v(x(t)),_(`</a>`)}}function Ie(e,t,n){return typeof t!=`string`&&(n=t,t=void 0),Fe(n)(ue(se(n).document().write(N()(e,t,!0))))}var Le=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/Markdown.tsx`;function Re(e){return Ie(e,{allowDangerousHtml:!0,extensions:[me()],htmlExtensions:[fe()]})}function Y({value:e}){return(0,V.jsxDEV)(`div`,{className:`md-static`,dangerouslySetInnerHTML:{__html:Re(e)}},void 0,!1,{fileName:Le,lineNumber:19,columnNumber:10},this)}var X=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/layout.tsx`;function Z({text:e}){return(0,V.jsxDEV)(Y,{value:e},void 0,!1,{fileName:X,lineNumber:40,columnNumber:10},this)}function Q(e,{bridge:t,t:n,computed:r}){if(d(e)){let r=e.key;if(t.isHidden(r))return null;let i=E({kind:D(e)});if(!i)return console.warn(`[LayoutRenderer] no renderer for kind '${D(e)}'`),null;let a=e.type,o=String(a.hints.unitFrom??``);if(o&&!o.includes(`:`)){let e=(t.values??{})[o];e!=null&&e!==``&&(a={...a,hints:{...a.hints,unitValue:String(e)}})}let c=a.derive,l=t.getValue(r);if(c)try{l=c.fn({record:t.values??{}})}catch(e){console.warn(`[derived] fn threw`,e),l=void 0}let u=a.hints.multiple===!0?Array.isArray(l)?l.map(String):s(l,[]).map(String):typeof l==`string`?l:void 0,d=a.options?.length?x(a.options,t.values??{},u):void 0;return{node:(0,V.jsxDEV)(`div`,{onBlur:e=>{te(e.relatedTarget)||t.touch(r)},children:(0,V.jsxDEV)(i.Page,{el:e,field:a,fieldKey:r,value:l,onChange:c?()=>{}:e=>t.setValue(r,e),error:t.error(r),mode:c?`view`:t.mode,label:a.label?n(a.label):void 0,required:t.requiredOf(r),recordCtx:t.recordCtx,selectOptions:d},void 0,!1,{fileName:X,lineNumber:134,columnNumber:9},this)},void 0,!1,{fileName:X,lineNumber:129,columnNumber:7},this),layout:T(a)}}if(m(e)){let i=E({kind:D(e)});if(!i)return console.warn(`[LayoutRenderer] no renderer for static kind '${D(e)}'`),null;let a=e.type,o=e.value;if(typeof e.value==`function`)try{o=e.value(q(t,r))}catch(e){console.warn(`[computed] value function threw`,e),o=void 0}return{node:(0,V.jsxDEV)(i.Page,{el:e,field:a,value:o,mode:`view`,label:a.label?n(a.label):void 0,recordCtx:t.recordCtx},void 0,!1,{fileName:X,lineNumber:169,columnNumber:7},this),layout:T(a)}}if(h(e)||y(e))return null;if(b(e)){let n=E({kind:`button`});return n?{node:(0,V.jsxDEV)(n.Page,{el:e,value:void 0,mode:t.mode,recordCtx:t.recordCtx},void 0,!1,{fileName:X,lineNumber:192,columnNumber:18},this),layout:`scalar`}:null}return null}function $(e,t,n,r=`wrap`){let i=[],a=[],o=0,s=()=>{a.length&&(i.push({kind:`flow`,items:a,scroll:r===`scroll`}),a=[])};for(let r of e){if(n){if(h(r)){s(),i.push({kind:`divider`});continue}if(y(r)){s(),i.push({kind:`block`,node:(0,V.jsxDEV)(ze,{textKey:r.text},void 0,!1,{fileName:X,lineNumber:226,columnNumber:41},this)});continue}if(v(r)){s();continue}if(d(r)||m(r)||b(r)){let e=Q(r,n);if(e==null)continue;if(e.layout===`block`)s(),i.push({kind:`block`,node:e.node});else{let t=d(r)?r.key:`static-${o++}`;a.push({key:t,node:(0,V.jsxDEV)(I.Fragment,{children:e.node},t,!1,{fileName:X,lineNumber:243,columnNumber:19},this)})}continue}continue}if(d(r)){let e=t.renderField(r.key,r.type);if(e==null)continue;T(r.type)===`block`?(s(),i.push({kind:`block`,node:e})):a.push({key:r.key,node:(0,V.jsxDEV)(I.Fragment,{children:e},r.key,!1,{fileName:X,lineNumber:259,columnNumber:47},this)})}else h(r)?(s(),i.push({kind:`divider`})):y(r)?(s(),i.push({kind:`block`,node:(0,V.jsxDEV)(ze,{textKey:r.text},void 0,!1,{fileName:X,lineNumber:265,columnNumber:39},this)})):v(r)&&s()}return s(),i}function ze({textKey:e}){let{t}=n();return(0,V.jsxDEV)(Z,{text:t(e)},void 0,!1,{fileName:X,lineNumber:277,columnNumber:10},this)}function Be(e){let t=[];for(let n of e)n.kind===`divider`&&(!t.length||t[t.length-1].kind===`divider`)||t.push(n);for(;t.length&&t[t.length-1].kind===`divider`;)t.pop();return t}function Ve({label:e,icon:t,labelAfter:n,children:r,rail:i=!0,tone:s=`group`}){let c=(0,V.jsxDEV)(`div`,{className:`flex flex-col min-w-0 ${o}`,children:r},void 0,!1,{fileName:X,lineNumber:329,columnNumber:16},this);return(0,V.jsxDEV)(`section`,{className:`flex flex-col min-w-0 ${o}`,children:[e&&(0,V.jsxDEV)(a,{label:e,icon:t,actions:n,tone:s},void 0,!1,{fileName:X,lineNumber:334,columnNumber:17},this),i&&e?(0,V.jsxDEV)(l,{children:c},void 0,!1,{fileName:X,lineNumber:335,columnNumber:24},this):c]},void 0,!0,{fileName:X,lineNumber:331,columnNumber:5},this)}function He({group:e,children:t}){let{t:r}=n();return(0,V.jsxDEV)(Ve,{label:e.label?r(e.label):void 0,icon:c(e),children:t},void 0,!1,{fileName:X,lineNumber:348,columnNumber:5},this)}function Ue({group:e,children:t}){let{t:r}=n();return(0,V.jsxDEV)(`div`,{className:`flex flex-col gap-1 min-w-0`,children:[e.label&&(0,V.jsxDEV)(`span`,{className:`text-xs text-muted`,children:r(e.label)},void 0,!1,{fileName:X,lineNumber:359,columnNumber:23},this),t]},void 0,!0,{fileName:X,lineNumber:358,columnNumber:5},this)}function We({group:e,renderCell:t}){let{t:r}=n(),i=[[]];for(let t of e.fields)v(t)?i.push([]):i[i.length-1].push(t);let a=Math.max(1,...i.map(e=>e.length)),o=!1,s=[];return i.forEach((e,n)=>{for(let r=0;r<a;r++){let i=e[r],a=i?t(i):null;a&&(o=!0),s.push((0,V.jsxDEV)(`div`,{className:`min-w-0`,children:a},`${n}-${r}`,!1,{fileName:X,lineNumber:395,columnNumber:9},this))}}),o?(0,V.jsxDEV)(ne.Provider,{value:!0,children:(0,V.jsxDEV)(Ve,{label:e.label?r(e.label):void 0,icon:c(e),children:(0,V.jsxDEV)(`div`,{className:`overflow-x-auto`,children:(0,V.jsxDEV)(`div`,{className:`grid gap-x-4 gap-y-2 items-start`,style:{gridTemplateColumns:`repeat(${a}, max-content)`},children:s},void 0,!1,{fileName:X,lineNumber:406,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:405,columnNumber:9},this)},void 0,!1,{fileName:X,lineNumber:404,columnNumber:7},this)},void 0,!1,{fileName:X,lineNumber:403,columnNumber:5},this):null}function Ge(e,t){return e.filter(e=>e.kind!==`divider`).length?e.map((e,n)=>{let r=`${t}-${n}`;switch(e.kind){case`flow`:return(0,V.jsxDEV)(O,{items:e.items,scroll:e.scroll},r,!1,{fileName:X,lineNumber:426,columnNumber:16},this);case`block`:return(0,V.jsxDEV)(I.Fragment,{children:e.node},r,!1,{fileName:X,lineNumber:428,columnNumber:16},this);case`group`:return(0,V.jsxDEV)(I.Fragment,{children:e.node},r,!1,{fileName:X,lineNumber:430,columnNumber:16},this);case`divider`:return(0,V.jsxDEV)(`hr`,{className:`border-border`},r,!1,{fileName:X,lineNumber:432,columnNumber:16},this)}}):null}function Ke({items:e,ctx:t}){let{t:r}=n(),i=Ae(),a=t.bridge?{bridge:t.bridge,t:r,computed:i}:void 0,s=[],c=[],l=()=>{c.length&&(s.push(...$(c,t,a)),c=[])};for(let n of e)if(f(n))if(l(),a)if(p(n)){let e=n.key,t=a.bridge.getValue(e);if(!a.bridge.isHidden(e)){let r=E({kind:D(n)});if(r){let i=(0,V.jsxDEV)(r.Page,{el:n,value:t,onChange:t=>a.bridge.setValue(e,t),error:a.bridge.error(e),mode:a.bridge.mode,recordCtx:a.bridge.recordCtx},void 0,!1,{fileName:X,lineNumber:471,columnNumber:17},this);s.push({kind:`group`,node:i})}else console.warn(`[LayoutRenderer] no renderer for storage group kind '${D(n)}'`)}}else if(n.display===`sheet`)s.push({kind:`group`,node:(0,V.jsxDEV)(We,{group:n,renderCell:e=>f(e)?null:Q(e,a)?.node??null},void 0,!1,{fileName:X,lineNumber:490,columnNumber:15},this)});else{let e=Ge(Be($(n.fields,t,a,n.display===`scroll`?`scroll`:`wrap`)),`g`);if(e)if(n.display===`scroll`)s.push({kind:`group`,node:(0,V.jsxDEV)(Ue,{group:n,children:e},void 0,!1,{fileName:X,lineNumber:508,columnNumber:49},this)});else{let t=E({kind:`group`});t?s.push({kind:`group`,node:(0,V.jsxDEV)(t.Page,{el:n,value:void 0,mode:a.bridge.mode,recordCtx:a.bridge.recordCtx,children:e},void 0,!1,{fileName:X,lineNumber:515,columnNumber:21},this)}):s.push({kind:`group`,node:(0,V.jsxDEV)(He,{group:n,children:e},void 0,!1,{fileName:X,lineNumber:526,columnNumber:51},this)})}}else if(p(n)){let e=t.renderGroup?.(n.key,n);e&&s.push({kind:`group`,node:e})}else if(n.display===`sheet`)s.push({kind:`group`,node:(0,V.jsxDEV)(We,{group:n,renderCell:e=>d(e)?t.renderField(e.key,e.type):null},void 0,!1,{fileName:X,lineNumber:541,columnNumber:13},this)});else{let e=Ge(Be($(n.fields,t,void 0,n.display===`scroll`?`scroll`:`wrap`)),`g`);e&&s.push({kind:`group`,node:n.display===`scroll`?(0,V.jsxDEV)(Ue,{group:n,children:e},void 0,!1,{fileName:X,lineNumber:559,columnNumber:17},this):(0,V.jsxDEV)(He,{group:n,children:e},void 0,!1,{fileName:X,lineNumber:561,columnNumber:17},this)})}else c.push(n);l();let u=Ge(Be(s),`l`);return u==null?null:(0,V.jsxDEV)(`div`,{className:`@container flex flex-col min-w-0 ${o}`,children:u},void 0,!1,{fileName:X,lineNumber:575,columnNumber:10},this)}function qe(e){let{fm:t,mode:r,recordCtx:i}=e,{t:a}=n(),o=U(a),[s]=(0,I.useState)(e.initial),[c,l]=(0,I.useState)(s),[d,f]=(0,I.useState)({}),[p,m]=(0,I.useState)(()=>new Set),h=(0,I.useMemo)(()=>new Set(e.hiddenFields??[]),[e.hiddenFields]);return{values:c,setValues:l,initial:s,errors:d,setErrors:f,touched:p,setTouched:m,bridge:(0,I.useMemo)(()=>({mode:r,recordCtx:i,values:c,getValue:e=>c[e],setValue:(e,n)=>{if(l(t=>({...t,[e]:n})),p.has(e)){let r=t[e],i=r?u(r,n):null;f(t=>{let n={...t};return i?n[e]=o(i.code,i.params):delete n[e],n})}},touch:e=>{m(t=>t.has(e)?t:new Set(t).add(e));let n=t[e],r=n?u(n,c[e]):null;f(t=>{let n={...t};return r?n[e]=o(r.code,r.params):delete n[e],n})},isHidden:e=>{let n=t[e];return!!n?.virtual||h.has(e)||S(n?.hidden,c)},requiredOf:e=>S(t[e]?.required,c),error:e=>d[e]}),[c,d,p,h,t,r,i,o])}}var Je=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/Toolbar.tsx`;function Ye({children:e,actions:t}){return(0,V.jsxDEV)(`div`,{"data-toolbar":!0,className:`eink-solid sticky top-0 z-20 flex h-[52px] items-center justify-between gap-3 bg-bg/85 px-4 backdrop-blur md:px-6 border-b border-border2 shrink-0`,children:[(0,V.jsxDEV)(`div`,{className:`flex items-center gap-2.5 min-w-0`,children:e},void 0,!1,{fileName:Je,lineNumber:13,columnNumber:7},this),t&&(0,V.jsxDEV)(`div`,{"data-toolbar-actions":!0,className:`flex items-center gap-2 shrink-0`,children:t},void 0,!1,{fileName:Je,lineNumber:15,columnNumber:9},this)]},void 0,!0,{fileName:Je,lineNumber:9,columnNumber:5},this)}export{he as S,ve as _,Y as a,Se as b,W as c,Ee as d,Te as f,B as g,z as h,Ve as i,U as l,Ce as m,qe as n,je as o,ye as p,Ke as r,H as s,Ye as t,Oe as u,we as v,_e as x,xe as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{E as e,F as t,L as n,M as r,R as i,c as a,d as o,f as s,u as c}from"./fields-DA2uwuWg.js";var l=/^[a-z][a-z0-9+.-]*:\/\//i;function u(e){let t=e.trim();if(!t)return null;let n=l.test(t),r;try{r=new URL(n?t:`http://${t}`)}catch{return{host:t}}let i={};return n&&(i.scheme=r.protocol.replace(/:$/,``)),r.username&&(i.username=r.username),r.password&&(i.password=r.password),r.hostname&&(i.host=r.hostname),r.port&&(i.port=Number(r.port)),r.pathname&&r.pathname!==`/`&&(i.path=r.pathname),r.search&&(i.query=r.search.slice(1)),r.hash&&(i.hash=r.hash.slice(1)),i}function d(e){return e?`${e.scheme?`${e.scheme}://`:``}${e.username?`${e.username}${e.password?`:${e.password}`:``}@`:``}${e.host??``}${e.port==null?``:`:${e.port}`}${e.path??``}${e.query?`?${e.query}`:``}${e.hash?`#${e.hash}`:``}`:``}function f(e){return!e||!d(e)?``:e.scheme?d(e):`https://${d(e)}`}var p=function(e,t){return p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},p(e,t)};function m(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);p(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var h=function(e){var t=`[object `+e+`]`;return function(e){return ee(e)===t}},ee=function(e){return Object.prototype.toString.call(e)},g=function(e){return e instanceof Date?e.getTime():_(e)?e.map(g):e&&typeof e.toJSON==`function`?e.toJSON():e},te=function(e){return e??null},_=h(`Array`),ne=h(`Object`),re=h(`Function`),ie=function(e,t){return e.hasOwnProperty(t)&&!re(e[t])},ae=function(e){return e&&(e.constructor===Object||e.constructor===Array||e.constructor.toString()===`function Object() { [native code] }`||e.constructor.toString()===`function Array() { [native code] }`)&&!e.toJSON},v=function(e,t){if(e==null&&e==t||e===t)return!0;if(Object.prototype.toString.call(e)!==Object.prototype.toString.call(t))return!1;if(_(e)){if(e.length!==t.length)return!1;for(var n=0,r=e.length;n<r;n++)if(!v(e[n],t[n]))return!1;return!0}else if(ne(e)){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var i in e)if(!v(e[i],t[i]))return!1;return!0}return!1},y=function(e,t,n,r,i,a){var o=t[r];if(_(e)&&isNaN(Number(o))&&!ie(e,o)){for(var s=0,c=e.length;s<c;s++)if(!y(e[s],t,n,r,s,e))return!1}return r===t.length||e==null?n(e,i,a,r===0,r===t.length):y(e[o],t,n,r+1,o,e)},b=function(){function e(e,t,n,r){this.params=e,this.owneryQuery=t,this.options=n,this.name=r,this.init()}return e.prototype.init=function(){},e.prototype.reset=function(){this.done=!1,this.keep=!1},e}(),x=function(e){m(t,e);function t(t,n,r,i){var a=e.call(this,t,n,r)||this;return a.children=i,a}return t.prototype.reset=function(){this.keep=!1,this.done=!1;for(var e=0,t=this.children.length;e<t;e++)this.children[e].reset()},t.prototype.childrenNext=function(e,t,n,r,i){for(var a=!0,o=!0,s=0,c=this.children.length;s<c;s++){var l=this.children[s];if(l.done||l.next(e,t,n,r,i),l.keep||(o=!1),l.done){if(!l.keep)break}else a=!1}this.done=a,this.keep=o},t}(b),S=function(e){m(t,e);function t(t,n,r,i,a){var o=e.call(this,t,n,r,i)||this;return o.name=a,o}return t}(x),oe=function(e){m(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.next=function(e,t,n,r){this.childrenNext(e,t,n,r)},t}(x),C=function(e){m(t,e);function t(t,n,r,i,a){var o=e.call(this,n,r,i,a)||this;return o.keyPath=t,o.propop=!0,o._nextNestedValue=function(e,t,n,r,i){return o.childrenNext(e,t,n,r,i),!o.done},o}return t.prototype.next=function(e,t,n){y(e,this.keyPath,this._nextNestedValue,0,t,n)},t}(x),w=function(e,t){if(e instanceof Function)return e;if(e instanceof RegExp)return function(t){var n=typeof t==`string`&&e.test(t);return e.lastIndex=0,n};var n=g(e);return function(e){return t(n,g(e))}},T=function(e){m(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){this._test=w(this.params,this.options.compare)},t.prototype.next=function(e,t,n){(!Array.isArray(n)||n.hasOwnProperty(t))&&this._test(e,t,n)&&(this.done=!0,this.keep=!0)},t}(b),se=function(e){return function(t,n,r,i){return e(t,n,r,i)}},E=function(e){return se(function(t,n,r,i){var a=typeof g(t),o=e(t);return new T(function(e){var t=te(e);return typeof g(t)===a&&o(t)},n,r,i)})},ce=function(e,t,n,r){var i=r.operations[e];return i||D(e),i(t,n,r,e)},D=function(e){throw Error(`Unsupported operation: ${e}`)},O=function(e,t){for(var n in e)if(t.operations.hasOwnProperty(n)||n.charAt(0)===`$`)return!0;return!1},le=function(e,t,n,r,i){if(O(t,i)){var a=A(t,n,i),o=a[0];if(a[1].length)throw Error(`Property queries must contain only operations, or exact objects.`);return new C(e,t,r,i,o)}return new C(e,t,r,i,[new T(t,r,i)])},k=function(e,t,n){t===void 0&&(t=null);var r=n===void 0?{}:n,i=r.compare,a=r.operations,o={compare:i||v,operations:Object.assign({},a||{})},s=A(e,null,o),c=s[0],l=s[1],u=[];return c.length&&u.push(new C([],e,t,o,c)),u.push.apply(u,l),u.length===1?u[0]:new oe(e,t,o,u)},A=function(e,t,n){var r=[],i=[];if(!ae(e))return r.push(new T(e,e,n)),[r,i];for(var a in e)if(n.operations.hasOwnProperty(a)){var o=ce(a,e[a],e,n);if(o&&!o.propop&&t&&!n.operations[t])throw Error(`Malformed query. ${a} cannot be matched against property.`);o!=null&&r.push(o)}else a.charAt(0)===`$`?D(a):i.push(le(a.split(`.`),e[a],a,e,n));return[r,i]},ue=function(e){return function(t,n,r){return e.reset(),e.next(t,n,r),e.keep}},de=function(e){m(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){this._test=w(this.params,this.options.compare)},t.prototype.reset=function(){e.prototype.reset.call(this),this.keep=!0},t.prototype.next=function(e){this._test(e)&&(this.done=!0,this.keep=!1)},t}(b),fe=function(e){m(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){if(!this.params||typeof this.params!=`object`)throw Error(`Malformed query. $elemMatch must by an object.`);this._queryOperation=k(this.params,this.owneryQuery,this.options)},t.prototype.reset=function(){e.prototype.reset.call(this),this._queryOperation.reset()},t.prototype.next=function(e){if(_(e)){for(var t=0,n=e.length;t<n;t++){this._queryOperation.reset();var r=e[t];this._queryOperation.next(r,t,e,!1),this.keep=this.keep||this._queryOperation.keep}this.done=!0}else this.done=!1,this.keep=!1},t}(b),pe=function(e){m(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){this._queryOperation=k(this.params,this.owneryQuery,this.options)},t.prototype.reset=function(){e.prototype.reset.call(this),this._queryOperation.reset()},t.prototype.next=function(e,t,n,r){this._queryOperation.next(e,t,n,r),this.done=this._queryOperation.done,this.keep=!this._queryOperation.keep},t}(b),j=function(e){m(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){},t.prototype.next=function(e){_(e)&&e.length===this.params&&(this.done=!0,this.keep=!0)},t}(b),M=function(e){if(e.length===0)throw Error(`$and/$or/$nor must be a nonempty array`)},N=function(e){m(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!1,t}return t.prototype.init=function(){var e=this;M(this.params),this._ops=this.params.map(function(t){return k(t,null,e.options)})},t.prototype.reset=function(){this.done=!1,this.keep=!1;for(var e=0,t=this._ops.length;e<t;e++)this._ops[e].reset()},t.prototype.next=function(e,t,n){for(var r=!1,i=!1,a=0,o=this._ops.length;a<o;a++){var s=this._ops[a];if(s.next(e,t,n),s.keep){r=!0,i=s.keep;break}}this.keep=i,this.done=r},t}(b),me=function(e){m(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!1,t}return t.prototype.next=function(t,n,r){e.prototype.next.call(this,t,n,r),this.keep=!this.keep},t}(N),P=function(e){m(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){var e=this,t=Array.isArray(this.params)?this.params:[this.params];this._testers=t.map(function(t){if(O(t,e.options))throw Error(`cannot nest \$ under ${e.name.toLowerCase()}`);return w(t,e.options.compare)})},t.prototype.next=function(e,t,n){for(var r=!1,i=!1,a=0,o=this._testers.length;a<o;a++){var s=this._testers[a];if(s(e)){r=!0,i=!0;break}}this.keep=i,this.done=r},t}(b),he=function(e){m(t,e);function t(t,n,r,i){var a=e.call(this,t,n,r,i)||this;return a.propop=!0,a._in=new P(t,n,r,i),a}return t.prototype.next=function(e,t,n,r){this._in.next(e,t,n),_(n)&&!r?this._in.keep?(this.keep=!1,this.done=!0):t==n.length-1&&(this.keep=!0,this.done=!0):(this.keep=!this._in.keep,this.done=!0)},t.prototype.reset=function(){e.prototype.reset.call(this),this._in.reset()},t}(b),ge=function(e){m(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.next=function(e,t,n,r,i){i?n.hasOwnProperty(t)===this.params&&(this.done=!0,this.keep=!0):(this.done=!0,this.keep=!this.params)},t}(b),_e=function(e){m(t,e);function t(t,n,r,i){var a=e.call(this,t,n,r,t.map(function(e){return k(e,n,r)}),i)||this;return a.propop=!1,M(t),a}return t.prototype.next=function(e,t,n,r){this.childrenNext(e,t,n,r)},t}(S),ve=function(e){m(t,e);function t(t,n,r,i){var a=e.call(this,t,n,r,t.map(function(e){return k(e,n,r)}),i)||this;return a.propop=!0,a}return t.prototype.next=function(e,t,n,r){this.childrenNext(e,t,n,r)},t}(S),ye=function(e,t,n){return new T(e,t,n)},be=function(e,t,n,r){return new de(e,t,n,r)},xe=function(e,t,n,r){return new N(e,t,n,r)},Se=function(e,t,n,r){return new me(e,t,n,r)},Ce=function(e,t,n,r){return new fe(e,t,n,r)},we=function(e,t,n,r){return new he(e,t,n,r)},Te=function(e,t,n,r){return new P(e,t,n,r)},Ee=E(function(e){return function(t){return t!=null&&t<e}}),De=E(function(e){return function(t){return t===e||t<=e}}),Oe=E(function(e){return function(t){return t!=null&&t>e}}),ke=E(function(e){return function(t){return t===e||t>=e}}),Ae=function(e,t,n){var r=e[0],i=e[1];return new T(function(e){return g(e)%r===i},t,n)},je=function(e,t,n,r){return new ge(e,t,n,r)},Me=function(e,t,n){return new T(new RegExp(e,t.$options),t,n)},Ne=function(e,t,n,r){return new pe(e,t,n,r)},F={number:function(e){return typeof e==`number`},string:function(e){return typeof e==`string`},bool:function(e){return typeof e==`boolean`},array:function(e){return Array.isArray(e)},null:function(e){return e===null},timestamp:function(e){return e instanceof Date}},Pe=Object.freeze({__proto__:null,$Size:j,$all:function(e,t,n,r){return new ve(e,t,n,r)},$and:function(e,t,n,r){return new _e(e,t,n,r)},$elemMatch:Ce,$eq:ye,$exists:je,$gt:Oe,$gte:ke,$in:Te,$lt:Ee,$lte:De,$mod:Ae,$ne:be,$nin:we,$nor:Se,$not:Ne,$options:function(){return null},$or:xe,$regex:Me,$size:function(e,t,n){return new j(e,t,n,`$size`)},$type:function(e,t,n){return new T(function(t){if(typeof e==`string`){if(!F[e])throw Error(`Type alias does not exist`);return F[e](t)}return t==null?!1:t instanceof e||t.constructor===e},t,n)},$where:function(e,t,n){var r;if(re(e))r=e;else if(!{}.CSP_ENABLED)r=Function(`obj`,`return `+e);else throw Error(`In CSP mode, sift does not support strings in "$where" condition`);return new T(function(e){return r.bind(e)(e)},t,n)}}),Fe=function(e,t,n){var r=n===void 0?{}:n,i=r.compare,a=r.operations;return k(e,t,{compare:i,operations:Object.assign({},Pe,a||{})})},I=function(e,t){return t===void 0&&(t={}),ue(Fe(e,null,t))},Ie=new Set([`$eq`,`$ne`,`$gt`,`$gte`,`$lt`,`$lte`]),Le=new Set([`$in`,`$nin`]),Re=I.createEqualsOperation,ze=e=>typeof e==`string`||typeof e==`number`||typeof e==`boolean`,Be=(e,t)=>String(e)===String(t),Ve={$contains(e,t,n){return Re(t=>Array.isArray(t)&&t.some(t=>Be(t,e)),t,n)}};function L(e,t){if(!e)return!0;try{return I(e,{operations:Ve})(t)}catch{return!1}}function R(e,t){return typeof e==`boolean`?e:e?L(e,t):!1}function He(e,t,n){if(ze(t))return[`${e} = ${n(t)}`];let r=[];for(let[i,a]of Object.entries(t))if(a!==void 0)switch(i){case`$eq`:r.push(`${e} = ${n(a)}`);break;case`$ne`:r.push(`${e} ≠ ${n(a)}`);break;case`$gt`:r.push(`${e} > ${String(a)}`);break;case`$lt`:r.push(`${e} < ${String(a)}`);break;case`$gte`:r.push(`${e} ≥ ${String(a)}`);break;case`$lte`:r.push(`${e} ≤ ${String(a)}`);break;case`$in`:r.push(`${e} ∈ {${a.map(n).join(`, `)}}`);break;case`$nin`:r.push(`${e} ∉ {${a.map(n).join(`, `)}}`);break;case`$contains`:r.push(`${e} contains ${n(a)}`);break;default:break}return r}function z(e){if(!e)return[];let t=[];for(let[n,r]of Object.entries(e))if(r!==void 0){if(n===`$and`||n===`$or`){for(let e of r)t.push(...z(e));continue}t.push(n)}return[...new Set(t)]}function Ue(e,t,n){let r=n===void 0?void 0:new Set(Array.isArray(n)?n:[n]);return e.filter(e=>r!==void 0&&e.value!==void 0&&r.has(e.value)||!e.when||L(e.when,t))}function B(e,t,n){if(!e)return[];let r=[];for(let[i,a]of Object.entries(e))if(a!==void 0){if(i===`$and`){for(let e of a)r.push(...B(e,t,n));continue}if(i===`$or`){let e=a.map(e=>B(e,t,n)).filter(e=>e.length>0).map(e=>e.length>1?`(${e.join(` and `)})`:e[0]);e.length&&r.push(e.join(` or `));continue}r.push(...He(t(i),a,e=>n?n(i,e):String(e)))}return r}function V(e){let t=[];for(let n of e)if(o(n)){let e=n.type.derive;e&&t.push([n.key,e])}else s(n)&&!n.key&&t.push(...V(n.fields));return t}function H(e){let t=new Set;for(let n of e)if(o(n))t.add(n.key);else if(s(n)&&(n.key&&t.add(n.key),!n.key))for(let e of H(n.fields))t.add(e);return t}function U(e){let t=[];for(let n of e)if(o(n))t.push([n.key,n.type]);else if(s(n)){if(a(n))continue;let e=n.key?`${n.key}__`:``;for(let[r,i]of U(n.fields))t.push([e+r,i])}return t}function We(e,t,n){if(!e.columns||n[t]!==void 0)return n[t];let r={},i=!1;for(let a of Object.keys(e.columns)){let e=n[`${t}__${a}`];e==null||e===``||(r[a]=e,i=!0)}return i?r:void 0}var W=new WeakMap;function G(e){let t=W.get(e);return t||(t=Object.fromEntries(U(e)),W.set(e,t)),t}function Ge(e){let t=U(e.fields).map(([e])=>e),n=t.find((e,n)=>t.indexOf(e)!==n);if(n)throw Error(`[shelf] ${e.library}/${e.shelf}: duplicate key '${n}'`);if(e.single&&!e.claude)throw Error(`[shelf] ${e.library}/${e.shelf}: single shelf requires \`claude\` — the agent cannot find it otherwise`);if(e.views?.list!==void 0&&!Array.isArray(e.views.list))throw Error(`[shelf] ${e.library}/${e.shelf}: views.list is a flat array of field keys — the { kind, fields } form is gone; use views.list: [...] plus views.listKind`);if(e.standalone!==!1&&!e.single&&!e.views?.list?.length&&console.warn(`[shelf] ${e.library}/${e.shelf}: standalone shelf without an explicit views.list`),e.views?.title&&!K(e.fields).some(([t])=>t===e.views.title))throw Error(`[shelf] ${e.library}/${e.shelf}: views.title '${e.views.title}' is not a field`);e.views?.list?.includes(q(e))&&console.warn(`[shelf] ${e.library}/${e.shelf}: views.list repeats the title '${q(e)}' — the title is declared separately`);let r=K(e.fields).filter(([,e])=>e.kind===`title`);r.length>1&&console.warn(`[shelf] ${e.library}/${e.shelf}: ${r.length} title fields (${r.map(([e])=>e).join(`, `)}) — '${r[0][0]}' wins`),e.standalone!==!1&&!e.single&&q(e)===`id`&&console.warn(`[shelf] ${e.library}/${e.shelf}: no title declared (field.title() or views.title) — the record renders no heading`);let i=H(e.fields);for(let[t,n]of V(e.fields))for(let r of n.deps)if(!i.has(r))throw Error(`[defineShelf] ${e.library}/${e.shelf}: derive on '${t}' depends on unknown key '${r}'`);return e}function K(e){let t=[];for(let n of e)o(n)?t.push([n.key,n.type]):s(n)&&!a(n)&&!c(n)&&t.push(...K(n.fields));return t}function q(e){if(e.views?.title)return e.views.title;let t=K(e.fields).find(([,e])=>e.kind===`title`);return t?t[0]:`id`}function J(e,t){return String(t[q(e)]??t.id??``)}function Y(e,t){let n=G(e.fields);return t.filter(e=>n[e]&&!n[e].virtual)}var Ke=new Set([`image`,`media`,`avatar`,`cover`]),X=e=>Ke.has(e);function Z(e){let t=e.views?.inline?.length?Y(e,e.views.inline):[];return t.length?t:[q(e)]}function qe(e){let t=G(e.fields);return Z(e).find(e=>t[e]&&X(t[e].kind))}function Je(e,t){let n=G(e.fields);return Z(e).reduce((e,r)=>{if(!n[r]||!X(n[r].kind)){let n=t[r];n!=null&&n!==``&&e.push(String(n))}return e},[]).join(` `).trim()||J(e,t)}function Ye(e){let t=q(e);return[t,...e.views?.list?.length?Y(e,e.views.list.filter(e=>e!==t)):[]]}function Xe(e){return e.views?.listKind??`table`}var Ze=new Set([`select`,`checkbox`,`relation`]);function Q(e){return e.views?.groupBy?.length?Y(e,e.views.groupBy):U(e.fields).filter(([,e])=>!e.virtual&&Ze.has(e.prim)).map(([e])=>e)}function Qe(e){let t=e.views?.defaultGroupBy;if(t){let n=G(e.fields);if(n[t]&&!n[t].virtual)return t}return Q(e)[0]}function $e(e){return U(e.fields).find(([,e])=>e.kind===`cover`)?.[0]}function et(e){let t=G(e.fields),n=[],r=e=>{!e||e===`id`||n.includes(e)||!t[e]||t[e].virtual||n.push(e)};r(q(e)),Ye(e).forEach(r),Q(e).forEach(r),Z(e).forEach(r),r(qe(e)),r($e(e));let i=e.views?.select;return i&&(r(i.icon),(Array.isArray(i.title)?i.title:[i.title]).forEach(r),r(i.subtitle)),[`id`,...n]}function $(l,d){let f={};for(let p of l)if(o(p)){if(p.type.virtual)continue;if(p.type.derive){f[p.key]=t({error:()=>e(`derived`)}).optional();continue}f[p.key]=d?p.type.zod.optional():p.type.zod}else if(s(p))if(a(p)){let e=r(n($(p.fields,d)).passthrough());f[p.key]=d?e.optional():p.required?e:e.optional()}else if(c(p)){let e=n($(p.fields,d)).passthrough();p.kind===`url`&&(e=i(e=>typeof e==`string`?u(e)??{}:e,e)),f[p.key]=d?e.optional():p.required?e:e.optional()}else Object.assign(f,$(p.fields,d));return f}var tt=e=>e==null||e===``||Array.isArray(e)&&e.length===0;function nt(e,t,n){return e.superRefine((e,r)=>{for(let[i,a]of U(t.fields))a.virtual||i.includes(`__`)||n&&!(i in e)||a.required!==!0&&R(a.required,e)&&tt(e[i])&&r.addIssue({code:`custom`,path:[i],message:JSON.stringify({code:`required`})})})}function rt(e){return nt(n($(e.fields,!1)),e,!1)}function it(e){return nt(n($(e.fields,!0)),e,!0)}export{Ue as C,u as E,R as S,f as T,Le as _,Ge as a,B as b,Q as c,X as d,et as f,Ye as g,q as h,Qe as i,qe as l,J as m,it as n,U as o,Xe as p,We as r,G as s,rt as t,Je as u,Ie as v,d as w,L as x,z as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,v as t}from"./shelf-CbIOYmgm.js";var n=new Set([...t,...e]);function r(e,t){for(let[i,a]of Object.entries(e))if(a!==void 0){if(i===`$and`||i===`$or`){for(let e of a)r(e,t);continue}if(typeof a==`object`&&a){for(let e of Object.keys(a))if(!n.has(e))throw Error(`[showcase] ${t}: operator '${e}' on '${i}' does not compile to SQL`)}}}function i(e){if(!e.id)throw Error(`[showcase] missing id`);if(!e.library)throw Error(`[showcase] ${e.id}: missing library`);if(!e.source?.library||!e.source?.shelf)throw Error(`[showcase] ${e.id}: missing source library/shelf`);if(!e.columns?.length)throw Error(`[showcase] ${e.id}: columns must not be empty`);if(!e.filter||Object.keys(e.filter).length===0)throw Error(`[showcase] ${e.id}: filter must not be empty — an unfiltered showcase is the shelf itself`);return r(e.filter,e.id),e}export{i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"./src-DmKtZ8vC.js";export{e as default,n as fin,t as iban};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./fields-DA2uwuWg.js";import{t}from"./extend-GfHImqfk.js";import{n,r}from"./plugin-q1oOYqt7.js";import{t as i}from"./showcase-DpT_hVOy.js";var a=t({id:`drone`,label:`drone.drone.label`,icon:`tb:drone`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:`aircraft`},claude:`FPV drone technical characteristics. frame_size — frame size (e.g. 3.5"). motors — motors. firmware — firmware (Betaflight/INAV). camera/flight_controller/vtx/gps_module link to things/item[type=drone] records of the matching subtype; the *_legacy fields are hidden pre-migration free text kept only so a human can resolve an unmatched value, never write to them.`,fields:[e.title({key:`name`,label:`core.fields.name`}),e.string({key:`frame_size`,label:`drone.drone.fields.frame_size`,rules:{max:40}}),e.string({key:`purpose`,label:`drone.drone.fields.purpose`,rules:{max:200}}),e.string({key:`motors`,label:`drone.drone.fields.motors`,rules:{max:150}}),e.string({key:`props`,label:`drone.drone.fields.props`,rules:{max:80}}),e.relation({key:`camera`,label:`drone.drone.fields.camera`,options:{library:`things`,shelf:`item`,filter:{type:`drone`,subtype:`camera`}}}),e.string({key:`camera_legacy`,label:`drone.drone.fields.camera_legacy`,view:{hidden:!0},rules:{max:100}}),e.relation({key:`flight_controller`,label:`drone.drone.fields.flight_controller`,options:{library:`things`,shelf:`item`,filter:{type:`drone`,subtype:`flight_controller`}}}),e.string({key:`flight_controller_legacy`,label:`drone.drone.fields.flight_controller_legacy`,view:{hidden:!0},rules:{max:100}}),e.relation({key:`vtx`,label:`drone.drone.fields.vtx`,options:{library:`things`,shelf:`item`,filter:{type:`drone`,subtype:`vtx`}}}),e.string({key:`vtx_legacy`,label:`drone.drone.fields.vtx_legacy`,view:{hidden:!0},rules:{max:100}}),e.relation({key:`gps_module`,label:`drone.drone.fields.gps_module`,options:{library:`things`,shelf:`item`,filter:{type:`drone`,subtype:`gps`}}}),e.string({key:`gps_module_legacy`,label:`drone.drone.fields.gps_module_legacy`,view:{hidden:!0},rules:{max:100}}),e.string({key:`radio_link`,label:`drone.drone.fields.radio_link`,rules:{max:80}}),e.string({key:`receiver`,label:`drone.drone.fields.receiver`,rules:{max:80}}),e.string({key:`video_system`,label:`drone.drone.fields.video_system`,rules:{max:80}}),e.string({key:`power_module`,label:`drone.drone.fields.power_module`,rules:{max:60}}),e.string({key:`flight_time`,label:`drone.drone.fields.flight_time`,rules:{max:60}}),e.string({key:`firmware`,label:`drone.drone.fields.firmware`,rules:{max:100}}),e.string({key:`firmware_target`,label:`drone.drone.fields.firmware_target`,rules:{max:80}}),e.image({key:`photos`,label:`drone.drone.fields.photos`,multiple:!0}),e.text({key:`notes`,label:`drone.drone.fields.notes`,rules:{max:2e3}})]}),o=t({id:`drone_battery`,label:`drone.drone_battery.label`,icon:`lucide:battery-full`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:`battery`},claude:`FPV drone battery characteristics. cells — number of cells (1S/3S/4S). capacity — capacity in mAh. c_rate — discharge current. auw — all-up weight of the assembly in flight.`,fields:[e.title({key:`name`,label:`core.fields.name`}),e.string({key:`brand`,label:`drone.drone_battery.fields.brand`,rules:{max:80}}),e.string({key:`charger`,label:`drone.drone_battery.fields.charger`,rules:{max:100}}),e.string({key:`cells`,label:`drone.drone_battery.fields.cells`,rules:{max:10}}),e.measured({key:`capacity`,label:`drone.drone_battery.fields.capacity`,options:`energy`}),e.string({key:`c_rate`,label:`drone.drone_battery.fields.c_rate`,rules:{max:20}}),e.string({key:`auw`,label:`drone.drone_battery.fields.auw`,rules:{max:40}}),e.text({key:`notes`,label:`drone.drone_battery.fields.notes`,rules:{max:2e3}})]}),s=t({id:`drone_vtx`,label:`drone.drone_vtx.label`,icon:`lucide:radio-tower`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:`vtx`},claude:`FPV video transmitter characteristics. input_voltage — input voltage. output_power — power levels. protocol — control protocol (IRC Tramp, SmartAudio). channel_count — number of channels.`,fields:[e.title({key:`name`,label:`core.fields.name`}),e.string({key:`input_voltage`,label:`drone.drone_vtx.fields.input_voltage`,rules:{max:40}}),e.string({key:`output_power`,label:`drone.drone_vtx.fields.output_power`,rules:{max:100}}),e.string({key:`protocol`,label:`drone.drone_vtx.fields.protocol`,rules:{max:60}}),e.string({key:`antenna_interface`,label:`drone.drone_vtx.fields.antenna_interface`,rules:{max:40}}),e.int({key:`channel_count`,label:`drone.drone_vtx.fields.channel_count`,rules:{min:0}}),e.string({key:`mounting`,label:`drone.drone_vtx.fields.mounting`,rules:{max:80}}),e.boolean({key:`built_in_microphone`,label:`drone.drone_vtx.fields.built_in_microphone`}),e.json({key:`frequency_groups`,label:`drone.drone_vtx.fields.frequency_groups`}),e.json({key:`output_power_levels`,label:`drone.drone_vtx.fields.output_power_levels`}),e.text({key:`notes`,label:`drone.drone_vtx.fields.notes`,rules:{max:2e3}})]}),c=t({id:`drone_gps`,label:`drone.drone_gps.label`,icon:`lucide:satellite`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:`gps`},claude:`FPV drone GPS module characteristics. gnss_chip — chipset. compass_chip — magnetometer. satellite_systems — supported satellite systems.`,fields:[e.title({key:`name`,label:`core.fields.name`}),e.string({key:`gnss_chip`,label:`drone.drone_gps.fields.gnss_chip`,rules:{max:80}}),e.string({key:`compass_chip`,label:`drone.drone_gps.fields.compass_chip`,rules:{max:60}}),e.boolean({key:`barometer`,label:`drone.drone_gps.fields.barometer`}),e.string({key:`interface`,label:`drone.drone_gps.fields.interface`,rules:{max:40}}),e.string({key:`input_voltage`,label:`drone.drone_gps.fields.input_voltage`,rules:{max:40}}),e.int({key:`update_rate_hz`,label:`drone.drone_gps.fields.update_rate_hz`,rules:{min:0}}),e.int({key:`receiving_channels`,label:`drone.drone_gps.fields.receiving_channels`,rules:{min:0}}),e.json({key:`supported_protocols`,label:`drone.drone_gps.fields.supported_protocols`}),e.json({key:`baud_rates`,label:`drone.drone_gps.fields.baud_rates`}),e.json({key:`satellite_systems`,label:`drone.drone_gps.fields.satellite_systems`}),e.text({key:`notes`,label:`drone.drone_gps.fields.notes`,rules:{max:2e3}})]}),l=t({id:`drone_flight_controller`,label:`drone.drone_flight_controller.label`,icon:`lucide:sliders-horizontal`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:`flight_controller`},claude:`FPV drone flight controller characteristics. mcu — processor (STM32F411/F405). gyro — gyroscope. supported_firmware — compatible firmware (Betaflight, INAV).`,fields:[e.title({key:`name`,label:`core.fields.name`}),e.string({key:`mcu`,label:`drone.drone_flight_controller.fields.mcu`,rules:{max:60}}),e.string({key:`gyro`,label:`drone.drone_flight_controller.fields.gyro`,rules:{max:60}}),e.boolean({key:`barometer`,label:`drone.drone_flight_controller.fields.barometer`}),e.string({key:`osd_chip`,label:`drone.drone_flight_controller.fields.osd_chip`,rules:{max:40}}),e.string({key:`blackbox`,label:`drone.drone_flight_controller.fields.blackbox`,rules:{max:40}}),e.boolean({key:`bluetooth`,label:`drone.drone_flight_controller.fields.bluetooth`}),e.boolean({key:`wifi`,label:`drone.drone_flight_controller.fields.wifi`}),e.boolean({key:`current_sensor_input`,label:`drone.drone_flight_controller.fields.current_sensor_input`}),e.string({key:`power_input`,label:`drone.drone_flight_controller.fields.power_input`,rules:{max:40}}),e.string({key:`constant_current`,label:`drone.drone_flight_controller.fields.constant_current`,rules:{max:20}}),e.string({key:`peak_current`,label:`drone.drone_flight_controller.fields.peak_current`,rules:{max:20}}),e.string({key:`bec_5v`,label:`drone.drone_flight_controller.fields.bec_5v`,rules:{max:20}}),e.string({key:`bec_9v`,label:`drone.drone_flight_controller.fields.bec_9v`,rules:{max:20}}),e.string({key:`mounting`,label:`drone.drone_flight_controller.fields.mounting`,rules:{max:60}}),e.int({key:`uart_count`,label:`drone.drone_flight_controller.fields.uart_count`,rules:{min:0}}),e.json({key:`supported_firmware`,label:`drone.drone_flight_controller.fields.supported_firmware`}),e.string({key:`firmware_target`,label:`drone.drone_flight_controller.fields.firmware_target`,rules:{max:80}}),e.string({key:`build_role`,label:`drone.drone_flight_controller.fields.build_role`,rules:{max:200}}),e.text({key:`notes`,label:`drone.drone_flight_controller.fields.notes`,rules:{max:2e3}})]}),u=t({id:`drone_goggles`,label:`drone.drone_goggles.label`,icon:`lucide:glasses`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:`goggles`},claude:`FPV goggles characteristics. display_size — display diagonal. frequency_bands — supported radio bands. battery_life — runtime on battery.`,fields:[e.title({key:`name`,label:`core.fields.name`}),e.string({key:`display_size`,label:`drone.drone_goggles.fields.display_size`,rules:{max:20}}),e.string({key:`display_resolution`,label:`drone.drone_goggles.fields.display_resolution`,rules:{max:40}}),e.string({key:`display_brightness`,label:`drone.drone_goggles.fields.display_brightness`,rules:{max:30}}),e.string({key:`view_angle`,label:`drone.drone_goggles.fields.view_angle`,rules:{max:20}}),e.string({key:`antenna`,label:`drone.drone_goggles.fields.antenna`,rules:{max:80}}),e.json({key:`frequency_bands`,label:`drone.drone_goggles.fields.frequency_bands`}),e.string({key:`battery`,label:`drone.drone_goggles.fields.battery`,rules:{max:60}}),e.string({key:`battery_life`,label:`drone.drone_goggles.fields.battery_life`,rules:{max:40}}),e.string({key:`charging`,label:`drone.drone_goggles.fields.charging`,rules:{max:60}}),e.json({key:`band_channels`,label:`drone.drone_goggles.fields.band_channels`}),e.text({key:`notes`,label:`drone.drone_goggles.fields.notes`,rules:{max:2e3}})]}),d=n({id:`drone`,version:`1.0.0`,dependsOn:[`things`],libraries:[{meta:r({id:`drone`,label:`drone.library.label`,icon:`tb:drone`,agent:`FPV drones and their components. Owns no table — the records are things/item rows with type=drone.`}),shelves:[]}],extends_:[a,o,s,c,l,u],showcases:[i({id:`fleet`,library:`drone`,label:`drone.fleet.label`,icon:`lucide:plane`,source:{library:`things`,shelf:`item`},filter:{type:`drone`},columns:[`subtype`,`brand`,`model`,`location`,`condition`],createDefaults:{type:`drone`}})],fieldContribs:[{library:`things`,shelf:`item`,field:`type`,options:[{value:`drone`,title:`drone.drone.label`}]},{library:`things`,shelf:`item`,field:`subtype`,options:[{value:`aircraft`,title:`drone.contrib.subtype.aircraft`,when:{type:`drone`}},{value:`battery`,title:`drone.drone_battery.label`,when:{type:`drone`}},{value:`vtx`,title:`drone.drone_vtx.label`,when:{type:`drone`}},{value:`gps`,title:`drone.drone_gps.label`,when:{type:`drone`}},{value:`flight_controller`,title:`drone.drone_flight_controller.label`,when:{type:`drone`}},{value:`goggles`,title:`drone.drone_goggles.label`,when:{type:`drone`}},{value:`radio`,title:`drone.contrib.subtype.radio`,when:{type:`drone`}},{value:`camera`,title:`drone.contrib.subtype.camera`,when:{type:`drone`}}]}]});export{d as default};
|