@saltcorn/data 0.8.2 → 0.8.3-alpha.0

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 (110) hide show
  1. package/dist/base-plugin/actions.d.ts.map +1 -1
  2. package/dist/base-plugin/actions.js +5 -3
  3. package/dist/base-plugin/actions.js.map +1 -1
  4. package/dist/base-plugin/index.d.ts +249 -256
  5. package/dist/base-plugin/index.d.ts.map +1 -1
  6. package/dist/base-plugin/types.d.ts.map +1 -1
  7. package/dist/base-plugin/types.js +11 -3
  8. package/dist/base-plugin/types.js.map +1 -1
  9. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
  10. package/dist/base-plugin/viewtemplates/edit.js +24 -7
  11. package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
  12. package/dist/base-plugin/viewtemplates/feed.d.ts +1 -1
  13. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -1
  14. package/dist/base-plugin/viewtemplates/feed.js +16 -1
  15. package/dist/base-plugin/viewtemplates/feed.js.map +1 -1
  16. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
  17. package/dist/base-plugin/viewtemplates/list.js +5 -15
  18. package/dist/base-plugin/viewtemplates/list.js.map +1 -1
  19. package/dist/base-plugin/viewtemplates/listshowlist.d.ts.map +1 -1
  20. package/dist/base-plugin/viewtemplates/listshowlist.js +5 -1
  21. package/dist/base-plugin/viewtemplates/listshowlist.js.map +1 -1
  22. package/dist/base-plugin/viewtemplates/room.d.ts +1 -1
  23. package/dist/base-plugin/viewtemplates/room.js +2 -2
  24. package/dist/base-plugin/viewtemplates/room.js.map +1 -1
  25. package/dist/base-plugin/viewtemplates/show.d.ts +0 -7
  26. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
  27. package/dist/base-plugin/viewtemplates/show.js +34 -31
  28. package/dist/base-plugin/viewtemplates/show.js.map +1 -1
  29. package/dist/db/fixtures.d.ts.map +1 -1
  30. package/dist/db/fixtures.js +167 -0
  31. package/dist/db/fixtures.js.map +1 -1
  32. package/dist/db/state.js +1 -1
  33. package/dist/db/state.js.map +1 -1
  34. package/dist/diagram/cy_generate_utils.d.ts.map +1 -1
  35. package/dist/diagram/cy_generate_utils.js +6 -0
  36. package/dist/diagram/cy_generate_utils.js.map +1 -1
  37. package/dist/diagram/node_extract_utils.js +14 -5
  38. package/dist/diagram/node_extract_utils.js.map +1 -1
  39. package/dist/diagram/nodes/node.d.ts +2 -2
  40. package/dist/diagram/nodes/node.d.ts.map +1 -1
  41. package/dist/diagram/nodes/node.js +2 -2
  42. package/dist/diagram/nodes/node.js.map +1 -1
  43. package/dist/diagram/nodes/trigger_node.d.ts +1 -3
  44. package/dist/diagram/nodes/trigger_node.d.ts.map +1 -1
  45. package/dist/diagram/nodes/trigger_node.js +3 -3
  46. package/dist/diagram/nodes/trigger_node.js.map +1 -1
  47. package/dist/migrations/202301261705.d.ts +3 -0
  48. package/dist/migrations/202301261705.d.ts.map +1 -0
  49. package/dist/migrations/202301261705.js +5 -0
  50. package/dist/migrations/202301261705.js.map +1 -0
  51. package/dist/models/config.d.ts.map +1 -1
  52. package/dist/models/config.js +1 -0
  53. package/dist/models/config.js.map +1 -1
  54. package/dist/models/email.d.ts +2 -0
  55. package/dist/models/email.d.ts.map +1 -1
  56. package/dist/models/eventlog.d.ts.map +1 -1
  57. package/dist/models/eventlog.js +7 -2
  58. package/dist/models/eventlog.js.map +1 -1
  59. package/dist/models/expression.d.ts +2 -1
  60. package/dist/models/expression.d.ts.map +1 -1
  61. package/dist/models/expression.js +42 -0
  62. package/dist/models/expression.js.map +1 -1
  63. package/dist/models/field.d.ts.map +1 -1
  64. package/dist/models/field.js +14 -3
  65. package/dist/models/field.js.map +1 -1
  66. package/dist/models/random.d.ts.map +1 -1
  67. package/dist/models/random.js +5 -4
  68. package/dist/models/random.js.map +1 -1
  69. package/dist/models/table.d.ts +40 -8
  70. package/dist/models/table.d.ts.map +1 -1
  71. package/dist/models/table.js +351 -46
  72. package/dist/models/table.js.map +1 -1
  73. package/dist/models/user.d.ts.map +1 -1
  74. package/dist/models/user.js +5 -0
  75. package/dist/models/user.js.map +1 -1
  76. package/dist/models/workflow.d.ts.map +1 -1
  77. package/dist/models/workflow.js +31 -0
  78. package/dist/models/workflow.js.map +1 -1
  79. package/dist/plugin-helper.d.ts +12 -8
  80. package/dist/plugin-helper.d.ts.map +1 -1
  81. package/dist/plugin-helper.js +45 -47
  82. package/dist/plugin-helper.js.map +1 -1
  83. package/dist/tests/actions.test.js +2 -2
  84. package/dist/tests/actions.test.js.map +1 -1
  85. package/dist/tests/auth.test.js +193 -46
  86. package/dist/tests/auth.test.js.map +1 -1
  87. package/dist/tests/calc.test.js +2 -2
  88. package/dist/tests/calc.test.js.map +1 -1
  89. package/dist/tests/db.test.d.ts.map +1 -1
  90. package/dist/tests/db.test.js.map +1 -1
  91. package/dist/tests/exact_views.test.js +1 -1
  92. package/dist/tests/exact_views.test.js.map +1 -1
  93. package/dist/tests/field.test.js +3 -1
  94. package/dist/tests/field.test.js.map +1 -1
  95. package/dist/tests/mocks.d.ts +6 -1
  96. package/dist/tests/mocks.d.ts.map +1 -1
  97. package/dist/tests/mocks.js +23 -4
  98. package/dist/tests/mocks.js.map +1 -1
  99. package/dist/tests/remote_query_helper.d.ts.map +1 -1
  100. package/dist/tests/remote_query_helper.js +3 -0
  101. package/dist/tests/remote_query_helper.js.map +1 -1
  102. package/dist/tests/table.test.js +36 -9
  103. package/dist/tests/table.test.js.map +1 -1
  104. package/dist/tests/user.test.js +8 -0
  105. package/dist/tests/user.test.js.map +1 -1
  106. package/dist/tests/view.test.js +1 -1
  107. package/dist/tests/view.test.js.map +1 -1
  108. package/dist/utils.d.ts +1 -1
  109. package/dist/utils.js.map +1 -1
  110. package/package.json +10 -10
@@ -286,78 +286,16 @@ export const types: ({
286
286
  fieldviews: {
287
287
  show: {
288
288
  isEdit: boolean;
289
- run: (v: any) => any;
290
- };
291
- checkboxes: {
292
- isEdit: boolean;
293
- run: (v: any) => any;
294
- };
295
- TrueFalse: {
296
- isEdit: boolean;
297
- run: (v: any) => "" | "True" | "False";
298
- };
299
- edit: {
300
- isEdit: boolean;
301
- run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
302
- };
303
- tristate: {
304
- isEdit: boolean;
305
- run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
306
- };
307
- };
308
- attributes: object[];
309
- readFromFormRecord: (rec: any, name: string) => boolean | null;
310
- read: (v: object) => boolean | null;
311
- readFromDB: (v: object) => object;
312
- listAs: (v: object) => object;
313
- validate: () => boolean;
314
- } | {
315
- name: string;
316
- sql_name: string;
317
- contract: () => Function;
318
- attributes: object[];
319
- fieldviews: {
320
- show: {
321
- isEdit: boolean;
322
- run: (d: any, req: any) => any;
323
- };
324
- showDay: {
325
- isEdit: boolean;
326
- run: (d: any, req: any) => any;
327
- };
328
- format: {
329
- isEdit: boolean;
330
- configFields: {
331
- name: string;
332
- label: string;
333
- type: string;
334
- sublabel: string;
335
- }[];
336
- run: (d: any, req: any, options: any) => string;
337
- };
338
- relative: {
339
- isEdit: boolean;
340
- run: (d: any, req: any) => string;
341
- };
342
- yearsAgo: {
343
- isEdit: boolean;
344
- run: (d: any, req: any) => string;
289
+ run: (s: any) => any;
345
290
  };
346
291
  edit: {
347
292
  isEdit: boolean;
348
293
  blockDisplay: boolean;
349
294
  run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
350
295
  };
351
- editDay: {
352
- isEdit: boolean;
353
- blockDisplay: boolean;
354
- run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
355
- };
356
296
  };
357
- presets: {
358
- Now: () => Date;
359
- };
360
- read: (v: object, attrs: object) => object;
297
+ attributes: object[];
298
+ read: (v: object) => object;
361
299
  validate: () => boolean;
362
300
  } | {
363
301
  name: string;
@@ -432,49 +370,103 @@ export const types: ({
432
370
  name: string;
433
371
  sql_name: string;
434
372
  contract: () => Function;
373
+ attributes: object[];
435
374
  fieldviews: {
436
375
  show: {
437
376
  isEdit: boolean;
438
- run: (s: any) => any;
377
+ run: (d: any, req: any) => any;
378
+ };
379
+ showDay: {
380
+ isEdit: boolean;
381
+ run: (d: any, req: any) => any;
382
+ };
383
+ format: {
384
+ isEdit: boolean;
385
+ configFields: {
386
+ name: string;
387
+ label: string;
388
+ type: string;
389
+ sublabel: string;
390
+ }[];
391
+ run: (d: any, req: any, options: any) => string;
392
+ };
393
+ relative: {
394
+ isEdit: boolean;
395
+ run: (d: any, req: any) => string;
396
+ };
397
+ yearsAgo: {
398
+ isEdit: boolean;
399
+ run: (d: any, req: any) => string;
439
400
  };
440
401
  edit: {
441
402
  isEdit: boolean;
442
403
  blockDisplay: boolean;
443
404
  run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
444
405
  };
406
+ editDay: {
407
+ isEdit: boolean;
408
+ blockDisplay: boolean;
409
+ run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
410
+ };
411
+ };
412
+ presets: {
413
+ Now: () => Date;
414
+ };
415
+ read: (v: object, attrs: object) => object;
416
+ validate: () => boolean;
417
+ } | {
418
+ name: string;
419
+ sql_name: string;
420
+ contract: () => Function;
421
+ fieldviews: {
422
+ show: {
423
+ isEdit: boolean;
424
+ run: (v: any) => any;
425
+ };
426
+ checkboxes: {
427
+ isEdit: boolean;
428
+ run: (v: any) => any;
429
+ };
430
+ TrueFalse: {
431
+ isEdit: boolean;
432
+ run: (v: any) => "" | "True" | "False";
433
+ };
434
+ edit: {
435
+ isEdit: boolean;
436
+ run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
437
+ };
438
+ tristate: {
439
+ isEdit: boolean;
440
+ run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
441
+ };
445
442
  };
446
443
  attributes: object[];
447
- read: (v: object) => object;
444
+ readFromFormRecord: (rec: any, name: string) => boolean | null;
445
+ read: (v: object) => boolean | null;
446
+ readFromDB: (v: object) => object;
447
+ listAs: (v: object) => object;
448
448
  validate: () => boolean;
449
449
  })[];
450
450
  export const viewtemplates: ({
451
451
  name: string;
452
452
  description: string;
453
- get_state_fields: () => object[];
454
- configuration_workflow: () => import("../models/workflow");
455
- run: (table_id: number, viewname: string, { columns, layout }: {
456
- columns: object[];
457
- layout: object;
458
- }, state: object, extra: object, { distinctValuesQuery }: {
459
- distinctValuesQuery: any;
460
- }) => Promise<Layout>;
461
- initial_config: () => Promise<object>;
462
- display_state_form: boolean;
463
- getStringsForI18n({ layout }: {
464
- layout: any;
465
- }): string[];
466
- routes: {
467
- run_action: (table_id: any, viewname: any, { columns, layout }: {
468
- columns: any;
469
- layout: any;
470
- }, body: any, { req, res }: {
471
- req: any;
472
- res: any;
473
- }, { actionQuery }: {
474
- actionQuery: any;
475
- }) => Promise<any>;
476
- };
477
- queries: ({ table_id, viewname, configuration: { columns, default_state }, req, res, exttable_name, }: {
453
+ configuration_workflow: (req: object) => import("../models/workflow");
454
+ run: (table_id: string, viewname: string, { list_view, show_view, list_width, subtables }: {
455
+ list_view: string;
456
+ show_view: string;
457
+ subtables: object;
458
+ }, state: any, extraArgs: any, { getRowQuery }: {
459
+ getRowQuery: any;
460
+ }) => Promise<div>;
461
+ get_state_fields: (table_id: any, viewname: any, { list_view, show_view }: {
462
+ list_view: string;
463
+ show_view: any;
464
+ }) => Promise<object[]>;
465
+ display_state_form: ({ list_view, _omit_state_form }: {
466
+ list_view: string;
467
+ _omit_state_form: boolean;
468
+ }) => boolean;
469
+ queries: ({ table_id, viewname, configuration: { columns, default_state }, req, }: {
478
470
  table_id: any;
479
471
  viewname: any;
480
472
  configuration: {
@@ -482,17 +474,15 @@ export const viewtemplates: ({
482
474
  default_state: any;
483
475
  };
484
476
  req: any;
485
- res: any;
486
- exttable_name: any;
487
477
  }) => {
488
- actionQuery(): Promise<{
489
- json: any;
490
- }>;
491
- distinctValuesQuery(state: any): Promise<{
492
- distinct_values: {};
493
- role: any;
494
- }>;
478
+ getRowQuery(uniques: any): Promise<import("@saltcorn/db-common/internal").Row | null>;
495
479
  };
480
+ connectedObjects: ({ list_view, subtables }: {
481
+ list_view: any;
482
+ subtables: any;
483
+ }) => Promise<{
484
+ embeddedViews: import("../models/view")[];
485
+ }>;
496
486
  } | {
497
487
  name: string;
498
488
  description: string;
@@ -553,116 +543,6 @@ export const viewtemplates: ({
553
543
  warnings: string[];
554
544
  }>;
555
545
  connectedObjects: (configuration: any) => Promise<import("@saltcorn/types/base_types").ConnectedObjects>;
556
- } | {
557
- name: string;
558
- description: string;
559
- configuration_workflow: (req: object) => import("../models/workflow");
560
- run: (table_id: number, viewname: string, cfg: any, state: string, { res, req }: {
561
- req: object;
562
- res: object;
563
- }, { editQuery }: {
564
- editQuery: any;
565
- }) => Promise<import("../models/form")>;
566
- runMany: (table_id: number, viewname: string, { columns, layout, auto_save, split_paste }: {
567
- columns: any;
568
- layout: any;
569
- }, state: State, extra: object, { editManyQuery, getRowQuery, optionsQuery }: {
570
- editManyQuery: any;
571
- getRowQuery: any;
572
- optionsQuery: any;
573
- }) => Promise<import("../models/form")[]>;
574
- runPost: (table_id: number, viewname: string, { columns, layout, fixed, view_when_done, formula_destinations, auto_save, destination_type, dest_url_formula, page_when_done, }: {
575
- columns: object[];
576
- layout: Layout;
577
- fixed: object;
578
- view_when_done: boolean;
579
- formula_destinations: object[];
580
- }, state: object, body: any, { res, req, redirect }: {
581
- res: object;
582
- req: object;
583
- redirect: string;
584
- }, { tryInsertQuery, tryUpdateQuery, getRowQuery }: {
585
- tryInsertQuery: any;
586
- tryUpdateQuery: any;
587
- getRowQuery: any;
588
- }, remote: any) => Promise<void>;
589
- get_state_fields: (table_id: any, viewname: any, { columns }: {
590
- columns: any;
591
- }) => Promise<object[]>;
592
- initial_config: Function;
593
- display_state_form: boolean;
594
- authorise_post: ({ body, table_id, req }: {
595
- body: object;
596
- table_id: string;
597
- req: object;
598
- }, { authorizePostQuery }: {
599
- authorizePostQuery: any;
600
- }) => Promise<boolean>;
601
- authorise_get: ({ query, table_id, req }: {
602
- query: object;
603
- rest: any;
604
- }, { authorizeGetQuery }: {
605
- authorizeGetQuery: any;
606
- }) => Promise<boolean>;
607
- getStringsForI18n({ layout }: {
608
- layout: Layout;
609
- }): string[];
610
- queries: ({ table_id, name, configuration: { columns, default_state, layout, auto_save, split_paste, destination_type, }, req, res, }: {
611
- table_id: any;
612
- name: any;
613
- configuration: {
614
- columns: any;
615
- default_state: any;
616
- layout: any;
617
- auto_save: any;
618
- split_paste: any;
619
- destination_type: any;
620
- };
621
- req: any;
622
- res: any;
623
- }) => {
624
- editQuery(state: any): Promise<import("../models/form")>;
625
- editManyQuery(state: any, { limit, offset, orderBy, orderDesc, where }: {
626
- limit: any;
627
- offset: any;
628
- orderBy: any;
629
- orderDesc: any;
630
- where: any;
631
- }): Promise<{
632
- table: import("../models/table") | null;
633
- fields: import("../models/field")[];
634
- rows: import("@saltcorn/db-common/internal").Row[];
635
- }>;
636
- tryInsertQuery(row: any): Promise<{
637
- error: string;
638
- } | {
639
- success: any;
640
- }>;
641
- tryUpdateQuery(row: any, id: any): Promise<import("@saltcorn/types/common_types").ResultMessage>;
642
- authorizePostQuery(body: any, table_id: any): Promise<boolean | "" | null | undefined>;
643
- authorizeGetQuery(query: any, table_id: any): Promise<string | boolean | null | undefined>;
644
- getRowQuery(table_id: any, view_select: any, row_id: any): Promise<import("@saltcorn/db-common/internal").Row[]>;
645
- actionQuery(): Promise<{
646
- json: any;
647
- }>;
648
- optionsQuery(reftable_name: any, type: any, attributes: any, where: any): Promise<any>;
649
- };
650
- routes: {
651
- run_action: (table_id: number, viewname: any, { columns, layout }: {
652
- columns: object[];
653
- layout: any;
654
- }, body: any, { req, res }: {
655
- req: object;
656
- res: any;
657
- }, { actionQuery }: {
658
- actionQuery: any;
659
- }) => Promise<object>;
660
- };
661
- configCheck: (view: any) => Promise<{
662
- errors: string[];
663
- warnings: string[];
664
- }>;
665
- connectedObjects: (configuration: any) => Promise<import("@saltcorn/types/base_types").ConnectedObjects>;
666
546
  } | {
667
547
  name: string;
668
548
  description: string;
@@ -702,12 +582,6 @@ export const viewtemplates: ({
702
582
  getStringsForI18n({ layout }: {
703
583
  layout: object;
704
584
  }): string[];
705
- authorise_get: ({ query, table_id }: {
706
- query: any;
707
- table_id: any;
708
- }, { authorizeGetQuery }: {
709
- authorizeGetQuery: any;
710
- }) => Promise<any>;
711
585
  queries: ({ table_id, exttable_name, name, configuration: { columns, layout }, req, res, }: {
712
586
  table_id: any;
713
587
  exttable_name: any;
@@ -736,7 +610,6 @@ export const viewtemplates: ({
736
610
  actionQuery(): Promise<{
737
611
  json: any;
738
612
  }>;
739
- authorizeGetQuery(query: any, table_id: any): Promise<boolean>;
740
613
  };
741
614
  configCheck: (view: any) => Promise<{
742
615
  errors: string[];
@@ -747,43 +620,7 @@ export const viewtemplates: ({
747
620
  name: string;
748
621
  description: string;
749
622
  configuration_workflow: (req: object) => import("../models/workflow");
750
- run: (table_id: string, viewname: string, { list_view, show_view, list_width, subtables }: {
751
- list_view: string;
752
- show_view: string;
753
- subtables: object;
754
- }, state: any, extraArgs: any, { getRowQuery }: {
755
- getRowQuery: any;
756
- }) => Promise<div>;
757
- get_state_fields: (table_id: any, viewname: any, { list_view, show_view }: {
758
- list_view: string;
759
- show_view: any;
760
- }) => Promise<object[]>;
761
- display_state_form: ({ list_view, _omit_state_form }: {
762
- list_view: string;
763
- _omit_state_form: boolean;
764
- }) => boolean;
765
- queries: ({ table_id, viewname, configuration: { columns, default_state }, req, }: {
766
- table_id: any;
767
- viewname: any;
768
- configuration: {
769
- columns: any;
770
- default_state: any;
771
- };
772
- req: any;
773
- }) => {
774
- getRowQuery(uniques: any): Promise<import("@saltcorn/db-common/internal").Row | null>;
775
- };
776
- connectedObjects: ({ list_view, subtables }: {
777
- list_view: any;
778
- subtables: any;
779
- }) => Promise<{
780
- embeddedViews: import("../models/view")[];
781
- }>;
782
- } | {
783
- name: string;
784
- description: string;
785
- configuration_workflow: (req: object) => import("../models/workflow");
786
- run: (table_id: number, viewname: string, { show_view, order_field, descending, view_to_create, create_view_display, in_card, masonry_columns, rows_per_page, hide_pagination, create_view_label, create_view_location, create_link_style, create_link_size, always_create_view, include_fml, ...cols }: {
623
+ run: (table_id: number, viewname: string, { show_view, order_field, descending, view_to_create, create_view_display, in_card, masonry_columns, rows_per_page, hide_pagination, create_view_label, create_view_location, create_link_style, create_link_size, always_create_view, include_fml, empty_view, ...cols }: {
787
624
  show_view: string;
788
625
  order_field: name;
789
626
  descending: boolean;
@@ -866,7 +703,7 @@ export const viewtemplates: ({
866
703
  fetch_older_msg: (table_id: any, viewname: any, { participant_field, msg_relation, msgsender_field, msgview, msgform, participant_maxread_field, }: object, body: object, { req, res }: string, { fetchOlderMsgQuery }: any) => Promise<object>;
867
704
  };
868
705
  noAutoTest: boolean;
869
- authorize_join: ({ table_id, configuration: { participant_field } }: {
706
+ authorize_join: ({ table_id, min_role, configuration: { participant_field } }: {
870
707
  participant_field: object;
871
708
  }, room_id: string, user: object) => Promise<object>;
872
709
  virtual_triggers: (table_id: any, viewname: string, { participant_field, msg_relation, msgsender_field, msgview, msgform, participant_maxread_field, }: {
@@ -919,6 +756,162 @@ export const viewtemplates: ({
919
756
  optionsQuery(reftable_name: any, type: any, attributes: any, where: any): Promise<any>;
920
757
  };
921
758
  connectedObjects: (configuration: any) => Promise<import("@saltcorn/types/base_types").ConnectedObjects>;
759
+ } | {
760
+ name: string;
761
+ description: string;
762
+ configuration_workflow: (req: object) => import("../models/workflow");
763
+ run: (table_id: number, viewname: string, cfg: any, state: string, { res, req }: {
764
+ req: object;
765
+ res: object;
766
+ }, { editQuery }: {
767
+ editQuery: any;
768
+ }) => Promise<import("../models/form")>;
769
+ runMany: (table_id: number, viewname: string, { columns, layout, auto_save, split_paste }: {
770
+ columns: any;
771
+ layout: any;
772
+ }, state: State, extra: object, { editManyQuery, getRowQuery, optionsQuery }: {
773
+ editManyQuery: any;
774
+ getRowQuery: any;
775
+ optionsQuery: any;
776
+ }) => Promise<import("../models/form")[]>;
777
+ runPost: (table_id: number, viewname: string, { columns, layout, fixed, view_when_done, formula_destinations, auto_save, destination_type, dest_url_formula, page_when_done, }: {
778
+ columns: object[];
779
+ layout: Layout;
780
+ fixed: object;
781
+ view_when_done: boolean;
782
+ formula_destinations: object[];
783
+ }, state: object, body: any, { res, req, redirect }: {
784
+ res: object;
785
+ req: object;
786
+ redirect: string;
787
+ }, { tryInsertQuery, tryUpdateQuery, getRowQuery }: {
788
+ tryInsertQuery: any;
789
+ tryUpdateQuery: any;
790
+ getRowQuery: any;
791
+ }, remote: any) => Promise<void>;
792
+ get_state_fields: (table_id: any, viewname: any, { columns }: {
793
+ columns: any;
794
+ }) => Promise<object[]>;
795
+ initial_config: Function;
796
+ display_state_form: boolean;
797
+ authorise_post: ({ body, table_id, req }: {
798
+ body: object;
799
+ table_id: string;
800
+ req: object;
801
+ }, { authorizePostQuery }: {
802
+ authorizePostQuery: any;
803
+ }) => Promise<boolean>;
804
+ authorise_get: ({ query, table_id, req }: {
805
+ query: object;
806
+ rest: any;
807
+ }, { authorizeGetQuery }: {
808
+ authorizeGetQuery: any;
809
+ }) => Promise<boolean>;
810
+ getStringsForI18n({ layout }: {
811
+ layout: Layout;
812
+ }): string[];
813
+ queries: ({ table_id, name, configuration: { columns, default_state, layout, auto_save, split_paste, destination_type, }, req, res, }: {
814
+ table_id: any;
815
+ name: any;
816
+ configuration: {
817
+ columns: any;
818
+ default_state: any;
819
+ layout: any;
820
+ auto_save: any;
821
+ split_paste: any;
822
+ destination_type: any;
823
+ };
824
+ req: any;
825
+ res: any;
826
+ }) => {
827
+ editQuery(state: any): Promise<import("../models/form")>;
828
+ editManyQuery(state: any, { limit, offset, orderBy, orderDesc, where }: {
829
+ limit: any;
830
+ offset: any;
831
+ orderBy: any;
832
+ orderDesc: any;
833
+ where: any;
834
+ }): Promise<{
835
+ table: import("../models/table") | null;
836
+ fields: import("../models/field")[];
837
+ rows: import("@saltcorn/db-common/internal").Row[];
838
+ }>;
839
+ tryInsertQuery(row: any): Promise<{
840
+ error: string;
841
+ } | {
842
+ success: any;
843
+ }>;
844
+ tryUpdateQuery(row: any, id: any): Promise<import("@saltcorn/types/common_types").ResultMessage>;
845
+ authorizePostQuery(body: any, table_id: any): Promise<boolean | "" | null | undefined>;
846
+ authorizeGetQuery(query: any, table_id: any): Promise<string | boolean | null | undefined>;
847
+ getRowQuery(table_id: any, view_select: any, row_id: any): Promise<import("@saltcorn/db-common/internal").Row[]>;
848
+ actionQuery(): Promise<{
849
+ json: any;
850
+ }>;
851
+ optionsQuery(reftable_name: any, type: any, attributes: any, where: any): Promise<any>;
852
+ };
853
+ routes: {
854
+ run_action: (table_id: number, viewname: any, { columns, layout }: {
855
+ columns: object[];
856
+ layout: any;
857
+ }, body: any, { req, res }: {
858
+ req: object;
859
+ res: any;
860
+ }, { actionQuery }: {
861
+ actionQuery: any;
862
+ }) => Promise<object>;
863
+ };
864
+ configCheck: (view: any) => Promise<{
865
+ errors: string[];
866
+ warnings: string[];
867
+ }>;
868
+ connectedObjects: (configuration: any) => Promise<import("@saltcorn/types/base_types").ConnectedObjects>;
869
+ } | {
870
+ name: string;
871
+ description: string;
872
+ get_state_fields: () => object[];
873
+ configuration_workflow: () => import("../models/workflow");
874
+ run: (table_id: number, viewname: string, { columns, layout }: {
875
+ columns: object[];
876
+ layout: object;
877
+ }, state: object, extra: object, { distinctValuesQuery }: {
878
+ distinctValuesQuery: any;
879
+ }) => Promise<Layout>;
880
+ initial_config: () => Promise<object>;
881
+ display_state_form: boolean;
882
+ getStringsForI18n({ layout }: {
883
+ layout: any;
884
+ }): string[];
885
+ routes: {
886
+ run_action: (table_id: any, viewname: any, { columns, layout }: {
887
+ columns: any;
888
+ layout: any;
889
+ }, body: any, { req, res }: {
890
+ req: any;
891
+ res: any;
892
+ }, { actionQuery }: {
893
+ actionQuery: any;
894
+ }) => Promise<any>;
895
+ };
896
+ queries: ({ table_id, viewname, configuration: { columns, default_state }, req, res, exttable_name, }: {
897
+ table_id: any;
898
+ viewname: any;
899
+ configuration: {
900
+ columns: any;
901
+ default_state: any;
902
+ };
903
+ req: any;
904
+ res: any;
905
+ exttable_name: any;
906
+ }) => {
907
+ actionQuery(): Promise<{
908
+ json: any;
909
+ }>;
910
+ distinctValuesQuery(state: any): Promise<{
911
+ distinct_values: {};
912
+ role: any;
913
+ }>;
914
+ };
922
915
  })[];
923
916
  import fileviews = require("./fileviews");
924
917
  import actions = require("./actions");
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../base-plugin/index.js"],"names":[],"mappings":"AAuCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAsD;AACtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAA2E;;;;4CAG9D,MAAM;yCAYN,MAAM"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../base-plugin/index.js"],"names":[],"mappings":"AAuCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAsD;AACtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAA2E;;;;4CAG9D,MAAM;yCAYN,MAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../base-plugin/types.js"],"names":[],"mappings":";gBA2Sa,MAAM;oBAEN,MAAM;IAML,+CAsEX;IAMS;;gBAK+D;;;;YAYxC,6BAAyB;;;;;YAGjD,mCAC2D;;;;;;YAI3D,mCAA8C;;;;;;YAS9C,mCAAqD;;;;;;YASrD,yDAAmE;;;;;;YAOzC,mCAA6B;;;;;;;YAU9C;;;;;;;;;;;;;;;;;;;;;iBA8Bb;YACI,6FAiEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAiDH,6FAyCF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAyCE,6FAqBF;;;;;;;;YAWE,6FAeF;;;;;;;;;;;;YAgBE,8FAcoB;;;;;;;;;;;;;YAYpB,8FAYoB;;;;;;;;YAWpB,8FAWD;;;;IAOF,0CAQL;;QAYK;;mBAAmB;QAMZ;;mBAAyD;;IAOpE,+FAYC;IAMkB,iFAEwB;;;kBAuBlC,MAAM;;sBAEN,MAAM;;IAQP;;;gBAAoD;;;;;;;;;YAahC,uCAAc;;;;;;;;;;;;;;YAYnC,8FAoBJ;;;;;YAx3BS;;;;gBAOb;;;;;;YAGI,yGAmBD;;;;YAGU;;;;gBAOb;;;;;;;;YAKI,qHAmCJ;;;;YAIa;;;;;;;;;;iBAUb;;;;YAEI,0DAgBF;;;;;;;;;;;;;;;;YAUE,qHA6BJ;;;;;YA0uBiB;;;;;gBAOb;;;;;;YAGI,0DAWF;;;;YAGW;;;;;gBAOb;;;;;;YAGI,qHAsBJ;;;;;wBAGM,MAAM,EAAE;;IASE,qEACoB;;IAKnC,0CAWL;;IAMC,0DAKC;;;;kBAoZQ,MAAM;;sBAEN,MAAM;;IAKP,uCAAa;;;;;;YAcd,oCASG;;;;;;;YASH,oCAKG;;;;;;YASH,sDAAyD;;;;;;YASzD,8FAWD;;;;;;;YASC,8FAqBE;;;;;wBAGA,MAAM,EAAE;;IAOC,2EAKnB;IAKK,kDAUL;;IAKW,8CAAU;IAKd,0CAAwB;IAItB,sCAAiB;;;;kBAvVhB,MAAM;;sBAEN,MAAM;;IAKP,uCAAa;;wBACZ,MAAM,EAAE;;;;;;YAeV,8CAKG;;;;;;;YASH,8CAKG;;;;;;;;;;;;;YAiBH,+DAWJ;;;;;;YASI,iDAKJ;;;;;;YASI,iDAGJ;;;;;;;;YAWI,8FAkBD;;;;;;;;;YAWC,8FAkBD;;;;;;QASD,qBAAgB;;;IAOjB,yDAWL;;IAKS,sCAA2C;;;;kBA/S1C,MAAM;;sBAEN,MAAM;;IAQP;;;iBAAmD;;;;;;YAY/B,uCAAc;;;;;;;;;YAUnC,8FAiBD;;;;;;;;;;;;;;;;;YA/8BH,qHAaD;;;;;;;;wBA08BO,MAAM,EAAE;;IAWb,+DAUL;;IAMC,mEAKC;;;;kBA1KQ,MAAM;;sBAEN,MAAM;;IAKP,uCAAY;;;;;;YAcb,oCAMG;;;;;;;;;YAWH,8FAWD;;;;;;wBAGG,MAAM,EAAE;;IAMb,0CAOL;;IAIS,sCAET"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../base-plugin/types.js"],"names":[],"mappings":";gBAoTa,MAAM;oBAEN,MAAM;IAML,+CAsEX;IAMS;;gBAK+D;;;;YAYxC,6BAAyB;;;;;YAGjD,mCAC2D;;;;;;YAI3D,mCAA8C;;;;;;YAS9C,mCAAqD;;;;;;YASrD,yDAAmE;;;;;;YAOzC,mCAA6B;;;;;;;YAU9C;;;;;;;;;;;;;;;;;;;;;iBA8Bb;YACI,6FAsEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAiDH,6FAyCF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAyCE,6FAqBF;;;;;;;;YAWE,6FAeF;;;;;;;;;;;;YAgBE,8FAcyB;;;;;;;;;;;;;YAYzB,8FAYoB;;;;;;;;YAWpB,8FAWD;;;;IAOF,0CAQL;;QAYK;;mBAAmB;QAMZ;;mBAAyD;;IAOpE,+FAYC;IAMkB,iFAEwB;;;kBAuBlC,MAAM;;sBAEN,MAAM;;IAQP;;;gBAAoD;;;;;;;;;YAahC,uCAAc;;;;;;;;;;;;;;YAYnC,8FAoBJ;;;;;YAt4BS;;;;gBAOb;;;;;;YAGI,yGAmBD;;;;YAGU;;;;gBAOb;;;;;;;;YAKI,qHAmCJ;;;;YAaa;;;;;;;;;;iBAUb;;;;YAEI,0DAgBF;;;;;;;;;;;;;;;;YAUE,qHA6BJ;;;;;YA+uBiB;;;;;gBAOb;;;;;;YAGI,0DAWF;;;;YAGW;;;;;gBAOb;;;;;;YAGI,qHAsBJ;;;;;wBAGM,MAAM,EAAE;;IASE,qEACoB;;IAKnC,0CAWL;;IAMC,0DAKC;;;;kBAoZQ,MAAM;;sBAEN,MAAM;;IAKP,uCAAa;;;;;;YAcd,oCASG;;;;;;;YASH,oCAKG;;;;;;YASH,sDAAyD;;;;;;YASzD,8FAWD;;;;;;;YASC,8FAqBE;;;;;wBAGA,MAAM,EAAE;;IAOC,2EAKnB;IAKK,kDAUL;;IAKW,8CAAU;IAKd,0CAAwB;IAItB,sCAAiB;;;;kBAvVhB,MAAM;;sBAEN,MAAM;;IAKP,uCAAa;;wBACZ,MAAM,EAAE;;;;;;YAeV,8CAKG;;;;;;;YASH,8CAKG;;;;;;;;;;;;;YAiBH,+DAWJ;;;;;;YASI,iDAKJ;;;;;;YASI,iDAGJ;;;;;;;;YAWI,8FAkBD;;;;;;;;;YAWC,8FAkBD;;;;;;QASD,qBAAgB;;;IAOjB,yDAWL;;IAKS,sCAA2C;;;;kBA/S1C,MAAM;;sBAEN,MAAM;;IAQP;;;iBAAmD;;;;;;YAY/B,uCAAc;;;;;;;;;YAUnC,8FAiBD;;;;;;;;;;;;;;;;;YAp9BH,qHAaD;;;;;;;;wBA+8BO,MAAM,EAAE;;IAWb,+DAUL;;IAMC,mEAKC;;;;kBA1KQ,MAAM;;sBAEN,MAAM;;IAKP,uCAAY;;;;;;YAcb,oCAMG;;;;;;;;;YAWH,8FAWD;;;;;;wBAGG,MAAM,EAAE;;IAMb,0CAOL;;IAIS,sCAET"}
@@ -92,6 +92,9 @@ const range_interval = (type) => ({
92
92
  }));
93
93
  },
94
94
  });
95
+ const none_available = (required) => required
96
+ ? div({ class: "alert alert-danger", role: "alert" }, i({ class: "fas fa-exclamation-triangle" }), "This input is required but there are no available options.")
97
+ : i("None available");
95
98
  const progress_bar = (type) => ({
96
99
  configFields: (field) => [
97
100
  ...(!isdef(field.attributes.min)
@@ -397,7 +400,12 @@ const string = {
397
400
  readonly: attrs.readonly,
398
401
  })
399
402
  : select({
400
- class: ["form-control", "form-select", cls],
403
+ class: [
404
+ "form-control",
405
+ "form-select",
406
+ cls,
407
+ attrs.selectizable ? "selectizable" : false,
408
+ ],
401
409
  name: text_attr(nm),
402
410
  "data-fieldname": text_attr(field.name),
403
411
  id: `input${text_attr(nm)}`,
@@ -410,7 +418,7 @@ const string = {
410
418
  ...getStrOptions(v, attrs.options),
411
419
  ])
412
420
  : attrs.options
413
- ? i("None available")
421
+ ? none_available(required)
414
422
  : attrs.calcOptions
415
423
  ? select({
416
424
  class: ["form-control", "form-select", cls],
@@ -612,7 +620,7 @@ const string = {
612
620
  : attrs.options.split(",").map((o) => o.trim()),
613
621
  value: v,
614
622
  })
615
- : i("None available"),
623
+ : none_available(required),
616
624
  },
617
625
  checkbox_group: {
618
626
  isEdit: false,