@saltcorn/data 0.6.1 → 0.6.2-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (555) hide show
  1. package/dist/base-plugin/actions.d.ts +141 -0
  2. package/dist/base-plugin/actions.d.ts.map +1 -0
  3. package/dist/base-plugin/actions.js +551 -0
  4. package/dist/base-plugin/actions.js.map +1 -0
  5. package/dist/base-plugin/base.test.d.ts +2 -0
  6. package/dist/base-plugin/base.test.d.ts.map +1 -0
  7. package/dist/base-plugin/base.test.js +15 -0
  8. package/dist/base-plugin/base.test.js.map +1 -0
  9. package/dist/base-plugin/fieldviews.d.ts +25 -0
  10. package/dist/base-plugin/fieldviews.d.ts.map +1 -0
  11. package/dist/base-plugin/fieldviews.js +159 -0
  12. package/dist/base-plugin/fieldviews.js.map +1 -0
  13. package/dist/base-plugin/fileviews.d.ts +52 -0
  14. package/dist/base-plugin/fileviews.d.ts.map +1 -0
  15. package/dist/base-plugin/fileviews.js +59 -0
  16. package/dist/base-plugin/fileviews.js.map +1 -0
  17. package/dist/base-plugin/index.d.ts +524 -0
  18. package/dist/base-plugin/index.d.ts.map +1 -0
  19. package/{base-plugin → dist/base-plugin}/index.js +22 -24
  20. package/dist/base-plugin/index.js.map +1 -0
  21. package/dist/base-plugin/types.d.ts +383 -0
  22. package/dist/base-plugin/types.d.ts.map +1 -0
  23. package/dist/base-plugin/types.js +1080 -0
  24. package/dist/base-plugin/types.js.map +1 -0
  25. package/dist/base-plugin/viewtemplates/edit.d.ts +116 -0
  26. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -0
  27. package/dist/base-plugin/viewtemplates/edit.js +561 -0
  28. package/dist/base-plugin/viewtemplates/edit.js.map +1 -0
  29. package/dist/base-plugin/viewtemplates/feed.d.ts +73 -0
  30. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -0
  31. package/dist/base-plugin/viewtemplates/feed.js +348 -0
  32. package/dist/base-plugin/viewtemplates/feed.js.map +1 -0
  33. package/dist/base-plugin/viewtemplates/filter.d.ts +46 -0
  34. package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -0
  35. package/dist/base-plugin/viewtemplates/filter.js +267 -0
  36. package/dist/base-plugin/viewtemplates/filter.js.map +1 -0
  37. package/dist/base-plugin/viewtemplates/list.d.ts +99 -0
  38. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -0
  39. package/dist/base-plugin/viewtemplates/list.js +471 -0
  40. package/dist/base-plugin/viewtemplates/list.js.map +1 -0
  41. package/dist/base-plugin/viewtemplates/listshowlist.d.ts +41 -0
  42. package/dist/base-plugin/viewtemplates/listshowlist.d.ts.map +1 -0
  43. package/dist/base-plugin/viewtemplates/listshowlist.js +248 -0
  44. package/dist/base-plugin/viewtemplates/listshowlist.js.map +1 -0
  45. package/dist/base-plugin/viewtemplates/room.d.ts +140 -0
  46. package/dist/base-plugin/viewtemplates/room.d.ts.map +1 -0
  47. package/dist/base-plugin/viewtemplates/room.js +469 -0
  48. package/dist/base-plugin/viewtemplates/room.js.map +1 -0
  49. package/dist/base-plugin/viewtemplates/show.d.ts +101 -0
  50. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -0
  51. package/dist/base-plugin/viewtemplates/show.js +562 -0
  52. package/dist/base-plugin/viewtemplates/show.js.map +1 -0
  53. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +108 -0
  54. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -0
  55. package/dist/base-plugin/viewtemplates/viewable_fields.js +563 -0
  56. package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -0
  57. package/dist/contracts.d.ts +49 -0
  58. package/dist/contracts.d.ts.map +1 -0
  59. package/dist/contracts.js +212 -0
  60. package/dist/contracts.js.map +1 -0
  61. package/dist/coverage/lcov-report/block-navigation.d.ts +2 -0
  62. package/dist/coverage/lcov-report/block-navigation.d.ts.map +1 -0
  63. package/dist/coverage/lcov-report/block-navigation.js +66 -0
  64. package/dist/coverage/lcov-report/block-navigation.js.map +1 -0
  65. package/dist/coverage/lcov-report/prettify.d.ts +1 -0
  66. package/dist/coverage/lcov-report/prettify.d.ts.map +1 -0
  67. package/dist/coverage/lcov-report/prettify.js +478 -0
  68. package/dist/coverage/lcov-report/prettify.js.map +1 -0
  69. package/dist/coverage/lcov-report/sorter.d.ts +2 -0
  70. package/dist/coverage/lcov-report/sorter.d.ts.map +1 -0
  71. package/dist/coverage/lcov-report/sorter.js +141 -0
  72. package/dist/coverage/lcov-report/sorter.js.map +1 -0
  73. package/dist/db/connect.d.ts +40 -0
  74. package/dist/db/connect.d.ts.map +1 -0
  75. package/dist/db/connect.js +150 -0
  76. package/dist/db/connect.js.map +1 -0
  77. package/dist/db/db.test.d.ts +2 -0
  78. package/dist/db/db.test.d.ts.map +1 -0
  79. package/dist/db/db.test.js +28 -0
  80. package/dist/db/db.test.js.map +1 -0
  81. package/dist/db/fixtures.d.ts +8 -0
  82. package/dist/db/fixtures.d.ts.map +1 -0
  83. package/dist/db/fixtures.js +300 -0
  84. package/dist/db/fixtures.js.map +1 -0
  85. package/dist/db/index.d.ts +3 -0
  86. package/dist/db/index.d.ts.map +1 -0
  87. package/dist/db/index.js +41 -0
  88. package/dist/db/index.js.map +1 -0
  89. package/dist/db/reset_schema.d.ts +13 -0
  90. package/dist/db/reset_schema.d.ts.map +1 -0
  91. package/{db → dist/db}/reset_schema.js +45 -55
  92. package/dist/db/reset_schema.js.map +1 -0
  93. package/dist/db/state.d.ts +56 -0
  94. package/dist/db/state.d.ts.map +1 -0
  95. package/dist/db/state.js +608 -0
  96. package/dist/db/state.js.map +1 -0
  97. package/dist/index.d.ts +2 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/{index.js → dist/index.js} +2 -1
  100. package/dist/index.js.map +1 -0
  101. package/dist/migrate.d.ts +12 -0
  102. package/dist/migrate.d.ts.map +1 -0
  103. package/dist/migrate.js +94 -0
  104. package/dist/migrate.js.map +1 -0
  105. package/dist/migrations/202005141503.d.ts +2 -0
  106. package/dist/migrations/202005141503.d.ts.map +1 -0
  107. package/{migrations → dist/migrations}/202005141503.js +2 -1
  108. package/dist/migrations/202005141503.js.map +1 -0
  109. package/dist/migrations/202005241712.d.ts +2 -0
  110. package/dist/migrations/202005241712.d.ts.map +1 -0
  111. package/{migrations → dist/migrations}/202005241712.js +2 -1
  112. package/dist/migrations/202005241712.js.map +1 -0
  113. package/dist/migrations/202005251037.d.ts +2 -0
  114. package/dist/migrations/202005251037.d.ts.map +1 -0
  115. package/{migrations → dist/migrations}/202005251037.js +2 -1
  116. package/dist/migrations/202005251037.js.map +1 -0
  117. package/dist/migrations/202005282134.d.ts +2 -0
  118. package/dist/migrations/202005282134.d.ts.map +1 -0
  119. package/{migrations → dist/migrations}/202005282134.js +2 -1
  120. package/dist/migrations/202005282134.js.map +1 -0
  121. package/dist/migrations/202006022156.d.ts +2 -0
  122. package/dist/migrations/202006022156.d.ts.map +1 -0
  123. package/{migrations → dist/migrations}/202006022156.js +2 -1
  124. package/dist/migrations/202006022156.js.map +1 -0
  125. package/dist/migrations/202006051507.d.ts +2 -0
  126. package/dist/migrations/202006051507.d.ts.map +1 -0
  127. package/{migrations → dist/migrations}/202006051507.js +2 -1
  128. package/dist/migrations/202006051507.js.map +1 -0
  129. package/dist/migrations/202006240906.d.ts +2 -0
  130. package/dist/migrations/202006240906.d.ts.map +1 -0
  131. package/{migrations → dist/migrations}/202006240906.js +2 -1
  132. package/dist/migrations/202006240906.js.map +1 -0
  133. package/dist/migrations/202007091707.d.ts +2 -0
  134. package/dist/migrations/202007091707.d.ts.map +1 -0
  135. package/{migrations → dist/migrations}/202007091707.js +2 -1
  136. package/dist/migrations/202007091707.js.map +1 -0
  137. package/dist/migrations/202007202144.d.ts +2 -0
  138. package/dist/migrations/202007202144.d.ts.map +1 -0
  139. package/{migrations → dist/migrations}/202007202144.js +2 -1
  140. package/dist/migrations/202007202144.js.map +1 -0
  141. package/dist/migrations/202008031500.d.ts +2 -0
  142. package/dist/migrations/202008031500.d.ts.map +1 -0
  143. package/dist/migrations/202008031500.js +4 -0
  144. package/dist/migrations/202008031500.js.map +1 -0
  145. package/dist/migrations/202008051415.d.ts +2 -0
  146. package/dist/migrations/202008051415.d.ts.map +1 -0
  147. package/{migrations → dist/migrations}/202008051415.js +2 -1
  148. package/dist/migrations/202008051415.js.map +1 -0
  149. package/dist/migrations/202008121149.d.ts +3 -0
  150. package/dist/migrations/202008121149.d.ts.map +1 -0
  151. package/{migrations → dist/migrations}/202008121149.js +2 -2
  152. package/dist/migrations/202008121149.js.map +1 -0
  153. package/dist/migrations/202009112140.d.ts +3 -0
  154. package/dist/migrations/202009112140.d.ts.map +1 -0
  155. package/{migrations → dist/migrations}/202009112140.js +2 -2
  156. package/dist/migrations/202009112140.js.map +1 -0
  157. package/dist/migrations/202009181655.d.ts +2 -0
  158. package/dist/migrations/202009181655.d.ts.map +1 -0
  159. package/dist/migrations/202009181655.js +7 -0
  160. package/dist/migrations/202009181655.js.map +1 -0
  161. package/dist/migrations/202009221105.d.ts +2 -0
  162. package/dist/migrations/202009221105.d.ts.map +1 -0
  163. package/dist/migrations/202009221105.js +4 -0
  164. package/dist/migrations/202009221105.js.map +1 -0
  165. package/dist/migrations/202009231331.d.ts +2 -0
  166. package/dist/migrations/202009231331.d.ts.map +1 -0
  167. package/{migrations → dist/migrations}/202009231331.js +2 -1
  168. package/dist/migrations/202009231331.js.map +1 -0
  169. package/dist/migrations/202009301531.d.ts +2 -0
  170. package/dist/migrations/202009301531.d.ts.map +1 -0
  171. package/dist/migrations/202009301531.js +8 -0
  172. package/dist/migrations/202009301531.js.map +1 -0
  173. package/dist/migrations/202010231444.d.ts +2 -0
  174. package/dist/migrations/202010231444.d.ts.map +1 -0
  175. package/dist/migrations/202010231444.js +4 -0
  176. package/dist/migrations/202010231444.js.map +1 -0
  177. package/dist/migrations/202010251412.d.ts +2 -0
  178. package/dist/migrations/202010251412.d.ts.map +1 -0
  179. package/dist/migrations/202010251412.js +10 -0
  180. package/dist/migrations/202010251412.js.map +1 -0
  181. package/dist/migrations/202011021749.d.ts +2 -0
  182. package/dist/migrations/202011021749.d.ts.map +1 -0
  183. package/{migrations → dist/migrations}/202011021749.js +2 -1
  184. package/dist/migrations/202011021749.js.map +1 -0
  185. package/dist/migrations/202011051353.d.ts +2 -0
  186. package/dist/migrations/202011051353.d.ts.map +1 -0
  187. package/{migrations → dist/migrations}/202011051353.js +2 -1
  188. package/dist/migrations/202011051353.js.map +1 -0
  189. package/dist/migrations/202011111127.d.ts +2 -0
  190. package/dist/migrations/202011111127.d.ts.map +1 -0
  191. package/{migrations → dist/migrations}/202011111127.js +2 -1
  192. package/dist/migrations/202011111127.js.map +1 -0
  193. package/dist/migrations/202012011203.d.ts +2 -0
  194. package/dist/migrations/202012011203.d.ts.map +1 -0
  195. package/{migrations → dist/migrations}/202012011203.js +2 -1
  196. package/dist/migrations/202012011203.js.map +1 -0
  197. package/dist/migrations/202012100841.d.ts +2 -0
  198. package/dist/migrations/202012100841.d.ts.map +1 -0
  199. package/{migrations → dist/migrations}/202012100841.js +2 -1
  200. package/dist/migrations/202012100841.js.map +1 -0
  201. package/dist/migrations/202012281835.d.ts +2 -0
  202. package/dist/migrations/202012281835.d.ts.map +1 -0
  203. package/{migrations → dist/migrations}/202012281835.js +2 -1
  204. package/dist/migrations/202012281835.js.map +1 -0
  205. package/dist/migrations/202101061051.d.ts +2 -0
  206. package/dist/migrations/202101061051.d.ts.map +1 -0
  207. package/{migrations → dist/migrations}/202101061051.js +2 -1
  208. package/dist/migrations/202101061051.js.map +1 -0
  209. package/dist/migrations/202101141128.d.ts +2 -0
  210. package/dist/migrations/202101141128.d.ts.map +1 -0
  211. package/dist/migrations/202101141128.js +4 -0
  212. package/dist/migrations/202101141128.js.map +1 -0
  213. package/dist/migrations/202102091312.d.ts +3 -0
  214. package/dist/migrations/202102091312.d.ts.map +1 -0
  215. package/dist/migrations/202102091312.js +19 -0
  216. package/dist/migrations/202102091312.js.map +1 -0
  217. package/dist/migrations/202102101624.d.ts +2 -0
  218. package/dist/migrations/202102101624.d.ts.map +1 -0
  219. package/dist/migrations/202102101624.js +7 -0
  220. package/dist/migrations/202102101624.js.map +1 -0
  221. package/dist/migrations/202102172148.d.ts +2 -0
  222. package/dist/migrations/202102172148.d.ts.map +1 -0
  223. package/{migrations → dist/migrations}/202102172148.js +2 -2
  224. package/dist/migrations/202102172148.js.map +1 -0
  225. package/dist/migrations/202102261650.d.ts +2 -0
  226. package/dist/migrations/202102261650.d.ts.map +1 -0
  227. package/dist/migrations/202102261650.js +7 -0
  228. package/dist/migrations/202102261650.js.map +1 -0
  229. package/dist/migrations/202106102347.d.ts +2 -0
  230. package/dist/migrations/202106102347.d.ts.map +1 -0
  231. package/{migrations → dist/migrations}/202106102347.js +2 -3
  232. package/dist/migrations/202106102347.js.map +1 -0
  233. package/dist/migrations/202106112120.d.ts +2 -0
  234. package/dist/migrations/202106112120.d.ts.map +1 -0
  235. package/{migrations → dist/migrations}/202106112120.js +2 -3
  236. package/dist/migrations/202106112120.js.map +1 -0
  237. package/dist/migrations/202106120012.d.ts +2 -0
  238. package/dist/migrations/202106120012.d.ts.map +1 -0
  239. package/{migrations → dist/migrations}/202106120012.js +2 -3
  240. package/dist/migrations/202106120012.js.map +1 -0
  241. package/dist/migrations/202106120220.d.ts +2 -0
  242. package/dist/migrations/202106120220.d.ts.map +1 -0
  243. package/{migrations → dist/migrations}/202106120220.js +2 -4
  244. package/dist/migrations/202106120220.js.map +1 -0
  245. package/dist/migrations/202106121701.d.ts +2 -0
  246. package/dist/migrations/202106121701.d.ts.map +1 -0
  247. package/{migrations → dist/migrations}/202106121701.js +2 -3
  248. package/dist/migrations/202106121701.js.map +1 -0
  249. package/dist/migrations/202106121703.d.ts +3 -0
  250. package/dist/migrations/202106121703.d.ts.map +1 -0
  251. package/{migrations → dist/migrations}/202106121703.js +2 -3
  252. package/dist/migrations/202106121703.js.map +1 -0
  253. package/dist/migrations/202106251126.d.ts +2 -0
  254. package/dist/migrations/202106251126.d.ts.map +1 -0
  255. package/dist/migrations/202106251126.js +6 -0
  256. package/dist/migrations/202106251126.js.map +1 -0
  257. package/dist/migrations/202107281619.d.ts +2 -0
  258. package/dist/migrations/202107281619.d.ts.map +1 -0
  259. package/{migrations → dist/migrations}/202107281619.js +2 -1
  260. package/dist/migrations/202107281619.js.map +1 -0
  261. package/dist/migrations/202107302158.d.ts +3 -0
  262. package/dist/migrations/202107302158.d.ts.map +1 -0
  263. package/{migrations → dist/migrations}/202107302158.js +2 -3
  264. package/dist/migrations/202107302158.js.map +1 -0
  265. package/dist/migrations/202108022257.d.ts +2 -0
  266. package/dist/migrations/202108022257.d.ts.map +1 -0
  267. package/{migrations → dist/migrations}/202108022257.js +3 -4
  268. package/dist/migrations/202108022257.js.map +1 -0
  269. package/dist/migrations/202109201624.d.ts +2 -0
  270. package/dist/migrations/202109201624.d.ts.map +1 -0
  271. package/{migrations → dist/migrations}/202109201624.js +2 -1
  272. package/dist/migrations/202109201624.js.map +1 -0
  273. package/dist/migrations/202109301031.d.ts +3 -0
  274. package/dist/migrations/202109301031.d.ts.map +1 -0
  275. package/{migrations → dist/migrations}/202109301031.js +2 -2
  276. package/dist/migrations/202109301031.js.map +1 -0
  277. package/dist/migrations/202111290253.d.ts +3 -0
  278. package/dist/migrations/202111290253.d.ts.map +1 -0
  279. package/dist/migrations/202111290253.js +5 -0
  280. package/dist/migrations/202111290253.js.map +1 -0
  281. package/dist/models/backup.d.ts +22 -0
  282. package/dist/models/backup.d.ts.map +1 -0
  283. package/{models → dist/models}/backup.js +95 -192
  284. package/dist/models/backup.js.map +1 -0
  285. package/dist/models/config.d.ts +180 -0
  286. package/dist/models/config.d.ts.map +1 -0
  287. package/dist/models/config.js +758 -0
  288. package/dist/models/config.js.map +1 -0
  289. package/dist/models/crash.d.ts +74 -0
  290. package/dist/models/crash.d.ts.map +1 -0
  291. package/dist/models/crash.js +118 -0
  292. package/dist/models/crash.js.map +1 -0
  293. package/dist/models/discovery.d.ts +28 -0
  294. package/dist/models/discovery.d.ts.map +1 -0
  295. package/dist/models/discovery.js +163 -0
  296. package/dist/models/discovery.js.map +1 -0
  297. package/dist/models/email.d.ts +16 -0
  298. package/dist/models/email.d.ts.map +1 -0
  299. package/dist/models/email.js +90 -0
  300. package/dist/models/email.js.map +1 -0
  301. package/dist/models/eventlog.d.ts +77 -0
  302. package/dist/models/eventlog.d.ts.map +1 -0
  303. package/dist/models/eventlog.js +132 -0
  304. package/dist/models/eventlog.js.map +1 -0
  305. package/dist/models/expression.d.ts +54 -0
  306. package/dist/models/expression.d.ts.map +1 -0
  307. package/dist/models/expression.js +274 -0
  308. package/dist/models/expression.js.map +1 -0
  309. package/dist/models/field.d.ts +217 -0
  310. package/dist/models/field.d.ts.map +1 -0
  311. package/dist/models/field.js +619 -0
  312. package/dist/models/field.js.map +1 -0
  313. package/dist/models/fieldrepeat.d.ts +49 -0
  314. package/dist/models/fieldrepeat.d.ts.map +1 -0
  315. package/dist/models/fieldrepeat.js +88 -0
  316. package/dist/models/fieldrepeat.js.map +1 -0
  317. package/dist/models/file.d.ts +122 -0
  318. package/dist/models/file.d.ts.map +1 -0
  319. package/dist/models/file.js +224 -0
  320. package/dist/models/file.js.map +1 -0
  321. package/dist/models/form.d.ts +82 -0
  322. package/dist/models/form.d.ts.map +1 -0
  323. package/dist/models/form.js +163 -0
  324. package/dist/models/form.js.map +1 -0
  325. package/dist/models/index.d.ts +1 -0
  326. package/dist/models/index.d.ts.map +1 -0
  327. package/{models → dist/models}/index.js +42 -42
  328. package/dist/models/index.js.map +1 -0
  329. package/dist/models/layout.d.ts +34 -0
  330. package/dist/models/layout.d.ts.map +1 -0
  331. package/dist/models/layout.js +153 -0
  332. package/dist/models/layout.js.map +1 -0
  333. package/dist/models/library.d.ts +50 -0
  334. package/dist/models/library.d.ts.map +1 -0
  335. package/dist/models/library.js +129 -0
  336. package/dist/models/library.js.map +1 -0
  337. package/dist/models/pack.d.ts +89 -0
  338. package/dist/models/pack.d.ts.map +1 -0
  339. package/dist/models/pack.js +390 -0
  340. package/dist/models/pack.js.map +1 -0
  341. package/dist/models/page.d.ts +101 -0
  342. package/dist/models/page.d.ts.map +1 -0
  343. package/dist/models/page.js +223 -0
  344. package/dist/models/page.js.map +1 -0
  345. package/dist/models/plugin.d.ts +100 -0
  346. package/dist/models/plugin.d.ts.map +1 -0
  347. package/dist/models/plugin.js +204 -0
  348. package/dist/models/plugin.js.map +1 -0
  349. package/dist/models/random.d.ts +24 -0
  350. package/dist/models/random.d.ts.map +1 -0
  351. package/dist/models/random.js +186 -0
  352. package/dist/models/random.js.map +1 -0
  353. package/dist/models/role.d.ts +42 -0
  354. package/dist/models/role.d.ts.map +1 -0
  355. package/dist/models/role.js +64 -0
  356. package/dist/models/role.js.map +1 -0
  357. package/dist/models/scheduler.d.ts +18 -0
  358. package/dist/models/scheduler.d.ts.map +1 -0
  359. package/dist/models/scheduler.js +159 -0
  360. package/dist/models/scheduler.js.map +1 -0
  361. package/dist/models/table.d.ts +326 -0
  362. package/dist/models/table.d.ts.map +1 -0
  363. package/dist/models/table.js +1006 -0
  364. package/dist/models/table.js.map +1 -0
  365. package/dist/models/table_constraints.d.ts +69 -0
  366. package/dist/models/table_constraints.d.ts.map +1 -0
  367. package/dist/models/table_constraints.js +118 -0
  368. package/dist/models/table_constraints.js.map +1 -0
  369. package/dist/models/tenant.d.ts +55 -0
  370. package/dist/models/tenant.d.ts.map +1 -0
  371. package/{models → dist/models}/tenant.js +40 -63
  372. package/dist/models/tenant.js.map +1 -0
  373. package/dist/models/trigger.d.ts +133 -0
  374. package/dist/models/trigger.d.ts.map +1 -0
  375. package/dist/models/trigger.js +292 -0
  376. package/dist/models/trigger.js.map +1 -0
  377. package/dist/models/user.d.ts +235 -0
  378. package/dist/models/user.d.ts.map +1 -0
  379. package/dist/models/user.js +434 -0
  380. package/dist/models/user.js.map +1 -0
  381. package/dist/models/view.d.ts +204 -0
  382. package/dist/models/view.d.ts.map +1 -0
  383. package/dist/models/view.js +497 -0
  384. package/dist/models/view.js.map +1 -0
  385. package/dist/models/workflow.d.ts +48 -0
  386. package/dist/models/workflow.d.ts.map +1 -0
  387. package/dist/models/workflow.js +190 -0
  388. package/dist/models/workflow.js.map +1 -0
  389. package/dist/plugin-helper.d.ts +145 -0
  390. package/dist/plugin-helper.d.ts.map +1 -0
  391. package/dist/plugin-helper.js +1158 -0
  392. package/dist/plugin-helper.js.map +1 -0
  393. package/dist/plugin-testing.d.ts +3 -0
  394. package/dist/plugin-testing.d.ts.map +1 -0
  395. package/dist/plugin-testing.js +120 -0
  396. package/dist/plugin-testing.js.map +1 -0
  397. package/dist/tests/actions.test.d.ts +2 -0
  398. package/dist/tests/actions.test.d.ts.map +1 -0
  399. package/dist/tests/actions.test.js +205 -0
  400. package/dist/tests/actions.test.js.map +1 -0
  401. package/dist/tests/auxtest.test.d.ts +2 -0
  402. package/dist/tests/auxtest.test.d.ts.map +1 -0
  403. package/dist/tests/auxtest.test.js +48 -0
  404. package/dist/tests/auxtest.test.js.map +1 -0
  405. package/dist/tests/backup.test.d.ts +2 -0
  406. package/dist/tests/backup.test.d.ts.map +1 -0
  407. package/dist/tests/backup.test.js +88 -0
  408. package/dist/tests/backup.test.js.map +1 -0
  409. package/dist/tests/calc.test.d.ts +2 -0
  410. package/dist/tests/calc.test.d.ts.map +1 -0
  411. package/dist/tests/calc.test.js +231 -0
  412. package/dist/tests/calc.test.js.map +1 -0
  413. package/dist/tests/config.test.d.ts +2 -0
  414. package/dist/tests/config.test.d.ts.map +1 -0
  415. package/dist/tests/config.test.js +83 -0
  416. package/dist/tests/config.test.js.map +1 -0
  417. package/dist/tests/discover.test.d.ts +2 -0
  418. package/dist/tests/discover.test.d.ts.map +1 -0
  419. package/dist/tests/discover.test.js +106 -0
  420. package/dist/tests/discover.test.js.map +1 -0
  421. package/dist/tests/exact_views.test.d.ts +2 -0
  422. package/dist/tests/exact_views.test.d.ts.map +1 -0
  423. package/dist/tests/exact_views.test.js +511 -0
  424. package/dist/tests/exact_views.test.js.map +1 -0
  425. package/dist/tests/field.test.d.ts +2 -0
  426. package/dist/tests/field.test.d.ts.map +1 -0
  427. package/dist/tests/field.test.js +237 -0
  428. package/dist/tests/field.test.js.map +1 -0
  429. package/dist/tests/form.test.d.ts +2 -0
  430. package/dist/tests/form.test.d.ts.map +1 -0
  431. package/dist/tests/form.test.js +191 -0
  432. package/dist/tests/form.test.js.map +1 -0
  433. package/dist/tests/mocks.d.ts +111 -0
  434. package/dist/tests/mocks.d.ts.map +1 -0
  435. package/dist/tests/mocks.js +165 -0
  436. package/dist/tests/mocks.js.map +1 -0
  437. package/dist/tests/models.test.d.ts +2 -0
  438. package/dist/tests/models.test.d.ts.map +1 -0
  439. package/dist/tests/models.test.js +210 -0
  440. package/dist/tests/models.test.js.map +1 -0
  441. package/dist/tests/pack.test.d.ts +2 -0
  442. package/dist/tests/pack.test.d.ts.map +1 -0
  443. package/dist/tests/pack.test.js +331 -0
  444. package/dist/tests/pack.test.js.map +1 -0
  445. package/dist/tests/plugin.test.d.ts +2 -0
  446. package/dist/tests/plugin.test.d.ts.map +1 -0
  447. package/dist/tests/plugin.test.js +53 -0
  448. package/dist/tests/plugin.test.js.map +1 -0
  449. package/dist/tests/random.test.d.ts +2 -0
  450. package/dist/tests/random.test.d.ts.map +1 -0
  451. package/dist/tests/random.test.js +138 -0
  452. package/dist/tests/random.test.js.map +1 -0
  453. package/dist/tests/table.test.d.ts +2 -0
  454. package/dist/tests/table.test.d.ts.map +1 -0
  455. package/dist/tests/table.test.js +1048 -0
  456. package/dist/tests/table.test.js.map +1 -0
  457. package/dist/tests/tenant.test.d.ts +2 -0
  458. package/dist/tests/tenant.test.d.ts.map +1 -0
  459. package/dist/tests/tenant.test.js +45 -0
  460. package/dist/tests/tenant.test.js.map +1 -0
  461. package/dist/tests/user.test.d.ts +2 -0
  462. package/dist/tests/user.test.d.ts.map +1 -0
  463. package/dist/tests/user.test.js +190 -0
  464. package/dist/tests/user.test.js.map +1 -0
  465. package/dist/tests/view.test.d.ts +2 -0
  466. package/dist/tests/view.test.d.ts.map +1 -0
  467. package/dist/tests/view.test.js +238 -0
  468. package/dist/tests/view.test.js.map +1 -0
  469. package/dist/tests/workflow.test.d.ts +2 -0
  470. package/dist/tests/workflow.test.d.ts.map +1 -0
  471. package/dist/tests/workflow.test.js +115 -0
  472. package/dist/tests/workflow.test.js.map +1 -0
  473. package/dist/tsconfig.ref.tsbuildinfo +1 -0
  474. package/dist/utils.d.ts +26 -0
  475. package/dist/utils.d.ts.map +1 -0
  476. package/dist/utils.js +124 -0
  477. package/dist/utils.js.map +1 -0
  478. package/package.json +37 -8
  479. package/base-plugin/actions.js +0 -629
  480. package/base-plugin/base.test.js +0 -15
  481. package/base-plugin/fieldviews.js +0 -192
  482. package/base-plugin/fileviews.js +0 -65
  483. package/base-plugin/types.js +0 -1025
  484. package/base-plugin/viewtemplates/edit.js +0 -665
  485. package/base-plugin/viewtemplates/feed.js +0 -434
  486. package/base-plugin/viewtemplates/filter.js +0 -311
  487. package/base-plugin/viewtemplates/list.js +0 -575
  488. package/base-plugin/viewtemplates/listshowlist.js +0 -292
  489. package/base-plugin/viewtemplates/room.js +0 -650
  490. package/base-plugin/viewtemplates/show.js +0 -689
  491. package/base-plugin/viewtemplates/viewable_fields.js +0 -714
  492. package/contracts.js +0 -311
  493. package/db/connect.js +0 -151
  494. package/db/db.test.js +0 -33
  495. package/db/fixtures.js +0 -303
  496. package/db/index.js +0 -60
  497. package/db/state.js +0 -674
  498. package/migrate.js +0 -99
  499. package/migrations/202008031500.js +0 -4
  500. package/migrations/202009181655.js +0 -6
  501. package/migrations/202009221105.js +0 -4
  502. package/migrations/202009301531.js +0 -7
  503. package/migrations/202010231444.js +0 -4
  504. package/migrations/202010251412.js +0 -9
  505. package/migrations/202101141128.js +0 -4
  506. package/migrations/202102091312.js +0 -19
  507. package/migrations/202102101624.js +0 -5
  508. package/migrations/202102261650.js +0 -6
  509. package/migrations/202106251126.js +0 -5
  510. package/models/config.js +0 -680
  511. package/models/crash.js +0 -126
  512. package/models/discovery.js +0 -195
  513. package/models/email.js +0 -92
  514. package/models/eventlog.js +0 -146
  515. package/models/expression.js +0 -264
  516. package/models/field.js +0 -740
  517. package/models/fieldrepeat.js +0 -96
  518. package/models/file.js +0 -234
  519. package/models/form.js +0 -168
  520. package/models/layout.js +0 -146
  521. package/models/library.js +0 -135
  522. package/models/pack.js +0 -466
  523. package/models/page.js +0 -255
  524. package/models/plugin.js +0 -219
  525. package/models/random.js +0 -206
  526. package/models/role.js +0 -94
  527. package/models/scheduler.js +0 -163
  528. package/models/table.js +0 -1211
  529. package/models/table_constraints.js +0 -133
  530. package/models/trigger.js +0 -327
  531. package/models/user.js +0 -503
  532. package/models/view.js +0 -622
  533. package/models/workflow.js +0 -205
  534. package/plugin-helper.js +0 -1291
  535. package/plugin-testing.js +0 -124
  536. package/tests/actions.test.js +0 -232
  537. package/tests/auxtest.test.js +0 -52
  538. package/tests/backup.test.js +0 -92
  539. package/tests/calc.test.js +0 -221
  540. package/tests/config.test.js +0 -91
  541. package/tests/discover.test.js +0 -114
  542. package/tests/exact_views.test.js +0 -526
  543. package/tests/field.test.js +0 -253
  544. package/tests/form.test.js +0 -198
  545. package/tests/mocks.js +0 -173
  546. package/tests/models.test.js +0 -221
  547. package/tests/pack.test.js +0 -350
  548. package/tests/plugin.test.js +0 -59
  549. package/tests/random.test.js +0 -154
  550. package/tests/table.test.js +0 -1091
  551. package/tests/tenant.test.js +0 -56
  552. package/tests/user.test.js +0 -196
  553. package/tests/view.test.js +0 -251
  554. package/tests/workflow.test.js +0 -119
  555. package/utils.js +0 -137
@@ -1,1025 +0,0 @@
1
- /**
2
- * Embedded Types definition.
3
- *
4
- * More types can be added by plugin store mechanism https://store.saltcorn.com/
5
- * @category saltcorn-data
6
- * @module base-plugin/types
7
- * @subcategory base-plugin
8
- */
9
-
10
- const moment = require("moment");
11
- const {
12
- input,
13
- select,
14
- option,
15
- text,
16
- div,
17
- h3,
18
- a,
19
- i,
20
- button,
21
- textarea,
22
- span,
23
- img,
24
- text_attr,
25
- } = require("@saltcorn/markup/tags");
26
- const { contract, is } = require("contractis");
27
- const { radio_group } = require("@saltcorn/markup/helpers");
28
- const { getState } = require("../db/state");
29
-
30
- const isdef = (x) => (typeof x === "undefined" || x === null ? false : true);
31
-
32
- const eqStr = (x, y) => `${x}` === `${y}`;
33
-
34
- /**
35
- * @param {string} v
36
- * @param {string} optsStr
37
- * @returns {string[]}
38
- */
39
- const getStrOptions = (v, optsStr) =>
40
- typeof optsStr === "string"
41
- ? optsStr
42
- .split(",")
43
- .map((o) => o.trim())
44
- .map((o) =>
45
- option(
46
- { value: text_attr(o), ...(eqStr(v, o) && { selected: true }) },
47
- text_attr(o)
48
- )
49
- )
50
- : optsStr.map((o, ix) =>
51
- o && typeof o.name !== "undefined" && typeof o.label !== "undefined"
52
- ? option(
53
- {
54
- value: o.name,
55
- ...((eqStr(v, o.name) ||
56
- (ix === 0 && typeof v === "undefined" && o.disabled)) && {
57
- selected: true,
58
- }),
59
- ...(o.disabled && { disabled: true }),
60
- },
61
- o.label
62
- )
63
- : option({ value: o, ...(eqStr(v, o) && { selected: true }) }, o)
64
- );
65
-
66
- /**
67
- * string type
68
- * @namespace
69
- * @category saltcorn-data
70
- * @subcategory types / string
71
- */
72
- const string = {
73
- /** @type {string} */
74
- name: "String",
75
- /** @type {string} */
76
- sql_name: "text",
77
- /**
78
- * @param {object} param
79
- * @returns {object}
80
- */
81
- attributes: ({ table }) => {
82
- const strFields =
83
- table &&
84
- table.fields.filter(
85
- (f) =>
86
- (f.type || {}).name === "String" &&
87
- !(f.attributes && f.attributes.localizes_field)
88
- );
89
- const locales = Object.keys(
90
- getState().getConfig("localizer_languages", {})
91
- );
92
- return [
93
- {
94
- name: "regexp",
95
- type: "String",
96
- required: false,
97
- sublabel: "Match regular expression",
98
- validator(s) {
99
- if (!is_valid_regexp(s)) return "Not a valid Regular Expression";
100
- },
101
- },
102
- {
103
- name: "re_invalid_error",
104
- type: "String",
105
- required: false,
106
- sublabel: "Error message when regular expression does not match",
107
- },
108
- {
109
- name: "max_length",
110
- type: "Integer",
111
- required: false,
112
- sublabel: "The maximum number of characters in the string",
113
- },
114
- {
115
- name: "min_length",
116
- type: "Integer",
117
- required: false,
118
- sublabel: "The minimum number of characters in the string",
119
- },
120
- {
121
- name: "options",
122
- type: "String",
123
- required: false,
124
- sublabel:
125
- 'Use this to restrict your field to a list of options (separated by commas). For instance, if the permissible values are "Red", "Green" and "Blue", enter "Red, Green, Blue" here. Leave blank if the string can hold any value.',
126
- },
127
- ...(table
128
- ? [
129
- {
130
- name: "localizes_field",
131
- label: "Translation of",
132
- sublabel:
133
- "This is a translation of a different field in a different language",
134
- type: "String",
135
- attributes: {
136
- options: strFields.map((f) => f.name),
137
- },
138
- },
139
- {
140
- name: "locale",
141
- label: "Locale",
142
- sublabel: "Language locale of translation",
143
- input_type: "select",
144
- options: locales,
145
- showIf: { localizes_field: strFields.map((f) => f.name) },
146
- },
147
- ]
148
- : []),
149
- ];
150
- },
151
- /**
152
- * @param {object} opts
153
- * @param {string|undefined} opts.options
154
- * @returns {boolean}
155
- */
156
- contract: ({ options }) =>
157
- typeof options === "string"
158
- ? is.one_of(options.split(","))
159
- : typeof options === "undefined"
160
- ? is.str
161
- : is.one_of(options.map((o) => (typeof o === "string" ? o : o.name))),
162
- /**
163
- * @namespace
164
- * @category saltcorn-data
165
- * @subcategory types / string
166
- */
167
- fieldviews: {
168
- /**
169
- * @namespace
170
- * @category saltcorn-data
171
- * @subcategory types / string
172
- */
173
- as_text: { isEdit: false, run: (s) => text_attr(s || "") },
174
- /**
175
- * @namespace
176
- * @category saltcorn-data
177
- * @subcategory types / string
178
- */
179
- as_link: {
180
- isEdit: false,
181
- run: (s) => a({ href: text(s || "") }, text_attr(s || "")),
182
- },
183
- /**
184
- * @namespace
185
- * @category saltcorn-data
186
- * @subcategory types / string
187
- */
188
- img_from_url: {
189
- isEdit: false,
190
- run: (s, req, attrs) => img({ src: text(s || ""), style: "width:100%" }),
191
- },
192
- /**
193
- * @namespace
194
- * @category saltcorn-data
195
- * @subcategory types / string
196
- */
197
- as_header: { isEdit: false, run: (s) => h3(text_attr(s || "")) },
198
- /**
199
- * @namespace
200
- * @category saltcorn-data
201
- * @subcategory types / string
202
- */
203
- edit: {
204
- isEdit: true,
205
- configFields: (field) => [
206
- ...(field.attributes.options &&
207
- field.attributes.options.length > 0 &&
208
- !field.required
209
- ? [
210
- {
211
- name: "neutral_label",
212
- label: "Neutral label",
213
- type: "String",
214
- },
215
- {
216
- name: "force_required",
217
- label: "Required",
218
- sublabel:
219
- "User must select a value, even if the table field is not required",
220
- type: "Bool",
221
- },
222
- ]
223
- : []),
224
- {
225
- name: "placeholder",
226
- label: "Placeholder",
227
- type: "String",
228
- },
229
- {
230
- name: "input_type",
231
- label: "Input type",
232
- input_type: "select",
233
- options: ["text", "email", "url", "tel", "password"],
234
- },
235
- ],
236
- run: (nm, v, attrs, cls, required, field) =>
237
- attrs.options && (attrs.options.length > 0 || !required)
238
- ? select(
239
- {
240
- class: ["form-control", cls],
241
- name: text_attr(nm),
242
- "data-fieldname": text_attr(field.name),
243
- id: `input${text_attr(nm)}`,
244
- disabled: attrs.disabled,
245
- },
246
- required || attrs.force_required
247
- ? getStrOptions(v, attrs.options)
248
- : [
249
- option({ value: "" }, attrs.neutral_label || ""),
250
- ...getStrOptions(v, attrs.options),
251
- ]
252
- )
253
- : attrs.options
254
- ? i("None available")
255
- : attrs.calcOptions
256
- ? select(
257
- {
258
- class: ["form-control", cls],
259
- name: text_attr(nm),
260
- disabled: attrs.disabled,
261
- "data-fieldname": text_attr(field.name),
262
- id: `input${text_attr(nm)}`,
263
- "data-selected": v,
264
- "data-calc-options": encodeURIComponent(
265
- JSON.stringify(attrs.calcOptions)
266
- ),
267
- },
268
- option({ value: "" }, "")
269
- )
270
- : input({
271
- type: attrs.input_type || "text",
272
- disabled: attrs.disabled,
273
- class: ["form-control", cls],
274
- placeholder: attrs.placeholder,
275
- "data-fieldname": text_attr(field.name),
276
- name: text_attr(nm),
277
- id: `input${text_attr(nm)}`,
278
- ...(isdef(v) && { value: text_attr(v) }),
279
- }),
280
- },
281
- /**
282
- * @namespace
283
- * @category saltcorn-data
284
- * @subcategory types / string
285
- */
286
- textarea: {
287
- isEdit: true,
288
- run: (nm, v, attrs, cls, required, field) =>
289
- textarea(
290
- {
291
- class: ["form-control", cls],
292
- name: text_attr(nm),
293
- "data-fieldname": text_attr(field.name),
294
- disabled: attrs.disabled,
295
- id: `input${text_attr(nm)}`,
296
- rows: 5,
297
- },
298
- text(v) || ""
299
- ),
300
- },
301
- /**
302
- * @namespace
303
- * @category saltcorn-data
304
- * @subcategory types / string
305
- */
306
- radio_group: {
307
- isEdit: true,
308
- configFields: [
309
- {
310
- type: "Bool",
311
- name: "inline",
312
- label: "Inline",
313
- },
314
- ],
315
- run: (nm, v, attrs, cls, required, field) =>
316
- attrs.options
317
- ? radio_group({
318
- class: cls,
319
- name: text_attr(nm),
320
- disabled: attrs.disabled,
321
- inline: attrs.inline,
322
- options: Array.isArray(attrs.options)
323
- ? attrs.options
324
- : attrs.options.split(",").map((o) => o.trim()),
325
- value: v,
326
- })
327
- : i("None available"),
328
- },
329
- /**
330
- * @namespace
331
- * @category saltcorn-data
332
- * @subcategory types / string
333
- */
334
- password: {
335
- isEdit: true,
336
- run: (nm, v, attrs, cls, required, field) =>
337
- input({
338
- type: "password",
339
- disabled: attrs.disabled,
340
- class: ["form-control", cls],
341
- "data-fieldname": text_attr(field.name),
342
-
343
- name: text_attr(nm),
344
- id: `input${text_attr(nm)}`,
345
- ...(isdef(v) && { value: text_attr(v) }),
346
- }),
347
- },
348
- },
349
- /**
350
- * @param {*} v
351
- * @returns {string|undefined}
352
- */
353
- read: (v) => {
354
- switch (typeof v) {
355
- case "string":
356
- //PG dislikes null bytes
357
- return v.replace(/\0/g, "");
358
- default:
359
- return undefined;
360
- }
361
- },
362
- /**
363
- * @namespace
364
- * @category saltcorn-data
365
- * @subcategory types / string
366
- */
367
- presets: {
368
- /**
369
- * @param {object} opts
370
- * @param {object} opts.req
371
- * @returns {object}
372
- */
373
- IP: ({ req }) => req.ip,
374
- /**
375
- * @param {object} opts
376
- * @param {object} opts.req
377
- * @returns {object}
378
- */
379
- SessionID: ({ req }) => req.sessionID || req.cookies["express:sess"],
380
- },
381
- /**
382
- * @param {object} param
383
- * @returns {object|true}
384
- */
385
- validate: ({ min_length, max_length, regexp, re_invalid_error }) => (x) => {
386
- if (!x || typeof x !== "string") return true; //{ error: "Not a string" };
387
- if (isdef(min_length) && x.length < min_length)
388
- return { error: `Must be at least ${min_length} characters` };
389
- if (isdef(max_length) && x.length > max_length)
390
- return { error: `Must be at most ${max_length} characters` };
391
- if (isdef(regexp) && !new RegExp(regexp).test(x))
392
- return { error: re_invalid_error || `Does not match regular expression` };
393
- return true;
394
- },
395
-
396
- /**
397
- * @param {object} param
398
- * @returns {object}
399
- */
400
- validate_attributes: ({ min_length, max_length, regexp }) =>
401
- (!isdef(min_length) || !isdef(max_length) || max_length >= min_length) &&
402
- (!isdef(regexp) || is_valid_regexp(regexp)),
403
- };
404
-
405
- /**
406
- * @param {string} s
407
- * @returns {boolean}
408
- */
409
- const is_valid_regexp = (s) => {
410
- try {
411
- new RegExp(s);
412
- return true;
413
- } catch {
414
- return false;
415
- }
416
- };
417
-
418
- /**
419
- * Integer type
420
- * @namespace
421
- * @category saltcorn-data
422
- * @subcategory types / int
423
- */
424
- const int = {
425
- /** @type {string} */
426
- name: "Integer",
427
- /** @type {string} */
428
- sql_name: "int",
429
- /**
430
- * @param {object} opts
431
- * @param {number} opts.min
432
- * @param {number} opts.max
433
- * @returns {boolean}
434
- */
435
- contract: ({ min, max }) => is.integer({ lte: max, gte: min }),
436
- primaryKey: { sql_type: "serial" },
437
- /**
438
- * @namespace
439
- * @category saltcorn-data
440
- * @subcategory types / int
441
- */
442
- fieldviews: {
443
- /**
444
- * @namespace
445
- * @category saltcorn-data
446
- * @subcategory types / int
447
- */
448
- show: { isEdit: false, run: (s) => text(s) },
449
- /**
450
- * @namespace
451
- * @category saltcorn-data
452
- * @subcategory types / int
453
- */
454
- edit: {
455
- isEdit: true,
456
- run: (nm, v, attrs, cls, required, field) =>
457
- input({
458
- type: "number",
459
- class: ["form-control", cls],
460
- disabled: attrs.disabled,
461
- "data-fieldname": text_attr(field.name),
462
- name: text_attr(nm),
463
- id: `input${text_attr(nm)}`,
464
- step: "1",
465
- ...(attrs.max && { max: attrs.max }),
466
- ...(attrs.min && { min: attrs.min }),
467
- ...(isdef(v) && { value: text_attr(v) }),
468
- }),
469
- },
470
- },
471
- /** @type {object[]} */
472
- attributes: [
473
- { name: "max", type: "Integer", required: false },
474
- { name: "min", type: "Integer", required: false },
475
- ],
476
- /**
477
- * @param {object} param
478
- * @returns {boolean}
479
- */
480
- validate_attributes: ({ min, max }) =>
481
- !isdef(min) || !isdef(max) || max > min,
482
- /**
483
- * @param {object} v
484
- * @returns {object}
485
- */
486
- read: (v) => {
487
- switch (typeof v) {
488
- case "number":
489
- return Math.round(v);
490
- case "string":
491
- if (v === "") return undefined;
492
- const parsed = +v;
493
- return isNaN(parsed) ? undefined : parsed;
494
- default:
495
- return undefined;
496
- }
497
- },
498
- /**
499
- * @param {object} param
500
- * @returns {boolean}
501
- */
502
- validate: ({ min, max }) => (x) => {
503
- if (isdef(min) && x < min) return { error: `Must be ${min} or higher` };
504
- if (isdef(max) && x > max) return { error: `Must be ${max} or less` };
505
- return true;
506
- },
507
- };
508
-
509
- /**
510
- * Color Type
511
- * @namespace color
512
- * @category saltcorn-data
513
- * @subcategory types / color
514
- */
515
- const color = {
516
- /** @type {string} */
517
- name: "Color",
518
- /** @type {string} */
519
- sql_name: "text",
520
- /**
521
- * @returns {function}
522
- */
523
- contract: () => is.str,
524
- /**
525
- * @namespace
526
- * @category saltcorn-data
527
- * @subcategory types / color
528
- */
529
- fieldviews: {
530
- /**
531
- * @namespace
532
- * @category saltcorn-data
533
- * @subcategory types / color
534
- */
535
- show: {
536
- isEdit: false,
537
- run: (s) =>
538
- s
539
- ? div({
540
- class: "color-type-show",
541
- style: `background: ${s};`,
542
- })
543
- : "",
544
- },
545
- /**
546
- * @namespace
547
- * @category saltcorn-data
548
- * @subcategory types / color
549
- */
550
- edit: {
551
- isEdit: true,
552
- run: (nm, v, attrs, cls, required, field) =>
553
- input({
554
- type: "color",
555
- class: ["form-control", cls],
556
- disabled: attrs.disabled,
557
- "data-fieldname": text_attr(field.name),
558
- name: text_attr(nm),
559
- id: `input${text_attr(nm)}`,
560
- ...(isdef(v) && { value: text_attr(v) }),
561
- }),
562
- },
563
- },
564
- /** @type {object[]} */
565
- attributes: [],
566
- /**
567
- * @param {object} v
568
- * @returns {object}
569
- */
570
- read: (v) => {
571
- switch (typeof v) {
572
- case "string":
573
- return v;
574
- default:
575
- return undefined;
576
- }
577
- },
578
- /**
579
- * @returns {boolean}
580
- */
581
- validate: () => (x) => {
582
- return true;
583
- },
584
- };
585
-
586
- /**
587
- * Float type
588
- * @namespace
589
- * @category saltcorn-data
590
- * @subcategory types / float
591
- */
592
- const float = {
593
- /** @type {string} */
594
- name: "Float",
595
- /** @type {string} */
596
- sql_name: "double precision",
597
- /**
598
- * @param {object} opts
599
- * @param {number} opts.min
600
- * @param {number} opts.max
601
- * @returns {function}
602
- */
603
- contract: ({ min, max }) => is.number({ lte: max, gte: min }),
604
- /**
605
- * @namespace
606
- * @category saltcorn-data
607
- * @subcategory types / float
608
- */
609
- fieldviews: {
610
- /**
611
- * @namespace
612
- * @category saltcorn-data
613
- * @subcategory types / float
614
- */
615
- show: { isEdit: false, run: (s) => text(s) },
616
- /**
617
- * @namespace
618
- * @category saltcorn-data
619
- * @subcategory types / float
620
- */
621
- edit: {
622
- isEdit: true,
623
- run: (nm, v, attrs, cls, required, field) =>
624
- input({
625
- type: "number",
626
- class: ["form-control", cls],
627
- name: text_attr(nm),
628
- "data-fieldname": text_attr(field.name),
629
- disabled: attrs.disabled,
630
- step: attrs.decimal_places
631
- ? Math.pow(10, -attrs.decimal_places)
632
- : "0.01",
633
- id: `input${text_attr(nm)}`,
634
- ...(attrs.max && { max: attrs.max }),
635
- ...(attrs.min && { min: attrs.min }),
636
- ...(isdef(v) && { value: text_attr(v) }),
637
- }),
638
- },
639
- },
640
- /** @type {object[]} */
641
- attributes: [
642
- { name: "max", type: "Float", required: false },
643
- { name: "min", type: "Float", required: false },
644
- { name: "units", type: "String", required: false },
645
- { name: "decimal_places", type: "Integer", required: false },
646
- ],
647
- /**
648
- * @param {object} v
649
- * @returns {number|string|undefined}
650
- */
651
- read: (v) => {
652
- switch (typeof v) {
653
- case "number":
654
- return v;
655
- case "string":
656
- const parsed = parseFloat(v);
657
- return isNaN(parsed) ? undefined : parsed;
658
- default:
659
- return undefined;
660
- }
661
- },
662
- /**
663
- * @param {object} param
664
- * @returns {object|boolean}
665
- */
666
- validate: ({ min, max }) => (x) => {
667
- if (isdef(min) && x < min) return { error: `Must be ${min} or higher` };
668
- if (isdef(max) && x > max) return { error: `Must be ${max} or less` };
669
- return true;
670
- },
671
- };
672
-
673
- /**
674
- * @param {object} req
675
- * @returns {string|undefined}
676
- */
677
- const locale = (req) => {
678
- //console.log(req && req.getLocale ? req.getLocale() : undefined);
679
- return req && req.getLocale ? req.getLocale() : undefined;
680
- };
681
-
682
- /**
683
- * @param {*} x
684
- * @returns {*}
685
- */
686
- const logit = (x) => {
687
- console.log(x);
688
- return x;
689
- };
690
-
691
- /**
692
- * Date type
693
- * @namespace
694
- * @category saltcorn-data
695
- * @subcategory types / date
696
- */
697
- const date = {
698
- /** @type {string} */
699
- name: "Date",
700
- /** @type {string} */
701
- sql_name: "timestamptz",
702
- /**
703
- * @returns {function}
704
- */
705
- contract: () => is.date,
706
- /** @type {object[]} */
707
- attributes: [],
708
- /**
709
- * @namespace
710
- * @category saltcorn-data
711
- * @subcategory types / date
712
- */
713
- fieldviews: {
714
- /**
715
- * @namespace
716
- * @category saltcorn-data
717
- * @subcategory types / date
718
- */
719
- show: {
720
- isEdit: false,
721
- run: (d, req) =>
722
- text(
723
- typeof d === "string"
724
- ? text(d)
725
- : d && d.toLocaleString
726
- ? d.toLocaleString(locale(req))
727
- : ""
728
- ),
729
- },
730
- /**
731
- * @namespace
732
- * @category saltcorn-data
733
- * @subcategory types / date
734
- */
735
- showDay: {
736
- isEdit: false,
737
- run: (d, req) =>
738
- text(
739
- typeof d === "string"
740
- ? text(d)
741
- : d && d.toLocaleDateString
742
- ? d.toLocaleDateString(locale(req))
743
- : ""
744
- ),
745
- },
746
- /**
747
- * @namespace
748
- * @category saltcorn-data
749
- * @subcategory types / date
750
- */
751
- format: {
752
- isEdit: false,
753
- configFields: [
754
- {
755
- name: "format",
756
- label: "Format",
757
- type: "String",
758
- sublabel: "moment.js format specifier",
759
- },
760
- ],
761
- run: (d, req, options) => {
762
- if (!d) return "";
763
- if (!options || !options.format) return text(moment(d).format());
764
- return text(moment(d).format(options.format));
765
- },
766
- },
767
- /**
768
- * @namespace
769
- * @category saltcorn-data
770
- * @subcategory types / date
771
- */
772
- relative: {
773
- isEdit: false,
774
- run: (d, req) => {
775
- if (!d) return "";
776
- const loc = locale(req);
777
- if (loc) return text(moment(d).locale(loc).fromNow());
778
- else return text(moment(d).fromNow());
779
- },
780
- },
781
- /**
782
- * @namespace
783
- * @category saltcorn-data
784
- * @subcategory types / date
785
- */
786
- yearsAgo: {
787
- isEdit: false,
788
- run: (d, req) => {
789
- if (!d) return "";
790
- return text(moment.duration(new Date() - d).years());
791
- },
792
- },
793
- /**
794
- * @namespace
795
- * @category saltcorn-data
796
- * @subcategory types / date
797
- */
798
- edit: {
799
- isEdit: true,
800
- run: (nm, v, attrs, cls, required, field) =>
801
- input({
802
- type: "text",
803
- class: ["form-control", cls],
804
- "data-fieldname": text_attr(field.name),
805
- name: text_attr(nm),
806
- disabled: attrs.disabled,
807
- id: `input${text_attr(nm)}`,
808
- ...(isdef(v) && {
809
- value: text_attr(
810
- typeof v === "string" ? v : v.toLocaleString(attrs.locale)
811
- ),
812
- }),
813
- }),
814
- },
815
- /**
816
- * @namespace
817
- * @category saltcorn-data
818
- * @subcategory types / date
819
- */
820
- editDay: {
821
- isEdit: true,
822
- run: (nm, v, attrs, cls, required, field) =>
823
- input({
824
- type: "text",
825
- class: ["form-control", cls],
826
- "data-fieldname": text_attr(field.name),
827
- name: text_attr(nm),
828
- disabled: attrs.disabled,
829
- id: `input${text_attr(nm)}`,
830
- ...(isdef(v) && {
831
- value: text_attr(
832
- typeof v === "string" ? v : v.toLocaleDateString(attrs.locale)
833
- ),
834
- }),
835
- }),
836
- },
837
- },
838
- /**
839
- * @namespace
840
- * @category saltcorn-data
841
- * @subcategory types / date
842
- */
843
- presets: {
844
- Now: () => new Date(),
845
- },
846
- /**
847
- * @param {object} v
848
- * @param {object} attrs
849
- * @returns {object}
850
- */
851
- read: (v, attrs) => {
852
- if (v instanceof Date && !isNaN(v)) return v;
853
- if (typeof v === "string") {
854
- if (attrs && attrs.locale) {
855
- const d = moment(v, "L LT", attrs.locale).toDate();
856
- if (d instanceof Date && !isNaN(d)) return d;
857
- }
858
- const d = new Date(v);
859
- if (d instanceof Date && !isNaN(d)) return d;
860
- else return null;
861
- }
862
- },
863
- /**
864
- * @param {object} param
865
- * @returns {boolean}
866
- */
867
- validate: ({}) => (v) => v instanceof Date && !isNaN(v),
868
- };
869
-
870
- /**
871
- * Boolean Type
872
- * @namespace
873
- * @category saltcorn-data
874
- * @subcategory types / bool
875
- */
876
- const bool = {
877
- /** @type {string} */
878
- name: "Bool",
879
- /** @type {string} */
880
- sql_name: "boolean",
881
- /**
882
- * @returns {function}
883
- */
884
- contract: () => is.bool,
885
- /**
886
- * @namespace
887
- * @category saltcorn-data
888
- * @subcategory types / bool
889
- */
890
- fieldviews: {
891
- /**
892
- * @namespace
893
- * @category saltcorn-data
894
- * @subcategory types / bool
895
- */
896
- show: {
897
- isEdit: false,
898
- run: (v) =>
899
- v === true
900
- ? i({
901
- class: "fas fa-lg fa-check-circle text-success",
902
- })
903
- : v === false
904
- ? i({
905
- class: "fas fa-lg fa-times-circle text-danger",
906
- })
907
- : "",
908
- },
909
- /**
910
- * @namespace
911
- * @category saltcorn-data
912
- * @subcategory types / bool
913
- */
914
- checkboxes: {
915
- isEdit: false,
916
- run: (v) =>
917
- v === true
918
- ? input({ disabled: true, type: "checkbox", checked: true })
919
- : v === false
920
- ? input({ type: "checkbox", disabled: true })
921
- : "",
922
- },
923
- /**
924
- * @namespace
925
- * @category saltcorn-data
926
- * @subcategory types / bool
927
- */
928
- TrueFalse: {
929
- isEdit: false,
930
- run: (v) => (v === true ? "True" : v === false ? "False" : ""),
931
- },
932
- /**
933
- * @namespace
934
- * @category saltcorn-data
935
- * @subcategory types / bool
936
- */
937
- edit: {
938
- isEdit: true,
939
- run: (nm, v, attrs, cls, required, field) =>
940
- input({
941
- class: ["mr-2 mt-1", cls],
942
- "data-fieldname": text_attr(field.name),
943
- type: "checkbox",
944
- name: text_attr(nm),
945
- id: `input${text_attr(nm)}`,
946
- ...(v && { checked: true }),
947
- ...(attrs.disabled && { onclick: "return false;" }),
948
- }),
949
- },
950
- /**
951
- * @namespace
952
- * @category saltcorn-data
953
- * @subcategory types / bool
954
- */
955
- tristate: {
956
- isEdit: true,
957
- run: (nm, v, attrs, cls, required, field) =>
958
- attrs.disabled
959
- ? !(!isdef(v) || v === null)
960
- ? ""
961
- : v
962
- ? "T"
963
- : "F"
964
- : input({
965
- type: "hidden",
966
- "data-fieldname": text_attr(field.name),
967
- name: text_attr(nm),
968
- id: `input${text_attr(nm)}`,
969
- value: !isdef(v) || v === null ? "?" : v ? "on" : "off",
970
- }) +
971
- button(
972
- {
973
- onClick: `tristateClick('${text_attr(nm)}')`,
974
- type: "button",
975
- id: `trib${text_attr(nm)}`,
976
- },
977
- !isdef(v) || v === null ? "?" : v ? "T" : "F"
978
- ),
979
- },
980
- },
981
- /** @type {object[]} */
982
- attributes: [],
983
- /**
984
- * @param {*} rec
985
- * @param {string} name
986
- * @returns {boolean|null}
987
- */
988
- readFromFormRecord: (rec, name) => {
989
- if (!rec[name]) return false;
990
- if (["undefined", "false", "off"].includes(rec[name])) return false;
991
- if (rec[name] === "?") return null;
992
- return rec[name] ? true : false;
993
- },
994
- /**
995
- * @param {object} v
996
- * @returns {boolean|null}
997
- */
998
- read: (v) => {
999
- switch (typeof v) {
1000
- case "string":
1001
- if (["TRUE", "T", "ON"].includes(v.toUpperCase())) return true;
1002
- if (v === "?") return null;
1003
- else return false;
1004
- default:
1005
- if (v === null) return null;
1006
- return v ? true : false;
1007
- }
1008
- },
1009
- /**
1010
- * @param {object} v
1011
- * @returns {object}
1012
- */
1013
- readFromDB: (v) => !!v,
1014
- /**
1015
- * @param {object} v
1016
- * @returns {object}
1017
- */
1018
- listAs: (v) => JSON.stringify(v),
1019
- /**
1020
- * @returns {boolean}
1021
- */
1022
- validate: () => (x) => true,
1023
- };
1024
-
1025
- module.exports = { string, int, bool, date, float, color };