@ethereal-nexus/core 0.3.4 → 1.0.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.
Files changed (119) hide show
  1. package/LICENSE.md +201 -0
  2. package/dist/decorators/index.d.mts +1 -1
  3. package/dist/decorators/index.d.ts +1 -1
  4. package/dist/decorators/webcomponent/index.d.mts +1 -1
  5. package/dist/decorators/webcomponent/index.d.ts +1 -1
  6. package/dist/decorators/webcomponent/webcomponent.d.mts +1 -1
  7. package/dist/decorators/webcomponent/webcomponent.d.ts +1 -1
  8. package/dist/functions/component/component.d.mts +1 -1
  9. package/dist/functions/component/component.d.ts +1 -1
  10. package/dist/functions/component/index.d.mts +1 -1
  11. package/dist/functions/component/index.d.ts +1 -1
  12. package/dist/functions/index.d.mts +1 -1
  13. package/dist/functions/index.d.ts +1 -1
  14. package/dist/functions/parse/index.d.mts +1 -1
  15. package/dist/functions/parse/index.d.ts +1 -1
  16. package/dist/functions/parse/parse.d.mts +1 -1
  17. package/dist/functions/parse/parse.d.ts +1 -1
  18. package/dist/functions/parse/parsePrimitives.d.mts +1 -1
  19. package/dist/functions/parse/parsePrimitives.d.ts +1 -1
  20. package/dist/index.d.mts +1 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.js +5 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.mjs +5 -0
  25. package/dist/index.mjs.map +1 -1
  26. package/dist/schema/calendar/calendar.d.mts +1 -1
  27. package/dist/schema/calendar/calendar.d.ts +1 -1
  28. package/dist/schema/calendar/index.d.mts +1 -1
  29. package/dist/schema/calendar/index.d.ts +1 -1
  30. package/dist/schema/checkbox/checkbox.d.mts +1 -1
  31. package/dist/schema/checkbox/checkbox.d.ts +1 -1
  32. package/dist/schema/checkbox/index.d.mts +1 -1
  33. package/dist/schema/checkbox/index.d.ts +1 -1
  34. package/dist/schema/datamodel/datamodel.d.mts +1 -1
  35. package/dist/schema/datamodel/datamodel.d.ts +1 -1
  36. package/dist/schema/datamodel/index.d.mts +1 -1
  37. package/dist/schema/datamodel/index.d.ts +1 -1
  38. package/dist/schema/datasource/datasource.d.mts +1 -1
  39. package/dist/schema/datasource/datasource.d.ts +1 -1
  40. package/dist/schema/datasource/index.d.mts +1 -1
  41. package/dist/schema/datasource/index.d.ts +1 -1
  42. package/dist/schema/dialog/condition.d.mts +1 -1
  43. package/dist/schema/dialog/condition.d.ts +1 -1
  44. package/dist/schema/dialog/condition.js +5 -0
  45. package/dist/schema/dialog/condition.js.map +1 -1
  46. package/dist/schema/dialog/condition.mjs +5 -0
  47. package/dist/schema/dialog/condition.mjs.map +1 -1
  48. package/dist/schema/dialog/dialog.d.mts +1 -1
  49. package/dist/schema/dialog/dialog.d.ts +1 -1
  50. package/dist/schema/dialog/dialog.js +5 -0
  51. package/dist/schema/dialog/dialog.js.map +1 -1
  52. package/dist/schema/dialog/dialog.mjs +5 -0
  53. package/dist/schema/dialog/dialog.mjs.map +1 -1
  54. package/dist/schema/dialog/index.d.mts +1 -1
  55. package/dist/schema/dialog/index.d.ts +1 -1
  56. package/dist/schema/dialog/index.js +5 -0
  57. package/dist/schema/dialog/index.js.map +1 -1
  58. package/dist/schema/dialog/index.mjs +5 -0
  59. package/dist/schema/dialog/index.mjs.map +1 -1
  60. package/dist/schema/dialog/tabs.d.mts +1 -1
  61. package/dist/schema/dialog/tabs.d.ts +1 -1
  62. package/dist/schema/dialog/types.d.mts +1 -1
  63. package/dist/schema/dialog/types.d.ts +1 -1
  64. package/dist/schema/dialog/types.js.map +1 -1
  65. package/dist/schema/dynamic/dynamic.d.mts +1 -1
  66. package/dist/schema/dynamic/dynamic.d.ts +1 -1
  67. package/dist/schema/dynamic/index.d.mts +1 -1
  68. package/dist/schema/dynamic/index.d.ts +1 -1
  69. package/dist/schema/group/group.d.mts +1 -1
  70. package/dist/schema/group/group.d.ts +1 -1
  71. package/dist/schema/group/index.d.mts +1 -1
  72. package/dist/schema/group/index.d.ts +1 -1
  73. package/dist/schema/hidden/hidden.d.mts +1 -1
  74. package/dist/schema/hidden/hidden.d.ts +1 -1
  75. package/dist/schema/hidden/index.d.mts +1 -1
  76. package/dist/schema/hidden/index.d.ts +1 -1
  77. package/dist/schema/image/image.d.mts +1 -1
  78. package/dist/schema/image/image.d.ts +1 -1
  79. package/dist/schema/image/index.d.mts +1 -1
  80. package/dist/schema/image/index.d.ts +1 -1
  81. package/dist/schema/multifield/index.d.mts +1 -1
  82. package/dist/schema/multifield/index.d.ts +1 -1
  83. package/dist/schema/multifield/multifield.d.mts +1 -1
  84. package/dist/schema/multifield/multifield.d.ts +1 -1
  85. package/dist/schema/object/index.d.mts +1 -1
  86. package/dist/schema/object/index.d.ts +1 -1
  87. package/dist/schema/object/object.d.mts +1 -1
  88. package/dist/schema/object/object.d.ts +1 -1
  89. package/dist/schema/optional/index.d.mts +1 -1
  90. package/dist/schema/optional/index.d.ts +1 -1
  91. package/dist/schema/optional/optional.d.mts +1 -1
  92. package/dist/schema/optional/optional.d.ts +1 -1
  93. package/dist/schema/pathbrowser/index.d.mts +1 -1
  94. package/dist/schema/pathbrowser/index.d.ts +1 -1
  95. package/dist/schema/pathbrowser/pathbrowser.d.mts +1 -1
  96. package/dist/schema/pathbrowser/pathbrowser.d.ts +1 -1
  97. package/dist/schema/rte/index.d.mts +1 -1
  98. package/dist/schema/rte/index.d.ts +1 -1
  99. package/dist/schema/rte/rte.d.mts +1 -1
  100. package/dist/schema/rte/rte.d.ts +1 -1
  101. package/dist/schema/select/index.d.mts +1 -1
  102. package/dist/schema/select/index.d.ts +1 -1
  103. package/dist/schema/select/select.d.mts +1 -1
  104. package/dist/schema/select/select.d.ts +1 -1
  105. package/dist/schema/text/index.d.mts +1 -1
  106. package/dist/schema/text/index.d.ts +1 -1
  107. package/dist/schema/text/text.d.mts +1 -1
  108. package/dist/schema/text/text.d.ts +1 -1
  109. package/dist/types/index.d.mts +1 -1
  110. package/dist/types/index.d.ts +1 -1
  111. package/dist/types/infer.d.mts +1 -1
  112. package/dist/types/infer.d.ts +1 -1
  113. package/dist/types/object.d.mts +1 -1
  114. package/dist/types/object.d.ts +1 -1
  115. package/dist/types/schema.d.mts +1 -1
  116. package/dist/types/schema.d.ts +1 -1
  117. package/dist/{types-rfg_xywc.d.ts → types-Cvbi87LT.d.ts} +4 -1
  118. package/dist/{types-B8taWezd.d.mts → types-DUGwdG43.d.mts} +4 -1
  119. package/package.json +7 -7
@@ -62,6 +62,11 @@ function addConditionToField(fields, path, condition) {
62
62
  if (!field.children) {
63
63
  throw new Error(`Field with id "${key}" has no children`);
64
64
  }
65
+ const nextKey = keys[i + 1];
66
+ if (nextKey === "$this") {
67
+ field.condition = condition;
68
+ break;
69
+ }
65
70
  currentFields = field.children;
66
71
  }
67
72
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schema/dialog/tabs.ts","../../../src/schema/dialog/condition.ts","../../../src/utils/pathToArray.ts","../../../src/schema/dialog/dialog.ts"],"sourcesContent":["import { EntryMask } from '../../types';\nimport { Field } from './types';\n\nexport class Tabs<TEntries> {\n private tabs = new Map<string, EntryMask<TEntries>>();\n\n addTab(name: string, entries: EntryMask<TEntries>) {\n this.tabs.set(name, entries);\n }\n\n parse(entries: Field[]) {\n const result = []\n const usedEntries = new Set();\n\n if(this.tabs.size === 0) {\n return entries\n }\n\n for(const [name, mask] of this.tabs) {\n const children = []\n\n if(!mask) {\n throw new Error(`Entry \"${String(name)}\" does not have an appropriate tab configuration.`);\n }\n\n for(const [key,] of Object.entries(mask)) {\n const field = entries.find(f => f.id === key)\n\n if (usedEntries.has(key)) {\n throw new Error(`Entry \"${String(name)}.${String(key)}\" is already used in another tab.`);\n }\n\n if(!field) {\n throw new Error(`Field with id \"${key}\" not found`);\n }\n\n children.push(entries.find(f => f.id === key))\n }\n\n result.push({\n type: 'tab',\n label: name,\n id: `tab_${name.toLowerCase().replaceAll(' ', '')}`,\n children\n })\n }\n\n return [{\n type: 'tabs',\n id: 'tabs',\n children: result\n }]\n }\n}","import { NestedPaths } from '../../types';\nimport { ConditionFn, ConditionOperators, Conditions, Field } from './types';\nimport { ObjectEntries } from '../../types/object';\n\nfunction addConditionToField(fields: Field[], path: string, condition: Conditions): void {\n const keys = path.split('.');\n let currentFields = fields;\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const field = currentFields.find(f => f.id === key);\n\n if (!field) {\n throw new Error(`Field with id \"${key}\" not found`);\n }\n\n if (i === keys.length - 1) {\n field.condition = condition;\n } else {\n if (!field.children) {\n throw new Error(`Field with id \"${key}\" has no children`);\n }\n currentFields = field.children;\n }\n }\n}\n\nexport class Condition<TEntries extends ObjectEntries> {\n private conditions = new Map<string, Conditions>();\n\n addCondition(field: NestedPaths<TEntries>, condition: ConditionFn<TEntries>) {\n const operators: ConditionOperators<TEntries> = {\n eq: (field, value) => ({ operator: 'eq', field, value }),\n neq: (field, value) => ({ operator: 'neq', field, value }),\n exists: (field) => ({ operator: 'exists', field }),\n and: (...operations) => ({ operator: 'and', value: operations }),\n or: (...operations) => ({ operator: 'or', value: operations })\n };\n\n this.conditions.set(field, condition(operators));\n }\n\n parse(entries: Field[]) {\n for (let [key, value] of this.conditions) {\n addConditionToField(entries, key, value)\n }\n\n return entries;\n }\n}\n","interface PathValue {\n path: string[];\n value: any;\n}\n\nexport function pathToArray(obj: Record<string, any>, parentPath: string[] = []): PathValue[] {\n const result: PathValue[] = [];\n\n for (const [key, value] of Object.entries(obj)) {\n const currentPath = [...parentPath, key];\n\n if (typeof value === 'object' && !value.hasOwnProperty('operator') && !Array.isArray(value)) {\n // If the value is an object, recurse into it\n result.push(...pathToArray(value, currentPath));\n } else {\n // If the value is not an object, store the path and value\n result.push({ path: currentPath, value });\n }\n }\n\n return result;\n}","import { BaseSchema, EntryMask, NestedPaths } from '../../types';\nimport { ObjectEntries, ObjectOutput } from '../../types/object';\nimport { Tabs } from './tabs';\nimport { WebcomponentPropTypes } from '../../types/webcomponent';\nimport { Condition } from './condition';\nimport { pathToArray } from '../../utils/pathToArray';\nimport { ConditionsArgument } from './types';\n\nexport interface DialogSchema<TEntries extends ObjectEntries> extends BaseSchema<ObjectOutput<TEntries>> {\n type: 'dialog';\n tabs: (tabs: Record<string, EntryMask<TEntries>>) => DialogSchema<TEntries>;\n conditions: (conditions: ConditionsArgument<TEntries>) => DialogSchema<TEntries>;\n}\n\nclass DialogBuilder<TEntries extends ObjectEntries> implements DialogSchema<TEntries> {\n private conditionsModule: Condition<TEntries>;\n private tabsModule: Tabs<TEntries>;\n private readonly entries: TEntries;\n readonly type = 'dialog';\n\n constructor(entries: TEntries) {\n this.entries = entries;\n this.conditionsModule = new Condition<TEntries>();\n this.tabsModule = new Tabs<TEntries>();\n }\n\n conditions(conditions: ConditionsArgument<TEntries>) {\n const conditionsArray = pathToArray(conditions)\n for (const condition of conditionsArray) {\n this.conditionsModule.addCondition(condition.path.join('.') as NestedPaths<TEntries>, condition.value);\n }\n return this;\n }\n\n tabs(tabs: Record<string, EntryMask<TEntries>>) {\n for (const [key, tab] of Object.entries(tabs)) {\n this.tabsModule.addTab(key as any, tab!);\n }\n return this;\n }\n\n _parse() {\n const dialog = Object.entries(this.entries)\n .map(([key, entry]) => ({\n id: key,\n name: key,\n ...entry._parse(),\n }))\n .filter((entry: object) => {\n if ('type' in entry) {\n return entry.type !== 'hidden';\n }\n });\n\n const dialogWithConditions = this.conditionsModule.parse(dialog);\n const dialogWithTabs = this.tabsModule.parse(dialogWithConditions);\n return {\n dialog: dialogWithTabs\n };\n }\n\n _primitive() {\n const result: Record<string, WebcomponentPropTypes> = {};\n\n for (const [key, entry] of Object.entries(this.entries)) {\n const type = entry._primitive();\n if (typeof type === 'string') {\n result[key] = type;\n }\n }\n\n return result;\n }\n}\n\nexport function dialog<TEntries extends ObjectEntries>(entries: TEntries) {\n return new DialogBuilder(entries)\n}"],"mappings":"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","names":["field","dialog"]}
1
+ {"version":3,"sources":["../../../src/schema/dialog/tabs.ts","../../../src/schema/dialog/condition.ts","../../../src/utils/pathToArray.ts","../../../src/schema/dialog/dialog.ts"],"sourcesContent":["import { EntryMask } from '../../types';\nimport { Field } from './types';\n\nexport class Tabs<TEntries> {\n private tabs = new Map<string, EntryMask<TEntries>>();\n\n addTab(name: string, entries: EntryMask<TEntries>) {\n this.tabs.set(name, entries);\n }\n\n parse(entries: Field[]) {\n const result = []\n const usedEntries = new Set();\n\n if(this.tabs.size === 0) {\n return entries\n }\n\n for(const [name, mask] of this.tabs) {\n const children = []\n\n if(!mask) {\n throw new Error(`Entry \"${String(name)}\" does not have an appropriate tab configuration.`);\n }\n\n for(const [key,] of Object.entries(mask)) {\n const field = entries.find(f => f.id === key)\n\n if (usedEntries.has(key)) {\n throw new Error(`Entry \"${String(name)}.${String(key)}\" is already used in another tab.`);\n }\n\n if(!field) {\n throw new Error(`Field with id \"${key}\" not found`);\n }\n\n children.push(entries.find(f => f.id === key))\n }\n\n result.push({\n type: 'tab',\n label: name,\n id: `tab_${name.toLowerCase().replaceAll(' ', '')}`,\n children\n })\n }\n\n return [{\n type: 'tabs',\n id: 'tabs',\n children: result\n }]\n }\n}","import { NestedPaths } from '../../types';\nimport { ConditionFn, ConditionOperators, Conditions, Field } from './types';\nimport { ObjectEntries } from '../../types/object';\n\nfunction addConditionToField(fields: Field[], path: string, condition: Conditions): void {\n const keys = path.split('.');\n let currentFields = fields;\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const field = currentFields.find(f => f.id === key);\n\n if (!field) {\n throw new Error(`Field with id \"${key}\" not found`);\n }\n\n if (i === keys.length - 1) {\n field.condition = condition;\n } else {\n if (!field.children) {\n throw new Error(`Field with id \"${key}\" has no children`);\n }\n\n const nextKey = keys[i + 1];\n if(nextKey === '$this') {\n field.condition = condition;\n break;\n }\n currentFields = field.children;\n }\n }\n}\n\nexport class Condition<TEntries extends ObjectEntries> {\n private conditions = new Map<string, Conditions>();\n\n addCondition(field: NestedPaths<TEntries>, condition: ConditionFn<TEntries>) {\n const operators: ConditionOperators<TEntries> = {\n eq: (field, value) => ({ operator: 'eq', field, value }),\n neq: (field, value) => ({ operator: 'neq', field, value }),\n exists: (field) => ({ operator: 'exists', field }),\n and: (...operations) => ({ operator: 'and', value: operations }),\n or: (...operations) => ({ operator: 'or', value: operations })\n };\n\n this.conditions.set(field, condition(operators));\n }\n\n parse(entries: Field[]) {\n for (let [key, value] of this.conditions) {\n addConditionToField(entries, key, value)\n }\n\n return entries;\n }\n}\n","interface PathValue {\n path: string[];\n value: any;\n}\n\nexport function pathToArray(obj: Record<string, any>, parentPath: string[] = []): PathValue[] {\n const result: PathValue[] = [];\n\n for (const [key, value] of Object.entries(obj)) {\n const currentPath = [...parentPath, key];\n\n if (typeof value === 'object' && !value.hasOwnProperty('operator') && !Array.isArray(value)) {\n // If the value is an object, recurse into it\n result.push(...pathToArray(value, currentPath));\n } else {\n // If the value is not an object, store the path and value\n result.push({ path: currentPath, value });\n }\n }\n\n return result;\n}","import { BaseSchema, EntryMask, NestedPaths } from '../../types';\nimport { ObjectEntries, ObjectOutput } from '../../types/object';\nimport { Tabs } from './tabs';\nimport { WebcomponentPropTypes } from '../../types/webcomponent';\nimport { Condition } from './condition';\nimport { pathToArray } from '../../utils/pathToArray';\nimport { ConditionsArgument } from './types';\n\nexport interface DialogSchema<TEntries extends ObjectEntries> extends BaseSchema<ObjectOutput<TEntries>> {\n type: 'dialog';\n tabs: (tabs: Record<string, EntryMask<TEntries>>) => DialogSchema<TEntries>;\n conditions: (conditions: ConditionsArgument<TEntries>) => DialogSchema<TEntries>;\n}\n\nclass DialogBuilder<TEntries extends ObjectEntries> implements DialogSchema<TEntries> {\n private conditionsModule: Condition<TEntries>;\n private tabsModule: Tabs<TEntries>;\n private readonly entries: TEntries;\n readonly type = 'dialog';\n\n constructor(entries: TEntries) {\n this.entries = entries;\n this.conditionsModule = new Condition<TEntries>();\n this.tabsModule = new Tabs<TEntries>();\n }\n\n conditions(conditions: ConditionsArgument<TEntries>) {\n const conditionsArray = pathToArray(conditions)\n for (const condition of conditionsArray) {\n this.conditionsModule.addCondition(condition.path.join('.') as NestedPaths<TEntries>, condition.value);\n }\n return this;\n }\n\n tabs(tabs: Record<string, EntryMask<TEntries>>) {\n for (const [key, tab] of Object.entries(tabs)) {\n this.tabsModule.addTab(key as any, tab!);\n }\n return this;\n }\n\n _parse() {\n const dialog = Object.entries(this.entries)\n .map(([key, entry]) => ({\n id: key,\n name: key,\n ...entry._parse(),\n }))\n .filter((entry: object) => {\n if ('type' in entry) {\n return entry.type !== 'hidden';\n }\n });\n\n const dialogWithConditions = this.conditionsModule.parse(dialog);\n const dialogWithTabs = this.tabsModule.parse(dialogWithConditions);\n return {\n dialog: dialogWithTabs\n };\n }\n\n _primitive() {\n const result: Record<string, WebcomponentPropTypes> = {};\n\n for (const [key, entry] of Object.entries(this.entries)) {\n const type = entry._primitive();\n if (typeof type === 'string') {\n result[key] = type;\n }\n }\n\n return result;\n }\n}\n\nexport function dialog<TEntries extends ObjectEntries>(entries: TEntries) {\n return new DialogBuilder(entries)\n}"],"mappings":";;;;;AAGO,IAAM,OAAN,MAAqB;AAAA,EAArB;AACL,wBAAQ,QAAO,oBAAI,IAAiC;AAAA;AAAA,EAEpD,OAAO,MAAc,SAA8B;AACjD,SAAK,KAAK,IAAI,MAAM,OAAO;AAAA,EAC7B;AAAA,EAEA,MAAM,SAAkB;AACtB,UAAM,SAAS,CAAC;AAChB,UAAM,cAAc,oBAAI,IAAI;AAE5B,QAAG,KAAK,KAAK,SAAS,GAAG;AACvB,aAAO;AAAA,IACT;AAEA,eAAU,CAAC,MAAM,IAAI,KAAK,KAAK,MAAM;AACnC,YAAM,WAAW,CAAC;AAElB,UAAG,CAAC,MAAM;AACR,cAAM,IAAI,MAAM,UAAU,OAAO,IAAI,CAAC,mDAAmD;AAAA,MAC3F;AAEA,iBAAU,CAAC,GAAI,KAAK,OAAO,QAAQ,IAAI,GAAG;AACxC,cAAM,QAAQ,QAAQ,KAAK,OAAK,EAAE,OAAO,GAAG;AAE5C,YAAI,YAAY,IAAI,GAAG,GAAG;AACxB,gBAAM,IAAI,MAAM,UAAU,OAAO,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,mCAAmC;AAAA,QAC1F;AAEA,YAAG,CAAC,OAAO;AACT,gBAAM,IAAI,MAAM,kBAAkB,GAAG,aAAa;AAAA,QACpD;AAEA,iBAAS,KAAK,QAAQ,KAAK,OAAK,EAAE,OAAO,GAAG,CAAC;AAAA,MAC/C;AAEA,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,OAAO;AAAA,QACP,IAAI,OAAO,KAAK,YAAY,EAAE,WAAW,KAAK,EAAE,CAAC;AAAA,QACjD;AAAA,MACF,CAAC;AAAA,IACH;AAEA,WAAO,CAAC;AAAA,MACN,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AACF;;;ACjDA,SAAS,oBAAoB,QAAiB,MAAc,WAA6B;AACvF,QAAM,OAAO,KAAK,MAAM,GAAG;AAC3B,MAAI,gBAAgB;AAEpB,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,UAAM,MAAM,KAAK,CAAC;AAClB,UAAM,QAAQ,cAAc,KAAK,OAAK,EAAE,OAAO,GAAG;AAElD,QAAI,CAAC,OAAO;AACV,YAAM,IAAI,MAAM,kBAAkB,GAAG,aAAa;AAAA,IACpD;AAEA,QAAI,MAAM,KAAK,SAAS,GAAG;AACzB,YAAM,YAAY;AAAA,IACpB,OAAO;AACL,UAAI,CAAC,MAAM,UAAU;AACnB,cAAM,IAAI,MAAM,kBAAkB,GAAG,mBAAmB;AAAA,MAC1D;AAEA,YAAM,UAAU,KAAK,IAAI,CAAC;AAC1B,UAAG,YAAY,SAAS;AACtB,cAAM,YAAY;AAClB;AAAA,MACF;AACA,sBAAgB,MAAM;AAAA,IACxB;AAAA,EACF;AACF;AAEO,IAAM,YAAN,MAAgD;AAAA,EAAhD;AACL,wBAAQ,cAAa,oBAAI,IAAwB;AAAA;AAAA,EAEjD,aAAa,OAA8B,WAAkC;AAC3E,UAAM,YAA0C;AAAA,MAC9C,IAAI,CAACA,QAAO,WAAW,EAAE,UAAU,MAAM,OAAAA,QAAO,MAAM;AAAA,MACtD,KAAK,CAACA,QAAO,WAAW,EAAE,UAAU,OAAO,OAAAA,QAAO,MAAM;AAAA,MACxD,QAAQ,CAACA,YAAW,EAAE,UAAU,UAAU,OAAAA,OAAM;AAAA,MAChD,KAAK,IAAI,gBAAgB,EAAE,UAAU,OAAO,OAAO,WAAW;AAAA,MAC9D,IAAI,IAAI,gBAAgB,EAAE,UAAU,MAAM,OAAO,WAAW;AAAA,IAC9D;AAEA,SAAK,WAAW,IAAI,OAAO,UAAU,SAAS,CAAC;AAAA,EACjD;AAAA,EAEA,MAAM,SAAkB;AACtB,aAAS,CAAC,KAAK,KAAK,KAAK,KAAK,YAAY;AACxC,0BAAoB,SAAS,KAAK,KAAK;AAAA,IACzC;AAEA,WAAO;AAAA,EACT;AACF;;;AClDO,SAAS,YAAY,KAA0B,aAAuB,CAAC,GAAgB;AAC5F,QAAM,SAAsB,CAAC;AAE7B,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,UAAM,cAAc,CAAC,GAAG,YAAY,GAAG;AAEvC,QAAI,OAAO,UAAU,YAAY,CAAC,MAAM,eAAe,UAAU,KAAK,CAAC,MAAM,QAAQ,KAAK,GAAG;AAE3F,aAAO,KAAK,GAAG,YAAY,OAAO,WAAW,CAAC;AAAA,IAChD,OAAO;AAEL,aAAO,KAAK,EAAE,MAAM,aAAa,MAAM,CAAC;AAAA,IAC1C;AAAA,EACF;AAEA,SAAO;AACT;;;ACPA,IAAM,gBAAN,MAAsF;AAAA,EAMpF,YAAY,SAAmB;AAL/B,wBAAQ;AACR,wBAAQ;AACR,wBAAiB;AACjB,wBAAS,QAAO;AAGd,SAAK,UAAU;AACf,SAAK,mBAAmB,IAAI,UAAoB;AAChD,SAAK,aAAa,IAAI,KAAe;AAAA,EACvC;AAAA,EAEA,WAAW,YAA0C;AACnD,UAAM,kBAAkB,YAAY,UAAU;AAC9C,eAAW,aAAa,iBAAiB;AACvC,WAAK,iBAAiB,aAAa,UAAU,KAAK,KAAK,GAAG,GAA4B,UAAU,KAAK;AAAA,IACvG;AACA,WAAO;AAAA,EACT;AAAA,EAEA,KAAK,MAA2C;AAC9C,eAAW,CAAC,KAAK,GAAG,KAAK,OAAO,QAAQ,IAAI,GAAG;AAC7C,WAAK,WAAW,OAAO,KAAY,GAAI;AAAA,IACzC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,SAAS;AACP,UAAMC,UAAS,OAAO,QAAQ,KAAK,OAAO,EACvC,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO;AAAA,MACtB,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,GAAG,MAAM,OAAO;AAAA,IAClB,EAAE,EACD,OAAO,CAAC,UAAkB;AACzB,UAAI,UAAU,OAAO;AACnB,eAAO,MAAM,SAAS;AAAA,MACxB;AAAA,IACF,CAAC;AAEH,UAAM,uBAAuB,KAAK,iBAAiB,MAAMA,OAAM;AAC/D,UAAM,iBAAiB,KAAK,WAAW,MAAM,oBAAoB;AACjE,WAAO;AAAA,MACL,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EAEA,aAAa;AACX,UAAM,SAAgD,CAAC;AAEvD,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,OAAO,GAAG;AACvD,YAAM,OAAO,MAAM,WAAW;AAC9B,UAAI,OAAO,SAAS,UAAU;AAC5B,eAAO,GAAG,IAAI;AAAA,MAChB;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEO,SAAS,OAAuC,SAAmB;AACxE,SAAO,IAAI,cAAc,OAAO;AAClC;","names":["field","dialog"]}
@@ -1,5 +1,5 @@
1
1
  import { EntryMask } from '../../types/utils.mjs';
2
- import { F as Field } from '../../types-B8taWezd.mjs';
2
+ import { F as Field } from '../../types-DUGwdG43.mjs';
3
3
  import '../../types/webcomponent.mjs';
4
4
 
5
5
  declare class Tabs<TEntries> {
@@ -1,5 +1,5 @@
1
1
  import { EntryMask } from '../../types/utils.js';
2
- import { F as Field } from '../../types-rfg_xywc.js';
2
+ import { F as Field } from '../../types-Cvbi87LT.js';
3
3
  import '../../types/webcomponent.js';
4
4
 
5
5
  declare class Tabs<TEntries> {
@@ -1,3 +1,3 @@
1
- export { b as ConditionFn, a as ConditionOperators, C as Conditions, c as ConditionsArgument, F as Field } from '../../types-B8taWezd.mjs';
1
+ export { b as ConditionFn, a as ConditionOperators, C as Conditions, c as ConditionsArgument, F as Field } from '../../types-DUGwdG43.mjs';
2
2
  import '../../types/utils.mjs';
3
3
  import '../../types/webcomponent.mjs';
@@ -1,3 +1,3 @@
1
- export { b as ConditionFn, a as ConditionOperators, C as Conditions, c as ConditionsArgument, F as Field } from '../../types-rfg_xywc.js';
1
+ export { b as ConditionFn, a as ConditionOperators, C as Conditions, c as ConditionsArgument, F as Field } from '../../types-Cvbi87LT.js';
2
2
  import '../../types/utils.js';
3
3
  import '../../types/webcomponent.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schema/dialog/types.ts"],"sourcesContent":["import { ObjectEntries, ObjectOutput } from '../../types/object';\nimport { AddType, DeepPartial, LeavesPath, NodesPath, PathValue, UnArray } from '../../types';\n\ntype Operators = 'eq' | 'neq' | 'and' | 'or' | 'exists'\n\nexport interface Conditions<T extends Operators = Operators> {\n operator: T;\n field?: string;\n value?: any;\n}\n\nexport interface ConditionOperators<TEntries extends ObjectEntries = any> {\n eq: <P extends NodesPath<UnArray<ObjectOutput<TEntries>>>>(\n field: P,\n value: PathValue<UnArray<ObjectOutput<TEntries>>, P>\n ) => Conditions<'eq'>;\n neq: <P extends NodesPath<UnArray<ObjectOutput<TEntries>>>>(\n field: P,\n value: PathValue<UnArray<ObjectOutput<TEntries>>, P>\n ) => Conditions<'neq'>;\n exists: <P extends NodesPath<UnArray<ObjectOutput<TEntries>>>>(\n field: P,\n ) => Conditions<'exists'>;\n and: (...args: Conditions[]) => Conditions<'and'>;\n or: (...args: Conditions[]) => Conditions<'or'>;\n}\n\nexport type ConditionFn<TEntries extends ObjectEntries> = (ops: ConditionOperators<TEntries>) => Conditions;\n\nexport type ConditionsArgument<TEntries extends ObjectEntries> = AddType<UnArray<DeepPartial<ObjectOutput<TEntries>>>, ConditionFn<TEntries>>\n\nexport type Field = { id: string, condition?: Conditions, children?: Field[] }"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../src/schema/dialog/types.ts"],"sourcesContent":["import { ObjectEntries, ObjectOutput } from '../../types/object';\nimport { AddType, DeepPartial, LeavesPath, NodesPath, PathValue, UnArray } from '../../types';\n\ntype Operators = 'eq' | 'neq' | 'and' | 'or' | 'exists'\n\nexport interface Conditions<T extends Operators = Operators> {\n operator: T;\n field?: string;\n value?: any;\n}\n\nexport interface ConditionOperators<TEntries extends ObjectEntries = any> {\n eq: <P extends NodesPath<UnArray<ObjectOutput<TEntries>>>>(\n field: P,\n value: PathValue<UnArray<ObjectOutput<TEntries>>, P>\n ) => Conditions<'eq'>;\n neq: <P extends NodesPath<UnArray<ObjectOutput<TEntries>>>>(\n field: P,\n value: PathValue<UnArray<ObjectOutput<TEntries>>, P>\n ) => Conditions<'neq'>;\n exists: <P extends NodesPath<UnArray<ObjectOutput<TEntries>>>>(\n field: P,\n ) => Conditions<'exists'>;\n and: (...args: Conditions[]) => Conditions<'and'>;\n or: (...args: Conditions[]) => Conditions<'or'>;\n}\n\nexport type ConditionFn<TEntries extends ObjectEntries> = (ops: ConditionOperators<TEntries>) => Conditions;\n\ntype ThisPlaceholder = symbol\nexport type ConditionsArgument<TEntries extends ObjectEntries> = AddType<UnArray<DeepPartial<AddType<ObjectOutput<TEntries>, {$this: ThisPlaceholder}>>>, ConditionFn<TEntries>>\n\nexport type Field = { id: string, condition?: Conditions, children?: Field[] }"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema } from '../../types-B8taWezd.mjs';
1
+ import { B as BaseSchema } from '../../types-DUGwdG43.mjs';
2
2
  import '../../types/webcomponent.mjs';
3
3
  import '../../types/utils.mjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema } from '../../types-rfg_xywc.js';
1
+ import { B as BaseSchema } from '../../types-Cvbi87LT.js';
2
2
  import '../../types/webcomponent.js';
3
3
  import '../../types/utils.js';
4
4
 
@@ -1,4 +1,4 @@
1
1
  export { DynamicZoneSchema, dynamic } from './dynamic.mjs';
2
- import '../../types-B8taWezd.mjs';
2
+ import '../../types-DUGwdG43.mjs';
3
3
  import '../../types/webcomponent.mjs';
4
4
  import '../../types/utils.mjs';
@@ -1,4 +1,4 @@
1
1
  export { DynamicZoneSchema, dynamic } from './dynamic.js';
2
- import '../../types-rfg_xywc.js';
2
+ import '../../types-Cvbi87LT.js';
3
3
  import '../../types/webcomponent.js';
4
4
  import '../../types/utils.js';
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-B8taWezd.mjs';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-DUGwdG43.mjs';
2
2
  import { InferOutput } from '../../types/infer.mjs';
3
3
  import '../../types/webcomponent.mjs';
4
4
  import '../../types/utils.mjs';
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-rfg_xywc.js';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-Cvbi87LT.js';
2
2
  import { InferOutput } from '../../types/infer.js';
3
3
  import '../../types/webcomponent.js';
4
4
  import '../../types/utils.js';
@@ -1,5 +1,5 @@
1
1
  export { GroupSchema, group } from './group.mjs';
2
- import '../../types-B8taWezd.mjs';
2
+ import '../../types-DUGwdG43.mjs';
3
3
  import '../../types/webcomponent.mjs';
4
4
  import '../../types/utils.mjs';
5
5
  import '../../types/infer.mjs';
@@ -1,5 +1,5 @@
1
1
  export { GroupSchema, group } from './group.js';
2
- import '../../types-rfg_xywc.js';
2
+ import '../../types-Cvbi87LT.js';
3
3
  import '../../types/webcomponent.js';
4
4
  import '../../types/utils.js';
5
5
  import '../../types/infer.js';
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema } from '../../types-B8taWezd.mjs';
1
+ import { B as BaseSchema } from '../../types-DUGwdG43.mjs';
2
2
  import { WebcomponentPropTypes } from '../../types/webcomponent.mjs';
3
3
  import '../../types/utils.mjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema } from '../../types-rfg_xywc.js';
1
+ import { B as BaseSchema } from '../../types-Cvbi87LT.js';
2
2
  import { WebcomponentPropTypes } from '../../types/webcomponent.js';
3
3
  import '../../types/utils.js';
4
4
 
@@ -1,4 +1,4 @@
1
1
  export { HiddenSchema, hidden } from './hidden.mjs';
2
- import '../../types-B8taWezd.mjs';
2
+ import '../../types-DUGwdG43.mjs';
3
3
  import '../../types/webcomponent.mjs';
4
4
  import '../../types/utils.mjs';
@@ -1,4 +1,4 @@
1
1
  export { HiddenSchema, hidden } from './hidden.js';
2
- import '../../types-rfg_xywc.js';
2
+ import '../../types-Cvbi87LT.js';
3
3
  import '../../types/webcomponent.js';
4
4
  import '../../types/utils.js';
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-B8taWezd.mjs';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-DUGwdG43.mjs';
2
2
  import '../../types/webcomponent.mjs';
3
3
  import '../../types/utils.mjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-rfg_xywc.js';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-Cvbi87LT.js';
2
2
  import '../../types/webcomponent.js';
3
3
  import '../../types/utils.js';
4
4
 
@@ -1,4 +1,4 @@
1
1
  export { ImageSchema, image } from './image.mjs';
2
- import '../../types-B8taWezd.mjs';
2
+ import '../../types-DUGwdG43.mjs';
3
3
  import '../../types/webcomponent.mjs';
4
4
  import '../../types/utils.mjs';
@@ -1,4 +1,4 @@
1
1
  export { ImageSchema, image } from './image.js';
2
- import '../../types-rfg_xywc.js';
2
+ import '../../types-Cvbi87LT.js';
3
3
  import '../../types/webcomponent.js';
4
4
  import '../../types/utils.js';
@@ -1,5 +1,5 @@
1
1
  export { MultifieldSchema, multifield } from './multifield.mjs';
2
- import '../../types-B8taWezd.mjs';
2
+ import '../../types-DUGwdG43.mjs';
3
3
  import '../../types/webcomponent.mjs';
4
4
  import '../../types/utils.mjs';
5
5
  import '../../types/infer.mjs';
@@ -1,5 +1,5 @@
1
1
  export { MultifieldSchema, multifield } from './multifield.js';
2
- import '../../types-rfg_xywc.js';
2
+ import '../../types-Cvbi87LT.js';
3
3
  import '../../types/webcomponent.js';
4
4
  import '../../types/utils.js';
5
5
  import '../../types/infer.js';
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-B8taWezd.mjs';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-DUGwdG43.mjs';
2
2
  import { InferOutput } from '../../types/infer.mjs';
3
3
  import '../../types/webcomponent.mjs';
4
4
  import '../../types/utils.mjs';
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-rfg_xywc.js';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-Cvbi87LT.js';
2
2
  import { InferOutput } from '../../types/infer.js';
3
3
  import '../../types/webcomponent.js';
4
4
  import '../../types/utils.js';
@@ -1,4 +1,4 @@
1
1
  export { ObjectSchema, object } from './object.mjs';
2
- import '../../types-B8taWezd.mjs';
2
+ import '../../types-DUGwdG43.mjs';
3
3
  import '../../types/webcomponent.mjs';
4
4
  import '../../types/utils.mjs';
@@ -1,4 +1,4 @@
1
1
  export { ObjectSchema, object } from './object.js';
2
- import '../../types-rfg_xywc.js';
2
+ import '../../types-Cvbi87LT.js';
3
3
  import '../../types/webcomponent.js';
4
4
  import '../../types/utils.js';
@@ -1,4 +1,4 @@
1
- import { f as ObjectEntries, g as ObjectOutput, B as BaseSchema } from '../../types-B8taWezd.mjs';
1
+ import { f as ObjectEntries, g as ObjectOutput, B as BaseSchema } from '../../types-DUGwdG43.mjs';
2
2
  import '../../types/webcomponent.mjs';
3
3
  import '../../types/utils.mjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { f as ObjectEntries, g as ObjectOutput, B as BaseSchema } from '../../types-rfg_xywc.js';
1
+ import { f as ObjectEntries, g as ObjectOutput, B as BaseSchema } from '../../types-Cvbi87LT.js';
2
2
  import '../../types/webcomponent.js';
3
3
  import '../../types/utils.js';
4
4
 
@@ -1,3 +1,3 @@
1
- export { O as OptionalSchema, o as optional } from '../../types-B8taWezd.mjs';
1
+ export { O as OptionalSchema, o as optional } from '../../types-DUGwdG43.mjs';
2
2
  import '../../types/webcomponent.mjs';
3
3
  import '../../types/utils.mjs';
@@ -1,3 +1,3 @@
1
- export { O as OptionalSchema, o as optional } from '../../types-rfg_xywc.js';
1
+ export { O as OptionalSchema, o as optional } from '../../types-Cvbi87LT.js';
2
2
  import '../../types/webcomponent.js';
3
3
  import '../../types/utils.js';
@@ -1,3 +1,3 @@
1
- export { O as OptionalSchema, o as optional } from '../../types-B8taWezd.mjs';
1
+ export { O as OptionalSchema, o as optional } from '../../types-DUGwdG43.mjs';
2
2
  import '../../types/webcomponent.mjs';
3
3
  import '../../types/utils.mjs';
@@ -1,3 +1,3 @@
1
- export { O as OptionalSchema, o as optional } from '../../types-rfg_xywc.js';
1
+ export { O as OptionalSchema, o as optional } from '../../types-Cvbi87LT.js';
2
2
  import '../../types/webcomponent.js';
3
3
  import '../../types/utils.js';
@@ -1,4 +1,4 @@
1
1
  export { PathBrowserSchema, pathbrowser } from './pathbrowser.mjs';
2
- import '../../types-B8taWezd.mjs';
2
+ import '../../types-DUGwdG43.mjs';
3
3
  import '../../types/webcomponent.mjs';
4
4
  import '../../types/utils.mjs';
@@ -1,4 +1,4 @@
1
1
  export { PathBrowserSchema, pathbrowser } from './pathbrowser.js';
2
- import '../../types-rfg_xywc.js';
2
+ import '../../types-Cvbi87LT.js';
3
3
  import '../../types/webcomponent.js';
4
4
  import '../../types/utils.js';
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-B8taWezd.mjs';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-DUGwdG43.mjs';
2
2
  import '../../types/webcomponent.mjs';
3
3
  import '../../types/utils.mjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-rfg_xywc.js';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-Cvbi87LT.js';
2
2
  import '../../types/webcomponent.js';
3
3
  import '../../types/utils.js';
4
4
 
@@ -1,4 +1,4 @@
1
1
  export { RichTextEditorSchema, rte } from './rte.mjs';
2
- import '../../types-B8taWezd.mjs';
2
+ import '../../types-DUGwdG43.mjs';
3
3
  import '../../types/webcomponent.mjs';
4
4
  import '../../types/utils.mjs';
@@ -1,4 +1,4 @@
1
1
  export { RichTextEditorSchema, rte } from './rte.js';
2
- import '../../types-rfg_xywc.js';
2
+ import '../../types-Cvbi87LT.js';
3
3
  import '../../types/webcomponent.js';
4
4
  import '../../types/utils.js';
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-B8taWezd.mjs';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-DUGwdG43.mjs';
2
2
  import '../../types/webcomponent.mjs';
3
3
  import '../../types/utils.mjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-rfg_xywc.js';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-Cvbi87LT.js';
2
2
  import '../../types/webcomponent.js';
3
3
  import '../../types/utils.js';
4
4
 
@@ -1,4 +1,4 @@
1
1
  export { SelectSchema, select } from './select.mjs';
2
- import '../../types-B8taWezd.mjs';
2
+ import '../../types-DUGwdG43.mjs';
3
3
  import '../../types/webcomponent.mjs';
4
4
  import '../../types/utils.mjs';
@@ -1,4 +1,4 @@
1
1
  export { SelectSchema, select } from './select.js';
2
- import '../../types-rfg_xywc.js';
2
+ import '../../types-Cvbi87LT.js';
3
3
  import '../../types/webcomponent.js';
4
4
  import '../../types/utils.js';
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-B8taWezd.mjs';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-DUGwdG43.mjs';
2
2
  import '../../types/webcomponent.mjs';
3
3
  import '../../types/utils.mjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-rfg_xywc.js';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-Cvbi87LT.js';
2
2
  import '../../types/webcomponent.js';
3
3
  import '../../types/utils.js';
4
4
 
@@ -1,4 +1,4 @@
1
1
  export { TextSchema, text } from './text.mjs';
2
- import '../../types-B8taWezd.mjs';
2
+ import '../../types-DUGwdG43.mjs';
3
3
  import '../../types/webcomponent.mjs';
4
4
  import '../../types/utils.mjs';
@@ -1,4 +1,4 @@
1
1
  export { TextSchema, text } from './text.js';
2
- import '../../types-rfg_xywc.js';
2
+ import '../../types-Cvbi87LT.js';
3
3
  import '../../types/webcomponent.js';
4
4
  import '../../types/utils.js';
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-B8taWezd.mjs';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-DUGwdG43.mjs';
2
2
  import '../../types/webcomponent.mjs';
3
3
  import '../../types/utils.mjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema, d as BaseFieldInput } from '../../types-rfg_xywc.js';
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-Cvbi87LT.js';
2
2
  import '../../types/webcomponent.js';
3
3
  import '../../types/utils.js';
4
4
 
@@ -1,6 +1,6 @@
1
1
  export { GetServerSideProps } from './props.mjs';
2
2
  export { AddType, DeepPartial, EntryMask, LeavesPath, NestedPaths, NodesPath, PathValue, RequireAtLeastOne, ResolveObject, UnArray } from './utils.mjs';
3
- export { d as BaseFieldInput, B as BaseSchema, e as Output } from '../types-B8taWezd.mjs';
3
+ export { d as BaseFieldInput, B as BaseSchema, e as Output } from '../types-DUGwdG43.mjs';
4
4
  export { InferOutput } from './infer.mjs';
5
5
  export { ComponentModel } from './component.mjs';
6
6
  import './webcomponent.mjs';
@@ -1,6 +1,6 @@
1
1
  export { GetServerSideProps } from './props.js';
2
2
  export { AddType, DeepPartial, EntryMask, LeavesPath, NestedPaths, NodesPath, PathValue, RequireAtLeastOne, ResolveObject, UnArray } from './utils.js';
3
- export { d as BaseFieldInput, B as BaseSchema, e as Output } from '../types-rfg_xywc.js';
3
+ export { d as BaseFieldInput, B as BaseSchema, e as Output } from '../types-Cvbi87LT.js';
4
4
  export { InferOutput } from './infer.js';
5
5
  export { ComponentModel } from './component.js';
6
6
  import './webcomponent.js';
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema } from '../types-B8taWezd.mjs';
1
+ import { B as BaseSchema } from '../types-DUGwdG43.mjs';
2
2
  import './webcomponent.mjs';
3
3
  import './utils.mjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { B as BaseSchema } from '../types-rfg_xywc.js';
1
+ import { B as BaseSchema } from '../types-Cvbi87LT.js';
2
2
  import './webcomponent.js';
3
3
  import './utils.js';
4
4
 
@@ -1,3 +1,3 @@
1
- export { f as ObjectEntries, g as ObjectOutput, S as SlotEntries } from '../types-B8taWezd.mjs';
1
+ export { f as ObjectEntries, g as ObjectOutput, S as SlotEntries } from '../types-DUGwdG43.mjs';
2
2
  import './utils.mjs';
3
3
  import './webcomponent.mjs';
@@ -1,3 +1,3 @@
1
- export { f as ObjectEntries, g as ObjectOutput, S as SlotEntries } from '../types-rfg_xywc.js';
1
+ export { f as ObjectEntries, g as ObjectOutput, S as SlotEntries } from '../types-Cvbi87LT.js';
2
2
  import './utils.js';
3
3
  import './webcomponent.js';
@@ -1,3 +1,3 @@
1
1
  import './webcomponent.mjs';
2
- export { d as BaseFieldInput, B as BaseSchema, e as Output } from '../types-B8taWezd.mjs';
2
+ export { d as BaseFieldInput, B as BaseSchema, e as Output } from '../types-DUGwdG43.mjs';
3
3
  import './utils.mjs';
@@ -1,3 +1,3 @@
1
1
  import './webcomponent.js';
2
- export { d as BaseFieldInput, B as BaseSchema, e as Output } from '../types-rfg_xywc.js';
2
+ export { d as BaseFieldInput, B as BaseSchema, e as Output } from '../types-Cvbi87LT.js';
3
3
  import './utils.js';
@@ -121,7 +121,10 @@ interface ConditionOperators<TEntries extends ObjectEntries = any> {
121
121
  or: (...args: Conditions[]) => Conditions<'or'>;
122
122
  }
123
123
  type ConditionFn<TEntries extends ObjectEntries> = (ops: ConditionOperators<TEntries>) => Conditions;
124
- type ConditionsArgument<TEntries extends ObjectEntries> = AddType<UnArray<DeepPartial<ObjectOutput<TEntries>>>, ConditionFn<TEntries>>;
124
+ type ThisPlaceholder = symbol;
125
+ type ConditionsArgument<TEntries extends ObjectEntries> = AddType<UnArray<DeepPartial<AddType<ObjectOutput<TEntries>, {
126
+ $this: ThisPlaceholder;
127
+ }>>>, ConditionFn<TEntries>>;
125
128
  type Field = {
126
129
  id: string;
127
130
  condition?: Conditions;
@@ -121,7 +121,10 @@ interface ConditionOperators<TEntries extends ObjectEntries = any> {
121
121
  or: (...args: Conditions[]) => Conditions<'or'>;
122
122
  }
123
123
  type ConditionFn<TEntries extends ObjectEntries> = (ops: ConditionOperators<TEntries>) => Conditions;
124
- type ConditionsArgument<TEntries extends ObjectEntries> = AddType<UnArray<DeepPartial<ObjectOutput<TEntries>>>, ConditionFn<TEntries>>;
124
+ type ThisPlaceholder = symbol;
125
+ type ConditionsArgument<TEntries extends ObjectEntries> = AddType<UnArray<DeepPartial<AddType<ObjectOutput<TEntries>, {
126
+ $this: ThisPlaceholder;
127
+ }>>>, ConditionFn<TEntries>>;
125
128
  type Field = {
126
129
  id: string;
127
130
  condition?: Conditions;
package/package.json CHANGED
@@ -1,15 +1,10 @@
1
1
  {
2
2
  "name": "@ethereal-nexus/core",
3
- "version": "0.3.4",
3
+ "version": "1.0.1",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "author": "",
7
7
  "license": "Apache-2.0",
8
- "scripts": {
9
- "test": "echo \"Error: no test specified\" && exit 1",
10
- "build": "tsup ./src",
11
- "dev": "tsup ./src --watch"
12
- },
13
8
  "exports": {
14
9
  ".": {
15
10
  "require": "./dist/index.js",
@@ -33,5 +28,10 @@
33
28
  },
34
29
  "dependencies": {
35
30
  "@r2wc/react-to-web-component": "^2.0.3"
31
+ },
32
+ "scripts": {
33
+ "test": "echo \"Error: no test specified\" && exit 1",
34
+ "build": "tsup ./src",
35
+ "dev": "tsup ./src --watch"
36
36
  }
37
- }
37
+ }