shinkansen-pinion 1.0.36
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/.husky/pre-commit +4 -0
- package/README.md +10 -0
- package/babel.config.js +72 -0
- package/gulp.sh +42 -0
- package/index.js +7 -0
- package/lib/components/check-answers/index.js +1 -0
- package/lib/components/common/index.js +1 -0
- package/lib/components/common/text-content/index.js +1 -0
- package/lib/components/error-summary/index.js +1 -0
- package/lib/components/index.js +1 -0
- package/lib/components/pinion/index.js +1 -0
- package/lib/index.js +1 -0
- package/lib/transformers/check-answers/get-answer-title.js +1 -0
- package/lib/transformers/check-answers/get-answer-value-for-type-array.js +1 -0
- package/lib/transformers/check-answers/get-answer-value-for-type-object.js +1 -0
- package/lib/transformers/check-answers/get-answer-value.js +1 -0
- package/lib/transformers/check-answers/get-any-of-selected-item-value.js +1 -0
- package/lib/transformers/check-answers/get-any-of-selected-items-value.js +1 -0
- package/lib/transformers/check-answers/get-change-answer.js +1 -0
- package/lib/transformers/check-answers/get-enum-selected-item-value.js +1 -0
- package/lib/transformers/check-answers/get-enum-selected-items-value.js +1 -0
- package/lib/transformers/check-answers/get-one-of-selected-item-value.js +1 -0
- package/lib/transformers/check-answers/get-one-of-selected-items-value.js +1 -0
- package/lib/transformers/check-answers/get-visually-hidden-text.js +1 -0
- package/lib/transformers/check-answers/index.js +1 -0
- package/lib/transformers/check-answers/to-answer-value.js +1 -0
- package/lib/transformers/check-answers/transform-answer-title.js +1 -0
- package/lib/transformers/check-answers/transform-answer-value.js +1 -0
- package/lib/transformers/check-answers/transform-any-of-value.js +1 -0
- package/lib/transformers/check-answers/transform-enum-value.js +1 -0
- package/lib/transformers/check-answers/transform-field-value.js +1 -0
- package/lib/transformers/check-answers/transform-one-of-value.js +1 -0
- package/lib/transformers/check-answers/transform-type-array-answers.js +1 -0
- package/lib/transformers/check-answers/transform-type-boolean-answer.js +1 -0
- package/lib/transformers/check-answers/transform-type-null-answer.js +1 -0
- package/lib/transformers/check-answers/transform-type-number-answer.js +1 -0
- package/lib/transformers/check-answers/transform-type-object-answers.js +1 -0
- package/lib/transformers/check-answers/transform-type-string-answer.js +1 -0
- package/lib/transformers/common/get-any-of.js +1 -0
- package/lib/transformers/common/get-component.js +1 -0
- package/lib/transformers/common/get-description.js +1 -0
- package/lib/transformers/common/get-elements-title.js +1 -0
- package/lib/transformers/common/get-enum.js +1 -0
- package/lib/transformers/common/get-field.js +1 -0
- package/lib/transformers/common/get-group.js +1 -0
- package/lib/transformers/common/get-one-of.js +1 -0
- package/lib/transformers/common/get-required.js +1 -0
- package/lib/transformers/common/get-resource-url.js +1 -0
- package/lib/transformers/common/get-title.js +1 -0
- package/lib/transformers/common/get-type.js +1 -0
- package/lib/transformers/common/get-value.js +1 -0
- package/lib/transformers/common/has-any-of.js +1 -0
- package/lib/transformers/common/has-component.js +1 -0
- package/lib/transformers/common/has-description.js +1 -0
- package/lib/transformers/common/has-elements-title.js +1 -0
- package/lib/transformers/common/has-enum.js +1 -0
- package/lib/transformers/common/has-field.js +1 -0
- package/lib/transformers/common/has-one-of.js +1 -0
- package/lib/transformers/common/has-required.js +1 -0
- package/lib/transformers/common/has-title.js +1 -0
- package/lib/transformers/common/has-type.js +1 -0
- package/lib/transformers/common/has-value.js +1 -0
- package/lib/transformers/common/index.js +1 -0
- package/lib/transformers/error-message/index.js +1 -0
- package/lib/transformers/index.js +1 -0
- package/package.json +104 -0
- package/src/components/check-answers/index.js +5 -0
- package/src/components/common/index.js +1 -0
- package/src/components/common/text-content/index.js +14 -0
- package/src/components/error-summary/index.js +5 -0
- package/src/components/index.js +4 -0
- package/src/components/pinion/index.js +404 -0
- package/src/index.js +10 -0
- package/src/transformers/check-answers/get-answer-title.js +11 -0
- package/src/transformers/check-answers/get-answer-value-for-type-array.js +14 -0
- package/src/transformers/check-answers/get-answer-value-for-type-object.js +14 -0
- package/src/transformers/check-answers/get-answer-value.js +11 -0
- package/src/transformers/check-answers/get-any-of-selected-item-value.js +13 -0
- package/src/transformers/check-answers/get-any-of-selected-items-value.js +17 -0
- package/src/transformers/check-answers/get-change-answer.js +16 -0
- package/src/transformers/check-answers/get-enum-selected-item-value.js +13 -0
- package/src/transformers/check-answers/get-enum-selected-items-value.js +15 -0
- package/src/transformers/check-answers/get-one-of-selected-item-value.js +13 -0
- package/src/transformers/check-answers/get-one-of-selected-items-value.js +17 -0
- package/src/transformers/check-answers/get-visually-hidden-text.js +16 -0
- package/src/transformers/check-answers/index.js +108 -0
- package/src/transformers/check-answers/to-answer-value.js +15 -0
- package/src/transformers/check-answers/transform-answer-title.js +16 -0
- package/src/transformers/check-answers/transform-answer-value.js +47 -0
- package/src/transformers/check-answers/transform-any-of-value.js +20 -0
- package/src/transformers/check-answers/transform-enum-value.js +20 -0
- package/src/transformers/check-answers/transform-field-value.js +16 -0
- package/src/transformers/check-answers/transform-one-of-value.js +20 -0
- package/src/transformers/check-answers/transform-type-array-answers.js +26 -0
- package/src/transformers/check-answers/transform-type-boolean-answer.js +22 -0
- package/src/transformers/check-answers/transform-type-null-answer.js +22 -0
- package/src/transformers/check-answers/transform-type-number-answer.js +22 -0
- package/src/transformers/check-answers/transform-type-object-answers.js +26 -0
- package/src/transformers/check-answers/transform-type-string-answer.js +22 -0
- package/src/transformers/common/get-any-of.js +1 -0
- package/src/transformers/common/get-component.js +1 -0
- package/src/transformers/common/get-description.js +1 -0
- package/src/transformers/common/get-elements-title.js +3 -0
- package/src/transformers/common/get-enum.js +1 -0
- package/src/transformers/common/get-field.js +1 -0
- package/src/transformers/common/get-group.js +18 -0
- package/src/transformers/common/get-one-of.js +1 -0
- package/src/transformers/common/get-required.js +1 -0
- package/src/transformers/common/get-resource-url.js +37 -0
- package/src/transformers/common/get-title.js +1 -0
- package/src/transformers/common/get-type.js +1 -0
- package/src/transformers/common/get-value.js +1 -0
- package/src/transformers/common/has-any-of.js +1 -0
- package/src/transformers/common/has-component.js +1 -0
- package/src/transformers/common/has-description.js +1 -0
- package/src/transformers/common/has-elements-title.js +3 -0
- package/src/transformers/common/has-enum.js +1 -0
- package/src/transformers/common/has-field.js +1 -0
- package/src/transformers/common/has-one-of.js +1 -0
- package/src/transformers/common/has-required.js +1 -0
- package/src/transformers/common/has-title.js +1 -0
- package/src/transformers/common/has-type.js +1 -0
- package/src/transformers/common/has-value.js +1 -0
- package/src/transformers/common/index.js +26 -0
- package/src/transformers/error-message/index.js +15 -0
- package/src/transformers/index.js +3 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import toAnswerValue from './to-answer-value'
|
|
4
|
+
|
|
5
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
6
|
+
|
|
7
|
+
export default function getOneOfSelectedItemValue (items = [], [selectedItem] = []) {
|
|
8
|
+
log('getOneOfSelectedItemValue')
|
|
9
|
+
|
|
10
|
+
return (Reflect.has(items, selectedItem))
|
|
11
|
+
? toAnswerValue(Reflect.get(items, selectedItem)) // || 'Not answered'
|
|
12
|
+
: '' // 'Not answered'
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import toAnswerValue from './to-answer-value'
|
|
4
|
+
|
|
5
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
6
|
+
|
|
7
|
+
export default function getOneOfSelectedItemsValue (items = [], selectedItems = []) {
|
|
8
|
+
log('getOneOfSelectedItemsValue')
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
selectedItems.reduce((accumulator, selectedItem) => (
|
|
12
|
+
(Reflect.has(items, selectedItem))
|
|
13
|
+
? accumulator.concat(toAnswerValue(Reflect.get(items, selectedItem)))
|
|
14
|
+
: accumulator
|
|
15
|
+
), '') // || 'Not answered'
|
|
16
|
+
)
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import hasTitle from 'shinkansen-pinion/transformers/common/has-title'
|
|
4
|
+
import getTitle from 'shinkansen-pinion/transformers/common/get-title'
|
|
5
|
+
|
|
6
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
7
|
+
|
|
8
|
+
export default ({ elements } = {}) => {
|
|
9
|
+
log('getVisuallyHiddenText')
|
|
10
|
+
|
|
11
|
+
if (hasTitle(elements)) {
|
|
12
|
+
return getTitle(elements).toLowerCase()
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return ''
|
|
16
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import hasElementsTitle from 'shinkansen-pinion/transformers/common/has-elements-title'
|
|
4
|
+
import getGroup from 'shinkansen-pinion/transformers/common/get-group'
|
|
5
|
+
|
|
6
|
+
import transformTypeStringAnswer from './transform-type-string-answer'
|
|
7
|
+
import transformTypeNumberAnswer from './transform-type-number-answer'
|
|
8
|
+
import transformTypeBooleanAnswer from './transform-type-boolean-answer'
|
|
9
|
+
import transformTypeNullAnswer from './transform-type-null-answer'
|
|
10
|
+
|
|
11
|
+
import transformTypeObjectAnswers from './transform-type-object-answers'
|
|
12
|
+
import transformTypeArrayAnswers from './transform-type-array-answers'
|
|
13
|
+
|
|
14
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
15
|
+
|
|
16
|
+
export function transformTypeObjectAnswer ({ elements: { fields = [] } = {} }, resource, array = [], group = []) {
|
|
17
|
+
log('transformTypeObjectAnswer')
|
|
18
|
+
|
|
19
|
+
return fields.reduce((accumulator, answer, i, a) => {
|
|
20
|
+
if (hasElementsTitle(answer)) {
|
|
21
|
+
/*
|
|
22
|
+
* `answer` has a title. Put any title-less siblings into `group`
|
|
23
|
+
*/
|
|
24
|
+
group = getGroup(i, a)
|
|
25
|
+
|
|
26
|
+
if (group.length) {
|
|
27
|
+
/*
|
|
28
|
+
* Transform `answer` and siblings
|
|
29
|
+
*/
|
|
30
|
+
return accumulator.concat(transformTypeObjectAnswers([answer, ...group], resource))
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
!group.includes(answer)
|
|
36
|
+
? accumulator.concat(transformAnswer(answer, resource, array, group))
|
|
37
|
+
: accumulator
|
|
38
|
+
)
|
|
39
|
+
}, array)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function transformTypeArrayAnswer ({ elements: { fields = [] } = {} }, resource, array = [], group = []) {
|
|
43
|
+
log('transformTypeArrayAnswer')
|
|
44
|
+
|
|
45
|
+
return fields.reduce((accumulator, answer, i, a) => {
|
|
46
|
+
if (hasElementsTitle(answer)) {
|
|
47
|
+
/*
|
|
48
|
+
* `answer` has a title. Put any title-less siblings into `group`
|
|
49
|
+
*/
|
|
50
|
+
group = getGroup(i, a)
|
|
51
|
+
|
|
52
|
+
if (group.length) {
|
|
53
|
+
/*
|
|
54
|
+
* Transform `answer` and siblings
|
|
55
|
+
*/
|
|
56
|
+
return accumulator.concat(transformTypeArrayAnswers([answer, ...group], resource))
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return (
|
|
61
|
+
!group.includes(answer)
|
|
62
|
+
? accumulator.concat(transformAnswer(answer, resource, array, group))
|
|
63
|
+
: accumulator
|
|
64
|
+
)
|
|
65
|
+
}, array)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export default function transformAnswer (answer, resource, array = [], group = []) {
|
|
69
|
+
const {
|
|
70
|
+
meta: {
|
|
71
|
+
type
|
|
72
|
+
} = {}
|
|
73
|
+
} = answer
|
|
74
|
+
|
|
75
|
+
switch (type) {
|
|
76
|
+
case 'string':
|
|
77
|
+
return (
|
|
78
|
+
array.concat(transformTypeStringAnswer(answer, resource))
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
case 'number':
|
|
82
|
+
return (
|
|
83
|
+
array.concat(transformTypeNumberAnswer(answer, resource))
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
case 'object':
|
|
87
|
+
return (
|
|
88
|
+
array.concat(transformTypeObjectAnswer(answer, resource, array, group))
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
case 'array':
|
|
92
|
+
return (
|
|
93
|
+
array.concat(transformTypeArrayAnswer(answer, resource, array, group))
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
case 'boolean':
|
|
97
|
+
return (
|
|
98
|
+
array.concat(transformTypeBooleanAnswer(answer, resource))
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
case 'null':
|
|
102
|
+
return (
|
|
103
|
+
array.concat(transformTypeNullAnswer(answer, resource))
|
|
104
|
+
)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return null
|
|
108
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import getValue from 'shinkansen-pinion/transformers/common/get-value'
|
|
4
|
+
|
|
5
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
6
|
+
|
|
7
|
+
export default function toAnswerValue ({ elements } = {}) {
|
|
8
|
+
log('toAnswerValue')
|
|
9
|
+
|
|
10
|
+
const {
|
|
11
|
+
title: value = getValue(elements)
|
|
12
|
+
} = elements
|
|
13
|
+
|
|
14
|
+
return value
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import hasTitle from 'shinkansen-pinion/transformers/common/has-title'
|
|
4
|
+
import getTitle from 'shinkansen-pinion/transformers/common/get-title'
|
|
5
|
+
|
|
6
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
7
|
+
|
|
8
|
+
export default function transformAnswerTitle (elements) {
|
|
9
|
+
log('transformAnswerTitle')
|
|
10
|
+
|
|
11
|
+
if (hasTitle(elements)) {
|
|
12
|
+
return getTitle(elements)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return null
|
|
16
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import hasEnum from 'shinkansen-pinion/transformers/common/has-enum'
|
|
4
|
+
import getEnum from 'shinkansen-pinion/transformers/common/get-enum'
|
|
5
|
+
import hasOneOf from 'shinkansen-pinion/transformers/common/has-one-of'
|
|
6
|
+
import getOneOf from 'shinkansen-pinion/transformers/common/get-one-of'
|
|
7
|
+
import hasAnyOf from 'shinkansen-pinion/transformers/common/has-any-of'
|
|
8
|
+
import getAnyOf from 'shinkansen-pinion/transformers/common/get-any-of'
|
|
9
|
+
import hasField from 'shinkansen-pinion/transformers/common/has-field'
|
|
10
|
+
import getField from 'shinkansen-pinion/transformers/common/get-field'
|
|
11
|
+
|
|
12
|
+
import transformEnumValue from './transform-enum-value'
|
|
13
|
+
import transformAnyOfValue from './transform-any-of-value'
|
|
14
|
+
import transformOneOfValue from './transform-one-of-value'
|
|
15
|
+
import transformFieldValue from './transform-field-value'
|
|
16
|
+
|
|
17
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
18
|
+
|
|
19
|
+
export default function transformAnswerValue (elements) {
|
|
20
|
+
log('transformAnswerValue')
|
|
21
|
+
|
|
22
|
+
if (hasEnum(elements)) {
|
|
23
|
+
const field = getEnum(elements)
|
|
24
|
+
|
|
25
|
+
return transformEnumValue(field)
|
|
26
|
+
} else {
|
|
27
|
+
if (hasAnyOf(elements)) {
|
|
28
|
+
const field = getAnyOf(elements)
|
|
29
|
+
|
|
30
|
+
return transformAnyOfValue(field)
|
|
31
|
+
} else {
|
|
32
|
+
if (hasOneOf(elements)) {
|
|
33
|
+
const field = getOneOf(elements)
|
|
34
|
+
|
|
35
|
+
return transformOneOfValue(field)
|
|
36
|
+
} else {
|
|
37
|
+
if (hasField(elements)) {
|
|
38
|
+
const field = getField(elements)
|
|
39
|
+
|
|
40
|
+
return transformFieldValue(field)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return null
|
|
47
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import getAnyOfSelectedItemsValue from './get-any-of-selected-items-value'
|
|
4
|
+
import getAnyOfSelectedItemValue from './get-any-of-selected-item-value'
|
|
5
|
+
|
|
6
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
7
|
+
|
|
8
|
+
export default function transformAnyOfValue ({ items, selectedItems } = {}) {
|
|
9
|
+
log('transformAnyOfValue')
|
|
10
|
+
|
|
11
|
+
if (selectedItems.length < 1) {
|
|
12
|
+
return ''
|
|
13
|
+
} else {
|
|
14
|
+
if (selectedItems.length > 1) {
|
|
15
|
+
return getAnyOfSelectedItemsValue(items, selectedItems)
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return getAnyOfSelectedItemValue(items, selectedItems)
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import getEnumSelectedItemsValue from './get-enum-selected-items-value'
|
|
4
|
+
import getEnumSelectedItemValue from './get-enum-selected-item-value'
|
|
5
|
+
|
|
6
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
7
|
+
|
|
8
|
+
export default function transformEnumValue ({ items, selectedItems } = {}) {
|
|
9
|
+
log('transformEnumValue')
|
|
10
|
+
|
|
11
|
+
if (selectedItems.length < 1) {
|
|
12
|
+
return ''
|
|
13
|
+
} else {
|
|
14
|
+
if (selectedItems.length > 1) {
|
|
15
|
+
return getEnumSelectedItemsValue(items, selectedItems)
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return getEnumSelectedItemValue(items, selectedItems)
|
|
20
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import hasValue from 'shinkansen-pinion/transformers/common/has-value'
|
|
4
|
+
import getValue from 'shinkansen-pinion/transformers/common/get-value'
|
|
5
|
+
|
|
6
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
7
|
+
|
|
8
|
+
export default function transformFieldValue (field = {}) {
|
|
9
|
+
log('transformFieldValue')
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
hasValue(field)
|
|
13
|
+
? getValue(field)
|
|
14
|
+
: ''
|
|
15
|
+
)
|
|
16
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import getOneOfSelectedItemsValue from './get-one-of-selected-items-value'
|
|
4
|
+
import getOneOfSelectedItemValue from './get-one-of-selected-item-value'
|
|
5
|
+
|
|
6
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
7
|
+
|
|
8
|
+
export default function transformOneOfValue ({ items, selectedItems } = {}) {
|
|
9
|
+
log('transformOneOfValue')
|
|
10
|
+
|
|
11
|
+
if (selectedItems.length < 1) {
|
|
12
|
+
return ''
|
|
13
|
+
} else {
|
|
14
|
+
if (selectedItems.length > 1) {
|
|
15
|
+
return getOneOfSelectedItemsValue(items, selectedItems)
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return getOneOfSelectedItemValue(items, selectedItems)
|
|
20
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import getAnswerTitle from './get-answer-title'
|
|
4
|
+
import getAnswerValue from './get-answer-value-for-type-array'
|
|
5
|
+
import getChangeAnswer from './get-change-answer'
|
|
6
|
+
|
|
7
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
8
|
+
|
|
9
|
+
export default function transformTypeArrayAnswers (answers = [], resource = {}) {
|
|
10
|
+
log('transformTypeArrayAnswers')
|
|
11
|
+
|
|
12
|
+
const [
|
|
13
|
+
answer
|
|
14
|
+
] = answers
|
|
15
|
+
|
|
16
|
+
return {
|
|
17
|
+
type: 'ARRAY',
|
|
18
|
+
params: {
|
|
19
|
+
answer: {
|
|
20
|
+
title: getAnswerTitle(answer),
|
|
21
|
+
value: getAnswerValue(answers)
|
|
22
|
+
},
|
|
23
|
+
changeAnswer: getChangeAnswer(answer, resource)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import getAnswerTitle from './get-answer-title'
|
|
4
|
+
import getAnswerValue from './get-answer-value'
|
|
5
|
+
import getChangeAnswer from './get-change-answer'
|
|
6
|
+
|
|
7
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
8
|
+
|
|
9
|
+
export default function transformTypeBooleanAnswer (answer, resource) {
|
|
10
|
+
log('transformTypeBooleanAnswer')
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
type: 'BOOLEAN',
|
|
14
|
+
params: {
|
|
15
|
+
answer: {
|
|
16
|
+
title: getAnswerTitle(answer),
|
|
17
|
+
value: getAnswerValue(answer)
|
|
18
|
+
},
|
|
19
|
+
changeAnswer: getChangeAnswer(answer, resource)
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import getAnswerTitle from './get-answer-title'
|
|
4
|
+
import getAnswerValue from './get-answer-value'
|
|
5
|
+
import getChangeAnswer from './get-change-answer'
|
|
6
|
+
|
|
7
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
8
|
+
|
|
9
|
+
export default function transformTypeNullAnswer (answer, resource) {
|
|
10
|
+
log('transformTypeNullAnswer')
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
type: 'NULL',
|
|
14
|
+
params: {
|
|
15
|
+
answer: {
|
|
16
|
+
title: getAnswerTitle(answer),
|
|
17
|
+
value: getAnswerValue(answer)
|
|
18
|
+
},
|
|
19
|
+
changeAnswer: getChangeAnswer(answer, resource)
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import getAnswerTitle from './get-answer-title'
|
|
4
|
+
import getAnswerValue from './get-answer-value'
|
|
5
|
+
import getChangeAnswer from './get-change-answer'
|
|
6
|
+
|
|
7
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
8
|
+
|
|
9
|
+
export default function transformTypeNumberAnswer (answer, resource) {
|
|
10
|
+
log('transformTypeNumberAnswer')
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
type: 'NUMBER',
|
|
14
|
+
params: {
|
|
15
|
+
answer: {
|
|
16
|
+
title: getAnswerTitle(answer),
|
|
17
|
+
value: getAnswerValue(answer)
|
|
18
|
+
},
|
|
19
|
+
changeAnswer: getChangeAnswer(answer, resource)
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import getAnswerTitle from './get-answer-title'
|
|
4
|
+
import getAnswerValue from './get-answer-value-for-type-object'
|
|
5
|
+
import getChangeAnswer from './get-change-answer'
|
|
6
|
+
|
|
7
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
8
|
+
|
|
9
|
+
export default function transformTypeObjectAnswers (answers = [], resource = {}) {
|
|
10
|
+
log('transformTypeObjectAnswers')
|
|
11
|
+
|
|
12
|
+
const [
|
|
13
|
+
answer
|
|
14
|
+
] = answers
|
|
15
|
+
|
|
16
|
+
return {
|
|
17
|
+
type: 'OBJECT',
|
|
18
|
+
params: {
|
|
19
|
+
answer: {
|
|
20
|
+
title: getAnswerTitle(answer),
|
|
21
|
+
value: getAnswerValue(answers)
|
|
22
|
+
},
|
|
23
|
+
changeAnswer: getChangeAnswer(answer, resource)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import getAnswerTitle from './get-answer-title'
|
|
4
|
+
import getAnswerValue from './get-answer-value'
|
|
5
|
+
import getChangeAnswer from './get-change-answer'
|
|
6
|
+
|
|
7
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
8
|
+
|
|
9
|
+
export default function transformTypeStringAnswer (answer, resource) {
|
|
10
|
+
log('transformTypeStringAnswer')
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
type: 'STRING',
|
|
14
|
+
params: {
|
|
15
|
+
answer: {
|
|
16
|
+
title: getAnswerTitle(answer),
|
|
17
|
+
value: getAnswerValue(answer)
|
|
18
|
+
},
|
|
19
|
+
changeAnswer: getChangeAnswer(answer, resource)
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.get(elements, 'anyOf')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (meta = {}) => Reflect.get(meta, 'component')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.get(elements, 'description')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.get(elements, 'enum')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.get(elements, 'field')
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import hasElementsTitle from './has-elements-title'
|
|
2
|
+
|
|
3
|
+
export default function getGroup (index, array) {
|
|
4
|
+
const group = []
|
|
5
|
+
|
|
6
|
+
let n = index + 1
|
|
7
|
+
let sibling = array[n]
|
|
8
|
+
if (sibling) {
|
|
9
|
+
while (!hasElementsTitle(sibling)) {
|
|
10
|
+
group.push(sibling)
|
|
11
|
+
n = n + 1
|
|
12
|
+
sibling = array[n]
|
|
13
|
+
if (!sibling) break
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return group
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.get(elements, 'oneOf')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.get(elements, 'required')
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
Rails
|
|
5
|
+
} from 'shinkansen-rails'
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
Signals
|
|
9
|
+
} from 'shinkansen-signals'
|
|
10
|
+
|
|
11
|
+
const log = debug('shinkansen-pinion:transformers:check-answers')
|
|
12
|
+
|
|
13
|
+
export default function getResourceUrl (resource = {}) {
|
|
14
|
+
log('getResourceUrl')
|
|
15
|
+
|
|
16
|
+
if (Rails.go(resource, Signals.OMEGA_PATTERN)) {
|
|
17
|
+
return Rails.to(resource, Signals.OMEGA_PATTERN)
|
|
18
|
+
} else {
|
|
19
|
+
if (Rails.go(resource, Signals.DEBARK_PATTERN)) {
|
|
20
|
+
return Rails.to(resource, Signals.DEBARK_PATTERN)
|
|
21
|
+
} else {
|
|
22
|
+
if (Rails.go(resource, Signals.CONFIRM_PATTERN)) {
|
|
23
|
+
return Rails.to(resource, Signals.CONFIRM_PATTERN)
|
|
24
|
+
} else {
|
|
25
|
+
if (Rails.go(resource, Signals.EMBARK_PATTERN)) {
|
|
26
|
+
return Rails.to(resource, Signals.EMBARK_PATTERN)
|
|
27
|
+
} else {
|
|
28
|
+
if (Rails.go(resource, Signals.ALPHA_PATTERN)) {
|
|
29
|
+
return Rails.to(resource, Signals.ALPHA_PATTERN)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
throw new Error('Incompatible with Shinkansen')
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.get(elements, 'title')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (meta = {}) => Reflect.get(meta, 'type')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (field = {}) => Reflect.get(field, 'value')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.has(elements, 'anyOf')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (meta = {}) => Reflect.has(meta, 'component')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.has(elements, 'description')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.has(elements, 'enum')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.has(elements, 'field')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.has(elements, 'oneOf')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.has(elements, 'required')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (elements = {}) => Reflect.has(elements, 'title')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (meta = {}) => Reflect.has(meta, 'type')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (field = {}) => Reflect.has(field, 'value')
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export getAnyOf from './get-any-of'
|
|
2
|
+
export getComponent from './get-component'
|
|
3
|
+
export getDescription from './get-description'
|
|
4
|
+
export getElementsTitle from './get-elements-title'
|
|
5
|
+
export getEnum from './get-enum'
|
|
6
|
+
export getField from './get-field'
|
|
7
|
+
export getGroup from './get-group'
|
|
8
|
+
export getOneOf from './get-one-of'
|
|
9
|
+
export getRequired from './get-required'
|
|
10
|
+
export getResourceUrl from './get-resource-url'
|
|
11
|
+
export getTitle from './get-title'
|
|
12
|
+
export getType from './get-type'
|
|
13
|
+
export getValue from './get-value'
|
|
14
|
+
export hasAnyOf from './has-any-of'
|
|
15
|
+
export hasComponent from './has-component'
|
|
16
|
+
export hasDescription from './has-description'
|
|
17
|
+
export hasElementsTitle from './has-elements-title'
|
|
18
|
+
export hasEnum from './has-enum'
|
|
19
|
+
export hasField from './has-field'
|
|
20
|
+
// export hasGroup from './has-group'
|
|
21
|
+
export hasOneOf from './has-one-of'
|
|
22
|
+
export hasRequired from './has-required'
|
|
23
|
+
// export hasResourceUrl from './has-resource-url'
|
|
24
|
+
export hasTitle from './has-title'
|
|
25
|
+
export hasType from './has-type'
|
|
26
|
+
export hasValue from './has-value'
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
const log = debug('shinkansen-pinion:transformers:error-message')
|
|
4
|
+
|
|
5
|
+
export function hasError (errors = [], uri = null) {
|
|
6
|
+
log('hasError')
|
|
7
|
+
|
|
8
|
+
return errors.some(({ uri: URI }) => URI === uri)
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function getError (errors = [], uri = null) {
|
|
12
|
+
log('getError')
|
|
13
|
+
|
|
14
|
+
return errors.find(({ uri: URI }) => URI === uri)
|
|
15
|
+
}
|