@kaspernj/api-maker 1.0.470 → 1.0.471
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/build/router.js +2 -2
- package/build/utils/checkbox.js +33 -10
- package/build/utils/checkboxes.js +163 -0
- package/build/utils/invalid-feedback.js +19 -0
- package/link.sh +8 -0
- package/package.json +2 -3
- package/src/router.jsx +1 -1
- package/src/utils/checkbox.jsx +31 -6
- package/src/utils/checkboxes.jsx +158 -0
- package/src/utils/invalid-feedback.jsx +20 -0
package/build/router.js
CHANGED
|
@@ -45,7 +45,7 @@ export default /*#__PURE__*/memo(shapeComponent(class ApiMakerRouter extends Bas
|
|
|
45
45
|
}
|
|
46
46
|
const Component = requireComponent({
|
|
47
47
|
routeDefinition: matchingRoute.parsedRouteDefinition.routeDefinition
|
|
48
|
-
})
|
|
48
|
+
});
|
|
49
49
|
return /*#__PURE__*/React.createElement(Suspense, {
|
|
50
50
|
fallback: /*#__PURE__*/React.createElement("div", null)
|
|
51
51
|
}, /*#__PURE__*/React.createElement(Component, {
|
|
@@ -53,4 +53,4 @@ export default /*#__PURE__*/memo(shapeComponent(class ApiMakerRouter extends Bas
|
|
|
53
53
|
}));
|
|
54
54
|
}
|
|
55
55
|
}));
|
|
56
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwicHJvcFR5cGVzRXhhY3QiLCJSZWFjdCIsIm1lbW8iLCJTdXNwZW5zZSIsInNoYXBlQ29tcG9uZW50IiwidXNlUGF0aCIsInVzZVJvdXRlciIsIkFwaU1ha2VyUm91dGVyIiwicHJvcFR5cGVzIiwiaGlzdG9yeSIsIm9iamVjdCIsIm5vdEZvdW5kQ29tcG9uZW50IiwiZWxlbWVudFR5cGUiLCJyZXF1aXJlQ29tcG9uZW50IiwiZnVuYyIsImlzUmVxdWlyZWQiLCJyb3V0ZURlZmluaXRpb25zIiwicm91dGVzIiwicmVuZGVyIiwicGF0aCIsInByb3BzIiwibWF0Y2giLCJtYXRjaGluZ1JvdXRlIiwiTm90Rm91bmRDb21wb25lbnQiLCJjcmVhdGVFbGVtZW50IiwiZmFsbGJhY2siLCJDb21wb25lbnQiLCJyb3V0ZURlZmluaXRpb24iLCJwYXJzZWRSb3V0ZURlZmluaXRpb24iXSwic291cmNlcyI6WyIuLi9zcmMvcm91dGVyLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi9iYXNlLWNvbXBvbmVudFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBwcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQgUmVhY3QsIHttZW1vLCBTdXNwZW5zZX0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCB1c2VQYXRoIGZyb20gXCJvbi1sb2NhdGlvbi1jaGFuZ2VkL2J1aWxkL3VzZS1wYXRoXCJcbmltcG9ydCB1c2VSb3V0ZXIgZnJvbSBcIi4vdXNlLXJvdXRlclwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJSb3V0ZXIgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBoaXN0b3J5OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG5vdEZvdW5kQ29tcG9uZW50OiBQcm9wVHlwZXMuZWxlbWVudFR5cGUsXG4gICAgcmVxdWlyZUNvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICByb3V0ZURlZmluaXRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHJvdXRlczogUHJvcFR5cGVzLm9iamVjdFxuICB9KVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBwYXRoID0gdXNlUGF0aCgpXG4gICAgY29uc3Qge25vdEZvdW5kQ29tcG9uZW50LCByZXF1aXJlQ29tcG9uZW50LCByb3V0ZURlZmluaXRpb25zLCByb3V0ZXN9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHttYXRjaH0gPSB1c2VSb3V0ZXIoe3BhdGgsIHJvdXRlcywgcm91dGVEZWZpbml0aW9uc30pXG4gICAgY29uc3Qge21hdGNoaW5nUm91dGV9ID0gbWF0Y2hcblxuICAgIGlmICghbWF0Y2hpbmdSb3V0ZSkge1xuICAgICAgaWYgKG5vdEZvdW5kQ29tcG9uZW50KSB7XG4gICAgICAgIGNvbnN0IE5vdEZvdW5kQ29tcG9uZW50ID0gbm90Rm91bmRDb21wb25lbnRcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTdXNwZW5zZSBmYWxsYmFjaz17PGRpdiAvPn0+XG4gICAgICAgICAgICA8Tm90Rm91bmRDb21wb25lbnQgbWF0Y2g9e21hdGNofSAvPlxuICAgICAgICAgIDwvU3VzcGVuc2U+XG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgQ29tcG9uZW50ID0gcmVxdWlyZUNvbXBvbmVudCh7cm91dGVEZWZpbml0aW9uOiBtYXRjaGluZ1JvdXRlLnBhcnNlZFJvdXRlRGVmaW5pdGlvbi5yb3V0ZURlZmluaXRpb259KVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdXNwZW5zZSBmYWxsYmFjaz17PGRpdiAvPn0+XG4gICAgICAgIDxDb21wb25lbnQgbWF0Y2g9e21hdGNofSAvPlxuICAgICAgPC9TdXNwZW5zZT5cbiAgICApXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sa0JBQWtCO0FBQzVDLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsT0FBT0MsS0FBSyxJQUFHQyxJQUFJLEVBQUVDLFFBQVEsUUFBTyxPQUFPO0FBQzNDLFNBQVFDLGNBQWMsUUFBTyx1Q0FBdUM7QUFDcEUsT0FBT0MsT0FBTyxNQUFNLG9DQUFvQztBQUN4RCxPQUFPQyxTQUFTLE1BQU0sY0FBYztBQUVwQyw0QkFBZUosSUFBSSxDQUFDRSxjQUFjLENBQUMsTUFBTUcsY0FBYyxTQUFTVCxhQUFhLENBQUM7RUFDNUUsT0FBT1UsU0FBUyxHQUFHUixjQUFjLENBQUM7SUFDaENTLE9BQU8sRUFBRVYsU0FBUyxDQUFDVyxNQUFNO0lBQ3pCQyxpQkFBaUIsRUFBRVosU0FBUyxDQUFDYSxXQUFXO0lBQ3hDQyxnQkFBZ0IsRUFBRWQsU0FBUyxDQUFDZSxJQUFJLENBQUNDLFVBQVU7SUFDM0NDLGdCQUFnQixFQUFFakIsU0FBUyxDQUFDVyxNQUFNO0lBQ2xDTyxNQUFNLEVBQUVsQixTQUFTLENBQUNXO0VBQ3BCLENBQUMsQ0FBQztFQUVGUSxNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFNQyxJQUFJLEdBQUdkLE9BQU8sQ0FBQyxDQUFDO0lBQ3RCLE1BQU07TUFBQ00saUJBQWlCO01BQUVFLGdCQUFnQjtNQUFFRyxnQkFBZ0I7TUFBRUM7SUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDRyxLQUFLO0lBQ2xGLE1BQU07TUFBQ0M7SUFBSyxDQUFDLEdBQUdmLFNBQVMsQ0FBQztNQUFDYSxJQUFJO01BQUVGLE1BQU07TUFBRUQ7SUFBZ0IsQ0FBQyxDQUFDO0lBQzNELE1BQU07TUFBQ007SUFBYSxDQUFDLEdBQUdELEtBQUs7SUFFN0IsSUFBSSxDQUFDQyxhQUFhLEVBQUU7TUFDbEIsSUFBSVgsaUJBQWlCLEVBQUU7UUFDckIsTUFBTVksaUJBQWlCLEdBQUdaLGlCQUFpQjtRQUUzQyxvQkFDRVYsS0FBQSxDQUFBdUIsYUFBQSxDQUFDckIsUUFBUTtVQUFDc0IsUUFBUSxlQUFFeEIsS0FBQSxDQUFBdUIsYUFBQSxZQUFNO1FBQUUsZ0JBQzFCdkIsS0FBQSxDQUFBdUIsYUFBQSxDQUFDRCxpQkFBaUI7VUFBQ0YsS0FBSyxFQUFFQTtRQUFNLENBQUUsQ0FDMUIsQ0FBQztNQUVmLENBQUMsTUFBTTtRQUNMLE9BQU8sSUFBSTtNQUNiO0lBQ0Y7SUFFQSxNQUFNSyxTQUFTLEdBQUdiLGdCQUFnQixDQUFDO01BQUNjLGVBQWUsRUFBRUwsYUFBYSxDQUFDTSxxQkFBcUIsQ0FBQ0Q7SUFBZSxDQUFDLENBQUM7SUFFMUcsb0JBQ0UxQixLQUFBLENBQUF1QixhQUFBLENBQUNyQixRQUFRO01BQUNzQixRQUFRLGVBQUV4QixLQUFBLENBQUF1QixhQUFBLFlBQU07SUFBRSxnQkFDMUJ2QixLQUFBLENBQUF1QixhQUFBLENBQUNFLFNBQVM7TUFBQ0wsS0FBSyxFQUFFQTtJQUFNLENBQUUsQ0FDbEIsQ0FBQztFQUVmO0FBQ0YsQ0FBQyxDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/build/utils/checkbox.js
CHANGED
|
@@ -11,17 +11,32 @@ export default memo(shapeComponent(class ApiMakerUtilsCheckbox extends BaseCompo
|
|
|
11
11
|
label: undefined
|
|
12
12
|
};
|
|
13
13
|
static propTypes = propTypesExact({
|
|
14
|
-
checked: PropTypes.bool
|
|
14
|
+
checked: PropTypes.bool,
|
|
15
15
|
dataSet: PropTypes.object,
|
|
16
|
+
defaultChecked: PropTypes.bool,
|
|
16
17
|
label: PropTypes.string,
|
|
17
|
-
onCheckedChange: PropTypes.func
|
|
18
|
+
onCheckedChange: PropTypes.func,
|
|
18
19
|
style: PropTypes.object
|
|
19
20
|
});
|
|
21
|
+
setup() {
|
|
22
|
+
this.useStates({
|
|
23
|
+
checked: this.props.defaultChecked
|
|
24
|
+
});
|
|
25
|
+
this.isChecked = this.calculateChecked();
|
|
26
|
+
}
|
|
27
|
+
calculateChecked() {
|
|
28
|
+
if ("checked" in this.props) {
|
|
29
|
+
return this.p.checked;
|
|
30
|
+
} else {
|
|
31
|
+
return this.s.checked;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
20
34
|
render() {
|
|
21
35
|
const {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
36
|
+
isChecked
|
|
37
|
+
} = this.tt;
|
|
38
|
+
const {
|
|
39
|
+
label
|
|
25
40
|
} = this.p;
|
|
26
41
|
const actualStyle = Object.assign({
|
|
27
42
|
flexDirection: "row",
|
|
@@ -29,13 +44,13 @@ export default memo(shapeComponent(class ApiMakerUtilsCheckbox extends BaseCompo
|
|
|
29
44
|
}, this.props.style);
|
|
30
45
|
return /*#__PURE__*/React.createElement(View, {
|
|
31
46
|
dataSet: {
|
|
32
|
-
component: "api-maker
|
|
47
|
+
component: "api-maker/utils/checkbox"
|
|
33
48
|
},
|
|
34
49
|
style: actualStyle
|
|
35
50
|
}, /*#__PURE__*/React.createElement(CheckBox, {
|
|
36
51
|
dataSet: this.props.dataSet,
|
|
37
|
-
onValueChange:
|
|
38
|
-
value:
|
|
52
|
+
onValueChange: this.tt.onValueChange,
|
|
53
|
+
value: isChecked
|
|
39
54
|
}), label && /*#__PURE__*/React.createElement(Pressable, {
|
|
40
55
|
onPress: this.tt.onLabelPressed
|
|
41
56
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
@@ -44,6 +59,14 @@ export default memo(shapeComponent(class ApiMakerUtilsCheckbox extends BaseCompo
|
|
|
44
59
|
}
|
|
45
60
|
}, label)));
|
|
46
61
|
}
|
|
47
|
-
onLabelPressed = () => this.p.onCheckedChange(!this.
|
|
62
|
+
onLabelPressed = () => this.p.onCheckedChange(!this.tt.isChecked);
|
|
63
|
+
onValueChange = e => {
|
|
64
|
+
if (this.props.onCheckedChange) {
|
|
65
|
+
this.p.onCheckedChange(e);
|
|
66
|
+
}
|
|
67
|
+
this.setState({
|
|
68
|
+
checked: !this.tt.isChecked
|
|
69
|
+
});
|
|
70
|
+
};
|
|
48
71
|
}));
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiQ2hlY2tCb3giLCJQcmVzc2FibGUiLCJWaWV3IiwibWVtbyIsIlByb3BUeXBlcyIsInByb3BUeXBlc0V4YWN0IiwiUmVhY3QiLCJzaGFwZUNvbXBvbmVudCIsIlRleHQiLCJBcGlNYWtlclV0aWxzQ2hlY2tib3giLCJkZWZhdWx0UHJvcHMiLCJsYWJlbCIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsImNoZWNrZWQiLCJib29sIiwiZGF0YVNldCIsIm9iamVjdCIsImRlZmF1bHRDaGVja2VkIiwic3RyaW5nIiwib25DaGVja2VkQ2hhbmdlIiwiZnVuYyIsInN0eWxlIiwic2V0dXAiLCJ1c2VTdGF0ZXMiLCJwcm9wcyIsImlzQ2hlY2tlZCIsImNhbGN1bGF0ZUNoZWNrZWQiLCJwIiwicyIsInJlbmRlciIsInR0IiwiYWN0dWFsU3R5bGUiLCJPYmplY3QiLCJhc3NpZ24iLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImNyZWF0ZUVsZW1lbnQiLCJjb21wb25lbnQiLCJvblZhbHVlQ2hhbmdlIiwidmFsdWUiLCJvblByZXNzIiwib25MYWJlbFByZXNzZWQiLCJtYXJnaW5MZWZ0IiwiZSIsInNldFN0YXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NoZWNrYm94LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IHtDaGVja0JveCwgUHJlc3NhYmxlLCBWaWV3fSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBwcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBUZXh0IGZyb20gXCIuL3RleHRcIlxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyVXRpbHNDaGVja2JveCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGxhYmVsOiB1bmRlZmluZWRcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgY2hlY2tlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGF0YVNldDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkZWZhdWx0Q2hlY2tlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25DaGVja2VkQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBzdHlsZTogUHJvcFR5cGVzLm9iamVjdFxuICB9KVxuXG4gIHNldHVwKCkge1xuICAgIHRoaXMudXNlU3RhdGVzKHtcbiAgICAgIGNoZWNrZWQ6IHRoaXMucHJvcHMuZGVmYXVsdENoZWNrZWRcbiAgICB9KVxuICAgIHRoaXMuaXNDaGVja2VkID0gdGhpcy5jYWxjdWxhdGVDaGVja2VkKClcbiAgfVxuXG4gIGNhbGN1bGF0ZUNoZWNrZWQoKSB7XG4gICAgaWYgKFwiY2hlY2tlZFwiIGluIHRoaXMucHJvcHMpIHtcbiAgICAgIHJldHVybiB0aGlzLnAuY2hlY2tlZFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5zLmNoZWNrZWRcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2lzQ2hlY2tlZH0gPSB0aGlzLnR0XG4gICAgY29uc3Qge2xhYmVsfSA9IHRoaXMucFxuICAgIGNvbnN0IGFjdHVhbFN0eWxlID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHtmbGV4RGlyZWN0aW9uOiBcInJvd1wiLCBhbGlnbkl0ZW1zOiBcImNlbnRlclwifSxcbiAgICAgIHRoaXMucHJvcHMuc3R5bGVcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgZGF0YVNldD17e2NvbXBvbmVudDogXCJhcGktbWFrZXIvdXRpbHMvY2hlY2tib3hcIn19IHN0eWxlPXthY3R1YWxTdHlsZX0+XG4gICAgICAgIDxDaGVja0JveCBkYXRhU2V0PXt0aGlzLnByb3BzLmRhdGFTZXR9IG9uVmFsdWVDaGFuZ2U9e3RoaXMudHQub25WYWx1ZUNoYW5nZX0gdmFsdWU9e2lzQ2hlY2tlZH0gLz5cbiAgICAgICAge2xhYmVsICYmXG4gICAgICAgICAgPFByZXNzYWJsZSBvblByZXNzPXt0aGlzLnR0Lm9uTGFiZWxQcmVzc2VkfT5cbiAgICAgICAgICAgIDxUZXh0IHN0eWxlPXt7bWFyZ2luTGVmdDogM319PlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9QcmVzc2FibGU+XG4gICAgICAgIH1cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cblxuICBvbkxhYmVsUHJlc3NlZCA9ICgpID0+IHRoaXMucC5vbkNoZWNrZWRDaGFuZ2UoIXRoaXMudHQuaXNDaGVja2VkKVxuXG4gIG9uVmFsdWVDaGFuZ2UgPSAoZSkgPT4ge1xuICAgIGlmICh0aGlzLnByb3BzLm9uQ2hlY2tlZENoYW5nZSkge1xuICAgICAgdGhpcy5wLm9uQ2hlY2tlZENoYW5nZShlKVxuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoe2NoZWNrZWQ6ICF0aGlzLnR0LmlzQ2hlY2tlZH0pXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLFNBQVFDLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxJQUFJLFFBQU8sY0FBYztBQUN0RCxPQUFPQyxJQUFJLE1BQU0sNEJBQTRCO0FBQzdDLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9D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
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { shapeComponent, ShapeComponent } from "set-state-compare/src/shape-component";
|
|
2
|
+
import React, { useMemo } from "react";
|
|
3
|
+
import Checkbox from "./checkbox";
|
|
4
|
+
import { digs } from "diggerize";
|
|
5
|
+
import { useForm } from "../form";
|
|
6
|
+
import * as inflection from "inflection";
|
|
7
|
+
import InvalidFeedback from "./invalid-feedback";
|
|
8
|
+
import memo from "set-state-compare/src/memo";
|
|
9
|
+
import PropTypes from "prop-types";
|
|
10
|
+
import propTypesExact from "prop-types-exact";
|
|
11
|
+
import Text from "./text";
|
|
12
|
+
import useInput from "../use-input";
|
|
13
|
+
import { View } from "react-native";
|
|
14
|
+
const OptionElement = memo(shapeComponent(class OptionElement extends ShapeComponent {
|
|
15
|
+
static propTypes = propTypesExact({
|
|
16
|
+
checked: PropTypes.bool.isRequired,
|
|
17
|
+
inputName: PropTypes.string.isRequired,
|
|
18
|
+
onChange: PropTypes.func.isRequired,
|
|
19
|
+
option: PropTypes.array.isRequired
|
|
20
|
+
});
|
|
21
|
+
render() {
|
|
22
|
+
const {
|
|
23
|
+
checked,
|
|
24
|
+
inputName,
|
|
25
|
+
option
|
|
26
|
+
} = this.p;
|
|
27
|
+
return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Checkbox, {
|
|
28
|
+
checked: checked,
|
|
29
|
+
dataSet: {
|
|
30
|
+
component: "api-maker/utils/checkboxes/option",
|
|
31
|
+
name: inputName,
|
|
32
|
+
value: option[1]
|
|
33
|
+
},
|
|
34
|
+
label: option[0],
|
|
35
|
+
onCheckedChange: this.tt.onChange
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
onChange = checked => this.p.onChange({
|
|
39
|
+
checked,
|
|
40
|
+
option: this.p.option
|
|
41
|
+
});
|
|
42
|
+
}));
|
|
43
|
+
export default memo(shapeComponent(class ApiMakerUtilsCheckboxes extends ShapeComponent {
|
|
44
|
+
static propTypes = propTypesExact({
|
|
45
|
+
attribute: PropTypes.string,
|
|
46
|
+
defaultValue: PropTypes.array,
|
|
47
|
+
label: PropTypes.string,
|
|
48
|
+
labelClassName: PropTypes.string,
|
|
49
|
+
model: PropTypes.object,
|
|
50
|
+
name: PropTypes.string,
|
|
51
|
+
onChange: PropTypes.func,
|
|
52
|
+
options: PropTypes.array.isRequired
|
|
53
|
+
});
|
|
54
|
+
setup() {
|
|
55
|
+
const {
|
|
56
|
+
inputProps,
|
|
57
|
+
wrapperOpts
|
|
58
|
+
} = useInput({
|
|
59
|
+
props: this.props
|
|
60
|
+
});
|
|
61
|
+
this.generatedId = useMemo(() => Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15), []);
|
|
62
|
+
this.setInstance({
|
|
63
|
+
form: useForm(),
|
|
64
|
+
inputProps,
|
|
65
|
+
wrapperOpts
|
|
66
|
+
});
|
|
67
|
+
this.useStates({
|
|
68
|
+
checkedOptions: () => {
|
|
69
|
+
if (Array.isArray(this.props.defaultValue)) return this.props.defaultValue;
|
|
70
|
+
if (this.props.defaultValue) return [this.props.defaultValue];
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
useMemo(() => {
|
|
75
|
+
if (this.form && inputProps.name) {
|
|
76
|
+
this.form.setValue(inputProps.name, this.s.checkedOptions);
|
|
77
|
+
}
|
|
78
|
+
}, []);
|
|
79
|
+
}
|
|
80
|
+
render() {
|
|
81
|
+
const {
|
|
82
|
+
wrapperOpts
|
|
83
|
+
} = this.tt;
|
|
84
|
+
const {
|
|
85
|
+
errors
|
|
86
|
+
} = digs(wrapperOpts, "errors");
|
|
87
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
88
|
+
dataSet: {
|
|
89
|
+
component: "api-maker/utils/checkboxes"
|
|
90
|
+
}
|
|
91
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
92
|
+
style: {
|
|
93
|
+
fontWeight: "bold"
|
|
94
|
+
}
|
|
95
|
+
}, this.tt.wrapperOpts.label), this.props.options.map(option => /*#__PURE__*/React.createElement(OptionElement, {
|
|
96
|
+
checked: this.isChecked(option),
|
|
97
|
+
inputName: this.inputName(),
|
|
98
|
+
key: option[1],
|
|
99
|
+
onChange: this.tt.onOptionChecked,
|
|
100
|
+
option: option
|
|
101
|
+
})), errors.length > 0 && /*#__PURE__*/React.createElement(InvalidFeedback, {
|
|
102
|
+
errors: errors
|
|
103
|
+
}));
|
|
104
|
+
}
|
|
105
|
+
inputDefaultValue() {
|
|
106
|
+
const {
|
|
107
|
+
attribute,
|
|
108
|
+
defaultValue,
|
|
109
|
+
model
|
|
110
|
+
} = this.props;
|
|
111
|
+
if (defaultValue) {
|
|
112
|
+
return defaultValue;
|
|
113
|
+
} else if (attribute && model) {
|
|
114
|
+
if (!model[attribute]) throw `No such attribute: ${attribute}`;
|
|
115
|
+
return this.props.model[attribute]();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
inputName() {
|
|
119
|
+
if (this.props.name) {
|
|
120
|
+
return `${this.props.name}[]`;
|
|
121
|
+
} else if (this.props.model) {
|
|
122
|
+
return `${this.props.model.modelClassData().paramKey}[${inflection.underscore(this.props.attribute)}]`;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
isChecked = option => this.s.checkedOptions.includes(option[1]);
|
|
126
|
+
onOptionChecked = ({
|
|
127
|
+
checked,
|
|
128
|
+
option
|
|
129
|
+
}) => {
|
|
130
|
+
const {
|
|
131
|
+
inputProps,
|
|
132
|
+
form
|
|
133
|
+
} = this.tt;
|
|
134
|
+
const {
|
|
135
|
+
name
|
|
136
|
+
} = inputProps;
|
|
137
|
+
let newOptions;
|
|
138
|
+
if (checked) {
|
|
139
|
+
newOptions = this.s.checkedOptions.concat([option[1]]);
|
|
140
|
+
this.setState({
|
|
141
|
+
checkedOptions: newOptions
|
|
142
|
+
});
|
|
143
|
+
} else {
|
|
144
|
+
newOptions = this.s.checkedOptions.filter(value => value != option[1]);
|
|
145
|
+
this.setState({
|
|
146
|
+
checkedOptions: newOptions
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
console.log({
|
|
150
|
+
checkedOptions: this.s.checkedOptions
|
|
151
|
+
});
|
|
152
|
+
if (this.props.onChange) {
|
|
153
|
+
this.p.onChange({
|
|
154
|
+
checked,
|
|
155
|
+
option
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
if (form && name) {
|
|
159
|
+
form.setValue(name, newOptions);
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
}));
|
|
163
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzaGFwZUNvbXBvbmVudCIsIlNoYXBlQ29tcG9uZW50IiwiUmVhY3QiLCJ1c2VNZW1vIiwiQ2hlY2tib3giLCJkaWdzIiwidXNlRm9ybSIsImluZmxlY3Rpb24iLCJJbnZhbGlkRmVlZGJhY2siLCJtZW1vIiwiUHJvcFR5cGVzIiwicHJvcFR5cGVzRXhhY3QiLCJUZXh0IiwidXNlSW5wdXQiLCJWaWV3IiwiT3B0aW9uRWxlbWVudCIsInByb3BUeXBlcyIsImNoZWNrZWQiLCJib29sIiwiaXNSZXF1aXJlZCIsImlucHV0TmFtZSIsInN0cmluZyIsIm9uQ2hhbmdlIiwiZnVuYyIsIm9wdGlvbiIsImFycmF5IiwicmVuZGVyIiwicCIsImNyZWF0ZUVsZW1lbnQiLCJkYXRhU2V0IiwiY29tcG9uZW50IiwibmFtZSIsInZhbHVlIiwibGFiZWwiLCJvbkNoZWNrZWRDaGFuZ2UiLCJ0dCIsIkFwaU1ha2VyVXRpbHNDaGVja2JveGVzIiwiYXR0cmlidXRlIiwiZGVmYXVsdFZhbHVlIiwibGFiZWxDbGFzc05hbWUiLCJtb2RlbCIsIm9iamVjdCIsIm9wdGlvbnMiLCJzZXR1cCIsImlucHV0UHJvcHMiLCJ3cmFwcGVyT3B0cyIsInByb3BzIiwiZ2VuZXJhdGVkSWQiLCJNYXRoIiwicmFuZG9tIiwidG9TdHJpbmciLCJzdWJzdHJpbmciLCJzZXRJbnN0YW5jZSIsImZvcm0iLCJ1c2VTdGF0ZXMiLCJjaGVja2VkT3B0aW9ucyIsIkFycmF5IiwiaXNBcnJheSIsInNldFZhbHVlIiwicyIsImVycm9ycyIsInN0eWxlIiwiZm9udFdlaWdodCIsIm1hcCIsImlzQ2hlY2tlZCIsImtleSIsIm9uT3B0aW9uQ2hlY2tlZCIsImxlbmd0aCIsImlucHV0RGVmYXVsdFZhbHVlIiwibW9kZWxDbGFzc0RhdGEiLCJwYXJhbUtleSIsInVuZGVyc2NvcmUiLCJpbmNsdWRlcyIsIm5ld09wdGlvbnMiLCJjb25jYXQiLCJzZXRTdGF0ZSIsImZpbHRlciIsImNvbnNvbGUiLCJsb2ciXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY2hlY2tib3hlcy5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzaGFwZUNvbXBvbmVudCwgU2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgQ2hlY2tib3ggZnJvbSBcIi4vY2hlY2tib3hcIlxuaW1wb3J0IHtkaWdzfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCB7dXNlRm9ybX0gZnJvbSBcIi4uL2Zvcm1cIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgSW52YWxpZEZlZWRiYWNrIGZyb20gXCIuL2ludmFsaWQtZmVlZGJhY2tcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCBUZXh0IGZyb20gXCIuL3RleHRcIlxuaW1wb3J0IHVzZUlucHV0IGZyb20gXCIuLi91c2UtaW5wdXRcIlxuaW1wb3J0IHtWaWV3fSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcblxuY29uc3QgT3B0aW9uRWxlbWVudCA9IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgT3B0aW9uRWxlbWVudCBleHRlbmRzIFNoYXBlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBjaGVja2VkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGlucHV0TmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9wdGlvbjogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWRcbiAgfSlcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2NoZWNrZWQsIGlucHV0TmFtZSwgb3B0aW9ufSA9IHRoaXMucFxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3ID5cbiAgICAgICAgPENoZWNrYm94XG4gICAgICAgICAgY2hlY2tlZD17Y2hlY2tlZH1cbiAgICAgICAgICBkYXRhU2V0PXt7XG4gICAgICAgICAgICBjb21wb25lbnQ6IFwiYXBpLW1ha2VyL3V0aWxzL2NoZWNrYm94ZXMvb3B0aW9uXCIsXG4gICAgICAgICAgICBuYW1lOiBpbnB1dE5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogb3B0aW9uWzFdXG4gICAgICAgICAgfX1cbiAgICAgICAgICBsYWJlbD17b3B0aW9uWzBdfVxuICAgICAgICAgIG9uQ2hlY2tlZENoYW5nZT17dGhpcy50dC5vbkNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cblxuICBvbkNoYW5nZSA9IChjaGVja2VkKSA9PiB0aGlzLnAub25DaGFuZ2Uoe2NoZWNrZWQsIG9wdGlvbjogdGhpcy5wLm9wdGlvbn0pXG59KSlcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclV0aWxzQ2hlY2tib3hlcyBleHRlbmRzIFNoYXBlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBhdHRyaWJ1dGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGVmYXVsdFZhbHVlOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbGFiZWxDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb3B0aW9uczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWRcbiAgfSlcblxuICBzZXR1cCgpIHtcbiAgICBjb25zdCB7aW5wdXRQcm9wcywgd3JhcHBlck9wdHN9ID0gdXNlSW5wdXQoe3Byb3BzOiB0aGlzLnByb3BzfSlcblxuICAgIHRoaXMuZ2VuZXJhdGVkSWQgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDE1KSArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCAxNSksXG4gICAgICBbXVxuICAgIClcblxuICAgIHRoaXMuc2V0SW5zdGFuY2Uoe1xuICAgICAgZm9ybTogdXNlRm9ybSgpLFxuICAgICAgaW5wdXRQcm9wcyxcbiAgICAgIHdyYXBwZXJPcHRzXG4gICAgfSlcbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBjaGVja2VkT3B0aW9uczogKCkgPT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnByb3BzLmRlZmF1bHRWYWx1ZSkpIHJldHVybiB0aGlzLnByb3BzLmRlZmF1bHRWYWx1ZVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5kZWZhdWx0VmFsdWUpIHJldHVybiBbdGhpcy5wcm9wcy5kZWZhdWx0VmFsdWVdXG5cbiAgICAgICAgcmV0dXJuIFtdXG4gICAgICB9XG4gICAgfSlcblxuICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZm9ybSAmJiBpbnB1dFByb3BzLm5hbWUpIHtcbiAgICAgICAgdGhpcy5mb3JtLnNldFZhbHVlKGlucHV0UHJvcHMubmFtZSwgdGhpcy5zLmNoZWNrZWRPcHRpb25zKVxuICAgICAgfVxuICAgIH0sIFtdKVxuICB9XG5cbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCB7d3JhcHBlck9wdHN9ID0gdGhpcy50dFxuICAgIGNvbnN0IHtlcnJvcnN9ID0gZGlncyh3cmFwcGVyT3B0cywgXCJlcnJvcnNcIilcblxuICAgIHJldHVybiAoXG4gICAgICA8VmlldyBkYXRhU2V0PXt7Y29tcG9uZW50OiBcImFwaS1tYWtlci91dGlscy9jaGVja2JveGVzXCJ9fT5cbiAgICAgICAgPFRleHQgc3R5bGU9e3tmb250V2VpZ2h0OiBcImJvbGRcIn19PlxuICAgICAgICAgIHt0aGlzLnR0LndyYXBwZXJPcHRzLmxhYmVsfVxuICAgICAgICA8L1RleHQ+XG4gICAgICAgIHt0aGlzLnByb3BzLm9wdGlvbnMubWFwKChvcHRpb24pID0+XG4gICAgICAgICAgPE9wdGlvbkVsZW1lbnRcbiAgICAgICAgICAgIGNoZWNrZWQ9e3RoaXMuaXNDaGVja2VkKG9wdGlvbil9XG4gICAgICAgICAgICBpbnB1dE5hbWU9e3RoaXMuaW5wdXROYW1lKCl9XG4gICAgICAgICAgICBrZXk9e29wdGlvblsxXX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLnR0Lm9uT3B0aW9uQ2hlY2tlZH1cbiAgICAgICAgICAgIG9wdGlvbj17b3B0aW9ufVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtlcnJvcnMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgIDxJbnZhbGlkRmVlZGJhY2sgZXJyb3JzPXtlcnJvcnN9IC8+XG4gICAgICAgIH1cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cblxuICBpbnB1dERlZmF1bHRWYWx1ZSAoKSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZSwgZGVmYXVsdFZhbHVlLCBtb2RlbH0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAoZGVmYXVsdFZhbHVlKSB7XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlXG4gICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUgJiYgbW9kZWwpIHtcbiAgICAgIGlmICghbW9kZWxbYXR0cmlidXRlXSkgdGhyb3cgYE5vIHN1Y2ggYXR0cmlidXRlOiAke2F0dHJpYnV0ZX1gXG5cbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm1vZGVsW2F0dHJpYnV0ZV0oKVxuICAgIH1cbiAgfVxuXG4gIGlucHV0TmFtZSAoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMubmFtZSkge1xuICAgICAgcmV0dXJuIGAke3RoaXMucHJvcHMubmFtZX1bXWBcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMubW9kZWwpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnByb3BzLm1vZGVsLm1vZGVsQ2xhc3NEYXRhKCkucGFyYW1LZXl9WyR7aW5mbGVjdGlvbi51bmRlcnNjb3JlKHRoaXMucHJvcHMuYXR0cmlidXRlKX1dYFxuICAgIH1cbiAgfVxuXG4gIGlzQ2hlY2tlZCA9IChvcHRpb24pID0+IHRoaXMucy5jaGVja2VkT3B0aW9ucy5pbmNsdWRlcyhvcHRpb25bMV0pXG5cbiAgb25PcHRpb25DaGVja2VkID0gKHtjaGVja2VkLCBvcHRpb259KSA9PiB7XG4gICAgY29uc3Qge2lucHV0UHJvcHMsIGZvcm19ID0gdGhpcy50dFxuICAgIGNvbnN0IHtuYW1lfSA9IGlucHV0UHJvcHNcbiAgICBsZXQgbmV3T3B0aW9uc1xuXG4gICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgIG5ld09wdGlvbnMgPSB0aGlzLnMuY2hlY2tlZE9wdGlvbnMuY29uY2F0KFtvcHRpb25bMV1dKVxuXG4gICAgICB0aGlzLnNldFN0YXRlKHtjaGVja2VkT3B0aW9uczogbmV3T3B0aW9uc30pXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld09wdGlvbnMgPSB0aGlzLnMuY2hlY2tlZE9wdGlvbnMuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT0gb3B0aW9uWzFdKVxuXG4gICAgICB0aGlzLnNldFN0YXRlKHtjaGVja2VkT3B0aW9uczogbmV3T3B0aW9uc30pXG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coe2NoZWNrZWRPcHRpb25zOiB0aGlzLnMuY2hlY2tlZE9wdGlvbnN9KVxuXG4gICAgaWYgKHRoaXMucHJvcHMub25DaGFuZ2UpIHtcbiAgICAgIHRoaXMucC5vbkNoYW5nZSh7Y2hlY2tlZCwgb3B0aW9ufSlcbiAgICB9XG5cbiAgICBpZiAoZm9ybSAmJiBuYW1lKSB7XG4gICAgICBmb3JtLnNldFZhbHVlKG5hbWUsIG5ld09wdGlvbnMpXG4gICAgfVxuICB9XG59KSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsY0FBYyxFQUFFQyxjQUFjLFFBQU8sdUNBQXVDO0FBQ3BGLE9BQU9DLEtBQUssSUFBR0MsT0FBTyxRQUFPLE9BQU87QUFDcEMsT0FBT0MsUUFBUSxNQUFNLFlBQVk7QUFDakMsU0FBUUMsSUFBSSxRQUFPLFdBQVc7QUFDOUIsU0FBUUMsT0FBTyxRQUFPLFNBQVM7QUFDL0IsT0FBTyxLQUFLQyxVQUFVLE1BQU0sWUFBWTtBQUN4QyxPQUFPQyxlQUFlLE1BQU0sb0JBQW9CO0FBQ2hELE9BQU9DLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsY0FBYyxNQUFNLGtCQUFrQjtBQUM3QyxPQUFPQyxJQUFJLE1BQU0sUUFBUTtBQUN6QixPQUFPQyxRQUFRLE1BQU0sY0FBYztBQUNuQyxTQUFRQyxJQUFJLFFBQU8sY0FBYztBQUVqQyxNQUFNQyxhQUFhLEdBQUdOLElBQUksQ0FBQ1QsY0FBYyxDQUFDLE1BQU1lLGFBQWEsU0FBU2QsY0FBYyxDQUFDO0VBQ25GLE9BQU9lLFNBQVMsR0FBR0wsY0FBYyxDQUFDO0lBQ2hDTSxPQUFPLEVBQUVQLFNBQVMsQ0FBQ1EsSUFBSSxDQUFDQyxVQUFVO0lBQ2xDQyxTQUFTLEVBQUVWLFNBQVMsQ0FBQ1csTUFBTSxDQUFDRixVQUFVO0lBQ3RDRyxRQUFRLEVBQUVaLFNBQVMsQ0FBQ2EsSUFBSSxDQUFDSixVQUFVO0lBQ25DSyxNQUFNLEVBQUVkLFNBQVMsQ0FBQ2UsS0FBSyxDQUFDTjtFQUMxQixDQUFDLENBQUM7RUFFRk8sTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTTtNQUFDVCxPQUFPO01BQUVHLFNBQVM7TUFBRUk7SUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDRyxDQUFDO0lBRTNDLG9CQUNFekIsS0FBQSxDQUFBMEIsYUFBQSxDQUFDZCxJQUFJLHFCQUNIWixLQUFBLENBQUEw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
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { shapeComponent, ShapeComponent } from "set-state-compare/src/shape-component";
|
|
2
|
+
import memo from "set-state-compare/src/memo";
|
|
3
|
+
import PropTypes from "prop-types";
|
|
4
|
+
import propTypesExact from "prop-types-exact";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import Text from "./text";
|
|
7
|
+
export default memo(shapeComponent(class ApiMakerUtilsInvalidFeedback extends ShapeComponent {
|
|
8
|
+
static propTypes = propTypesExact({
|
|
9
|
+
message: PropTypes.string.isRequired
|
|
10
|
+
});
|
|
11
|
+
render() {
|
|
12
|
+
return /*#__PURE__*/React.createElement(Text, {
|
|
13
|
+
style: {
|
|
14
|
+
color: "red"
|
|
15
|
+
}
|
|
16
|
+
}, this.p.message);
|
|
17
|
+
}
|
|
18
|
+
}));
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzaGFwZUNvbXBvbmVudCIsIlNoYXBlQ29tcG9uZW50IiwibWVtbyIsIlByb3BUeXBlcyIsInByb3BUeXBlc0V4YWN0IiwiUmVhY3QiLCJUZXh0IiwiQXBpTWFrZXJVdGlsc0ludmFsaWRGZWVkYmFjayIsInByb3BUeXBlcyIsIm1lc3NhZ2UiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwiY29sb3IiLCJwIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2ludmFsaWQtZmVlZGJhY2suanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7c2hhcGVDb21wb25lbnQsIFNoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi90ZXh0XCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclV0aWxzSW52YWxpZEZlZWRiYWNrIGV4dGVuZHMgU2hhcGVDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICAgIG1lc3NhZ2U6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxuICB9KVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRleHQgc3R5bGU9e3tjb2xvcjogXCJyZWRcIn19PlxuICAgICAgICB7dGhpcy5wLm1lc3NhZ2V9XG4gICAgICA8L1RleHQ+XG4gICAgKVxuICB9XG59KSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsY0FBYyxFQUFFQyxjQUFjLFFBQU8sdUNBQXVDO0FBQ3BGLE9BQU9DLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsY0FBYyxNQUFNLGtCQUFrQjtBQUM3QyxPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPQyxJQUFJLE1BQU0sUUFBUTtBQUV6QixlQUFlSixJQUFJLENBQUNGLGNBQWMsQ0FBQyxNQUFNTyw0QkFBNEIsU0FBU04sY0FBYyxDQUFDO0VBQzNGLE9BQU9PLFNBQVMsR0FBR0osY0FBYyxDQUFDO0lBQ2hDSyxPQUFPLEVBQUVOLFNBQVMsQ0FBQ08sTUFBTSxDQUFDQztFQUM1QixDQUFDLENBQUM7RUFFRkMsTUFBTUEsQ0FBQSxFQUFHO0lBQ1Asb0JBQ0VQLEtBQUEsQ0FBQVEsYUFBQSxDQUFDUCxJQUFJO01BQUNRLEtBQUssRUFBRTtRQUFDQyxLQUFLLEVBQUU7TUFBSztJQUFFLEdBQ3pCLElBQUksQ0FBQ0MsQ0FBQyxDQUFDUCxPQUNKLENBQUM7RUFFWDtBQUNGLENBQUMsQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
package/link.sh
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kaspernj/api-maker",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.471",
|
|
4
4
|
"description": "My new module",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -77,7 +77,6 @@
|
|
|
77
77
|
"i18n-on-steroids": "*",
|
|
78
78
|
"react": "*",
|
|
79
79
|
"react-native": "*",
|
|
80
|
-
"react-native-vector-icons": "*"
|
|
81
|
-
"i18n-on-steroids": "*"
|
|
80
|
+
"react-native-vector-icons": "*"
|
|
82
81
|
}
|
|
83
82
|
}
|
package/src/router.jsx
CHANGED
|
@@ -35,7 +35,7 @@ export default memo(shapeComponent(class ApiMakerRouter extends BaseComponent {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
const Component = requireComponent({routeDefinition: matchingRoute.parsedRouteDefinition.routeDefinition})
|
|
38
|
+
const Component = requireComponent({routeDefinition: matchingRoute.parsedRouteDefinition.routeDefinition})
|
|
39
39
|
|
|
40
40
|
return (
|
|
41
41
|
<Suspense fallback={<div />}>
|
package/src/utils/checkbox.jsx
CHANGED
|
@@ -13,23 +13,40 @@ export default memo(shapeComponent(class ApiMakerUtilsCheckbox extends BaseCompo
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
static propTypes = propTypesExact({
|
|
16
|
-
checked: PropTypes.bool
|
|
16
|
+
checked: PropTypes.bool,
|
|
17
17
|
dataSet: PropTypes.object,
|
|
18
|
+
defaultChecked: PropTypes.bool,
|
|
18
19
|
label: PropTypes.string,
|
|
19
|
-
onCheckedChange: PropTypes.func
|
|
20
|
+
onCheckedChange: PropTypes.func,
|
|
20
21
|
style: PropTypes.object
|
|
21
22
|
})
|
|
22
23
|
|
|
24
|
+
setup() {
|
|
25
|
+
this.useStates({
|
|
26
|
+
checked: this.props.defaultChecked
|
|
27
|
+
})
|
|
28
|
+
this.isChecked = this.calculateChecked()
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
calculateChecked() {
|
|
32
|
+
if ("checked" in this.props) {
|
|
33
|
+
return this.p.checked
|
|
34
|
+
} else {
|
|
35
|
+
return this.s.checked
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
23
39
|
render() {
|
|
24
|
-
const {
|
|
40
|
+
const {isChecked} = this.tt
|
|
41
|
+
const {label} = this.p
|
|
25
42
|
const actualStyle = Object.assign(
|
|
26
43
|
{flexDirection: "row", alignItems: "center"},
|
|
27
44
|
this.props.style
|
|
28
45
|
)
|
|
29
46
|
|
|
30
47
|
return (
|
|
31
|
-
<View dataSet={{component: "api-maker
|
|
32
|
-
<CheckBox dataSet={this.props.dataSet} onValueChange={
|
|
48
|
+
<View dataSet={{component: "api-maker/utils/checkbox"}} style={actualStyle}>
|
|
49
|
+
<CheckBox dataSet={this.props.dataSet} onValueChange={this.tt.onValueChange} value={isChecked} />
|
|
33
50
|
{label &&
|
|
34
51
|
<Pressable onPress={this.tt.onLabelPressed}>
|
|
35
52
|
<Text style={{marginLeft: 3}}>
|
|
@@ -41,5 +58,13 @@ export default memo(shapeComponent(class ApiMakerUtilsCheckbox extends BaseCompo
|
|
|
41
58
|
)
|
|
42
59
|
}
|
|
43
60
|
|
|
44
|
-
onLabelPressed = () => this.p.onCheckedChange(!this.
|
|
61
|
+
onLabelPressed = () => this.p.onCheckedChange(!this.tt.isChecked)
|
|
62
|
+
|
|
63
|
+
onValueChange = (e) => {
|
|
64
|
+
if (this.props.onCheckedChange) {
|
|
65
|
+
this.p.onCheckedChange(e)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
this.setState({checked: !this.tt.isChecked})
|
|
69
|
+
}
|
|
45
70
|
}))
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import {shapeComponent, ShapeComponent} from "set-state-compare/src/shape-component"
|
|
2
|
+
import React, {useMemo} from "react"
|
|
3
|
+
import Checkbox from "./checkbox"
|
|
4
|
+
import {digs} from "diggerize"
|
|
5
|
+
import {useForm} from "../form"
|
|
6
|
+
import * as inflection from "inflection"
|
|
7
|
+
import InvalidFeedback from "./invalid-feedback"
|
|
8
|
+
import memo from "set-state-compare/src/memo"
|
|
9
|
+
import PropTypes from "prop-types"
|
|
10
|
+
import propTypesExact from "prop-types-exact"
|
|
11
|
+
import Text from "./text"
|
|
12
|
+
import useInput from "../use-input"
|
|
13
|
+
import {View} from "react-native"
|
|
14
|
+
|
|
15
|
+
const OptionElement = memo(shapeComponent(class OptionElement extends ShapeComponent {
|
|
16
|
+
static propTypes = propTypesExact({
|
|
17
|
+
checked: PropTypes.bool.isRequired,
|
|
18
|
+
inputName: PropTypes.string.isRequired,
|
|
19
|
+
onChange: PropTypes.func.isRequired,
|
|
20
|
+
option: PropTypes.array.isRequired
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
render() {
|
|
24
|
+
const {checked, inputName, option} = this.p
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<View >
|
|
28
|
+
<Checkbox
|
|
29
|
+
checked={checked}
|
|
30
|
+
dataSet={{
|
|
31
|
+
component: "api-maker/utils/checkboxes/option",
|
|
32
|
+
name: inputName,
|
|
33
|
+
value: option[1]
|
|
34
|
+
}}
|
|
35
|
+
label={option[0]}
|
|
36
|
+
onCheckedChange={this.tt.onChange}
|
|
37
|
+
/>
|
|
38
|
+
</View>
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
onChange = (checked) => this.p.onChange({checked, option: this.p.option})
|
|
43
|
+
}))
|
|
44
|
+
|
|
45
|
+
export default memo(shapeComponent(class ApiMakerUtilsCheckboxes extends ShapeComponent {
|
|
46
|
+
static propTypes = propTypesExact({
|
|
47
|
+
attribute: PropTypes.string,
|
|
48
|
+
defaultValue: PropTypes.array,
|
|
49
|
+
label: PropTypes.string,
|
|
50
|
+
labelClassName: PropTypes.string,
|
|
51
|
+
model: PropTypes.object,
|
|
52
|
+
name: PropTypes.string,
|
|
53
|
+
onChange: PropTypes.func,
|
|
54
|
+
options: PropTypes.array.isRequired
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
setup() {
|
|
58
|
+
const {inputProps, wrapperOpts} = useInput({props: this.props})
|
|
59
|
+
|
|
60
|
+
this.generatedId = useMemo(
|
|
61
|
+
() => Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15),
|
|
62
|
+
[]
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
this.setInstance({
|
|
66
|
+
form: useForm(),
|
|
67
|
+
inputProps,
|
|
68
|
+
wrapperOpts
|
|
69
|
+
})
|
|
70
|
+
this.useStates({
|
|
71
|
+
checkedOptions: () => {
|
|
72
|
+
if (Array.isArray(this.props.defaultValue)) return this.props.defaultValue
|
|
73
|
+
if (this.props.defaultValue) return [this.props.defaultValue]
|
|
74
|
+
|
|
75
|
+
return []
|
|
76
|
+
}
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
useMemo(() => {
|
|
80
|
+
if (this.form && inputProps.name) {
|
|
81
|
+
this.form.setValue(inputProps.name, this.s.checkedOptions)
|
|
82
|
+
}
|
|
83
|
+
}, [])
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
render () {
|
|
87
|
+
const {wrapperOpts} = this.tt
|
|
88
|
+
const {errors} = digs(wrapperOpts, "errors")
|
|
89
|
+
|
|
90
|
+
return (
|
|
91
|
+
<View dataSet={{component: "api-maker/utils/checkboxes"}}>
|
|
92
|
+
<Text style={{fontWeight: "bold"}}>
|
|
93
|
+
{this.tt.wrapperOpts.label}
|
|
94
|
+
</Text>
|
|
95
|
+
{this.props.options.map((option) =>
|
|
96
|
+
<OptionElement
|
|
97
|
+
checked={this.isChecked(option)}
|
|
98
|
+
inputName={this.inputName()}
|
|
99
|
+
key={option[1]}
|
|
100
|
+
onChange={this.tt.onOptionChecked}
|
|
101
|
+
option={option}
|
|
102
|
+
/>
|
|
103
|
+
)}
|
|
104
|
+
{errors.length > 0 &&
|
|
105
|
+
<InvalidFeedback errors={errors} />
|
|
106
|
+
}
|
|
107
|
+
</View>
|
|
108
|
+
)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
inputDefaultValue () {
|
|
112
|
+
const {attribute, defaultValue, model} = this.props
|
|
113
|
+
|
|
114
|
+
if (defaultValue) {
|
|
115
|
+
return defaultValue
|
|
116
|
+
} else if (attribute && model) {
|
|
117
|
+
if (!model[attribute]) throw `No such attribute: ${attribute}`
|
|
118
|
+
|
|
119
|
+
return this.props.model[attribute]()
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
inputName () {
|
|
124
|
+
if (this.props.name) {
|
|
125
|
+
return `${this.props.name}[]`
|
|
126
|
+
} else if (this.props.model) {
|
|
127
|
+
return `${this.props.model.modelClassData().paramKey}[${inflection.underscore(this.props.attribute)}]`
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
isChecked = (option) => this.s.checkedOptions.includes(option[1])
|
|
132
|
+
|
|
133
|
+
onOptionChecked = ({checked, option}) => {
|
|
134
|
+
const {inputProps, form} = this.tt
|
|
135
|
+
const {name} = inputProps
|
|
136
|
+
let newOptions
|
|
137
|
+
|
|
138
|
+
if (checked) {
|
|
139
|
+
newOptions = this.s.checkedOptions.concat([option[1]])
|
|
140
|
+
|
|
141
|
+
this.setState({checkedOptions: newOptions})
|
|
142
|
+
} else {
|
|
143
|
+
newOptions = this.s.checkedOptions.filter((value) => value != option[1])
|
|
144
|
+
|
|
145
|
+
this.setState({checkedOptions: newOptions})
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
console.log({checkedOptions: this.s.checkedOptions})
|
|
149
|
+
|
|
150
|
+
if (this.props.onChange) {
|
|
151
|
+
this.p.onChange({checked, option})
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (form && name) {
|
|
155
|
+
form.setValue(name, newOptions)
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}))
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {shapeComponent, ShapeComponent} from "set-state-compare/src/shape-component"
|
|
2
|
+
import memo from "set-state-compare/src/memo"
|
|
3
|
+
import PropTypes from "prop-types"
|
|
4
|
+
import propTypesExact from "prop-types-exact"
|
|
5
|
+
import React from "react"
|
|
6
|
+
import Text from "./text"
|
|
7
|
+
|
|
8
|
+
export default memo(shapeComponent(class ApiMakerUtilsInvalidFeedback extends ShapeComponent {
|
|
9
|
+
static propTypes = propTypesExact({
|
|
10
|
+
message: PropTypes.string.isRequired
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
render() {
|
|
14
|
+
return (
|
|
15
|
+
<Text style={{color: "red"}}>
|
|
16
|
+
{this.p.message}
|
|
17
|
+
</Text>
|
|
18
|
+
)
|
|
19
|
+
}
|
|
20
|
+
}))
|