@saltcorn/data 0.9.4-beta.8 → 0.9.4

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 (137) hide show
  1. package/dist/base-plugin/actions.d.ts +137 -71
  2. package/dist/base-plugin/actions.d.ts.map +1 -1
  3. package/dist/base-plugin/actions.js +105 -22
  4. package/dist/base-plugin/actions.js.map +1 -1
  5. package/dist/base-plugin/fieldviews.d.ts.map +1 -1
  6. package/dist/base-plugin/fieldviews.js +19 -9
  7. package/dist/base-plugin/fieldviews.js.map +1 -1
  8. package/dist/base-plugin/fileviews.d.ts +13 -0
  9. package/dist/base-plugin/fileviews.js +42 -2
  10. package/dist/base-plugin/fileviews.js.map +1 -1
  11. package/dist/base-plugin/index.d.ts +208 -204
  12. package/dist/base-plugin/index.d.ts.map +1 -1
  13. package/dist/base-plugin/types.d.ts.map +1 -1
  14. package/dist/base-plugin/types.js +25 -10
  15. package/dist/base-plugin/types.js.map +1 -1
  16. package/dist/base-plugin/viewtemplates/edit.d.ts +4 -1
  17. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
  18. package/dist/base-plugin/viewtemplates/edit.js +181 -81
  19. package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
  20. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -1
  21. package/dist/base-plugin/viewtemplates/feed.js +4 -1
  22. package/dist/base-plugin/viewtemplates/feed.js.map +1 -1
  23. package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -1
  24. package/dist/base-plugin/viewtemplates/filter.js +89 -7
  25. package/dist/base-plugin/viewtemplates/filter.js.map +1 -1
  26. package/dist/base-plugin/viewtemplates/list.d.ts +3 -2
  27. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
  28. package/dist/base-plugin/viewtemplates/list.js +274 -38
  29. package/dist/base-plugin/viewtemplates/list.js.map +1 -1
  30. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
  31. package/dist/base-plugin/viewtemplates/show.js +116 -56
  32. package/dist/base-plugin/viewtemplates/show.js.map +1 -1
  33. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +4 -3
  34. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -1
  35. package/dist/base-plugin/viewtemplates/viewable_fields.js +173 -57
  36. package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -1
  37. package/dist/db/connect.d.ts.map +1 -1
  38. package/dist/db/connect.js +20 -0
  39. package/dist/db/connect.js.map +1 -1
  40. package/dist/db/fixtures.d.ts.map +1 -1
  41. package/dist/db/fixtures.js +196 -30
  42. package/dist/db/fixtures.js.map +1 -1
  43. package/dist/db/state.d.ts +5 -0
  44. package/dist/db/state.d.ts.map +1 -1
  45. package/dist/db/state.js +20 -0
  46. package/dist/db/state.js.map +1 -1
  47. package/dist/migrate.d.ts +1 -0
  48. package/dist/migrate.d.ts.map +1 -1
  49. package/dist/migrate.js +6 -3
  50. package/dist/migrate.js.map +1 -1
  51. package/dist/migrations/202402071125.d.ts +2 -0
  52. package/dist/migrations/202402071125.d.ts.map +1 -0
  53. package/dist/migrations/202402071125.js +4 -0
  54. package/dist/migrations/202402071125.js.map +1 -0
  55. package/dist/models/config.d.ts.map +1 -1
  56. package/dist/models/config.js +27 -0
  57. package/dist/models/config.js.map +1 -1
  58. package/dist/models/email.d.ts.map +1 -1
  59. package/dist/models/email.js +6 -2
  60. package/dist/models/email.js.map +1 -1
  61. package/dist/models/field.d.ts +1 -1
  62. package/dist/models/field.d.ts.map +1 -1
  63. package/dist/models/field.js +4 -4
  64. package/dist/models/field.js.map +1 -1
  65. package/dist/models/file.d.ts +2 -0
  66. package/dist/models/file.d.ts.map +1 -1
  67. package/dist/models/file.js +9 -0
  68. package/dist/models/file.js.map +1 -1
  69. package/dist/models/index.d.ts +1 -1
  70. package/dist/models/internal/query.d.ts +6 -0
  71. package/dist/models/internal/query.d.ts.map +1 -0
  72. package/dist/models/internal/query.js +86 -0
  73. package/dist/models/internal/query.js.map +1 -0
  74. package/dist/models/page.d.ts.map +1 -1
  75. package/dist/models/page.js +4 -0
  76. package/dist/models/page.js.map +1 -1
  77. package/dist/models/page_group.d.ts +1 -0
  78. package/dist/models/page_group.d.ts.map +1 -1
  79. package/dist/models/page_group.js +1 -0
  80. package/dist/models/page_group.js.map +1 -1
  81. package/dist/models/table.d.ts +18 -4
  82. package/dist/models/table.d.ts.map +1 -1
  83. package/dist/models/table.js +84 -52
  84. package/dist/models/table.js.map +1 -1
  85. package/dist/models/tag_entry.d.ts.map +1 -1
  86. package/dist/models/tag_entry.js +9 -0
  87. package/dist/models/tag_entry.js.map +1 -1
  88. package/dist/models/trigger.d.ts +3 -3
  89. package/dist/models/trigger.d.ts.map +1 -1
  90. package/dist/models/trigger.js +69 -7
  91. package/dist/models/trigger.js.map +1 -1
  92. package/dist/models/user.d.ts.map +1 -1
  93. package/dist/models/user.js +5 -4
  94. package/dist/models/user.js.map +1 -1
  95. package/dist/models/view.d.ts +1 -0
  96. package/dist/models/view.d.ts.map +1 -1
  97. package/dist/models/view.js +6 -0
  98. package/dist/models/view.js.map +1 -1
  99. package/dist/plugin-helper.d.ts +7 -19
  100. package/dist/plugin-helper.d.ts.map +1 -1
  101. package/dist/plugin-helper.js +79 -70
  102. package/dist/plugin-helper.js.map +1 -1
  103. package/dist/tests/actions.test.js +143 -2
  104. package/dist/tests/actions.test.js.map +1 -1
  105. package/dist/tests/auth.test.js +101 -1
  106. package/dist/tests/auth.test.js.map +1 -1
  107. package/dist/tests/auxtest.test.js +4 -0
  108. package/dist/tests/auxtest.test.js.map +1 -1
  109. package/dist/tests/calc.test.js +20 -0
  110. package/dist/tests/calc.test.js.map +1 -1
  111. package/dist/tests/edit.test.js +558 -0
  112. package/dist/tests/edit.test.js.map +1 -1
  113. package/dist/tests/filter.test.d.ts +2 -0
  114. package/dist/tests/filter.test.d.ts.map +1 -0
  115. package/dist/tests/filter.test.js +438 -0
  116. package/dist/tests/filter.test.js.map +1 -0
  117. package/dist/tests/list.test.d.ts +2 -0
  118. package/dist/tests/list.test.d.ts.map +1 -0
  119. package/dist/tests/list.test.js +903 -0
  120. package/dist/tests/list.test.js.map +1 -0
  121. package/dist/tests/show.test.d.ts +2 -0
  122. package/dist/tests/show.test.d.ts.map +1 -0
  123. package/dist/tests/show.test.js +325 -0
  124. package/dist/tests/show.test.js.map +1 -0
  125. package/dist/tests/table.test.js +213 -56
  126. package/dist/tests/table.test.js.map +1 -1
  127. package/dist/tests/table_history.test.js +51 -0
  128. package/dist/tests/table_history.test.js.map +1 -1
  129. package/dist/tests/tag.test.js +1 -1
  130. package/dist/tests/tag.test.js.map +1 -1
  131. package/dist/tests/view.test.js +16 -2
  132. package/dist/tests/view.test.js.map +1 -1
  133. package/dist/utils.d.ts +2 -17
  134. package/dist/utils.d.ts.map +1 -1
  135. package/dist/utils.js +19 -32
  136. package/dist/utils.js.map +1 -1
  137. package/package.json +8 -7
@@ -447,7 +447,110 @@ export const types: ({
447
447
  show: {
448
448
  isEdit: boolean;
449
449
  description: string;
450
- run: (s: any) => any;
450
+ run: (v: any) => any;
451
+ };
452
+ checkboxes: {
453
+ isEdit: boolean;
454
+ description: string;
455
+ run: (v: any) => any;
456
+ };
457
+ TrueFalse: {
458
+ isEdit: boolean;
459
+ description: string;
460
+ run: (v: any) => "" | "True" | "False";
461
+ };
462
+ edit: {
463
+ isEdit: boolean;
464
+ description: string;
465
+ configFields: ({
466
+ name: string;
467
+ label: string;
468
+ type: string;
469
+ attributes: {
470
+ options: string[];
471
+ };
472
+ } | {
473
+ name: string;
474
+ label: string;
475
+ type: string;
476
+ attributes?: undefined;
477
+ })[];
478
+ run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
479
+ };
480
+ switch: {
481
+ isEdit: boolean;
482
+ description: string;
483
+ run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
484
+ };
485
+ show_with_html: {
486
+ configFields: {
487
+ input_type: string;
488
+ name: string;
489
+ label: string;
490
+ sublabel: string;
491
+ default: string;
492
+ attributes: {
493
+ mode: string;
494
+ };
495
+ }[];
496
+ isEdit: boolean;
497
+ description: string;
498
+ run: (v: any, req: any, attrs?: {}) => any;
499
+ };
500
+ tristate: {
501
+ isEdit: boolean;
502
+ description: string;
503
+ configFields: {
504
+ name: string;
505
+ label: string;
506
+ type: string;
507
+ }[];
508
+ run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
509
+ };
510
+ };
511
+ attributes: object[];
512
+ readFromFormRecord: (rec: any, name: string) => boolean | null;
513
+ read: (v: object) => boolean | null;
514
+ readFromDB: (v: object) => object;
515
+ listAs: (v: object) => object;
516
+ validate: () => boolean;
517
+ } | {
518
+ name: string;
519
+ sql_name: string;
520
+ js_type: string;
521
+ contract: () => Function;
522
+ attributes: object[];
523
+ fieldviews: {
524
+ show: {
525
+ isEdit: boolean;
526
+ description: string;
527
+ run: (d: any, req: any, attrs?: {}) => any;
528
+ };
529
+ showDay: {
530
+ isEdit: boolean;
531
+ description: string;
532
+ run: (d: any, req: any) => any;
533
+ };
534
+ format: {
535
+ isEdit: boolean;
536
+ description: string;
537
+ configFields: {
538
+ name: string;
539
+ label: string;
540
+ type: string;
541
+ sublabel: string;
542
+ }[];
543
+ run: (d: any, req: any, options: any) => any;
544
+ };
545
+ relative: {
546
+ isEdit: boolean;
547
+ description: string;
548
+ run: (d: any, req: any) => string;
549
+ };
550
+ yearsAgo: {
551
+ isEdit: boolean;
552
+ description: string;
553
+ run: (d: any, req: any) => string;
451
554
  };
452
555
  show_with_html: {
453
556
  configFields: {
@@ -470,9 +573,17 @@ export const types: ({
470
573
  description: string;
471
574
  run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
472
575
  };
576
+ editDay: {
577
+ isEdit: boolean;
578
+ blockDisplay: boolean;
579
+ description: string;
580
+ run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
581
+ };
473
582
  };
474
- attributes: object[];
475
- read: (v: object) => object;
583
+ presets: {
584
+ Now: () => Date;
585
+ };
586
+ read: (v: object, attrs: object) => object;
476
587
  validate: () => boolean;
477
588
  } | {
478
589
  name: string;
@@ -659,38 +770,11 @@ export const types: ({
659
770
  sql_name: string;
660
771
  js_type: string;
661
772
  contract: () => Function;
662
- attributes: object[];
663
773
  fieldviews: {
664
774
  show: {
665
775
  isEdit: boolean;
666
776
  description: string;
667
- run: (d: any, req: any, attrs?: {}) => any;
668
- };
669
- showDay: {
670
- isEdit: boolean;
671
- description: string;
672
- run: (d: any, req: any) => any;
673
- };
674
- format: {
675
- isEdit: boolean;
676
- description: string;
677
- configFields: {
678
- name: string;
679
- label: string;
680
- type: string;
681
- sublabel: string;
682
- }[];
683
- run: (d: any, req: any, options: any) => any;
684
- };
685
- relative: {
686
- isEdit: boolean;
687
- description: string;
688
- run: (d: any, req: any) => string;
689
- };
690
- yearsAgo: {
691
- isEdit: boolean;
692
- description: string;
693
- run: (d: any, req: any) => string;
777
+ run: (s: any) => any;
694
778
  };
695
779
  show_with_html: {
696
780
  configFields: {
@@ -713,155 +797,53 @@ export const types: ({
713
797
  description: string;
714
798
  run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
715
799
  };
716
- editDay: {
717
- isEdit: boolean;
718
- blockDisplay: boolean;
719
- description: string;
720
- run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
721
- };
722
- };
723
- presets: {
724
- Now: () => Date;
725
- };
726
- read: (v: object, attrs: object) => object;
727
- validate: () => boolean;
728
- } | {
729
- name: string;
730
- sql_name: string;
731
- js_type: string;
732
- contract: () => Function;
733
- fieldviews: {
734
- show: {
735
- isEdit: boolean;
736
- description: string;
737
- run: (v: any) => any;
738
- };
739
- checkboxes: {
740
- isEdit: boolean;
741
- description: string;
742
- run: (v: any) => any;
743
- };
744
- TrueFalse: {
745
- isEdit: boolean;
746
- description: string;
747
- run: (v: any) => "" | "True" | "False";
748
- };
749
- edit: {
750
- isEdit: boolean;
751
- description: string;
752
- configFields: ({
753
- name: string;
754
- label: string;
755
- type: string;
756
- attributes: {
757
- options: string[];
758
- };
759
- } | {
760
- name: string;
761
- label: string;
762
- type: string;
763
- attributes?: undefined;
764
- })[];
765
- run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
766
- };
767
- switch: {
768
- isEdit: boolean;
769
- description: string;
770
- run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
771
- };
772
- show_with_html: {
773
- configFields: {
774
- input_type: string;
775
- name: string;
776
- label: string;
777
- sublabel: string;
778
- default: string;
779
- attributes: {
780
- mode: string;
781
- };
782
- }[];
783
- isEdit: boolean;
784
- description: string;
785
- run: (v: any, req: any, attrs?: {}) => any;
786
- };
787
- tristate: {
788
- isEdit: boolean;
789
- description: string;
790
- configFields: {
791
- name: string;
792
- label: string;
793
- type: string;
794
- }[];
795
- run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => any;
796
- };
797
800
  };
798
801
  attributes: object[];
799
- readFromFormRecord: (rec: any, name: string) => boolean | null;
800
- read: (v: object) => boolean | null;
801
- readFromDB: (v: object) => object;
802
- listAs: (v: object) => object;
802
+ read: (v: object) => object;
803
803
  validate: () => boolean;
804
804
  })[];
805
805
  export const viewtemplates: ({
806
806
  name: string;
807
807
  description: string;
808
- configuration_workflow: (req: object) => import("../models/workflow");
809
- run: (table_id: string | number, viewname: string, { columns, view_to_create, create_view_display, create_view_label, default_state, create_view_location, create_link_style, create_link_size, create_view_showif, }: {
810
- columns: object[];
811
- view_to_create?: string | undefined;
812
- create_view_display: string;
813
- create_view_label?: string | undefined;
814
- default_state?: object | undefined;
815
- create_view_location?: string | undefined;
816
- }, stateWithId?: object | undefined, extraOpts: object, { listQuery }: {
817
- listQuery: any;
818
- }) => Promise<any>;
819
- view_quantity: string;
820
- get_state_fields: (table_id: string, viewname: any, { columns }: {
808
+ get_state_fields: () => object[];
809
+ configuration_workflow: () => import("../models/workflow");
810
+ run: (table_id: number, viewname: string, { columns, layout }: {
821
811
  columns: object[];
822
- }) => Function;
823
- initial_config: Function;
824
- on_delete: (table_id: any, viewname: string, { default_state }: {
825
- default_state: any;
826
- }) => Promise<void>;
812
+ layout: object;
813
+ }, state: object, extra: object, { distinctValuesQuery }: {
814
+ distinctValuesQuery: any;
815
+ }) => Promise<Layout>;
816
+ initial_config: () => Promise<object>;
817
+ display_state_form: boolean;
818
+ getStringsForI18n({ layout }: {
819
+ layout: any;
820
+ }): string[];
827
821
  routes: {
828
- run_action: (table_id: number, viewname: any, { columns, layout }: {
829
- columns: object[];
830
- layout: any;
831
- }, body: object, { req, res }: {
832
- req: object;
822
+ run_action: (table_id: any, viewname: any, config: any, body: any, { req, res }: {
823
+ req: any;
833
824
  res: any;
834
- }, { getRowQuery }: {
835
- getRowQuery: any;
836
- }) => Promise<object>;
825
+ }, { actionQuery }: {
826
+ actionQuery: any;
827
+ }) => Promise<any>;
837
828
  };
838
- display_state_form: (opts: object) => boolean;
839
- default_state_form: ({ default_state }: object) => boolean;
840
- getStringsForI18n({ columns, create_view_label }: {
841
- columns: any;
842
- create_view_label: any;
843
- }): string[];
844
- queries: ({ table_id, exttable_name, name, configuration: { columns, default_state }, req, }: {
829
+ queries: ({ table_id, viewname, configuration: { columns }, req, res, exttable_name, }: {
845
830
  table_id: any;
846
- exttable_name: any;
847
- name: any;
831
+ viewname: any;
848
832
  configuration: {
849
833
  columns: any;
850
- default_state: any;
851
834
  };
852
835
  req: any;
836
+ res: any;
837
+ exttable_name: any;
853
838
  }) => {
854
- listQuery(state: any, stateHash: any): Promise<{
855
- rows: import("@saltcorn/db-common/internal").Row[];
856
- rowCount: number;
839
+ actionQuery(state: any, rndid: any): Promise<{
840
+ json: any;
841
+ }>;
842
+ distinctValuesQuery(state: any): Promise<{
843
+ distinct_values: {};
844
+ role: any;
857
845
  }>;
858
- getRowQuery(id: any): Promise<import("@saltcorn/db-common/internal").Row | null>;
859
846
  };
860
- configCheck: (view: any) => Promise<{
861
- errors: string[];
862
- warnings: string[];
863
- }>;
864
- connectedObjects: (configuration: any) => Promise<import("@saltcorn/types/base_types").ConnectedObjects>;
865
847
  } | {
866
848
  name: string;
867
849
  description: string;
@@ -898,6 +880,8 @@ export const viewtemplates: ({
898
880
  optionsQuery: any;
899
881
  getRowByIdQuery: any;
900
882
  }, remote: any) => Promise<void>;
883
+ openDataStream: (tableId: any, viewName: any, id: any, fieldName: any, fieldView: any, user: any, configuration: any, targetOpts: any) => Promise<any>;
884
+ authorizeDataStream: (view: any, id: any, fieldName: any, user: any, targetOpts: any) => Promise<boolean>;
901
885
  get_state_fields: (table_id: any, viewname: any, { columns }: {
902
886
  columns: any;
903
887
  }) => Promise<object[]>;
@@ -919,7 +903,7 @@ export const viewtemplates: ({
919
903
  getStringsForI18n({ layout }: {
920
904
  layout: Layout;
921
905
  }): string[];
922
- queries: ({ table_id, name, configuration: { columns, default_state, layout, auto_save, split_paste, destination_type, }, req, res, }: {
906
+ queries: ({ table_id, name, configuration: { columns, default_state, layout, auto_save, split_paste, destination_type, fixed, }, req, res, }: {
923
907
  table_id: any;
924
908
  name: any;
925
909
  configuration: {
@@ -929,6 +913,7 @@ export const viewtemplates: ({
929
913
  auto_save: any;
930
914
  split_paste: any;
931
915
  destination_type: any;
916
+ fixed: any;
932
917
  };
933
918
  req: any;
934
919
  res: any;
@@ -1013,6 +998,67 @@ export const viewtemplates: ({
1013
998
  warnings: string[];
1014
999
  }>;
1015
1000
  connectedObjects: (configuration: any) => Promise<import("@saltcorn/types/base_types").ConnectedObjects>;
1001
+ } | {
1002
+ name: string;
1003
+ description: string;
1004
+ configuration_workflow: (req: object) => import("../models/workflow");
1005
+ run: (table_id: string | number, viewname: string, { columns, layout, view_to_create, create_view_display, create_view_label, default_state, create_view_location, create_link_style, create_link_size, create_view_showif, }: {
1006
+ columns: object[];
1007
+ view_to_create?: string | undefined;
1008
+ create_view_display: string;
1009
+ create_view_label?: string | undefined;
1010
+ default_state?: object | undefined;
1011
+ create_view_location?: string | undefined;
1012
+ }, stateWithId?: object | undefined, extraOpts: object, { listQuery }: {
1013
+ listQuery: any;
1014
+ }) => Promise<any>;
1015
+ view_quantity: string;
1016
+ get_state_fields: (table_id: string, viewname: any, { columns }: {
1017
+ columns: object[];
1018
+ }) => Function;
1019
+ initial_config: Function;
1020
+ on_delete: (table_id: any, viewname: string, { default_state }: {
1021
+ default_state: any;
1022
+ }) => Promise<void>;
1023
+ routes: {
1024
+ run_action: (table_id: number, viewname: any, { columns, layout }: {
1025
+ columns: object[];
1026
+ layout: any;
1027
+ }, body: object, { req, res }: {
1028
+ req: object;
1029
+ res: any;
1030
+ }, { getRowQuery }: {
1031
+ getRowQuery: any;
1032
+ }) => Promise<object>;
1033
+ };
1034
+ display_state_form: (opts: object) => boolean;
1035
+ default_state_form: ({ default_state }: object) => boolean;
1036
+ getStringsForI18n({ columns, create_view_label }: {
1037
+ columns: any;
1038
+ create_view_label: any;
1039
+ }): string[];
1040
+ queries: ({ table_id, exttable_name, name, configuration: { columns, layout, default_state }, req, }: {
1041
+ table_id: any;
1042
+ exttable_name: any;
1043
+ name: any;
1044
+ configuration: {
1045
+ columns: any;
1046
+ layout: any;
1047
+ default_state: any;
1048
+ };
1049
+ req: any;
1050
+ }) => {
1051
+ listQuery(state: any, stateHash: any): Promise<{
1052
+ rows: import("@saltcorn/db-common/internal").Row[];
1053
+ rowCount: number;
1054
+ }>;
1055
+ getRowQuery(id: any): Promise<import("@saltcorn/db-common/internal").Row | null>;
1056
+ };
1057
+ configCheck: (view: any) => Promise<{
1058
+ errors: string[];
1059
+ warnings: string[];
1060
+ }>;
1061
+ connectedObjects: (configuration: any) => Promise<import("@saltcorn/types/base_types").ConnectedObjects>;
1016
1062
  } | {
1017
1063
  name: string;
1018
1064
  description: string;
@@ -1164,48 +1210,6 @@ export const viewtemplates: ({
1164
1210
  countRowsQuery(state: any): Promise<number>;
1165
1211
  };
1166
1212
  connectedObjects: (configuration: any) => Promise<import("@saltcorn/types/base_types").ConnectedObjects>;
1167
- } | {
1168
- name: string;
1169
- description: string;
1170
- get_state_fields: () => object[];
1171
- configuration_workflow: () => import("../models/workflow");
1172
- run: (table_id: number, viewname: string, { columns, layout }: {
1173
- columns: object[];
1174
- layout: object;
1175
- }, state: object, extra: object, { distinctValuesQuery }: {
1176
- distinctValuesQuery: any;
1177
- }) => Promise<Layout>;
1178
- initial_config: () => Promise<object>;
1179
- display_state_form: boolean;
1180
- getStringsForI18n({ layout }: {
1181
- layout: any;
1182
- }): string[];
1183
- routes: {
1184
- run_action: (table_id: any, viewname: any, config: any, body: any, { req, res }: {
1185
- req: any;
1186
- res: any;
1187
- }, { actionQuery }: {
1188
- actionQuery: any;
1189
- }) => Promise<any>;
1190
- };
1191
- queries: ({ table_id, viewname, configuration: { columns }, req, res, exttable_name, }: {
1192
- table_id: any;
1193
- viewname: any;
1194
- configuration: {
1195
- columns: any;
1196
- };
1197
- req: any;
1198
- res: any;
1199
- exttable_name: any;
1200
- }) => {
1201
- actionQuery(state: any, rndid: any): Promise<{
1202
- json: any;
1203
- }>;
1204
- distinctValuesQuery(state: any): Promise<{
1205
- distinct_values: {};
1206
- role: any;
1207
- }>;
1208
- };
1209
1213
  } | {
1210
1214
  name: string;
1211
1215
  description: string;
@@ -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":";gBAqfa,MAAM;oBAEN,MAAM;;IAQL,+CA6EX;IAMS;;gBAK+D;;;;;YAehE,6BAAyB;;;;;;;YAKzB,mCACiE;;;;;;;;YAKjE,mCAA+C;;;;;;;;;;;;;;YAc/C,4DAIJ;;;;;;;;;;;;;;;YAkBI,yDAGG;;;;;;;;YAUH,yDAAmE;;;;;;;;YAWnE,mCAA6B;;;;;;;;;;YAapB;;;;;;;;;;;;;;;;;;;;;iBAwCb;;YACI,6FA4EG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAiDH,6FAyCF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAyCE,6FAqBF;;;;;;;;;;;;;;;;YAuBE,8FAiBF;;;;;;;;;;;;;;YAiBE,8FAcyB;;;;;;;;;;;;;;;YAczB,8FAYoB;;;;;;;;;;YAWpB,8FAWD;;;;IAOF,0CAQL;;QAYK;;mBAAmB;QAMZ;;mBAAyD;;IAOpE,+FAYC;IAMkB,iFAEwB;;;kBAuBlC,MAAM;;sBAEN,MAAM;;;;IAUP;;;gBAAoD;;;;;;;;;;;YAgBrD,uCAAc;;;;;;;;;;;;;;;;YAmBd,8FAuBJ;;;;;YAzqCS;;;;gBAOb;;;;;;;;YAII,yGAmBD;;;;YAGU;;;;gBAOb;;;;;;;;;;YAOI,qHAmCJ;;;;YAaa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiDb;;;;;;YAII,0DA0DJ;;;;YA2Ba;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgDb;;;;;;YAGI,0DA0BJ;;;;;;;;;;;;;;;;YAUI,qHA6BJ;;;;;;;;YAu1BiB;;;;;gBAOb;;;;;;YAGI,0DAWF;;;;;;YAIW;;;;;gBAOb;;;;;;YAGI,qHAsBJ;;;;;wBAGM,MAAM,EAAE;;IASE,qEACoB;;IAKnC,0CAWL;;IAMC,0DAKC;;;;kBAkcQ,MAAM;;sBAEN,MAAM;;;;IAMP,uCAAa;;;;;;;;YAed,oCASG;;;;;;;;;YAUH,oCAKG;;;;;;;;YAWH,sDAAyD;;;;;;;;;;;;;;;;;;;;;;YAyBzD,8FAgBJ;;;;;;;;;YAKI,8FAoBJ;;;;;;;;;;;;;;;;YA6BI,8FAoCE;;;;;wBAGA,MAAM,EAAE;;IAOC,2EAMnB;IAKK,kDAUL;;IAKW,8CAAU;IAKd,0CAAwB;IAItB,sCAAiB;;;;kBApchB,MAAM;;sBAEN,MAAM;;;;IAOP,uCAAa;;wBACZ,MAAM,EAAE;;;;;;;;YAuBV,0DAOJ;;;;;;;;;YAWI,8CAKG;;;;;;;;;;;;;;;YAkBH,4DAWJ;;;;;;;;YAUI,iDAKJ;;;;;;;;YAWI,iDAGJ;;;;;;;;;;;YAaI,8FAkBD;;;;;;;;;;;YAaC,8FAkBD;;;;;;QASD,qBAAgB;;;IAOjB,yDAWL;;IAKS,sCAA2C;;;;kBAzV1C,MAAM;;sBAEN,MAAM;;;;IAUP;;;iBAAmD;;;;;;;;YAepD,uCAAc;;;;;;;;;;;;;;;;;YAkBd,8FAoBD;;;;;;;;;;;;;;;;;;;YAjlCH,qHAaD;;;;;;;;;wBA8kCO,MAAM,EAAE;;IAWb,+DAYL;;IAMC,mEAKC;;;;kBAlMQ,MAAM;;sBAEN,MAAM;;;;IAOP,uCAAY;;;;;;;;YAeb,oCAMG;;;;;;;;;;;;YAYH,8FAWD;;;;;;wBAGG,MAAM,EAAE;;IAMb,0CAOL;;IAIS,sCAET;;;;;;;;;;;;;;;;;;;IA5oCI,0DAOJ"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../base-plugin/types.js"],"names":[],"mappings":";gBAkfa,MAAM;oBAEN,MAAM;;IAQL,+CA6EX;IAMS;;gBAK+D;;;;;YAehE,6BAAyB;;;;;;;YAKzB,mCACiE;;;;;;;;YAKjE,mCAA+C;;;;;;;;;;;;;;YAc/C,4DAIJ;;;;;;;;;;;;;;;YAkBI,yDAGG;;;;;;;;YAUH,yDAAmE;;;;;;;;YAWnE,mCAA6B;;;;;;;;;;YAapB;;;;;;;;;;;;;;;;;;;;;iBAwCb;;YACI,6FAsFG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAiDH,6FAyCF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAyCE,6FAqBF;;;;;;;;;;;;;;;;YA4BE,8FAkBF;;;;;;;;;;;;;;YAiBE,8FAcyB;;;;;;;;;;;;;;;YAczB,8FAYoB;;;;;;;;;;YAWpB,8FAWD;;;;IAOF,0CAQL;;QAYK;;mBAAmB;QAMZ;;mBAAyD;;IAOpE,+FAYC;IAMkB,iFAEwB;;;kBAuBlC,MAAM;;sBAEN,MAAM;;;;IAUP;;;gBAAoD;;;;;;;;;;;YAgBrD,uCAAc;;;;;;;;;;;;;;;;YAwBd,8FAwBJ;;;;;YA3rCS;;;;gBAOb;;;;;;;;YAII,yGAmBD;;;;YAGU;;;;gBAOb;;;;;;;;;;YAOI,qHAmCJ;;;;YAaa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiDb;;;;;;YAII,0DA0DJ;;;;YAuBa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgDb;;;;;;YAGI,0DA0BJ;;;;;;;;;;;;;;;;YAUI,qHA6BJ;;;;;;;;YA62BiB;;;;;gBAOb;;;;;;YAGI,0DAWF;;;;;;YAIW;;;;;gBAOb;;;;;;YAGI,qHAsBJ;;;;;wBAGM,MAAM,EAAE;;IASE,qEACoB;;IAKnC,0CAWL;;IAMC,0DAKC;;;;kBAkcQ,MAAM;;sBAEN,MAAM;;;;IAMP,uCAAa;;;;;;;;YAed,oCASG;;;;;;;;;YAUH,oCAKG;;;;;;;;YAWH,sDAAyD;;;;;;;;;;;;;;;;;;;;;;YAyBzD,8FAgBJ;;;;;;;;;YAKI,8FAoBJ;;;;;;;;;;;;;;;;YA6BI,8FAoCE;;;;;wBAGA,MAAM,EAAE;;IAOC,2EAMnB;IAKK,kDAUL;;IAKW,8CAAU;IAKd,0CAAwB;IAItB,sCAAiB;;;;kBApchB,MAAM;;sBAEN,MAAM;;;;IAOP,uCAAa;;wBACZ,MAAM,EAAE;;;;;;;;YAuBV,0DAOJ;;;;;;;;;YAWI,8CAKG;;;;;;;;;;;;;;;YAkBH,4DAWJ;;;;;;;;YAUI,iDAKJ;;;;;;;;YAWI,iDAGJ;;;;;;;;;;;YAaI,8FAkBD;;;;;;;;;;;YAaC,8FAkBD;;;;;;QASD,qBAAgB;;;IAOjB,yDAWL;;IAKS,sCAA2C;;;;kBAzV1C,MAAM;;sBAEN,MAAM;;;;IAUP;;;iBAAmD;;;;;;;;YAepD,uCAAc;;;;;;;;;;;;;;;;;YAkBd,8FAoBD;;;;;;;;;;;;;;;;;;;YAvmCH,qHAaD;;;;;;;;;wBAomCO,MAAM,EAAE;;IAWb,+DAYL;;IAMC,mEAKC;;;;kBAlMQ,MAAM;;sBAEN,MAAM;;;;IAOP,uCAAY;;;;;;;;YAeb,oCAMG;;;;;;;;;;;;YAYH,8FAWD;;;;;;wBAGG,MAAM,EAAE;;IAMb,0CAOL;;IAIS,sCAET;;;;;;;;;;;;;;;;;;;IA9pCI,0DAGJ"}
@@ -16,6 +16,7 @@ const { localeDate, localeDateTime } = require("@saltcorn/markup");
16
16
  const { freeVariables, eval_expression } = require("../models/expression");
17
17
  const Table = require("../models/table");
18
18
  const _ = require("underscore");
19
+ const { interpolate } = require("../utils");
19
20
  const isdef = (x) => (typeof x === "undefined" || x === null ? false : true);
20
21
  const eqStr = (x, y) => `${x}` === `${y}`;
21
22
  const number_slider = (type) => ({
@@ -215,11 +216,7 @@ const show_with_html = {
215
216
  isEdit: false,
216
217
  description: "Show value with any HTML code",
217
218
  run: (v, req, attrs = {}) => {
218
- const template = _.template(attrs?.code || "", {
219
- evaluate: /\{\{#(.+?)\}\}/g,
220
- interpolate: /\{\{([^#].+?)\}\}/g,
221
- });
222
- const rendered = template({ it: v, user: req?.user });
219
+ const rendered = interpolate(attrs?.code, { it: v }, req?.user);
223
220
  return rendered;
224
221
  },
225
222
  };
@@ -653,12 +650,18 @@ const string = {
653
650
  onChange: attrs.onChange,
654
651
  onBlur: attrs.onChange,
655
652
  autocomplete: "off",
656
- }, required || attrs.force_required
657
- ? getStrOptions(v, attrs.options)
658
- : [
659
- option({ value: "" }, attrs.neutral_label || ""),
653
+ required: attrs.placeholder && (required || attrs.force_required),
654
+ }, attrs.placeholder && (required || attrs.force_required)
655
+ ? [
656
+ option({ value: "", disabled: true, selected: !v }, attrs.placeholder),
660
657
  ...getStrOptions(v, attrs.options),
661
- ])
658
+ ]
659
+ : required || attrs.force_required
660
+ ? getStrOptions(v, attrs.options)
661
+ : [
662
+ option({ value: "" }, attrs.neutral_label || ""),
663
+ ...getStrOptions(v, attrs.options),
664
+ ])
662
665
  : attrs.options
663
666
  ? none_available(required)
664
667
  : attrs.calcOptions
@@ -839,6 +842,11 @@ const string = {
839
842
  name: "rows",
840
843
  label: "Rows",
841
844
  },
845
+ {
846
+ name: "placeholder",
847
+ label: "Placeholder",
848
+ type: "String",
849
+ },
842
850
  ],
843
851
  run: (nm, v, attrs, cls, required, field) => textarea({
844
852
  class: ["form-control", cls],
@@ -847,6 +855,7 @@ const string = {
847
855
  disabled: attrs.disabled,
848
856
  onChange: attrs.onChange,
849
857
  readonly: attrs.readonly,
858
+ placeholder: attrs.placeholder,
850
859
  spellcheck: attrs.spellcheck === false ? "false" : undefined,
851
860
  required: !!required,
852
861
  maxlength: isdef(attrs.max_length) && attrs.max_length,
@@ -1052,6 +1061,11 @@ const int = {
1052
1061
  label: "Read-only",
1053
1062
  type: "Bool",
1054
1063
  },
1064
+ {
1065
+ name: "autofocus",
1066
+ label: "Autofocus",
1067
+ type: "Bool",
1068
+ },
1055
1069
  ],
1056
1070
  run: (nm, v, attrs, cls, required, field) => {
1057
1071
  const id = `input${text_attr(nm)}`;
@@ -1066,6 +1080,7 @@ const int = {
1066
1080
  class: ["form-control", cls],
1067
1081
  disabled: attrs.disabled,
1068
1082
  readonly: attrs.readonly,
1083
+ autofocus: attrs.autofocus,
1069
1084
  "data-fieldname": text_attr(field.name),
1070
1085
  name,
1071
1086
  onChange: attrs.onChange,