simply.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { __assign, __spreadArray } from "tslib";
  2. import fmtEvent from "./fmtEvent";
  3. function removeNullProps(props) {
  4. var newProps = {};
  5. for (var key in props) {
  6. if (props[key] !== null) {
  7. newProps[key] = props[key];
  8. }
  9. }
  10. return newProps;
  11. }
  12. function buildProperties(props) {
  13. var newProperties = {};
  14. for (var key in props) {
  15. var type = null;
  16. switch (typeof props[key]) {
  17. case 'string':
  18. type = String;
  19. break;
  20. case 'number':
  21. type = Number;
  22. break;
  23. case 'boolean':
  24. type = Boolean;
  25. break;
  26. }
  27. newProperties[key] = {
  28. type: type,
  29. value: props[key]
  30. };
  31. }
  32. return newProperties;
  33. }
  34. function mergeDefaultProps(defaultProps) {
  35. if (defaultProps === void 0) { defaultProps = {}; }
  36. return __assign({}, defaultProps);
  37. }
  38. function ComponentImpl(defaultProps, methods) {
  39. Component({
  40. props: removeNullProps(mergeDefaultProps(defaultProps)),
  41. methods: methods
  42. });
  43. }
  44. export function triggerEvent(instance, eventName, value, e) {
  45. // 首字母大写,然后加上 on
  46. var alipayCallbackName = 'on' + eventName.charAt(0).toUpperCase() + eventName.slice(1);
  47. var props = instance.props;
  48. if (props[alipayCallbackName]) {
  49. props[alipayCallbackName](value, fmtEvent(props, e));
  50. }
  51. }
  52. export function triggerEventOnly(instance, eventName, e) {
  53. // 首字母大写,然后加上 on
  54. var alipayCallbackName = 'on' + eventName.charAt(0).toUpperCase() + eventName.slice(1);
  55. var props = instance.props;
  56. if (props[alipayCallbackName]) {
  57. props[alipayCallbackName](fmtEvent(props, e));
  58. }
  59. }
  60. export function triggerEventValues(instance, eventName, values, e) {
  61. // 首字母大写,然后加上 on
  62. var alipayCallbackName = 'on' + eventName.charAt(0).toUpperCase() + eventName.slice(1);
  63. var props = instance.props;
  64. if (props[alipayCallbackName]) {
  65. props[alipayCallbackName].apply(props, __spreadArray(__spreadArray([], values, false), [fmtEvent(props, e)], false));
  66. }
  67. }
  68. export { ComponentImpl as Component };