@worksafevictoria/wcl7.5 1.17.1 → 1.18.0-beta.1

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 (64) hide show
  1. package/package.json +1 -1
  2. package/src/assets/icons/chevron-right-icon.svg +14 -0
  3. package/src/assets/icons/notepad.svg +93 -0
  4. package/src/assets/icons/question.svg +7 -0
  5. package/src/components/Common/CardGrid/index.vue +83 -74
  6. package/src/components/Common/CardGridItem/index.vue +31 -4
  7. package/src/components/Containers/Carousel/index.vue +24 -4
  8. package/src/components/Containers/SectionGroup/index.stories.js +28 -27
  9. package/src/components/Containers/SectionGroup/index.vue +5 -0
  10. package/src/components/Global/AppHeaderNew/index.vue +9 -1
  11. package/src/components/Global/AppHeaderNew/mobile.scss +4 -2
  12. package/src/components/Global/HeroHeader/index.vue +74 -57
  13. package/src/components/Paragraphs/Calculator/CardContainer/index.vue +68 -60
  14. package/src/components/Paragraphs/Calculator/index.vue +24 -22
  15. package/src/components/Paragraphs/RTWPlanner/CardContainer/index.vue +133 -0
  16. package/src/components/Paragraphs/RTWPlanner/Constants.js +433 -0
  17. package/src/components/Paragraphs/RTWPlanner/Footer/index.vue +32 -0
  18. package/src/components/Paragraphs/RTWPlanner/{NavBar → Header}/index.vue +20 -9
  19. package/src/components/Paragraphs/RTWPlanner/HomePage/index.vue +72 -0
  20. package/src/components/Paragraphs/RTWPlanner/Injuries/index.vue +226 -0
  21. package/src/components/Paragraphs/RTWPlanner/Planners/PlanTasks.vue +9 -8
  22. package/src/components/Paragraphs/RTWPlanner/Planners/PlannerNameModal.vue +97 -0
  23. package/src/components/Paragraphs/RTWPlanner/Planners/index.vue +367 -175
  24. package/src/components/Paragraphs/RTWPlanner/index.stories.js +82 -15
  25. package/src/components/Paragraphs/RTWPlanner/index.vue +109 -31
  26. package/src/components/Paragraphs/SelectableCards/Control/index.stories.js +31 -11
  27. package/src/components/Paragraphs/SelectableCards/cardbody.vue +9 -10
  28. package/src/components/Paragraphs/SelectableCards/cardtop.vue +23 -16
  29. package/src/components/Paragraphs/SelectableCards/index.stories.js +29 -8
  30. package/src/components/Paragraphs/SelectableCards/index.vue +124 -50
  31. package/src/components/Paragraphs/TextMedia/index.vue +4 -0
  32. package/src/components/SubComponents/Breadcrumb/index.vue +40 -7
  33. package/src/components/SubComponents/FormInstance/models/base-form-element.js +4 -3
  34. package/src/components/SubComponents/FormInstance/services/form-render-parser.js +51 -16
  35. package/src/components/SubComponents/FormInstance/services/logic-parser.js +122 -18
  36. package/src/components/SubComponents/FormInstance/services/registry-factory.js +52 -50
  37. package/src/components/SubComponents/FormInstance/stories/mocks/checkboxesother.json +1 -10
  38. package/src/components/SubComponents/FormInstance/stories/mocks/emailconfirm.json +1 -10
  39. package/src/components/SubComponents/FormInstance/stories/mocks/jahd.json +1 -5
  40. package/src/components/SubComponents/FormInstance/stories/mocks/quad.json +1 -5
  41. package/src/components/SubComponents/FormInstance/stories/mocks/radiosother.json +1 -9
  42. package/src/components/SubComponents/FormInstance/stories/mocks/sameas.json +1 -5
  43. package/src/components/SubComponents/FormInstance/stories/mocks/selectother.json +1 -10
  44. package/src/components/SubComponents/FormInstance/stories/mocks/styles.json +1 -5
  45. package/src/components/SubComponents/FormInstance/stories/mocks/table-select.json +1 -15
  46. package/src/components/SubComponents/FormInstance/stories/mocks/token.json +1 -5
  47. package/src/components/SubComponents/FormInstance/stories/mocks/twig.json +1 -13
  48. package/src/components/SubComponents/FormInstance/stories/mocks/wizard.json +1 -13
  49. package/src/components/SubComponents/FormInstance/tests/form-test-utils.js +3 -0
  50. package/src/components/SubComponents/FormInstance/tests/form.test.js +2 -1
  51. package/src/components/SubComponents/FormInstance/tests/radiosother.test.js +12 -11
  52. package/src/components/SubComponents/FormInstance/tests/rule-disabled.test.js +13 -45
  53. package/src/components/SubComponents/FormInstance/tests/rule-enabled-value.test.js +8 -24
  54. package/src/components/SubComponents/FormInstance/tests/rule-hidden.test.js +13 -45
  55. package/src/components/SubComponents/FormInstance/tests/rule-required-value.test.js +15 -55
  56. package/src/components/SubComponents/FormInstance/tests/rule-visible.test.js +0 -413
  57. package/src/components/SubComponents/FormInstance/tests/sameas.test.js +9 -25
  58. package/src/components/SubComponents/FormInstance/tests/twig.test.js +7 -5
  59. package/src/components/SubComponents/ResourceGroup/index.vue +1 -1
  60. package/src/includes/scss/vars/src/colors.module.scss +3 -0
  61. package/src/includes/scss/vars/src/colors.scss +3 -0
  62. package/src/index.js +6 -0
  63. package/src/mock/control-selectable-cards.js +68 -25
  64. package/src/components/Paragraphs/RTWPlanner/Home/index.vue +0 -83
@@ -5,17 +5,20 @@ import { FormSubmitParser } from '../services/form-submit-parser'
5
5
  export class FormTestUtils {
6
6
  static initialiseParser = () => {
7
7
  const parser = new FormRenderParser()
8
+
8
9
  parser.initialise('', false)
9
10
  let counter = 0
10
11
  jest.spyOn(formUtils, 'generateUniqueId').mockImplementation(() => {
11
12
  counter += 0
12
13
  return counter
13
14
  })
15
+
14
16
  return parser
15
17
  }
16
18
 
17
19
  static getParsedComponentsFromJSON = (json) => {
18
20
  const formIOform = FormTestUtils.getParsedFormFromJSON(json)
21
+ //console.log('🚀 ~ FormTestUtils ~ formIOform:', formIOform)
19
22
  const components = JSON.parse(
20
23
  JSON.stringify(formIOform.definition.components),
21
24
  )
@@ -10,9 +10,10 @@ describe(`Form parser`, () => {
10
10
 
11
11
  it(`should render a multi page form`, () => {
12
12
  const form = getParsedComponentsFromJSON(wizard)
13
+ console.log('🚀 ~ form:', form)
13
14
  expect(form).toEqual({
14
15
  display: 'wizard',
15
- id: 'edit-elements'
16
+ // id: 'edit-elements',
16
17
  })
17
18
  })
18
19
  })
@@ -5,6 +5,7 @@ const testComponent = 'radio other'
5
5
  describe(`Form ${testComponent} parser`, () => {
6
6
  it(`should render a ${testComponent} component`, () => {
7
7
  const components = FormTestUtils.getParsedComponentsFromJSON(json)
8
+ console.log('🚀 ~ components:', JSON.stringify(components))
8
9
  expect(components).toEqual(
9
10
  FormTestUtils.getComparisonJSON([
10
11
  {
@@ -32,11 +33,11 @@ describe(`Form ${testComponent} parser`, () => {
32
33
  values: [
33
34
  { label: 'Friday', value: 'Friday' },
34
35
  { label: 'Saturday', value: 'Saturday' },
35
- { label: 'Other…', value: '_other_' }
36
- ]
37
- }
36
+ { label: 'Other…', value: '_other_' },
37
+ ],
38
+ },
38
39
  ],
39
- width: 12
40
+ width: 12,
40
41
  },
41
42
  {
42
43
  components: [
@@ -54,11 +55,11 @@ describe(`Form ${testComponent} parser`, () => {
54
55
  mask: false,
55
56
  placeholder: 'Enter other…',
56
57
  type: 'textfield',
57
- validate: { maxLength: 255, required: false }
58
- }
58
+ validate: { maxLength: 255, required: false },
59
+ },
59
60
  ],
60
- width: 12
61
- }
61
+ width: 12,
62
+ },
62
63
  ],
63
64
  customClass: 'custom-formio-1',
64
65
  defaultValue: { other: null, radios: null },
@@ -71,9 +72,9 @@ describe(`Form ${testComponent} parser`, () => {
71
72
  labelPosition: 'top',
72
73
  mask: false,
73
74
  type: 'columns',
74
- validate: {}
75
- }
76
- ])
75
+ validate: {},
76
+ },
77
+ ]),
77
78
  )
78
79
  })
79
80
  })
@@ -22,7 +22,7 @@ describe(`Form ${testComponent} parser`, () => {
22
22
  placeholder:
23
23
  "type 'disable' to disable textfield2 and 'ro' to make textfield3 readonly",
24
24
  type: 'textfield',
25
- validate: { maxLength: 255, required: false }
25
+ validate: { maxLength: 255, required: false },
26
26
  },
27
27
  {
28
28
  attributes: { counter: 2 },
@@ -42,36 +42,20 @@ describe(`Form ${testComponent} parser`, () => {
42
42
  name: 0,
43
43
  property: { label: 0, type: 'boolean', value: 'disabled' },
44
44
  state: true,
45
- type: 'property'
46
- }
45
+ type: 'property',
46
+ },
47
47
  ],
48
48
  defaultProps: { disabled: false },
49
49
  name: 0,
50
50
  trigger: {
51
51
  javascript: "result = (Boolean(data.textfield1 === 'disable'))",
52
- type: 'javascript'
53
- }
52
+ type: 'javascript',
53
+ },
54
54
  },
55
- {
56
- actions: [
57
- {
58
- name: 0,
59
- property: { label: 0, type: 'boolean', value: 'disabled' },
60
- state: true,
61
- type: 'property'
62
- }
63
- ],
64
- defaultProps: { disabled: false },
65
- name: 0,
66
- trigger: {
67
- javascript: "result = (Boolean(data.textfield1 === 'disable'))",
68
- type: 'javascript'
69
- }
70
- }
71
55
  ],
72
56
  mask: false,
73
57
  type: 'textfield',
74
- validate: { maxLength: 255, required: false }
58
+ validate: { maxLength: 255, required: false },
75
59
  },
76
60
  {
77
61
  attributes: { counter: 3 },
@@ -91,38 +75,22 @@ describe(`Form ${testComponent} parser`, () => {
91
75
  name: 0,
92
76
  property: { label: 0, type: 'boolean', value: 'disabled' },
93
77
  state: true,
94
- type: 'property'
95
- }
78
+ type: 'property',
79
+ },
96
80
  ],
97
81
  defaultProps: { disabled: false },
98
82
  name: 0,
99
83
  trigger: {
100
84
  javascript: "result = (Boolean(data.textfield1 === 'ro'))",
101
- type: 'javascript'
102
- }
85
+ type: 'javascript',
86
+ },
103
87
  },
104
- {
105
- actions: [
106
- {
107
- name: 0,
108
- property: { label: 0, type: 'boolean', value: 'disabled' },
109
- state: true,
110
- type: 'property'
111
- }
112
- ],
113
- defaultProps: { disabled: false },
114
- name: 0,
115
- trigger: {
116
- javascript: "result = (Boolean(data.textfield1 === 'ro'))",
117
- type: 'javascript'
118
- }
119
- }
120
88
  ],
121
89
  mask: false,
122
90
  type: 'textfield',
123
- validate: { maxLength: 255, required: false }
124
- }
125
- ])
91
+ validate: { maxLength: 255, required: false },
92
+ },
93
+ ]),
126
94
  )
127
95
  })
128
96
  })
@@ -21,7 +21,7 @@ describe(`Form ${testComponent} parser`, () => {
21
21
  mask: false,
22
22
  placeholder: "type 'enable' to enable textfield2",
23
23
  type: 'textfield',
24
- validate: { maxLength: 255, required: false }
24
+ validate: { maxLength: 255, required: false },
25
25
  },
26
26
  {
27
27
  attributes: { counter: 2 },
@@ -41,38 +41,22 @@ describe(`Form ${testComponent} parser`, () => {
41
41
  name: 0,
42
42
  property: { label: 0, type: 'boolean', value: 'disabled' },
43
43
  state: false,
44
- type: 'property'
45
- }
44
+ type: 'property',
45
+ },
46
46
  ],
47
47
  defaultProps: { disabled: true },
48
48
  name: 0,
49
49
  trigger: {
50
50
  javascript: "result = (Boolean(data.textfield1 === 'enable'))",
51
- type: 'javascript'
52
- }
51
+ type: 'javascript',
52
+ },
53
53
  },
54
- {
55
- actions: [
56
- {
57
- name: 0,
58
- property: { label: 0, type: 'boolean', value: 'disabled' },
59
- state: false,
60
- type: 'property'
61
- }
62
- ],
63
- defaultProps: { disabled: true },
64
- name: 0,
65
- trigger: {
66
- javascript: "result = (Boolean(data.textfield1 === 'enable'))",
67
- type: 'javascript'
68
- }
69
- }
70
54
  ],
71
55
  mask: false,
72
56
  type: 'textfield',
73
- validate: { maxLength: 255, required: false }
74
- }
75
- ])
57
+ validate: { maxLength: 255, required: false },
58
+ },
59
+ ]),
76
60
  )
77
61
  })
78
62
  })
@@ -21,7 +21,7 @@ describe(`Form ${testComponent} parser`, () => {
21
21
  mask: false,
22
22
  placeholder: "type 'hide' to hide textfield2 and textfield3",
23
23
  type: 'textfield',
24
- validate: { maxLength: 255, required: false }
24
+ validate: { maxLength: 255, required: false },
25
25
  },
26
26
  {
27
27
  attributes: { counter: 2 },
@@ -42,37 +42,21 @@ describe(`Form ${testComponent} parser`, () => {
42
42
  name: 0,
43
43
  property: { label: 0, type: 'boolean', value: 'hidden' },
44
44
  state: true,
45
- type: 'property'
46
- }
45
+ type: 'property',
46
+ },
47
47
  ],
48
48
  defaultProps: { hidden: false },
49
49
  name: 0,
50
50
  trigger: {
51
51
  javascript: "result = (Boolean(data.textfield1 === 'hide'))",
52
- type: 'javascript'
53
- }
52
+ type: 'javascript',
53
+ },
54
54
  },
55
- {
56
- actions: [
57
- {
58
- name: 0,
59
- property: { label: 0, type: 'boolean', value: 'hidden' },
60
- state: true,
61
- type: 'property'
62
- }
63
- ],
64
- defaultProps: { hidden: false },
65
- name: 0,
66
- trigger: {
67
- javascript: "result = (Boolean(data.textfield1 === 'hide'))",
68
- type: 'javascript'
69
- }
70
- }
71
55
  ],
72
56
  mask: false,
73
57
  placeholder: 'will retain value on hidden',
74
58
  type: 'textfield',
75
- validate: { maxLength: 255, required: false }
59
+ validate: { maxLength: 255, required: false },
76
60
  },
77
61
  {
78
62
  attributes: { counter: 3 },
@@ -93,39 +77,23 @@ describe(`Form ${testComponent} parser`, () => {
93
77
  name: 0,
94
78
  property: { label: 0, type: 'boolean', value: 'hidden' },
95
79
  state: true,
96
- type: 'property'
97
- }
80
+ type: 'property',
81
+ },
98
82
  ],
99
83
  defaultProps: { hidden: false },
100
84
  name: 0,
101
85
  trigger: {
102
86
  javascript: "result = (Boolean(data.textfield1 === 'hide'))",
103
- type: 'javascript'
104
- }
87
+ type: 'javascript',
88
+ },
105
89
  },
106
- {
107
- actions: [
108
- {
109
- name: 0,
110
- property: { label: 0, type: 'boolean', value: 'hidden' },
111
- state: true,
112
- type: 'property'
113
- }
114
- ],
115
- defaultProps: { hidden: false },
116
- name: 0,
117
- trigger: {
118
- javascript: "result = (Boolean(data.textfield1 === 'hide'))",
119
- type: 'javascript'
120
- }
121
- }
122
90
  ],
123
91
  mask: false,
124
92
  placeholder: 'will NOT retain value on hidden',
125
93
  type: 'textfield',
126
- validate: { maxLength: 255, required: false }
127
- }
128
- ])
94
+ validate: { maxLength: 255, required: false },
95
+ },
96
+ ]),
129
97
  )
130
98
  })
131
99
  })
@@ -21,7 +21,7 @@ describe(`Form ${testComponent} parser`, () => {
21
21
  mask: false,
22
22
  placeholder: "type 'req' to require textfield2",
23
23
  type: 'textfield',
24
- validate: { maxLength: 255, required: false }
24
+ validate: { maxLength: 255, required: false },
25
25
  },
26
26
  {
27
27
  attributes: { counter: 2 },
@@ -42,44 +42,24 @@ describe(`Form ${testComponent} parser`, () => {
42
42
  property: {
43
43
  label: 0,
44
44
  type: 'boolean',
45
- value: 'validate.required'
45
+ value: 'validate.required',
46
46
  },
47
47
  state: true,
48
- type: 'property'
49
- }
48
+ type: 'property',
49
+ },
50
50
  ],
51
51
  defaultProps: { validate: { required: false } },
52
52
  name: 0,
53
53
  trigger: {
54
54
  javascript: "result = (Boolean(data.textfield1 === 'req'))",
55
- type: 'javascript'
56
- }
55
+ type: 'javascript',
56
+ },
57
57
  },
58
- {
59
- actions: [
60
- {
61
- name: 0,
62
- property: {
63
- label: 0,
64
- type: 'boolean',
65
- value: 'validate.required'
66
- },
67
- state: true,
68
- type: 'property'
69
- }
70
- ],
71
- defaultProps: { validate: { required: false } },
72
- name: 0,
73
- trigger: {
74
- javascript: "result = (Boolean(data.textfield1 === 'req'))",
75
- type: 'javascript'
76
- }
77
- }
78
58
  ],
79
59
  mask: false,
80
60
  placeholder: "type 'opt' to make textfield3 optional",
81
61
  type: 'textfield',
82
- validate: { maxLength: 255, required: false }
62
+ validate: { maxLength: 255, required: false },
83
63
  },
84
64
  {
85
65
  attributes: { counter: 3 },
@@ -100,45 +80,25 @@ describe(`Form ${testComponent} parser`, () => {
100
80
  property: {
101
81
  label: 0,
102
82
  type: 'boolean',
103
- value: 'validate.required'
83
+ value: 'validate.required',
104
84
  },
105
85
  state: false,
106
- type: 'property'
107
- }
86
+ type: 'property',
87
+ },
108
88
  ],
109
89
  defaultProps: { validate: { required: true } },
110
90
  name: 0,
111
91
  trigger: {
112
92
  javascript: "result = (Boolean(data.textfield2 === 'opt'))",
113
- type: 'javascript'
114
- }
93
+ type: 'javascript',
94
+ },
115
95
  },
116
- {
117
- actions: [
118
- {
119
- name: 0,
120
- property: {
121
- label: 0,
122
- type: 'boolean',
123
- value: 'validate.required'
124
- },
125
- state: false,
126
- type: 'property'
127
- }
128
- ],
129
- defaultProps: { validate: { required: true } },
130
- name: 0,
131
- trigger: {
132
- javascript: "result = (Boolean(data.textfield2 === 'opt'))",
133
- type: 'javascript'
134
- }
135
- }
136
96
  ],
137
97
  mask: false,
138
98
  type: 'textfield',
139
- validate: { maxLength: 255, required: true }
140
- }
141
- ])
99
+ validate: { maxLength: 255, required: true },
100
+ },
101
+ ]),
142
102
  )
143
103
  })
144
104
  })