@saltcorn/data 1.6.0-alpha.1 → 1.6.0-alpha.10

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 (208) hide show
  1. package/dist/base-plugin/actions.d.ts +1850 -1653
  2. package/dist/base-plugin/actions.d.ts.map +1 -1
  3. package/dist/base-plugin/actions.js +130 -104
  4. package/dist/base-plugin/actions.js.map +1 -1
  5. package/dist/base-plugin/fieldviews.d.ts +284 -114
  6. package/dist/base-plugin/fieldviews.d.ts.map +1 -1
  7. package/dist/base-plugin/fieldviews.js +23 -69
  8. package/dist/base-plugin/fieldviews.js.map +1 -1
  9. package/dist/base-plugin/fileviews.d.ts +18 -14
  10. package/dist/base-plugin/fileviews.d.ts.map +1 -1
  11. package/dist/base-plugin/fileviews.js +35 -23
  12. package/dist/base-plugin/fileviews.js.map +1 -1
  13. package/dist/base-plugin/index.d.ts +3369 -1299
  14. package/dist/base-plugin/index.d.ts.map +1 -1
  15. package/dist/base-plugin/index.js +39 -25
  16. package/dist/base-plugin/index.js.map +1 -1
  17. package/dist/base-plugin/types.d.ts +1438 -1029
  18. package/dist/base-plugin/types.d.ts.map +1 -1
  19. package/dist/base-plugin/types.js +3 -2
  20. package/dist/base-plugin/types.js.map +1 -1
  21. package/dist/base-plugin/viewtemplates/edit.d.ts +133 -257
  22. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
  23. package/dist/base-plugin/viewtemplates/edit.js +306 -348
  24. package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
  25. package/dist/base-plugin/viewtemplates/feed.d.ts +30 -81
  26. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -1
  27. package/dist/base-plugin/viewtemplates/feed.js +37 -30
  28. package/dist/base-plugin/viewtemplates/feed.js.map +1 -1
  29. package/dist/base-plugin/viewtemplates/filter.d.ts +42 -64
  30. package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -1
  31. package/dist/base-plugin/viewtemplates/filter.js +100 -81
  32. package/dist/base-plugin/viewtemplates/filter.js.map +1 -1
  33. package/dist/base-plugin/viewtemplates/list.d.ts +40 -118
  34. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
  35. package/dist/base-plugin/viewtemplates/list.js +169 -168
  36. package/dist/base-plugin/viewtemplates/list.js.map +1 -1
  37. package/dist/base-plugin/viewtemplates/listshowlist.d.ts +65 -49
  38. package/dist/base-plugin/viewtemplates/listshowlist.d.ts.map +1 -1
  39. package/dist/base-plugin/viewtemplates/listshowlist.js +33 -58
  40. package/dist/base-plugin/viewtemplates/listshowlist.js.map +1 -1
  41. package/dist/base-plugin/viewtemplates/room.d.ts +102 -109
  42. package/dist/base-plugin/viewtemplates/room.d.ts.map +1 -1
  43. package/dist/base-plugin/viewtemplates/room.js +53 -50
  44. package/dist/base-plugin/viewtemplates/room.js.map +1 -1
  45. package/dist/base-plugin/viewtemplates/show.d.ts +72 -136
  46. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
  47. package/dist/base-plugin/viewtemplates/show.js +86 -181
  48. package/dist/base-plugin/viewtemplates/show.js.map +1 -1
  49. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +2 -187
  50. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -1
  51. package/dist/base-plugin/viewtemplates/viewable_fields.js +3 -1898
  52. package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -1
  53. package/dist/base-plugin/viewtemplates/workflow-room.d.ts +37 -61
  54. package/dist/base-plugin/viewtemplates/workflow-room.d.ts.map +1 -1
  55. package/dist/base-plugin/viewtemplates/workflow-room.js +42 -65
  56. package/dist/base-plugin/viewtemplates/workflow-room.js.map +1 -1
  57. package/dist/contracts.d.ts +4 -48
  58. package/dist/contracts.d.ts.map +1 -1
  59. package/dist/contracts.js +18 -2
  60. package/dist/contracts.js.map +1 -1
  61. package/dist/db/connect.d.ts.map +1 -1
  62. package/dist/db/connect.js +20 -2
  63. package/dist/db/connect.js.map +1 -1
  64. package/dist/db/fixtures.d.ts +2 -7
  65. package/dist/db/fixtures.d.ts.map +1 -1
  66. package/dist/db/fixtures.js +2349 -2352
  67. package/dist/db/fixtures.js.map +1 -1
  68. package/dist/db/reset_schema.d.ts +3 -3
  69. package/dist/db/reset_schema.d.ts.map +1 -1
  70. package/dist/db/reset_schema.js +10 -10
  71. package/dist/db/reset_schema.js.map +1 -1
  72. package/dist/db/state.d.ts +31 -28
  73. package/dist/db/state.d.ts.map +1 -1
  74. package/dist/db/state.js +9 -32
  75. package/dist/db/state.js.map +1 -1
  76. package/dist/diagram/node_extract_utils.js +1 -1
  77. package/dist/diagram/node_extract_utils.js.map +1 -1
  78. package/dist/index.d.ts +5 -1
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +1 -1
  81. package/dist/index.js.map +1 -1
  82. package/dist/migrate.d.ts +9 -3
  83. package/dist/migrate.d.ts.map +1 -1
  84. package/dist/migrate.js +26 -20
  85. package/dist/migrate.js.map +1 -1
  86. package/dist/mobile-mocks/npm/apns2.d.ts +1 -0
  87. package/dist/mobile-mocks/npm/apns2.d.ts.map +1 -0
  88. package/dist/mobile-mocks/npm/apns2.js +2 -0
  89. package/dist/mobile-mocks/npm/apns2.js.map +1 -0
  90. package/dist/mobile-mocks/npm/vm2.d.ts +1 -0
  91. package/dist/mobile-mocks/npm/vm2.d.ts.map +1 -0
  92. package/dist/mobile-mocks/npm/vm2.js +2 -0
  93. package/dist/mobile-mocks/npm/vm2.js.map +1 -0
  94. package/dist/mobile-mocks/npm/xml2js.d.ts +1 -0
  95. package/dist/mobile-mocks/npm/xml2js.d.ts.map +1 -0
  96. package/dist/mobile-mocks/npm/xml2js.js +2 -0
  97. package/dist/mobile-mocks/npm/xml2js.js.map +1 -0
  98. package/dist/model-helper.d.ts +18 -17
  99. package/dist/model-helper.d.ts.map +1 -1
  100. package/dist/model-helper.js +46 -29
  101. package/dist/model-helper.js.map +1 -1
  102. package/dist/models/config.d.ts +5 -0
  103. package/dist/models/config.d.ts.map +1 -1
  104. package/dist/models/config.js +32 -0
  105. package/dist/models/config.js.map +1 -1
  106. package/dist/models/field.d.ts +1 -1
  107. package/dist/models/field.d.ts.map +1 -1
  108. package/dist/models/field.js +3 -2
  109. package/dist/models/field.js.map +1 -1
  110. package/dist/models/file.d.ts +2 -2
  111. package/dist/models/file.d.ts.map +1 -1
  112. package/dist/models/file.js.map +1 -1
  113. package/dist/models/form.d.ts +2 -0
  114. package/dist/models/form.d.ts.map +1 -1
  115. package/dist/models/form.js +2 -1
  116. package/dist/models/form.js.map +1 -1
  117. package/dist/models/index.d.ts +5 -0
  118. package/dist/models/index.d.ts.map +1 -1
  119. package/dist/models/internal/push_message_helper.d.ts +63 -24
  120. package/dist/models/internal/push_message_helper.d.ts.map +1 -1
  121. package/dist/models/internal/push_message_helper.js +218 -42
  122. package/dist/models/internal/push_message_helper.js.map +1 -1
  123. package/dist/models/layout.d.ts +1 -1
  124. package/dist/models/layout.d.ts.map +1 -1
  125. package/dist/models/layout.js +12 -0
  126. package/dist/models/layout.js.map +1 -1
  127. package/dist/models/page.d.ts.map +1 -1
  128. package/dist/models/page.js +28 -1
  129. package/dist/models/page.js.map +1 -1
  130. package/dist/models/plugin.d.ts +5 -2
  131. package/dist/models/plugin.d.ts.map +1 -1
  132. package/dist/models/plugin.js +15 -1
  133. package/dist/models/plugin.js.map +1 -1
  134. package/dist/models/scheduler.js +1 -1
  135. package/dist/models/scheduler.js.map +1 -1
  136. package/dist/models/table.d.ts.map +1 -1
  137. package/dist/models/table.js +13 -4
  138. package/dist/models/table.js.map +1 -1
  139. package/dist/models/trigger.d.ts +2 -1
  140. package/dist/models/trigger.d.ts.map +1 -1
  141. package/dist/models/trigger.js +3 -1
  142. package/dist/models/trigger.js.map +1 -1
  143. package/dist/models/view.js +4 -4
  144. package/dist/models/view.js.map +1 -1
  145. package/dist/models/workflow_step.d.ts +5 -0
  146. package/dist/models/workflow_step.d.ts.map +1 -1
  147. package/dist/models/workflow_step.js +142 -0
  148. package/dist/models/workflow_step.js.map +1 -1
  149. package/dist/plugin-helper.d.ts +218 -191
  150. package/dist/plugin-helper.d.ts.map +1 -1
  151. package/dist/plugin-helper.js +259 -192
  152. package/dist/plugin-helper.js.map +1 -1
  153. package/dist/plugin-testing.d.ts +6 -6
  154. package/dist/plugin-testing.d.ts.map +1 -1
  155. package/dist/plugin-testing.js +66 -31
  156. package/dist/plugin-testing.js.map +1 -1
  157. package/dist/standard-menu.d.ts +6 -1
  158. package/dist/standard-menu.d.ts.map +1 -1
  159. package/dist/standard-menu.js +20 -0
  160. package/dist/standard-menu.js.map +1 -1
  161. package/dist/tests/actions.test.js +76 -0
  162. package/dist/tests/actions.test.js.map +1 -1
  163. package/dist/tests/auth.test.js +34 -0
  164. package/dist/tests/auth.test.js.map +1 -1
  165. package/dist/tests/auxtest.test.js +6 -0
  166. package/dist/tests/auxtest.test.js.map +1 -1
  167. package/dist/tests/calc.test.js +1 -1
  168. package/dist/tests/calc.test.js.map +1 -1
  169. package/dist/tests/edit.test.js +2 -2
  170. package/dist/tests/edit.test.js.map +1 -1
  171. package/dist/tests/exact_views.test.js +4 -4
  172. package/dist/tests/exact_views.test.js.map +1 -1
  173. package/dist/tests/form.test.js +65 -0
  174. package/dist/tests/form.test.js.map +1 -1
  175. package/dist/tests/user.test.js +52 -1
  176. package/dist/tests/user.test.js.map +1 -1
  177. package/dist/tests/workflow_run.test.js +96 -0
  178. package/dist/tests/workflow_run.test.js.map +1 -1
  179. package/dist/utils.d.ts +6 -0
  180. package/dist/utils.d.ts.map +1 -1
  181. package/dist/utils.js +69 -5
  182. package/dist/utils.js.map +1 -1
  183. package/dist/viewable_fields.d.ts +151 -96
  184. package/dist/viewable_fields.d.ts.map +1 -1
  185. package/dist/viewable_fields.js +452 -91
  186. package/dist/viewable_fields.js.map +1 -1
  187. package/dist/web-mobile-commons.d.ts +1 -2
  188. package/dist/web-mobile-commons.d.ts.map +1 -1
  189. package/dist/web-mobile-commons.js +4 -4
  190. package/dist/web-mobile-commons.js.map +1 -1
  191. package/package.json +12 -9
  192. package/webpack.config.js +3 -0
  193. package/dist/models/s3_helpers.d.ts +0 -54
  194. package/dist/models/s3_helpers.d.ts.map +0 -1
  195. package/dist/models/s3_helpers.js +0 -505
  196. package/dist/models/s3_helpers.js.map +0 -1
  197. package/dist/test-utils/mocks.d.ts +0 -203
  198. package/dist/test-utils/mocks.d.ts.map +0 -1
  199. package/dist/test-utils/mocks.js +0 -329
  200. package/dist/test-utils/mocks.js.map +0 -1
  201. package/dist/tests/mail_queue.test.d.ts +0 -2
  202. package/dist/tests/mail_queue.test.d.ts.map +0 -1
  203. package/dist/tests/mail_queue.test.js +0 -122
  204. package/dist/tests/mail_queue.test.js.map +0 -1
  205. package/dist/tests/table_sync_info.test.d.ts +0 -2
  206. package/dist/tests/table_sync_info.test.d.ts.map +0 -1
  207. package/dist/tests/table_sync_info.test.js +0 -62
  208. package/dist/tests/table_sync_info.test.js.map +0 -1
@@ -1,21 +1,24 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  /**
3
6
  * @category saltcorn-data
4
7
  * @module base-plugin/viewtemplates/filter
5
8
  * @subcategory base-plugin
6
9
  */
7
- const User = require("../../models/user");
8
- const Page = require("../../models/page");
9
- const View = require("../../models/view");
10
- const Table = require("../../models/table");
11
- const Field = require("../../models/field");
12
- const Workflow = require("../../models/workflow");
13
- const Trigger = require("../../models/trigger");
14
- const Crash = require("../../models/crash");
15
- const { div, text, span, i, option, select, button, text_attr, domReady, script, a, } = require("@saltcorn/markup/tags");
10
+ const table_1 = __importDefault(require("../../models/table"));
11
+ const view_1 = __importDefault(require("../../models/view"));
12
+ const field_1 = __importDefault(require("../../models/field"));
13
+ const workflow_1 = __importDefault(require("../../models/workflow"));
14
+ const trigger_1 = __importDefault(require("../../models/trigger"));
15
+ const user_1 = __importDefault(require("../../models/user"));
16
+ const page_1 = __importDefault(require("../../models/page"));
17
+ const crash_1 = __importDefault(require("../../models/crash"));
18
+ const tags_1 = require("@saltcorn/markup/tags");
16
19
  const renderLayout = require("@saltcorn/markup/layout");
17
- const { readState, calcfldViewOptions, calcfldViewConfig, run_action_column, stateFieldsToWhere, getActionConfigFields, picked_fields_to_query, stateFieldsToQuery, stateToQueryString, } = require("../../plugin-helper");
18
- const { action_link } = require("./viewable_fields");
20
+ const plugin_helper_1 = require("../../plugin-helper");
21
+ const viewable_fields_1 = require("../../viewable_fields");
19
22
  const { search_bar } = require("@saltcorn/markup/helpers");
20
23
  const { eachView, translateLayout, getStringsForI18n, traverse, } = require("../../models/layout");
21
24
  const { InvalidConfiguration, objectToQueryString, removeEmptyStrings, asyncMap, getSessionId, mergeIntoWhere, isWeb, renderServerSide, } = require("../../utils");
@@ -27,12 +30,12 @@ const db = require("../../db/index");
27
30
  /**
28
31
  * @returns {Workflow}
29
32
  */
30
- const configuration_workflow = (req) => new Workflow({
33
+ const configuration_workflow = (req) => new workflow_1.default({
31
34
  steps: [
32
35
  {
33
36
  name: "Layout",
34
37
  builder: async (context) => {
35
- const table = Table.findOne(context.table_id || context.exttable_name);
38
+ const table = table_1.default.findOne(context.table_id || context.exttable_name);
36
39
  const fields = [...table.getFields()];
37
40
  const { child_field_list, child_relations } = await table.get_child_relations();
38
41
  const { parent_field_list } = await table.get_parent_relations(true);
@@ -50,7 +53,7 @@ const configuration_workflow = (req) => new Workflow({
50
53
  const jfld = fields.find((f) => f.name === jFieldNm);
51
54
  if (!jfld)
52
55
  return;
53
- const throughTable = Table.findOne({
56
+ const throughTable = table_1.default.findOne({
54
57
  name: jfld.reftable_name,
55
58
  });
56
59
  const throughFld = throughTable.fields.find((f) => f.name === throughField);
@@ -58,12 +61,12 @@ const configuration_workflow = (req) => new Workflow({
58
61
  }
59
62
  })
60
63
  .filter((f) => f);
61
- const roles = await User.get_roles();
64
+ const roles = await user_1.default.get_roles();
62
65
  for (const cr of child_relations) {
63
66
  const cfields = await cr.table.getFields();
64
67
  cfields.forEach((cf) => {
65
68
  if (cf.name !== cr.key_field.name)
66
- fields.push(new Field({
69
+ fields.push(new field_1.default({
67
70
  ...cf,
68
71
  label: `${cr.table.name}.${cr.key_field.name}→${cf.name}`,
69
72
  name: `${cr.table.name}.${cr.key_field.name}.${cf.name}`,
@@ -72,14 +75,14 @@ const configuration_workflow = (req) => new Workflow({
72
75
  }
73
76
  const stateActions = Object.entries(getState().actions).filter(([k, v]) => !v.disableInBuilder && !v.disableIf?.());
74
77
  const actions1 = ["Clear", ...stateActions.map(([k, v]) => k)];
75
- const actions = Trigger.action_options({
78
+ const actions = trigger_1.default.action_options({
76
79
  tableTriggers: table.id,
77
80
  apiNeverTriggers: true,
78
81
  forBuilder: true,
79
82
  builtInLabel: "Filter Actions",
80
83
  builtIns: ["Clear"],
81
84
  });
82
- const triggerActions = Trigger.trigger_actions({
85
+ const triggerActions = trigger_1.default.trigger_actions({
83
86
  tableTriggers: table.id,
84
87
  apiNeverTriggers: true,
85
88
  });
@@ -101,10 +104,25 @@ const configuration_workflow = (req) => new Workflow({
101
104
  };
102
105
  for (const [name, action] of stateActions) {
103
106
  if (action.configFields) {
104
- actionConfigForms[name] = await getActionConfigFields(action, table, { mode: "filter", req });
107
+ actionConfigForms[name] = await (0, plugin_helper_1.getActionConfigFields)(action, table, { mode: "filter", req });
105
108
  }
106
109
  }
107
- const own_link_views = await View.find_table_views_where(context.table_id || context.exttable_name, ({ viewrow }) => viewrow.name !== context.viewname);
110
+ const workflowActions = trigger_1.default.trigger_actions({
111
+ tableTriggers: table.id,
112
+ apiNeverTriggers: true,
113
+ onlyWorkflows: true,
114
+ });
115
+ for (const name of workflowActions) {
116
+ actionConfigForms[name] = [
117
+ {
118
+ name: "initial_context",
119
+ label: "Additional context",
120
+ type: "String",
121
+ class: "validate-expression",
122
+ },
123
+ ];
124
+ }
125
+ const own_link_views = await view_1.default.find_table_views_where(context.table_id || context.exttable_name, ({ viewrow }) => viewrow.name !== context.viewname);
108
126
  const own_view_names = new Set();
109
127
  const views = own_link_views.map((v) => {
110
128
  own_view_names.add(v.name);
@@ -114,7 +132,7 @@ const configuration_workflow = (req) => new Workflow({
114
132
  viewtemplate: v.viewtemplate,
115
133
  };
116
134
  });
117
- const all_views = await View.find({}, { cached: true });
135
+ const all_views = await view_1.default.find({}, { cached: true });
118
136
  for (const v of all_views) {
119
137
  if (!own_view_names.has(v.name)) {
120
138
  views.push({
@@ -130,15 +148,15 @@ const configuration_workflow = (req) => new Workflow({
130
148
  }
131
149
  const library = (await Library.find({})).filter((l) => l.suitableFor("filter"));
132
150
  //const fieldViewConfigForms = await calcfldViewConfig(fields, false);
133
- const { field_view_options, handlesTextStyle } = calcfldViewOptions(fields, "filter");
134
- const pages = await Page.find();
151
+ const { field_view_options, handlesTextStyle } = (0, plugin_helper_1.calcfldViewOptions)(fields, "filter");
152
+ const pages = await page_1.default.find();
135
153
  var agg_field_opts = {};
136
154
  agg_field_opts[table.name] = table.fields
137
155
  .filter((f) => !f.calculated || f.stored)
138
156
  .map((f) => ({
139
157
  name: f.name,
140
158
  label: f.label,
141
- ftype: f.type.name || f.type,
159
+ ftype: f.type?.name || f.type,
142
160
  table_name: table.name,
143
161
  table_id: table.id,
144
162
  }));
@@ -199,9 +217,9 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
199
217
  //console.log(layout);
200
218
  if (!columns || !layout)
201
219
  return "View not yet built";
202
- const table = Table.findOne(table_id);
220
+ const table = table_1.default.findOne(table_id);
203
221
  const fields = table.getFields();
204
- readState(state, fields);
222
+ (0, plugin_helper_1.readState)(state, fields);
205
223
  const formFieldNames = (columns || [])
206
224
  .map((c) => c.field_name)
207
225
  .filter((n) => n);
@@ -218,8 +236,8 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
218
236
  showv = realv.label;
219
237
  }
220
238
  badges.push({
221
- text: `${text_attr(k)}:${text_attr(showv)}`,
222
- onclick: `unset_state_field('${text_attr(k)}', this)`,
239
+ text: `${(0, tags_1.text_attr)(k)}:${(0, tags_1.text_attr)(showv)}`,
240
+ onclick: `unset_state_field('${(0, tags_1.text_attr)(k)}', this)`,
223
241
  });
224
242
  }
225
243
  });
@@ -233,7 +251,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
233
251
  await traverse(layout, {
234
252
  aggregation: async (segment) => {
235
253
  const { stat, agg_field, agg_fieldview, aggwhere } = segment;
236
- const where = stateFieldsToWhere({ fields, state, table, prefix: "a." });
254
+ const where = (0, plugin_helper_1.stateFieldsToWhere)({ fields, state, table, prefix: "a." });
237
255
  if (aggwhere) {
238
256
  const ctx = {
239
257
  ...state,
@@ -256,7 +274,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
256
274
  const fld = table.getField(agg_field);
257
275
  segment.type = "blank";
258
276
  if (stat.toLowerCase() === "array_agg" && Array.isArray(val))
259
- segment.contents = val.map((v) => text(v.toString())).join(", ");
277
+ segment.contents = val.map((v) => (0, tags_1.text)(v.toString())).join(", ");
260
278
  else if (agg_fieldview) {
261
279
  const outcomeType = stat === "Percent true" || stat === "Percent false"
262
280
  ? "Float"
@@ -270,7 +288,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
270
288
  }
271
289
  }
272
290
  else
273
- segment.contents = text(val);
291
+ segment.contents = (0, tags_1.text)(val);
274
292
  },
275
293
  field: async (segment) => {
276
294
  const { field_name, fieldview, configuration } = segment;
@@ -280,7 +298,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
280
298
  const kpath = field_name.split(".");
281
299
  if (kpath.length === 3) {
282
300
  const [jtNm, jFieldNm, lblField] = kpath;
283
- const jtable = Table.findOne({ name: jtNm });
301
+ const jtable = table_1.default.findOne({ name: jtNm });
284
302
  if (!jtable)
285
303
  throw new InvalidConfiguration(`View ${viewname} incorrectly configured: cannot find join table ${jtNm}`);
286
304
  const jfields = jtable.fields;
@@ -347,7 +365,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
347
365
  if (extra?.isPreview)
348
366
  return;
349
367
  try {
350
- const actionResult = await run_action_column({
368
+ const actionResult = await (0, plugin_helper_1.run_action_column)({
351
369
  col: { ...segment },
352
370
  referrer: extra.req?.get?.("Referrer"),
353
371
  req: extra.req,
@@ -361,19 +379,19 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
361
379
  });
362
380
  }
363
381
  if (actionResult)
364
- segment.contents = script(domReady(`common_done(${JSON.stringify(actionResult)}, "${viewname}")`));
382
+ segment.contents = (0, tags_1.script)((0, tags_1.domReady)(`common_done(${JSON.stringify(actionResult)}, "${viewname}")`));
365
383
  else
366
384
  segment.contents = "";
367
385
  }
368
386
  catch (e) {
369
387
  segment.contents = "";
370
- Crash.create(e, extra.req);
388
+ crash_1.default.create(e, extra.req);
371
389
  }
372
390
  }
373
391
  },
374
392
  });
375
393
  await eachView(layout, async (segment, inLazy) => {
376
- const view = await View.findOne({ name: segment.view });
394
+ const view = await view_1.default.findOne({ name: segment.view });
377
395
  if (!view)
378
396
  throw new InvalidConfiguration(`View ${viewname} incorrectly configured: cannot find view ${segment.view}`);
379
397
  const extra_state = segment.extra_state_fml
@@ -381,8 +399,8 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
381
399
  : {};
382
400
  if (segment.state === "local") {
383
401
  const state1 = { ...extra_state };
384
- const qs = stateToQueryString(state1, true);
385
- segment.contents = div({
402
+ const qs = (0, plugin_helper_1.stateToQueryString)(state1, true);
403
+ segment.contents = (0, tags_1.div)({
386
404
  class: "d-inline",
387
405
  "data-sc-embed-viewname": view.name,
388
406
  "data-sc-local-state": `/view/${view.name}${qs}`,
@@ -395,8 +413,8 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
395
413
  }
396
414
  else {
397
415
  const state1 = { ...state, ...extra_state };
398
- const qs = stateToQueryString(state1, true);
399
- segment.contents = div({
416
+ const qs = (0, plugin_helper_1.stateToQueryString)(state1, true);
417
+ segment.contents = (0, tags_1.div)({
400
418
  class: "d-inline",
401
419
  "data-sc-embed-viewname": view.name,
402
420
  "data-sc-view-source": `/view/${view.name}${qs}`,
@@ -407,7 +425,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
407
425
  : await renderServerSide(view.name, state1));
408
426
  }
409
427
  }, state);
410
- await Page.renderEachEmbeddedPageInLayout(layout, state, extra);
428
+ await page_1.default.renderEachEmbeddedPageInLayout(layout, state, extra);
411
429
  translateLayout(layout, extra.req.getLocale());
412
430
  const blockDispatch = {
413
431
  field(segment) {
@@ -460,7 +478,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
460
478
  (b.label?.toLowerCase?.() || b.label)
461
479
  ? 1
462
480
  : -1);
463
- const options = dvs.map(({ label, value, jsvalue }, ix) => option({
481
+ const options = dvs.map(({ label, value, jsvalue }, ix) => (0, tags_1.option)({
464
482
  value,
465
483
  selected: `${state[field_name]}` === `${or_if_undef(jsvalue, value)}` ||
466
484
  (!value && !state[field_name]) ||
@@ -472,7 +490,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
472
490
  : label_formula
473
491
  ? eval_expression(label_formula, { [field_name]: value }, extra.req.user || { role_id: 100 }, "Dropdown label formula")
474
492
  : label));
475
- return (select({
493
+ return ((0, tags_1.select)({
476
494
  name: `ddfilter${field_name}`,
477
495
  class: "form-control form-select d-inline-maybe scfilter selectizable",
478
496
  style: full_width ? undefined : "width: unset;",
@@ -480,7 +498,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
480
498
  onchange: `this.value=='' ? unset_state_field('${encodeURIComponent(field_name)}', this): set_state_field('${encodeURIComponent(field_name)}', this.value, this)`,
481
499
  }, options) +
482
500
  (apply_select2
483
- ? script(domReady(`$('select[name=ddfilter${field_name}]').select2();`))
501
+ ? (0, tags_1.script)((0, tags_1.domReady)(`$('select[name=ddfilter${field_name}]').select2();`))
484
502
  : ""));
485
503
  },
486
504
  action(segment) {
@@ -493,18 +511,18 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
493
511
  : "";
494
512
  if (action_name === "Clear") {
495
513
  if (action_style === "btn-link")
496
- return a({
514
+ return (0, tags_1.a)({
497
515
  onclick: `${confirmStr}clear_state('${configuration?.omit_fields || ""}', this)`,
498
516
  href: "javascript:void(0)",
499
517
  }, action_icon
500
- ? i({ class: action_icon }) + (label ? " " : "")
518
+ ? (0, tags_1.i)({ class: action_icon }) + (label ? " " : "")
501
519
  : false, label);
502
520
  else
503
- return button({
521
+ return (0, tags_1.button)({
504
522
  onClick: `${confirmStr}clear_state('${configuration?.omit_fields || ""}', this)`,
505
523
  class: `btn ${action_style || "btn-primary"} ${action_size || ""}`,
506
524
  }, action_icon
507
- ? i({ class: action_icon }) + (label ? " " : "")
525
+ ? (0, tags_1.i)({ class: action_icon }) + (label ? " " : "")
508
526
  : false, label);
509
527
  }
510
528
  else {
@@ -514,13 +532,13 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
514
532
  javascript: `${confirmStr}view_post('${viewname}', 'run_action', {rndid:'${segment.rndid}'}, ` +
515
533
  `null, ${withState});`,
516
534
  };
517
- return action_link(url, extra.req, segment);
535
+ return (0, viewable_fields_1.action_link)(url, extra.req, segment);
518
536
  }
519
537
  },
520
538
  toggle_filter({ field_name, value, preset_value, label, size, style }) {
521
539
  const field = fields.find((f) => f.name === field_name);
522
540
  const isBool = field && field.type.name === "Bool";
523
- const use_value = preset_value && field.presets
541
+ const use_value = preset_value && field?.presets
524
542
  ? field.presets[preset_value]({
525
543
  user: extra.req.user,
526
544
  req: extra.req,
@@ -534,7 +552,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
534
552
  "?": state[field_name] === null,
535
553
  }[use_value]
536
554
  : eq_string(state[field_name], use_value);
537
- return button({
555
+ return (0, tags_1.button)({
538
556
  class: [
539
557
  "btn",
540
558
  active
@@ -548,7 +566,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
548
566
  }, label || value || preset_value);
549
567
  },
550
568
  };
551
- return div({ class: "form-namespace" }, renderLayout({
569
+ return (0, tags_1.div)({ class: "form-namespace" }, renderLayout({
552
570
  blockDispatch,
553
571
  layout,
554
572
  role,
@@ -569,16 +587,16 @@ const or_if_undef = (x, y) => (typeof x === "undefined" ? y : x);
569
587
  */
570
588
  const eq_string = (x, y) => `${x}` === `${y}`;
571
589
  const run_action = async (table_id, viewname, config, body, { req, res }, { actionQuery }) => {
572
- const table = Table.findOne(table_id);
590
+ const table = table_1.default.findOne(table_id);
573
591
  if (!table)
574
592
  throw new InvalidConfiguration(`View '${viewname}:run_action' incorrectly configured: ` +
575
593
  `Unable to find table with id '${table_id}'`);
576
594
  const state = req?.query
577
- ? readState(removeEmptyStrings(req.query), table.getFields(), req)
595
+ ? (0, plugin_helper_1.readState)(removeEmptyStrings(req.query), table.getFields(), req)
578
596
  : {};
579
597
  const result = await actionQuery(state, body?.rndid);
580
598
  if (result.json.error) {
581
- Crash.create({ message: result.json.error, stack: "" }, req);
599
+ crash_1.default.create({ message: result.json.error, stack: "" }, req);
582
600
  }
583
601
  return result;
584
602
  };
@@ -604,41 +622,41 @@ const combineResults = (results) => {
604
622
  if (typeof result[memberName] === "undefined")
605
623
  result.json[memberName] = newElement;
606
624
  };
607
- for (const result of results) {
608
- if (!result)
625
+ for (const r of results) {
626
+ if (!r)
609
627
  continue;
610
- if (result.reload_page)
611
- initOnce(result.reload_page, "reload_page");
612
- if (result.goto)
613
- initOnce(result.goto, "goto");
614
- if (result.popup)
615
- initOnce(result.popup, "popup");
616
- if (result.notify) {
628
+ if (r.reload_page)
629
+ initOnce(r.reload_page, "reload_page");
630
+ if (r.goto)
631
+ initOnce(r.goto, "goto");
632
+ if (r.popup)
633
+ initOnce(r.popup, "popup");
634
+ if (r.notify) {
617
635
  if (numMsgs < messageLimit) {
618
- initOrPush(result.notify, "notify");
636
+ initOrPush(r.notify, "notify");
619
637
  ++numMsgs;
620
638
  }
621
639
  else
622
640
  ++suppressedMsgs;
623
641
  }
624
- if (result.error) {
642
+ if (r.error) {
625
643
  if (numMsgs < messageLimit) {
626
- initOrPush(result.error, "error");
644
+ initOrPush(r.error, "error");
627
645
  ++numMsgs;
628
646
  }
629
647
  else
630
648
  ++suppressedErrors;
631
649
  }
632
- if (result.download) {
650
+ if (r.download) {
633
651
  if (numDownloads < downloadLimit) {
634
- initOrPush(result.download, "download");
652
+ initOrPush(r.download, "download");
635
653
  ++numDownloads;
636
654
  }
637
655
  else
638
656
  suppressedDownloads++;
639
657
  }
640
- if (result.eval_js)
641
- initOrPush(result.eval_js, "eval_js");
658
+ if (r.eval_js)
659
+ initOrPush(r.eval_js, "eval_js");
642
660
  }
643
661
  let suppressedMsg = "";
644
662
  if (suppressedMsgs > 0)
@@ -669,24 +687,25 @@ module.exports = {
669
687
  routes: { run_action },
670
688
  queries: ({ table_id, viewname, configuration: { columns }, req, res, exttable_name, }) => ({
671
689
  async optionsQuery(reftable_name, type, attributes, whereWithExisting, user) {
672
- return await Field.select_options_query(reftable_name, type === "File" ? attributes.select_file_where : whereWithExisting, attributes, undefined, user);
690
+ return await field_1.default.select_options_query(reftable_name, type === "File" ? attributes.select_file_where : whereWithExisting, attributes, undefined, user);
673
691
  },
674
692
  async actionQuery(state, rndid) {
675
693
  const col = columns.find((c) => c.type === "Action" && c.rndid === rndid && rndid);
676
- const table = Table.findOne(table_id);
694
+ const table = table_1.default.findOne(table_id);
677
695
  try {
678
696
  return await db.withTransaction(async () => {
679
697
  if (col.action_row_variable === "each_matching_row") {
680
698
  const fields = table.getFields();
681
- const { joinFields, aggregations } = picked_fields_to_query(columns, fields, undefined, req, table);
682
- const where = stateFieldsToWhere({
699
+ const { joinFields, aggregations } = (0, plugin_helper_1.picked_fields_to_query)(columns, fields, undefined, req, table);
700
+ const where = (0, plugin_helper_1.stateFieldsToWhere)({
683
701
  fields,
684
702
  state,
685
703
  table,
686
704
  prefix: "a.",
687
705
  });
688
- const q = stateFieldsToQuery({
706
+ const q = (0, plugin_helper_1.stateFieldsToQuery)({
689
707
  state,
708
+ fields,
690
709
  prefix: "a.",
691
710
  noSortAndPaging: true,
692
711
  });
@@ -702,7 +721,7 @@ module.exports = {
702
721
  });
703
722
  const referrer = req?.get?.("Referrer");
704
723
  return combineResults(await asyncMap(rows, async (row) => {
705
- return await run_action_column({
724
+ return await (0, plugin_helper_1.run_action_column)({
706
725
  col,
707
726
  req,
708
727
  table,
@@ -714,7 +733,7 @@ module.exports = {
714
733
  }
715
734
  else {
716
735
  const row = col.action_row_variable === "state" ? { ...state } : null;
717
- const result = await run_action_column({
736
+ const result = await (0, plugin_helper_1.run_action_column)({
718
737
  col,
719
738
  req,
720
739
  table,
@@ -732,7 +751,7 @@ module.exports = {
732
751
  }
733
752
  },
734
753
  async distinctValuesQuery(state) {
735
- const table = Table.findOne(table_id || exttable_name);
754
+ const table = table_1.default.findOne(table_id || exttable_name);
736
755
  const fields = table.getFields();
737
756
  let distinct_values = {};
738
757
  const role = req.user ? req.user.role_id : 100;
@@ -764,7 +783,7 @@ module.exports = {
764
783
  else if (col.field_name.includes("->")) {
765
784
  const [jFieldNm, krest] = col.field_name.split(".");
766
785
  const [jtNm, lblField] = krest.split("->");
767
- const jtable = Table.findOne({ name: jtNm });
786
+ const jtable = table_1.default.findOne({ name: jtNm });
768
787
  if (!jtable)
769
788
  throw new InvalidConfiguration(`View ${viewname} incorrectly configured: cannot find join table ${jtNm}`);
770
789
  const jfields = await jtable.getFields();
@@ -776,7 +795,7 @@ module.exports = {
776
795
  const kpath = col.field_name.split(".");
777
796
  if (kpath.length === 3) {
778
797
  const [jtNm, jFieldNm, lblField] = kpath;
779
- const jtable = Table.findOne({ name: jtNm });
798
+ const jtable = table_1.default.findOne({ name: jtNm });
780
799
  if (!jtable)
781
800
  throw new InvalidConfiguration(`View ${viewname} incorrectly configured: cannot find join table ${jtNm}`);
782
801
  const jfields = jtable.fields;