@processmaker/screen-builder 2.74.0 → 2.76.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@processmaker/screen-builder",
3
- "version": "2.74.0",
3
+ "version": "2.76.0",
4
4
  "scripts": {
5
5
  "serve": "vue-cli-service serve",
6
6
  "build": "vue-cli-service build",
@@ -39,7 +39,7 @@
39
39
  "@cypress/code-coverage": "^3.8.1",
40
40
  "@fortawesome/fontawesome-free": "^5.6.1",
41
41
  "@panter/vue-i18next": "^0.15.2",
42
- "@processmaker/vue-form-elements": "0.49.0",
42
+ "@processmaker/vue-form-elements": "0.49.1",
43
43
  "@processmaker/vue-multiselect": "^2.2.0",
44
44
  "@vue/cli-plugin-babel": "^3.6.0",
45
45
  "@vue/cli-plugin-e2e-cypress": "^4.0.3",
@@ -88,7 +88,7 @@
88
88
  },
89
89
  "peerDependencies": {
90
90
  "@panter/vue-i18next": "^0.15.0",
91
- "@processmaker/vue-form-elements": "0.49.0",
91
+ "@processmaker/vue-form-elements": "0.49.1",
92
92
  "i18next": "^15.0.8",
93
93
  "vue": "^2.6.12",
94
94
  "vuex": "^3.1.1"
package/src/.DS_Store CHANGED
Binary file
@@ -537,15 +537,25 @@ export default {
537
537
  return this.config.length > 1;
538
538
  },
539
539
  filteredControls() {
540
- return this.controls
541
- .filter((control) => {
542
- return control.label
543
- .toLowerCase()
544
- .includes(this.filterQuery.toLowerCase());
545
- })
546
- .sort((a, b) => {
547
- return this.collator.compare(a.label, b.label);
548
- });
540
+ const excludedLabels = ["Bootstrap Wrapper", "Bootstrap Component"];
541
+
542
+ const filtered = this.controls.filter((control) => {
543
+ return control.label.toLowerCase().includes(this.filterQuery.toLowerCase());
544
+ });
545
+
546
+ const excluded = filtered.filter((control) => {
547
+ return excludedLabels.includes(control.label);
548
+ });
549
+
550
+ const included = filtered.filter((control) => {
551
+ return !excludedLabels.includes(control.label);
552
+ });
553
+
554
+ const sorted = included.sort((a, b) => {
555
+ return this.collator.compare(a.label, b.label);
556
+ });
557
+
558
+ return [...sorted, ...excluded];
549
559
  },
550
560
  isCurrentPageEmpty() {
551
561
  return this.config[this.currentPage].items.length === 0;
@@ -16,6 +16,8 @@ import {
16
16
  FormCheckbox,
17
17
  FormDatePicker,
18
18
  FormHtmlEditor,
19
+ BFormComponent,
20
+ BWrapperComponent,
19
21
  } from '@processmaker/vue-form-elements';
20
22
  import { dataSourceValues } from '@/components/inspector/data-source-types';
21
23
 
@@ -710,4 +712,113 @@ export default [
710
712
  ],
711
713
  },
712
714
  },
715
+ {
716
+ rendererComponent: BFormComponent,
717
+ rendererBinding: 'BFormComponent',
718
+ builderComponent: BFormComponent,
719
+ builderBinding: 'BFormComponent',
720
+ control: {
721
+ label: 'Bootstrap Component',
722
+ component: 'BFormComponent',
723
+ 'editor-component': 'BFormComponent',
724
+ 'editor-control': 'BFormComponent',
725
+ config: {
726
+ bootstrapComponent: 'b-form-tags',
727
+ bootstrapConfig: '{}',
728
+ label: 'New Bootstrap Component',
729
+ icon: 'fab fa-bootstrap',
730
+ },
731
+ inspector: [
732
+ keyNameProperty,
733
+ labelProperty,
734
+ {
735
+ type: 'FormMultiselect',
736
+ field: 'bootstrapComponent',
737
+ config: {
738
+ icon: 'fas',
739
+ label: 'Bootstrap vue component',
740
+ validation: 'required',
741
+ options: [
742
+ { value: 'b-embed', content: 'Embed' },
743
+ { value: 'b-img', content: 'Image' },
744
+ { value: 'b-form-rating', content: 'Form Rating' },
745
+ { value: 'b-form-spinbutton', content: 'Form Spinbutton' },
746
+ { value: 'b-form-tags', content: 'Form Tags' },
747
+ { value: 'b-form-timepicker', content: 'Form Timepicker' },
748
+ { value: 'b-table', content: 'Table' },
749
+ ],
750
+ },
751
+ },
752
+ {
753
+ type: 'FormTextArea',
754
+ field: 'bootstrapConfig',
755
+ config: {
756
+ rows: 5,
757
+ label: 'Config',
758
+ helper: 'Properties in JSON format. See https://bootstrap-vue.org/docs/components',
759
+ value: '{}',
760
+ },
761
+ },
762
+ validationRulesProperty,
763
+ ],
764
+ },
765
+ },
766
+ {
767
+ rendererComponent: BWrapperComponent,
768
+ rendererBinding: 'BWrapperComponent',
769
+ builderComponent: BWrapperComponent,
770
+ builderBinding: 'BWrapperComponent',
771
+ control: {
772
+ label: 'Bootstrap Wrapper',
773
+ component: 'BWrapperComponent',
774
+ 'editor-component': 'BWrapperComponent',
775
+ 'editor-control': 'BWrapperComponent',
776
+ config: {
777
+ bootstrapComponent: 'b-modal',
778
+ bootstrapConfig: '{}',
779
+ label: 'New Bootstrap Wrapper',
780
+ icon: 'fab fa-bootstrap',
781
+ name: '',
782
+ form: '',
783
+ },
784
+ inspector: [
785
+ keyNameProperty,
786
+ labelProperty,
787
+ {
788
+ type: 'FormMultiselect',
789
+ field: 'bootstrapComponent',
790
+ config: {
791
+ icon: 'fas',
792
+ label: 'Bootstrap vue component',
793
+ validation: 'required',
794
+ options: [
795
+ { value: 'b-alert', content: 'Alert' },
796
+ { value: 'b-card', content: 'Card' },
797
+ { value: 'b-collapse', content: 'Collapse' },
798
+ { value: 'b-jumbotron', content: 'Jumbotron' },
799
+ { value: 'b-modal', content: 'Modal' },
800
+ ],
801
+ },
802
+ },
803
+ {
804
+ type: 'PageSelect',
805
+ field: 'form',
806
+ config: {
807
+ label: 'Page',
808
+ helper: 'The page to use inside the component',
809
+ },
810
+ },
811
+ {
812
+ type: 'FormTextArea',
813
+ field: 'bootstrapConfig',
814
+ config: {
815
+ rows: 5,
816
+ label: 'Config',
817
+ helper: 'Properties in JSON format. See https://bootstrap-vue.org/docs/components',
818
+ value: '{}',
819
+ },
820
+ },
821
+ ],
822
+ },
823
+ },
713
824
  ];
package/src/main.js CHANGED
@@ -10,13 +10,14 @@ import ScreenBuilder from '@/components';
10
10
  import axios from 'axios';
11
11
  import { cacheAdapterEnhancer } from 'axios-extensions';
12
12
  import TestComponents from '../tests/components';
13
- import BootstrapVue from 'bootstrap-vue';
13
+ import {BootstrapVue, IconsPlugin} from 'bootstrap-vue';
14
14
  import Multiselect from '@processmaker/vue-multiselect/src/Multiselect';
15
15
  import LRUCache from 'lru-cache';
16
16
  import globalErrorsModule from "@/store/modules/globalErrorsModule";
17
17
  import undoRedoModule from "@/store/modules/undoRedoModule";
18
18
 
19
19
  Vue.use(BootstrapVue);
20
+ Vue.use(IconsPlugin);
20
21
  Vue.config.productionTip = false;
21
22
 
22
23
  // Allow strings to be wrapped in $t(...) for translating
@@ -28,7 +28,8 @@ export default {
28
28
  items: element.items
29
29
  }
30
30
  ],
31
- watchers: definition.watchers
31
+ watchers: definition.watchers,
32
+ isMobile: definition.isMobile
32
33
  };
33
34
 
34
35
  let loopContext = "";